开发基于Domino/Notes的动态Web网站
汪骏
2003/03/11
用户的需求
笔者最近开发某公司MIS系统时,用户提出了以下的一些需求:利用用户的局域网实现对数据库及文档信息的访问。数据由用户的一套基于VFP的业务系统提供,希望实现通过局域网供各部门及领导及时查询,同时实现文档信息的动态发布。
方案的分析
1.采用Browser/Web Server(B/S)模式
随着Web技术的迅速发展,B/S模式已经被广泛地采用。与传统的Client/Server(C/S)相比,B/S模式有许多优点:
* 不需要开发Client端软件。在Client端只需要有标准的浏览器就可以;由于对数据库查询、浏览的功能都在Web Server端进行,因此系统管理和维护工作大大减少。
* 用户操作实现了标准化。由于Client端是标准的浏览器,因此操作变得非常简单。
2.通过ODBC访问后台VFP数据库
由于用户需要动态地将信息发布到网上,而传统的静态的Web页面无法实现这些交互功能,因此我们必须将数据库与Web连接起来,并根据用户的需要,动态地产生用户需要的数据,以供用户查询、浏览。在数据库方面,为了与用户原有系统实现快速无缝连接,我们仍然选用VFP进行数据库管理。要实现动态页面,就必须实现对Server端的VFP数据库进行动态访问,因此,必须在Server端配置ODBC驱动程序。
查询结果图表一
3.对文档信息的访问,选用业界流行的Lotus Domino/Notes的解决方案
由于MIS系统对复合文档数据的处理要求,必须以文档数据库为核心建立,同时选择性地结合关系数据库。Lotus Domino/Notes是电子邮件、文档数据库、快速应用开发技术以及Web技术为一体的电子邮件与群件平台。目前,国内许多政府机关和企事业单位都采用Lotus Domino/Notes作为MIS系统的基础平台。
与其他Web服务器相比,Lotus Domino的优势在于:
数据库管理:用户可以用数据库形式管理Web站点页面及内容,而不仅仅是存储。Domino数据库自动维护信息之间的链接关系,使站点维护更简单。因此,在日常工作中,大量文档信息的Web发布工作完全可以交给业务人员完成,而无需由技术人员通过HTML编程的方式来进行文档信息的维护。
安全性控制:任何对Web信息的访问都受到安全性的控制,确保合适的人访问合适的信息。
查询结果图表二
4.Web Server选用Windows NT的IIS。
技术的实现
方案确定以后,主要需解决三个问题:必须让IIS能够处理对Notes数据库的访问;在Notes表单中运行的代理程序必须能够访问ODBC数据库; 调整IIS和Domino之间的安全性冲突。下面详细介绍在系统安装配置过程中如何解决上面三个问题,限于篇幅,开发过程只作简单介绍。
安装步骤:
步骤一:安装Windows NT Server 4.0和IIS4.0。
步骤二:在NT上配置ODBC,设置数据源(DSN)。运行NT控制面板的“ODBC数据源”,在“系统DSN”窗口下单击“添加”按纽,选择“Micosoft Visual Foxpro Driver”,在“Data Source Name”中输入数据源名,如:oil,在“Path”中指定ODBC数据源的路径,如:d:oil_dataoil.dbc。
步骤三:安装ChartFX。为了在客户浏览器端生成动态数据图,需要在Server端安装ChartFX ActivX控件。在NT上运行CfxIESrv.exe,选择默认安装方式,参数设置成默认值;再运行ChartFX的升级程序——CfxIEUpdSrv(2).exe;修改NT目录下的CfxSrv.ini文件,改为以下设置:
Relative=/cfxtemp
Absolute=d:oilcfxtemp (假定oil目录在D分区)
步骤四:建立IIS管理的站点。建立D:oil目录,HTML页面文件均放在该目录下;运行IIS的Internet服务管理器,选定默认Web站点属性中的IP地址,确保其绑定在80端口上,并将主目录的本地路径设为d:oil目录;在默认Web站点属性里的“主目录”属性中,将“FrongPage Web”选项选中;将Scripts虚目录定为oilscripts目录,并将许可选项定为“执行”;在资源管理器中,分别选中oil下的cfxtemp和Scripts目录,单击右键选择属性,在安全性中,选择“权限”按钮,将“Everyone”的权限设为“完全控制”,并将“替换子目录的权限”选中,选择“确定”按钮。
步骤五:安装Domino Server,配置Domino for IIS。将Domino设置成for IIS,这样对Notes库的访问全由IIS负责,Domino可以不用启动。
在确认IIS和Domino正常工作后,需要设置Domino ISAPI扩展,以便当IIS收到浏览器发来的Domino应用程序请求时可以使用该程序;启动Internet服务管理器,右键点击默认Web站点,选择属性,在主目录选项页中,单击“配置”→“添加”,在可执行文件域中输入ISAPI扩展文件(niisextn.dll)的完整路径名;在扩展名域中,输入“.NSF”,在不包括的方法域中输入下列不被Domino for IIS支持的HTTP成员函数:PUT、DELETE;选中脚本引擎,取消选择检查文件是否存在选项。
设置IIS扩展过滤器,以便将用户证书正确地传递给Domino;启动Internet服务管理器,右键点击默认Web站点,选择属性,选择ISAPI筛选器并单击添加;在筛选器名域中输入用来描述IIS过滤器的文字,如:Domino;在可执行文件域中输入过滤器文件(niisfilt.dll)的完整路径名。
步骤六:调整IIS的安全性与Domino的冲突。在默认Web站点属性的“目录安全性”中,单击“匿名访问和验证控件”,再单击“编辑”,在“验证方法”中取消选择“Windows NT挑战/反应”选项。
开发简介:
1. 用FrontPage、DreamWeaver等网页制作工具制作HTML页面文件,存放在d:oil目录下,并通过超级链接访问Notes数据库中相应的视图或表单;
2. 用于Web动态查询的VFP数据库存放在d:oil_data目录下,并进行相应的ODBC配置,如上所述;
3.Notes数据库存放在d:lotusdominodataoil_info目录下,用Lotus Domino Designer开发相应的表单和视图,对ODBC数据库的操作通过在表单中执行代理程序来进行,对文档数据库的操作可以通过视图和表单来完成。由于Notes数据库的安全机制非常完善,可以对文档数据库、表单甚至域级进行权限控制,因此,可以很方便地在Web上实现特定的用户访问特定的内容。
开发实例
笔者用以上的方法为某石油公司开发了一套信息发布及业务查询系统。文档的Web发布包括工作动态、发文公告、通讯录等。该系统完全实现了由业务人员从任一台联网的计算机上对文档信息进行管理,包括新增、删除、修改、查看、全文搜索等操作并及时发布;业务数据查询通过在Notes表单中的代理程序访问ODBC数据库(VFP数据库及表),本文的两张附图所显示的就是通过Web方式查询到的VFP数据库的信息。
备注:此设计在基于HP NetServer硬件平台上开发并运行,顺利实现了设计目标,取得理想结果。
|