徐文靜 張光明 段愛民
(1.華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,廣州 510510;2.解放軍85841部隊(duì) 廣州 510510; 3.解放軍85841部隊(duì) 廣州 510510)
隨著科技的深入發(fā)展,大部分企業(yè)辦公高度信息化,在升級(jí)改造已有系統(tǒng)甚至是新研系統(tǒng)中如何兼容整合已有的應(yīng)用系統(tǒng),解決各系統(tǒng)間信息互通和共享,是擺在大家面前的一個(gè)難題。目前主要存在三個(gè)方面的問題:一是配套技術(shù)規(guī)范建設(shè)相對(duì)滯后,缺乏統(tǒng)一的技術(shù)體制架構(gòu),縱向貫通易,橫向互聯(lián)難;二是沒有建立統(tǒng)一的身份認(rèn)證和授權(quán)機(jī)制,用戶管理繁雜,存在安全隱患;三是信息存儲(chǔ)分散,格式多樣,搜索、共享和利用難。本文主要闡述了基于SOA體系結(jié)構(gòu),利用WEB Service和ESB(企業(yè)服務(wù)總線)技術(shù),實(shí)現(xiàn)了分布式環(huán)境下各信息服務(wù)的標(biāo)準(zhǔn)封裝、集中注冊(cè)和統(tǒng)一管理;利用單點(diǎn)登陸系統(tǒng),實(shí)現(xiàn)了“單點(diǎn)登陸,全網(wǎng)漫游”,為今后此類問題的解決提供一個(gè)參考[1]。
信息服務(wù)基礎(chǔ)環(huán)境基于SOA體系架構(gòu),綜合運(yùn)用Web Service、ESB(企業(yè)服務(wù)總線)和SSO單點(diǎn)登陸等技術(shù),以通用構(gòu)件化開發(fā)平臺(tái)為基礎(chǔ),為企業(yè)內(nèi)部信息系統(tǒng)綜合集成提供統(tǒng)一、開放和可靠的支撐平臺(tái),其主要包括WEB服務(wù)集成平臺(tái)、運(yùn)行維護(hù)平臺(tái)、構(gòu)件化開發(fā)平臺(tái)和信息交換中心等4個(gè)子系統(tǒng)。
SOA架構(gòu)是一個(gè)整合各種服務(wù)的架構(gòu)平臺(tái),它的本質(zhì)是要通過一個(gè)核心服務(wù)技術(shù)集中管理平臺(tái),將各種運(yùn)行在不同平臺(tái)下的服務(wù)(如J2EE、.NET、CORBA、DCOM)通過企業(yè)服務(wù)總線ESB(Enterprise Service Bus)整合起來。SOA架構(gòu)的精髓是業(yè)務(wù)驅(qū)動(dòng),通過業(yè)務(wù)驅(qū)動(dòng)服務(wù),通過服務(wù)驅(qū)動(dòng)技術(shù)。
通用信息服務(wù)中心,利用WEB Services技術(shù)封裝異構(gòu)信息訪問接口,通過ESB技術(shù)建立信息資源目錄體系,初步解決了異地異構(gòu)信息資源共享、交換與集成難題, 把分布環(huán)境下孤立的資源關(guān)聯(lián)起來,把無序的資源變?yōu)橛行?為使用者提供統(tǒng)一的信息資源查找和定位服務(wù),實(shí)現(xiàn)了信息資源的透明訪問和獲取。
1.2.1 信息資源目錄服務(wù)體系結(jié)構(gòu)
建立信息資源目錄服務(wù)目的在于整合資源和提供服務(wù),其體系結(jié)構(gòu)如圖1所示。
圖1 信息資源目錄服務(wù)體系結(jié)構(gòu)
1)網(wǎng)絡(luò)傳輸層。網(wǎng)絡(luò)層是整個(gè)體系結(jié)構(gòu)的物理支撐,各類數(shù)據(jù)資源通過網(wǎng)絡(luò)通道進(jìn)行數(shù)據(jù)傳輸,并對(duì)外提供服務(wù)。
2)信息資源層。網(wǎng)絡(luò)層上面就是資源層,包含各類數(shù)據(jù)資源、服務(wù)資源和信息資源,是信息資源目錄服務(wù)整合的對(duì)象。
3)整合服務(wù)層。該層是信息資源目錄服務(wù)體系的核心層,所有的信息資源在該層中被封裝成Web服務(wù),并在資源整合服務(wù)中心進(jìn)行注冊(cè)后發(fā)布。用戶通過服務(wù)中心提供的服務(wù)發(fā)現(xiàn)資源,通過請(qǐng)求服務(wù)調(diào)用并獲取資源。
4)門戶應(yīng)用層。是已注冊(cè)并發(fā)布的信息資源目錄服務(wù)的展示與應(yīng)用層,為用戶檢索、查找、獲取資源服務(wù)提供了接口,也為管理整個(gè)目錄體系提供了有效途徑。
1.2.2 交換中心的實(shí)現(xiàn)
數(shù)據(jù)交換中心采用Web Service 技術(shù)包裝組件和應(yīng)用系統(tǒng),將系統(tǒng)的數(shù)據(jù)展示和需求都視為服務(wù),通過服務(wù)的請(qǐng)求和調(diào)用實(shí)現(xiàn)系統(tǒng)間的數(shù)據(jù)交換和共享。[5]
1)交換中心優(yōu)點(diǎn)
一是保證了信息資源的時(shí)效性。應(yīng)用系統(tǒng)并不是將數(shù)據(jù)復(fù)制到數(shù)據(jù)交換中心的中心數(shù)據(jù)庫(kù),而只是以Web Service 的形式發(fā)布出來。當(dāng)用戶發(fā)出服務(wù)請(qǐng)求,應(yīng)用系統(tǒng)調(diào)取相應(yīng)數(shù)據(jù)經(jīng)過數(shù)據(jù)交換中心直接傳遞到用戶。
二是實(shí)現(xiàn)了系統(tǒng)之間的低耦合性。當(dāng)數(shù)據(jù)格式變更或數(shù)據(jù)增加,只需要發(fā)布新的Web Service,用戶調(diào)用服務(wù)就可以獲得最新數(shù)據(jù)。數(shù)據(jù)交換中心和客戶端,都不需要做任何改動(dòng)。
三是提高了系統(tǒng)和數(shù)據(jù)的安全性。數(shù)據(jù)交換中心配備安全平臺(tái)來保證系統(tǒng)和數(shù)據(jù)的安全。應(yīng)用系統(tǒng)需要查詢或更新數(shù)據(jù)時(shí),必須通過安全可信的Web Service發(fā)出服務(wù)請(qǐng)求,在權(quán)限管理的控制下來進(jìn)行數(shù)據(jù)交換和數(shù)據(jù)傳輸。
四是提供了很好的互操作性。數(shù)據(jù)交換中心采用Web Service 技術(shù),在簡(jiǎn)單對(duì)象訪問協(xié)議SOAP的基礎(chǔ)上,通過XML實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)安全交換,通過Java 實(shí)現(xiàn)跨平臺(tái)代碼交換,建立了各應(yīng)用系統(tǒng)的接口標(biāo)準(zhǔn)和服務(wù)標(biāo)準(zhǔn),實(shí)現(xiàn)了良好的數(shù)據(jù)封裝、交換和共享。
單點(diǎn)登錄SSO(Single Sign-On),即用戶完成一次系統(tǒng)登錄并通過認(rèn)證后,就可以訪問多個(gè)不同的應(yīng)用系統(tǒng),而無需多次登錄認(rèn)證過程,大大簡(jiǎn)化了用戶使用多個(gè)應(yīng)用系統(tǒng)時(shí)的操作。IBM對(duì)SSO有一個(gè)形象的解釋“單點(diǎn)登錄、全網(wǎng)漫游”[1]。
SSO將企業(yè)多個(gè)應(yīng)用系統(tǒng)的登錄用戶名和密碼集中管理,不僅減少了用戶頻繁登錄操作的麻煩,免去用戶記錄多個(gè)用戶名及密碼的痛苦,也大幅減少了系統(tǒng)管理員的工作量,如在多個(gè)系統(tǒng)中增加、刪除、修改大量用戶,管理用戶權(quán)限甚至同步各個(gè)系統(tǒng)用戶資料等。很多國(guó)際上的企業(yè)已經(jīng)將單點(diǎn)登錄作為系統(tǒng)設(shè)計(jì)的基本功能之一。
SSO可采用多種機(jī)制實(shí)現(xiàn),常見的主要有采用Cookie實(shí)現(xiàn)和采用Session實(shí)現(xiàn)。目前有很多成熟的商業(yè)軟件可供用戶選擇,如Netgrity的Siteminder、 Novell 公司的 iChainRSA公司的ClearTrust等。這些商業(yè)軟件通常功能完善但價(jià)格較高,一般適用于對(duì)SSO要求較高的客戶,且因?yàn)橥ǔ_€需要在應(yīng)用軟件中增加代理模塊,對(duì)客戶自己的應(yīng)用系統(tǒng)支持未必十分完善,實(shí)際應(yīng)用中可能還需要進(jìn)行一些修改。本文選擇的CAS是一款開源單點(diǎn)登錄產(chǎn)品,采用了Cookie機(jī)制實(shí)現(xiàn)單點(diǎn)登錄。
Cookie是一種客戶端機(jī)制,它將用戶訪問網(wǎng)絡(luò)應(yīng)用系統(tǒng)過程中部分?jǐn)?shù)據(jù)存儲(chǔ)下來,如用戶名、用戶訪問時(shí)間、訪問路徑和域,Cookie的作用范圍由用戶的訪問路徑與域構(gòu)成的。
單點(diǎn)登錄同樣可分為“服務(wù)端”和“客戶端”,服務(wù)端就是單點(diǎn)登錄服務(wù)器。首先要在用戶登錄系統(tǒng)的終端應(yīng)用程序中安裝相應(yīng)的“函數(shù)庫(kù)”或者“插件”,或者將“函數(shù)庫(kù)”或者“插件”寫在代碼中,這樣就將原應(yīng)用程序的登錄認(rèn)證代碼替換成了單點(diǎn)登錄的客戶端。
用戶在新的辦公系統(tǒng)的登錄頁面上輸入用戶名和密碼后,系統(tǒng)直接訪問單點(diǎn)登錄服務(wù)器對(duì)用戶名和密碼進(jìn)行認(rèn)證。認(rèn)證通過之后,單點(diǎn)登錄服務(wù)器采用Ticket機(jī)制進(jìn)行某種授權(quán),從而實(shí)現(xiàn)與應(yīng)用程序的交互。授權(quán)完成后,頁面自動(dòng)重定向,回到辦公系統(tǒng)首頁,就完成了登錄操作。此時(shí)單點(diǎn)登錄服務(wù)器會(huì)在客戶端生成一個(gè)加密的Cookie,用以保存用戶登錄數(shù)據(jù)。再進(jìn)入其他應(yīng)用程序時(shí),之前安裝的單點(diǎn)登錄客戶端,會(huì)自動(dòng)重定向到單點(diǎn)登錄服務(wù)器,尋找Cookie。根據(jù)Cookie中存儲(chǔ)的數(shù)據(jù)在后臺(tái)自動(dòng)登錄,并返回其他應(yīng)用程序的相應(yīng)界面,不再要求用戶輸入用戶名和密碼。
圖2 使用Cookie實(shí)現(xiàn)單點(diǎn)登錄的原理圖
實(shí)現(xiàn)單點(diǎn)登錄的過程中,通過http僅傳遞了用戶名,并未傳遞密碼,相對(duì)還是比較安全的。
傳統(tǒng)的應(yīng)用軟件系統(tǒng)是由若干子系統(tǒng)組成,而每個(gè)獨(dú)立子系統(tǒng)又是由若干業(yè)務(wù)模塊組成。而在基于面向構(gòu)件開發(fā)的過程中,業(yè)務(wù)構(gòu)件就對(duì)應(yīng)著模塊這個(gè)層次,業(yè)務(wù)構(gòu)件是最大粒度的可復(fù)用構(gòu)件單位。在面向構(gòu)件的方法論中,要求對(duì)子系統(tǒng)按照業(yè)務(wù)構(gòu)件的分割原則進(jìn)行分割,使子系統(tǒng)由一個(gè)個(gè)相對(duì)獨(dú)立自治的業(yè)務(wù)構(gòu)件組裝而成。
辦公系統(tǒng)采用受控的自由流轉(zhuǎn)形式,既避免了固定流轉(zhuǎn)在適用對(duì)象上的局限性,又避免了自由流轉(zhuǎn)的隨意性。所謂受控的自由流轉(zhuǎn),是指對(duì)用戶發(fā)送對(duì)象進(jìn)行有限制的發(fā)送而進(jìn)行的文件流轉(zhuǎn)。通常情況下,用戶間可以在一定范圍內(nèi)自由相互發(fā)送。特殊情況下,通過限制發(fā)送對(duì)象,系統(tǒng)不但廣泛適用于各級(jí)各類大小部門辦公需要,而且也確保了文件流轉(zhuǎn)的嚴(yán)肅性。
系統(tǒng)以“角色”作為用戶權(quán)限劃分的依據(jù),無需對(duì)每個(gè)用戶單獨(dú)設(shè)置操作權(quán)限,系統(tǒng)管理員只需對(duì)用戶確定相應(yīng)的角色,系統(tǒng)就自動(dòng)完成了用戶權(quán)限的設(shè)置系統(tǒng)可根據(jù)各部門的實(shí)際情況,靈活定義系統(tǒng)的組織機(jī)構(gòu)結(jié)構(gòu),可適合各級(jí)各類企業(yè)的需要。
系統(tǒng)在缺省情況下設(shè)置一名系統(tǒng)管理員,負(fù)責(zé)系統(tǒng)數(shù)據(jù)和用戶、權(quán)限、信息分類等數(shù)據(jù)的維護(hù)管理,也可以通過增設(shè)部門管理員,負(fù)責(zé)本部門的維護(hù)管理。系統(tǒng)通過采用集中與分散相結(jié)合的維護(hù)管理機(jī)制,不但減輕了系統(tǒng)管理員的工作量,而且確保了各類數(shù)據(jù)維護(hù)管理方便高效。
系統(tǒng)由“公文處理”、 “輔助辦公”、 “會(huì)務(wù)管理”和“資料查詢”等四個(gè)子系統(tǒng)組成。本文就不一一闡述了。
基于 SOA(Service-Oriented Architecture)即面向服務(wù)架構(gòu)研發(fā)系統(tǒng),避免了“緊偶合”、“封閉式”、“確定性功能”等不利系統(tǒng)發(fā)展因素,具有靈活多變的特性,擴(kuò)展性、移植性好,且充分利用豐富的第三方控件,加快應(yīng)用系統(tǒng)開發(fā)速度,縮短研發(fā)進(jìn)程。本文簡(jiǎn)要介紹了基于SOA架構(gòu)為特定企業(yè)研發(fā)整合應(yīng)用系統(tǒng)的部分設(shè)計(jì)及關(guān)鍵技術(shù),為系統(tǒng)研發(fā)人員提供了一個(gè)參考。
本文所涉及項(xiàng)目乃適用于特定企業(yè)模式的整合系統(tǒng),已在企業(yè)中大范圍應(yīng)用,并取得一定管理效益。目前在特定企業(yè)中尚無同類規(guī)模、技術(shù)先進(jìn)、功能完善的整合應(yīng)用系統(tǒng),對(duì)行業(yè)發(fā)展起到一定的啟示作用。
參考資料
[1] 《基于CAS單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)》,于龍海
[2] 《SOA架構(gòu)的電子政務(wù)綜合應(yīng)用服務(wù)系統(tǒng)方案研究》,《數(shù)字通信》2009年第05期,王永;潘東;繆秦;
[3] 《論企業(yè)信息資源的整合》,《計(jì)算機(jī)系統(tǒng)應(yīng)用》2007年10期,王昕 都金鰲
[4] 《普元EOS概述》,普元軟件有限公司
[5] 《Web服務(wù)及相關(guān)技術(shù)》,《計(jì)算機(jī)應(yīng)用與軟件》2004年3期,吳文明 瞿裕忠 董逸生