最近有些朋友问使用JOSH系统开发物联网应用,与Arduino相比有什么区别和优势呢?感觉用Arduino也能做各种物联网的应用,为什么要用JOSH呢?
抱着探讨的初衷,跟大家交流,欢迎各位来拍砖~
首先,JOSH系统支持的Java编程跟Arduino的编程在软件角度看是完全不同,大的方面,JOSH支持多进程多线程功能是Arduino不具备的,JOSH系统上运行多个应用,每个应用内可以跑多线程的任务,这样的区别在于在JOSH系统上可以运行“复杂”的业务逻辑和功能。
其次,JOSH系统的应用开发使用Java语言,面对实际应用可以进行模块化编程、可以构建中间件、可编写健壮鲁棒性移植性非常优良的商用代码,这个远不是Arduino这样简单系统能做到的。
再次,Java语言有很多现场的开源程序、框架、第三方Jar包可直接引用,站在前人的肩膀上,利用软件产业发展的积累,更快、更好的做出商用软件。
当然,还有很多功能,比如安全特性、沙箱机制、内存保护,这些Arduino都不具备,还有应用的后向更新、卸载、安装这样类似IoT APP Store的应用分发管理平台云服务,都不是Arduino能做的。
JOSH是一个面向商用的、完整的、软件系统解决方案,Arduino更像是一个传感器、硬件的发烧友快速验证工具。
总之,在我们看来,物联网的终端设备远远不仅仅是一个传感器数据采集然后把数据发送到云上这么简单的。物联网更为重要的是把互联网云服务从云端下沉到设备上,近年来日渐普及的边缘计算、RT IoT、AIoT的概念,无布例外的是强调终端上如何把服务用好。传感器数据是物联网的基础,我们也一直认为任何事物都需要根基稳固才能走的稳定,所以JOSH做了JEDI(JOSH Embeded Device Interface)开源传感器框架和DAAPI(Device Access API)标准硬件外设接口用来打好“地基”,有了基础后,我们希望借助Java技术的优势,把更多更好的互联网服务带入IoT世界,一起为Internet of Things努力~