基于SOA的软件系统集成研究
2009-07-05魏文清魏文萍
魏文清 魏文萍
[摘要]介绍SOA相关的关键技术,并结合这些技术描述如何应用SOA实现可集成的、可扩展和通用的MES系统。
[关键词]面向服务架构(SOA)面向对象架构(OOA)软件设计
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1220052-01
一、面向服务架构SOA
面向服务的体系结构或面向服务架构SOA是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA(面向服务的体系)采用面向服务的商业建模技术和Web服务技术,实现系统之间的松耦合,实现系统之间的整合与协同。Web服务和SOA的本质思路在于使得信息系统个体在能够沟通的基础上形成协同工作。因而,融合SOA的基于Internet的制造可以实现分布式的信息系统,这种解决方案可能使静态的或动态的车间管理系统集成进人整个企业架构。罗克韦尔自动化的FactoryTalk集成化生产与绩效套件正是提供了基于SOA的MES解决方案,通过应用SOA架构将所有通用需求因素集中起来放到Factory Talk服务平台上,成为一个统一的工厂生产模式。本文介绍了SOA相关的关键技术,并结合这些技术描述了如何应用SOA实现可集成的、可扩展和通用的MES系统。
二、相关技术
(一)SOA
SOA服务具有平台独立的自我描述XML文档。Web服务描述语言WSDL是用于描述服务的标准语言。SOA服务用消息进行通信,该消息通常使用XML Schema来定义,也叫做XSD(XML schema definITion)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通信也可以看作企业内部处理的关键商业文档。在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的注册中心(registry)来进行维护。应用程序在注册中心寻找并调用某项服务。
统一描述、发现和集成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中,服务的请求者则要调用服务发现引擎找到需要使用的服务。
(二)ESB
企业服务总线ESB(enterprise service bus)是一种可以提供可靠的、有保证的消息技术的新方法。ESB中间件产品利用的是Web Service标准和公认的可靠消息接口协议MOM。ESB产品的共有特性包括连接异构的MOM、利用Web Service描述语言接口WSDL封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。
ESB不是一个应用程序框架,也不是一个企业应用的解决方案,它只是一个基于消息的调用企业服务的通信模块,它可以嵌入到应用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系统中。ESB为实现可集成的MES系统提供了一个框架和简便的方法。
(三)BPEL
面向Web服务的业务流程执行语言BPEL(或BPEL4WS)是一种使用Web服务定义和执行业务流程的语言。BPEL使您可以通过组合、编排和协调Web服务自上而下地实现SOA。BPEL提供了一种相对简单易懂的方法,可将多个Web服务组合到一个新的复合服务(称作业务流程)中。
BPEL基于XML和Web服务构建,它使用一种基于Web的语言,该语言支持Web服务技术系列,包括SOAP、WSDL、UDDI、Web服务可靠性消息、Web服务寻址、Web服务协调以及Web服务事务。BPEL中描述的业务流程定义并不影响现有系统,因此,对升级产生了促进作用。在已经或将要通过Web服务公开功能的环境中,BPEL是一项重要的技术。随着Web服务的不断普及,BPEL的重要性也随之提高。
三、基于SOA的软件系统集成
随着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系统提供了可能。在车间层,实际上这里就是MES系统,包含了多个模块,如车间数据采集SFDC(shop floor data collection)、库存管理、有限资源计划、工作单元控制、运输、工具管理和工厂监控系统(FMCS)等,通过应用SOA的架构,这些模块都可以由Web服务接口、ESB消息传输机制以及应用BPEL动态建模来创建一个上与企业层系统(ERP、数据仓库或MIS)、与控制层系统(PLC、SCADA、RFID或HMI等)集成的MES系统。企业的供应商提供了维护、培训、维护计划或者设备故障诊断等服务,在客户需求方面,客户要求企业提供产品追踪和回溯的服务,此外客户服务方面还要求企业提供可承诺量ATP(available to promise)服务,而企业内部本身也包含了很多私有服务。通过将这些服务组合在一起,则可以创建符合企业业务流程的MES应用系统。同时,采用Web服务适配器可以使得Web服务可以与没有用Web服务开发的系统相通信。
参考文献:
[1]王兵,基于面向服务架构的应用系统开发与集成研究[D].四川:四川大学,2005.
[2]吕希艳,基于SOA的企业信息资源整合[J].中国科技论坛,2006(3).