portal
谷梁云瀚
2023-12-01
门户网站( PORTAL )的定义
什么是 Portal (门户) ?
Portal 的组成可以分为三部份 (1) Portal Server (2) Portlet Container (3) Portlet
1) Portal Server 的定义
一个 Portal (门户网站)就是指一个 Web-based 的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个人化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。
2) Portlet Container 的定义
portlet container 是提供 portlets 执行的环境,包含了许多 portlets 并且管理他们的生命周期,他也会永远保存着 portlets 的喜好设置,一个 portlet container 接收到来自 portal 的请求后,接着将这个请求传递给存在 container 的 portlet 执行。 portlet container 没有义务去组合 portlets 产生的信息內容,这个工作必须由 portal 来处理。 portal 和 portlet container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。
什么是 Portlet?
一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。 Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。
这些由 portlet 产生的内容也被称为片段 (fragment) ,而片段是具有一些规则的 Markup( HTML 、 XHTML 、 WML ) ,而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。
客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet 。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。
门户网站( PORTAL )的作用
单点登录
Portal的单点登录是基于应用集成系统的,统一身份认证系统实现系统的单点登录:用户只需要进行一次登录,就可以访问到所有的授权服务;所有的应用系统可以提供统一的用户管理。Portal的用户权限管理能够控制到页面或Portlet
个性化定制
针对不同的用户登录,可以展示不同的内容。可以根据用户的关注点不同来为用户提供定制桌面的功能。
资源整合
完成应用整合,以及业务整合的功能。不同的 web 系统, web 业务平台可以通过 portlet 的 web 剪切功能直接放入门户里面来。
门户网站可选方案分析
厂商的门户平台:
1、 IBM WebSphere Portal
2、 BEA PORTAL
厂商的门户平台,一半都有自己的开发标准,现在都要求用 JSR168 的标准进行开发,厂商的门户成本比较高,稳定性好,服务好产品的后期维护以及开发都有比较成功的案例;
开源的门户平台
JetSpeed
JetSpeed 是 Apache ( http:// jakarta.apache.org/jetspeed/ )组织的一个开源项目, IBM 的 WebSphere Portal Server 正是基于 JetSpeed 进行二次开发。
在满足门户可定制性的需求上,引入了门户组件概念 Portlet , Portlet 是一个可插拔的组件,关于 Portlet 有各种定义, JetSpeed 在提交的 JSR-168 portlet API specifications 对 Portlet 的定义如下:
Portlet 是一个 Web 组件,可以被容器管理,可以产生动态内容。 Portlet 可以很容易地被插入并且运行于一个 Web 应用中, Portlet 是被设计成聚合大量内容的组合页面,举例:同样一个 Portlet ,根据不同的用户,可以产生不同的实例,这些实例中是根据用户设置包含不同的内容,也就是满足用户的可定制性。
为了实现门户内容的有效管理和监控, JetSpeed 的重要内容组件 Slide 引入了 Domain 和 Namespace 方面的概念,对所有资源进行树形结构的控制,在 Slide 中, Domain 是一系列 Namespace 的聚合,它类似文件系统中的 “/” 根目录, domain 可以控制在其中登记的 Namespace 的访问权限以及执行 Namespace 的初始化和连接等管理工作。
Namespace 是个自我独立的有实体内容的容器,它不能包含指向或连接到其它 namespace ,每个应用系统可以是一个 NameSpace , Namespace 包含独立的数据和这些数据的安全访问机制。
JetSpeed 虽然提供了丰富的 Portal 技术功能,但是其可定制性比较差,其重要的内容组件 Slide 也比较难以让人理解,它的安全控制框架与通用的 J2EE 使用 JAAS 不相融合,所有这些都造成了在其基础上进行二次开发的难度。
Liferay
Liferay ( http://www.liferay.com )代表了完整的 J2EE 应用,使用了 Web 、 EJB 以及 JMS 等技术,特别是其前台界面部分使用 Struts 框架技术,基于 XML 的 portlet 配置文件可以自由地动态扩展,使用了 Web Services 来支持一些远程信息的获取,使用 Apahce Lucene 实现全文检索功能。
Liferay Portal 是一套相当成熟的 Java/J2EE portal system ,遵循 Portlet API JSR168 的标准。
作为一个开源 Portal 产品, Liferay Portal 提供对多个独立系统的内容集成,帮助多个组织实现更有效的合作。与其他商业的 Portal 产品相比, Liferay Portal 有着一系列的优良特性,而且不需要付费。
Liferay 的缺点是它缺乏一个简单清晰可拓展的架构设计, portlet 设计显得比较凌乱,进行二次开发有一定的难度 .
Pluto
Pluto 是一个满足 Portlet API 规范的 Portlet 容器的实现,它为开发者提供了一个运行 portlets 的工作平台。然而,如果没有一个驱动器( driver ),也就是 Portal ,的支持的话,运行和测试 Portlet 容器将非常之麻烦。 Pluto 本身也提供了一个简单的 Portal 模块,该模块仅仅是为了满足 Portlet 容器和 JSR 168 的需要而写的。
JBoss Portal
JBoss Portal 提供了一个开源符合标准的门户平台,可以用其搭建 / 布局一个门户网站的 web 界面,发布和管理内容以及定制它的用户体验。 JBoss Portal 最新版本中在个性化设置,身份验证,工作流都进行重大更进。此外还集成了 Google Gadgets ,以提高用户工作效率。
门户网站发展规划
总体规划图
外网的用户通过门户网站可以使用所有的业务系统以及短信、邮件、 OA 等原有的系统,实现了应用整合。
由此可见门户的重要地位,公司初步的选定采用 LifeRay 作为公司门户产品的研发基础。
在 LifeRay 的基础上研发出公司自己的门户平台。