高校内网门户软件平台的设计与实现

本文介绍的高校内网平台软件的主要服务对象为大学教师、学生以及校外有关单位人员。其提供的服务内容也主
要围绕师生展开。现有的应用包括成绩查询教务系统、一卡通校园卡消费查询,以及更加复杂的办公自动化(Office Automation,OA)流程管理系统等。在本文中,我们将分别从系统软硬件架构两方面来阐述高校内网门户软件平台(基于东软产品),并对其设计的优劣提出评价。

1 软件分析
高校内网门户软件平台其主要目的是建立高校各个业务软件系统的汇聚中心,通过*认证服务[1](Cent ral
Authentication Service,CAS)间接联入集成其他业务系统,并利用其灵活的模块化的界面管理功能,有选择地摘取其他业务系统的相关信息并显示在主界面上,例如公共通知、邮件信息、校内新闻、个人办公房产等等。高校内网门户软件平台同时还自带一些常用服务功能,例如:万年历、站内信等等。这些功能可能与某些业务系统有重叠,在该软件的部署实施过程中,软件开发团队将根据客户情况进行选择,然后针对特定需求对程序进行修改。这些需求就要求校园内网平台具备良好的可扩展性、灵活的界面特征。根据观察和分析,东软的产品基本上兼备了较好的可扩展性和一定的界面灵活性。

1.1 软件系统框架分析
东软研发的这款高校内网门户软件平台在系统整体架构方面是典型的多层Web应用,这种分层式架构有利于软件
应用的更改和发布。在此 Web应用程序中,有两个程序同时运行:( 1)存在于服务器上并响应 HTTP请求的代码。( 2)存在于浏览器中并响应用户输入的代码。哪些代码应该在服务器上运行,哪些代码在浏览器端执行,是Web开发人员在开始编写应用程序时必须决定的许多问题之一。在东软公司制作的此款高校内网平台软件中,服务器端代码具备以下特征:服务器端的语言/框架如Java或C#,这些代码应该在服务器上运行并响应HTTP创建用户最终看到的页面,这一部分内容是由在网络服务器apache上运行的Java产生HTMLl发送到浏览器,产生的HTMLl与JavaScript配合后运行。服务器端的语言还生成XML或者Json等纯数文件,提供并配合JavaScript 使用,其他还包括存储持久性数据文件或户配置文件。以上是服务器端代码特征,而客户端代码则应具备以下特征,首先其所使用的语言包括:HTMLL,CSS和JavaScript,在此基础上,还有许多第三方开发的基于[CSS[HTMLLJS]语言的框架和类库可以使用,最后由用户浏览器解析成展示内容。

1.2 软件代码分析
高校内网平台软件服务器端的Java程序开发主要遵循SOLID原则,当设计类和模块时,遵守 SOLID原则[2]可以让软件更加健壮和稳定。
S—SR P单一职责原则,表明一个类有且只有一个职责。一个类就像容器一样,它能添加任意数量的属性、方法
等。然而,如果你试图让一个类实现太多,很快这个类就会变得笨重。
O—OCP开放封闭原则指出,一个类应该对扩展开放,对修改关闭。
L—LSP里氏替换原则指出,派生的子类应该是可替换基类的,也就是说任何基类可以出现的地方,子类一定可
以出现。
I—ISP接口隔离原则,表明类不应该*采用无法使用的方法,也就是说一个接口应该拥有尽可能少的行为。
D—DIP依赖倒置原则,表明高层模块不应该依赖低层模块;相反,他们应该依赖抽象类或者接口。

1.3 数据库和数据仓库
在数据库设计上高校内网的数据库设计重复考虑到国内省属高校的组织结构,人员管理,与其他系统的数据共享和
交换,遵循国家以及教育委员会制定的数据库命名法则。该1.4 中心认证服务单点登录,东软高校内网软件的一个核心组件是CAS,它执行Web的单点登录协议,其目的是允许用户访问多个应用程序,同时只提供一次证书(例如用户ID和密码),它还允许Web应用程序在不访问用户的安全凭据(如密码)的情况下对用户进行认证。从结构上看 CAS包含两个部分:CAS Server和CAS Client。CAS Server需要独立部署,主要负责对用户的认证工作;CAS Client负责处理对客户端受保护资源的访问请求,当用户需要登录时,重定向到CASServer,东软高校内网平台 CAS 最基本的协议通信过程遵循以下流程。
(1)用户初次请求门户;( 2)门户在服务器端没有找到用户Session让用户重新定向到统一认证服务器;( 3)用户输入正确的用户名和密码;( 4)统一认证服务器让用户重新定向回门户,请注意,重新定向的地址含有一个Ticket参数;(5)(在门户返回页面之前)门户拿着Ticket请求统一认证系统,换取用户信息(一个 Ticket只能用一次);( 6)统一认证系统返回用户信息.

1.4 中心认证服务
单点登录,东软高校内网软件的一个核心组件是CAS,它执行Web的单点登录协议,其目的是允许用户访问多个
应用程序,同时只提供一次证书(例如用户ID和密码),它还允许Web应用程序在不访问用户的安全凭据(如密码)的情况下对用户进行认证。从结构上看 CAS包含两个部分:CAS Server和CAS Client。CAS Server需要独立部署,主要负责对用户的认证工作;CAS Client负责处理对客户端受保护资源的访问请求,当用户需要登录时,重定向到CAS Server,东软高校内网平台 CAS 最基本的协议通信过程遵循以下流程。
(1)用户初次请求门户;( 2)门户在服务器端没有找到用户Session让用户重新定向到统一认证服务器;( 3)用户输入正确的用户名和密码;( 4)统一认证服务器让用户重新定向回门户,请注意,重新定向的地址含有一个Ticket参数;(5)(在门户返回页面之前)门户拿着Ticket请求统一认证系统,换取用户信息(一个 Ticket只能用一次);( 6)统一认证系统返回用户信息.CAS Client与受保护的客户端软件应用(例如办公自动化系统)部署在一起,以过滤的方式保护受限制的用户资源。对于访问受保护资源的每个Web请求,CAS Client会分析该请求的HTTP请求中是否包含Ser vice Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server登录地址,并传递 Service也就是要访问的目的的资源地址,以便登录成功过后转回该地址。用户在第3步中输入认证信息,如果登录成功,CAS Server随机产生一个相当长度、唯一的、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service所在地址,并为客户端浏览器设置一个Ticket Granted Cookie,CAS Client在拿到Ser vice和新产生的Ticket过后,在第 5步中与 CAS Ser ver进行身份核实,以确保 Ser vice Ticket的合法性。在该协议中,所有与 CAS的交互均采用SSL协议,以确保 ST和TGC的安全性。协议工作过程中会有两次重定向的过程,但是CAS Client与CAS Server之间进行Ticket验证的过程对于用户是透明的。另外,CAS 协议中还提供了Proxy(代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。

安全和设备性能两方面,在实际的运用中,某些主机需要对外提供服务,为了更好地提供服务,同时又要有效地保护内部网络的安全。在高校内网平台软件项目中,我们将这些需要对外开放的主机与内部的众多网络设备分隔开来,根据不同的需要,有针对性地采取相应的隔离措施,这样便能在对外提供友好的服务的同时最大限度地保护了内部网络。针对不同资源提供不同安全级别的保护,可以构建一个DMZ区域[3],DMZ可以为主机环境提供网络级的保护,能减少为不信任客户提供服务而引发的危险,是放置公共信息的最佳位置。DMZ是架设在服务器与客户端之间的一个中间媒介,出于网络安全因素的考虑,在Firewall控制下不是所有的端口都能够允许被外网*访问。Corporate network中开放了https端口号443和http端口号80,而 Automation network开放了端口102,它的作用是负责Semantic communication。Automation network与Corporate network之间无法通过端口直接互联,这正是防火墙所要起到的保证网络安全的作用。为了让两个网络之间能够安全互联,DMZ起到了一个中间服务器的作用。Corporate network和Automation network可以把无安全隐患的信息放置到DMZ数据库上提供给外网访问。

2.2 反向代理负载均衡
在东软公司负责的高校内外软件平台项目中,部署了基于反向代理的负载均衡,应用软件 Nginx是一个Web服务器,它可以被用来作为反向代理服务器,负载平衡器和HTTP缓存。反向代理( Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。Nginx使用异步事件驱动的方法来处理请求,Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。HTTP代理与Web服务器特性,Nginx的编写性能明显优于Apache Web服务器。在为静态文件提供服务时,Nginx使用的内存比Apache要少得多,并且每秒可以处理大约4倍的请求。
2.3 硬件架构
东软的高校内网项目,采用流行的多层架构、Nginx网络服务器、Database服务器,此项目使用 Ngnix软件进行负载平衡,没有考虑使用硬件进行负载平衡如NetGear load balancer[4]。
3 结语
总结,东软的高校内网软件平台在代码设计上采用了当下比较先进的设计思路,兼顾了稳定,安全的需求,并考虑了扩展性和模块化。在硬件配置上考虑了用户流量的扩展,在网络规划上平衡考虑到了网络安全和用户流量,可以认为其是一款优秀的软件和比较成功的项目。

上一篇:教育信息化BYOE借无线网络畅走大学校园


下一篇:PTC借物联网全新起航 智慧的连接万物