董久敏,楊 旭
(煙臺職業學院 信息工程系,煙臺 264670)
J2EE(Java 2 Platform Enterprise Edition)是目前最復雜、最成熟、最有影響力的企業應用模型。作為一種分布式計算的結構體系,J2EE在事務管理[1]、持久性、安全性、組件的多實例管理等方面提供了強大的支持。本文描述了網上辦公系統的系統結構、軟件架構以及系統實現的一些關鍵技術。
Web Services是一個應用組件,它邏輯性的為其他應用程序提供數據與服務。各應用程序通過網絡協議和規定的一些標準數據格式(Http,XML,Soap)來訪問Web Services,通過Web Services內部執行得到所需結果。如果正提供一個服務,就需要將其描述給其他人;如果想使用一個服務,就需要將所尋找的服務描述出來。
由于CMP在大規模操作時占用系統資源很多且運行速度慢,因此對需要大量訪問的功能模塊,采用了在應用層的Java Bean 通過JNDI(Java Naming and Directory Interface,Java 命名和目錄接口)查找數據庫連接池獲取連接來訪問數據的方式實現[2]。
2.2.1 權限管理系統的實體有[3]
用戶、角色、模塊、功能,這四個實體之間的關系如圖1所示。

圖1 權限管理模塊 E-R圖
2.2.2 公文管理系統的實體有
公文(Document)、回復函(Return letter)、附件(Accessories)、部門(Department),公文附件Accessories完全依賴于特定的公文Document而存在,因此建模為弱實體;回函Return letter是部門針對特定的公文Document作出的答復,Document是Return letter的概化。4個實體的關系如圖2所示。其它ER圖,本文不再一一列舉。
2.3.1 權限管理模塊
主要完成授予用戶權限。基于角色的訪問控制RBAC(Role-Based Access Control)授權模型,訪問控制策略體現在RBAC模型里是用戶-角色、角色-權限和角色-角色之間的關系。采用RBAC的最大好處在于將用戶和其具有的權限分離開來,管理員可以將用戶的授權和權限的劃分進行分別處理,通過給角色授予權限,給用戶分配角色來實現用戶的授權操作[4]。如圖3所示。

圖2 公文管理模塊ER圖

圖3 權限分配模型
2.3.2 公告管理模塊
定期公告近期的重要活動、大事記。管理員具有最高的權限,可以進行公告的添加、修改、刪除。
2.3.3 公文管理模塊
由Word插件實現公文內容排版;公文經相關領導批準;應用商業插件將公文由Word文件轉換成PDF文件;使用SmartUpload組件實現公文及其附件的上傳;將公文發送到相關的部門;接收公文部門反饋簽收信息、回函。
2.3.4 電子郵件管理模塊
選擇接收Email的部門,可以實現帶附件電子郵件的群發。
業務邏輯層主要采用EJB3.0技術實現,根據不同的OA功能,連接后臺管理信息數據庫,完成對基礎管理信息的分析和處理,實現不同的管理功能邏輯,并通過對應的EJB組件為其它功能或其它應用程序提供運行時的調用接口。
每個功能模塊包含一個或多個業務組件,每個業務組件由下列幾部分組成,兩個HOME接口(本地和遠程),兩個業務接口(本地和遠程),一個實現了這些接口的主類,和一個部署描述符表(DD)。其中HOME接口定義了一些控制該組件生命周期的一些方法,例如:CREATE(),REMOVE()等,而業務接口中定義了該業務組件功能實現所需要的一系列業務方法,所有這些方法的定義都被映射到主類對各個方法的具體實現中,其它的業務組件或應用程序客戶端通過這些接口對該組件進行調用,本地調用過程跟通常的單機調用過程類似,這里不再贅述。
用Session Facade 封裝對相關數據的操作。在J2EE的實際應用中,經常會遇到對多個相關數據項目進行一系列的操作,而每個數據項目封裝在各自的Entity Bean 中的情況。例如:在網上辦公系統中,要查詢一個用戶的權限,需要訪問用戶信息表、角色信息表、用戶角色信息表、模塊信息表、功能信息表、權限信息表、角色權限信息表等等。通常這些信息都封裝在獨立的Entity Bean中。在處理這類情況時。如果讓客戶程序直接與這些Entity Bean交互,在其上進行一系列的操作,那么即使這些Entity Bean在同一個服務器上,客戶程序也要進行多次遠程調用才能完成操作,這樣的設計方式顯然會造成系統性能的低下。為此,我們可以采用Session Facade的設計模式,在客戶程序和Entity Bean之間引入一個叫做Session Facade的Session Bean,由Session Facade封裝對多個Entity Bean的一系列操作,并對外提供統一接口,客戶程序提供該Session Facade的接口進行操作。這樣以來,客戶程序只需一次遠程調用就可以完成操作,從而可以大大提高性能[5]。
網上辦公系統將 EJB3.0、Web Services、JBOSS5.0等新技術完整地結合構建基于J2EE的Web應用系統,并采用緩存技術、連接池技術優化系統性能;系統可以跨平臺穩定運行,應用MDB將打印等耗時長的操作實現異步處理,系統響應時間迅速,高效可靠地運行。
[1] 微軟公司,Web Services 設計[M].北京:高等教育出版社,2008:86-99.
[2] 陳天河,Hibernate項目開發[M].北京:電子工業出版社,2009:393-398
[3] 李振捷,JSP網站開發[M].北京:電子工業出版社,2009:410-416
[4] 陳志泊,數據庫原理及應用教程[M].北京:人民郵電出版社,2008:230-238
[5] Rima Patel Striganesh,Mastering EnterPrise JavaBean3.0[M].北京:電子工業出版社,2010:128-130.