许永硕:软件开发工具,是物联网平台的重要组成部分 点击:543 | 回复:1



xuyongshuo

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:274帖 | 11回
  • 年度积分:7
  • 历史总积分:969
  • 注册:2016年6月01日
发表于:2016-10-19 09:14:45
楼主

编者:本文是今年9月28日,与两家媒体拜访AbleClound后的心得。

  

  记得在以前的文章研究一个领域,了解其架构是基础 中,介绍过不同行业对物联网平台有不同的分类:

  通讯行业分类:设备管理平台(DMP),连接管理平台(CMP),业务使能平台(AEP),业务分析平台(BAP);

  企业应用软件分类个性化定制电商平台,智能制造云平台,应用开发平台,一体化办公平台;

  互联网企业的分类在API和消息队列的基础上提供物体目录,数据服务、商业服务

  物联网发展过程中,2C的商业模式领先于2B的商业模式,所以在商业应用上,对2C的物联网产品管理的需求,在很大程度上代表了物联网平台的需求。但是2B的物联网产品提供服务的平台上,设备与设备之间、设备与流程之间的关联的复杂性非常大,往往一个2B的物联网平台软件的开发都是非常复杂的。随着国内企业在工业4.0落地项目的增加,越来越多的企业开始意识到物联网平台中,与开发相关的管理越来越重要。

  (说明:无论2C还是2B的物联网平台,其客户都是企业,但重点在物联网平台的用户是谁。比如智能家居的物联网平台,其平台客户是智能家居供应商,但智能家居产品的用户是终端消费者,所以物联网平台的用户是终端消费者,这样的平台就是2C的;工业的物联网平台,平台的客户是设备供应商,设备用在企业,这样的平台就是2B的平台。


开发工具是物联网平台的重要功能


软件开发流程一直被忽视

  开发工具是物联网平台的重要功能,但却是一直被忽视的。研究过很多物联网平台的功能,都没有将软件开发流程管理的功能作为重点提出来。

  猜测物联网平台缺乏软件开发流程管理有两个原因:早期的物联网平台因为连接数量不多,所以平台提供的软件的复杂度不高,软件开发流程的重要度不高;早期的物联网平台提供商多是通讯行业、互联网行业出身,更加强调的是连接、连接管理、大数据。

设备数据被融入企业管理软件

  最近几年比较流行的企业应用软件MES,EAM等企业应用软件,都是在企业管理的流程中,融入设备的管理、监控数据。而企业应用软件相对复杂,对软件的开发管理、开发环境、测试环境的管理、版本控制、协同开发等工具都相对完善。但在现有的开发环境中,如何增加对设备的管理、设备连接的管理,是开发工具需要提供的功能。

  传统的企业应用软件是以提供解决方案的模式,将已经测试通过的程序部署到一个运行环境中。但按照工业4.0的蓝图描述,未来很多软件是运行在CPS(我认为是工业的物联网平台),是SaaS化的软件,运行在PaaS环境下,那么PaaS环境下的软件如何开发?有没有软件开发工具支持PaaS环境下软件的开发?将PaaS环境下开发的程序自动部署到测试环境测试?并将测试成功的程序自动发不到运行环境中,提供正式的SaaS服务?

  如何对软件版本管理?传统的解决方案形式的软件开发的版本控制,如果对A客户做了定制,部署在A的系统上,只有一个版本,相对简单。

  但如果A企业的某款产品,第一批产品,使用一个版本的软件;因为产品升级,第二批产品使用另外一个版本的软件。那么这家企业对不同硬件产品的软件版本如何管理?

  对于不同版本软件的装载如何动态负载均衡?比如A产品使用第一个版本的产品3万台,使用第二个版本的产品2万台,如何在应用环境中,动态加载软件实例,保证这些产品通讯的性能?


  以上问题,都是未来物联网PaaS平台供应商需要解决的问题。但现在物联网平台供应商可能还没有意识到的问题。


PaaS功能框架

  看一下IBM的图片


 

  在图中,灰蓝部分是平台供应商提供的服务,蓝色部分是客户维护的功能。对于PaaS平台而言,PaaS平台的客户维护应用程序数据。而PaaS平台供应商提供以下功能:运行环境、中间件、操作系统、Virtualization、服务器、存贮、网络

  从IBM的架构中,软件开发工具这部分功能,包含在了中间件中;IBM的中间件主要是WebSphere,是IBM的软件平台,包含编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。


开发工具需要借鉴WebSphere功能

从软件开发工具而言,最值得借鉴的是IBM websphere的功能。包括:开发工具、交互功能、流程集成、基础设施集成等方面的功能。

WebSphere是伴随着J2EE的发展而发展的。早期的Java开发,没有集成开发环境,使用编辑工具,通过命令行编译、部署。

IBM早期推出的J2EE的开发工具是Visual Age,后来IBM弃用Visual Age,支持了一个开源的开发项目Eclipse,基于Eclipse框架,IBM发展了开发工具WebSphere,早期的Webshpere是一个包含J2EE的运行环境的开发工具,后来逐步发展出现在的功能。

Websphere的发展,一方面是因为B/S架构框架的流行,以及J2EE在企业应用占据主流位置,另外一方面也是因为SOA架构的普及。在这个发展过程中,IBM完善了传统架构下的软件开发。

而在未来云计算普及之后,在PaaS平台下,PaaS平台供应商必须提供一套好的工具,帮助企业开发者快速开发、部署一款新的产品。

PaaS平台供应商提供的开发工具的易用性,便捷性会是未来平台的一个竞争要素。


AbleCloud案例

第一次了解AbleCloud,是在CSDN组织的MDCC 2015年大会上,在智能硬件专场,我是主持人,Ableclound的创始人陈鹏介绍《IOT的挑战与AbleCloud应对之道》,听了陈鹏的演讲,很多案例还是通过源代码来介绍的。我当时的感觉是,AbleCloud应该提供更好的软件开发的工具。(因为早期经历过用edit plus开发j2ee程序,曾经用程序实现负载均衡,后来J2EEserver,实现了动态负载均衡,然后又出现了集成开发环境,集成开发环境中增强了版本控制等功能,当时感觉AbleCloud应该有完善的开发工具)。

第二次与AbleCloud创始人李海磊交流时,李总一直强调AbleCloud的性能,因为AbleCloud团队,有百度最早一批做云计算的技术大拿,所以云计算的大规模并发能力是其核心竞争力。但我却一直引导李总关注开发工具,我在谈中间件的问题。

当9月28日与Ablecloud另外一位创始人孙文现交流时,终于听到了AbleCloud重视这个领域的问题。

AbleCloud遇到客户的一个问题:他们的客户提供的硬件的服务软件有多个版本,而每个版本管理的硬件的数量都非常大。

如何管理程序性能,包括更好的为所有硬件服务动态加载计算资源?哪些计算资源配置那个版本的软件最优?如何将硬件与对应的软件版本连接?AbleClound的客户如何管理自己软件的版本(运行状态的软件版本控制)?

这里的版本控制远比软件开发的版本控制复杂,一方面软件有不同的版本?不同版本的软件需要对应不同的运行态程序(软件包)?运行态程序部署在服务器位置对应关系?根据动态的运行对资源的需求,这些运行态的软件包需要加载在哪些服务器上?硬件设备还要能够找到相应状态的程序。


这一系列复杂问题,AbleCloud帮助一家客户,用程序自动完成,帮助客户降低了运营管理成本。从这个客户,AbleCloud意识到软件开发相关的一系列管理的重要性,开始重视开发工具。


期待未来AbleCloud的核心竞争力能够加上便捷的开发工具这一项。

  作者:许永硕

  该作品已获作者授权,未经许可,禁止任何个人及第三方转载。






楼主最近还看过



wayaj

  • 精华:30帖
  • 求助:95帖
  • 帖子:5269帖 | 8770回
  • 年度积分:0
  • 历史总积分:28783
  • 注册:2020年5月25日
发表于:2016-10-19 11:28:55
1楼

期待未来AbleCloud的核心竞争力能够加上便捷的开发工具这一项。


热门招聘
相关主题

官方公众号

智造工程师