一种面向电子商务的企业服务总线的实现

2015-01-16 05:26周小娟
电子设计工程 2015年11期
关键词:总线子系统消息

周小娟

(西安外事学院 计算机中心,陕西 西安 710077)

在电子商务蓬勃发展的今天,越来越多的企业将产品的销售重心定位在了电子商务销售渠道,在淘宝,京东,亚马逊等电子商务销售平台开设销售旗舰店或者分销店已经成为一种非常重要的销售方式。为了能够将前端销售平台产生的大量订单及时的进行处理,然后快速安排仓储出货,物流配送,客服系统售后跟进,并进行企业财务系统账务处理,就必须在企业网络系统中存在一种能够连接前端销售平台和企业各个业务子系统的中间件产品,该产品能够及时准确的从销售平台获取客户订单,并将销售订单在各个业务子系统之间进行传输,并触发不同的子系统对订单进行相应的业务处理,从而加快企业对客户订单的响应速度。这种中间件产品就是企业服务总线,英文简称ESB。

企业服务总线提供了企业网络中最基本的连接中枢,是构筑企业网络神经系统的必要元素,企业网络中各个系统进出的数据和指令都要由企业服务总线进行分发、转译、记录和控制。企业服务总线连接了各个不同的系统,消除了企业不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合,从而加快了业务的处理速度。

在现有的企业服务总线产品中,有IBM的WebSphere ESB,Oracle的BEA Aqua Logic等高端企业服务总线产品;同时,也有类似ServiceMix等低端的开源架构。综合来看,高端产品过于庞大昂贵,而低端产品又比较死板。本文根据一般中小企业业务灵活多变的特点,研究实现了一种轻量级可配置,并面向电子商务业务的架构,不仅能够满足中小企业在电子商务业务方面的需求,还具有高可扩展性,用户能随时对功能进行延伸,比如进行更强的日志监控,更多的数据转换能力等。

1 功能要求

企业服务总线在企业网络中扮演了连接中枢的作用,不同业务类型的企业网络中,企业服务总线的作用可能各有差别,但主要的功能应当是相同的。面向电子商务业务的企业服务总线在功能上需要实现两大方面的主要功能:

1)数据交换

数据交换是企业服务总线最主要的功能。淘宝,京东等销售平台以及企业的各个业务子系统一般是由不同的软件供应商提供,开发采用了不同的开发技术,为了将它们接入企业服务总线,企业服务总线必须对不同技术开发的不同子系统提供不同的接入方式。本系统实现了电子商务网络系统中最常用的两种接入方式:Http和web service。在各个业务子系统成功接入企业服务总线后,企业服务总线必须能够对传输的业务数据进行解析和转换,为数据流入下一个子系统进行准备。本系统实现了对xml和jason这两种最常用的数据格式的解析和转换。企业服务总线还必须具有路由分发的功能,将不同类型的业务数据分发到不同的业务子系统中去。

2)运营管理

运营管理负责企业服务总线的管理,配置和监控,具体包括企业服务总线的操作用户管理,权限管理,业务子系统和销售平台的接入控制和配置,和各个子系统数据交互的监控,日志管理等等。

图1 企业服务总线在企业网络中的位置图Fig.1 Position of enterprise service bus within the enterprise network

2 设计实现

2.1 设计原则

企业服务总线在设计中必须遵循以下两个原则:

1)对各个接入系统透明

企业服务总线的主要作用是整合已有的子系统及其服务,而不是直接在企业服务总线上开发新的业务功能模块。因此对于各个接入系统的体系架构,企业服务总线的引入所带来的重构影响应当控制在最小。企业服务总线对于接入系统来说是应当是透明的,即接入子系统在使用Web服务的时候不用知道企业服务总线的存在,它向某个预先配置的地址发送Web服务请求,并期望得到预期的结果。接入子系统无需区分它访问的服务是实际的Web服务还是企业服务总线。同样,企业服务总线对于提供服务的子系统也是透明的。服务提供方只需在企业服务总线上注册了一个服务,便能接受来自于企业服务总线的服务请求。服务提供方无需分辨服务调用者来自何处,而只需处理请求并返回相应的结果即可。

2)组件动态装配

在企业服务总线的设计中,对于接入系统的接口都是以组件的形式存在的。另外,对于不同的接入系统的消息转译也是通过组件实现。消息在企业服务总线流转时,可以给消息数据选择合适的传入/传出转译器。对于服务的特殊要求,如日志管理,缓存管理,异常管理等,用户都能通过扩展组件的方式,在需要的时候配置组装上去。这些组件的组装,不是在代码中写死,而是由企业服务总线系统提供配置文件供用户来装配。在装配过程中,无需修改源代码,且支持即插即用,而无需重启企业服务总线的服务器。所有组件都可以随时根据需求变换升级,这些变化对于其它组件是透明的。

2.2 设计框架

基于上一节的设计原则,本文所实现的企业服务总线整个系统包括7大模块:接入控制、消息分发、消息转译、服务端接口调用、配置管理、日志管理、接口适配器。

图2 企业服务总线的设计框架图Fig.2 Framework of Enterprise Service Bus

服务消费者一般指业务的发起者,在本系统中就是淘宝,京东等销售平台,当用户在这些平台购买产品产生订单后,这些订单会被定时同步到总线并会触发后续的业务流程。服务生产者是指在业务流程运行的过程中需要访问的各个业务子系统,包括企业财务系统,物流系统,仓储系统,客服系统等等。

接入控制模块负责和各个接入系统建立通信连接、解析控制信息、权限控制等功能。本企业服务总线系统提供http reset,web service接入方式建立企业服务总线和各个子系统的通讯连接。在连接建立后通过对子系统和销售平台的应用标识及认证key进行验证,来校验接入系统的合法性。接入校验通过后,本企业服务总线平台会进一步校验应用系统对服务的访问权限,如果应用系统没有访问该服务的权限,则直接拒绝。

消息分发模块根据消息控制信息中的功能编码将消息交由相应的功能组件进行处理,同时判断组件的队列情况对流量进行控制。

消息转译模块用于翻译消息的内容,使得不同平台之间能够相互理解。信息转译部分包括两个子模块,传入信息转译和传出信息转译。传入信息转译指将前端客户端发出的消息格式转化为目标服务能理解的格式;而传出信息转译是指将目标服务处理完成后的反馈信息转化为前端客户能理解的格式,将结果反馈给前端。消息转译在客户端和后端服务之间架设了一座桥梁,使得两者能够无障碍通讯。

服务端接口调用模块根据服务注册信息调用服务生成者提供的服务,并将处理结果传送给消息转译组件进行处理,最终将服务生产者处理的结果返回给服务消费者。

配置管理模块用于管理所有的这些组件的配置管理工作,使得系统能够动态的加载或更新这些信息。配置管理包括:服务注册、权限配置等。

日志管理模块负责运行日志管理、消息监控。通过运行日志,可以查看企业服务总线平台的运行情况及在异常时分析问题发生的原因。根据消息流水号可以查询到消息的执行情况,如:接收数据包、发送数据包、执行时间等,同时也可以方便的统计出各个应用及服务的访问情况,如:应用访问总数、服务访问总数、执行时间、成功率等。

接口适配器模块的主要功能就是在客户端不作任何改动的前提下,使得其能将信息发送给企业服务总线,并能帮助客户端理解企业服务总线传回来的反馈信息。在实际工作时,接口适配器接收企业服务总线发来的信息,并将之转化为服务生产者所能理解的格式。另一方面,当服务生产者发回反馈信息后,将其包装成企业服务总线能理解的标准格式反馈回去。

2.3 对外接口

本文实现的企业服务总线主要提供如下三类功能的接口:

1)获取订单数据接口

订单数据接口通过独立的定时任务从外网销售平台定时获取一定时间段的订单,并将获

取的订单同步给订单处理业务子系统。

通过消息订阅或轮询的方式从淘宝、拍拍、碰碰、官网商城等渠道获取订单列表信息,订单列表只包含订单号、订单生成时间等基本信息,为了保障订阅消息接收或轮询的速度,在获取订单列表信息后对消息不作处理,而将原始订单信息记录同步给订单处理业务子系统。不同的渠道处理方式不一样,对于提供了消息订阅的渠道(如:淘宝),采用订阅消息接收+轮询的方式从获取订单列表信息,对于未提供消息订阅的渠道,采用轮询的方式获取订单列表。

企业服务总线平台需要能够手工添加订单,或者对于没有提供自动接口的销售渠道平台能够通过excel的方式将订单导入到接口队列。

2)订单流转接口

订单处理子系统在处理订单的流程中需要与外围其它业务子系统进行数据交换,这类接口大部分都是双向的,既有企业服务总线对外发送请求,也有外围系统返回信息给企业服务总线。

订单处理子系统在任务单调度时,在某些环节需要将指令发送给外围系统,如:在安排仓库时需要将指令发送给物流宝、SPD等物流系统,在安排货运时需要将指令发送给物流宝、SPD、宅急送等运输系统。此时订单处理子系统将指令发送给调度任务接口适配器,由调度任务接口适配器将订单处理子系统的指令转换为企业服务总线能够识别的指令与外围系统交互。这里也需要对指令执行过程进行监控,能够查询指令的执行情况,如:执行结果、执行时间、接口数据等。

3)对外服务接口

提供服务给外围接入系统调用,如:查询库存信息、查询订单信息、查询产品信息等,提供http rest及web service两种方式接入。

2.4 部署要求

企业服务总线的部署需要部署在一台独立的应用服务器上,为了最大化的发挥企业服务总线的性能,其数据库也要求部署在独立的服务器上。

图3 企业服务总线的接口分布Fig.3 Interface of enterprise service Bus

软件方面,企业服务总线应用服务器需要安装JDK1.6版本,以及Tomcat应用容器进行服务的发布,数据库软件可以使用Oracle或者MySQL。

图4 企业服务总线的部署图Fig.4 Deployment diagram of Enterprise Service Bus

3 结 论

本文通过对电子商务[8]环境下企业运营现状的研究,提出并实现了一种适合中小企业电子商务业务的企业服务总线。该总线具有轻量级,可配置,高扩展性等特点,能够很好的接入各类企业电子商务销售渠道平台,以及企业各个业务子系统。该企业服务总线的实现可以极大的加快中小企业订单的响应速度,使得从客户在网站下单到物流配送,仓储管理业务一体化连续化,从而加快订单的处理速度,减少人力成本,提高客户的满意度,为企业创造更大的效益。

[1]陈坤,杨社堂.企业服务总线在跨行现金管理系统中的应用研究[J].电脑开发与应用,2010(12):34.CHEN Kun,YANG She-tang.Research and application of enterprise service bus in the cross bank cash system[J].Computer Development&Applications,2010(12):34.

[2]孙垚,廉东本.一种基于ESB的高效可靠的动态路由模型[J].计算机系统应用, 2011(2):43.SUN Tu,LIAN Dong-ben.An efficient and reliable dynamic routing model based on ESB[J].Computer System Applications,2011(2):43.

[3]胡泽,廖闻剑,彭艳兵.WebService技术研究及应用[J].硅谷, 2009(5):48.HU Ze,LIAO Wen-jian,PENG Yan-bing.Research and application of web service technology[J].Silicon Valley,2009(5):48.

[4]胡方霞,曾一,高旻.Web Services技术应用与探讨[J].计算机科学,2007,43(3):75-77.HU Fang-xia,ZENG Yi,GAO Wen.Application and discussion of web service technology[J].Computer Science,2007,43(3):75-77.

[5]杨文志.云计算技术指导南[M].北京:北京工业出版社,2010.

[6]李银胜,付勇.面向服务架构与应用[M].北京:清华大学出版社,2008.

[7]孟琼.Spring框架事务处理技术研究[J].计算机与现代化,2012(12):25.MENG Qiong.Research of Spring framework transaction processing[J].Computer and Modernization,2012(12):25.

[8]潘雨相.基于PKI技术的电子商务安全支付系统设计[J].现代电子技术,2014(12):93-95.PAN Yu-xiang.Design of E-commerce security payment system based on PKI technology[J].Modern Electronics Technique,2014(12):93-95.

猜你喜欢
总线子系统消息
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
一张图看5G消息
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
驼峰测长设备在线监测子系统的设计与应用
CAN总线并发通信时下位机应用软件设计
多通道ARINC429总线检查仪
消息
消息