摘 要: 介紹了基于異構(gòu)環(huán)境科技網(wǎng)絡(luò)系統(tǒng)中統(tǒng)一用戶管理的設(shè)計,并著重闡述統(tǒng)一用戶管理設(shè)計原理以及基于J2EE、遵循CORBA開發(fā)規(guī)范的實現(xiàn)技術(shù)。
關(guān)鍵詞: 網(wǎng)絡(luò)內(nèi)容提供商;公共對象請求代理機(jī)制;企業(yè)JavaBean組件;輕量級目錄訪問協(xié)議;活動目錄服務(wù)接口
某市大型科技網(wǎng)站的定位側(cè)重于ICP(Internet Content Provider),兼作ISP(Internet Service Provider),主攻方向是信息增值服務(wù)。其具有豐富的網(wǎng)上信息資源,提供科技信息全文檢索、動態(tài)信息發(fā)布等功能。作為地區(qū)國民經(jīng)濟(jì)信息化的重要工程之一,其建設(shè)目標(biāo)是成為國際科技信息網(wǎng)和省科技信息網(wǎng)的地區(qū)主干網(wǎng),成為市科技信息開發(fā)、應(yīng)用與服務(wù)及與國內(nèi)外科技信息交流的平臺和反映地區(qū)科技信息的主要窗口。
為了滿足系統(tǒng)建設(shè)和將來升級擴(kuò)展的需要,系統(tǒng)采用了先進(jìn)的軟硬件配置。所有網(wǎng)絡(luò)設(shè)備、服務(wù)器、軟件平臺均采用當(dāng)前在Internet網(wǎng)站建設(shè)方面享有良好聲譽(yù)的、代表Internet服務(wù)發(fā)展趨勢、方向和水平的產(chǎn)品。在服務(wù)器的選擇上,采用了在Internet服務(wù)領(lǐng)域享有很高聲譽(yù)的SUN、SGI服務(wù)器系列和HP公司系列產(chǎn)品,同時采用Solaris、IRIX和Windows 2000 Server作為服務(wù)器的操作系統(tǒng);選用Oracle數(shù)據(jù)庫系統(tǒng)及Sybase Enterprise Application Server多層軟件技術(shù)及SGI公司先進(jìn)的視頻技術(shù),充分利用強(qiáng)大的系統(tǒng)擴(kuò)展能力提供良好的信息查詢服務(wù)。
系統(tǒng)提供的主要ICP服務(wù)有:電子郵件、代理、科技信息檢索、視頻點播、撥號等。由于提供這些服務(wù)的廠商和平臺完全分散獨(dú)立,并且各自提供了基于不同語言的開發(fā)接口,這就帶來一個問題:如何統(tǒng)一地使用對應(yīng)的服務(wù),如何將異構(gòu)環(huán)境中的用戶信息統(tǒng)一到科技網(wǎng)站系統(tǒng)中來,以便為科技網(wǎng)用戶透明地使用,并且為網(wǎng)站統(tǒng)一計費(fèi)提供依據(jù)。因此在異構(gòu)環(huán)境中的統(tǒng)一用戶管理成為本系統(tǒng)的一個重要研究課題。
1 統(tǒng)一用戶管理思想
為了管理和計費(fèi)的需要,本文提出了統(tǒng)一用戶管理的概念,以服務(wù)的方式組織應(yīng)用。用戶上網(wǎng)申請注冊并交費(fèi)后,可自由選取系統(tǒng)提供的各種ICP服務(wù)。用戶選取不同的服務(wù),都要求把用戶信息統(tǒng)一到相應(yīng)服務(wù)所在服務(wù)器系統(tǒng)平臺的用戶管理中。即:當(dāng)注冊用戶在某一處增加、刪除一種服務(wù)或修改用戶信息和密碼時,其用戶信息(包括用戶賬號、密碼等)都統(tǒng)一到相應(yīng)的服務(wù)所在的服務(wù)器系統(tǒng)平臺的用戶管理應(yīng)用系統(tǒng)中,這是統(tǒng)一用戶管理的設(shè)計重點。簡言之,統(tǒng)一用戶管理即用戶擁有“一卡通”。這樣就能方便用戶擁有一個賬號便可在網(wǎng)上享用其所選用的資源并完整地實現(xiàn)統(tǒng)一計費(fèi)。
2 用戶服務(wù)認(rèn)證方案
由于系統(tǒng)提供的增值服務(wù)所在的服務(wù)器系統(tǒng)平臺相對獨(dú)立、分散,所以必須根據(jù)不同系統(tǒng)針對性地解決用戶管理問題。Email服務(wù)是在NETSCAPE的MESSAGE SERVER上實現(xiàn)的,代理服務(wù)是通過NETSCAPE的PROXY SERVER實現(xiàn)。以上兩種服務(wù)對應(yīng)的用戶管理要根據(jù)NETSCAPE的目錄服務(wù)機(jī)制來實現(xiàn),其目錄服務(wù)機(jī)制遵循了LDAP協(xié)議,因此,Email和代理服務(wù)的用戶驗證要通過目錄服務(wù)的相應(yīng)的LDAP協(xié)議來實現(xiàn)完成加載用戶信息到其目錄服務(wù)器中。
全文檢索服務(wù)是利用TRS(易寶全文檢索系統(tǒng))的用戶管理系統(tǒng)實現(xiàn)的。因此,此服務(wù)的用戶認(rèn)證要將用戶信息加入到TRS的用戶管理系統(tǒng)中。
撥號服務(wù)是利用Radius Server實現(xiàn)的。而Radius Server的用戶認(rèn)證則是通過Windows2000 Server的Active Directory中的用戶來實現(xiàn)。因此,撥號服務(wù)的認(rèn)證要將用戶加入到Windows2000 Server的活動目錄中。
3 實現(xiàn)技術(shù)
3.1 基于LDAP和Windows ADSI
在實現(xiàn)統(tǒng)一用戶管理的過程當(dāng)中,遵循了相應(yīng)的目錄服務(wù)的有關(guān)協(xié)議,輕量級目錄訪問協(xié)議LDAP(Lightweight Directory Access Protocol)和Windows 2000 Server的Active Directory(活動目錄)。
LDAP是遵循X.500標(biāo)準(zhǔn)的互聯(lián)網(wǎng)目錄協(xié)議[1-4],可用于訪問和管理目錄服務(wù)。LDAP基于客戶/服務(wù)器模式,服務(wù)器端提供目錄服務(wù),LDAP使開發(fā)人員能夠使用標(biāo)準(zhǔn)查詢技術(shù)從一個合并的目錄中檢索信息,從而實現(xiàn)物理上分布的、邏輯上集中的統(tǒng)一用戶管理功能。從一個用戶管理界面統(tǒng)一管理所有系統(tǒng),LDAP客戶端通過TCP/IP與服務(wù)器通信,利用目錄服務(wù)獲得相關(guān)屬性信息,如查詢、添加、修改、刪除等。
Active Directory是一個收集用戶與資源信息的分布式數(shù)據(jù)庫,它包含的用戶與資源信息描述了網(wǎng)絡(luò)、用戶、應(yīng)用設(shè)置以及管理與編程人員所感興趣的所有內(nèi)容?;顒幽夸浀闹饕δ苁怯脕泶鎯﹃P(guān)于網(wǎng)絡(luò)上的資源信息并提供相應(yīng)的服務(wù),使這些資源易于定位、使用和管理。網(wǎng)絡(luò)資源信息被存放在活動目錄的數(shù)據(jù)庫組件中?;顒幽夸洖橛脩?、應(yīng)用程序和Windows2000系統(tǒng)本身搜索網(wǎng)絡(luò)資源提供了統(tǒng)一的服務(wù)平臺,同時還為管理員提供了一條集中組織、管理和控制對網(wǎng)絡(luò)資源訪問的途徑。
3.2 基于不同API
各服務(wù)對應(yīng)系統(tǒng)和第三方廠商提供了不同語言的開發(fā)接口。Email和代理服務(wù)對應(yīng)的系統(tǒng)提供了Java語言的API;全文檢索和撥號服務(wù)對應(yīng)的系統(tǒng)只提供了C語言的API。因此系統(tǒng)必須選擇一種語言中立的開發(fā)模式。
3.3 基于EJB和CORBA集成異構(gòu)系統(tǒng)
對本系統(tǒng)實現(xiàn)功能要求:
(1)同步LDAP目錄服務(wù)、AD目錄服務(wù)系統(tǒng)和第三方用戶系統(tǒng)。
(2)采用流行的B/S結(jié)構(gòu)。
(3)準(zhǔn)確及時自動同步用戶信息的增、刪、改。
(4)基于J2EE標(biāo)準(zhǔn)技術(shù)構(gòu)架和與開發(fā)語言無關(guān)的CORBA規(guī)范,無縫地集成不同應(yīng)用系統(tǒng)。
(5)可以跨平臺運(yùn)行,支持Windows、SUN Solaris、IRIX、HP Unix系統(tǒng)。
針對系統(tǒng)功能要求,統(tǒng)一用戶管理實現(xiàn)方法是基于EJB組件技術(shù)、CORBA[9]組件規(guī)范的核心技術(shù),這樣就充分保證了系統(tǒng)的安全性、穩(wěn)定性和重用性,并為統(tǒng)一日志管理和計費(fèi)管理提供了依據(jù)。
EJB(Enterprise Java Beans)是J2EE架構(gòu)的重要組成部分,用于開發(fā)和部署多層結(jié)構(gòu)的、分布式的、面向?qū)ο蟮腏ava應(yīng)用系統(tǒng)的跨三層的組件體系結(jié)構(gòu)。EJB組件通常不能單獨(dú)運(yùn)行,而是運(yùn)行在EJB容器中。應(yīng)用系統(tǒng)可以在一個支持EJB的環(huán)境中開發(fā),開發(fā)完后可以部署在其他的環(huán)境中。并且隨著需求的改變,應(yīng)用系統(tǒng)可以不加修改地遷移到其他功能更強(qiáng)、更復(fù)雜的服務(wù)器上。
CORBA組件實現(xiàn)規(guī)范由OMG提出,OMG首先發(fā)布了OMA(對象管理體系結(jié)構(gòu)),提出了組件互操作的軟總線ORB(Object Request Broker)。一個CORBA組件采用IDL進(jìn)行(接口定義語言)描述。CORBA提供了IDL到C、C++、Java、COBOL等語言的映射機(jī)制——IDL編譯器。IDL編譯器可以生成Server方的Skelton和Client方的Stub代碼,通過分別與客戶端和服務(wù)端程序的聯(lián)編,即可得到相應(yīng)的Server和Client程序。CORBA對象特點包括:可以位于網(wǎng)絡(luò)中的任何位置;可以和其他平臺上的對象交互;可以用任何設(shè)計語言編寫,只要有IDL到該語言的映射即可。
本方案采用Enterprise JavaBean組件、CORBA C++組件實現(xiàn)了電子郵件用戶、代理服務(wù)用戶、全文檢索服務(wù)用戶、撥號服務(wù)用戶的統(tǒng)一管理。通過建立目錄服務(wù)服務(wù)器及相應(yīng)的用戶屬性信息,采用支持LDAP協(xié)議、ADSI的開發(fā)工具(Netscape Suitespot、Sybase Enterprise Application Server、Sybase PowerJ、Visual C++)開發(fā)LDAP服務(wù)組件、撥號服務(wù)組件,實現(xiàn)了對系統(tǒng)內(nèi)用戶的統(tǒng)一管理。本方案對提供二次開發(fā)支持的第三方系統(tǒng)(TRS全文檢索系統(tǒng)),可通過相應(yīng)的C語言的API開發(fā)CORBA C++組件實現(xiàn)。
3.3.1 采用三層體系結(jié)構(gòu)
系統(tǒng)采用三層體系結(jié)構(gòu)。
(1)前端的客戶層:客戶端系統(tǒng)采用Web方式,利用瀏覽器向Web服務(wù)器請求對網(wǎng)上應(yīng)用管理系統(tǒng)進(jìn)行操作的相關(guān)網(wǎng)頁。
(2)中間應(yīng)用層:封裝業(yè)務(wù)邏輯、進(jìn)行事務(wù)處理,包括PowerDynamo和Jaguar CTS。其中PowerDynamo負(fù)責(zé)網(wǎng)頁生成和動態(tài)數(shù)據(jù)發(fā)布,Jaguar CTS負(fù)責(zé)組件和事務(wù)處理,客戶端利用HTTP協(xié)議與PowerDynamo通信,得到想調(diào)用的頁面(包括以Java Applet形式下載的組件),若有組件則由PowerDynamo與Jaguar CTS通過IIOP協(xié)議執(zhí)行組件方法。其具有下列特點:
①支持EJB、CORBA、DCOM等組件。
?、诓灰蕾囉谡Z言。
?、壑С侄喾N分布式協(xié)議。
?、苤С謴V泛的平臺。Windows、Solaris、IRIX和HP-UX等。
?、葜С謽?biāo)準(zhǔn)安全機(jī)制和可靠的先進(jìn)性。
?、尴冗M(jìn)的命名服務(wù)。支持CORBA Cosnaming Service和JNDI.
(3)后端數(shù)據(jù)庫管理層:提供對數(shù)據(jù)庫的訪問。
圖1為三層體系結(jié)構(gòu)圖。

3.3.2 服務(wù)認(rèn)證組件實現(xiàn)
(1)EJB組件
通過EJB組件方法創(chuàng)建了Email服務(wù)的用戶統(tǒng)一管理的組件LDAPuser、代理服務(wù)的用戶統(tǒng)一管理的組件LDAPproxy。
(2)CORBA C++組件
通過CORBA C++組件方法創(chuàng)建了全文檢索服務(wù)的用戶統(tǒng)一管理組件TSRuser、撥號服務(wù)的用戶統(tǒng)一管理的組件RADuser。
3.3.3 用戶統(tǒng)一管理的實現(xiàn)方法
(1)對用戶透明。注冊用戶通過選取相應(yīng)服務(wù)或修改用戶信息的頁面操作,系統(tǒng)自動進(jìn)行相應(yīng)的判斷。
(2)系統(tǒng)調(diào)用EJB組件。用戶在選擇新增Email服務(wù)時,頁面執(zhí)行的語句為:
ldaphomeobj=java.GetHomeInterface(“LDAPuser”,“iiop:// 組件服務(wù)器名:9000”,“用戶名”,“密碼”);
ldapObj=ldaphomeobj.create(); //實例化
ldapObj.Add(user,psw); //組件中新增Email服務(wù)的
//成員方法,user為用戶名參數(shù),psw為用戶密碼參數(shù),以下同
ldapObj.Mod(user,old_psw,new_psw); //組件中修改
//Email服務(wù)用戶密碼的成員方法。注:old_psw為舊密碼,
//new_psw為新密碼。
ldapObj.Del(user); //組件中刪除Email郵箱賬號的成
//員方法
代理服務(wù)用戶統(tǒng)一管理的實現(xiàn)方法與Email服務(wù)調(diào)用的實現(xiàn)方法類似。
(3)系統(tǒng)調(diào)用CORBA C++組件
①全文檢索服務(wù)用戶統(tǒng)一管理的實現(xiàn)方法
TSRobj1=java.CreateComponent(“TSRadmin/TSRuser”,“iiop://組件服務(wù)器名:9000”,“用戶名”,“密碼”,“TSRadmin/
//TSRuser”);
TSRobj1.Add(user,psw); //組件中新增全文檢索服務(wù)的//成員方法
TSRobj1.Mod(user,old_psw,new_psw); //組件中修改全//文檢索服務(wù)的用戶密碼的成員方法
TSRobj1.Del(user); //組件中刪除全文檢索服務(wù)的成員//方法
②撥號服務(wù)用戶統(tǒng)一管理的實現(xiàn)方法
其組件RADuser中包含的方法分別為:選取撥號服務(wù)Add、修改用戶密碼Mod、刪除撥號服務(wù)Del。撥號服務(wù)用戶統(tǒng)一管理的實現(xiàn)方法與全文檢索服務(wù)用戶統(tǒng)一管理組件調(diào)用的實現(xiàn)方法類似。
本文主要介紹了基于包含各種網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)(Solaris、IRIX和Windows 2000 Server)、應(yīng)用軟件(NETSCAPE、
SYBASE、ORACLE、OPENVIEW、TRS、VOD、郵件系統(tǒng))等異構(gòu)環(huán)境中基于不同目錄服務(wù)協(xié)議、不同提供商的API接口,利用EJB組件和CORBA C++組件集成技術(shù)無縫透明地實現(xiàn)網(wǎng)上各服務(wù)的統(tǒng)一用戶管理,對統(tǒng)一計費(fèi)和管理提供了直接依據(jù),并且易于新增服務(wù)和擴(kuò)展。系統(tǒng)運(yùn)行以來,實施效果良好。統(tǒng)一用戶管理的設(shè)計與實現(xiàn)不僅對于科技網(wǎng)而且對大型異構(gòu)環(huán)境下基于增值服務(wù)的網(wǎng)站的統(tǒng)一管理和運(yùn)營也具有一定的借鑒意義。
參考文獻(xiàn)
[1] 任劍勇.基于目錄服務(wù)技術(shù)的應(yīng)用開發(fā)[J].計算機(jī)應(yīng)用研究,2001(5):143-145.
[2] 宋晶晶,王衛(wèi)軍,付曉江.基于LDAP目錄服務(wù)和Java技術(shù)的郵件系統(tǒng)[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2003(2):92-96.
[3] 趙明,郭常杰,盧文龍,等.基于lDAP的目錄服務(wù)器的研究與實現(xiàn)[J].計算機(jī)科學(xué),2000,27(5):84-87.
[4] 孫立鈞,鐵嶺,楊昭璐.公共信息模型在ldap目錄中的映射設(shè)計[J].通信技術(shù),2003(6):54-57.
[5] 梁晉,施仁,梁峰,等.Windows 2000活動目錄技術(shù)[J].計算機(jī)應(yīng)用研究,2000(35):96-100.
[6] 黃亞平.windows 2000的目錄服務(wù)和動態(tài)DNS[J].微機(jī)發(fā)展,2001(5):42-45.
[7] 張恒鋒,蔡軻.ADSI在Windows 2000權(quán)限管理中的應(yīng)用[J].計算機(jī)與現(xiàn)代化,2003(10):88-90.
[8] 王安俊,劉萍,武濤.Windows 2000活動目錄技術(shù)的分析與研究[J].計算機(jī)工程與設(shè)計,2003(4):21-24.
[9] 劉向東.用Java開發(fā)CORBA式應(yīng)用程序[J].電腦開發(fā)與應(yīng)用,2000(6):6-8.
[10] 孫麗萍,王新,劉志俊.異構(gòu)環(huán)境中統(tǒng)一用戶管理的研究與規(guī)劃[J].計算機(jī)工程與應(yīng)用,2005(32).
