Computer Science and Application 计算机科学与应用, 2013, 3, 401-406 http://dx.doi.org/10.12677/csa.2013.39069 Published Online December 2013 (http://www.hanspub.org/journal/csa.html) Research and Implementation of Enterprise Content Management System Based on Domino* Liangchen Chen Department of Computer, Institute of Industrial Relations China, Beijing Email: chenlc@ihep.ac.cn Received: Dec. 3rd, 2013; revised: Dec. 19th, 2013; accepted: Dec. 25th, 2013 Copyright © 2013 Liangchen Chen. This is an open access article distributed under the Creative Commons Attribution License, which permits unre- stricted use, distribution, and reproduction in any medium, provided the original work is properly cited. In accordance of the Creative Commons At- tribution License all Copyrights © 2013 are reserved for Hans and the owner of the intellectual property Liangchen Chen. All Copyright © 2013 are guarded by law and by Hans as a guardian. Abstract: How to effectively manage and organize structured and unstructured data generated in the business becomes the enterprises’ major challenge. This paper studies the Domino server architecture, Domino database model and Dom- ino developed technology. A set of Domino-based enterprise content management system is designed and implemented, with rich team collaboration components and powerful customization capability, and offline applications, single sign-on and SPNEGO-integrated ECM are achieved. The system is user-friendly to store, organize and share documents, and it helps the employee to improve productivity and business competitiveness. Keywords: Enterprise Content Management; Lotus Domino; SSO; Offline 基于 Domino 的企业内容管理系统的设计与实现* 陈良臣 中国劳动关系学院计算机系,北京 Email: chenlc@ihep.ac.cn 收稿日期:2013 年12 月3日;修回日期:2013 年12 月19 日;录用日期:2013 年12 月25 日 摘 要:如何有效地管理和组织企业经营过程中产生的结构化和非结构化数据,成为当今企业面临的一大难题。 本文通过研究 Domino 服务器架构、Domino 数据库模型和 Domino 开发技术,设计与实现了一套基于Domino 的企业内容管理系统,具有丰富的团队协作组件和强大的定制能力,并实现离线应用功能、Cookies 单点登录和 SPNEGO 集成 ECM 扩展功能。该系统方便用户存储、组织和共享文档,有利于提高企业员工工作效率和企业 竞争力。 关键词:企业内容管理;Lotus Domino;单点登录;离线应用 1. 引言 随着信息更新越来越快,企业的信息生产量越来 越大,除了一般文字、文档、多媒体、流媒体外,还 包括 Web 网页、广告、程序、软件等一切数字资产。 通过内容管理,企业可以实现把正确、实时的内容传 递给适当的人,并且进行最有效率的管理,藉以在信 息产生后,能反复利用,以此大幅降低花费在数据管 理、查询与检索上的时间与成本。现有的企业内容管 理系统都不能支持离线应用,员工在离线环境下无法 正常工作,另外现有的企业内容管理系统功能很单 *资助项目:中央高校基本科研业务费专项基金资助项目(12ZY020)。 Open Access 401 基于 Domino 的企业内容管理系统的设计与实现 一,与企业内部其它团队协作系统相互独立,不能很 好的交互分享与反复利用,系统的可定制性和集成功 能薄弱[1]。 本文为了解决目前企业内容管理系统普遍存在 的这些问题,设计和实现了一个基于 Domino 和Web 2.0 技术的团队协作和内容管理平台,实现企业信息 资源的有效管理与应用,提供了在线与离线应用,丰 富的团队协作组件,其中包括团队文档库,维基,博 客,论坛,团队日历,团队任务,联系人,新闻组件, Feeds阅读器等,除了这些功能外,还提供了强大的 定制能力和良好的与其他应用系统集成的能力。该系 统方便企业用户存储、组织和共享文档,提高了企业 员工工作效率和企业竞争力[2]。 2. Domino技术平台 Lotus Domino是优秀的办公电子协作平台,是集 电子邮件,文档数据库,LDAP 目录服务器,应用开 发技术和 Web 服务技术为一体的软件技术平台。 2.1. Domino服务器架构 Domino服务器主要包括任务(Tasks),Notes 对象 服务(NOS)以及 Domino 数据库三部分。图 1是 Domino服务器的一个最基本的架构图。 任务(Domino Ser ver Tasks)用以实现 Domino 服务 器要执行的所有功能,我们可将这些任务分为五类: 维护 Notes 应用的任务,监视服务器和管理服务器活 动的任务,管理邮件、日历和日程的任务,管理协议 的任务,监视服务器活动的任务。 Figure 1. Lotus Domino server framework 图1. Lotus Domino服务器架构 NOS 涵盖了 Notes 所有基本功能,Notes 客户机 和服务器均在使用这些功能,程序员可使用 Notes 应 用程序编程接口来调用,它们是可移植且线程安全 的。如包括跨平台的创建和访问数据及文件、Domino 公式和脚本的编译和解释等。 共享数据库和本地文件由数据库文件、模板、静 态HTML 文件、JavaScript、Servlets 和其他元素组成。 一个 Domino 数据库是文档的集合,而文档又是域的 集合,我们将这些元素统称为记录,每个记录代表一 个Domino 数据库中的一个元素[3]。 2.2. Domino数据库模型 Domino 是基于文档型的数据库结构,和关系数 据库不同,在Domino 应用程序中,是一组 NSF 数据 库组成,数据和设计代码集中在一起。NTF 是Domino 模板数据库,提供设计模板,可以通过模板创建 NSF 数据库,数据库继承 NTF 模板数据库所有的设计。 Domino应用程序中保存的数据称为“文档”,和关系 型数据库的“记录”是一个概念[4]。Domino 数据库结 构如图 2所示。 Domino 的数据库是一个集数据与设计元素于一 身的集合体。数据存储在文档中。文档的界面是表单, 一个设计元素。你可以把文档与表单非常粗略地类比 为数据库的行与表。但这种比喻并不恰当,比如我们 可以在文档中添加一个在过去创建的表单中并不存 在的域,而且你可以使用不同的表单去显示同一个给 定的文档。 2.3. Domino开发技术 Domino支持 B/S、C/S 开发模式,C/S 模式中应 Figure 2. Domino database structure 图2. Domino数据库结构 Open Access 402 基于 Domino 的企业内容管理系统的设计与实现 Open Access 403 利用。最终用户面对的是“应用”数据库,在Engine 端,由六个Domino 数据库组成,包括设计存储数据 库,其中归档和审计跟踪数据库是可选模块。将运行 完成的工作流结果保存到归档数据库中[6]。 用程序 NSF数据库部署在 Domino 服务器 DATA目录 中,客户端通过NOTES 进行应用程序访问。B/S 应 用程序 NSF 数据库及资源文件(JS/CSS/HTML/XML 等)部署在 DATA 及HTML 目录。Domino 具有特有 的开发设计元素,表单,视图、域,大纲,导航器, 帧结构,子表单,页面,Script函数库,代理等。 3. 基于Domino 的企业内容管理系统 3.1. 企业内容管理系统构架 Domino 开发语言包括 Lotus Script语言和 Forumal语言,支持JAVA,JavaScript,API 调用, COM 调用,ODBC调用。Domino 接口开发技术支持 调用 Web Service服务,JAVA 接口,COM接口,XML 接口,ODBC/JDBC 接口。Domino 支持外部系统调用 Domino接口,Web Service,DIIOP 接口,COM 接口, JSP接口,C API接口,可用C API访问 Domino 数据 库或底层[5]。 基于 Domino 的企业内容管理系统提供了丰富的 团队协作组件,其中包括团队文档库、维基、博客、 论坛、团队日历、团队任务、联系人、新闻组件、Feeds 阅读器等。除了这些功能外,还提供了强大的定制能 力。系统的核心技术是 Domino,对象模型是基于 Domino对象实现,所有的对象数据都存储在 Domino 数据库中,使用 Notes 客户端和 Domino Designer来 查看、定制或创建系统应用的对象。Domino 提供 C++ API 去实现和管理上层应用,支持内容管理系统对其 它Domino 应用的集成,也提供 JAVA AP I支持系统对 其它 JAVA 应用的扩展和集成。系统的服务引擎是基 于Domino HTTP的,是对于Domino 核心 HTTP 服务 的一个扩展[7]。基于Domino 的企业内容管理系统架 构如图 4所示。 2.4. Domino Workflow Domino 的应用以工作流应用为最难,而工作流 开发的难点在于流程的实现和维护上,Domino 通过 对工作流应用的深入剖析,建立了工作流应用的科学 体系结构,并提供了工作流应用所需的各种增强功 能。Domino 工作流开发原理如图 3。 流程设计人员通过 Architect 设计流程:设计时通 过组织目录数据库获得人员信息,从应用数据库中获 得流转内容信息(表单,字段等),将设计的结果保存 到过程定义数据库中。在设计过程中,系统会自动将 各种设计元素保存到设计存储数据库中,以供将来再 基于 Domino 的企业内容管理系统提供了非常好 的用户体验和可定制的界面来为最终用户提供基于 文档的协作内容管理,通过对Domino的扩展提供了 与其他应用以及其他内容管理平台的交互。系统使用 了Domino 数据库、视图、代理等 Domino 基础技术, Figure 3. Domino workflow principle 图3. Domino工作流原理图 基于 Domino 的企业内容管理系统的设计与实现 Figure 4. Framework of enterprise content management system based on Domino 图4. 基于Domino 的企业内容管理系统架构图 基于 Domino的扩展,提供了 tool 命令,JAVA API, Servlets,Web Service等其他技术和接口。 当使用浏览器去操作企业内容管理系统的应用 内容时,其数据访问首先调用了Domino HTTP服务 器,然后通过应用服务器去操作后台的场所数据库。 而当使用PlaceBot 去操作管理应用系统对象,其使用 的是 Domino 的代理机制来实现。系统基于 Domino 的安全机制和授权模型,利用Notes 数据库、视图、 文档与 Ajax 来展示页面[8]。 3.2. 企业内容管理系统离线功能实现 离线,就是中断与网络的连接后称为离线,也称 脱机方式或下网。离线支持的应用向用户提供更好的 在线和离线的体验,将消除网络浏览器与台式电脑之 间的人工壁垒,能够离线工作。在经过某种程度的标 准化之后,这些离线功能已经慢慢的被集成到浏览器 中。 基于 Domino 的企业内容管理系统支持离线应 用,向用户提供更好的在线和离线的体验。在离线状 态,用户可以执行离线浏览和操作本地副本,当用户 中断与网络的连接后,用户仍然可以继续使用企业内 容管理系统办公,而且离线使用系统功能也会非常方 便、高效。使用离线服务的用户在关闭服务器之前需 要先与服务器同步离线的数据[8]。 搭建离线工作环境:在本地安装浏览器插件,使 浏览器支持离线应用,下载并安装 Lotus Domino同步 管理工具,就可以通过 Lotus Domino同步管理工具将 联机场所同步到本地了。图5为基于 Domino 的企业 内容管理系统离线工作图。 离线工作过程是:先通过 Lotus Domino同步管理 工具同步脱机内容,然后用户在本地在离线环境下离 线使用,操作脱机场所,读内容和写内容,最后再次 通过 Lotus Domino同步管理工具同步脱机内容与联 机内容[9]。 4. 企业内容管理系统集成与扩展 基于 Domino 的企业内容管理系统还提供了跟其 它企业级内容管理系统(ECM)集成的功能。该功能将 系统和其它业内领先的内容管理系统(ECM)集成起 来,为客户提供了端到端的完备内容管理解决方案。 系统集成最重要的是实现单点登录和系统集成安全。 4.1. 企业内容管理系统单点登录实现 当用户第一次访问企业内容管理系统时,因为还 没有登录,会被引导到认证系统中登录,根据用户提 供的登录信息,认证系统进行身份效验,如果通过效 验,返回给用户一个认证的凭据,用户再访问别的应 用时就会将这个凭据带上,作为认证的凭据,应用接 收到请求之后会把凭据送到认证系统检查凭据的合 法性。如果通过效验,用户就可在不用再次登录情况 下访问不同的应用[10]。 要实现单点登录的功能,让用户只登录一次,就 Open Access 404 基于 Domino 的企业内容管理系统的设计与实现 Plac e NS F Client browser Online server Quickr Client Local Place NSF Of f line server Read Write Sync Figure 5. Offline working in enterprise content management system 图5. 企业内容管理系统中 OffLine工作图 必须让应用系统能够识别已经登录过的用户。应用系 统应该能对认证标志进行识别和提取,通过与认证系 统的通讯进行认证和授权,从而完成单点登录的功 能。基于 Domino 的企业内容管理系统是采用基于 Cookies 的单点登录机制实现,如图 6所示。 第一次访问时由浏览器向企业内容管理系统服 务器发出HTTP 请求,如果此请求需要浏览受保护的 页面,即登录以后才能看到内容,则应用服务器返回 一个登录页面;客户填好登录信息,通过浏览器将用 户名和密码发送到企业内容管理系统服务器,服务器 通过查询LDAP 来确定此用户名和密码是否正确,如 果有效,则将该用户信息以 Cache 的形式存储在服务 器端,并用 LTPA密钥将之进行加密,作为Cookie 返 回给浏览器;浏览器将该Cookies 存于本地,下次发 送 HTTP 请求时将该Cookies 一起发送至服务器端, 此时服务器只需将此Cookies 解密,与服务器上维护 的用户信息Cache 队列进行比对,如发现用户信息有 效则直接通过,不需要再次到LDAP 服务器上进行验 证,将浏览器请求的页面内容返回。 4.2. 企业内容管理系统 SPNEGO 集成 SPNEGO(简单和受保护的 GSSAPI协商机制)是 一种被用于协商合理的GSSAPI 伪机制。经常被用在 客户端应用程序需要与远程服务器进行认证但二者 均不清楚对方所支持的认证协议的情况中。最明显的 用处在于 Microsoft 的HTTP Negotiate认证扩展。可 协商的子机制包括 NTLM和Kerberos,均在 Microsoft Active Directory中。 伴随着 Domino 对SPNEGO的支持,使用 SPNEGO ,用户只需在自己的客户端上登陆到 Windows 的域中,就可以用浏览器直接访问 Domino 服务器或者基于Domino的企业内容管理系统的服务 器资源而不用再次提供用户名称和密码。在基于 Domino 的企业内容管理系统中,SPNEGO 仅可以通 过NTLM 和Kerberos 两种认证协议来获取Windows 登录凭证。通过图 7可以进一步详细了解,基于 Domino的企业内容管理系统是如何利用SPNEGO 这 种认证方式实现系统集成的[11]。 Figure 6. SSO in enterprise content management system 图6. 企业内容管理系统的单点登录机制 Open Access 405 基于 Domino 的企业内容管理系统的设计与实现 Figure 7. SPNEGO authentication in enterprise content management system 图7. 企业内容管理系统 SPNEGO 认证流程 基于 Domino的企业内容管理系统通过 IBM JVM来实 现对 SPNEGO 认证的支持。客户端可以通过两种方式 来实现 SPNEGO认证,一种是利用 JAVA URL处理器, 另外一种是利用账户框架中的Account API来完成认 证。SPNEGO 认证是在客户端收到服务器端返回的 401 www-authentication Negotiate之后被触发的,每当 有客户端成功通过 SPNEGO 的认证都会在客户端存 下相应的HTTP Cookie,而这些 Cookie 可以被其后的 HTTP 连接所自动检索。因此,用户并不需要为每一 个SPNEGO 保护的资源设置一个账户,而仅需要在企 业社交应用系统账户中创建一个OS-CRED 这种认证 类型的账户即可。 5. 结论 本文通过研究Domino 服务器架构、Domino 数据 库模型和 Domino 开发技术,设计与实现了一套基于 Domino 的企业内容管理系统。本文介绍了该系统的 整体构架,对离线应用支持功能的实现、Cookies 单 点登录和SPNEGO 集成 ECM扩展功能。该系统提供 了丰富的团队协作组件其中包括团队文档库、维基、 博客、论坛、团队日历、团队任务、联系人、新闻组 件、Feeds 阅读器等,还提供了强大的定制能力和良 好的与其他应用集成的能力。 基于 Domino 的企业内容管理系统解决了企业如 何有效地管理和组织企业经营过程中产生的结构化 和非结构化数据的大难题,帮助企业用户存储、组织 和共享文档,提高了企业员工工作效率和企业竞争 力。但是该系统对于的数据安全性和与其它产品集成 功能方面还有很多需要完善的地方,还有待在今后的 学习和工作中进一步研究。 参考文献 (References) [1] 宾莉金, 沈奇威等 (2011) 内容管理系统存储层的设计与实 现. 计算机工程与设计 , 6, 1991-1994. [2] 夏纯中 (2007) 轻量级企业内容管理系统的设计与实现. 计 算机工程与设计 , 17, 4233-4236. [3] 徐瑶著 (2009) Lotus Notes和Domino 8使用、设计、管理. 电 子工业出版社, 北京, 125-200. [4] 高静 (2012) 基于 Lotus Domino平台的办公自动化系统的设 计与实现. 硕士论文, 电子科技大学, 成都. [5] 尹茂林 (2011) 基于Domino 平台的知识管理系统的设计与 实现. 硕士论文, 哈尔滨工业大学, 哈尔滨. [6] 王磊, 梁毅 (2005) 基于Domino 邮件服务器的性能建模. 计 算机科学 , 11, 41-45. [7] 陈良臣 (2012) IBM Quickr Dimino中OffLine 原理与应用介 绍. http://www.ibm.com/developerworks/cn/lotus/ls-cn-quickrdomi no-offline [8] 秦彬娟, 余凯, 陈良宽 (2002) 基于Notes/Domino的工程项 目管理系统设计与实现. 计算机工程与设计 , 12, 35-38. [9] 龙开聪 (2011) 基于 Lotus Domino/Notes的办公自动化系统 的设计与实现. 硕士论文, 北京邮电大学, 北京. [10] 井博 (2011) 基于 Documentum 的企业内容管理系统的改进 与实现. 硕士论文, 西安电子科技大学, 西安. [11] 吴兴威(2012) 基于 JCR 的企业内容管理系统的设计与实现. 硕士论文, 中山大学, 广州. Open Access 406 |