蔡金莹,向 峰,周 平,周 顺
(1冶金装备及其控制教育部重点实验室(武汉科技大学),武汉 430081;2机械传动与制造工程湖北省重点实验室(武汉科技大学),武汉 430081;3武汉科技大学精密制造研究院,武汉 430081)
工业互联网作为国家推进“中国制造2025”的主要方向,是成为制造强国和信息强国的重要支撑,是实体经济全要素的枢纽、资源配置的中心和智能制造的核心。当前,生产型制造向服务型制造转型已成为制造业发展的重要趋势。因此,如何可靠稳定的支持企业实现跨地域、跨组织的完成制造协同协作工作,成为支撑制造服务协作平台(Manufacturing Service Collaboration Platform,MSCP)运行的重要基础。
在信息技术还未与制造业深度融合的初期,制造网格(Manufacturing Grid,MGrid)和应用服务提供商(Application Service Provider,ASP)作为制造服务协作平台的早期的代表,以实现异构、分布制造资源的共享和协同工作为目标,达到快速满足市场需求、降低企业制造成本。随着互联网的不断发展和企业应用的范围不断扩大,制造模式逐渐从单主体单阶段制造模式和多主体单阶段协同制造模式转向多主体跨阶段协同制造模式和多主体按需获得制造能力模式,工业互联网下的制造服务协作平台结构也变得越来越复杂。当制造资源达到一定数量时,整个系统将面临灵活度差、延伸性差、耦合严重、服务监控和性能评估难以进行等问题。并且,当某一个制造服务出现故障,整个协作过程就会出现部署频繁,维护困难等问题,导致整个制造任务无法持续开展,进而无法达到用户的制造需求。
随着工业互联网和制造业的进一步融合,以协同制造和服务按需使用为核心的云制造(Cloud Manufacturing,CMfg)发展迅速。CMfg是面向服务的架构(Service-Oriented Architecture,SOA)倾向于将制造资源成为基于标准协议的、能够重复使用的、可被扩展的、具有灵活性的制造服务。用户可以向制造服务协作平台提出设计、制造、计算等服务需求,制造服务协作平台依据用户的需求,为其提供服务筛选、服务匹配和服务组合。但制造服务协作流程中仍存在制造资源动态变化快、制造任务交付速度慢、平台维护困难等问题,这促使制造服务协作平台探索更加优质的平台架构以实现制造服务协作的智能化与信息化。
微服务架构(Microservice Architecture)作为一种新型的系统架构设计风格,是解决当前制造服务协作平台存在问题的方案之一。微服务架构提倡去中心化思想,追求服务化,满足制造服务协作平台的主要流程诉求,目前众多学者对微服务展开了研究,Camilli等人提出了一种基于工作流的微服务组合建模形式化方法,并指定了一种基于Petri网的微服务形式化语义,以工作流组合的形式来验证微服务组合的可行性。李苏璇基于微服务架构在SaaS应用构建过程中的应用,提出一种微服务的高可用管理方案。郭栋等人基于轻量级容器技术和微服务架构,提出了一种具有较好扩展性、规模化部署、容灾和灵活配置等特性的云件PaaS平台。在智能制造应用方面众多学者对其展开了研究,D Salikhov等人提出一种基于微服务的IoT平台,提高了平台的可扩展性、可靠性和易用性,并充分展示了其提供外部服务的优势。相铮基于Docker容器虚拟化技术,结合制造执行系统云平台化的发展趋势,设计微服务制造执行系统部署架构。黄启启等人提出一种基于微服务的仓储管控系统架构,实现仓储业务的分布式集成。周文坤等人分析了微服务架构的ERP应用系统的优势及挑战。以上文献研究了微服务架构在不同的复杂系统中的应用,为微服务架构面向制造服务协作平台的可行性打下了基础。
基于微服务架构的制造服务协作平台意味着一切功能都是微服务,在实现多种微服务的分布式集成、通信、持续监控具有良好的优势。当前,制造服务协作平台中存在大量异构的制造资源,实现这些制造资源的实时、灵活监控是保障整个平台中制造任务正常完成的重要前提。
本文为解决制造服务协作流程中存在制造资源缺乏实时监督、数据访问拥堵、制造服务协作平台维护困难等问题,提出了一种基于微服务架构的工业互联网服务制造服务协作平台,构建了制造服务协作平台的架构。在此基础上分析关键方法,并研究了微服务架构下制造服务协作平台的运行流程,有效地解决了目前制造服务协作系统所面临的问题,实现制造服务的轻量化。
微服务架构是从单体架构演化而来的一种架构模式。在基于微服务架构的工业互联网制造服务协作平台中,将机器、物料、产品、人力、和软件制造资源和制造能力,进行统一封装,形成制造微服务(Manufacturing Microservices,MMS),MMS之间采用轻量级协议进行沟通,呈现出单元小型化和微型化的特征。制造协作平台基于制造任务的需求,将整个复杂的制造任务拆分成多个制造子任务。制造子任务由一个或多个可以被独立管理、部署和扩展的MMS组织的服务集合协作完成。并且,每个MMS拥有独立的数据库,每个微服务只需以可靠的服务质量完成自身的制造服务。MMS可以在短时间内被重新部署和改变,服务的失信和失效不会对整个复杂制造任务造成很大的影响。而在单体架构中,各制造服务被部署在一个整体的架构中,无法独立运行,所有的制造服务基于数据库提供的信息一致性标准,共用同一个数据库,所有的业务数据、业务逻辑和流程被集合在一起,只有在制造规模小的情况下,才可以很好的而满足制造任务的需求。单体框架和微服务框架图对比如图1所示。
图1 单体架构与微服务架构对比图Fig.1 Comparison between monolithic architecture and microservice architecture
相比于单体架构,微服务架构在工业互联网制造服务协作平台应用具有以下优势:
(1)易管理:单个MMS专注于单一的制造任务,当平台中的MMS出现变更时,仅需对这特定的服务进行重新管理,无需调整整个制造任务。较单体架构更加可控。
(2)可独立部署:每个MMS都是一个独立的制造过程,服务粒度划分小,具有独立的数据库和制造环境,这一自治性使得服务可以独立的部署。
(3)稳定可靠:微服务架构重视服务的可用性、流量的负载均衡,失效和失信的MMS会被隔离在内部,加上配套监控机制使得平台的运行更加可靠。
(4)灵活度高:MMS的细粒度特征在提高制造效率、缩短制造需求响应时间有明显的效果,可以通过平台实现制造服务的自动组合和筛选。
综上分析,微服务架构在很大程度上简化了制造服务的创建、集成、部署及运行流程。由此可见,微服务架构更加符合当前工业互联网制造服务协作的发展新趋势。
工业互联网服务协作平台以各类制造资源和制造能力为构成要素,以为全生命周期制造活动提供按需使用、稳定可靠、获取方便的制造服务为目标,以传感器采集的多源异构类数据为信息来源,并融合互联网、云计算、虚拟化等先进的制造技术,有效建立稳定可靠的制造服务协作平台,实现制造服务协作的制造资源接入和发布、产品制造、制造任务交付等全流程功能操作。
基于微服务架构的工业互联网制造服务协作平台物理架构从底层到顶层分别由基础层、共享层、制造应用层、微服务层组成,如图2所示。
图2 基于微服务架构的工业互联网制造服务协作平台物理架构图Fig.2 Physical architecture diagram of industrial internet manufacturing service collaboration platform based on microservice architecture
(1)基础层。基础层是保障所有MMS可靠运行的关键。工业互联网制造服务协作平台的基础层主要包含防火墙、网关、服务器、数据库、操作系统等要素。管理服务器对制造服务起到保障安全、预警及监控的作用。当平台中出现制造资源访问失败、制造任务发布错误、制造资源配置不合理等故障时,可以通过服务监控、服务授权、日志分析、服务降级等功能,实现对微服务的高效管理。
(2)共享层。共享层实现了制造服务协作平台中信息流的交互与共享。制造平台中MMS的制造任务命令传达需要在多层中进行,共享层包含DNS、RPC、服务注册和发现中心Eureka组件等要素。服务注册和发现中心是共享层的核心要素之一,制造服务协作平台将制造资源以服务的形式封装注册到服务中心,注册服务中心记录了所有MMS的物理地址和制造服务参数等信息。
(3)制造应用层。应用平台层为服务监控、断路器和容错处理Hystrrix、制造服务流程管理、服务发布、服务查询、服务筛选、服务组合等功能的实现提供支撑,为用户提供“按需服务”。
(4)微服务层。微服务层由基础微服务和应用微服务两个部分组成。是MMS以及MMS所有相关的事物所在的层,与下方的基础层、共享层和制造应用层相互独立。
基于物联网和虚拟化技术的制造服务协作平台,将制造资源和制造能力封装成制造微服务形式,具体流程如图3所示。采用可拓展标记语言(Extendable Markup Language,XML)进行标准的服务化描述,实体资源经过标准化分类后异构为多种不同的资源池,赋予其制造属性和行为,并向上提供统一的数据接口,为各类制造任务所灵活调用,为制造服务的查询、管理、筛选、组合等提供支持,实现制造资源高效集成和高效利用的基础。其中,每个制造微服务的服务化描述如下所示:
图3 制造资源封装流程图Fig.3 Manufacturing resource encapsulation flow chart
其中:MMSID表示服务标识;MMSAddress表示其物理地址;MSSfunction表示该微服务的执行主要功能;MMSType表示服务类型;MMSProvider表示制造服务商;MMSState表示当前状态;MMSParameter参数信息;MMSOthers为其他信息。
制造服务协作追求灵活管理服务。如图4所示,Eureka中心为制造资源提供商提供服务注册、服务发布及服务发布的功能,为制造任务需求方提供用户用户注册和制造服务订阅的功能。制造任务需求方能够从Eureka中心获取查询获取制造资源提供商的注册信息。如当用户向MMS(如仿真计算服务)发送发起制造协作时,通过查询服务注册中心,找到MMS的位置,从而获取该服务实例。Eureka框架组成服务注册中心集群,各注册中心之间相互注册当前注册中心已有的MMS,当一个注册中心出现故障,并不会影响注册和查询服务,从而实现注册中心的高可用。
图4 服务注册与发现架构Fig.4 Service registration and discovery architecture
良好的沟通过程能够提高制造流程的可靠性。在制造服务协作系统中,各制造微服务之间基于制造任务形成制造微服务集,采用轻量级通信协议进行P2P节点通信,占用极少的平台资源,且互不影响,呈现松耦合状态。在微服务架构中,制造任务提供商可以直接与任一制造资源协作方进行通信,而不需要再找制造服务协作平台的运营商。以实现制造资源提供商做出更快地响应,缩短制造周期的目的。在执行制造任务MT的通信总时长ST计算公式如下:
其中,TW为微服务请求等待时间;TD为微服务的请求延长时间;为该项制造任务中的MMS数量。
每个制造微服务都有Eureka client,在server中注册后需要和服务中心保持“心跳”。此外,采用“心跳机制”定时同步与感知微服务的当前服务状态,即在规定时间内持续与平台确认该服务正常运行的状态,在不影响监测实时性的基础上,通过定期端推送监控信息,从而实现远程虚拟化监控功能。若某个微服务出现服务不可用和请求超时或超时次数超出一定范围等问题,则平台将会对这些微服务进行服务降级或者移除,缓解请求阻塞,缩小对制造服务协作平台的影响,提高资源的高可用性。
API网关为MMS提供规范及标准化的接口,Ribbon负载均衡组件负责协作平台流量的分发,Hystrix服务熔断机制通过记录和监测协作平台的实时运行状态及制造任务协作情况。API网关、Ribbon负载均衡组件和Hystrix服务熔断机制从不同维度保障了微服务的健康状况,有效提高了制造服务协作平台的容错性和健壮性。负载均衡模块依据各制造服务的健康状况与负荷,决定下一项制造任务的完成者,保证制造任务可靠的运行。负载均衡评价因素集合为:
其中,response time为响应时间;request times为请求次数;waiting time为等待时间;failure times为失败请求次数;delaylatency为延迟时间。
制造服务筛选和制造服务组合是工业互联网平台实现“按需制造的”核心环节,基于微服务架构的制造服务协作流程如图5所示,具体步骤如下:
图5 基于微服务架构的制造服务协作流程Fig.5 Flow chart of manufacturing service collaboration based on microservice architecture
各制造资源服务提供商将制造资源分类之后,通过虚拟化技术,将制造资源进行标准化描述,生成部署制造服务包,每个MMS都开放服务接口。
每个微服务都是一个独立的服务实例,制造资源提供商在服务注册中心注册其所提供的制造资源,上传制造资源属性、服务价格、服务违约率、物理地址、接口版本等信息。
用户向平台提交制造任务,制造任务被分解成多个制造任务集MTS。用户依据制造任务集需求向注册中心订阅所需要的服务实例,经过服务检索和匹配,平台的注册中心向用户提供匹配的MMS的地址列表。
在分布式制造环境中,采用RPC筛选合适的制造服务,展开一对一或一对多的制造服务协作,从而形成制造服务候选集MRS。
各MMS之间结合制造服务任务和制造服务需求,综合权衡多种因素,进行服务协商,其中协议内容包各自的QoS参数及协作的惩罚和奖励机制。若协商成功,则签订制造服务等级协议(Service Level Agreement),且SLA保存在各MMS的数据库中。
创建分布式MTS协作方案,开始制造任务,调用匹配的MMS,进行服务组合。若出现调用连接超时、请求失败,则采取重试策略;若出现流量突增和负载过高等问题,将Ribbon配置好的算法负载均衡组件分散到各服务提供商上,接收到请求的服务提供商将响应请求,从而实现负载均衡。
监控中心定期向每个服务实例发送心跳监控请求,若某个服务实例隔断时间不连续,则监控中心将移除该服务实例并重新筛选新的服务实例,并启用日志功能。
对最终的制造任务的QoS进行评估,如果MMS在协作过程中出现服务失信或服务失效状况,则制造服务协作平台依据事先签订的SLA对其进行违约金赔偿并将违约信息记录在该服务的注册信息中。
当一项制造任务完成后,则该制造服务集迅速解散。
上述协作流程从多个角度保证了工业互联网平台中制造服务协作的可靠性和稳定性。
(1)通过注册中心和服务发现机制的应用,对制造协作任务进行快速创建、部署,极大地提高制造任务的交付速度。
(2)基于微服务架构的组件,断路器和熔断处理Hystrix使得各MMS更可靠的进行制造消息共享,监控技术持续的分析各制造服务的实时行为,保障了制造任务的稳定执行。
(3)协作流程中引入服务等级协议,能在很大程度上降低人为干扰,增加服务提供商的制造积极性,从而保证了工业互联网制造服务协作平台的可信性。
基于工业互联网平台的制造服务协作是制造业发展的方向。本文针对制造服务协作平台中存在的制造资源集成困难、缺乏服务监控、平台维护困难等问题,提出了一种基于微服务架构的制造协作平台,通过分析平台的架构和关键技术,设计了基于微服务架构的制造服务协作流程。较好的解决了制造服务协作平台的稳定性及制造任务的服务质量,满足了智能制造对制造平台的新要求,同时也为后续基于工业互联网的制造服务协作的研究工作奠定了坚实的理论基础。