posts - 431,  comments - 344,  trackbacks - 0
Portal包括:
(1) Portal Server。『Portal Server是基于WEB的应用程序, 它将不同资源进行整合并展现给用户。有些文章直接把Portal Server叫做Portal,请注意。』
(2) Portlet Container。『Portlet Container用来管理Portlet的生命周期并且提供其运行所需要的必要环境. 并且为Portlet Preferences提供持久性(Persistent)存取服务.但是其不支持内容的Aggregation. Aggregation由Portal组件提供.』
(3) Portlet。『Portlet 是以
Java 技术为技术的 web 组件,可以被容器管理,可以产生动态内容。处理请求并动态返回页面, 可以做为Portal 的可拔插的用户界面组件.』

我们需要Portal的目的就是要做到系统功能与模块的可配置。同时要开源并符合标准。能与其他的系统进行结合比如Struts。

目前比较主流的Portal产品:
Apache Jetspeed(http://jakarta.apache.org/jetspeed/)
Liferay(http://www.liferay.com)
EXOportal(http://cvs.sf.net/viewcvs.py/exo/ExoPortal/)
Pluto(http://jakarta.apache.org/pluto)
BEA WebLogic Portal (http://edocs.bea.com/wlp/docs81/javadoc/com/bea/portal/model/Portlet.html )
IBM Websphere Portal (http://www.software.ibm.com/wsdd/zones/portal/ )
Oracle Portal Developer Kit (http://portalstudio.oracle.com/)
jfoxportal(http://www.huihoo.org/jfox/jfoxportal/index.html 刚提出草案,不过是国内的。)

说Portal,就不能不提JSR#168 Portlet。

JSR 是由 JCP (
http://www.jcp.org/ ) 这个 Java 组织所定义出来的规范。JSR#168规范就是一个关于Portlet的规范 ——Portlet Spec 1.0 。既然有了规范,理所当然的之后的产品就应该按照这个规范来制作。

JSR168的目标是:

定义portlet的运行时环境,即portlet容器

定义portletportlet容器之间的api

提供portlet存储易失数据和持久数据的机制

提供portlet包含servletjsp的机制

定义方便部署的portlet打包方法

提供jsr168规范下的portal的二进制portlet便携性

通过WSRPweb service for remote portlet)协议运行符合jsr168规范的远程portlet

IT 界已经广泛的接受了jsr168规范。所有的portal领域主要公司都是jsr168专家组的成员:Apache,AGT,BEA,Boeing,Borland,Broadvision,Citrix,EDS, Fujitsu, Hitachi, IBM, Novell, Oracle, SAP, SAS Institute, Sun Microsystems, Sybase, TIBCO, and Vignette。官方支持列表甚至更长。

客户端请求由 Portal Web 应用程序进行处理,它为当前用户检索当前页上的 Portlet 。然后, Portal Web 应用程序为每个 Portlet 调用 Portlet 容器来通过 Container Invoker API 检索它的内容。 Portlet 容器通过 Portlet API 调用 Portlet Container Provider Service Provider Interface SPI )允许 portlet 容器通过 Portal 检索信息。

Portlet 窗口包括:

l        标题栏,带有 Portlet 的标题

l        修饰,包括用于更改 Portlet 的窗口状态的按钮(比如最大化或最小化 Portlet )和用于更改 Portlet 的模式的按钮(比如显示帮助或编辑预定义的 Portlet 设置)

l        Portlet 产生的内容(也称为一个标记段)。

下面是典型的事件流程,当用户访问 portal 页面的时候:

 

<!--[if !supportLists]-->²        <!--[endif]-->客户端在验证后向portalhttp请求。

<!--[if !supportLists]-->²        <!--[endif]-->portal接收请求。

<!--[if !supportLists]-->²        <!--[endif]-->portal判断是否有包含请求,并请求包含的动作指向的portlet是和这个portal页面相关联的。

<!--[if !supportLists]-->²        <!--[endif]-->如果含有动作的目标portletportal发请求给portlet容器去执行相应的portlet的动作。

<!--[if !supportLists]-->²        <!--[endif]-->portal通过portlet容器调用portlets,去获得内容片断,这个片断可以包含在portal页面中。

<!--[if !supportLists]-->²        <!--[endif]-->portal集合portlets的输出内容到1portal页面中,并把页面返回客户端。

Portlet 产生标记片断。 Portal 通常给 portlet 产生的标记片断加了标题,控制按钮和其他的装饰,这个新的片断叫 portlet 窗口。然后 portal 整合 portlet 窗口到完整的文件, portal 页面。

   <!--[if !vml]--><!--[endif]-->

Portlets 运行在 portlet 容器内。 Portlet 容器接收 portlets 产生的内容。典型的, portlet 容器把 portlet 内容传到 portal Portal server 根据 portlet 产生的内容创建 portal 页面,并传送给客户端,由客户端显示。

lt;!--[if !vml]--><!--[endif]-->

 

       客户使用客户终端访问 portal 。在收到请求后, portal 判断满足请求的 portlets 列表。 Portal 通过 portlet 容器,调用 portlets Portal portlet 产生的片断创建 portal 页面,同时把页面返回给用户。

<!--[if !vml]--><!--[endif]-->

用户可以根据需要通过增删 Portlet 的方式配置他们的页面。在 Windows 或者 XWindows 窗口程序中,窗口有最大化和最小化的窗口状态, portlet 也有窗口状态。 窗口状态是 portal 页面空间数量的指示器,它被赋值给 portlet 产生的内容中。当调用 portlet ,容器提供当前窗口状态给 portlet Portlet 使用窗口状态决定多少信息需要 render Portlets 能在处理 action 请求时,编程的改变他们的窗口状态。 Portlet 规范定义了 3 种窗口状态, normal maximized minimized

Normal 窗口状态

Normal 窗口状态表示 portlet 要和其他的 portlet 共享页面。它也表示目标设备限制了显示能力。因此, portlet 限制输出的尺寸。

MAXIMIZED 窗口状态

Maximized 窗口状态表示 portlet portal 页面唯一的 portlet ,或 portlet 相比与其他的 portlet 有更多的空间。当窗口状态是 Maximized 时, portlet 产生更多的内容。

Minimized 窗口状态

portlet minimized 状态,它将是最小限度的输出,或不输出。

Portlet 模式指出 porlet 的功能。一般来说, portlet 执行不同任务,依靠当前执行的任务的创建不同内容。 Portlet 模式告诉 portlet 他们执行什么任务,生产什么内容。当调用 portlet ,容器提供当前 portlet 模式给 portlet Portlets 在处理 action 请求时能编程的改变他们的 portlet 模式。

Portlet 有四种模式: view edit, help config

可用的模式根据用户的角色受到限制。例如,匿名用户只能使用 view help 模式,而验证用户可以使用 edit 模式。

举例来说,一个用户可以定制的股票信息PortletView模式允许用户查看股票列表,Help模式提供给用户帮助手册,Edit模式允许用户定制自己关注的股票列表,而Config模式允许管理员改变股票服务的一些配置。

VIEW 模式  

View 模式期待的功能是产生标记反映当前的状态给portlet。例如,view模式的portlet包含1个或多个框,用户可以操作或交互,或组成不需要任何用户交互的的静态内容。

Portlet 开发者需要通过覆盖doView方法实现view portlet模式的功能。

EDIT 模式  

通过edit模式,portlet提供内容和logic让用户用户化portlet的行为。Edit模式包含一个或多个框,用户可以定位并输入他们的用户化数据。  

典型的,edit模式,将设置或修改portlet的参数。Portlet开发者需要通过覆盖doEdit方法实现edit portlet模式的功能。

HELP 模式

当在help模式,portlet提供portlethelp信息。这个help信息将会是简单的框,用连贯的正文或上下文敏感的帮助阐明了整个portletPortlet开发者需要通过覆盖doHelp方法实现help portlet模式的功能

CONFIG 模式

当在config模式,管理员可以进行相应的操作。 Portlet开发者需要通过覆盖doConfig方法实现view portlet模式的功能。

因为Portlet继承于Servlet,所以portlet可以打包成war文件发布到Portal容器中。管理员可以发布或者卸载portlet。在一个Portlet Web 应用中,一个portlet描述文件用来描述portlet的属性和初始化信息。一个Portlet定义包含一个application portlet和多个concrete portlet。一个Application Portletportlet容器中仅存在一个实例。一个concrete Portlet实例一个使用额外的数据实例化的portlet

posted on 2007-01-23 09:42 周锐 阅读(553) 评论(0)  编辑  收藏 所属分类: Portal

只有注册用户登录后才能发表评论。


网站导航: