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

简介: 高校内网门户软件平台是高校内部用户获取信息资源的最直接途径,也是连接各业务系统的重要桥梁,为兼顾系统的高性能和灵活性,内网门户软件平台本身的设计和开发就要遵循一系列原则如SOLID原则。在网络和硬件配置上,要同时考虑到用户体验和安全,所以可以考虑安装负载平衡软硬件和设置DMZ。文章对高校内网门户软件平台的设计与实现进行研究,以便为相关研究提供借鉴。关键词:内网门户软件平台;SOLID原则;DMZ;反向代理

本文介绍的高校内网平台软件的主要服务对象为大学教师、学生以及校外有关单位人员。其提供的服务内容也主
要围绕师生展开。现有的应用包括成绩查询教务系统、一卡通校园卡消费查询,以及更加复杂的办公自动化(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 结语
总结,东软的高校内网软件平台在代码设计上采用了当下比较先进的设计思路,兼顾了稳定,安全的需求,并考虑了扩展性和模块化。在硬件配置上考虑了用户流量的扩展,在网络规划上平衡考虑到了网络安全和用户流量,可以认为其是一款优秀的软件和比较成功的项目。

相关文章
|
6月前
|
小程序 数据管理 BI
智慧班牌云平台源码 智慧校园系统,家校互通小程序源码
智慧电子班牌系统包括:SaaS云平台端、智慧校园管理平台端、家长/教师微信移动端、智慧班牌学生端四大软件平台。
智慧班牌云平台源码 智慧校园系统,家校互通小程序源码
|
6月前
|
运维 监控 安全
采用云端SaaS服务的云HIS基层医院信息管理系统源码
采用云端SaaS服务的方式提供云HIS系统,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医疗机构的主要工作流程,能够与监管系统有序对接,并能满足未来系统扩展的需要。 医院信息科人的日常
82 0
|
存储 Java Linux
TeamTalk - 蘑菇街开源的一款企业办公即时通信软件
TeamTalk 是蘑菇街开源的一款企业办公即时通信软件,最初是为自己内部沟通而做的 IM 工具。团队自己的介绍如下: 2013年我们蘑菇街从社区导购华丽转身时尚电商平台,为解决千万妹子和时尚卖家的沟通问题,我们开发了自己的即时通讯软件。既然已经有了用户使用的IM,为什么我们自己公司内部沟通还要用第三方的呢?因此就有了TT(TeamTalk)的雏形,现在蘑菇街内部的在线沟通全部通过TT来完成。随着TT功能的逐渐完善,我们决定把TT开源来回馈开源社区,希望国内的中小企业都能用上开源、免费、好用的IM工具!
982 0
TeamTalk - 蘑菇街开源的一款企业办公即时通信软件
|
5月前
|
消息中间件 搜索推荐 中间件
企业门户:信息与应用的集成技术探讨
【6月更文挑战第25天】企业门户是整合内外信息与应用的关键平台,它连接企业各方并提供个性化服务。通过数据、应用和业务流程集成,实现数据共享、效率提升及成本优化。界面、控制及消息集成确保用户体验一致性与系统协同。企业门户增强竞争力,降低运营成本,是信息化建设的核心。
|
6月前
|
存储 运维 JavaScript
SaaS云HIS平台源码 采用云部署模式,部署一套可支持多家医院共同使用
通过基于SaaS模式的医院管理系统,院内的医护人员、患者可快速建立互联协同。不仅如此,通过SaaS模式提供的解决方案,医院机构可实现远程医疗,从而为不同地区的患者带来优质医疗资源,促进医疗公平。
130 5
|
Kubernetes Cloud Native 应用服务中间件
对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构
对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构
44717 19
|
人工智能 安全 数据管理
智慧校园管理平台源码 SaaS云平台
电子班牌系统应用: 通知管理、图片管理、班级考勤、综合素质评价、视频管理、考场管理、请假管理、成绩管理、个人信息、进离校管理、家长通讯录、教师通讯录、教师课表、AI智能分析、课堂点名、课堂授课、家长会签到、活动报名、积分商城、倒计时、班级德育、体温检测、放学管理、学生评价。
151 0
|
小程序 安全 Java
智慧校园电子班牌系统全套源码,前后端分离架构,SaaS云平台,私有云部署
智慧校园电子班牌系统全套源码包含:电子班牌管理系统、成绩管理系统、考勤人脸刷卡管理系统、综合素养评价系统、请假管理系统、电子班牌发布系统、校务管理系统、小程序移动端、教师后台管理系统、SaaS运营云平台。 前后端分离架构,SaaS云平台,私有云部署。 1、使用springboot框架Java+vue2 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语言开发 4、电子班牌固件安卓7.1;使用Java Android原生 5、elmentui ,Quartz,jpa,jwt
236 0
智慧校园电子班牌系统全套源码,前后端分离架构,SaaS云平台,私有云部署
|
运维 监控 安全
硬核测评!三款开发者常用的主机远程管理软件
作为一位开发者,长期以来对于家里有nas+多台主机+树莓派的我,想要ssh登到家里机器做点什么事情很繁琐,尤其没有公网IP的情况下更是繁琐。最近发现一款新的在线软件:牧云·主机管理助手。这款软件体验上比我之前的方案流畅很多。这里对我用过的几种方案做个对比,给有类似需求的人一个参考。
硬核测评!三款开发者常用的主机远程管理软件
|
自然语言处理 数据可视化 JavaScript
DLVM / 适合办公的平台管理
DLVM 是一个集数据库、逻辑、视图及模型为一体的并涵盖了常用基础套件,以 NetCore 为主的底层框架。具备安全性、可扩展性、可配置性及可视化操作等优点,并且具有一键创建模块的功能。
117 0
DLVM / 适合办公的平台管理