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綜述(九) 小結