西安交大基于開源軟件構(gòu)造數(shù)字校園的實(shí)踐與經(jīng)驗(yàn)
應(yīng)用開源軟件
西安交通大學(xué)本著統(tǒng)一規(guī)劃、分步實(shí)施、平臺先行、應(yīng)用一體、面向服務(wù)的建設(shè)思路,提出了建設(shè)數(shù)字化校園的總體方案。其中“統(tǒng)一認(rèn)證與授權(quán)平臺” 提供了用戶集中管理,集中授權(quán)和聯(lián)邦式多認(rèn)證系統(tǒng)的解決方案;“統(tǒng)一數(shù)據(jù)交換平臺”通過DB和Web Service等多種方式解決了異構(gòu)系統(tǒng)的數(shù)據(jù)集成問題;“集中式信息門戶平臺”(原為統(tǒng)一信息門戶平臺)解決了面向個人用戶的統(tǒng)一信息訪問入口問題,為新建系統(tǒng)提供應(yīng)用集成和跨部門業(yè)務(wù)整合(BPR)提供了良好的個人用戶訪問平臺。我們采用了開源軟件來構(gòu)建數(shù)字校園平臺。
我校相關(guān)的開源軟件詳細(xì)介紹如下:
1.目錄服務(wù)和授權(quán)系統(tǒng)數(shù)據(jù)庫采用OpenLDAP
OpenLDAP是輕型目錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP)開源軟件的實(shí)現(xiàn),由www.openldap.org 項(xiàng)目組開發(fā)和維護(hù),在其OpenLDAP許可證下發(fā)行,目前提供Windows和Linux版本。它主要包括下述4個部分:slapd是獨(dú)立的LDAP守護(hù)進(jìn)程,slurpd是單獨(dú)的LDAP更新復(fù)制守護(hù)進(jìn)程,LDAP協(xié)議的庫,相關(guān)工具軟件和示例客戶端等。
我校的數(shù)字校園的用戶信息來自不同的應(yīng)用系統(tǒng),通過建立“用戶中心系統(tǒng)”將分散的用戶資源整合成權(quán)威、可信的用戶資源信息庫。在全校范圍內(nèi)達(dá)到集中的用戶管理,避免用戶信息的過于分散和不一致。因此,設(shè)計具有百萬用戶規(guī)模的用戶數(shù)據(jù)庫,并提供給約30余個應(yīng)用系統(tǒng)提供認(rèn)證服務(wù)等,需要的技術(shù)指標(biāo)如下:
建設(shè)基于目錄的用戶個人信息查詢:基于登錄時獲得的用戶的個人身份。性能要求:對60萬用戶,一般響應(yīng)時間<1s,高峰期響應(yīng)時間<3s;
在目錄中建立用戶身份庫:要考慮未來的可擴(kuò)展性和數(shù)據(jù)來源的同步機(jī)制。用戶數(shù)量支持>150萬;
建立用戶身份庫與認(rèn)證系統(tǒng)的接口:要求具備開放性;
建設(shè)支持多種協(xié)議的認(rèn)證網(wǎng)關(guān):要能夠適合交大的實(shí)際使用情況,支持3000個以上 Radius客戶認(rèn)證請求,并同時支持上萬個同時認(rèn)證請求。
基于以上的要求,OpenLDAP無法滿足我們的要求,需要在這之上做很多的設(shè)計才能達(dá)到我們的要求,下面主要是我們的一些做法和思路:
OpenLDAP不支持事務(wù)處理:平臺的軟件開發(fā)商的架構(gòu)是在系統(tǒng)設(shè)計上,巧妙地采用了LDAP和RDB聯(lián)動的解決思路,在LDAP上實(shí)現(xiàn)快速查詢和認(rèn)證服務(wù)(30余項(xiàng)個人信息均在LDAP上),同時關(guān)系數(shù)據(jù)庫中保留了一份副本,關(guān)系數(shù)據(jù)庫和LDAP的一致性由持久層的應(yīng)用保證。
OpenLDAP性能擴(kuò)展:我們優(yōu)化了LDAP在應(yīng)用中的總體架構(gòu),通過應(yīng)用分流的方式,人為地把不同的應(yīng)用認(rèn)證和查詢請求放置在主LDAP、從LDAP 或者分區(qū)LDAP上。目前數(shù)字校園的總體LDAP服務(wù)器有三個,承擔(dān)不同應(yīng)用的服務(wù)請求。當(dāng)然,在最壞的情況下,只有一個LDAP服務(wù)器工作的時候,所有的應(yīng)用壓力全部壓到一個LDAP服務(wù)器上。這種情況下,認(rèn)證請求會得到滿足,但是用戶資料查詢等請求會壓到RDB上。
LDAP其他擴(kuò)展:特別遵守了eduPerson類的擴(kuò)展,并按照我校數(shù)據(jù)標(biāo)準(zhǔn)進(jìn)行了Schema規(guī)劃。
2.單點(diǎn)登錄服務(wù)采用YelaCAS
Yale CAS 是耶魯大學(xué)開發(fā)的單點(diǎn)登錄(Single Sign On)系統(tǒng),有如下幾個優(yōu)勢:是一個比較成熟的SSO系統(tǒng),部署起來比較簡單;該開源社區(qū)一直比較活躍;一些商業(yè)產(chǎn)品也是基于CAS改進(jìn)的,支持的客戶端軟件比較豐富;支持目前所有的主流開發(fā)平臺,與uPortal結(jié)合的非常好。
3.門戶服務(wù)采用JA-SIG uPortal
uPortal是由JA-SIG開發(fā)的是開放源碼的門戶平臺,基于Java, XML, and XSL項(xiàng)目。目前的發(fā)行版包括WEB服務(wù)頻道,權(quán)限,用戶組管理等等。UPortal讓你可以自己增加你需要的新特性。它著眼于高等教育機(jī)構(gòu),一些商業(yè)組織也用它來作為構(gòu)建協(xié)同社區(qū)的框架。uPortal總體來說有如下幾個優(yōu)點(diǎn):
uPortal完全支持JSR-168標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)使得目前流行的Java門戶應(yīng)用得到很好的支持;
在北美和世界上幾百個大學(xué)得到廣泛的應(yīng)用,實(shí)踐證明比較適合高校數(shù)字校園;
對于saki、model、Bb等教學(xué)管理軟件的集成有現(xiàn)成的模塊支持,并在很多大學(xué)應(yīng)用良好。
當(dāng)然,uPortal還具有如下的缺點(diǎn):
在2.x版本的時候,對于用戶的定制功能做的不是很好,如不支持拖拽;目前在3.0版本以后得到改善,但是相比商業(yè)portal服務(wù)器還是有一定的差距;
特別相比Windows的SPS服務(wù)器支持較差,可以參考的技術(shù)文檔不是很豐富,除教學(xué)管理外的開發(fā)組件相比商業(yè)門戶軟件也不是很豐富;
uPortal本身的信息統(tǒng)計、訪問統(tǒng)計等還沒有設(shè)計,我們自行開發(fā)了相關(guān)的軟件來獲取用戶使用情況統(tǒng)計。
4.數(shù)據(jù)交換ETL工具采用kettle
Kettle的意思是水壺。按項(xiàng)目負(fù)責(zé)人Matt的說法:把各種數(shù)據(jù)放到一個壺里,然后以一種你希望的格式流出。該系統(tǒng)具有如下的優(yōu)點(diǎn):
可以媲美商業(yè)產(chǎn)品的ETL工具軟件包;
支持可視化ETL設(shè)計,提供了基于Java的圖形化界面,使用很方便;
支持Javascripts編程,可以進(jìn)行復(fù)雜的數(shù)據(jù)轉(zhuǎn)換定制。
該系統(tǒng)最大的缺點(diǎn)只是一個——ETL工具不能滿足數(shù)據(jù)交換的全部需求,因此根據(jù)我們的數(shù)字校園建設(shè)需求,合作公司為我們開發(fā)了基于該系統(tǒng)的元數(shù)據(jù)管理系統(tǒng)以及數(shù)據(jù)交換監(jiān)視系統(tǒng)。通過這兩個系統(tǒng)的完善,使得數(shù)據(jù)交換的管理和監(jiān)控以及數(shù)據(jù)標(biāo)準(zhǔn)的規(guī)范管理得以實(shí)現(xiàn)。
5. 應(yīng)用服務(wù)器采用JBoss
JBoss是一個基于J2EE的應(yīng)用服務(wù)器。因?yàn)镴Boss代碼遵循LGPL許可,你可以在任何商業(yè)應(yīng)用中免費(fèi)使用它,而不用支付費(fèi)用。2006年,該項(xiàng)目被知名的美國Redhat公司收購,由于很多高校已經(jīng)使用該系統(tǒng)作為主要的應(yīng)用服務(wù)器,我們簡單總結(jié)其特點(diǎn)如下:
JBoss支持應(yīng)用集群功能,基于它的集群功能,使得我們節(jié)約了應(yīng)用負(fù)載均衡設(shè)備;
JBoss效率很高,較小的內(nèi)存和硬盤空間足夠運(yùn)行一個應(yīng)用服務(wù)器,我們推薦在16GB以上內(nèi)存的IA32架構(gòu)的服務(wù)器上使用多個實(shí)例部署JBoss;
安裝簡單、支持熱部署,和Web服務(wù)器在同一個JVM中運(yùn)行,這樣Servlet調(diào)用EJB不經(jīng)過網(wǎng)絡(luò),從而大大提高運(yùn)行效率,提升安全性能;
JBoss是開源并且免費(fèi)的;
很多項(xiàng)目都使用JBoss作為應(yīng)用服務(wù)器,成熟度很高,技術(shù)支持文檔很容易獲取。
6.操作系統(tǒng)主要采用國產(chǎn)Linux
Linux作為服務(wù)器操作系統(tǒng)的優(yōu)點(diǎn)我們無須多講,我們在項(xiàng)目中使用國產(chǎn)某DC版本的Linux,主要基于以下幾個因素考慮:
由于IA-32服務(wù)器使用的芯片組較新,在驅(qū)動支持上,國產(chǎn)的Linux可以提供更多的支持;
我校數(shù)字校園使用的存儲系統(tǒng)是2004年1月采購的HP EVA5000設(shè)備,在多路徑和設(shè)備的支持上,國產(chǎn)Linux能夠提供較好的實(shí)施經(jīng)驗(yàn)。這個在后期的系統(tǒng)總體集成上顯示了優(yōu)勢;
國產(chǎn)Linux的功能、性能、穩(wěn)定性、安全性等方面跟其他Linux基本一致。
使用感受
我校的數(shù)字校園支撐平臺項(xiàng)目在2007年上線和驗(yàn)收后,目前已經(jīng)運(yùn)行了一年多時間,有近6萬多用戶,8個大的MIS系統(tǒng)和12個中等規(guī)模的業(yè)務(wù)系統(tǒng)均架構(gòu)在該平臺上。我們在該平臺上獨(dú)自開發(fā)了6個小規(guī)模的業(yè)務(wù)系統(tǒng),3個跨部門的校級業(yè)務(wù)流程整合系統(tǒng)。在運(yùn)行和開發(fā)上,認(rèn)為采用開源軟件建設(shè)數(shù)字校園優(yōu)缺點(diǎn)如下。
優(yōu)點(diǎn)
1. 降低總體擁有成本(TCO)
由于全面采用了開源軟件的面向服務(wù)架構(gòu)(SOA)的支撐平臺,為學(xué)校節(jié)省了上百萬元的(參考同等規(guī)模兄弟院校的建設(shè)情況)SOA平臺軟件費(fèi)用。同時,開源軟件絕大多數(shù)支持Linux和IA32架構(gòu)的服務(wù)器,這些服務(wù)器通用、價格便宜。在數(shù)字校園平臺上,我們采購了8臺高端IA32服務(wù)器,每臺配置四顆多核心處理器,16GB內(nèi)存。還有一臺刀片中心(全部刀片加起來有44GB內(nèi)存)提供數(shù)據(jù)交換服務(wù)。這些IA32架構(gòu)的服務(wù)器價格在100萬以下。這么多的服務(wù)器加起來的價格均只有一半的安裝商業(yè)成件的Oracle RAC(采用了IBM Power架構(gòu)服務(wù)器)服務(wù)器所需要的花費(fèi)。這些服務(wù)器配件價格相對低廉,配件通用,生產(chǎn)和銷售量均很大,是普通高校數(shù)字校園理想的硬件解決方案。
同時由于整體數(shù)字校園采用了多廠家開發(fā),自行集成的模式,在數(shù)字校園的總體解決方案上,也節(jié)省了幾十萬的系統(tǒng)集成費(fèi)用。
當(dāng)然,服務(wù)器的OS均采用了Linux,所以服務(wù)器OEM的Linux操作系統(tǒng)的成本也很低廉,而且擁有Linux的代碼,容易擴(kuò)展和定制。一定程度上降低了接入其他應(yīng)用軟件的成本,如可以采用免費(fèi)的VPN、Radius、CA等應(yīng)用解決方案。
這些軟件均由開源社區(qū)維護(hù)和支持,降低了學(xué)校對軟件平臺的年維護(hù)費(fèi),減少了在學(xué)校IT應(yīng)用通用軟件方面的投資,這些投資可以用于其他IT開支。
2. 軟件性能易擴(kuò)展
我們在VPN、OpenLDAP、YelaCAS、uPortal和 JBoss方面均進(jìn)行了定制開發(fā),這些定制開發(fā)最核心的需求是性能方面的需求。我們知道,軟件的性能方面,主要集中在集成環(huán)境的壓力測試點(diǎn)所需要的性能,所以在對開源解決方案的架構(gòu)了解或者運(yùn)行觀察一定時間后,能夠發(fā)現(xiàn)開源軟件的性能瓶頸,從而定制開發(fā)出滿足大量用戶需求的系統(tǒng)。
3.能夠自主掌握數(shù)字校園話語權(quán)并鍛煉隊(duì)伍
數(shù)字校園話語權(quán)是否一定需要自主,這個是一個很難辯論清楚的問題。但是我校地處西北,學(xué)校辦學(xué)經(jīng)費(fèi)和信息化建設(shè)方面的持續(xù)投資捉襟見肘,因此自主掌握數(shù)字校園話語權(quán),能夠及時地提供實(shí)時IT服務(wù)(主要是快速開發(fā)應(yīng)用的能力)、降低應(yīng)用系統(tǒng)的投資和維護(hù)費(fèi)用、同時又能夠通過學(xué)校的信息化建設(shè)為學(xué)校的教學(xué)、科研和管理服務(wù)提供支持。所以學(xué)校決策層做出了通過 IT服務(wù)部門的隊(duì)伍建設(shè)和項(xiàng)目建設(shè)逐漸掌握學(xué)校數(shù)字校園建設(shè)的話語權(quán)和自主權(quán)的重要策略。
隊(duì)伍建設(shè)也是學(xué)校IT服務(wù)部門的工作重點(diǎn)之一,我校通過各種方式進(jìn)行了隊(duì)伍建設(shè)、隊(duì)伍的技術(shù)能力培養(yǎng),極大地提高了技術(shù)骨干的技術(shù)水平。
4.軟件開源化大勢所趨
SOA從2005年到現(xiàn)在提得已經(jīng)很火熱了,目前修飾SOA的是“開源化SOA”這個名詞,這個名詞代表了主流軟件從業(yè)人員順應(yīng)軟件開源的一個具體案例。目前越來越多的軟件廠家已經(jīng)接受了一個事實(shí):軟件的價值之一是開放該軟件的源代碼。預(yù)計將來購置的軟件中,其中重要文檔之一是這個軟件開放的部分或全部代碼。開源軟件成功的商業(yè)應(yīng)用,如Apache、開源Linux等開源項(xiàng)目使得越來越多的用戶意識到開源的重要性。當(dāng)然開源不一定代表了免費(fèi)或者濫用,但是對于軟件維護(hù)人員,一個開源軟件在跟蹤調(diào)試時,能夠給出維護(hù)管理人員更多的調(diào)試方法和支持信息。所以,加上十多年的從業(yè)經(jīng)驗(yàn),我們簡單地認(rèn)定,軟件開源化是大勢所趨。開源化SOA應(yīng)該成為學(xué)校數(shù)字校園項(xiàng)目招標(biāo)書提及到的詞匯之一。
不過,開源軟件的實(shí)施,也會讓用戶深切體會到有不利的方面。
不足
1.整體系統(tǒng)集成困難
由于我校數(shù)字校園牽扯到數(shù)字校園平臺、安全設(shè)備、存儲設(shè)備、備份設(shè)備、各個子系統(tǒng)的部署方案等。整體數(shù)字校園平臺和應(yīng)用系統(tǒng)由六七家廠家實(shí)施。因此實(shí)施的難度較高、協(xié)調(diào)工作量較大、對各個廠家工作范圍的界定要求要清晰。特別是各個廠家之間扯皮時,一定分辨清楚,然后有理有據(jù)進(jìn)行交涉。采用開源軟件有時候很容易出現(xiàn)細(xì)節(jié)上的問題,而一個項(xiàng)目的成敗主要由細(xì)節(jié)決定。所以整體系統(tǒng)集成難度較大。如果技術(shù)力量較為薄弱的高校,盡量減少軟件開發(fā)公司的數(shù)量。
2. 軟件本身的支持差
前面已經(jīng)說過這方面的情況,有些軟件只有英文文檔,國內(nèi)高校實(shí)施經(jīng)驗(yàn)少,如我校實(shí)施uPortal的時候,我們調(diào)研發(fā)現(xiàn),還沒有高校采用uPortal作為門戶服務(wù)器,因此技術(shù)支持主要靠管理人員自己摸索。
3.均需要二次開發(fā)才能滿足部分功能和多數(shù)性能需求
開源軟件本身有一定的通用性,但是很多時候均為國外軟件,國外軟件的設(shè)計思維模式跟國內(nèi)不是很相同,有時候由于國外嚴(yán)格的法律要求,使得很多的功能不能具備,如牽扯到道德、隱私權(quán)等因素。同時由于多數(shù)軟件成熟度較低,功能上還不能達(dá)到商業(yè)成品的程度。但是國內(nèi)高校的應(yīng)用心理需求還是很高的,導(dǎo)致架構(gòu)師要考慮更加復(fù)雜的功能以滿足學(xué)校的需求。因此都需要進(jìn)行二次開發(fā)才能使用。
4.軟件安全性有爭議
由于軟件本身是開放源代碼,所以安全漏洞很容易被發(fā)現(xiàn)。不過也正是由于本身是開源軟件,用戶自己可以去鉆研該軟件的安全問題。所以對于最終用戶要求較高,需要用戶日積月累的投入精力進(jìn)行研究。
5. 維護(hù)工作量大
開源軟件在軟件成熟度較低的時候的可維護(hù)性一般較差,相比商業(yè)軟件,缺少人性化的管理維護(hù)工具。需要專業(yè)的技術(shù)人員做細(xì)致的維護(hù)才能使用。我校數(shù)字校園平臺建設(shè)完畢,信息網(wǎng)絡(luò)中心開發(fā)培訓(xùn)部自行開發(fā)了多個校級跨部門業(yè)務(wù)流程整合系統(tǒng),并在2007年承擔(dān)了校園一卡通系統(tǒng)建設(shè)任務(wù)和技術(shù)支持工作。所以維護(hù)工作量也是一個比較大的問題。
總體來說,我們對基于開源軟件建設(shè)數(shù)字校園持肯定態(tài)度,也希望“開源化SOA”的理念能夠深入到更多項(xiàng)目架構(gòu)師的日常討論范疇。以上內(nèi)容僅為我校通過開源軟件建設(shè)數(shù)字校園平臺過程中的一點(diǎn)思索,懇請得到同行專家的批評指正。
【編輯推薦】