小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署

微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

一、什么是工业微服务

工业微服务是工业互联网平台的载体,是以单一功能组件为基础,通过模块化组合方式实现“松耦合”应用开发的软件架构。一个微服务就是一个面向单一功能、能够独立部署的小型应用,将多个不同功能、相互隔离的微服务按需组合在一起并通过API集实现相互通信,就构成了一个功能完整的大型应用系统。以产品生产为例,就可将其拆解为供应链管理、设备运行状态可视化、生产排程、产线数据分析、操作记录等多个微服务功能模块。

在工业互联网领域,由于工业知识繁杂、工业应用复杂程度高等问题,业内人士普遍认为,使用微服务架构将成为开发工业APP的主流方式。国外主流的工业互联网平台,如西门子的Mindsphere、施耐德Eco Struxure等,都通过云平台支持工业微服务组件的开发、部署和管理,从而达到简化工业APP开发的目的。

二、工业微服务架构和传统开发模式区别

先来看看传统的web开发方式,一般被称为Monolithic(单体式开发)。所有的功能打包在一个 WAR包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了 DO/DAO,Service,UI等所有逻辑。

小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署_第1张图片

单体架构(Monolithic)优缺点

小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署_第2张图片

微服务架构与单体架构相比较,微服务架构恰恰弥补了单体架构的不足,通过有效的拆分应用,实现敏捷开发和部署:

1、由多个独立的微服务共同组成系统

2、微服务单独部署,运行在自己的进程中

3、每个微服务为独立的业务开发

4、分布式管理

5、非常强调隔离性

小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署_第3张图片

关于微服务的一个形象表达:

小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署_第4张图片

X轴:运行多个负载均衡器之后的运行实例

Y轴:将应用进一步分解为微服务(分库)

Z轴:大数据量时,将服务分区(分表)

三、工业微服务架构的特点

小白聊智慧制造之十六:工业微服务实现工业APP高效开发和部署_第5张图片

之所以主流的工业互联网平台都将微服务架构作为开发工业APP的主流方式,是因为微服务架构与传统的架构相比,具备两个显著特点:

1、工业微服务开发和维护具有高度灵活性

每个微服务可以由不同团队运用不同语言和工具进行开发和维护,任何修改、升级都不会对应用的其他部分功能产生影响;而传统的统一整体式框架下对软件的任何修改都有可能对整个应用产生意料之外的影响。

2、工业微服务运行去中心化分布式执行

不同微服务能够分布式并行执行,应用资源占用率相对较小,且微服务间的数据和资源相互物理隔离,单个服务的故障只会导致单个功能的受损而不会造成整个应用的崩溃。

四、微服务支撑工业互联网平台颠覆创新

1、工业微服务颠覆传统工业软件研发方式

在企业里,CAD、CAE、DCS、MES、ERP、SCM等传统工业应用软件往往是面向基础的流程或服务进行设计和研发,并在部署阶段根据用户实际情况进行调整,整个软件研发的成本投入较大、研发周期较长,且不能灵活地响应用户个性化需求。而在工业互联网平台中,则可采用工业微服务的方式将上述软件拆解成独立的功能模块,实现对原有生产体系的解构,随后在平台中构建起富含各类功能与服务的微服务组件池,并按照实际需求来调用相应的微服务组件,进行高效率和个性化的面向用户的工业App研发,整个软件研发的技术门槛和投入成本大大降低。原来需要专业团队和雄厚资金支持的精英化软件研发开始向大众化研发转变。

2、工业微服务打破工业知识封闭传承体系

过去,工业领域中很多经验知识都停留在老师傅、老专家的脑子里,由于个人精力和地域空间的限制,这些经验知识通常只能在很小的范围里发挥作用,而且还存在易出错、易流失、难推广、难传承等问题。如今,当这些老师傅、老专家将自己的经验知识用软件代码的方式固化下来,转化为平台中的工业微服务之后,由于平台所具备的积累沉淀和开放共享特性,这些经验知识就变成了整个企业、整个行业的宝贵财富,能够被更多的人分享学习和使用,创造出更多的价值。同时,新的专业技术人员还能够在充分消化吸收原有知识的基础上实现进一步提升和创新,推动整个工业知识体系的传递延续和迭代更新。

3、工业微服务创造全新平台开放价值生态

随着工业互联网平台中微服务组件池的构建和行业经验知识的持续积累,整个平台既能够为广大第三方开发者提供众多低门槛、易操作、高效率的开发支持手段,形成以工业App开发为核心的平台创新生态,也能够为制造业用户提供以工业微服务为基础的定制化、高可靠、可扩展工业App或解决方案,形成以价值挖掘提升为核心的平台应用生态。最终,构建出以工业互联网平台为桥梁、以工业微服务为载体的相互促进、双向迭代生态体系。

五、工业微服务在工业互联网平台的作用

工业微服务实现机理模型算法的模块化、软件化,支撑工业互联网平台中的工业App开发运行。在工业互联网平台中,工业微服务正发挥着承上启下的关键作用。

1、 独立调试、运行和升级,提升易用性和可维护性

基于不同行业、不同领域经验知识所提炼出来的各类原始机理算法模型通常缺少对外调用的接口,也往往难以进行独立的调试、运行和升级,需要用工业微服务的方式将这些机理算法模型集成起来,封装成可独立调试运行的单一功能或服务模块,提升易用性和可维护性。

2、满足工业APP快速运维、持续迭代和个性化定制的需要

在工业互联网平台中基于工业微服务模块进行工业App开发,既能够借助工业微服务并行开发、分布运行的特点,有效发挥平台海量开发者接入、资源弹性配置、云化部署运行等优势,又能够利用工业微服务独立隔离、灵活调用的特点,克服工业App所面临的快速运维、持续迭代、个性化定制等问题。

3、无需专业知识,平台调用工业微服务开发工业APP

工业互联网平台发展的核心目标是通过行业经验知识的积累沉淀和复用推广来带动产业整体水平的提升,并打造繁荣创新的开放价值生态。而工业微服务能够将专业知识和IT技术融合起来,变成不需要关心实现细节的“黑盒”,开发者甚至不需要任何专业知识,就可通过调用平台中各类工业微服务的方式开发出解决行业问题的工业App。

4、工业微服务具有通用化共享能力,便于复制和应用推广

在此基础上,平台将原来处于企业内部的封闭性专业能力转化为面向行业和社会的通用化共享能力,实现在工业微服务能力复制和应用推广,从而成为服务行业、服务区域的发动机和助推器。

六、结语

工业微服务本质是经验知识的软件化和工具化,借助专业化的工具打造通用化的平台。工业微服务架构为工业互联网平台的知识转化和复用提供了最佳技术手段,算法、模型、知识等模块化组件能够以“搭积木”的方式被调用和编排,实现低门槛、高效率的工业App开发,驱动了工业软件开发方式的变革,促进了平台创新生态的形成,工业微服务能力构建已经成为当前工业互联网平台发展的首要任务。

你可能感兴趣的:(物联网研究)