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