基于SOA的供应链管理平台设计与实现
蔡荟荃 网络
 供应链管理需要将供应链中各参与方在过去数十年的业务实践中构建的各类管理信息系统有机结合到一起,实现供应链中各实体间的资源共享与业务协同。但是,在整合这些遗留的管理信息系统时人们发现因编程语言差异、通信协议差异和数据差异导致的异构问题已经严重阻碍了现代物流中企业内部和企业之间实现业务协同的进程,“信息孤岛”问题突出。随着面向服务体系架构(service-orien-ted architecture,SOA)的不断推广,SOA在供应链管理中的应用逐渐成为了国内外研究的热点。文献[1]探讨了支撑和实施SOA的若干关键问题,给出了SOA的设计原则、编程模型和实现技术等方面的内容。文献[2]提出了一个基于企业服务总线的供应链知识管理系统架构,但对于企业级应用而言仍缺少可操作性。文献[3]主要以SOA体系为出发点,提出了基于企业服务总线的分布式供应链信息共享平台体系结构,但缺少对于企业实际应用中业务流程建模等方面的介绍。文献[4]提出了基于SOA的汽车SCM实现模型,对汽车SCM的核心环节进行组织再造和业务流程再造。

本文介绍SOA的概念及其涉及的各项关键技术,并提出了一种基于SOA的供应链管理平台。在详细介绍了该平台的体系结构、企业服务总线、业务执行引擎等关键设计之后,本文给出了该平台在以摩托车整车装配企业为核心的供应链管理中的应用。最后,介绍在应用中发现的问题与今后可能的研究方向。

1面向服务体系架构的原理与关键技术

1.1面向服务体系架构

SOA是由Gartner公司在1996年最早提出的一种新的设计方法学与软件架构思想。作为一种新的系统设计方法学,SOA为解决企业业务系统集成中的各类异构问题提供了更好的解决方案,其核心概念是业务重用与企业级的互操作。具体而言,SOA按照与业务对齐的方式将企业的IT资源进行Web服务的封装和登记,使得用户可以发现和调用所需的服务,并按照业务流程将服务进行编排与组装,进而构建出满足企业需求的管理信息系统。在业务流程发生变化时,SOA只需以编排、重组的方式将这些服务拼装成新系统而不是重新架构整个系统。这种架构使企业的IT架构能够更快速,更有效的适应业务需求的变化,大大降低了系统开发、维护的费用。

1. 2 Web服务

Web服务是在COM/DOOM和CORBA基础上提出的一种革命性分布式计算技术:“是由URI标识的软件应用程序,其接口和绑定可以通过XML标准进行定义、描述和发现,通过Internet协议与其它软件应用程序直接进行交互”。开发人员能够以类似过去创建分布式程序时调用组件的方式,将各种来源的Web服务组合到一起以构建新的应用系统。Web服务所依麟的开放协议,如简单对象访向协议(simple object access protocol.SOAP),可拓展标记性语言((extensible markup language,XML)服务描述语言(web service description language, WSDL)等等,在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务具有很强的生命力与适应性。

1. 3业务过程执行语言

业务过程执行语言(business process execution Ianguage, BPEL),是一种使用XML编写的自动化业务流程的形式规约语言.广泛使用于web服务相关的自动化业务流程项目开发中。BPEL得到了IT业界200多家大公司和科研机构的重视和拥护,成为业务过程管理在web服务编排领域事实上的标准。BPEL流程模型的核心是web服务间的对等交互概念,流程及其合作伙伴都被建模成Web服务。业务流程定义了如何协调流程实例与它的合作伙伴之间的交互。在这个意义上,一个BPEL流程定义提供和/或使用一个或多个Web服务。

1.4企业服务总线

针对SOA架构中对于集成各类异构系统的需要,企业服务总线(enterprise service bus. ESB)的概念应运而生。IDC (Internet data center)将ESB定义为:基于开放标准的消息总线,用于通过标准的适配器和接口,来提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。ESB为基于Web服务、J2EE、. NET和其它标准的应用提供一个基于XML标准的信息通路。使得在系统内部和整个价值链中可以容易地进行异步或同步数据交换UO,使来自不同硬件平台、不同操作系统和不同语言开发的应用能够以一种松散辐合的方式连接在一起构成具有复杂逻辑、功能更为强大的合成应用。现有较为成熟的企业服务总线产品包括ServiceMix,IBM WebSphere ESB等。

2 基于SOA的供应链管理平台

本文从供应链管理系统的实际需求出发,结合上述各项关键技术设计出了符合SOA思想的供应链管理平台(supply chain management platform, RCMP)。该平台体系架构如图1所示。从总体上讲.SCMP将IT资源层中离散的业务功能封装为中立型的Web服务接入平台,凭借集成服务总线跨系统、跨企业的异构应用集成能力,基于BPEL技术实现了对Weh服务的编制、编排与执行,最终达到对整个供应链管理与监控的目的。

 

 2.1开发平台

开发平台是SCMP中集开发、调试、部署和监控于一体的可视化开发工具套件。整个开发平台符合B/S架构,采用Java技术及AJAX框架开发,全面支持WS-BPEI2. 0标准,同时兼容BPEL4People等EEL的高级特性,能够以可视化的方式实现基于数据模型、服务模型的业务流程建模,并为用户提供基于浏览器的业务流程实时、动态监控,可有效简化业务流程开发过程,适应业务的快速变化。

2. 2业务执行平台

业务执行平台是SCMP的核心与运行时环境,分为两个主要部分:

2.2.1企业服务总线

SCMP中企业服务总线(SCMP-ESB)的目的在于支持实现异构的服务、消息、事件的一致性文互。SCMP-ESB基于Java业务集成规范(Java business integration)开发,支持在内核上部署多种可插拔绑定组件和集成服务组件以拓展总线的集成能力,进而实现多种IT应用集成。作为供应链管理平台的核心功能层,SCMP ESB的体系结构将直接决定平台的运行效率、可拓展性与集成能力,SCMRESB体系结构如图2所示。

 

图2 SCMRESB体系结构

作为一种开放、消息驱动以及组件可插拔的轻量级SOA基础设施,该ESB系统架构中的主要功能模块包括:

组件与组件框架:组件分为服务引擎和绑定组件两种。服务引擎实现业务逻辑的控制与编排;绑定组件负责基于特定通讯协议的消息转换与传输。组件框架则是管理这些组件运行的可插拔框架。SCMP-ESB可以通过增加组件的方式提升总线的业务集成能力。

服务单元框架,与组件框架对组件的管理类似,服务单元框架实现了对服务单元的管理,负责对部署至SCMRESB的服务的部署、反部署以及运行时管理等工作。

规范化消息路由器:是快速、可靠、基于内存的消息总线,可以在SCMP-ESB框架的组件之间动态的路由基于同一标准的规范化消息。通过绑定组件在规范化消息和通讯协议特定消息之间双向转换的能力,SCMP ESB中的所有组件都能够以统一的方式同外部Web服务消费者、外部Web服务提供者进行交互。

管理控制台:主要包括总线管理门户与总线管理核心两个部分,前者以UI的方式接收来自用户的命令,并通过JMX将命令传递给总线管理核心。管理核心则接收并执行命令,在SCMP--公犯环境内完成组件安装/卸载、服务部署/反部署,系统监控等任务。

2. 2. 2业务执行引擎

业务执行引攀的主要功能是实现对业务流程模型的部署、执行和监控能力,为实现企业内部、企业间业务流程自动化提供支持。该引攀全面支持WS-BPEL2.0规范,负责对业务流程模型的编译、运行的功能,提供对流程定义与流程实例的持久化能力,支持基于BPEL4People的人机交互与可扩展的表达式执行。整个引攀的架构如图3所示。

 

 
执行引攀的主要功能模块包括:

总线适配:本文将业务执行引攀设计为SCMP-ESB上可擂拔的服务引擎组件,故需要在引攀内核之外设计接口适配器以实现SCMP-ESB对组件的控制。适配器包括总线接口、服务管理器、引攀控制、消息代理4个部分。总线接口是引擎对于JBI规范中组件接口的具体实现,SCMP-ESB可以通过该接口管理引擎的生命周期,完成基于规范化消息的组件间通讯。服务管理器负责管理引擎发布的服务端点信息和服务描述信息,同时完成SCMP-ESB上的服务端点注册、激活和撤销。引擎控制器则负责控制引擎的安装和卸载,以及引擎启动、暂停、停止、终止等。消息代理器主要负责引擎内部的消息格式与SCMP-ESB上统一的消息格式之间的双向转换。

引擎内核:由流程管理器、队列管理器和活动处理器组成,负责根据调度算法进行流程和活动的调度。流程管理器的主要功能是管理流程模板和业务流程的实例化与运行。队列管理器通过与流程管理器协作完成活动之间的调度。活动管理器管理BPEL中活动的启动、挂起和恢复、终止和重启、删除、超时处理等功能。

引擎服务:提供引擎运行所必需的服务,由流程部署器、流程实例库和流程模板库组成。流程部署器,根据收到的流程部署命令完成对业务流程模型的解析与部署。流程实例库和流程模板库主要是辅助流程管理器管理流程信息。

引擎扩展:由日志记录、定时器、脚本引擎和流程恢复服务组成。日志记录服务按事件级别记录引擎运行过程中的各种事件,为引擎的运行提供诊断信息。定时器为某些流程活动的执行和引擎的运行提供定时功能,主要为BPEL4People这类需要人机交互的业务过程提供支持。脚本引擎提供了基本的脚本运算接口,可以集成多种成熟的脚本执行引擎,为执行引擎运行提供了扩展功能。流程恢复服务负责基于持久化的业务流程实例恢复工作。

持久化支持:现有业务执行引擎使用文件系统和数据库完成数据持久化,实现配置文件、用户信息、日志记录、业务流程实例信息的存取功能。

2. 3 IT资源层

IT资源层涵盖了供应链管理业务集成过程中涉及到的应用资源与数据资源。为降低遗留系统接入的难度,保持旧有系统人机交互接口不变,维持其系统对用户展现的历史一致性,对系统的操作调用、数据转换等工作统一在SCMP-ESB中完成;对于新开发的系统和模块,直接按照SOA的要求完成开发、部署与接入。

3应用案例

本文针对某摩托车整车装配企业在摩托整车销售、采购业务集成中供应商和制造商、制造商和分销商的信息和业务流程整合需求,在旧有信息管理系统架构保持不变的基础上,通过对业务流程和服务集合进行补充和扩展,实现销售、采购业务流程的集成和协同。在未引入SCMP之前,该摩托车整车装配企业在业务整合方面遇到的问题如图4所示。

 

图4某摩托车整车装配企业供应链管理业务背景

如图4所示,以该摩托车整车装配企业为核心,整个产业链中涉及到数百家供应商、分销商,但是销售和采购相关业务流程分散于要货系统、ERP系统和供应系统中,各异构系统之间未实现信息传递与转换,存在重复手工环节(图4中所示的待集成流程),无法完成跨系统的业务过程的自动流转。同时,该装配企业迫切需要解决在整个供应链中的信息集成、业务集成问题,提高供应链管理中的信息流转效率。

为解决上述问题,本文针对摩托车整车业务中供应商和制造商、制造商和分销商的信息和业务流程集成需求,设计7个数据模型、13个服务模型和6个集成业务流程,实现销售、采购业务流程的集成和协同。图5 (a)给出了整个销售、采购业务集成的解决方案。图5 (b)给出了该摩托车供应链管理系统的应用程序界面。

该供应链管理系统的实际应用效果主要体现在:

(1)有效集成要货系统和R/3 ERP系统,实现从客户下单、生产到发货环节的信息流和业务流的集成,实现整个过程的跟踪和控制。

(2)有效集成R/3 ERP和供应系统,实现从采购计划编制、采购执行到材料入库环节的信息流和业务流集成,实现整个过程的跟踪和控制。

(3)针对集成多个异构系统的需求,提供了多种可插拔组件,以实现与多种IT应用的有效集成;同时,集成平台采用基于Web服务的业务流集成技术,加强集成的设计、执行和监控功能,具有更好的适应性、更强的灵活性和可扩展性。

 

4结束语

基于SOA的供应链管理平台在摩托车整车装配企业业务过程中的成功应用,证明了本文所提出SCMP平台的有效性与合理性,为供应链管理的实施与进一步推广提供了有力的支持。同时,在研发应用AMP平台的过程中我们发现,传统的基于关键字的服务集成在服务发现、服务匹配方面效率较低,已经阻碍了服务之间的有效交互,拟在今后的研究中展开基于语义的服务集成技术,以进一步提升服务集成的有效性与可靠性。

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢