基于SOA的物流公共信息平台设计研究
2012-07-13曲建华徐广印应继来
曲建华,徐广印,应继来
(河南农业大学机电工程学院,河南郑州450002)
物流业被列入国务院十大调整与振兴产业规划以来,政府和企业对物流业的重视逐步落实为具体的行动,物流信息化进程开始加速发展.众多工商企业、物流公司、行业管理部门相继开发建设了一批适应业务发展、满足实际业务需求的信息系统,提高了物流行业信息化水平,降低了物流运作和管理成本[1].由于各个信息系统总体上是按照本部门的实际业务需求开发,缺少统一规划,相应的技术标准、数据标准、实现方式各不相同,应用系统之间相互孤立,信息无法共享.同时随着企业外部竞争环境的加剧,业务流程的调整和变革周期越来越短,传统的IT架构很难适应这种改变.因此解决“信息孤岛”问题,合理利用现有资源,实现各业务系统、业务数据和业务流程的无缝整合、互联互通,实现跨行业、跨地区的业务协同,形成“一体化”的物流信息平台系统成为提高中国物流信息化水平,推进物流服务能力的重要课题.现代物流公共信息平台基于计算机网络通信技术,整合供应链各环节的物流信息、物流监管、物流技术和设备等资源,面向社会用户提供信息服务、管理服务、技术服务和交易服务,是一个开放性的复杂信息系统.物流公共信息平台的建设对于实现供应链上下游企业信息共享和交换、促成企业业务协作、提高服务质量和企业物流运行效率、节约社会资源、提升政府行业监管能力和服务水平具有重要意义,是当前物流振兴规划的重点建设项目.北京、上海等地结合实际启动了多项区域性物流公共信息平台的建设[2,3],平台应用也从早期的门户信息发布、物流信息(车源、货源)发布等较低层次发展到物流交易、物流信息的收集和交换、物流业务的协作等较高应用层次.随着平台用户业务应用范围的扩大、用户数量与系统规模的增长,平台将会面临更加复杂的用户需求,如用户IT资产的重用、服务的快速构建、数据交换的可靠性与实时性、不同平台之间的数据融合与交换等,基于面向服务的架构(Service-oriented architecture,SOA)来构建的物流公共信息平台可以有效应对这些挑战,具有方便集成现有系统、便于重用当前服务、提高系统开发速度、便于业务流程重组的优势[4].本研究以IBM的SOA参考架构为基础,结合当前物流公共信息平台的需求实际,提出了基于SOA的物流公共信息平台的结构设计模型,为平台用户应对未来复杂多变的业务应用需求提供了一种解决思路.
1 SOA的架构与编程模型
1.1 SOA架构的优势
SOA提供了一种构建IT组织的标准和方法,通过建立可组合、可重用的服务体系来减少IT业务冗余,方便应用集成、重用已有IT资源,加快项目开发进程,使IT部门效率更高、开发周期更短、项目分发更快,在帮助IT技术和业务整合方面有着深远的意义.SOA改变了以技术为中心的信息系统建设模式,使得IT技术重新回到业务支撑的角色,提供了一种把原有组件按一定的标准封装为具有文档形式接口描述的服务,从而使服务的使用者和服务提供者之间是一种松耦合关系.这样,一方面可以把遗留系统封装为服务加以复用,提高了投资回报率.另一方面,可以直接调用外部服务提供商提供的服务从而起到复用的作用,具有易于改变、易于扩展的特点,从而支持了业务的快速反应和敏捷性.
SOA统一了业务架构,可扩展性增强.在不同的企业应用程序之间,基础架构的开发和部署将变得更加一致,使得可以更多地将基础架构作为一种商品化元素加以考虑,增强了可扩展性和灵活性.SOA实施允许持续改进业务过程,降低剧烈变革的风险,允许清晰地表示业务流,这些业务流通过在特定业务服务中使用的组件的顺序来标识,给商业用户提供了监视业务操作的理想环境,业务建模反映在业务服务中,流程操纵是以一定的模式重组部件来实现的,这将进一步允许更改业务流并且同时监视产生的结果,因而促进了持续改进.
1.2 SOA参考架构
SOA参考架构(图1)定义了综合的IT服务,包括企业在实现SOA的过程中需要考虑的各种能力,无论使用何种产品和服务,企业可以按照自身情况进行自建的基础上实现这些能力.同时,企业面临新的需求也可以新的需求方式增加新功能和项目级的解决方案.
图1 SOA参考架构Fig.1 SOA reference architecture
SOA参考架构的骨干是连接层,即企业服务总线(Enterprise service bus,ESB),它促进了服务间的通信,提供了所有互联互通的能力,这些能力是调动各种在整个架构中执行的服务所必须的.(1)交互式服务是对SOA人员方面的连接,它提供了将IT功能和数据分配给终端用户,并满足终端用户的特定偏好所需的功能.(2)流程服务以实施业务流程的方式为流程管理和多种服务之间的交互提供了所需的控制服务.(3)信息服务提供了联合、复制和转换数据源所需要的能力,可以通过各种方式实现.访问服务可以从ESB获得现有企业应用系统以及企业数据,这套服务在已有资产应用、打包应用、企业数据仓库以及ESB之间提供了桥接能力.(4)合作伙伴服务提供了业务流程需要的文档、协议和合作伙伴管理能力,这些能力是与外部合作伙伴和供应商进行交互的业务流程所必须的.(5)业务应用服务提供了整合系统中新的应用组件所需的运行时服务.(6)开发服务主要用于利用基础架构来完成定制的产品.(7)IT服务管理服务涉及与规模和性能相关的能力.如边缘服务、集群能力以及虚拟化能力,以促成基于负载模式来有效地利用计算资源.(8)基础架构服务位于SOA架构的底层,用来优化吞吐量、可用性以及性能.
1.3 SOA编程模型
随着面向服务架构使用率的增长,由Web服务API所提供的抽象级别对于有效实现SOA越来越显得力不从心,通过定义SOA编程模型来提高API的抽象级别,可解决当前API集合中的一些问题,降低应用程序开发者直接处理中间件或Web服务特定API时面临的复杂度,简化业务服务的开发,简化作为服务网络构建的业务解决方案的装配和部署,增加敏捷和灵活性,保护业务逻辑资产,使其不受底层技术改变的影响以及改善测试能力.目前流行的SOA编程模型包括微软的Windows通信基础(Indigo)编程模型、Java Community Process的Java Business Integration(JBI)模型和以IMB为首的SCA/SDO编程模型,其中 SCA/SDO以其开放性获得了大量的用户实践,受到了厂商的推崇.
IBM的SOA架构的体系结构由操作系统层、服务组件层、服务层、业务层和客户层组成,服务数据对象(Service data object,SDO)位于服务组件层,解决了现有技术在通用性上的不足,为服务和应用提供一个简单统一的数据模型,方便了系统开发人员.开发人员可以用SDO统一数据访问和处理模式,即使这些数据来源于异构数据源-关系数据库、XML数据库、Web服务或者是企业信息系统.SDO用于SOA中的数据模型的标准化.SDO在SOA架构中主要为SCA构建Web服务提供数据模型支持.
服务组件架构(Service components architecture,SCA)位于服务组件层,通过该模型可以把不同类型的服务(如BPEL,Web服务等)通过统一的方式调用.SCA还提供了一个基于组件的构建模型,可以使其他不同类的服务,比如JMS、Web服务等使用统一的方式来构建.可以通过SCA提供的统一的服务构建模型,可以为SOA架构提供合适粒度的服务.BPEL根据复杂业务流程的需要对多个服务组件按照预定逻辑进行组织和编辑,这就是业务过程层所起的作用.
业务流程执行语言(Business process execution language,BPEL)位于业务层,是实现业务过程层的技术.在SOA系统中,BPEL和业务对象可以共享相同的SDO定义.BPEL可以调用SCA构建的服务模型,而BPEL本身也可以作为服务供SCA调用.BPEL与SDO的很好结合使得BPEL在数据层面上融入了SOA,而BPEL与SCA的很好结合使得BPEL在服务层面上融入了SOA体系结构,BPEL与SDO及SCA一起构成了SOA的基石.
2 基于SOA的物流公共信息平台体系设计
基于SOA的物流公共信息平台的技术架构采用分层结构,从底层的网络设施、数据库等资源,到数据访问组件、业务逻辑组件等仓储管理服务、呼叫中心服务等,以及顶层的业务流程和数据展现,每一层次都最大限度地封装不同的服务,从而达到复用和灵活的目的.SOA架构划分为资源层、组件层、服务层、业务流程层和表示层5个层次(图2).
2.1 资源层
资源层包括网络、服务器、应用软件、数据库等资源.网络基础设施包括互联网和企业内网.数据资源库将各业务系统的基础数据、业务数据,按照统一数据标准,对数据接口的定义、数据的持久化、数据的显示格式以及数据的转换格式等进行描述.
2.2 组件层
组件层用于实现相关的业务逻辑,组件层包括数据访问组件、业务逻辑组件和工作流组件等,数据访问组件是将分布在不同服务器上的异构数据源,通过一个完整数据定义,将各种数据对象描述成统一数据资源视图;业务逻辑组件采用图形化的方式将运算逻辑、逻辑流和服务组装成更大粒度的组件;工作流组件可以把一个工作流程描述成一个服务,由其他模块或者其他系统来调用,其他模块看到的只是一个业务操作接口,而不必关心这个业务对应的是一个业务流程.
2.3 服务层
服务层是将物流公共信息平台所设计的功能及原有系统功能封装为服务.服务提供者、服务请求者和服务注册中心3个实体通过发布、查找、绑定3个基本操作相互作用.服务提供者向服务注册中心发布服务,服务请求者通过服务注册中心查找所需的服务,并绑定到这些服务上[5].服务提供者、服务请求者的角色只是逻辑上的,一个服务既可作为服务提供者,也可作为服务请求者.服务层和业务流程层通过服务紧密联系,服务组件提供了粗粒度的业务功能,他们能够映射业务流程中的任务.服务描述则为业务服务提供了定义明确的合理接口,使得业务流程不必了解业务应用和技术平台的细节就可以方便调用.服务层中得注册服务确保了业务流程曾在必要地时候动态定位和访问服务.服务之间的通讯采用XML格式,独立于业务应用系统.服务层为业务流程提供了基本的最小任务单元,通过对已注册服务和合理组合可以制定出灵活丰富的业务功能.比如通过将线路优化服务、GPS定位服务、GIS地图服务、客户位置信息查询服务、呼叫中心服务进行组合可以构建出满足不同物流企业需求的货物配送业务、货物状态跟踪业务等.
2.4 业务流程层
业务流程层由众多跨部门的、端到端的业务流程和业务活动监督机制组成.一个业务流程由一组逻辑相关,按照合理顺序执行,并产生相应业务成果的任务组成,这些任务符合规定的业务原则.业务流程层同时具有业务流程管理的职能,承担着识别、建模、开发、部署和管理业务流流程的责任.业务流程通过对不同领域的业务服务组合和可服用服务进行编排而得.业务流程层利用已经封装好的各种服务,通过业务流程管理(Business process management,BPM)来构建新的业务流程,从而实现异构信息系统的综合应用[6].BPM将流程作为一种新的数据结构,直接操作和管理.由于每个服务都具有基于标准的开放接口和松散耦合的特点,所以BPM可以方便地通过组合服务来实现业务流程的构建.
图2 基于SOA的物流公共信息平台体系架构Fig.2 SOA based logistic public information platform system
2.5 表示层
表示层为用户提供了一个统一的交互门户和工作平台,用户通过表示层更容易进行业务操作,例如即时通讯、查看任务列表、查看发布信息,也能够把已有数据、服务或界面快速组合到新应用中.表示层还包括SSO(Single sign on)、统一身份认证、访问控制等实现一站式数据服务门户,用户无需访问多个业务系统,而是面对一个统一的平台完成需要的多种应用.
企业服务总线是一种在松耦合的服务和应用之间标准的集成方式,用于实现SOA不同层次之间和内部消息的接收和转发,是SOA中实现服务间智能化集成和管理的中介.物流公共平台的众多用户使用着不同的操作系统、数据库系统、网络系统、应用软件,这些差异存在于不同的系统应用层面,应用ESB可以实现从系统底层到顶层的消息传递,为不同服务之间的交互和不同业务的组合提供切实帮助[7].
3 结语
现代物流已成为跨部门、跨行业、跨地域的以现代科技管理和信息技术为支撑的综合性服务产业,在现代物流中,信息成为提高营运效率、降低成本、增进客户服务质量的核心因素,物流公共信息平台的建设是提高中国物流信息化水平,振兴现代物流的重点工程.物流公共信息平台不仅要在功能上满足各类用户的要求,在架构上也要适应用户业务与IT对齐,支持业务快速变化的敏捷性和灵活性要求以及具有保护用户已有IT资产投资的重用性要求.作者研究了基于SOA的物流公共信息平台体系的结构组成,将其分为资源层、组件层、服务层、业务流程层和表示层5个层次,通过Web Service、业务服务注册中心和存储库、ESB等手段实现上述要求,将物流企业应用系统中的车辆管理、财务管理、EDI、仓库管理、GPS/GIS、配送管理、线路优化等功能抽取封装为基本的服务,通过BPEL对服务灵活编排来构建动态的业务流程.由于不同用户的各类应用系统建设时往往只关注本部门的业务需要,应用范围有限,不同的业务流程之间存在着间断,形成众多的独立的子流程,导致业务流程整合的困难.另外,基本服务的识别和分析也需要对整体业务流程的熟悉和相关工具的支持才能较好的完成,否则容易导致分解出的服务重用性能差,无法满足业务流程灵活性的编排要求.因此,基于SOA的体系架构仅是实现物流公共信息平台的第一步,对不同企业的应用系统进行服务识别,形成丰富灵活的服务组件库,实现端到端的流程整合将是后续阶段实践中更为复杂的任务.
[1] 张 萍,顾国强.基于SOA企业遗留系统集成的研究和应用[J].计算机应用与软件,2011,28(10):103-106.
[2] 赵 争.省级物流信息平台的规划研究[J].计算机工程与科学,2008,30(5):138 -141.
[3] 冯 玖,白尚旺,党伟超.基于SOA的物流信息系统架构研究[J].计算机与数字工程,2009,37(1):193-195.
[4] 孙 利,王春东,常 青,等.基于SOA的物流信息系统的架构分析与设计[J].天津理工大学学报,2011,27(1):21-24.
[5] 王卫星,王晨光.基于SOA的企业信息系统集成框架[J].计算机工程,2010,36(18):29-31.
[6] 高觐悦,黄 斐.基于SOA的Web应用中服务补偿的研究与实现[J].信息系统工程,2011(9):38-40.
[7] 张华娣.基于SOA的物流企业信息化网络平台构建模型研究[J].网络与信息化,2008(4):107-111.