本文以LotusNotesDomino的OA为基础,针对Domino数据库架构特点和需求,提出了实现其移动办公的技术和方法。采用PhoneGap跨平台开发技术,分别对Domino数据库读、写采用不同的技术方案,实现移动办公系统与原数据同步。 LotusDomino曾是主流的文档型办公系统开发平台之一,其数据库访问方式不同于SQLServer、Oracle等主流的数据库系统,它采用NSF(NotesStorageFacility)的面向文档的数据库来管理半结构化数据,并且利用其视图可以使查找特定文档变得高效。 目前国内基于Domino的移动OA系统解决方案一般有以下几种:一是根据业务需要定制开发每项移动办公应用。这种方式移动应用体验良好,且具备较高的稳定性,但构建周期长,时间及财务成本均较大;二是利用VPN(虚拟专用网络)虚拟桌面技术,通过移动终端远程操作PC桌面。这种方式无需,且部署也相对简单。缺点是在较小的屏幕上操作PC界面,操作不方便,用户体验欠佳;三是对原有系统的Web页面进行数据抽取。这种方式适合大多数系统的移植,应用体验良好。缺点是难以抽取到业务系统的细节,容易造成处理数据不完整导致数据错乱,系统稳定性高度依赖于原业务系统的页面代码。 本文以公司原有的LotusNotesDomino系统为基础,针对移动OA功能需求和Domino数据库的读写特点,设计与开发基于LotusDomino的移动办公系统,对数据库的读取操作调用Domino原生的数据库Web服务,克服非原生Domino移动OA系统的弊端;写入操作采用页面抓取方式与PC系统的处理进行同步,实现和原系统的无缝衔接。 1系统架构设计和拓扑结构 1.1系统架构设计。LotusDomino办公平台采用的是Web资源与Domino数据库整合的架构,更偏向于一种扁平和混合的特点,Domino的开发人员在构建系统时利用开发设计器DominoDesigner同时将前端显示和后端数据结构开发出来,传统的移动前端Web开发人员难以参与合作开发。 本文采取一种分层的架构设计,整个Domino移动系统被显式的分为三部分:前端显示、逻辑服务和数据存储。前端显示与逻辑服务层之间通过各类以URL形式表现的服务来调用连接,以Web2.0通常采用的XML作为交换的数据格式,逻辑服务层与数据存储层之间直接利用DominoURL命令调用表单或视图等Domino元素来实现这些服务。在这种架构下,前端显示层则可以完全由传统的前端Web开发人员完成,而服务层和数据存储层的相关实现则交由Domino开发人员负责。图1为分层架构设计图: 图1DominoWeb应用的分层架构设计 1.2系统拓扑结构。OA系统部署在公司内网,外网用户通过VPN方式访问OA系统。移动OA系统搭建在原OA系统服务器上,移动终端和服务器之间通过公网交互,依靠第三方VPN系统传输来保证交互的安全性。移动用户登陆VPN移动版客户端访问移动OA系统。拓扑图如下: 图2系统拓扑结构 2技术路线和系统实现 2.1系统功能需求。原有OA系统是BS结构。移动OA适配原OA系统的部分功能,主要实现待办文件、待阅文件、已办文件三大功能,实现办理意见的展示和回写、正文和附件的查看,实现公文的正常流转,并与原OA系统的处理同步。 图3系统实现功能 2.2使用PhoneGap实现跨平台开发。PhoneGap是一款HTML5平台,开发商可以使用HTML、CSS及JavaScript来开发本地移动应用程序,并且只编写一次应用程序,便能在7个主要的移动平台进行发布。选用PhoneGap有以下几个原因:(1)IOS和安卓是目前的主流手机操作系统,移动OA必须能够在这两个系统上运行;(2)开发成本低。理论上来说,相对于原生开发多个平台的客户端,PhoneGap的成本会低很多;(3)原系统是BS结构,移动版使用BS一致性更好。原系统中的页面资源能被PhoneGap重用。 2.3与原系统数据的同步。为了保证和原系统业务的一致性,应最大限度的重用原系统的业务代码,这就需要深入的研究原系统,提取出原业务代码直接重用,或者分析出其业务逻辑,编写一致的业务代码。本文采用如下策略保证了数据的一致性: (1)直接访问Domino数据读取接口,保证读取的速度和稳定性。根据原Domino数据库中的数据,在DominoDesigner中设计需要读取的视图,并采用URL指令从Domino数据库中读取数据,这样就最大程度保证了读取数据的正确与一致。下面是部分数据读取语句的示例。 [发文待办]:发文运转库fwrun.nsf (2)数据回写采用抓取方式,保证业务一致性。针对Domino数据库架构,本文采用WEB模拟方式,即抓取原系统的POST请求,移动系统利用一致的请求实现相同功能。同时,抓取的数据正确性受到了WEB页面稳定性的影响,如果原系统页面代码进行了更改,会导致数据抓取的错误。因原OA系统已经运行多年,需求也相对稳定,无需对WEB代码进行变更,因此用数据抓取方式来实现数据同步是可行的。这个方法在保证业务一致性的同时,克服了Domino系统无法回写数据的问题。 图4移动办公系统用户界面 3结束语 本文以较低的成本实现了Domino移动办公平台,并能实现程序的跨手机平台使用,这在国内目前的Lotus移动开发领域具有一定的创新意义。基于LotusDomino平台的办公在国内用户众多,且大多数都有将系统拓展到手机实现移动办公的需求,因此本文研究的方案有较好的推广前景。
信息发布:广州名易软件有限公司 http://www.myidp.net
|