徐文靜 張光明 段愛民
(1.華南理工大學計算機科學與工程學院,廣州 510510;2.解放軍85841部隊 廣州 510510; 3.解放軍85841部隊 廣州 510510)
隨著科技的深入發展,大部分企業辦公高度信息化,在升級改造已有系統甚至是新研系統中如何兼容整合已有的應用系統,解決各系統間信息互通和共享,是擺在大家面前的一個難題。目前主要存在三個方面的問題:一是配套技術規范建設相對滯后,缺乏統一的技術體制架構,縱向貫通易,橫向互聯難;二是沒有建立統一的身份認證和授權機制,用戶管理繁雜,存在安全隱患;三是信息存儲分散,格式多樣,搜索、共享和利用難。本文主要闡述了基于SOA體系結構,利用WEB Service和ESB(企業服務總線)技術,實現了分布式環境下各信息服務的標準封裝、集中注冊和統一管理;利用單點登陸系統,實現了“單點登陸,全網漫游”,為今后此類問題的解決提供一個參考[1]。
信息服務基礎環境基于SOA體系架構,綜合運用Web Service、ESB(企業服務總線)和SSO單點登陸等技術,以通用構件化開發平臺為基礎,為企業內部信息系統綜合集成提供統一、開放和可靠的支撐平臺,其主要包括WEB服務集成平臺、運行維護平臺、構件化開發平臺和信息交換中心等4個子系統。
SOA架構是一個整合各種服務的架構平臺,它的本質是要通過一個核心服務技術集中管理平臺,將各種運行在不同平臺下的服務(如J2EE、.NET、CORBA、DCOM)通過企業服務總線ESB(Enterprise Service Bus)整合起來。SOA架構的精髓是業務驅動,通過業務驅動服務,通過服務驅動技術。
通用信息服務中心,利用WEB Services技術封裝異構信息訪問接口,通過ESB技術建立信息資源目錄體系,初步解決了異地異構信息資源共享、交換與集成難題, 把分布環境下孤立的資源關聯起來,把無序的資源變為有序,為使用者提供統一的信息資源查找和定位服務,實現了信息資源的透明訪問和獲取。
1.2.1 信息資源目錄服務體系結構
建立信息資源目錄服務目的在于整合資源和提供服務,其體系結構如圖1所示。

圖1 信息資源目錄服務體系結構
1)網絡傳輸層。網絡層是整個體系結構的物理支撐,各類數據資源通過網絡通道進行數據傳輸,并對外提供服務。
2)信息資源層。網絡層上面就是資源層,包含各類數據資源、服務資源和信息資源,是信息資源目錄服務整合的對象。
3)整合服務層。該層是信息資源目錄服務體系的核心層,所有的信息資源在該層中被封裝成Web服務,并在資源整合服務中心進行注冊后發布。用戶通過服務中心提供的服務發現資源,通過請求服務調用并獲取資源。
4)門戶應用層。是已注冊并發布的信息資源目錄服務的展示與應用層,為用戶檢索、查找、獲取資源服務提供了接口,也為管理整個目錄體系提供了有效途徑。
1.2.2 交換中心的實現
數據交換中心采用Web Service 技術包裝組件和應用系統,將系統的數據展示和需求都視為服務,通過服務的請求和調用實現系統間的數據交換和共享。[5]
1)交換中心優點
一是保證了信息資源的時效性。應用系統并不是將數據復制到數據交換中心的中心數據庫,而只是以Web Service 的形式發布出來。當用戶發出服務請求,應用系統調取相應數據經過數據交換中心直接傳遞到用戶。
二是實現了系統之間的低耦合性。當數據格式變更或數據增加,只需要發布新的Web Service,用戶調用服務就可以獲得最新數據。數據交換中心和客戶端,都不需要做任何改動。
三是提高了系統和數據的安全性。數據交換中心配備安全平臺來保證系統和數據的安全。應用系統需要查詢或更新數據時,必須通過安全可信的Web Service發出服務請求,在權限管理的控制下來進行數據交換和數據傳輸。
四是提供了很好的互操作性。數據交換中心采用Web Service 技術,在簡單對象訪問協議SOAP的基礎上,通過XML實現跨平臺數據安全交換,通過Java 實現跨平臺代碼交換,建立了各應用系統的接口標準和服務標準,實現了良好的數據封裝、交換和共享。
單點登錄SSO(Single Sign-On),即用戶完成一次系統登錄并通過認證后,就可以訪問多個不同的應用系統,而無需多次登錄認證過程,大大簡化了用戶使用多個應用系統時的操作。IBM對SSO有一個形象的解釋“單點登錄、全網漫游”[1]。
SSO將企業多個應用系統的登錄用戶名和密碼集中管理,不僅減少了用戶頻繁登錄操作的麻煩,免去用戶記錄多個用戶名及密碼的痛苦,也大幅減少了系統管理員的工作量,如在多個系統中增加、刪除、修改大量用戶,管理用戶權限甚至同步各個系統用戶資料等。很多國際上的企業已經將單點登錄作為系統設計的基本功能之一。
SSO可采用多種機制實現,常見的主要有采用Cookie實現和采用Session實現。目前有很多成熟的商業軟件可供用戶選擇,如Netgrity的Siteminder、 Novell 公司的 iChainRSA公司的ClearTrust等。這些商業軟件通常功能完善但價格較高,一般適用于對SSO要求較高的客戶,且因為通常還需要在應用軟件中增加代理模塊,對客戶自己的應用系統支持未必十分完善,實際應用中可能還需要進行一些修改。本文選擇的CAS是一款開源單點登錄產品,采用了Cookie機制實現單點登錄。
Cookie是一種客戶端機制,它將用戶訪問網絡應用系統過程中部分數據存儲下來,如用戶名、用戶訪問時間、訪問路徑和域,Cookie的作用范圍由用戶的訪問路徑與域構成的。
單點登錄同樣可分為“服務端”和“客戶端”,服務端就是單點登錄服務器。首先要在用戶登錄系統的終端應用程序中安裝相應的“函數庫”或者“插件”,或者將“函數庫”或者“插件”寫在代碼中,這樣就將原應用程序的登錄認證代碼替換成了單點登錄的客戶端。
用戶在新的辦公系統的登錄頁面上輸入用戶名和密碼后,系統直接訪問單點登錄服務器對用戶名和密碼進行認證。認證通過之后,單點登錄服務器采用Ticket機制進行某種授權,從而實現與應用程序的交互。授權完成后,頁面自動重定向,回到辦公系統首頁,就完成了登錄操作。此時單點登錄服務器會在客戶端生成一個加密的Cookie,用以保存用戶登錄數據。再進入其他應用程序時,之前安裝的單點登錄客戶端,會自動重定向到單點登錄服務器,尋找Cookie。根據Cookie中存儲的數據在后臺自動登錄,并返回其他應用程序的相應界面,不再要求用戶輸入用戶名和密碼。

圖2 使用Cookie實現單點登錄的原理圖
實現單點登錄的過程中,通過http僅傳遞了用戶名,并未傳遞密碼,相對還是比較安全的。
傳統的應用軟件系統是由若干子系統組成,而每個獨立子系統又是由若干業務模塊組成。而在基于面向構件開發的過程中,業務構件就對應著模塊這個層次,業務構件是最大粒度的可復用構件單位。在面向構件的方法論中,要求對子系統按照業務構件的分割原則進行分割,使子系統由一個個相對獨立自治的業務構件組裝而成。
辦公系統采用受控的自由流轉形式,既避免了固定流轉在適用對象上的局限性,又避免了自由流轉的隨意性。所謂受控的自由流轉,是指對用戶發送對象進行有限制的發送而進行的文件流轉。通常情況下,用戶間可以在一定范圍內自由相互發送。特殊情況下,通過限制發送對象,系統不但廣泛適用于各級各類大小部門辦公需要,而且也確保了文件流轉的嚴肅性。
系統以“角色”作為用戶權限劃分的依據,無需對每個用戶單獨設置操作權限,系統管理員只需對用戶確定相應的角色,系統就自動完成了用戶權限的設置系統可根據各部門的實際情況,靈活定義系統的組織機構結構,可適合各級各類企業的需要。
系統在缺省情況下設置一名系統管理員,負責系統數據和用戶、權限、信息分類等數據的維護管理,也可以通過增設部門管理員,負責本部門的維護管理。系統通過采用集中與分散相結合的維護管理機制,不但減輕了系統管理員的工作量,而且確保了各類數據維護管理方便高效。
系統由“公文處理”、 “輔助辦公”、 “會務管理”和“資料查詢”等四個子系統組成。本文就不一一闡述了。
基于 SOA(Service-Oriented Architecture)即面向服務架構研發系統,避免了“緊偶合”、“封閉式”、“確定性功能”等不利系統發展因素,具有靈活多變的特性,擴展性、移植性好,且充分利用豐富的第三方控件,加快應用系統開發速度,縮短研發進程。本文簡要介紹了基于SOA架構為特定企業研發整合應用系統的部分設計及關鍵技術,為系統研發人員提供了一個參考。
本文所涉及項目乃適用于特定企業模式的整合系統,已在企業中大范圍應用,并取得一定管理效益。目前在特定企業中尚無同類規模、技術先進、功能完善的整合應用系統,對行業發展起到一定的啟示作用。
參考資料
[1] 《基于CAS單點登錄系統的研究與實現》,于龍海
[2] 《SOA架構的電子政務綜合應用服務系統方案研究》,《數字通信》2009年第05期,王永;潘東;繆秦;
[3] 《論企業信息資源的整合》,《計算機系統應用》2007年10期,王昕 都金鰲
[4] 《普元EOS概述》,普元軟件有限公司
[5] 《Web服務及相關技術》,《計算機應用與軟件》2004年3期,吳文明 瞿裕忠 董逸生