| 基于Lotus Domino的移动OA办公系统 | ||||||||||||||||
|
本文以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系统架构设计。 本文采取一种分层的架构设计,整个Domino移动系统被显式的分为三部分:前端显示、逻辑服务和数据存储。前端显示与逻辑服务层之间通过各类以URL形式表现的服务来调用连接,以Web2.0通常采用的XML作为交换的数据格式,逻辑服务层与数据存储层之间直接利用DominoURL命令调用表单或视图等Domino元素来实现这些服务。在这种架构下,前端显示层则可以完全由传统的前端Web开发人员完成,而服务层和数据存储层的相关实现则交由Domino开发人员负责。图1为分层架构设计图: 1.2系统拓扑结构。 2.1系统功能需求。 2.2使用PhoneGap实现跨平台开发。 2.3与原系统数据的同步。 (1)直接访问Domino数据读取接口,保证读取的速度和稳定性。根据原Domino数据库中的数据,在DominoDesigner中设计需要读取的视图,并采用URL指令从Domino数据库中读取数据,这样就最大程度保证了读取数据的正确与一致。下面是部分数据读取语句的示例。 [发文待办]:发文运转库fwrun.nsf (2)数据回写采用抓取方式,保证业务一致性。针对Domino数据库架构,本文采用WEB模拟方式,即抓取原系统的POST请求,移动系统利用一致的请求实现相同功能。同时,抓取的数据正确性受到了WEB页面稳定性的影响,如果原系统页面代码进行了更改,会导致数据抓取的错误。因原OA系统已经运行多年,需求也相对稳定,无需对WEB代码进行变更,因此用数据抓取方式来实现数据同步是可行的。这个方法在保证业务一致性的同时,克服了Domino系统无法回写数据的问题。 本文以较低的成本实现了Domino移动办公平台,并能实现程序的跨手机平台使用,这在国内目前的Lotus移动开发领域具有一定的创新意义。基于LotusDomino平台的办公在国内用户众多,且大多数都有将系统拓展到手机实现移动办公的需求,因此本文研究的方案有较好的推广前景。
|