所谓MES系统架构,是指MES系统的基础组织,包含各个构件、构件互相之间与环境的关系,以及指导其设计和演化的原则。MES系统架构主要指MES的软件架构或IT架构。MES作为大型软件系统,其系统架构对于MES系统的设计开发、应用部署以及升级维护等均具有十分重要的影响。基于先进架构的MES系统具有开放式、客户化、可配置、可伸缩、易集成等特性,可支持针对企业业务流程的变更或重组进行系统重构和快速配置,以适应现代制造环境的变化。
1.基于改进C/S结构与组件技术的三层系统架构
MES软件系统一般由三大部分组成,即用户界面部分、业务逻辑部分和数据储存部分。对于早期的专用MES系统而言,上述三大部分是紧密结合、密不可分的;对于集成化MES系统,为了保障系统各功能之间的数据集成性,将数据集中到服务器上,实现数据共享,形成了具有两层结构的C/S架构;发展到可集成MES阶段,为了实现系统的可集成性与可重构性,将三部分独立开来,并进一步与组件技术相结合,形成了如图1所示的基于改进C/S结构与组件技术的MES三层系统架构。其中,表示层用于界面引导,接受用户输入,并向应用服务器发送服务请求,显示处理结果;业务逻辑层用于执行业务逻辑,向数据库发送请求;数据存储层用于执行数据逻辑,运行SQL或存储过程。
图1 基于改进C/S结构与组件技术的MES三层体系统架构
上述基于改进C/S结构与组件技术的MES三层系统架构的最显著优点是实现了MES业务逻辑与表示层的分离,并可实现功能组件的重用,从而大大提高了MES系统的开发效率。基于组件技术开发的MES具有良好的可配置性、可重用性、可扩展性和可集成性,可以较好满足现代制造企业对MES的需求。但上述C/S架构也有其明显的局限性。首先,该系统架构下的MES组件是面向功能的,粒度较小,不能实现系统与制造业务的良好对应。其次,MES系统客户端与服务器端的实现必须采用相同的构件体系,且组件须是同构技术,从而制约了系统自由扩充的实现。第三,基于该系统架构的MES系统往往只能部署在局域网中,无法跨网运行,限制了异地制造协同的实现。最后,基于该架构的MES系统虽然更新业务逻辑或数据变得容易,不需要在客户端机器上重新安装新版本的用户界面,但是客户端跟业务逻辑的关系仍较紧密,如果表示层软件发生变动,仍需要重新安装客户端。基于上述不足,出现了基于B/S结构的MES分布式系统架构。
2.基于B/S结构的MES分布式系统架构
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。在某些制造业的生产车间,生产现场条件相对比较恶劣,如果采用C/S结构的MES系统,对系统硬件的配置要求较高,成本会大幅度增加。因为相比C/S结构而言,采用B/S架构MES不用像C/S结构的MES那样在安装和升级时,需要到每一台客户端进行客户端的配置,只需在服务器上进行一次安装升级即可。在客户端只需浏览器,无需额外的配置,对客户端计算机配置要求低,客户无需再投入资金购买配置高的计算机。这样使得软件的维护和升级较为方便,可实现系统的无缝升级,大大降低了系统的维护成本。此外,由于B/S架构操作性强,用户可以在任何一台装有浏览器的主机上使用系统,而不需要专门的客户端软件,克服了传统C/S结构安装和维护困难的不足。而且,B/S实现了C/S结构不能实现的很多功能,如远程操作和分布式操作等。如此,用户可在外网访问到MES系统而不局限于只能在内网,从而大大提高办公效率。
基于B/S结构的MES分布式系统架构如图2所示。该架构亦由三层组成:第一层是表示层,由基于Web浏览器的标准客户端和基于专用软件的专业客户端组成,用于实现用户请求与人机对话;第二层是应用逻辑层,是由Web服务器采用HTTP协议来处理表示层发送过来的用户请求,由相应的功能组件来实现客户的具体应用要求。在应用逻辑层,MES的功能组件以软构件的形式集成在系统框架(软总线)中,并通过应用服务器对外提供MES应用服务;第三层是数据库层,包括存储历史数据的关系数据库和存储实时数据的实时数据库。该层也可以是一个抽象的数据层,包括各种数据资源、数据库文件、XML文件,以及图标程序文件等。应用逻辑层在执行业务逻辑的过程中,向数据库层发送数据请求,由数据库层执行数据逻辑,运行SQL或存储过程。
图2 基于B/S结构的MES分布式系统架构
上述基于B/S结构的MES系统架构具有如下特点:(1)基于Web技术,采用HTTP与HTML,使得表示层得以集中控制,并使用客户端来显示数据、与用户互动,软件变更时只需在服务器上进行一次升级安装即可,而不需要重新安装整个客户端应用软件。(2)允许更灵活地部署表示层、业务逻辑层与数据存取层。允许将业务逻辑跨不同服务器分布,将表示层与业务逻辑层混合在一起,或将业务逻辑层与数据层相结合。(3)系统可扩展性好。(4)系统硬件成本低。(5)支持外网访问、远程操作、分布式操作。
但B/S架构存在通信开销较大、安全性差和响应速度慢等不足。随着互联网的高速发展和服务器性能的显著提高,B/S结构的性能速度有了很大改善,从而使得这种MES架构的应用也越来越广泛。
3.基于SOA面向服务的MES系统架构
SOA(service oriented architecture,面向服务的系统架构)是一种企业应用体系架构,该架构提供了一种编程模型,使得分布部署在网络上的服务组件能够被其他应用程序或服务发现和调用。如图3所示,SOA中的服务需求者是一个应用程序、一个软件模块或需要服务的另一个服务。它发起对注册中心中服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求,它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。服务注册中心则是是服务发现的支持者,它包括一个可用服务的存储库,并允许感兴趣的服务使用者可以发现和访问该服务。
图3 面向服务的系统架构
“服务”是SOA中的关键概念,成功实现SOA的关键是为可重用库中的每个服务确定正确的设计与功能,且确保可重用的软件服务与业务流程完全一致。SOA是基于面向对象技术和组件技术之上更高级别的抽象。基于SOA的系统将系统功能打包成一个可互操作的服务套件,这种服务套件可用于多个不同的系统或多个业务领域。服务之间具有松耦合、粗粒度、位置和传输协议透明的特性。
SOA的实现可以基于CORBA、Web Services等技术,目前Web Services是实现SOA的重要手段,其信息可以被不同形式的客户端所使用。Web Services是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Services能与其他兼容的组件进行交互操作。Web Services建立在开放标准和独立于平台的协议之上,通过HTTP(超文本传输协议)使用SOAP(简单对象使用协议),以便在服务提供者和消费者之间进行通信。服务通过WSDL(Web服务描述语言)定义的接口来公开,WSDL的语义用XML来定义。UDDI(一种用于描述、发现、集成Web Service的技术)是一种与语言无关的协议,用于和注册中心进行交互和查找服务,通过Web服务的组合和编排可以实现企业的业务流程。
图4所示为基于 SOA 面向服务的MES系统架构。基于SOA的架构设计以服务为关注点,在传统的MES三级分层架构模型的基础上主要增加了服务层,通过服务化的封装把MES系统内部具体的业务逻辑进行屏蔽,仅以服务的形式暴露出用户可用的业务活动的集合,从而提高服务及服务内部业务逻辑的重用,可以通过对粗粒度松散耦合的服务进行组合和部署就能构造出复杂的系统逻辑。结合MES系统功能模块的定义,将MES各功能模块封装成系统服务放置于系统应用层,每个服务均由服务层、逻辑层和数据访问层组成。
图4 基于SOA面向服务的MES系统架构
综上所述,基于SOA面向服务的MES系统架构具有如下特点:
(1)服务化。在SOA架构下,服务是构建MES的基本单元,服务的请求、发布、查找、组合运作是MES系统的基本运作模式。车间所有制造资源、软硬件条件、制造知识都被封装成服务。车间生产运作或MES运行过程具体体现为制造服务的匹配、选择、组合、执行、监控和重构。
(2)集成化。基于语义Web服务,采用基于语义网关的系统集成框架,消除系统之间集成对象在语法结构和语义层面的异构性,实现系统的无缝集成。
(3)功能扩展。MES系统的应用范围从单一车间扩展为网络环境下多车间制造过程的协同运作管理。(支持网络化协同制造)
(4)开放性。MES系统的构建基于面向服务技术,服务之间的松散耦合性使系统具有良好的可扩展性,各类制造服务和功能能够方便地按需加入到MES系统。
基于SOA面向服务的MES系统的物理架构及系统部署方案如图5所示,它描述了系统中软件和硬件的物理架构。
图5 基于SOA面向服务的MES系统的物理架构
(1)客户计算机:部署客户端应用程序,提供用户访问系统服务的界面接口,用户通过预装浏览器访问远程服务器上的Web应用,或者使用智能客户端应用程序与远程应用服务器进行交互。
(2)Web 服务器:该服务器用于部署Web应用或Web Services。Web服务器是可以向发出服务请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。
(3)应用服务器:系统的服务层、业务逻辑层和数据访问层都部署在该节点服务器之上,用于处理核心业务逻辑。
(4)数据库服务器:使用独立的数据服务器部署数据库应用,为系统提供数据的存储功能,保存系统中产生的数据信息。
4.MES微服务架构
传统的服务应用的开发方式是将整个服务应用的数据库、接口、页面等进行分层设计、统一开发,然后逐层实现。在这些模块或接口中,只要有一个没有完成开发,那么整个应用系统将无法正常运行。SOA提出在对软件进行架构设计时,把整个应用服务根据业务细化成多个独立的小的服务,即低耦合及面向服务流程的思想。但是在SOA的架构中,企业服务总线(EBS)仍处于非常重要的位置,致使整个系统的SOA架构仍很难实现完全的面向服务以及完全的组件化,SOA的应用存在一定的局限性。
微服务架构(micro service architecture,MSA)是在2012年被提出的,其思想本质上和SOA一脉相承,是SOA的变体,它把SOA的理念进行了进一步的升华。MSA的核心思想是在系统设计开发阶段,将单个应用划分为一系列微小服务来实现系统的所有功能。MSA是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。这些服务通常有自己的堆栈,包括数据库和数据模型;通过REST API,事件流和消息代理的组合相互通信;它们是按业务能力组织的,分隔服务的线通常称为边界上下文。相比于SOA,MSA有如下特点:
(1)MSA强调去ESB、去中心化、分布式,所以MSA能带来更大的灵活性,为开发系统提供更加轻量级、效率更高的设计模式。而SOA还是以ESB服务总线为核心,MSA则使用轻量级协议,如HTTP、REST等。数据存储层面,SOA是共享数据存储,MSA则是每个微服务有独立的数据存储。
(2)从划分服务粒度而言,MSA侧重于服务划分的细粒度、可重用性,每个方法都可以成为一个独立的微服务,每个微服务负责明确的任务,并且将处理任务的结果以轻量级API的形式返回给外部;相比之下,SOA对服务的划分没有这么细致,主要是根据MES的业务功能来划分服务,以减少服务数量,简化服务调用以及服务管理。
(3)在软件开发模式上,SOA注重共同治理和标准,MSA则更注重团队协作和自由选择,团队可以为不同的组件使用不同的堆栈,可以更轻松地更新代码。SOA的目标最大化应用程序服务的可重用性,重点关注业务功能重用,当系统改变时需要修改程序;MSA则专注于解耦,更关注边界上下文,系统的改变是创建一个新的服务。MSA的组件可以彼此独立地进行缩放,从而减少了因必须缩放整个应用程序而产生的浪费和成本。
(4)从部署方式上,MSA应用Docker技术不依赖于任何服务器和数据模型,是一个可自动化部署的全栈应用,每个微服务都运行在自己的进程里。而SOA则通过不同层进行打包,比如展现层打包war包,业务层打包为jar包等。
MES微服务架构如图6所示。该架构主要由表示层、微服务管理层、微服务层和数据库层组成。
图6 MES微服务架构
(1)微服务层:主要提供MES业务功能所需要的所有独立的微服务,包括制造过程管理微服务、文档管理微服务、日志管理微服务等。每个微服务可能有自己的数据库或者多个微服务公用一个数据库。每个微服务需要对外提供轻量级API接口。
(2)微服务管理层:通过微服务管理层来完成对微服务的管理以及处理逻辑,包括微服务网关、微服务注册与发现、微服务接口与微服务代理等。当微服务启动时,会自动将其信息注册到服务注册表中,比如每个服务的IP和端口。当微服务客户端表示层发出请求时,将请求发送到微服务网关中,微服务网关读取请求数据,并从服务注册表中获取对应服务的信息(IP与端口)。最后微服务网关主动去调用下面对应的微服务。
(3)微服务客户端表示层:主要是通过微服务管理层中相应MES业务模块的服务代理向微服务服务端发送请求,经过微服务管理层内部处理后再将请求传递给相应模块服务的服务接口进行MES服务端处理,完成后将相应信息按照相反顺序依次传递给MES客户端,这种传递一般都是通过调用API来实现的。
相比于传统的单体架构,基于微服务架构的MES实现功能服务化,在系统设计开发、应用与维护等方面具有明显优势,其设计开发模式是对现有复杂大型单体应用架构以业务为单元进行拆分,每个拆分的微服务应用都可以单独部署和测试,可以采用单独的技术架构、独立的数据存储、独立的开发运营团队支撑,快速以微服务应用为单位进行弹性扩展,通过降低各个业务单元之间的耦合关系以简化开发过程,降低开发成本。此外,MES微服务架构支持工业云商业新模式,并提供广泛的移动化支持。
楼主最近还看过