Sakai 10 系统需求
操作系统选择
Sakai是操作系统中立的。可以安装在绝大多数的Linux发行版上。常见的Linux发行版包括CentOS,Debian GNU/Linux,Fedora,Gentoo Linux,Red Hat Enterprise Linux (RHEL),SUSE Linux,Ubuntu。Sakai也可以运行在Mac OS X服务器,Microsoft Windows以及Sun Solaris上。Linux意外的操作系统没有被充分测试过,所有的社区测试服务器都是部署在Linux上,所以一般也建议使用Linux来部署Sakai。
Java
Sakai 10 主要在Oracle Java 7下进行测试. 但应该在Java 6(Java 1.6)环境下也可以正常运行。但编译系统至少需要JDK 6或以上版本;JDK 8环境应该也可以运行。有些文件(例如*.jsp和*.jws)需要在部署后进行编译,所以仅仅安装JRE是不够的,必须要安装JDK。
Sakai 10 (2014发布)
版本要求 Java 6+。基于 Java 7进行测试。需要使用 Java 6-8进行编译。
Sakai 11 可能需求 (2015发布)
版本要求 Java 7+。可能基于 Java 8进行测试。可能需要使用Java 7-8进行编译。
影响JRE兼容性的主要原因是引入了Java语言的新功能或新函数。
Oracle Sun Java J2SE 5.0 (Java 1.5) 已经结束了生命周期,不再被官方维护。如果您还在使用 Java 1.5,请注意相关安全问题,并升级到1.5.0_17或更新版本。
应用服务器选择
推荐使用Apache Tomcat 7,这是被充分测试的应用服务器,一般会与Apache HTTP Server这样的Web服务器一起使用。有些学校也成功使用了Windows IIS或Nginx作为Web服务器。还有一些学校(香港科技大学和瓜达拉哈拉大学)使用JBoss运行Sakai,但这里不提供相关的安装指导。在Sakai 10完成开发时,Tomcat 8依旧处于beta状态,所以没有进行过相关测试。
不再支持Websphere
数据库选择
现有Sakai生产环境中,使用最多的是MySql 5.5或更新版本,Oracle其次;已知的使用Oracle版本包括10g,11g,12c。Sakai并不局限于这两种数据库,与其它关系型数据库的集成也不是很困难。曾经有学校使用Microsoft SQL Server作为数据库,Sakai开发者中也偶尔有人建议支持PostgreSQL。但是,目前Sakai社区中没有人支持除MySQL和Oracle以外的数据库。
不再支持IBM DB2
集群,文件存储和负载均衡策略
典型的Sakai集群使用多台服务器,每个服务器上部署一个或多个Tomcat,然后还可以将这些服务器部署在Apache HTTP Server之后。其中,每个Tomcat中部署一份完整的Sakai。另外还需要部署一台数据库服务器。
将用户文件保存在数据库外是推荐的做法,但需要在Sakai的配置文件中进行设置。多数部署Sakai的学校使用NAS或SAN来存储文件。负载均衡通过Apache HTTP Server(通过mod_jk,mod_proxy,mod_proxy_balancer或mod_proxy_ajp等模块)或者负载均衡硬件(如F5 BIG-IP,NetScaler或Zeus)实现。
外部认证
Sakai可以与许多外部认证系统集成,如CAS,Kerberos,LDAP,Shibboleth,WebAuth。
与学生信息系统集成
Sakai社区中的高校成功集成过Datatel,Peoplesoft和其它高校自己编写的学生信息系统。
Sakai有几种基本的集成外部系统的方法。这几种方法可以混合使用。第一种是使用Sakai "provider" API,Sakai在运行时可以通过调用这些API获取信息,包括用户帐号,用户信息,课程信息,用户角色等。
用户帐号 API:Sakai用来确定用户是否可以登录到系统。可以用于Kerberos,Active Directory或者LDAP来进行验证用户身份。
用户信息 API: Sakai用来获取用户姓名、email等信息,获取的来源可以是LDAP或X.509。通过选择性地展示用户信息,可以保护用户隐私。
开课成信息API:Sakai用来获取课程信息、选课信息。
用户角色API:Sakai用来判定特定用户在响应站点中所处的角色。
以上API都是“拉取”API,只有在Sakai系统需要相关信息的时候,才会被调用。
如果需要将数据“推送”到Sakai,有2种方案 - 计划任务和Web Services。
Sakai通过内部叫做Quartz的系统执行批量计划任务,通过创建相关的Java类,执行数据同步任务,并通过类似cron表达式的方法按周期运行相关任务。
另一种更加普遍的方法是将相关数据通过Web Services的方法推送到Sakai。通过Web Services,可以简介访问很多Sakai的API。REST和SOAP接口可以被多种语言调用。系统管理员也可以根据实际需要创建自己的Web Services。但这种方法在数据量大时,可能会产生一定的性能问题。