Lotus DominoNotes Toolkits综述(四) Java

    技术2022-05-11  124

    4 Toolkit for Java/CORBA

    4.1 功能简介

        这是一个for Java的工具包,能实现对Notes数据库中数据对象的处理,并对数据元素具有一定的处理能力: 数据处理 文档:新建、拷贝、修改、删除、发送(作为邮件) 视图:相当于记录集,可以用于获取文档或视图显示记录 域:新建、修改、删除,支持RTF域、附件的处理 数据库:新建、拷贝、复制、删除 ACL控制 设计元素 可以获取、运行、删除代理 可以获取并删除视图、表单(包括字表单) 可以创建大纲,并向大纲添加多个条目     这个工具包命名为Toolkit for Java/CORBA,是因为在处理本地Notes数据库和远程数据库两种不同情况时,使用的技术有所不同。但在程序实现的接口上,两者基本相同,使得相同的代码实现可以适应不同的环境,为开发带来了便利。 最新版本     v2.1 for R5.0.8,发布于2001.10.02

    4.2 支持的Domino对象及结构

        如下图:

    4.3 访问本地Notes应用

    使用环境     既然是访问本地Notes应用,无疑是安装了Domino/Notes软件的。此时,需要将notes.jar添加到classpath中(在Domino/Notes运行环境中会自动添加)。     程序将使用notes.ini来获取当前用户。如果用户启动并且进入Notes客户端,当前用户ID设置为允许Notes外接程序共享标识符口令,则不用再次输入密码。 工作机理     当从Java程序中使用本地Domino类时,实际上是通过瘦Java层直接访问了Domino后端用C++实现的代码。Java使用JNI机制来访问在动态链接库中的Domino类,Domino的代码被装载入JVM 的进程中。     从性能角度来看,这是最好的选择:这提供了在Java和C代码间的最快的连接,所有的东西都在同一个内存空间中。     但是Domino要求对每个线程的初始化和结束做特殊处理(与C/C++ API类似)。     本地的Domino对象库提供了一个类,lotus.domino.NotesThread来自动的完成这种初始化处理和结束处理。如果使用NotesThread而不是java.lang.Thread来创建一个线程,Domino所需要的init/term调用都自动被执行。同时,NotesThread也是从Thread派生出来的,没有减少任何功能。如果使用NotesThread来创建线程,则需要调用NotesThread类的两个静态方法:sinitThread()和stermThread(),来完成初始化和结束处理。

    4.4 访问远程Domino应用

    使用环境     只需要将NCSO.jar添加到客户端的classpath中就可以了,不再需要安装Notes客户端或者Domino。     需要目标Domino服务器启动HTTP和DIIOP服务。     在这种情况下,Domino会根据用户所提供的用户名/密码来验证用户身份。 工作机理     Domino使用CORBA技术来实现Java程序对远程对象的访问。     在这种情况下,Java程序不再需要在JVM的进程空间中访问任何Domino的C/C++代码,因此不需要做线程初始化和结束处理。因此,可以实例化Session对象、Database对象,使用类似于连接池的技术来重用这些对象,提高访问效率。     在关闭session对象时,系统将自动关闭session中打开的各种Notes对象,例如数据库、视图、文档等,自动释放内存。在不关闭Session对象的情况下,则要注意随时关闭这些对象(使用recycle方法),否则这些对象所占用的内容不能被自动释放重用,严重时会导致系统崩溃。     总之,Lotus Toolkit for Java/CORBA使用户可以摆脱对Notes客户端的依赖,自由地访问远程Domino服务器。同时它对Notes数据以外的对象处理能力有限,系统安全性相对较弱,性能上要低于C/C++ API。建议在网络环境比较安全、对数据访问速度要求不是特别高的情况下使用。 Lotus Domino/Notes Toolkits综述(一) Lotus Domino/Notes Toolkits综述(二) C API Lotus Domino/Notes Toolkits综述(三) C++ API Lotus Domino/Notes Toolkits综述(四) Java Lotus Domino/Notes Toolkits综述(五) LDDJ Lotus Domino/Notes Toolkits综述(六) 其他 Lotus Domino/Notes Toolkits综述(七) 分析比较 Lotus Domino/Notes Toolkits综述(八) 分析比较 续 Lotus Domino/Notes Toolkits综述(九) 小结

    最新回复(0)