西安交大基于開源軟件構(gòu)造數(shù)字校園的實(shí)踐與經(jīng)驗(yàn)

2010-08-28 10:55:03來(lái)源:西部e網(wǎng)作者:

  應(yīng)用開源軟件

  西安交通大學(xué)本著統(tǒng)一規(guī)劃、分步實(shí)施、平臺(tái)先行、應(yīng)用一體、面向服務(wù)的建設(shè)思路,提出了建設(shè)數(shù)字化校園的總體方案。其中“統(tǒng)一認(rèn)證與授權(quán)平臺(tái)” 提供了用戶集中管理,集中授權(quán)和聯(lián)邦式多認(rèn)證系統(tǒng)的解決方案;“統(tǒng)一數(shù)據(jù)交換平臺(tái)”通過DB和Web Service等多種方式解決了異構(gòu)系統(tǒng)的數(shù)據(jù)集成問題;“集中式信息門戶平臺(tái)”(原為統(tǒng)一信息門戶平臺(tái))解決了面向個(gè)人用戶的統(tǒng)一信息訪問入口問題,為新建系統(tǒng)提供應(yīng)用集成和跨部門業(yè)務(wù)整合(BPR)提供了良好的個(gè)人用戶訪問平臺(tái)。我們采用了開源軟件來(lái)構(gòu)建數(shù)字校園平臺(tái)。

  我校相關(guān)的開源軟件詳細(xì)介紹如下:

  1.目錄服務(wù)和授權(quán)系統(tǒng)數(shù)據(jù)庫(kù)采用OpenLDAP
  OpenLDAP是輕型目錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP)開源軟件的實(shí)現(xiàn),由www.openldap.org 項(xiàng)目組開發(fā)和維護(hù),在其OpenLDAP許可證下發(fā)行,目前提供Windows和Linux版本。它主要包括下述4個(gè)部分:slapd是獨(dú)立的LDAP守護(hù)進(jìn)程,slurpd是單獨(dú)的LDAP更新復(fù)制守護(hù)進(jìn)程,LDAP協(xié)議的庫(kù),相關(guān)工具軟件和示例客戶端等。
  我校的數(shù)字校園的用戶信息來(lái)自不同的應(yīng)用系統(tǒng),通過建立“用戶中心系統(tǒng)”將分散的用戶資源整合成權(quán)威、可信的用戶資源信息庫(kù)。在全校范圍內(nèi)達(dá)到集中的用戶管理,避免用戶信息的過于分散和不一致。因此,設(shè)計(jì)具有百萬(wàn)用戶規(guī)模的用戶數(shù)據(jù)庫(kù),并提供給約30余個(gè)應(yīng)用系統(tǒng)提供認(rèn)證服務(wù)等,需要的技術(shù)指標(biāo)如下:
  建設(shè)基于目錄的用戶個(gè)人信息查詢:基于登錄時(shí)獲得的用戶的個(gè)人身份。性能要求:對(duì)60萬(wàn)用戶,一般響應(yīng)時(shí)間<1s,高峰期響應(yīng)時(shí)間<3s;
  在目錄中建立用戶身份庫(kù):要考慮未來(lái)的可擴(kuò)展性和數(shù)據(jù)來(lái)源的同步機(jī)制。用戶數(shù)量支持>150萬(wàn);
  建立用戶身份庫(kù)與認(rèn)證系統(tǒng)的接口:要求具備開放性;
  建設(shè)支持多種協(xié)議的認(rèn)證網(wǎng)關(guān):要能夠適合交大的實(shí)際使用情況,支持3000個(gè)以上 Radius客戶認(rèn)證請(qǐng)求,并同時(shí)支持上萬(wàn)個(gè)同時(shí)認(rèn)證請(qǐng)求。
  基于以上的要求,OpenLDAP無(wú)法滿足我們的要求,需要在這之上做很多的設(shè)計(jì)才能達(dá)到我們的要求,下面主要是我們的一些做法和思路:
  OpenLDAP不支持事務(wù)處理:平臺(tái)的軟件開發(fā)商的架構(gòu)是在系統(tǒng)設(shè)計(jì)上,巧妙地采用了LDAP和RDB聯(lián)動(dòng)的解決思路,在LDAP上實(shí)現(xiàn)快速查詢和認(rèn)證服務(wù)(30余項(xiàng)個(gè)人信息均在LDAP上),同時(shí)關(guān)系數(shù)據(jù)庫(kù)中保留了一份副本,關(guān)系數(shù)據(jù)庫(kù)和LDAP的一致性由持久層的應(yīng)用保證。
   OpenLDAP性能擴(kuò)展:我們優(yōu)化了LDAP在應(yīng)用中的總體架構(gòu),通過應(yīng)用分流的方式,人為地把不同的應(yīng)用認(rèn)證和查詢請(qǐng)求放置在主LDAP、從LDAP 或者分區(qū)LDAP上。目前數(shù)字校園的總體LDAP服務(wù)器有三個(gè),承擔(dān)不同應(yīng)用的服務(wù)請(qǐng)求。當(dāng)然,在最壞的情況下,只有一個(gè)LDAP服務(wù)器工作的時(shí)候,所有的應(yīng)用壓力全部壓到一個(gè)LDAP服務(wù)器上。這種情況下,認(rèn)證請(qǐng)求會(huì)得到滿足,但是用戶資料查詢等請(qǐng)求會(huì)壓到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),有如下幾個(gè)優(yōu)勢(shì):是一個(gè)比較成熟的SSO系統(tǒng),部署起來(lái)比較簡(jiǎn)單;該開源社區(qū)一直比較活躍;一些商業(yè)產(chǎn)品也是基于CAS改進(jìn)的,支持的客戶端軟件比較豐富;支持目前所有的主流開發(fā)平臺(tái),與uPortal結(jié)合的非常好。

  3.門戶服務(wù)采用JA-SIG uPortal
  uPortal是由JA-SIG開發(fā)的是開放源碼的門戶平臺(tái),基于Java, XML, and XSL項(xiàng)目。目前的發(fā)行版包括WEB服務(wù)頻道,權(quán)限,用戶組管理等等。UPortal讓你可以自己增加你需要的新特性。它著眼于高等教育機(jī)構(gòu),一些商業(yè)組織也用它來(lái)作為構(gòu)建協(xié)同社區(qū)的框架。uPortal總體來(lái)說有如下幾個(gè)優(yōu)點(diǎn):  
  uPortal完全支持JSR-168標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)使得目前流行的Java門戶應(yīng)用得到很好的支持;
  在北美和世界上幾百個(gè)大學(xué)得到廣泛的應(yīng)用,實(shí)踐證明比較適合高校數(shù)字校園;
  對(duì)于saki、model、Bb等教學(xué)管理軟件的集成有現(xiàn)成的模塊支持,并在很多大學(xué)應(yīng)用良好。
  當(dāng)然,uPortal還具有如下的缺點(diǎn):
  在2.x版本的時(shí)候,對(duì)于用戶的定制功能做的不是很好,如不支持拖拽;目前在3.0版本以后得到改善,但是相比商業(yè)portal服務(wù)器還是有一定的差距;
  特別相比Windows的SPS服務(wù)器支持較差,可以參考的技術(shù)文檔不是很豐富,除教學(xué)管理外的開發(fā)組件相比商業(yè)門戶軟件也不是很豐富;
  uPortal本身的信息統(tǒng)計(jì)、訪問統(tǒng)計(jì)等還沒有設(shè)計(jì),我們自行開發(fā)了相關(guān)的軟件來(lái)獲取用戶使用情況統(tǒng)計(jì)。

  4.數(shù)據(jù)交換ETL工具采用kettle
  Kettle的意思是水壺。按項(xiàng)目負(fù)責(zé)人Matt的說法:把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種你希望的格式流出。該系統(tǒng)具有如下的優(yōu)點(diǎn):
  可以媲美商業(yè)產(chǎn)品的ETL工具軟件包;
  支持可視化ETL設(shè)計(jì),提供了基于Java的圖形化界面,使用很方便;
  支持Javascripts編程,可以進(jìn)行復(fù)雜的數(shù)據(jù)轉(zhuǎn)換定制。
  該系統(tǒng)最大的缺點(diǎn)只是一個(gè)——ETL工具不能滿足數(shù)據(jù)交換的全部需求,因此根據(jù)我們的數(shù)字校園建設(shè)需求,合作公司為我們開發(fā)了基于該系統(tǒng)的元數(shù)據(jù)管理系統(tǒng)以及數(shù)據(jù)交換監(jiān)視系統(tǒng)。通過這兩個(gè)系統(tǒng)的完善,使得數(shù)據(jù)交換的管理和監(jiān)控以及數(shù)據(jù)標(biāo)準(zhǔn)的規(guī)范管理得以實(shí)現(xiàn)。

  5. 應(yīng)用服務(wù)器采用JBoss
  JBoss是一個(gè)基于J2EE的應(yīng)用服務(wù)器。因?yàn)镴Boss代碼遵循LGPL許可,你可以在任何商業(yè)應(yīng)用中免費(fèi)使用它,而不用支付費(fèi)用。2006年,該項(xiàng)目被知名的美國(guó)Redhat公司收購(gòu),由于很多高校已經(jīng)使用該系統(tǒng)作為主要的應(yīng)用服務(wù)器,我們簡(jiǎn)單總結(jié)其特點(diǎn)如下:
  JBoss支持應(yīng)用集群功能,基于它的集群功能,使得我們節(jié)約了應(yīng)用負(fù)載均衡設(shè)備;
  JBoss效率很高,較小的內(nèi)存和硬盤空間足夠運(yùn)行一個(gè)應(yīng)用服務(wù)器,我們推薦在16GB以上內(nèi)存的IA32架構(gòu)的服務(wù)器上使用多個(gè)實(shí)例部署JBoss;
  安裝簡(jiǎn)單、支持熱部署,和Web服務(wù)器在同一個(gè)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)主要采用國(guó)產(chǎn)Linux
  Linux作為服務(wù)器操作系統(tǒng)的優(yōu)點(diǎn)我們無(wú)須多講,我們?cè)陧?xiàng)目中使用國(guó)產(chǎn)某DC版本的Linux,主要基于以下幾個(gè)因素考慮:
  由于IA-32服務(wù)器使用的芯片組較新,在驅(qū)動(dòng)支持上,國(guó)產(chǎn)的Linux可以提供更多的支持;
  我校數(shù)字校園使用的存儲(chǔ)系統(tǒng)是2004年1月采購(gòu)的HP EVA5000設(shè)備,在多路徑和設(shè)備的支持上,國(guó)產(chǎn)Linux能夠提供較好的實(shí)施經(jīng)驗(yàn)。這個(gè)在后期的系統(tǒng)總體集成上顯示了優(yōu)勢(shì);
  國(guó)產(chǎn)Linux的功能、性能、穩(wěn)定性、安全性等方面跟其他Linux基本一致。

  使用感受

  我校的數(shù)字校園支撐平臺(tái)項(xiàng)目在2007年上線和驗(yàn)收后,目前已經(jīng)運(yùn)行了一年多時(shí)間,有近6萬(wàn)多用戶,8個(gè)大的MIS系統(tǒng)和12個(gè)中等規(guī)模的業(yè)務(wù)系統(tǒng)均架構(gòu)在該平臺(tái)上。我們?cè)谠撈脚_(tái)上獨(dú)自開發(fā)了6個(gè)小規(guī)模的業(yè)務(wù)系統(tǒng),3個(gè)跨部門的校級(jí)業(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)的支撐平臺(tái),為學(xué)校節(jié)省了上百萬(wàn)元的(參考同等規(guī)模兄弟院校的建設(shè)情況)SOA平臺(tái)軟件費(fèi)用。同時(shí),開源軟件絕大多數(shù)支持Linux和IA32架構(gòu)的服務(wù)器,這些服務(wù)器通用、價(jià)格便宜。在數(shù)字校園平臺(tái)上,我們采購(gòu)了8臺(tái)高端IA32服務(wù)器,每臺(tái)配置四顆多核心處理器,16GB內(nèi)存。還有一臺(tái)刀片中心(全部刀片加起來(lái)有44GB內(nèi)存)提供數(shù)據(jù)交換服務(wù)。這些IA32架構(gòu)的服務(wù)器價(jià)格在100萬(wàn)以下。這么多的服務(wù)器加起來(lái)的價(jià)格均只有一半的安裝商業(yè)成件的Oracle RAC(采用了IBM Power架構(gòu)服務(wù)器)服務(wù)器所需要的花費(fèi)。這些服務(wù)器配件價(jià)格相對(duì)低廉,配件通用,生產(chǎn)和銷售量均很大,是普通高校數(shù)字校園理想的硬件解決方案。
  同時(shí)由于整體數(shù)字校園采用了多廠家開發(fā),自行集成的模式,在數(shù)字校園的總體解決方案上,也節(jié)省了幾十萬(wàn)的系統(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é)校對(duì)軟件平臺(tái)的年維護(hù)費(fèi),減少了在學(xué)校IT應(yīng)用通用軟件方面的投資,這些投資可以用于其他IT開支。

  2. 軟件性能易擴(kuò)展
  我們?cè)赩PN、OpenLDAP、YelaCAS、uPortal和 JBoss方面均進(jìn)行了定制開發(fā),這些定制開發(fā)最核心的需求是性能方面的需求。我們知道,軟件的性能方面,主要集中在集成環(huán)境的壓力測(cè)試點(diǎn)所需要的性能,所以在對(duì)開源解決方案的架構(gòu)了解或者運(yùn)行觀察一定時(shí)間后,能夠發(fā)現(xiàn)開源軟件的性能瓶頸,從而定制開發(fā)出滿足大量用戶需求的系統(tǒng)。

  3.能夠自主掌握數(shù)字校園話語(yǔ)權(quán)并鍛煉隊(duì)伍
  數(shù)字校園話語(yǔ)權(quán)是否一定需要自主,這個(gè)是一個(gè)很難辯論清楚的問題。但是我校地處西北,學(xué)校辦學(xué)經(jīng)費(fèi)和信息化建設(shè)方面的持續(xù)投資捉襟見肘,因此自主掌握數(shù)字校園話語(yǔ)權(quán),能夠及時(shí)地提供實(shí)時(shí)IT服務(wù)(主要是快速開發(fā)應(yīng)用的能力)、降低應(yīng)用系統(tǒng)的投資和維護(hù)費(fèi)用、同時(shí)又能夠通過學(xué)校的信息化建設(shè)為學(xué)校的教學(xué)、科研和管理服務(wù)提供支持。所以學(xué)校決策層做出了通過 IT服務(wù)部門的隊(duì)伍建設(shè)和項(xiàng)目建設(shè)逐漸掌握學(xué)校數(shù)字校園建設(shè)的話語(yǔ)權(quán)和自主權(quán)的重要策略。
  隊(duì)伍建設(shè)也是學(xué)校IT服務(wù)部門的工作重點(diǎn)之一,我校通過各種方式進(jìn)行了隊(duì)伍建設(shè)、隊(duì)伍的技術(shù)能力培養(yǎng),極大地提高了技術(shù)骨干的技術(shù)水平。

  4.軟件開源化大勢(shì)所趨
  SOA從2005年到現(xiàn)在提得已經(jīng)很火熱了,目前修飾SOA的是“開源化SOA”這個(gè)名詞,這個(gè)名詞代表了主流軟件從業(yè)人員順應(yīng)軟件開源的一個(gè)具體案例。目前越來(lái)越多的軟件廠家已經(jīng)接受了一個(gè)事實(shí):軟件的價(jià)值之一是開放該軟件的源代碼。預(yù)計(jì)將來(lái)購(gòu)置的軟件中,其中重要文檔之一是這個(gè)軟件開放的部分或全部代碼。開源軟件成功的商業(yè)應(yīng)用,如Apache、開源Linux等開源項(xiàng)目使得越來(lái)越多的用戶意識(shí)到開源的重要性。當(dāng)然開源不一定代表了免費(fèi)或者濫用,但是對(duì)于軟件維護(hù)人員,一個(gè)開源軟件在跟蹤調(diào)試時(shí),能夠給出維護(hù)管理人員更多的調(diào)試方法和支持信息。所以,加上十多年的從業(yè)經(jīng)驗(yàn),我們簡(jiǎn)單地認(rèn)定,軟件開源化是大勢(shì)所趨。開源化SOA應(yīng)該成為學(xué)校數(shù)字校園項(xiàng)目招標(biāo)書提及到的詞匯之一。

  不過,開源軟件的實(shí)施,也會(huì)讓用戶深切體會(huì)到有不利的方面。

  不足

  1.整體系統(tǒng)集成困難
  由于我校數(shù)字校園牽扯到數(shù)字校園平臺(tái)、安全設(shè)備、存儲(chǔ)設(shè)備、備份設(shè)備、各個(gè)子系統(tǒng)的部署方案等。整體數(shù)字校園平臺(tái)和應(yīng)用系統(tǒng)由六七家廠家實(shí)施。因此實(shí)施的難度較高、協(xié)調(diào)工作量較大、對(duì)各個(gè)廠家工作范圍的界定要求要清晰。特別是各個(gè)廠家之間扯皮時(shí),一定分辨清楚,然后有理有據(jù)進(jìn)行交涉。采用開源軟件有時(shí)候很容易出現(xiàn)細(xì)節(jié)上的問題,而一個(gè)項(xiàng)目的成敗主要由細(xì)節(jié)決定。所以整體系統(tǒng)集成難度較大。如果技術(shù)力量較為薄弱的高校,盡量減少軟件開發(fā)公司的數(shù)量。

  2. 軟件本身的支持差
  前面已經(jīng)說過這方面的情況,有些軟件只有英文文檔,國(guó)內(nèi)高校實(shí)施經(jīng)驗(yàn)少,如我校實(shí)施uPortal的時(shí)候,我們調(diào)研發(fā)現(xiàn),還沒有高校采用uPortal作為門戶服務(wù)器,因此技術(shù)支持主要靠管理人員自己摸索。

  3.均需要二次開發(fā)才能滿足部分功能和多數(shù)性能需求
  開源軟件本身有一定的通用性,但是很多時(shí)候均為國(guó)外軟件,國(guó)外軟件的設(shè)計(jì)思維模式跟國(guó)內(nèi)不是很相同,有時(shí)候由于國(guó)外嚴(yán)格的法律要求,使得很多的功能不能具備,如牽扯到道德、隱私權(quán)等因素。同時(shí)由于多數(shù)軟件成熟度較低,功能上還不能達(dá)到商業(yè)成品的程度。但是國(guó)內(nèi)高校的應(yīng)用心理需求還是很高的,導(dǎo)致架構(gòu)師要考慮更加復(fù)雜的功能以滿足學(xué)校的需求。因此都需要進(jìn)行二次開發(fā)才能使用。

  4.軟件安全性有爭(zhēng)議
  由于軟件本身是開放源代碼,所以安全漏洞很容易被發(fā)現(xiàn)。不過也正是由于本身是開源軟件,用戶自己可以去鉆研該軟件的安全問題。所以對(duì)于最終用戶要求較高,需要用戶日積月累的投入精力進(jìn)行研究。

  5. 維護(hù)工作量大
  開源軟件在軟件成熟度較低的時(shí)候的可維護(hù)性一般較差,相比商業(yè)軟件,缺少人性化的管理維護(hù)工具。需要專業(yè)的技術(shù)人員做細(xì)致的維護(hù)才能使用。我校數(shù)字校園平臺(tái)建設(shè)完畢,信息網(wǎng)絡(luò)中心開發(fā)培訓(xùn)部自行開發(fā)了多個(gè)校級(jí)跨部門業(yè)務(wù)流程整合系統(tǒng),并在2007年承擔(dān)了校園一卡通系統(tǒng)建設(shè)任務(wù)和技術(shù)支持工作。所以維護(hù)工作量也是一個(gè)比較大的問題。

  總體來(lái)說,我們對(duì)基于開源軟件建設(shè)數(shù)字校園持肯定態(tài)度,也希望“開源化SOA”的理念能夠深入到更多項(xiàng)目架構(gòu)師的日常討論范疇。以上內(nèi)容僅為我校通過開源軟件建設(shè)數(shù)字校園平臺(tái)過程中的一點(diǎn)思索,懇請(qǐng)得到同行專家的批評(píng)指正。

  (作者單位為西安交通大學(xué)信息與網(wǎng)絡(luò)中心)

  來(lái)源:《中國(guó)教育網(wǎng)絡(luò)》2009年5月刊

關(guān)鍵詞:西安

贊助商鏈接: