基于SOA的数据共享与交换平台


—280— 基于 SOA 的数据共享与交换平台 郭文越 a,陈 虹 b,刘万军 b (辽宁工程技术大学 a. 电子与信息工程系;b. 软件学院,辽宁 葫芦岛 125105) 摘 要:为适应企业业务流程频繁变更的需要,基于 Web 服务和企业服务总线技术,构建一个面向服务架构的数据共享与交换平台,通过 该平台实现跨部门应用间的数据交换和信息共享。利用该平台的设计实例解决企业实际运营中的产品信息不一致问题。 关键词:面向服务架构;企业服务总线;Web 服务;松散耦合 Data Share and Exchange Platform Based on SOA GUO Wen-yuea, CHEN Hongb, LIU Wan-junb (a. Dept. of Electronics and Information Engineering; b. School of Software, Liaoning Technical University, Huludao 125105, China) 【Abstract】To meet the needs of frequent changes of enterprise business processes, this paper structures a data share and exchange platform based on SOA by using Web service and Enterprise Service Bus(ESB) technology. Cross-departmental data exchange and information sharing can be realized by the platform. A design example of the platform is given. It can solve the problems of practical operations of enterprise product information inconsistencies. 【Key words】SOA; ESB; Web service; loose-coupling 计 算 机 工 程 Computer Engineering 第 36 卷 第 19 期 Vol.36 No.19 2010 年 10 月 October 2010 ·开发研究与设计技术· 文章编号:1000—3428(2010)19—0280—03 文献标识码:A 中图分类号:TP391 1 概述 易观国际 Enfodesk 产业数据库发布数据显示,2009 年 第 2 季度中国 B2C 网上零售市场销售规模达到 45.44 亿元, 环比增长 30.0%,同比增长高达 155%。我国服装制造企业 B2C 电子商务迅速发展,越来越多的传统服装制造企业逐步 加入到该行列中[1]。目前,服装电子商务解决方案门类繁多, 其电子商务系统开发运行的基本特征是:面向客户的企业门 户网站建立在 Internet 上,服装制造企业利用其内部业务网 络进行具体的业务处理,企业各部门的业务系统(ERP、CRM 等)互不联系、独立运作。这些独立的、异构的、封闭的系统 制约了服装制造企业电子商务的效率优势,部门间、部门与 合作伙伴间的信息沟通和数据共享问题亟待解决。真正的服 装制造企业电子商务应当集电子商务门户网站、供应链、产 品制造流程、物流、销售于一体,这其中有大量数据需要处 理和交换。因此,构建一个数据共享与交换平台具有重要意 义。传统的信息集成技术通过专用的点对点接口程序实现信 息共享和交换[2],虽然能解决集成中信息的分布性与异构问 题,却忽略了与业务逻辑的关联,无法适应企业业务流程频 繁变更的需要。面向服务的体系结构(Service Oriented Archi- tecture, SOA)是一种业务驱动的、粗粒度、松耦合的服务结构, 支持对业务进行整合,使其成为一种相互联系、可重用的业 务任务或服务[3]。本文基于 SOA 的先进理念,提出基于 Web 服务和企业服务总线技术的面向服务架构思想的解决方案, 将整合思想、分层架构思想引入数据共享与交换平台设计中, 从而为服装制造企业电子商务发展模式提供一种新思路。 2 基于 SOA 的数据共享与交换平台设计 本文构建了一个面向服务、规范统一、灵活可扩展的数 据共享与交换平台,实现企业各类业务系统的互通互连和数 据共享。基于 SOA 的服装制造企业数据共享与交换平台分层 体系架构如图 1 所示。 适配器 (节点服务器1) 业务1 services 业务2 services 适配器 安全接口 适配器 (节点服务器2) 适配器 (节点服务器3) ESB ... 认证网关 安全 支撑服务 单点登录 应用接入 数据接入 身份认证门户 Web service 封装 业务系统1 Web service 封装 业务系统2 Web service 封装 业务系统3 控 制 中 心 服 务 管 理 数据库 数据库 数据库 数据服务层 应用系统层 服务提供层 用户表示层 ... ... 图 1 数据共享与交换平台架构 对上述架构具体说明如下: (1)数据服务层 数据服务层主要包括提供服务的各个应用系统数据源。 服装制造企业各种业务系统的数据类型形式各异(如关系型 数据、文件型数据等),数据访问方式复杂多样。这种数据孤 岛的存在会导致上层应用产生矛盾的业务处理结果。数据互 操作性体现在与任何平台、编程语言相关的私有数据格式都 基金项目:辽宁省教育厅基金资助项目(2009A350) 作者简介:郭文越(1985-),女,硕士研究生,主研方向:面向服务 架构,Web 服务;陈 虹,副教授;刘万军,教授 收稿日期:2010-05-16 E-mail:gwy0507@126.com —281— 可以映射为标准的、文本格式的 XML 表示,从而超越平台、 语言相关的具体实现。因此,该层在 WSDL 接口与实体数据 库间引进 XML-SQL 引擎作为数据服务代理。WSDL 接口描 述了服务名称、服务地点和如何与服务通信等内容,可以实 现广泛的数据存储访问[4]。XML-SQL 引擎提供了一个开放 的、标准的数据存储方法,它既可以把 XML 的请求转换成 SQL 命令来操纵数据库,也可以用现有数据生成 XML 文档 供业务系统使用。数据服务层通过数据集成消除数据孤岛, 实现分布数据源的统一管理。 (2)应用系统层 为使企业各个业务系统能以一种松耦合的方式进行集 成,需要将业务系统封装成 Web 服务。采用 Web 服务技术 将系统封装成 Web 服务,将业务系统原来以各种 API 形式暴 露的接口用 WSDL 重新描述,用统一的方式暴露接口,并使 用 HTTP+SOAP 的消息传输方式作为与外界交互的桥梁。这 样,服务的内部实现细节被封装在通过 SOAP/WSDL 传递的 信息流之中,从而使原有的业务系统以一种松散耦合的方式 集成。 (3)服务提供层 服务提供层是数据共享与交换平台的核心部分,是业务 系统单个功能和任务的抽象与封装。它摆脱了下层业务系统 细粒度服务的限制,实现诸多全新的功能和业务逻辑。其功 能的实现主要依赖适配器和企业服务总线。 该层运行着诸多单一功能的应用业务,如客户关系、会 员服务、仓储管理、服装面料供应等。当企业需要增加新的 业务系统时,由于开发语言或运行系统的限制,这些应用无 法直接跨越所有平台实现应用集成访问,因此在服务提供层 中提供了对各种异构构件的适配器,适配器通过接口接收和 发送消息,实现与被连接构件之间的交互[5]。适配器一般包 括:针对常被应用在 ERP、CRM 等领域内的大型的集成封装 程度很高的应用软件系统的企业应用系统适配器,通过业界 标准或其他技术手段和应用系统相连的适配器(如 XML、Web 服务等)。适配器机制提供了灵活动态的连接方式和路由机 制,可以与各种环境下的业务系统进行无缝连接,这些适配 器通过 WSDL 接口连接在企业服务总线上。为使众多位于服 务提供层中的以 Web 服务形式存在的服装贸易应用信息资 产可以得到集中、有效的管理,需要将 Web 服务松耦合连接 到 ESB 中。ESB 提供了服务之间灵活、基于内容、位置透明 的可靠消息传送。此外,对于企业贸易活动中非常灵活的业 务,可以利用企业服务总线在异构系统中快速重用和部署服 务,将服务和资源组织成用户需要的逻辑过程。 (4)用户表示层 用户表示层主要提供友好的用户界面,它将底层提供的 单一应用服务、复合业务服务和整合数据服务通过统一的门 户显示到最终用户前,包括提供门户、单点登录、界面定制、 身份认证等功能。 如图 1 所示,中央服务器作为平台的一部分,提供安全 管理等平台公共应用支撑服务。与各节点应用接口的适配器 运行于节点服务器上。节点服务器提供可靠事件的传输管理 机制等事件管理功能。该平台使得数据以 XML 格式在企业 部门节点之间采用端对端对等的方式直接交换,充分保证了 平台的可扩展性,其节点数的增加不会产生中央服务器的效 率瓶颈,并可以避免单点故障[5]。该平台支持与多种数据库 (Oracle、Sybase 等)无缝对接,也支持多种通信传输方式,如 HTTPs、异步可靠事件方式(Web 服务、JMS 等)。总之,数 据共享与交换平台实现了大量不同格式、不同位置数据的共 享和相互访问,形成协同办公、一站式服务的基础平台。 3 数据共享与交换平台设计实例 服装制造企业各部门的 ERP 系统、CRM 系统等分别独 立运作,尚未实现集成,可能导致 ERP 系统、CRM 系统各 自产品信息数据库中的产品信息不一致。例如,当 ERP 的某 一产品定价改变时,因为 CRM 没能及时更新,所以还是在 原来的产品价格基础上对不同级别的会员客户做出相应价格 优惠政策,就会产生错误。因此,本文采用以下技术解决上 述问题。 整个开发部署环境选择 J2EE 技术平台和 Web 服务技术, 并使用 JDK1.5、集成开发环境 Eclipse 3.1.2、Web 容器 Apache Tomcat。采用 J2EE 平台中 Apache 的 Axis 作为 Web 服务引 擎,选择 ServiceMix 作为企业服务总线。ServiceMix 是一个 基于 SOA 架构和事件驱动的 ESB,是一个轻量级 Java 业务 集成(Java Business Integration, JBI)容器,JBI 规范提供了一个 可插拔式的结构概念,整个结构分为 JBI 环境和 JBI 组件。 3.1 服务封装 在不改变上述系统原有底层架构的前提下,对原有应用 进行 Web 服务封装,以便 Web 服务进一步以组件的形式嵌 入到 ESB 中供系统间的调用。该应用较复杂,需要将服务模 块分成一些小的运行单元(Service Unit, SU)。SU 集中在服务 集成模块(Service Assembly, SA)下一起运行[6]。配置文件 jbi. xml 负责配置运行在 ServiceMix 运行环境中的 SA,即 Broker 业务流程控制模块。servicemix.xml 负责配置 SU 的运行单元。 根据上述服装制造企业实际业务需求,进行相应的服务抽取 以满足新的业务流程。主要的服务组件描述如下: (1)HTTP 绑定组件。负责接收外部服务请求,并将服务 请求通过 NMR 传送给 Broker 服务引擎组件。 (2)Broker 服务引擎组件。它接收外部服务请求者的请求 消息后,首先调用 PriceQuery 服务,通过产品 ID 和客户 ID 得到产品最新定价和客户会员级别,然后调用 LenderGateway 服务。Broker 服务引擎组件用来集成所有的服务组件,是主 要的业务流程控制模块。 (3)PriceQuery 服务引擎组件。从 Broker 得到服务请求, 完成根据客户 ID 和产品 ID 得到客户会员级别和产品最新定 价的服务。 (4)LenderGateway 服务引擎组件。根据客户会员级别的 不同分别调用 Rule0、Rule1、Rule2、Rule3 的服务。 (5)Rule0 服务引擎组件。提供非会员客户的最终产品价 格服务。 (6)Rule1 服务引擎组件。基于产品最新定价和一级会员 客户的产品价格优惠政策,提供产品最终价格服务。 (7)Rule2 服务引擎组件。基于产品最新定价和二级会员 客户的产品价格优惠政策,提供产品最终价格服务。 (8)Rule3 服务引擎组件。基于产品最新定价和三级会员 客户的产品价格优惠政策,提供产品最终价格服务。 (9)运行基本流程。ServiceMix 通过 HTTP 接收客户服务 请求,以客户 ID 和产品 ID 作为输入变量,调用 PriceQuery 服务,得到客户会员级别和产品最新定价。PriceQuery 服务 进一步将客户会员级别和产品最新定价结果发送到 LenderGateway 服务。LenderGateway 服务根据会员级别的不 同,调用不同的 Rule 服务。若客户是非会员,则调用 Rule0 —282— 服务,若客户是一级会员,则调用 Rule1 服务,若客户是二 级会员,则调用 Rule2 服务,若客户是三级会员,则调用 Rule3 服务。最后,PriceQuery 服务将从 Rule 返回的对应于客户目 前会员级别(或非会员)的最终产品价格结果返回给服务请求 者。该模块采用的是异步调用方式,在 Broker 收到绑定组件 通过 NMR 送来的消息交互 MessageExchange 后,并不是马 上返回响应消息,而是将 MessageExchange 通过其唯一编号 保存于 ConcurrentHashMap,在最终得到了 Rule 的服务响应 后,才从 ConcurrentHashMap 取出 MessageExchange,返回相 应消息。 3.2 基于 JBI 的消息交互 以上封装的各种服务在 JBI 轻量级环境里进行消息交 互,如 3.1 节所述,服装制造企业的 ERP 系统服务提供者 Axis Web 服务提供了 PriceQuery 服务,该服务将从 Rule 返回的对 应于客户目前会员级别(或非会员)的最终产品价格结果返回 给 CRM 系统服务请求者。CRM 系统客户端需要通过 JBI 来 调用 PriceQuery 服务。 CRM 客户端请求者将查询产品最终价格消息的HTTP 请 求发送到 JBI 的专门负责接收基于 HTTP 协议请求消息的 HTTP_BC 绑定组件。HTTP_BC 要将服务转到服务 Price Query: receiver。在此过程中,HTTP_BC 要先将请求信息转 化成规格化消息(Normal Message, NM),再将 NM 送到规格 化消息路由器 NMR,服务引擎 ReceiverSE 通过 Endpoint 端 口 receiver 来接收从 NMR 传送过来的 NM。接收到 NM 后, 记录 MessageExchange。服务引擎 ReceiverSE 再将接收到的 NM 送到 NMR,NMR 将 NM 送到 SOAP_BC 绑定组件。 SOAP_BC 将接收到的 NM 转化成 SOAP 格式消息,送到属 性 soapEndpoint 定义的 ERP 系统服务提供者 Axis Web 服务 的“产品最终价格”服务模块地址 http://localhost:8888/ axisModule/services/PriceQuery。 PriceQuery 服务接收到请求消息后,调用执行程序判断 是否有异常,若有异常则将错误消息发给 NMR,若无异常, 则将响应的 SOAP 格式的“产品最终价格”消息返回给 SOAP_BC。SOAP_BC 将消息转化成 NM 送到 NMR,NMR 将 NM 送到服务引擎 ReceiverSE。服务引擎 ReceiverSE 记录 MessageExchange 后将 NM 送到 NMR,NMR 将 NM 送到 HTTP_BC。HTTP_BC 将“产品最终价格”消息 NM 转化成 HTTP 消息并将其传送到 CRM 客户端请求者。查询“产品最 终价格”服务的验证,在客户端打开一个 HTTP 的链接,将 以下内容传过去: PriceQuery 其响应结果如下: The unit-price of product is 150 RMB! 4 结束语 本文以 SOA 理念设计服装制造企业数据共享与交换平 台,将 SOA 运用于企业集成的优势应用于该平台,从而实现 各部门业务系统的互通互连和数据共享,为用户在分布、异 构、动态的环境下提供透明、一致的信息访问和交互手段。 通过该平台的设计实例,解决了企业实际运营中产品信息不 一致的问题,从而保持了服装制造企业电子商务的效率优势。 SOA 处于不断发展中,而本平台仍然存在一些问题和不足, 有待进一步深入研究。 参考文献 [1] 曹 飞. 传统服装制造企业进军网络销售[EB/OL]. (2009-08-18). http://www.51jms.com/News/132960.htm. [2] 易峥荣, 卜 炜, 葛序风, 等. 基于 SOA 的数据协同模型[J]. 计算机工程, 2009, 35(4): 261-264. [3] 袁月杨, 麻丽莉. SOA & Web2.0——新商业语言[M]. 北京: 清 华大学出版社, 2007. [4] 何泓伟, 曲朝阳. 基于企业服务总线的医药电子商务平台[J]. 计算机应用, 2006, 26(2): 333-335. [5] 李晓东, 杨 扬, 郭文彩. 基于企业服务总线的数据共享与交换 平台[J]. 计算机工程, 2006, 32(21): 217-219. [6] 梁爱虎. SOA 思想、技术与系统集成应用详解[M]. 北京: 电子工 业出版社, 2007. 编辑 陈 晖 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第 279 页) [7] Sharma A, Kaur D D. Component Classification and Retrieval Using Data Mining Techniques[C]//Proc. of National Conference on Challenges & Opportunities in Information Technology. San Diego, USA: [s. n.], 2007: 58-62. [8] 王渊峰, 张 涌, 任洪敏, 等. 基于刻面描述的构件检索[J]. 软 件学报, 2002, 13(8): 1546-1551. [9] 梁 粤, 任洪敏. 基于刻面分类模式的构件库检索方法[J]. 计算 机工程应用技术, 2008, 10(6): 1315-1317. [10] 任守纲, 王宁生. 基于构件的 MES 软件产品线关键技术研 究[D]. 南京: 南京航空航天大学, 2005. [11] 葛哲学, 孙志强. 神经网络理论与 Matlab R2007 实现[M]. 北京: 电子工业出版社, 2007. 编辑 任吉慧
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf