Domino支持Perl程序,Perl程序以.pl结尾,放置在cgi-bin目录中。缺省情况下,Domino服务器的path语句
所包含的路径了中查找Perl解释器(名称为jperl.exe).如果希望
重设缺省值,可以定义一个环境变量(PERLBIN),它给出perl解释器的名称或绝对路径,如C:\perl5\bin\perl.exe。
目前使用Servlet而不是CGI程序来开发新产品已经是大势所趋。
不同程序的最佳途径:
代理:读取或邮寄文档时执行Domino操作的程序
Servlet:使用标准 Java接口(如JDBC)的程序。使用http会话维护或Cookie的程序、复杂或资源密集型Java程序。
CGI程序:需要对系统程序进行低级访问的程序。通过非Java API与其他产品连接的程序。
1、程序可以使用哪种语言进行编写?
代理:使用Java、LotusScript或Notes公式语言编写。这些语言本身均可跨平台使用。
Servlet:用Java语言编写。本身可以跨平台使用。
CGI程序:用平台脚本语言,即使用任何能够编译为可执行文件的语言或跨平台的语言(如Java或Perl)
2、程序存储在什么位置?
代理:存储在Domino数据库中,这意味着代理可以利用数据库复制和群集服务器的功能。
Servlet:存储在文件系统中,通常存储在domino\servlet目录下。
CGI程序:存储在文件系统中,通常存储在domino\cgi-bin目录下。
3、程序以什么方式被Web用户调用?
代理:由WebQueryOpen或WebQuerySave事件自动调用,或者由OpenAgent URL(如"http://acme.com/sales.nsf/results?OpenAgent")直接调用
代理还可以由服务器事件(如新邮件的到来)或预先的定时安排来处理。
Servlet:直接由URL调用。Domino可识别两种类型的Servlet的URL。第一种类型通过名称指定Servlet(例如:"http://acme.com/servlet/SQLDatabaseQuery?month=june")。
第二种类型指定一个 Domino管理员已经映射到Servlet的文件扩展名(例如:“http://acme.com/sqlquery.esp?month=june”)。
CGI程序:直接由URL调用(例如:"http://acme.com/cgi-bin/filesearch?sting=widget")。
4、服务器何时将程序载入或卸载?
代理:每次调用时装入,执行完毕后卸载。
Servlet:一次性装入,HTTP任务关闭或或重新启动时卸载.与代理或CGI程序相比,这一性能使Servlet具有很大的优越性.但是,这也意味着可以通过多个请求
同时访问Servlet类,因此必须保证Servlet代码的线程安全性.
CGI程序:每次调用时装入,执行完毕后卸载。
5、程序与Domino的交互方式
代理:LotusScript和Java代理可使用Domino对象类。公式代理可使用大多数@function。
Servlet:可通过CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)接口访问Domino。
CGI程序:可通过CORBA接口或通过Domino C或C++ API访问Domino。
6、程序可获得哪些安全性保障?
代理:要调用代理,Web用户必须对包含该代理的数据库具有"存放者"或更高存取级别。代理可以以其创建者或用户的身份运行。
Domino的所有安全特性均适用于由代理执行的操作。
Servlet:对服务器小程序的访问可由"Domino目录"中的文件保护文档来控制。如果小程序通过CORBA接口访问Domino,则可以指定一个
Domino用户名和Internet口令。Domino的安全性适用于所有CORBA操作 。
CGI程序:对该程序的访问可由"Domino目录"中的文件保护文档来控制。如果程序通过CAPI来访问Domino,则会使用服务器标识。
如果程序适用CORBA接口,则可以指定用户名和Internet口令。在这两种情况下,均可应用Domino的安全性。