用Java编程能给物联网(IoT)带来什么优势与不同?
用Java编程能给物联网(IoT)带来什么优势与不同?
这是一个不太容易回答的问题,也是一个适合拿出来与大家讨论的一个话题~
首先需要聊聊物联网硬件与嵌入式设备有什么不同。嵌入式设备通常是一个软件一体的产品,MCU完成传感器的读写,驱动设备,完成一个或一个集合的设备功能。而物联网设备个人认为应该包含两个方面,一个是硬件传感器数据采集处理的能力,还有就是云服务的植入能力。不可否认,传感器等硬件能力是物联网设备的基础,但是仅仅具备嵌入设备的能力而缺乏与互联网服务接入的能力的话,并不是一个典型的物联网产品。
解释了这个问题之后,我们就可以来看看Java给物联网带来什么能力?
首先,从嵌入式设备的角度出发,传感器等硬件驱动的能力是完全没问题的,但是当你的设备完成了数据的采集控制之后,应该如何通过webAPI与云服务器互动,甚至开放出你的硬件能力给第三方服务使用这个部分是嵌入式产品和从业人员不具备的知识体系。举个例子,智能手机上的GPS传感器,手机厂商做的GPS传感器更多的是为第三方软件服务的(导航、打车、外卖)而不是手机厂商自己用,所以硬件能力的开放给第三方软件是趋势。
然后,从互联网云服务角度出发,在移动互联网成熟的业务和服务、大量的开发者,他们十分熟悉业务和云服务,但是传统无法触达终端,物联网设备的软件和硬件耦合,开发工具SDK五花八门,互联网程序员不具备从事传感器硬件编程的知识和背景,而通过JOSH技术,让互联网程序员可以用与硬件无关的Java编程方式在设备上进行硬件数据的采集控制,然后再对接自己熟悉的云服务,甚至进行业务的开发,这是让物联网从业人员多起来的方式,也是让物联网业务真正能与实际场景结合闭环的手段。
很多人不明白,JOSH是如何实现用JavaAPI实现传感器数据的读写的,如何实现硬件无关的传感器硬件接口的编程的,这个是一个比较大的话题,我们后面会再JEDI的板块展开讲解,主要的技术实现方式是通过Java设备接口来实现,DeviceAccessAPI(一个开源社区的项目,在Java虚拟机实现的一个标准的通用IO接口,支持MCU的外设接口:GPIO、UART、SPI、I2C、ADC、PWM等),下面一张图片,让大家有个基本的印象:
在国外,关于IoT为什么需要JOSH这样的技术的讨论,起源比较早。只要是嵌入式技术的从业者,或者对于OS(操作系统)有所研究有所兴趣的朋友,一定听说过uC/OS,这个是每个人的入门利器。其知名度不亚于Linux,是嵌入式系统的OS。C语言是其开发语言,与其类似的操作系统,已经发展了很多年,有ThreadX、国人主导的开源嵌入式操作系统RT Thread、华为的Liteos、和ARM出的mbed等等,种类十分众多。抛开主观因素,我想后来的操作系统无论是在开发者的规模,认可度,普及性,开源资料等等各个方面,绝不是uC/OS的对手。
那么,问题来了,uC/OS作为拥有众多受众和开发者的嵌入式操作系统的鼻祖,为何在面对IoT新的机遇时,强调JVM(uC/OS推荐的物联网操作系统方案是uC/OS作为底层系统上层使用MicroEJ的JVM用于物联网)更为适用与IoT,并且如此看重?个人认为:C语言开发优势之外,劣势在于依赖编译器,依赖硬件,门槛高,形成不了规模优势,应用不能独立运行,难以后装应用等等,而JVM(Java虚拟机)屏蔽掉了不同的芯片、编译器的区别,并且可以让应用独立的开发和后装应用,可以建立ecosystem和IoT APP Store,还有最重要的,全球1000万的开发者,和现成的开源社区应用资源。这些资源就连盘踞嵌入式系统多年的uC/OS都无法与Java比,更别提那些刚刚进入的没有本质差别的同质化产品。开源和生态不是巨无霸的商业就能建立的,而是要顺势而为,就像Google做Android都要复用Java社区的道理一样。
最后,来点干货,如果一个人民币100块钱以内的智能手表,可以让所有Java&Android的开发者都能开发应用,并且可以构建手表的应用商店,随时安装各种应用和未来我们还没想到的应用(比如安装一个共享单车的APP就可以用手表刷一下解锁)是不是听上去比现在只能计步的要更“智能”一些了呢?关键GUI非常漂亮,并且可以自己定制,随时OTA迭代~
用Java编程能给物联网(IoT)带来什么优势与不同?的更多相关文章
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- JAVA 编程规范(上)
2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...
- 谷歌Java编程规范
Google Java编程风格指南 January 20, 2014 作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声 ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- (转)google Java编程风格中文版
转:http://www.hawstein.com/posts/google-java-style.html 目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 ...
- [转] java编程规范
原文链接: 资料推荐--Google Java编码规范 之前已经推荐过Google的Java编码规范英文版了: http://google-styleguide.googlecode.com/svn/ ...
- java 编程时候的性能调优
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- java编程思想
Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理 ...
随机推荐
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)(转载)
转载自: https://www.cnblogs.com/xignzou/p/3721494.html 使用EarClipping三角化多边形(翻译) ---Triangulation by Ear ...
- Ubuntu1404配置jdk-12.0.2并安装Android Studio教程
最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...
- Java自学-集合框架 Collection
Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...
- GALAXY OJ NOIP2019联合测试1-总结
概要 本次比赛考的不是很好,400分的题只拿了180分...(失误失误) 题目 T1:数你太美(预期100 实际60) 题目大意: 在两个序列中找两个最小的数进行组合,使这个最小整数最小. 解析: 只 ...
- 使用Javamail实现邮件发送功能
目录 相关的包 编写工具类 环境说明 @(使用Javamail实现邮件发送功能) 相关的包 activation.jar javax.mail.jar mail包建议使用高版本写的包,否则可能会发空白 ...
- Qt发送邮件
首先下载支持库 https://download.csdn.net/download/zhangxuechao_/10598108 #ifndef MAIL_H #define MAIL_H #inc ...
- 机器学习之sigmoid函数
先说一下,ML小白. 这是第一次写个人博客类似东西, 主要来说说看 sigmoid 函数,sigmoid函数是机器学习中的一个比较常用的函数,与之类似的还有softplus和softmax等函数, ...
- emacs cedet
用emacs写c或者c++代码用的插件的配置.功能是能够代码补齐. (require 'package) (package-initialize) (add-to-list'package-archi ...
- Linux设备管理(四)_从sysfs回到ktype【转】
转自:https://www.cnblogs.com/xiaojiang1025/archive/2016/12/21/6202298.html sysfs是一个基于ramfs的文件系统,在2.6内核 ...
- 安装教程-VMware 12 安装 Windows 10 企业版
VMware 12 安装 Windows 10 企业版 1.实验描述 在虚拟机中,手动安装 Windows10 企业版操作系统,为一些实验提供平台,因此,有关系统激活问题不再演示.可自行百度,或者加入 ...