D01:10.13374.isml00103x.2009.0L.23 第31卷第1期 北京科技大学学报 Vol.31 No.I 2009年1月 Journal of University of Science and Technology Beijing Jan.2009 基于SOA架构的物流信息系统的相关技术研究 与实现 李颂华) 陶丽红)高栋到 )北京林业大学信息中心,北京1000832)北京科技大学网络中心,北京100083 3)北京科技大学信息工程学院.北京100083 摘要以物流信息系统为实例,针对原有物流信息系统存在灵活性差等一系列问题,通过深入分析面向服务的体系结构 (S0A)的相关理论,利用网络服务技术,提出了一种基于SOA架构的企业应用设计流程和建模方法.讨论了在跨语言、跨操 作系统的平台下实现“订单处理”业务流程的问题:通过应用面向网络服务的业务流程执行语言(BPEL)组合、编排和协调本地 的网络服务和其他异构平台的网络服务来实现面向服务体系结构.S0A技术使物流信息系统能够更容易地跨平台以服务形 式访问商务,基于此架构模式开发的应用系统加快了应用程序的开发过程,并使非程序员也可以创建和重用信息技术资产. 关键词面向服务的体系结构:网络服务:业务流程执行语言:物流信息系统 分类号TP311.52 Research and implementation of related technology for a logistics information sys- tem based on SOA LI Song-hua.TAO Li-hong.GAO Dong 1)Informat ion Center.Beijng Forestry University.Beijing 100083,China 2)Network Center.Univerity of Science and Technology Beijng.Beijng 100083.China 3)School of Information Engineering.University of Science and Techmlogy Beijng.Beijing 100083.Chim ABSTRACT Lacking of flexibility was found in pevious logistics information systems,and using the technology of web services a practical design workflow and modeling method was proposed based on a thoroughly research and aalysis of the servic-oriented archi- tecture (SOA)theory.It w as discussed to implement the"order treatments"workflow on the flat of a crosslanguage and cmoss-opera- tion system by combination,arrangement and coordination of business process execution language (BPEL).Web services based on SOA for a local logistics information system and for a heterogeneous platform were realized.Because of SOA,the logistics information system is easily browsed on every business platform.SOA accelerates the application developing process and also permits a unpro- grammer to create and reuse information technology resources. KEY WORDS servic-oriented architecture;web services;business pocess execution language:logistics information system 现实业务操作,而SOA则是从实践的角度来描述如 1 面向服务体系结构 何搭建Web服务的应用环境3.SOA的中心思想 面向服务的体系结构SOA以服务为核心,把各 是使得企业应用摆脱面向技术解决方案的束缚,灵 种应用分解为软件服务模块,这些服务模块被统一 活地适应企业业务流程变化和发展的需要.通过将 整合到一起,利用服务解决异构问题刂.由于系统 注意力放在服务上,应用程序开发能够集中起来,提 以服务的形式组成,新的需求只需重新组合相关模 供更加丰富、目的性更强的业务流程,基于SOA的 块或添加相应服务模块,而无需重建 企业应用系统会更加真实地反映出与业务模型的结 Web服务是从功能、概念的角度来描述与抽象 合9.图I描述了SOA模型.SOA包含服务请求 收稿日期:200805-20 作者简介:李颂华(1976一),男,工程师,博士
基于 SOA 架构的物流信息系统的相关技术研究 与实现 李颂华 1) 陶丽红 2) 高 栋 3) 1) 北京林业大学信息中心, 北京 100083 2) 北京科技大学网络中心, 北京 100083 3) 北京科技大学信息工程学院, 北京 100083 摘 要 以物流信息系统为实例, 针对原有物流信息系统存在灵活性差等一系列问题, 通过深入分析面向服务的体系结构 ( SOA) 的相关理论, 利用网络服务技术, 提出了一种基于 SOA 架构的企业应用设计流程和建模方法.讨论了在跨语言、跨操 作系统的平台下实现“订单处理” 业务流程的问题:通过应用面向网络服务的业务流程执行语言( BPEL) 组合、编排和协调本地 的网络服务和其他异构平台的网络服务来实现面向服务体系结构.SOA 技术使物流信息系统能够更容易地跨平台以服务形 式访问商务, 基于此架构模式开发的应用系统加快了应用程序的开发过程, 并使非程序员也可以创建和重用信息技术资产. 关键词 面向服务的体系结构;网络服务;业务流程执行语言;物流信息系统 分类号 TP311.52 Research and implementation of related technology for a logistics information system based on SOA LI Song-hua 1) , TAO Li-hong 2) , GAO Dong 3) 1) Information Cent er, Beijing Forestry University, Beijing 100083, C hina 2) Network Center, Universit y of Science and Technology Beijing, Beijing 100083, China 3) School of Information Engineering, Universit y of Science and Tech nology Beijing, Beijing 100083, C hina ABSTRACT Lacking of flexibility was found in previous logistics info rmation systems, and using the technolog y of web ser vices a practical design w orkflow and modeling method was propo sed based on a thoroughly research and analysis of the service-oriented architecture ( SOA) theory.It w as discussed to implement the “ order treatments” workflow on the flat of a cross-language and cro ss-operatio n system by combination, arrangement and coordination of business process execution language ( BPEL) .Web services based on SOA fo r a local logistics information sy stem and for a heterog eneous pla tform were realized.Because of SOA, the logisticsinformation system is easily browsed on every business platfo rm .SOA accelerates the application developing process and also permits a un-prog rammer to create and reuse info rmation technology resources . KEY WORDS service-oriented architecture;w eb services ;business pro cess execution lang uage;lo gistics information system 收稿日期:2008-05-20 作者简介:李颂华( 1976—) , 男, 工程师, 博士 1 面向服务体系结构 面向服务的体系结构 SOA 以服务为核心, 把各 种应用分解为软件服务模块, 这些服务模块被统一 整合到一起, 利用服务解决异构问题 [ 1] .由于系统 以服务的形式组成, 新的需求只需重新组合相关模 块或添加相应服务模块, 而无需重建. Web 服务是从功能、概念的角度来描述与抽象 现实业务操作, 而 SOA 则是从实践的角度来描述如 何搭建Web 服务的应用环境[ 2-3] .SOA 的中心思想 是使得企业应用摆脱面向技术解决方案的束缚, 灵 活地适应企业业务流程变化和发展的需要 .通过将 注意力放在服务上, 应用程序开发能够集中起来, 提 供更加丰富、目的性更强的业务流程, 基于 SOA 的 企业应用系统会更加真实地反映出与业务模型的结 合[ 4] .图 1 描述了 SOA 模型 .SOA 包含服务请求 第 31 卷 第 1 期 2009 年 1 月 北 京 科 技 大 学 学 报 Journal of University of Science and Technology Beijing Vol .31 No.1 Jan.2009 DOI :10.13374/j .issn1001 -053x.2009.01.023
第1期 李颂华等:基于SOA架构的物流信息系统的相关技术研究与实现 ·135。 者(service requester)、服务提供者(service provider)、 理,用于调用Wb服务:也可以是静态模型,开发者 服务代理处(service broker)三个角色. 对客户应用程序调用Wb服务的方式,进行手工编 码. 服务 代理处 2实现SOA的相关技术 发现 发布 2.1Web服务 服务 服务 作为重要的SOA的实现方式,Wb服务是一种 请求者 绑定/调用升提供者 广泛被人们接受的相对较新的技术?.Wb服务规 范规定用完全独立的编程语言、独立于硬件或软件 图1面向服务的体系架构 的平台促进客户和供应商之间的松耦合.Wb服务 Fig.I SOA system structure 技术基于以下的公开技术:()可扩展标志语言 ()服务提供者负责创建服务描述,将服务描述 (XML):(2)简单对象访问协议(S0AP);(3)统一描 发布到一个或者多个服务代理处,并接收来自一个 述,发现和集成协议(UDDI):(4)W山服务描述语 或者多个服务请求者的W山服务调用消息. 言(WSDL). (2)服务请求者负责查找发布在一个或者多个 W山服务技术完全是基于标准的技术,只有基 服务代理处的服务描述,并负责利用服务描述,绑定 于标准,所有的开放厂商才有相同的准则,才能够在 或者调用由服务提供者提供的Wb服务.Web服 各自的平台上开发出具有跨平台互操作能力的软件 务的任何消费者都可以被认为是服务请求者,服务 产品和解决方案. 请求者有时也被称为服务使用者、服务消费者, 新提出的与Web服务相关的主要协议和技术 (3)服务提供者可以在服务代理处发布服务描 包括以下几种:(I)SOAP(simple object access pro 述,服务代理处负贵为其分类,并建立搜索服务,允 tocol,简单对象访问协议),用来定义数据描述和远 许服务请求者搜索服务代理处所包含的服务描述集 程访问的标准.(2)WSDL(w eb services description 合.服务代理处的作用就是服务请求者和服务提供 language,Wcb服务描述语言),发布和请求Web服 者之间的中介.一旦服务代理处完成了匹配,它也 务的描述语言.(3)UDDI(universal description, 就完成了任务,其余的交互也就是在服务请求者和 discovery and integrat ion,统一描述、发现和集成), 服务提供者之间的直接服务调用. 把Wb服务与用户联系起来,起中介作用. SOA也包含发布(publish)、发现(find和绑定/ 当然,W山服务的具体实现并不局限在以上几 调用(bind/in voke)三个操作.这些操作定义了SOA 种协议和技术上,任何支持网络标准的系统都能支 角色之间的约定关系可, 持W山服s. (1)发布操作是一种服务注册或者服务宣传的 2.2 WS-BPEL 行为.它起着服务代理处与服务提供者之间的连接 WS-BPEL(w eb services business process execu- 作用.当服务提供者在服务代理处发布其Wb服 tion language,Web服务业务流程执行语言)是对由 务描述后,服务代理处就将此W山服务的细节通知 W山服务组织成自动业务流程的复合应用统一表 给Web服务请求者.发布API的实际细节取决于 达,这种统一的表达能够被不同的平台解释执行:它 服务代理处的实现.简单的发布是将服务描述发布 用来定义一些流程使得这些流程可以调用其他的流 到Wb应用服务器的目录结构中,复杂的发布操作 程.WS-BPEL允许我们同时定义抽象的业务过程 则通过独立的单元来管理服务描述,如UDDL. 和可执行的业务过程并且受到大多数公司的支持, (2)发现操作是获得Web服务的调用细节信 也存在可执行这些业务过程语言的软件(BPEL服 息,起着服务代理处和服务请求者之间的连接作用. 务器)和开发工具(BPEL设计工具)I习 在进行发现操作时,服务代理处根据查找条件在所 BPEL构建在XML和Wb服务的基础上.它 发布的Wb服务描述集合中进行搜索,查找与标准 是一种以XML为基础的语言,支持Wb服务技术 匹配的服务描述 的协议群,包括SOAP、WSDL、UDDI、WS-Reliable (3)绑定操作体现了服务请求者与服务提供者 Message.WS-Addressing.WS-Coordination WS- 之间的“客户一服务器”关系.绑定操作可以是十分 Transactions..BPEL是早期两个工作流语言(WSFL 复杂和动态的,如基于服务描述,动态生成客户方代 和XLANG)的综合.WSFL由IBM设计,基于有向
者( service requester) 、服务提供者( service provider) 、 服务代理处( service broker) 三个角色[ 5] . 图 1 面向服务的体系架构 Fig.1 SOA syst em structure ( 1) 服务提供者负责创建服务描述, 将服务描述 发布到一个或者多个服务代理处, 并接收来自一个 或者多个服务请求者的 Web 服务调用消息 . ( 2) 服务请求者负责查找发布在一个或者多个 服务代理处的服务描述, 并负责利用服务描述, 绑定 或者调用由服务提供者提供的 Web 服务 .Web 服 务的任何消费者都可以被认为是服务请求者 .服务 请求者有时也被称为服务使用者、服务消费者 . ( 3) 服务提供者可以在服务代理处发布服务描 述, 服务代理处负责为其分类, 并建立搜索服务, 允 许服务请求者搜索服务代理处所包含的服务描述集 合.服务代理处的作用就是服务请求者和服务提供 者之间的中介.一旦服务代理处完成了匹配, 它也 就完成了任务, 其余的交互也就是在服务请求者和 服务提供者之间的直接服务调用. SOA 也包含发布( publish) 、发现( find) 和绑定/ 调用( bind/invoke) 三个操作 .这些操作定义了 SOA 角色之间的约定关系 [ 6] . ( 1) 发布操作是一种服务注册或者服务宣传的 行为 .它起着服务代理处与服务提供者之间的连接 作用 .当服务提供者在服务代理处发布其 Web 服 务描述后, 服务代理处就将此 Web 服务的细节通知 给 Web 服务请求者.发布 API 的实际细节取决于 服务代理处的实现.简单的发布是将服务描述发布 到Web 应用服务器的目录结构中, 复杂的发布操作 则通过独立的单元来管理服务描述, 如 UDDI . ( 2) 发现操作是获得 Web 服务的调用细节信 息, 起着服务代理处和服务请求者之间的连接作用 . 在进行发现操作时, 服务代理处根据查找条件在所 发布的 Web 服务描述集合中进行搜索, 查找与标准 匹配的服务描述 . ( 3) 绑定操作体现了服务请求者与服务提供者 之间的“客户-服务器” 关系.绑定操作可以是十分 复杂和动态的, 如基于服务描述, 动态生成客户方代 理, 用于调用 Web 服务;也可以是静态模型, 开发者 对客户应用程序调用 Web 服务的方式, 进行手工编 码 . 2 实现 SOA 的相关技术 2.1 Web 服务 作为重要的 SOA 的实现方式, Web 服务是一种 广泛被人们接受的相对较新的技术 [ 7] .Web 服务规 范规定用完全独立的编程语言、独立于硬件或软件 的平台促进客户和供应商之间的松耦合.Web 服务 技术基于以下的公开技术 :( 1) 可扩展标志语言 ( XM L) ;( 2) 简单对象访问协议( SOAP) ;( 3) 统一描 述 、发现和集成协议( UDDI) ;( 4) Web 服务描述语 言( WSDL) . Web 服务技术完全是基于标准的技术, 只有基 于标准, 所有的开放厂商才有相同的准则, 才能够在 各自的平台上开发出具有跨平台互操作能力的软件 产品和解决方案. 新提出的与 Web 服务相关的主要协议和技术 包括以下几种:( 1) SOAP( simple object access protocol, 简单对象访问协议) , 用来定义数据描述和远 程访问的标准.( 2) WSDL( w eb services description language, Web 服务描述语言) , 发布和请求 Web 服 务的描述语言 .( 3) UDDI( universal description, discovery and integration, 统一描述、发现和集成) , 把 Web 服务与用户联系起来, 起中介作用. 当然, Web 服务的具体实现并不局限在以上几 种协议和技术上, 任何支持网络标准的系统都能支 持 Web 服务[ 8] . 2.2 WS-BPEL WS-BPEL( w eb services business process execution lang uage, Web 服务业务流程执行语言) 是对由 Web 服务组织成自动业务流程的复合应用统一表 达, 这种统一的表达能够被不同的平台解释执行 ;它 用来定义一些流程使得这些流程可以调用其他的流 程 .WS-BPEL 允许我们同时定义抽象的业务过程 和可执行的业务过程并且受到大多数公司的支持, 也存在可执行这些业务过程语言的软件( BPEL 服 务器) 和开发工具( BPEL 设计工具) [ 9] . BPEL 构建在 XM L 和 Web 服务的基础上 .它 是一种以 XM L 为基础的语言, 支持 Web 服务技术 的协议群, 包括 SOAP 、WSDL 、UDDI 、WS-Reliable Message 、WS-Addressing 、WS-Coordination 和 WST ransactions .BPEL 是早期两个工作流语言( WSFL 和 XLANG) 的综合.WSFL 由 IBM 设计, 基于有向 第 1 期 李颂华等:基于 SOA 架构的物流信息系统的相关技术研究与实现 · 135 ·
。136 北京科技大学学报 第31卷 图的概念.XLANG由微软设计,是一种块结构语 单确认、订单自动转入处理、订单状况查询.提供简 言.BPEL综合了两者的特点,为描述业务流程提供 单的客户关系处理,如用户反馈、质量投诉.(2)开 了丰富的语义词汇. 发Wb服务,接收来其他企业的产品定购服务,将 BPEL流程定义了参与流程的Web服务执行 其部署为一个Wb服务,可以方便其与其他企业系 的确切次序.它可以按顺序执行,服务取决于前一 统互相进行B2BI(B2 B Integration).(3)允许供应 个执行结果:也可以创建循环,声明变量,复制和为 商和客户查询公司产品在库信息,及时获得公司发 变量赋值,定义错误处理Handler等.综合使用这些 布的产品信息.(4④为扩大货源,促进网上产品的销 结构,我们可以用算法的方式定义复杂的业务流 售.公司需要面向Internet寻找可能的合作伙伴, 程g 增加自身产品的货源.(5)为了提高物流配送系统 BPEL和Java相比,没有Java强大,但更简单, 和其他系统的协作性,将这部分功能单独提出来成 更适合业务流程的定义.因此,BPEL并不是现代语 为Wb服务,作为第三方物流.这样,不但可以解 言(如Java)的替代,而是它们的补充 决公司内部产品的配送问题,同时也为其他企业提 供物流服务, 3基于SOA架构的物流信息系统 新的物流信息系统实现的是整个供应链系统功 某物流公司经营范围包括产品的加工、分包、配 能的一部分,其中公司内部包括销售、配送和仓储物 送、零售和进出口业务以及相关配套服务,是一家商 流等在内的系统模块,就系统整体而言是比较复杂 流和物流业务相结合的大型公司.商流部门以批发 的. 为主,兼有一定的现金销售;物流部门负贵厂家和各 本文主要立足点是基于$OA架构的系统应用 超市之间的适时配送.该公司下面有多个子公司运 研究,所以主要讨论企业内部与其他商业实体的交 作,各公司都处于同一个企业网内不同的子网.各 互功能. 子公司都有自己的仓库部门、财务部门、生产部门和 针对订单处理给出一个简化的业务流程.订单 信息中心等部门,总公司也有自己的市场部门、财务 处理过程涉及的实体有客户(customer)、销售商 部门和信息中心等部门:每个子公司都有自己的 (seller)、供应商(provider).物流公司在这里就是 ERP系统,总公司也有自己的CRM系统.ERP系 Seller的角色.Seller向最终用户直接销售产品,而 统与CRM系统相互集成,对整个公司的企业资源 Seller的产品供应是由各个Provider供应的.系统 进行管理. 逻辑结构图如图2所示. 该公司现有的商流系统是运行于小型机的物流 信息系统,该系统存在很多问题,可以归纳如下: 客户 产口 ()系统灵活性差:(2)对业务的响应不够及时;(3) 数据库 与其他系统不能交换数据,造成了公司实际的商流 供应 业务存在大量的手工操作,系统数据和实际无法对 商A 因特网、 应:(4)库存管理失控,财务部门无法对商流业务进 客户信息 数据库 行实时监控:(5)配送处管理和控制力度不够,容易 供应 造成空间浪费和管理上人力物力的浪费;(6未与客 商B 户进行业务集成,采用传统的手段反应慢,不符合市 产品 数据库 场经济的原则:()没有提供电子商务功能,以便让 顾客进行网上购物:(8)无法和供应商进行及时准确 图2与外部商业实体交互的系统结构图 的电子数据交换和信息查询. Fig.2 System structure of external commercial entity interaction 为了进一步优化和提高其商流业务的管理,并 为将来进一步整合其所有物流和商流业务提供可 在这个业务流程中涉及了两个供应环节,分别 能,公司改进了物流信息系统,新的物流信息系统增 是Customer和Seller之间环节以及Seller和 加了企业内部与外部其他商业实体交互的功能,具 Provider之间环节.第一个环节是B2C商务模式 体做了如下改进:(1)公司把自身的销售行为转移到 Customer通过浏览器访问Seller站点提交订单,进 了Web上,并开发出了基于Wb的用户界面,接收 行产品购买.第二个环节则是B2B商务模式,Seller 客户的购物请求.包括产品浏览、网上订单填写、订 根据订单情况,按需定期向Provider提交订货合同
图的概念 .XLANG 由微软设计, 是一种块结构语 言.BPEL 综合了两者的特点, 为描述业务流程提供 了丰富的语义词汇. BPEL 流程定义了参与流程的 Web 服务执行 的确切次序 .它可以按顺序执行, 服务取决于前一 个执行结果;也可以创建循环, 声明变量, 复制和为 变量赋值, 定义错误处理 Handler 等 .综合使用这些 结构, 我们可以用算法的方式定义复杂的业务流 程[ 10] . BPEL 和 Java 相比, 没有 Java 强大, 但更简单, 更适合业务流程的定义.因此, BPEL 并不是现代语 言( 如 Java) 的替代, 而是它们的补充 . 3 基于 SOA 架构的物流信息系统 某物流公司经营范围包括产品的加工、分包、配 送、零售和进出口业务以及相关配套服务, 是一家商 流和物流业务相结合的大型公司 .商流部门以批发 为主, 兼有一定的现金销售;物流部门负责厂家和各 超市之间的适时配送 .该公司下面有多个子公司运 作, 各公司都处于同一个企业网内不同的子网.各 子公司都有自己的仓库部门、财务部门 、生产部门和 信息中心等部门, 总公司也有自己的市场部门 、财务 部门和信息中心等部门;每个子公司都有自己的 ERP 系统, 总公司也有自己的 CRM 系统 .ERP 系 统与 CRM 系统相互集成, 对整个公司的企业资源 进行管理 . 该公司现有的商流系统是运行于小型机的物流 信息系统, 该系统存在很多问题, 可以归纳如下 : ( 1) 系统灵活性差;( 2) 对业务的响应不够及时;( 3) 与其他系统不能交换数据, 造成了公司实际的商流 业务存在大量的手工操作, 系统数据和实际无法对 应;( 4) 库存管理失控, 财务部门无法对商流业务进 行实时监控 ;( 5) 配送处管理和控制力度不够, 容易 造成空间浪费和管理上人力物力的浪费 ;( 6) 未与客 户进行业务集成, 采用传统的手段反应慢, 不符合市 场经济的原则;( 7) 没有提供电子商务功能, 以便让 顾客进行网上购物;( 8) 无法和供应商进行及时准确 的电子数据交换和信息查询. 为了进一步优化和提高其商流业务的管理, 并 为将来进一步整合其所有物流和商流业务提供可 能, 公司改进了物流信息系统, 新的物流信息系统增 加了企业内部与外部其他商业实体交互的功能, 具 体做了如下改进 :( 1) 公司把自身的销售行为转移到 了Web 上, 并开发出了基于 Web 的用户界面, 接收 客户的购物请求 .包括产品浏览 、网上订单填写、订 单确认、订单自动转入处理、订单状况查询 .提供简 单的客户关系处理, 如用户反馈 、质量投诉 .( 2) 开 发 Web 服务, 接收来其他企业的产品定购服务.将 其部署为一个 Web 服务, 可以方便其与其他企业系 统互相进行 B2BI( B2B Integration) .( 3) 允许供应 商和客户查询公司产品在库信息, 及时获得公司发 布的产品信息 .( 4) 为扩大货源, 促进网上产品的销 售 .公司需要面向 Internet 寻找可能的合作伙伴, 增加自身产品的货源.( 5) 为了提高物流配送系统 和其他系统的协作性, 将这部分功能单独提出来成 为 Web 服务, 作为第三方物流.这样, 不但可以解 决公司内部产品的配送问题, 同时也为其他企业提 供物流服务 . 新的物流信息系统实现的是整个供应链系统功 能的一部分, 其中公司内部包括销售 、配送和仓储物 流等在内的系统模块, 就系统整体而言是比较复杂 的 . 本文主要立足点是基于 SOA 架构的系统应用 研究, 所以主要讨论企业内部与其他商业实体的交 互功能 . 针对订单处理给出一个简化的业务流程 .订单 处理过程涉及的实体有客户( customer) 、销售商 ( seller) 、供应商( provider) .物流公司在这里就是 Seller 的角色.Seller 向最终用户直接销售产品, 而 Seller 的产品供应是由各个 Provider 供应的 .系统 逻辑结构图如图 2 所示 . 图 2 与外部商业实体交互的系统结构图 Fig.2 System structure of ext ernal commercial entity interaction 在这个业务流程中涉及了两个供应环节, 分别 是 Customer 和 Seller 之 间 环 节 以 及 Seller 和 Provider 之间环节.第一个环节是 B2C 商务模式, Customer 通过浏览器访问 Seller 站点提交订单, 进 行产品购买.第二个环节则是 B2B 商务模式, Seller 根据订单情况, 按需定期向 Provider 提交订货合同 . · 136 · 北 京 科 技 大 学 学 报 第 31 卷
第1期 李颂华等:基于$0A架构的物流信息系统的相关技术研究与实现 ·137。 具体实现是Seller的订单管理系统和Provider 的销售系统进行应用集成.在这里Provider既可能 订单 客户 是纯粹的产品供应者,也可能是生产商Producer. 发货 假定是Producer,.那么当得到订货合同之后,需要根 验证 订单 销售商 据总体的订货情况(包括其他Seller向它订货)制订 生产计划,并向它自身的原料提供者订货.同样,如 供货 果这里是Provider,那么当得到订货合同之后,根据 供货商 生产 订货条件检查仓库货源是否满足订单要求:如果不 满足就要做和公司相同的工作,继续向生产商订购 图3系统订单处理模块用例图 产品.这里笔者假设Provider是自身能生产产品的 Fig 3 Module of system orders treatment 情况。 销售商 总结上面的描述,订单处理大体流程如下: 用户身份验证服务 (I)Customert(个人或者企业)通过Seller的订购系 商品发布服务 统(可能是在线网站,也可能是Wb服务接口)向 常 Seller提交购买订单.(2)订购系统按照订货的类别 订购服务(在线B2C模式) 订购服务(Web服务模式) 向相关的仓库发出订货请求,仓库分别做出应答之 仓储服务 后,订购系统判断如果可以满足订货需求的,则响应 物流服务 Customer订货确认,同时向相应仓库发出运送请 求.(3)仓库接收到运送请求之后,确认运货请求, 其他服务 同时将货运出.运货流程完毕之后,检查库存,如果 图4模块结构设计图 指定产品的库存水平位于临界值之下,则向相应的 Fig 4 Design of module stnucture Provider发出订货请求.(4)Provider接收到订货请 求后,安排并检查生产计划和库存情况.如果可以 按照模块结构设计,Seller(公司)系统中各部分 满足则确认,并发货:如果无法满足则返回无法满足 组件描述如下:(1)完成对用户的身份验证.(2)完 的响应. 成用户对产品目录的访问和查询请求.(3)在线 在不讨论配送和支付模块的情况下,详细流程 B2C模式订购服务,这是一个提供在线订购的B2C 如下:(1)单个订单可以包含多个描述项,每一项都 网站应用.(4)W山服务模式订购服务是一个B2B 针对某一特定的产品,同时包含了订购的数量.在 产品订购服务,接收来自其他企业实体的产品订购, 同一个订单中,同一种产品不可出现在两个不同的 将其部署为Wb服务,可以方便其与其他企业系统 项中.(2)订单项产品数量最小为1,最大无限制. 互相进行B2BI(B2 B Integration).(5)仓储服务提 (3)对于一个订单而言,针对其中某一产品,只能做 供公司仓库管理,同时该服务提供Web服务接口. 出能够满足或者不能满足的响应,不可有部分满足 由于仓库管理系统的使用者(客户端)有多种,除订 的响应.(4)对于一个订单而言,针对其中某一产 购系统外,还包括公司的财务系统、物流系统等其他 品,只能从一个仓库送货,而不能由多个仓库组合满 系统,因此构架为Wb服务将使得互操作更为灵 足其需求.(5)要么订单被满足,要么订单被驳回, 活.(6)物流服务提供仓库所需的物流管理.同样 订单不会被缓存在等待队列中.(6)关于实际的支 该服务也提供Wb服务接口,除与仓储服务类似的 付和配送环节,将不在本系统中涉及.(7)制造商总 原因外,通过将物流服务的接口W山服务标准化. 能够满足ACE的订货,无论是使用现有库存来满足 为扩大货源促进网上产品的销售,公司需要面 需求还是通过生产制造来满足.(8)当来自客户的 向Intemet寻找可能的合作伙伴,增加自身产品的 某个订单使得某个仓库的库存低于预设值,该仓库 货源,也就是需要向其他供应商购买产品. 将向相应的制造商请求产品供应. 整个系统中有很多业务流程建模及其实现,产 分析业务流程,按照UML设计的订单处理模 品订单处理过程如图5所示 块用例图如图3所示. 简化上述产品订单处理过程,BPEL流程图如 基于Wb服务技术,按照订单处理的业务流 图6所示. 程,可以把系统功能划分为如图4所示的模块. 本系统的一系列Web服务是在Oracle BPEL
具体实现是 Seller 的订单管理系统和 Provider 的销售系统进行应用集成.在这里 Provider 既可能 是纯粹的产品供应者, 也可能是生产商 Producer . 假定是 Producer, 那么当得到订货合同之后, 需要根 据总体的订货情况( 包括其他 Seller 向它订货) 制订 生产计划, 并向它自身的原料提供者订货 .同样, 如 果这里是 Provider, 那么当得到订货合同之后, 根据 订货条件检查仓库货源是否满足订单要求;如果不 满足就要做和公司相同的工作, 继续向生产商订购 产品.这里笔者假设 Provider 是自身能生产产品的 情况 . 总结上面的描述, 订单处理大体流程如下 : ( 1) Customer( 个人或者企业) 通过 Seller 的订购系 统( 可能是在线网站, 也可能是 Web 服务接口) 向 Seller 提交购买订单 .( 2) 订购系统按照订货的类别 向相关的仓库发出订货请求, 仓库分别做出应答之 后, 订购系统判断如果可以满足订货需求的, 则响应 Customer 订货确认, 同时向相应仓库发出运送请 求.( 3) 仓库接收到运送请求之后, 确认运货请求, 同时将货运出.运货流程完毕之后, 检查库存, 如果 指定产品的库存水平位于临界值之下, 则向相应的 Provider 发出订货请求 .( 4) Provider 接收到订货请 求后, 安排并检查生产计划和库存情况.如果可以 满足则确认, 并发货 ;如果无法满足则返回无法满足 的响应. 在不讨论配送和支付模块的情况下, 详细流程 如下:( 1) 单个订单可以包含多个描述项, 每一项都 针对某一特定的产品, 同时包含了订购的数量.在 同一个订单中, 同一种产品不可出现在两个不同的 项中.( 2) 订单项产品数量最小为 1, 最大无限制 . ( 3) 对于一个订单而言, 针对其中某一产品, 只能做 出能够满足或者不能满足的响应, 不可有部分满足 的响应.( 4) 对于一个订单而言, 针对其中某一产 品, 只能从一个仓库送货, 而不能由多个仓库组合满 足其需求.( 5) 要么订单被满足, 要么订单被驳回, 订单不会被缓存在等待队列中.( 6) 关于实际的支 付和配送环节, 将不在本系统中涉及.( 7) 制造商总 能够满足 ACE 的订货, 无论是使用现有库存来满足 需求还是通过生产制造来满足.( 8) 当来自客户的 某个订单使得某个仓库的库存低于预设值, 该仓库 将向相应的制造商请求产品供应. 分析业务流程, 按照 UM L 设计的订单处理模 块用例图如图 3 所示 . 基于 Web 服务技术, 按照订单处理的业务流 程, 可以把系统功能划分为如图 4 所示的模块 . 图3 系统订单处理模块用例图 Fig.3 Module of syst em orders treatment 图 4 模块结构设计图 Fig.4 Design of module structure 按照模块结构设计, Seller( 公司) 系统中各部分 组件描述如下:( 1) 完成对用户的身份验证.( 2) 完 成用户对产品目录的访问和查询请求 .( 3) 在线 B2C 模式订购服务, 这是一个提供在线订购的 B2C 网站应用 .( 4) Web 服务模式订购服务是一个 B2B 产品订购服务, 接收来自其他企业实体的产品订购, 将其部署为 Web 服务, 可以方便其与其他企业系统 互相进行 B2BI( B2B Integ ration) .( 5) 仓储服务提 供公司仓库管理, 同时该服务提供 Web 服务接口. 由于仓库管理系统的使用者( 客户端) 有多种, 除订 购系统外, 还包括公司的财务系统、物流系统等其他 系统, 因此构架为 Web 服务将使得互操作更为灵 活 .( 6) 物流服务提供仓库所需的物流管理 .同样 该服务也提供 Web 服务接口, 除与仓储服务类似的 原因外, 通过将物流服务的接口 Web 服务标准化 . 为扩大货源, 促进网上产品的销售, 公司需要面 向 Internet 寻找可能的合作伙伴, 增加自身产品的 货源, 也就是需要向其他供应商购买产品 . 整个系统中有很多业务流程建模及其实现, 产 品订单处理过程如图 5 所示 . 简化上述产品订单处理过程, BPEL 流程图如 图 6 所示. 本系统的一系列 Web 服务是在 Oracle BPEL 第 1 期 李颂华等:基于 SOA 架构的物流信息系统的相关技术研究与实现 · 137 ·
。138 北京科技大学学报 第31卷 订单处理过程 建和使用IT资产,而不需要掌握T技能.实践证 出错处理 多方订单 接收 明,基于此架构模式开发的应用系统加快了应用程 序的开发过程,使得应用程序更易维护,针对一个 应用范围 信用检查服务 信用检查 实际的物流系统,应用W山服务技术,通过SOA体 出错处理 系架构进行了设计和实现.从结果可以看出:新设 供货商 获得定价 获得定价 供货商 计的系统大大增加了运行的灵活性,提高了系统的 开价服务 快速发布 选择生产 开价服务 运行效率:同时在实现的过程中也为构建基于SOA 的物流信息系统时提出了需要注意的问题,这些问 选取最低价位 题主要有Wb服务的集成、服务资源和服务方法的 选取供货商1 选取供货商2 使用、系统的分布性和异构性等,为以后系统的设计 订购利润确认 订购确认服务 与实现提供了参考. 订购实现 订购实现服务 参考文献 发送订购确认服务← 写订购确认包 I]LiX J.Zhang M Y.Study on logistics information system arhi- tecture based on SOA.Logist Technol,2007.26(3):104 应答 (李学军,张明玉.基于S0A的物流信息系统架构研究.物流 图5订单完整处理流程 技术.2007.26(3:104 Fig.5 Full process integrity of orders Mao X S.SOA Principle.Method and Practice.Beijng:Elee- tronics Industry Press,2007 1:请求 9 (毛新生.S0A原理·方法·实践.北京:电子工业出版社,2007 端口类型 检索信用等级 2:请求信用等级 [3 Kmafrig D.Banke K.Slama D.Han H Z.Enterprise SOA Ser 服务 vice-Oriented Architecture Best Practices.T ranslated by Han H 6:唤醒 3:应答 网络服务 Z Beijing Tsinghua University Pres,2006 (Krafzig D,Banke K,Shma D.Enterprise SOA一面向服务 4.1:唤醒 架构的最佳实战.韩宏志,译.北京:清华大学出版社,2006) 获得定价快速发布 获得定价选择生产 快速发布 [4 Yang C F.Wang G.Si J H.Build new generation EAI based on 一网络服务 端口 4.2:回拨 SOA.Comput Appl Software.2005.22(10):122 类型 (杨昌锋,王冠,司建辉.基于S0A构建新一代的企业应用集 51:唤醒 选取供货商1 选取供货商2 成.计算机应用与软件,2005.22(10):122) 选择生产 网络服务 [5 Jian B.Zuo RG.YAN G R.et al.SOA-based Applcation inte- 52:回拨 gration system of small and mediumsized manufacture enterpris- 返回订购界面 e.Com put Eng,2007.33(5):243 (简斌,左荣国,闫光荣等.基于OA的中小制造企业应用集 成系统研究.计算机工程,2007,33(5):243) 图6订单处理BPEL流程 6 Du Y B.The Researd of SOA Principe and Practice[Disserta Fig.6 BPEL process of orders treatment tion.Captital University of Economics and Business 2005 (杜彦斌.面向服务软件体系架构原理与范例研究.北京: Process Manager运行环境中部署和测试的.部署到 首都经济贸易大学,2005) Oracle BPEL Process M anager中的每个BPEL流程 [7 Cai X L Liang YQ.Web Servias Technology,Framework and 都需要一个流程描述符.BPEL标准不包括此流程 App lication.Beijng:Electronics Industry Press 2003 描述符且它特定于BPEL服务器.部署流程描述符 (柴晓路,梁字奇.W山Services技术、架构和应用.北京:电子 是流程在给定平台上的唯一实现部分,必须重写才 工业出版社,2003) 能在不同BPEL引擎上运行该流程.Oracle流程描 【8W3C.Wd由Servias Acivit1EBg0y.【2006-12-12.htps 述符是一个XML文件,它指定有关BPEL流程的 ∥www.w3.rg2002ws/ [9 Li D S,Wang H Y.A method study of business rules integration 以下细节:BPEL源文件名,BPEL流程名(D),所有 in BPEL.Com put Appl.2005.25(11):2705 合作伙伴链接WSDL Web服务的WSDL位置以及 (李德生,王海洋.一种将业务规则与BPEL有效集成的方法. 可选的配置属性. 计算机应用.2005,25(11):2705 10 Juric M B.Mathew B.Sarang P.Business Process Execution 4结论 Language for Web Services.Packt Pubi shing.2004 SOA体系结构的开发模式使非程序员可以创
图 5 订单完整处理流程 Fig.5 Full process int egrity of orders 图 6 订单处理 BPE L 流程 Fig.6 BPEL process of orders treatment Process M anager 运行环境中部署和测试的.部署到 Oracle BPEL Process M anager 中的每个 BPEL 流程 都需要一个流程描述符.BPEL 标准不包括此流程 描述符且它特定于 BPEL 服务器.部署流程描述符 是流程在给定平台上的唯一实现部分, 必须重写才 能在不同 BPEL 引擎上运行该流程 .Oracle 流程描 述符是一个 XM L 文件, 它指定有关 BPEL 流程的 以下细节:BPEL 源文件名, BPEL 流程名( ID) , 所有 合作伙伴链接 WSDL Web 服务的 WSDL 位置以及 可选的配置属性 . 4 结论 SOA 体系结构的开发模式使非程序员可以创 建和使用 IT 资产, 而不需要掌握 IT 技能.实践证 明, 基于此架构模式开发的应用系统加快了应用程 序的开发过程, 使得应用程序更易维护 .针对一个 实际的物流系统, 应用 Web 服务技术, 通过 SOA 体 系架构进行了设计和实现 .从结果可以看出:新设 计的系统大大增加了运行的灵活性, 提高了系统的 运行效率;同时在实现的过程中也为构建基于 SOA 的物流信息系统时提出了需要注意的问题, 这些问 题主要有 Web 服务的集成、服务资源和服务方法的 使用、系统的分布性和异构性等, 为以后系统的设计 与实现提供了参考 . 参 考 文 献 [ 1] Li X J, Zhang M Y.Study on logistics information system architectu re based on SOA.Logist Technol, 2007, 26( 3) :104 ( 李学军, 张明玉.基于 SOA 的物流信息系统架构研究.物流 技术, 2007, 26( 3) :104) [ 2] Mao X S .SO A Princip le, Method and Practice .Beijing :Electronics Industry Press, 2007 ( 毛新生.SOA 原理·方法·实践.北京:电子工业出版社, 2007) [ 3] Krafzig D, Banke K, Slama D, Han H Z.Ent erprise SO A Service-Oriented Architecture Best Practi ces .T ranslated by Han H Z.Beijing:Tsinghua University Press, 2006 ( Krafzig D, Banke K, S lama D .Enterp rise SOA ———面向服务 架构的最佳实战.韩宏志, 译.北京:清华大学出版社, 2006) [ 4] Yang C F, Wang G, Si J H .Build new generation EAI based on SOA .Compu t App l S oftware, 2005, 22( 10) :122 ( 杨昌锋, 王冠, 司建辉.基于 SOA 构建新一代的企业应用集 成.计算机应用与软件, 2005, 22( 10) :122) [ 5] Jian B, Zuo R G, YAN G R, et al.SOA-based Application integration system of small and medium-sized manufacture enterprises.Com put Eng , 2007, 33( 5) :243 ( 简斌, 左荣国, 闫光荣, 等.基于 SOA 的中小制造企业应用集 成系统研究.计算机工程, 2007, 33( 5) :243) [ 6] Du Y B.The Resear ch of SO A Princip le and Pr actice [ Dissertation] .Captit al Uni versit y of Economics and Business, 2005 ( 杜彦斌.面向服务软件体系架构原理与范例研究[ D] .北京: 首都经济贸易大学, 2005) [ 7] Cai X L, Liang Y Q .Web Servi ces Technology, Framework a nd App lication .Beijing :Electronics Industry Press, 2003 (柴晓路, 梁宇奇.Web Services 技术、架构和应用.北京:电子 工业出版社, 2003) [ 8] W3C .Web Servi ces Activity[ EB/ OL] .[ 2006-12-12] .h ttp: ∥ww w .w 3.org/ 2002/ w s/ [ 9] Li D S , Wang H Y .A method study of business rules integration in BPEL .Com put Appl, 2005, 25( 11) :2705 ( 李德生, 王海洋.一种将业务规则与 BPEL 有效集成的方法. 计算机应用, 2005, 25(11) :2705) [ 10] Juric M B, Mathew B, S arang P .Business Process E xecu tion Language for Web Services.Packt Publishing, 2004 · 138 · 北 京 科 技 大 学 学 报 第 31 卷