Portal技术介绍

 
Portal技术介绍

Portal是web应用发展的一个重要趋势,目前几乎全部大的软件厂商都有本身的Portal产品。而且Portal技术已经造成规范。本文对Portal技术和产品进行了分析,目的是为公司产品的规划提供参考。php

1 Portal的概念

根据(JSR (Java Specification Request) 168)的定义,Portal是基于web的应用,它主要做为信息系统的展示层,提供个性化、统一登陆和内容整合的功能。整合就是将不一样来源的信息集中展示在一张网页上。一个Portal能够具备不少个性化参数,用来调整为用户定制的内容。对于不一样用户,一个Portal网页可能由多组不一样的页面构件-portlet组成,portlet为不一样用户生成不一样的定制内容。Portal网页的内容如图1所示。Portal网页中的Portlet窗口通常有常规、最大化和最小化三种状态,窗口的状态能够由用户调整。java

从上面的定义能够看出,Portal的核心思想是网页个性化,它有两个含义,一是为不一样的网页访问者匹配不一样的内容,二是为不一样的网页访问者提供不一样的portlet应用服务,并在所能提供服务的基础上根据访问者的不一样相应改变处理流程。web


1.1Portal的分类

最初的Portal指的是像YahooLycos这样的Internet门户网站。这些门户网站为用户提供了检索、分类和相似"My Yahoo!"的个性化定制服务,目的是帮助用户更快地找到本身所须要的信息。这样的Portal被称为Public Portal即面向公众的信息门户。数据库

随着web应用的发展,又出现了Vertical Portal和Enterprise Information Portal。Vertical Portal即行业门户,目的是帮助某一行业的商业人员和技术人员找到自已须要的特定行业的商业信息和技术信息。Enterprise Information Portal(EIP)即企业信息门户。目的是帮助企业用户及员工经过统一入口找到分布于企业的各类信息。与Public Portal类似,Vertical Portal和EIP也一样提供了检索、分类和个性化定制服务。浏览器

1.2 Portal的价值

从不一样的角度出发,对不一样的应用来讲,Portal所体现的价值是不一样的。服务器

首先做为一个网络用户,基于Portal的网站可以为咱们更有效的提供信息和服务。虽然目前的Internet为咱们提供了大量的信息,但这些信息很是分散而且重复不少。所以有必要创建以行业或专业领域为中心的网站,集中提供某个行业或领域的信息和服务。网络

对于企业内网系统来讲,若是经过Portal与外网集成,将减小网络系统开发和维护的成本。经过企业内部文档和资料的内容管理,能够增强知识的积累和共享。经过创建公告信息,记事本、聊天室等协同工做的工具,能够帮助员工提升工做效率。经过EIP与企业旧有信息系统(如ERP、SCM、POS)的运做结合,能够强化企业的运做效率。框架

2 Portal厂商及Portlet规范  2.1国外厂商

在EIP发展的后面阶段,随着EIP与应用集成的发展,WEB应用服务器和数据库服务器的提供者、CRM 和ERP的提供者、EAI厂商也加入到EIP厂商的行列。服务器厂商包括IBM,Oracle,BEA,Sybase 以及微软。CRM 和ERP厂商包括BroadVision,Vignette,SAP和PeopleSoft等。EAI厂商象Tibco和WebMethods等。工具

随着数据仓库工具的普及,商业智能供应商,例如Connos,Business Objects以及Brio等也加入到Portal厂商的行列。它们都提供了集成分析报表与Portal的工具。post

2.2 开放源代码项目

除了上面提到的国内外厂商外,一些开放源代码组织也提供了基于JAVA平台的Portal解决方案,这些开源产品有JetSpeed、Jboss nukes、Liferay等。

JetSpeed是Apache组织的一个Portal开源项目, IBM早期的WebSphere Portal Server就是基于JetSpeed进行二次开发的。jcorporate的Expresso(一个基于开放标准的J2EE体系框架)也采用了JetSpeed。

Jboss nukes是基于postnuke、phpnuke等内容管理系统开发的java平台的内容管理系统。因为使用了java,其在响应速度和系统集成能力等方面都要比用和php开发的postnuke、phpnuke等系统出色。

Liferay的portlet配置文件能够自由地动态扩展,并使用Apahce Lucene实现全文检索功能。

3 Portal技术分析  3.1 Portlet

JSR-168 Portlet Specifications对Portlet的定义以下:
portlet是基于web的Java组件。它由portlet容器管理,可以处理请求,产生动态内容。portlet被Portal用做为可插拔的用户接口组件,为信息系统提供展示。

由portlet动态产生的内容也被叫作fragment。fragment是遵循某种规则的标记(例如:HTML,XHTML,WML),可与其余的fragment一块儿创建一个完整的文档。通常一个portlet产生的内容和其余的portlet产生的内容汇集在一块儿造成Portal网页。

3.2 Portlet 容器

portlet在portlet容器中运行,portlet容器为portlet提供必需的运行环境。portlet容器包含portlet(组件)而且管理它们的生命周期,它也为portlet的参数设置提供持久化的存储。

portlet 容器不是一个相似于 servlet 容器的独立容器。它是在 servlet 容器上经过扩展方式实现的,并重用 servlet 容器提供的功能。

3.3 工做原理

在图8中,portlet的生命周期由portlet容器管理。web端经过由Portal执行的请求/应答机制与portlet进行交互。一般,用户与由portlet产生的内容进行交互,好比经过单击按钮或连接,Portal接收到portlet窗口的动做,随后将portlet产生的内容送至用户操做的portlet窗口。 对不一样的用户,一个portlet产生的内容可能会大不同,这与用户对portlet的设置有关。

portlet容器接收来自Portal的请求并运行它管理的portlet执行请求。portlet容器并不负责汇集portlet产生的内容,处理内容汇集是Portal的职责。Portal和Portlet容器可以被做为单一的应用组件组合在一块儿,也能够做为一个Portal应用的2个分离的组件。

图8 Portal原理 下面是一个典型的事件序列 一个客户端(例如:一个web浏览器)在被验证以后向Portal发出HTTP请求,Portal接收到请求。 Portal判断请求是否包含与组成门户网站网页的portlet有关的动做。 若是存在与某个portlet相关的动做,Portal请求portlet容器调用portlet处理动做。 Portal经过portlet容器调用portlet,得到被包含在产生的门户网站网页中的内容片断。 Portal将portlet产生的结果汇集于门户网站的网页,而后将网页返回至客户端。
相关文章
相关标签/搜索