高校统一门户的设计与实现 联系客服

发布时间 : 星期三 文章高校统一门户的设计与实现更新完毕开始阅读586674ec5ef7ba0d4a733bfd

Portlet API是在Servlet API的基础上开发的,因此这两者有很多相似性,编写Portlet也类似于编写Servlet,只是需要额外遵循一些规范。Portlet本身不保存用户信息,而是存储在用户会话中,因此一个实例可以服务于多个用户。

Portlet由于需要通过Portal来接收请求和返回结果、存取用户信息、与其他Portlet交互,也会通过Portal来控制用户访问Portlet以及Portlet访问远程服务的权限,因此,Portlet API也规范了这些操作的接口。

2.5 Portal的内容服务

一般而言,对于每个需要连入Portal服务器的系统来说都要提供一个标准的Portlet程序,以便方便的融入Portal系统。然而有些系统并不愿意为单独的Portal服务器编写Portlet,因为这将花费他们的工作量,而且应用范围比较狭窄,或者有些系统可能提供的接口会经常调整改变,因此提供的Portlet将会不断的需要修改,并且Portal需要能够整合互联网上的大量已有信息,这些问题都导致了Portal需要能有更加强大的内容集成功。

在Simple Object Access Protocol(SOAP)、Web Service Description Language(WSDL)、Universal Description and Discovery Interface(UDDI)三个基本技术标准的支持下,Web Service能够极大的促进程序间的交互性和可移植性。即使服务程序位于不同的平台,用不同的语言编写,都可以通过SOAP来进行交互,穿越不同平台和防火墙,发送程序间所需要的信息,甚至是调用别人的Web Service服务,或者把别人提供的Web Service集成到自己的服务中来,有了这种跨语言,跨平台的特性,Web Service可以说是一种基于web的更通用的可复用组件[ 3 ]。

现在,越来越多的网站都向外提供Web Service,Portal通过Portlet也能与Web Service进行交互,从而利用网上的信息资源。由于每个Web Service都向外提供了WSDL文件,描述该服务提供的功能和操作接口[ 4 ]。因此,Portal需要编写一个特定的Portlet,来展现Web Service提供的功能。例如为了利用一个火车查询系统的Web Service,这个Portlet需要编写一个交互的界面,接收用户的输入请求,通过SOAP向远程Web Service发送查询请求,然后接收返回请求再呈现给客户。象这样的Web Service注重的是提供数据和操作接口,不包括任何用户交互和表示功能,因此,对于每一个Web Service就得提供一个专门的Portlet来与该服务提供的接口进行交互。

2.6 Portal的安全措施

我们设计的Portal服务器是一个基于Java的系统,因此可以利用标准的Java Security API提供的大量安全性应用功能,也可以执行Java认证与授权服务(JAAS)架构,以使应用程序独立于安全性机制之外。在Portal的安全措施研究中涉及到认证、授权和日志记录等,其中认证和授权在我们前面的关于CA的论文中已经有所涉及。

目前通常采用的用户认证方法包括用户名和密码认证、双要素认证、一次性密码(One Time Password,OTP)认证和单一登录(Single Sign On,SSO)认证。有些时候,因为会面对不同级别的数据,需要不同级别的保护,可能会联合使用其中的多种认证方法。

在我们的Portal中,一般采用了用户名/密码认证和数字证书方式认证两种认证方法,用户可以根据自己使用需要的安全程度来选择这两种方法的一种。而ePass认证令牌则能够在通过USB口插入计算机后,浏览器能自动识别令牌中的证书,并且在同Portal服务器建立连接时使用该证书,当然在这个过程中需要用户输入认证令牌的密码。在认证令牌拔出计算机后,该证书也将不再存在于该台机器。

在用户通过认证进入Portal系统之后,系统必须确保用户拥有足够的权限来执行所需的操作,这就是授权。用户在访问系统数据或功能时可以具有几个级别的权限,这些权限是管理员据个人所获许可而授予用户访问系统内信息的。授权通常是通过系统中的访问控制列表(ACL)来实现,ACL包括权限列表,系统可以根据这些权限判断用户对目标是否能进行读写以及执行等不同操作。访问控制措施可以根据多种标准来实现,例如基于用户身份、基于角色、基于时间或者基于事务。

Portal在确定用户身份之后,会向CertServer服务器请求该人的角色和访问控制表,由于一个访问后台服务的Portlet会对应于后台系统的一个服务,因此根据CertServer服务器返回的信息就可以决定该授权用户可以操作哪些Portlet。Portal的集成模块和页面管理模块也根据这些信息决定用户可以看见的Portlet列表。

5

为了保证Portal的安全性与提供审计信息,类似于CertServer的日志记录,还需要为Portal服务程序的关键性操作(例如用户登录、退出、修改配置等)使用Log4j方式提供了日志记录信息。

3 统一门户与其它系统的整合

为了解决高校信息系统建设遇到的问题,一般有两类解决方案:(1)更换或改造现有应用系统,使其具备信息共享、业务协同、支持决策等的功能;(2)建设高校信息门户,进行信息整合。前者投资巨大,需要废弃一些已建成的应用系统而造成资金浪费,需要为改造现有应用系统支付巨额费用,而且方案实施漫长,风险较大,所以高校对此方案持谨慎态度。而后者将异构分散的非结构化数据(文件、图纸、图片、录像等)、异构的结构化数据(数据库等)管理利用,集成不同应用系统(OA、HR 等),为所有者提供更高的资源管理、挖掘、展现手段的过程和方法,信息整合的目标是消灭信息孤岛,并在新的信息交换与共享平台基础上开发新的应用,实现信息资源的最大增值[ 7 ]。

信息整合将提供内容管理、内容整合、数据整合、应用整合、流程整合等功能。利用整合技术建设高校信息门户、整合信息资源的最终目标为:

? 将分散、异构的信息资源集成在一起,使得所有数字化校园的用户可以共享使用。 ? 对分散、异构的内容进行整合,实现统一采集、统一编辑、统一校对、统一发布。

? 对分散异构的数据进行整合,形成统一的可以方便查询与管理的虚拟数据库,方便不同用户对数据

的高效率使用,辅助管理者决策。提高决策的正确率和及时性。

? 对不同的应用系统实现业务逻辑级的集成,使得各个应用系统可以从流程层面实现互联互通。

信息门户系统具有非常全面的后台集成特性,使得集成事件、应用和数据到门户中更为容易。这就意味着用户不需要重新构建已有系统和业务过程。不管以前所选择的厂商和体系接口如何,信息门户系统的开放式体系结构鼓励再用和集成所有已有的业务应用的基础架构,图5是统一信息门户系统信息集成管理示意图。这使得成功实施门户更为快速,可最充分地利用已有知识、最灵活地适应未来变化。

支撑平台认证服务器输出层浏览器手机PDA目录服务器表现层信息整合平台界面管理门户零件用户管理报表个性化应用服务器交互层流程管理操作分类数据分析全文检索定时更新WEB SERVICE服务器WEB服务器整合层内容整合数据整合软件整合数据库接入层操作系统内容接入网关数据接入网关软件接入网关计算机系统信息层非结构化数据结构化数据应用网络硬件网站资料CAPPERPCANOADCS文档FCSHR设备输出图像CAD信息源MES 图5 统一信息门户系统信息集成管理示意图

高校的信息源有三类:结构化数据、非结构化数据和应用系统。结构化数据指数据库、软件或设备输出规范格式数据等;非结构化数据指文件、图片、多媒体等;应用系统包括高校内部和外部的应用系统。结构化数据、非结构化数据和应用系统分别通过各种接口接入信息门户,经过信息整合的内容整合、数据整合和软件整合后,最终以个性化形式展现给用户,信息门户系统支持浏览器、手机、PDA 等多种访问方式。

具体到整合的实现,大部分信息被封装为Portlet 发布到门户平台,在发布Portlet 的同时将该Portlet

6

的注册信息加入到用户权限数据库,由管理员将其对用户授权使用。用户在使用门户平台的过程中,首先通过授权服务接口从授权服务系统中获取授权可以访问的Portlet 集,然后可以选择Portlet以在用户的门户网站页面上显示,并可以作为相应的页面编辑。统一信息门户系统是一个模块化整合平台,其中包括了若干平台产品,可以根据用户的不同需求进行组合,满足各层次整合需求,各层次整合包括:

(1)内容级整合

如果处于“管理信息化”阶段,或信息化资金不充足,可以进行内容级整合,组合信息门户,满足高校最基本的整合需求。主要实现如下功能:有效管理非结构化数据;为师生员工提供个性化信息服务,方便师生员工有效组织、利用信息资源。

(2)数据级整合

信息化水平较高的高校,应进行数据级整合,组合信息门户,为高校战略经营决策提供支持。主要实现如下功能:为师生员工提供个性化信息服务,方便师生员工有效组织、利用信息资源;综合利用高校数据资源,为高校领导的战略决策提供数据支持。

(3)应用级整合

如果高校的管理信息系统已建设完善,应进行应用级整合,组合信息门户,为高校管理决策提供支持。主要实现如下功能:为师生员工提供个性化信息服务,方便师生员工有效组织、利用信息资源;整合各应用系统页面,为管理人员管理决策提供参考;应用系统协同工作,使决策执行自动化。

4 eNJU门户平台构建与实现

南京大学研制和开发的南京大学统一信息集中与发布平台作为学校的门户是数字化南大eNJU很重要的一部分,其是构架在开源门户平台Jetspeed之上的企业级Portal。

4.1 Jetspeed

Jetspeed可以支持多种类型的Portal和设备开放的企业级portal框架;使用基于模版的布局,包括Jsp和Velocity;支持通过OCS(Open Content Syndication)进行远程XML内容的提交;定制默认主页的配置;用户的数据库和LDAP认证;具有支持快速页面显示的内存缓冲机制;提供RSS(Rich Site Summary),支持内容组合;同Conoon、WebMacro和Velocity集成,从而可以使用最新的XML/XSL技术进行开发;支持WML(Wireless Markup Language);支持基于XML的Portlets注册配置;完全的Web应用程序存档(WAR)和Web应用程序开发支持;支持远程内容的局部缓冲;基于用户,安全(群组,角色和访问控制列表),媒体类型和语言来访问Portal页面;为所有的Portlet提供一致性的服务,方便的存储每个用户,页面和Portlet的信息;支持Skin属性,从而用户可以选择颜色和显示属性;提供定制器(Customizer),为个人页面提供选择Portlet和定义布局;通过Jetspeed的安全Portlet来进行用户,群组,角色和许可权的管理,并提供基于角色安全来访问Portlet[ 6 ]。 为实现这些特性Jetspeed中的主要组件包括:

(1)Cache

为了能够订阅和发布远程的XML内容,则就必须对信息进行局部的缓冲,磁盘缓冲机制对获取的内容进行处理,并且不断地对内容进行更新。为了确保性能和可靠性,所有的Jetspeed代码都使用了该机制。

磁盘缓冲下载远程的URLs后,将它们以文件形式存放在局部文件系统中。局部的URLs将从Web服务器上获取服务,从Web服务器上获取服务的静态URLs同从动态内容引擎(PHP,ASP,JSP,Servlet等)获取服务的URLs相比,有着更高的性能。Jetspeed采用了多种策略以确保已获取的内容不断被更新,如磁盘缓冲后台(Disk Cache Daemon)、请求触发、异步多数量升级、OCS间隔监测等。

(2)PSML

PSML是Portal Structure Markup Language的缩写,它用来提取和结构化Jetspeed中的内容。它由两个不同但是相关的标记(Markup)所组成。一是注册标记(Registry Markup),其用来描述所有Portal引擎可以使用的资源,二是站点标记(Site Markup),其用来描述注册文件中有的实际上能显示给某个给定用户的Portlet,也就是说,用来描述它们是如何组织形成屏幕中的结构的以及它们使用了哪个表示属性。

Portlet Registry是个中心存储库,Portal可以从中获取一个给定Portlet的更多的信息。注册表的组织类似一个单调的Portlets列表(除了条目元素外,别的都以标记语言定义),注册表中的Portlet必须有个唯一的名称。站点标记包括文件的组织以及站点元素的描述。其中注册表在单个文件中描述所有的

7

Portlets,而标记语言对每个注册用户使用一个不同的文件,并且能提供界面的定制能力。

(3)PSML数据库

PSML是基于XML的Portal标记语言,用来定义Portal视图的显示、布局和内容,在默认情况下,它被存放在文件系统中。为了定义和配置PSML,Portal管理员需要使用文本编辑器或XML编辑器来编辑相应文件系统中的文件。在当前的版本中,Jetspeed支持在不清楚PSML结构的情况下,管理员可以编辑和创建PSML资源;同时也支持PSML数据库特性,允许将PSML资源存储在与JDBC兼容的数据库中。

当配置系统去使用PSML数据库后,所有的PSML资源将存储在数据库中,并且可以在如下的一些标准运行时参数上变化:用户、角色、群组、媒体类型、语言、国家、页面名称等。

使用PSML数据库可以拥有大量用户,增强性能和分布式处理,将Jetspeed同一个已经存在的数据库系统进行安全集成,并可以将将所有的Portlets信息放入一个公共的安全的数据存储体中。但是使用PSML数据库也存在着一些问题,如Portal系统的加载和运行依靠该数据库,慢速的数据库可能会影响系统的性能,复杂性增加等。

4.2 eNJU Portal系统框架

南大信息平台以Jetspeed为技术框架,遵循J2EE的三层体系结构[ 2 ],即表示层,商业逻辑层和数据层。这些,Jetspeed都有很好的支持,因此我们可以遵照Jetspeed现有的体系结构来构建本项目的系统结构,系统的整体结构图如图6所示[ 8 ]。

图6 eNJU门户平台系统框架

依据J2EE的三层结构,系统可以划分为如下的三个模块:①用户界面:即J2EE结构中的表示层,它将是用户见到的图形化界面,其中提供了用户可以实现的操作,例如,选择内容,定制布局,个性化等。②与身份认证服务的联接:信息平台对用户的身份认证,以及对用户使用服务的权限管理由身份认证中

8