门户网站( 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 的基础上研发出公司自己的门户平台。
实施步骤
平台的学习使用
开发一个平台,首先要能熟练的使用这个平台,分析这个平台的不足与优点,在学习使用的过程中应该能够提出自己对将要研发平台的建议和规划以及平台的组成要素,开发的工具以及环境配置。
Portlet 的学习开发部署
平台会使用以后,下一步就要开发自己的公用的插件了,依据 JSR168portlet 开发的标准,进行 portlet 的开发,这一个阶段首要的任务是开发出自己的插件。然后开始组织培训,如何搭建开发环境如何调试 Portlet ,以及平台如何使用,还有就是如何部署自己开发的 portlet 。这一步需要开发人员有对新知识渴望学习的兴趣。
产品的包装命名
公司美工在开发人员的指导下,一起对产品的插件以及平台进行界面美化,让美工掌握如何对插件进行美化,以及设计自己的产品的皮肤样式。
产品的测试销售
产品必须经过严格的测试然后由销售人员针对不同的用户群销售。
产品维护
作为平台的维护,主要是美工对皮肤的美化,还有就是开发新的插件;这一块可以有一个既懂美工又熟悉 portlet 编程的专人维护就可以了,因为维护的内容很少,所以后期的维护成本得以控制。
转载注明出处: 坏男孩