javaone_JavaOne 2015日记–第2天

javaone

秉承“减少到最大”的座右铭,在今天的会议上,我的重点将围绕IoT和移动Java主题。 有趣的是,看到Java世界中针对这两个领域存在不同的方法。 毫不奇怪,Java ME Embedded继续弹出并发挥作用。

带有Java 8的iOS和Android应用

使用我们钟爱的Java 8编程的iOS和Android移动应用程序? 这不能以某种方式结合在一起,特别是如果您想为两个操作系统都设置通用代码库。 在听到Oracle产品管理总监Shay Shmeltzer的演讲之前,这是我的思考方式。Oracle提出了有关移动应用程序框架(MAF)的会议。

MAF是用于Java 8中跨平台应用程序开发的完整MVC框架。与该应用程序捆绑在一起的运行时允许直接调试设备上的Java代码– Oracle使用特殊的64位Lightway JVM和Java 8 Compact2配置文件。 该应用程序本身是用Java,JavaScript和HTML 5编写的,并且由于Apache Cordova的集成,可以访问底层移动操作系统的各种设备功能和本机API。 Shmeltzer说,Oracle本身使用MAF来开发其多个客户端应用程序。 很高兴知道! “吃自己的狗粮”一直是改善自己产品的好方法。

还请参见: JavaOne 2015日记–第1天

对于AMX视图,Oracle有一个基于XML的,面向组件的解决方案,其中包括声明性数据绑定。 这强烈地让人联想到JSF或FXML视图。 那里有80多个预构建的UI组件,可以通过CSS“开箱即用”进行自定义。 MAF还包括特殊的可视化编辑器和通过“ Oracle Enterprise Pack”在Eclipse中提供的集成选项。

不幸的是,谁想到将MAF用作将JavaFX应用程序安装到iOS和Android设备(例如我)上的光荣想法,都会感到失望。 这两种方法是不兼容的,Shmeltzer对不同的目标群体大声疾呼。

“要花什么钱吗?” 对此有些愤世嫉俗的回答是:“当然要花钱。 来自Oracle。” 但是价格可能在很大程度上取决于应用程序的使用情况或现有的Oracle许可证。

附带说明:Oracle有一个项目建议,用于在领先的移动平台上移植OpenJDK Runtime 9。 如果该项目真正实现,将来可以将其与JavaFXPort完美地结合在一起,从而使JavaFX应用程序在各个平台上均可轻松使用。 请参阅此处以了解此建议(或废话)。

适用于物联网的微服务

微服务和物联网曾经是术语的矛盾之处。 物联网设备在某些情况下会带来限制,其中某些恰好是面向微服务的系统的基本方面:持续集成和部署。 资源或连接性非常有限,这里只是两个示例。 我今天从Luminis Technologies的Marcel Hoffmann那里学习了如何应对这一挑战。

在演示可以在智能电话或汽车信息娱乐系统上运行的模块化娱乐系统(音乐,天气信息,导航,电话等)的过程中,我们向霍夫曼展示了霍夫曼开发,集成,部署和监控的实用解决方案。各种模块。

各个模块被实现为OSGi捆绑软件,其中Java中的RESTful微服务使用部署在云中的开源平台Amdatu 。 Hoffmann使用Eclipse插件Bndtools简化了基于OSGi的开发。

为了在运行时访问各个娱乐系统模块并在必要时能够更新这些问题,霍夫曼演示了软件分发框架Apache ACE的用法。

总而言之,这是一个非常有趣的工具栈,可用于在云中开发和(连续)部署基于OSGi的微服务。 看起来很简单。

小,小,最小(又名嵌入式Java ME)

今天,Java ME的出现仍然让我感到惊讶! 而且由于有时效率相当低下的IoT设备的数量Swift增长,它似乎正在经历一场真正的复兴。 Java ME Embedded的预期目标设备不再是优质的移动电话或手机。 取而代之的是,重点更多地放在汽车上的睡眠跟踪器,健身手环,智能仪表或联网传感器上。 这是一个非常令人兴奋的环境,具有巨大的未来潜力。 这足以让我参加“用于物联网的智能设备:Java ME Embedded 8.2”会议。 以及由Terrence Barr(Oracle高级技术人员)撰写的“ 超越 ”一书,以使我们了解当前的最新情况。

当我提到性能不佳的物联网设备时,我并不是说像Raspberry Pi或其他类似的流行设备。 这些设备可以被视为Java ME Embedded领域中的超级计算机。 我要介绍的是具有几百KB RAM的设备。

还请参见: JavaOne 2015日记–第0天

简而言之,我们正在处理Java ME Embedded 8.2 – Java SE 8的简化版本。诸如泛型等语言特性几乎一对一可用(当然,个别API中也有例外)。 因此,例如,在用户界面的视觉设计中找不到任何API或非常简单的API。 它们位于嵌入式设备中,通常在它们之间或与服务器之间进行数据交换,并且不需要UI。 为了解决这个问题,Java ME Embedded是启动工具,可帮助远程安装和远程管理应用程序。

在“车载物联网服务”演示中,Barr还演示了如何通过OTA(空中)在各种板上部署和管理Java ME嵌入式应用程序的真实示例。 各种已安装的服务收集了运行时数据(例如,是否已移动板),并将这些数据自动发送到内置服务器进行分析。 接下来,除了Raspberry Pi:飞思卡尔K64 Freedom和STM32429I-EVAL之外,具有强大功能板的运行时环境也进入了演示。 真正有趣的是,所有开发板都使用了完全相同的Java ME应用程序。 如果嵌入式环境中的“写一次,随处运行”实际上可以成为现实,那将是不现实的。

根据Barr的说法,Java ME Embedded的下一个版本计划于2016年第二季度发布。使用新版本,我们应该了解Java应用程序可以通过空中更新的程度以及整个Java运行时。 如果您认为我们正在谈论的是大众市场需要部分更新数十万台设备的情况,那么这似乎是锦上添花。 此外,将集成对Bluetooth LE的支持,这也是重要的一步。 越来越多的嵌入式设备支持该标准,因此可以简化连接。

摘要

那么,今天以后我的结论是什么? 从我的角度来看,您的手机或平板电脑上的Java培训早已启程。 即使为iOS,Android和Windows Mobile实现了建议的移植OpenJDK Runtime 9的Oracle项目,最终的应用程序也将无法与本机应用程序相提并论。 Java只是众多平台中的另一个跨平台解决方案。 当然,这将是一个非常庞大的社区的解决方案。 但是人们是否想要在不同平台(例如Android和iOS)上使用相同的应用程序? 作为Android用户,我不在乎该应用程序在同事的iPhone上看起来是否相同。 更重要的是,它们就像本机应用程序的行为一样按预期在我的设备上。

对我而言,更有趣的是Java ME(嵌入式)的复活。 当前,由于专有的编程语言和API,大多数嵌入式设备的编程非常复杂。 Java可以为该领域带来一些真正的简化。 鉴于其预期的增长以及该领域对开发人员的需求,这一点尤其如此。

多亏了当前的讨论,微服务和曾经宣布停工的物联网等话题似乎再次流行起来。 OSGi是一个很好的例子。 这是为什么? 无论您如何看,这都是高度分布式系统及其相关问题经常发生的情况。 环境或主题并非完全是新事物,并且在过去20年中仅提出了不好的解决方案。

我希望明天会参加一些有趣的会议,敬请期待! 现在,很高兴认识几个老朋友,喝一两个啤酒,并通宵达旦。 JavaOne的夜间课程与白天的课程一样有趣且内容丰富!

翻译自: https://jaxenter.com/javaone-2015-diary-day-2-121862.html

javaone

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值