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

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