应用开源软件
西安交通大学本着统一规划、分步实施、平台先行、应用一体、面向服务的建设思路,提出了建设数字化校园的总体方案。其中“统一认证与授权平台” 提供了用户集中管理,集中授权和联邦式多认证系统的解决方案;“统一数据交换平台”通过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月刊