基于SOA的电网物流服务大厅应用系统的设计与实现
2017-03-01施继延杨宗亮刘东映
施继延,杨宗亮,刘 炎,刘东映
(1.云南电网有限责任公司物流服务中心 云南 昆明 650051;2.昆明能讯科技有限责任公司项目研发部云南 昆明650051)
基于SOA的电网物流服务大厅应用系统的设计与实现
施继延1,杨宗亮1,刘 炎1,刘东映2
(1.云南电网有限责任公司物流服务中心 云南 昆明 650051;2.昆明能讯科技有限责任公司项目研发部云南 昆明650051)
当前电网公司的多个物流业务系统存在数据分散独立,无法互联互通的问题。特别是随着电网中心服务业务量的扩大,这种传统的运营模式已无法满足业务发展需求。本文在一站式服务的基础上,提出了一种基于SOA的电网服务大厅系统架构。在系统中层通过构建SOA服务,把底层异构子系统的数据、业务逻辑进行封装,以服务的形式供应用接口层调用。最后基于该设计实现了应用系统,该系统不仅能高效地支持整个电网物流中心的业务运转,而且还具有一定的推广性。
SOA;Web服务封装;系统架构;J2EE
云南电网物流服务中心为云南电网有限责任公司物资集约化管理提供全面、高效的物资服务支持。目前物流中心各部门虽已实现了半无纸化办公,但是各个部门使用的业务系统仍然无法互联互通,系统之间的数据独立分散、无法共享。这种现状不仅出现了所谓的信息孤岛[1],也严重阻碍了部门之间的协作管理,影响办公效率。另外,在业务流程中还存在服务各环节切割分裂,合作方面临多头管理;业务沟通量大,供应商需要在中心各个办公室间来回跑才能完成业务办理等问题。
特别是在经济高速发展的今天,随着社会用电量快速增长,电网公司物资服务管理要求不断提高,物流服务中心的业务规模逐步扩大,物流服务中心传统的组织与运营模式已无法有效支撑“高效、多操作并行、质量稳定”的服务水平。如何科学、全面而又有效组织供应商管理工作是一个备受关注而又很有意义的问题。为此,为实现电网物流中心跨部门、跨领域办公,提升业务办理效率,云南省电网物流服务中心需要进行业务模式创新。在充分调研基础上,决定采用一站式服务,将相关职能部门的审批业务集中在一起,一次性为用户提供相关服务[2],建设并推广基于SOA的电网物流服务大厅应用系统,归集对外服务业务,重新调整物流服务模式,真正实现物资全程高效运作,辅助提升服务水平和企业形象。采用面向服务的体系结构SOA[3-5]可为一站式系统提供较好的解决方案。SOA技术独立于不同的硬件、操作系统,可把应用程序的不同功能单元进行封装(称为服务),提供统一的接口,通过服务之间良好的接口联系起来,实现不同部门之间数据的共享。
1 SOA服务架构及电网物流服务大厅应用系统架构设计
1.1 SOA服务架构
SOA(Service-Oriented Architecture)是一种面向服务的体系结构,最早于1996年由Gartner公司提出[6]。SOA网站[7]给出的官方定义是:“SOA的本质是服务的集合,各个服务之间进行通信,这些通信可能是简单的数据传递,也可能是多个服务之间协调进行的活动,而且服务之间需要的协调需要某些方法进行连接”。
在SOA体系架构的相互协调之间,主要涉及到三者:服务提供者、Weblogic服务注册中心[8]和服务使用者。服务提供者提供符合契约的服务,并将它们发布到Weblogic服务注册中心;服务使用者通过向Weblogic服务注册中心查找所需的服务,并绑定到对应的服务;服务使用者和服务提供者之间也可以直接交互,服务使用者可直接使用服务提供者提供的服务。通过构建这样的SOA服务架构,不仅可降低系统各部分之间的耦合性,增强服务设计的复用性,还能随时根据客户端需求灵活地执行相关任务,降低开发成本,这从根本上改变了传统软件的开发方式。
在电网物流服务大厅应用系统应用中,供应商、物资需求单位和业务人员就相当于是服务使用者,通过自助服务终端、门户网站、物流大厅系统等设备查找服务,完成相关业务;电网物流服务大厅系统中层作为服务提供者,提供各个应用软件和界面,使得客户端不用进行编程就可使用各个服务或根据需要构建相关的服务集。整个过程客户端都无需关心功能模块的业务逻辑构成、数据如何存储等问题,也不用担心不同业务子系统之间的异构性。
1.2 电网物流服务大厅应用系统架构设计
电网物流服务大厅系统把面向服务思想(SOA)引入到传统的J2EE体系结构上,在应用接口层和数据层之间搭建了一层SOA架构,通过对底层提供的服务进行组合封装,构建简单的Web服务,并提供统一的服务接口,供上层不同的业务系统调用。Web服务是以XML为基础,开放性的Web技术是SOA实现的主要方法[9]。
因云南电网物流服务中心各部门业务呈现多元化,针对客户有各种短期或长期业务需求,电网物流服务大厅系统对数据层和业务逻辑层的底层数据、业务逻辑进行封装,通过系统服务总线向上层注册、发布,供客户端的供应商、物资需求单位和业务办公人员使用。因部分业务涉及跨部门交叉,数据也可能是多个部门共享,为此有些服务还会根据客户端的需求进行多个服务组合,重新构成一个新的Web服务向上层发布。通过该机制,不仅解决了电网物流中心业务的动态性,服务总线还可随时根据客户端的业务需求生成对应的服务接口,并在服务库中找到相应的Web服务描述,如果确实需要涉及多个服务,可立马把相应的业务功能服务和业务数据服务进行封装,并和应用接口进行一对一绑定,执行相应操作。
电网物流服务大厅应用系统采用J2EE标准的层次体系结构设计。主要由网络基础设施层、数据层、SOA构建层(Web服务封装)及应用接口层4层构成,安全管理层与标准规范层贯穿平台所有层次。系统的体系架构如图1所示。
如图1所示,从下往上,系统架构底层是网络基础设施层,该层用于支撑整个应用系统的正常运转,为上层提供硬件服务。数据层用于存储、管理各子系统基础数据。SOA构建层(Web服务封装)又分为两层:服务管理层和业务逻辑层,业务逻辑层是对每个业务的具体逻辑实现进行封装,比如供应商登记服务、合同签订服务、支付款项服务等等;服务管理层主要是电网物流服务大厅应用系统涉及的几个大的业务模块,甚至是根据客户端需求重新构建新的组合服务,这样能保证当有新系统要集成时,也可将新系统的数据进行封装成服务供其他应用系统使用。在应用接口层和数据层之间,本文构建了一层SOA架构,SOA服务根据前端接口层需求对业务逻辑层提供的业务和数据进行封装,以屏蔽功能服务层中不同子系统之间的异构性。前端应用接口层提供与其他系统交互的接口,主要以门户网站、自助设备终端及大厅公告大屏进行展现,用户无需关心底层业务具体的实现,只需通过前端接口即可顺利办理相关业务。
在图1的架构中,标准规范模块主要包含了技术标准、业务标准以及行业解决方案标准,通过标准规范体系保障了平台的整个运作过程;安全保障模块是对整合平台内存在安全需求的数据和应用服务提供的一套安全策略,保证平台中数据和应用服务的安全性。安全管理主要包含信息防篡改、权限控制、数据备份、性能监控等功能。
图1 系统体系架构图
2 SOA服务封装设计
对于服务的封装,考虑到最主要的就是具有SOA标准的接口,但是SOA只对服务交互机制的标准进行了描述,并未规定具体的实现方式,到目前为止,从技术上看,对于标准接口的实现也出现了几种不同的方式,如表1所示。
表1 标准接口实现方式的比较
Web Service使用XML方式来描述所有数据,可轻松地穿越防火墙并实现跨系统地交换数据,与平台无关,为此本系统SOA构建层在进行服务封装设计时,采用的是Web Service方式[10-11]。在进行服务描述时,本系统采用了扩展巴科斯范式(extended Backus-Naur form,EBNF)[12]对服务组件的功能描述如下:
服务构建描述::=<接口规约,消息规约>
接口规约::=<接口名,操作>
操作::=<操作名,输入参数,输出参数>
输入参数::=<参数名,类型,描述>
输出参数::=<参数名,类型,描述>
消息规约::=<消息名,消息描述,消息属性>
消息属性::=<属性名,类型,属性描述>
以上描述是服务组件描述必不可少的,是定义服务接口的主要契约元素。另外,在服务封装时,本文采用ServiceMix作为企业服务总线,J2EE平台中Apache的Axis被作为Web服务引擎。ServiceMix是一个小巧的Java业务集成容器,是一个基于SOA架构和事件驱动的企业服务总线(ESB)[13]。
考虑到电网物流服务大厅应用系统的基础数据来自多个异构子系统,将对原有应用及数据进行Web服务封装成一些小的服务单元 (Service Unit,SU),以便以服务形式嵌入到企业服务总线中供应用接口调用。而这些服务单元将集中在服务集成模块(Service Assembly,SA)下一起运行[14]。运行过程中,配置文件jbi.xml负责配置运行在ServiceMix运行环境中的SA,即Broker业务流程控制模块。Broker服务引擎组件用来集成所有的服务组件,是主要的业务流程控制模块。servicemix.xml负责配置服务单元SU的运行。
文中以查询招标公开信息为例进行举例说明,如图2所示,首先需要招投标服务专员进入招标服务模块,将招标公开信息录入系统并发布。当客户端供应商点击招标信息查询按钮时,ServiceMix通过HTTP接收客户服务请求,以“招投标信息”该关键字作为变量,调用 BidMessageQuery服务, 此时BidMessageQuery服务内部已通过业务逻辑实现了招投标信息的提取和封装。在找到对应的服务组件后,服务并未直接返回给客户端,而是将服务请求通过NMR传送给Broker服务引擎组件,由Broker服务引擎组件决定是否可以返回给客户端。
图2 招标公开信息业务流程图
3 电网物流服务大厅功能模块及网络运行图设计
3.1 电网物流服务大厅功能模块设计
根据对电网物流服务大厅应用系统需求分析,功能模块分解图如图3所示。首先是窗口服务,根据不同窗口的业务办理,功能模块主要有招标服务、合同服务、履约服务、结算服务和综合服务五大块,每一个服务模块下面又分为好多具体的业务,这些功能模块的客户端人群主要是物流中心业务人员。自助服务里的功能模块主要是针对供应商、物资需求单位自己在大厅操作执行的。而后台的系统管理主要是系统管理员用于管理前台所需要的数据,如组织机构管理、用户管理和权限管理等。
图3 电网物流服务大厅应用系统功能模块分解图
3.2 电网物流服务大厅系统网络运行设计
电网物流大厅作为物流服务中心对供应商提供服务的唯一窗口,需要与供应商完成标书发放,中标公示,合同签订和合同执行等业务。考虑到一站式窗口服务将大幅提高企业工作透明度,客户只需要到达服务大厅,就可以得到所需要的完整服务,文中提出了基于一站式
服务理念的网络运行图,如图4所示。
图4 系统网络运行图
系统底层通过Web Service接口将其他子系统的数据都整合到了系统应用服务器上,以便于大厅客户及业务工作人员可直接访问数据,办理业务。考虑到系统安全,服务器和客户端接口之间经过安全防护硬件(例如:防火墙)的过滤之后访问系统资源。
4 系统实现
在以上设计的基础上本文实现了电网物流服务大厅应用系统。该应用系统在软件体系方面,遵循JAVA EE规范,采用MVC模式(Model+View+Control)[15]进行开发。在基于Web2.0、XML等通用技术标准的基础上,集成通用的权限、用户、工作流等基本功能,有效保证系统的稳定和可靠运行。在业务逻辑层,利用组件封装技术,降低耦合度,实现业务逻辑的纵横贯通,并根据需要提供接口,保证了业务和数据的交互能力。目前该系统已开发完成并投入实际使用,系统台界面如图5所示。
图5 电网物流服务大厅应用系统界面图
5 结束语
文中在SOA理念的基础上设计了电网物流服务大厅应用系统架构,将SOA在企业集成面向服务的思想应用到电网系统,不仅实现一站式大厅的集成,从而也实现了电网物流中心“一化三高”(“工作流程标准化、专业化程度高、工作效率高、服务满意率高”)的目的。通过该应用系统的设计并实现,不仅解决了电网物流中心各部门信息无法互联互通、办公效率低下的问题,物流中心也从半自动化办公真正转变为无纸化办公。但是随着SOA和新技术的发展,本系统也还有一些不足之处,比如随着业务量的扩大,后期可考虑在应用系统数据底层采用分布式云存储进行数据管理,以高效地实现对多个子系统的异构分布式数据的并行操作。
[1]赵万青.数据交换与共享系统的设计与实现[D].湖北:华中科技大学,2012.
[2]沈荣华,杨国栋.论“一站式”服务方式与行政体制改革[J].中国行政管理,2006(10):27-30.
[3]Cucinotta T,Mancina A,Anastasi G F,et al.A real-time service-oriented architecture for industrial automation[J].IEEE Transactions on Industrial Information,2009,5(3):267-277.
[4]NI Y H,WANG H B,HUANG N S,et al.A heterogeneous system integration framework for businesscollaboration[C]//IEEEInternationalConference on Intelligent Computing and Intelligent Systems,Shanghai:[s.n.],2009:217-221.
[5]JIN Y,SHIDIAGATTA S.A framework of fuzzy triggers for XML database systems [C]//IEEE International Conference on Information Ruse and Integration.Las Vegas:[s.n.]2009:296-299.
[6]SCHULTE R W,NATIS Y V.Advanced SOA for advanced enterprise projects,Report ID:493863,Gartner[EB/OL].(2006-07-13).http://www.gartner. com/DisplayDocument ref=g_search&id=493863 &subref=advsearch.
[7]Barry D K.Service-Oriented Architecture(SOA)Definition[EB/OL].(2014-01-4).http://www.servicearchitecture.com/articles/web-services/serviceoriented_architecture_soa_definition.html.
[8]谢辉,鲁士文.基于 WebLogic Server实现跨域启用集中式身份验证SOA[J].计算机工程与应用,2006(33):119-121,131
[9]SI N,YU P F,ZHANG L.Semantic SOA based integrated development environment for complex information systems[C]//Proceedings of the 7th International Conference on System Simulation and Scientific Computing.Beijing:[s.n.].2008:1521-1526.
[10]张胜,王露,黄亮.Web Service的封装在车联网系统中的应用[J].计算机与现代化,2013(6):162-165,169
[11]孙传群,杨洋.基于Web Service的业务系统集成模型[J].科技通报,2013,04:44-46
[12]谷勇浩,刘勇.用扩展巴科斯范式优化决策树协议解码技术 [J].吉林大学学报 (信息科学版),2007,25(1):12-17.
[13]IBM.Combining service-oriented architecture and event-driven architecture using an enterprise service bus[EB/OL].[2011-08-10].http://www.ibm.com/developerworks/library/ws-soa-eda-esb/index.html.
[14]梁爱虎.SOA思想、技术与系统集成应用详解[M].北京:电子工业出版社,2007
[15]冯相忠,王萍.基于J2EE平台的MVC模式的办公日志系统的实现 [J].计算机应用,2005,25(12): 2964-2966.
The design and implementation of the SOA-based power grid service center system
SHI Ji-yan1,YANG Zong-liang1,LIU Yan1,LIU Dong-ying2
(1.Logistics Service Center of Yunnan Power Grid CO.,LTD,Kunming 650051,China;2.Project Research and Development,Kunming Nengxun Technology CO.,LTD,Kunming 650051,China)
Although there are lots of subsystem in in power grid company,they are currently facing the problem of unable to connective smoothly.Meanwhile the data is independent and scattered.This traditional operation mode can't meet requirements with the expanding of business power grid service center.To solve this problem,this paper proposes a SOA-based power grid service center system based on the concept of"one-stop"working style.It builds an SOA service in the middle layer of system and encapsulate the data,business logic which in the underlying heterogeneous subsystems.Then our system supplies with the interface layer in the form of service calls.Finally the application system was implemented based on the design.This system not only can efficiently support the business operation of the whole grid logistics center,but also has certain extension.
SOA;Web service encapsulation;system architecture;J2EE
TN02
:A
:1674-6236(2017)02-0071-05
2016-01-21稿件编号:201601186
施继延(1967—),男,云南昆明人,硕士,高级工程师。研究方向:项目管理,物资供应链管理,物资一体化管理。