系统总体框架如所示,系统架构设计为五层模型,从下到上分别为数据层、适配器层、服务层、业务流程层与表示层。
高效的自动化离不开大量的数据,本系统的数据主要来自于两类,一类是来自企业原有的信息化应用系统,另外一类是来自企业的外部,如合作单位的文档数据等。这些数据的来源、类型比较复杂,有可能来自于数据库,也有可能是文件类型的数据(如Excel、PDF、XML数据等),甚至可能是消息类型的数据(JMS),所以在设计系统的数据层的时候要充分考虑到如何处理数据的异构性,本系统的数据采取统一的XML格式来描述各种异构数据,以便于数据的发布、交换与共享。
SDO是目前流行的数据编程模型,利用SDO提供的数据中介服务(DMS),在适配层中应用程序可以使用一组API来访问和操作各种异构的数据源,这样做的好处是可以有效屏蔽低层异构数据源的技术细节。
在服务层中,将系统的各种业务功能采用SCA标准封装成一系列不同粒度的Web服务,并通过预定义的接口将这些Web服务进行有效组织,这样做的好处是可以使客户端能以统一的方式调用这些Web服务。封装服务完毕后,通过ESB服务总线对服务进行集成与统一管理。
在业务流程层中,通过组合排列服务层中封装好的各种Web服务,构建出各种业务流程,实现符合系统需求的业务功能。
表示层的主要功能是为各种终端提供统一的接口来访问系统界面。考虑到系统要求在分布式的异构环境下进行工作,而且表示层上显示的业务数据可能来自于不同的数据源,表示层采用Portal体系结构而不是传统的BS架构来进行设计。
4系统实现 4.1系统服务设计与实现 根据上述的功能模块设计,将各个功能模块划分成不同的Web服务,为各功能模块对应的Web服务和Web方法。
以DocumentManageService为例说明服务的设计:DocumentManageService服务对应公文管理模块,可以通过对应Web服务下的Web方法来实现对接收到或已发送的公文进行如查询、排序、修改、群发等操作。
4.2系统服务组合与调用 Web服务的设计应该尽可能保持独立性与原子性,以便于不同的Web服务组合起来表示复杂的业务逻辑。例如要实现员工请假这一业务逻辑,就分别需要调用OtherManageService服务中的请假方法AskForLeave()、IndividualOffice-
-WorkService服务中的发送便签方法SendNote()与WorkManageService服务中的工作审批方法WorkSign()。
本系统Web服务的调用采取添加Web引用的形式来实现,这种方式与类成员方法的调用类似,在调用代码中定义一个服务的实例后,就可以通过这个实例来调用该服务的方法。
4.3系统服务发布和管理 考虑到企业OA系统的安全性与用户群体的针对性,本系统通过建立私有的UDDI,将相应的权限赋予Web服务的请求者,实现对Web服务的注册与管理。
4.4系统服务的访问与调用 因为本系统的客户端程序主要是部署在移动终端设备上的,本节将以公文信息查询业务流程为例,简要说明如何访问调用Web服务。
首先,依据使用WSDL(Web服务描述语言)定义的公文信息查询业务对应Web服务的契约文件,使用JDK6.0版本自带的工具wsgen与wsimport生成本地代理类;接着,客户端应用程序通过本地生成的代理类,获取符合约定接口定义的对象;然后,通过该对象调用相应的
Web服务方法来获取相应的XML格式数据;最后使用SAX(simpleAPIForXML)技术对数据进行解析后,显示在移动终端的界面上,为程序运行效果示意图。
信息发布:广州名易软件有限公司 http://www.myidp.net