Portal技术介绍

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

1 Portal的概念

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

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


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的工具。

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产生的结果聚集于门户网站的网页,然后将网页返回至客户端。

Portal技术介绍的更多相关文章

  1. Portal技术综述

    从上世纪八十年代起,随着个人计算机(PC)的发展,企事业单位逐步建立起计算机应用系统来处理传统事务.从简单的单机应用逐步发展到局域网系统,进而建立跨地区垮国家的广域网系统.从单纯的以科学计算和数据管理 ...

  2. .Net环境下的缓存技术介绍 (转)

    .Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 ...

  3. RAID技术介绍

    RAID技术介绍 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAI ...

  4. .Net环境下的缓存技术介绍

    .Net环境下的缓存技术介绍 摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 1.1 ...

  5. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

  6. (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...

  7. VPS技术介绍以及分析

    VPS的全称为Virtual Private Server,叫做虚拟专用服务器(Godaddy称之为Virtual Dedicated Server,VDS).就是利用各种虚拟化手段把单台物理服务器虚 ...

  8. 转:Android 2.3 代码混淆proguard技术介绍

    ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反 ...

  9. WPF开发技术介绍

    本月做了一个小讲座,主要是WPF的开发技术介绍,由于是上班时间,去听的人不多,但对于自己来说至少是又巩固了Winform的知识,抽时间写一篇文章,在此分享给大家,有什么宝贵建议大家也可以提给我,谢谢. ...

随机推荐

  1. 在网页上看到想要的颜色,如何知道这种颜色的颜色代码和 RGB 颜色值?

    启动QQ的情况下,按截图快捷键(ctrl+alt+A),鼠标移动到要取色的地方即可看到,如下图: references: http://www.zhihu.com/question/20328538

  2. mysql之事务

    事务处理 begin        开始一个事物 commit        事务确认 rollback    事务回滚 end        事务结束 innodb下可以实现事务 开始执行事务时如果 ...

  3. [LeetCode] 128. Longest Consecutive Sequence 解题思路

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  4. Java如何让异常处理机制更完备规范

    1)catch的Exception一定要详细的点名是某种异常而非一概而论的用Exception ex来接收所有的异常,往往不理解这点的人也不能很好的理解catch的意义到底在哪里,是对捕获的异常进行一 ...

  5. socket中select的使用源码

    下面的代码来自IBM学习网站,是学习socket通信和select使用的一个很好的源码. server.c  服务器端 #include <stdio.h> #include <st ...

  6. Wish | IT桔子

    Wish | IT桔子 Wish www.wish.com   认领 关注 分享

  7. i&1、负数二进制

    if(i&1==1) 表示 如果是 奇数 则...i&1 -- 按位与运算,取 2进制整数 i 的最低位,如果最低位是1 则得1,如果最低位是0 则得0. 奇数 i 的最低位 是1,偶 ...

  8. [Qt] Mask 蒙版

    [Qt] Mask 蒙版 Mask能够覆盖在其他的widget上面,实现一些动态图片的加载效果.下面给出代码. mask.h #ifndef MASK_HJ #define MASK_HJ #incl ...

  9. CSS(三)

    CSS又上完了,真是快!!! 预习了JS的一部分,写了几条简单的JS代码: 1.成绩判定: <!DOCTYPE html> <html lang="en"> ...

  10. [深入React] 6.组件

    组件是react的大杀器,超出其他框架几百里 react 组件和dom一样也是树状结构,只能由上而下传递变量(或者调用),不可以兄弟间或者更远的发生关系,为的就是简单,而且工作的很好. 每个组件有自己 ...