基于SOA的移动OA系统设计与实现
摘要:该文在对soa体系架构进行了大量分析与研究的基础上,重点研究了soa实现的关键技术与webservice的实现过程,提出了结合soa技术设计与实现一个移动oa系统的模型,这对在信息化办公应用领域中推广面向服务的架构设计思想与开发理念有较高的参考价值。
关键词:soa;webservice;移动oa系统;面向服务
中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)04-0782-03
1 背景
soa(service oriented architecture面向服务的体系结构),是一种面世不久的软件开发模式。与传统的软件开发模式相比,soa可以更加轻松地整合现有的数据与业务,将各种业务处理流程与数据存储以“服务”的形式发布到开放的标准平台中供用户进行访问,这样可以使企业从面向技术应用的解决方案的束缚中解放出来,从而轻松应对各种业务发展变化的需求。
随着我国信息产业的高速发展和企业业务需求的不断深入,oa(office automation 办公自动化)
系统正在被用来处理日益复杂的业务数据和管理流程,这对办公自动化系统的工作流控制能力和数据交互能力提出了更高的要求。基于soa对现存的各种办公应用系统继续集成,开发开放性的企业办公管理平台,并实现使用移动终端进行平台服务的访问,对企业信息化办公效率的提高有着积极的意义。
2 关键技术简介
2.1 esb技术
soa是通过esb(企业服务总线)技术来构建核心中间层架构,esb提供标准适配器和接口用于实现服务的交互与集成管理,这是一种开放性的标准消息机制,可以满足各种企业环境下的系统集成需求。主流的esb产品有ibm的websphere esb、eba的aqualogic service bus和开源的cxf服务总线。cxf向开发者提供了一套创建soa服务的基础框架,允许开放人员按照自己喜欢的编程模式,利用apache cxf提供的简单易用工具,创建适合soa环境的任何web服务[1],包括soap/http服务及rest/http
服务,而且是完全免费的,所以本项目选择使用cxf来进行web服务的搭建、部署与调用。
2.2 web services 核心技术
根据w3c组织的定义,web services是一种被设计为支持跨网络不同机器进行交互的软件系统,通常定义为一组模块化的api,允许通过web方式来进行远程系统服务的调用或者执行。web services是目前最适合soa架构的实现技术。
web services体系架构主要基于服务提供者、服务请求者、服务中介者三个角与发布、发现、绑定三个动作构建的[3],如图1所示。
web services框架的核心技主要包括开源oa系统源码wsdl、uddi和soap。wsdl提供了基于xml语言的web服务自描述说明和访问调用细节;uddi是一个基于xml语言的跨平台web服务注册中心的实现规范,是web services的核心技术标准之一;soap是一种基于xml语言的简单对象访问协议,通过soap可以使用xml文档来传递方法参数,实现web services的访问调用。
3 系统设计
3.1 系统功能模块设计
如图2所示,根据oa系统的各项功能需求的来划分,可将系统简单的分成“个人办公”、“公文管理”、“工作流转管理”和“辅助管理”四大功能模块。
3.2 系统总体架构设计
系统总体框架如图3所示,系统架构设计为五层模型,从下到上分别为数据层、适配器层、服务层、业务流程层与表示层。
高效的自动化办公系统离不开大量的数据,本系统的数据主要来自于两类,一类是来自企业原有的信息化应用系统,另外一类是来自企业的外部,如合作单位的文档数据等。这些数据的来源、类型比较复杂,有可能来自于数据库,也有可能是文件类型的数据(如excel、pdf、xml数据等),甚至可能是消息类型的数据(jms),所以在设计系统的数据层的时候要充分考虑到如何处理数据的异构性,本系统的数据采取统一的xml格式来描述各种异构数据,以便于数据的发布、交换与共享。
sdo是目前流行的数据编程模型,利用sdo提供的数据中介服务(dms),在适配层中应用程序可以使用一组api来访问和操作各种异构的数据源,这样做的好处是可以有效屏蔽低层异构数据源的技术细节。
在服务层中,将系统的各种业务功能采用sca标准封装成一系列不同粒度的web服务,并通过预定义的接口将这些web服务进行有效组织,这样做的好处是可以使客户端能以统一的方式调用这些web服务。封装服务完毕后,通过esb服务总线对服务进行集成与统一管理。
在业务流程层中,通过组合排列服务层中封装好的各种web服务,构建出各种业务流程,实现符合系统需求的业务功能。
表示层的主要功能是为各种终端提供统一的接口来访问系统界面。考虑到系统要求在分布式的异构环境下进行工作,而且表示层上显示的业务数据可能来自于不同的数据源,表示层采用portal体系结构而不是传统的b/s架构来进行设计。
4 系统实现
4.1 系统服务设计与实现
根据上述的功能模块设计,将各个功能模块划分成不同的 web 服务,图4为各功能模块对应的web服务和web方法。
以documentmanageservice为例说明服务的设计:documentmanageservice服务对应公文管理模块,可以通过对应web服务下的web方法来实现对接收到或已发送的公文进行如查询、排序、修改、发等操作。
4.2 系统服务组合与调用
web服务的设计应该尽可能保持独立性与原子性,以便于不同的web服务组合起来表示复杂的业务逻辑。例如要实现员工请假这一业务逻辑,就分别需要调用othermanageservice服务中的请假方法askforleave()、individualoffice-
-workservice服务中的发送便签方法sendnote()与workmanageservice服务中的工作审批方法worksign()。
本系统web服务的调用采取添加web引用的形式来实现,这种方式与类成员方法的调用类似,在调用代码中定义一个服务的实例后,就可以通过这个实例来调用该服务的方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论