统一描述、发现和集成UDDI(universald escription,discovery,and integration)是服务登记的标准。每项SOA服务都有一个与之相关的服务品质QoS(qualITy of service)。QoS的一些关键元素包括安全需求(例如认证和授权)、可靠通信、以及谁能调用服务的策略。如图1所示,基本的SOA架构包含了SOAP、WSDL、UDDI等支持服务请求者和服务提供者进行交互,以及用于Web服务发现的规范。服务提供者通常用WSDL来描述它所提供的Web服务,然后将该WSDL描述发布;服务请求者可以通过UDDI或者其他注册中心来获取WSDL描述,请通过向服务提供者发送一个SOAP消息来请求执行服务。基于SOA的MES系统的关键是如何对服务进行合理描述,描述后发不到UDDI中,服务的请求者则要调用服务发现引擎找到需要使用的服务。
2. ESB
企业服务总线ESB(enterprise service bus)是一种可以提供可靠的、有保证的消息技术的新方法。ESB中间件产品利用的是Web Service标准和公认的可靠消息接口协议MOM。ESB产品的共有特性包括连接异构的MOM、利用Web Service描述语言接口WSDL封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。
随着Web服务技术的发展,控制层的供应商以及标准制定者逐渐遵循基于服务的体系结构,典型代表是OPC组织推出了基于Web服务的OPC XML-DA,并于2003年的7月份发布了OPC XML-DA的说明文档1.0。OPC XML DA用基于XML的Web服务概念,用SOAP(简单对象访问协议)作为对应用程序共享消息进行包装的标准协议。OPC客户端和服务器之间通过HTTP协议传输Web服务。OPC XML提供一种比较容易的方式用于通过Internet发布OPC数据信息,为企业自动化过程控制系统集成提供广泛的连接特性。最新定义的OPC UA更是通过应用SOA,定义了一套集成的服务集,解决了现有的OPC规范在应用时服务重叠的问题。而所有的这些都为实现基于SOA的MES系统提供了可能。因此,图2描述了在企业不同层次(企业层、车间层和控制层)的服务提供者,应用他们提供的服务,可以构建动态的应用系统,而用户则需要业务流程的建模。在车间层,实际上这里就是MES系统,包含了多个模块,如车间数据采集SFDC(shop floor data collection)、库存管理、有限资源计划、工作单元控制、运输、工具管理和工厂监控系统(FMCS)等,通过应用SOA的架构,这些模块都可以由Web服务接口、ESB消息传输机制以及应用BPEL动态建模来创建一个上与企业层系统(ERP、数据仓库或MIS)、与控制层系统(PLC、SCADA、RFID或HMI等)集成的MES系统。如图2把MES系统放到整个企业环境中,描述了基于SOA的系统架构是如何实现整个企业应用系统的集成。企业的供应商提供了维护、培训、维护计划或者设备故障诊断等服务,在客户需求方面,客户要求企业提供产品追踪和回溯的服务,此外客户服务方面还要求企业提供可承诺量ATP(available to promise)服务,而企业内部本身也包含了很多私有服务。通过将这些服务组合在一起,则可以创建符合企业业务流程的MES应用系统。同时,采用Web服务适配器可以使得Web服务可以与没有用Web服务开发的系统相通信。以下几种示例系统可以用Web适配器:内部开发的系统、打包的软件、数据库系统、CORBA和DCOM。如图3所示,当消息路由使用Web服务的时候,消息路由只需要和Web服务连接而不需要和每一个系统连接。由于目前企业内部有可能实施了部分的MES功能,这是因为企业是功能型驱动的业务模式,企业不可能在一开始就完全规划好整个MES的系统,如企业发现需要将内部的工具包括切削刀具等进行管理,从而实施了刀具管理,但随着业务需求的增加,企业有可能需要实施其他的功能模块,这个时候原有的系统模块就需要与整个MES系统集成。为了保护原有的投资,则可以将刀具管理系统应用Web服务适配器封装工具(如iWay软件的通用适配器套件)封装成Web服务,从而可以将已有的应用系统集成到整个SOA架构的应用系统中。