当前位置:首页 > 比较 JSR 168 Java Portlet 规范与 IBM Portlet API
比较 JSR 168 Java Portlet 规范与 IBM Portlet API
本文详细说明了 Java TMJava TMStandardization Request for the Java Portlet 规范(以下称为 JSR 168)和 IBM WebSphere Portal Version 5.0 支持的 IBM Portlet API之间的相似点和不同点。文中解释了 JSR 168 的一些基本概念和特征,并将它们与 IBM Portlet API 进行了比较,并且为两个 Portlet 编程接口中的每一个都提供了一个示例 Portlet。本文是为那些对 Java 编程、Servlet 或Portlet 编程有良好理解并具备 portal 方面的基本知识的 Portlet 开发人员和 Portal 架构师准备的。 引言
随着越来越多的企业Portal 的出现,不同的厂商已经创建了各种用于 Portal 组件的 API(称为 Portlet)。存在多种不兼容的接口产生了应用程序提供者、Portal 消费者和Portal 服务器厂商之间的问题。Java Community Process(JCP)定义的Java Portlet 规范(JSR 168)提供了 Portlet 和 Portal之间的互操作性的标准。它将及时解决这些问题。
本文档的目的是比较 JSR 168 和 WebSpherePortal V5.0 Portlet API,并且给出了一些示例。
重要:为了给顾客和合作伙伴提供一个方便的移植窗口,WebSphere Portal的下一个版本仍将支持 IBM Portlet API。 JSR168 简介
Java Standardization Request 168(JSR 168)定义了一个Portlet规范,包括 Portlet 容器和 portlet 之间的合约。JSR 168 是由Java Community Process(JCP)定义的。JSR 168 是由 IBM 和 Sun共同领导的,并且有一个很大的 Expect Group以帮助创建目前可用的最终版本。这个专家组由 Apache
Software Foundation、Art Technology Group Inc.(ATG)、BEA、Boeing、Borland、Citrix Systems、Fujitsu、Hitachi、IBM、Novell、Oracle、SAP、SAS Institute、Sun、Sybase、Tibco和 Vignette 组成。关于这个 JSR 的更多信息可以在 http://jcp.org/en/jsr/detail?id=168上找到。
重要:在本分析中提供的信息不承担任何性质的保证之责。本分析旨在为读者提供一个指示性的工具。 JSR 168定义
这部分提供了基本的 JSR 168定义,目的是帮助您理解 JSR 168 如何融入整个 Portal体系结构中。 Portal 和 Portlet 容器
portal是一个 Web应用程序,它通常提供不同来源的个性化、单点登录的内容集合,并且托管不同后端系统的表示层。
Portal的主要任务是将不同的应用程序集合到一个页面,这个页面的外观是Portal 用户共有的。Portal也可以有复杂的个性化特征,这些特征能够给用户提供自定义内容。Portal页可以有不同的 Portlet 集,以便为不同的用户创建内容。 图1展示了 Portal 的体系结构,比如一个由 WebSphere Portal 提供服务的Portal。客户端请求由 PortalWeb 应用程序进行处理,它为当前用户检索当前页上的 Portlet。然后,Portal Web应用程序为每个 Portlet 调用 Portlet 容器来通过 Container Invoker API 检索它的内容。Portlet 容器通过 Portlet API 调用Portlet。Container Provider Service Provider Interface(SPI)允许 portlet 容器通过Portal 检索信息。
图 1. 基本的 Portal 体系结构
Portlet 容器运行 Portlet,给它们提供所需的运行时环境,并且管理它们的生命周期。它为Portlet 首选项项提供持久性存储,这使得能够为不同的用户生成自定义输出。
Portal 页和 Portlet
图2展示了基本的 Portal 页组件。Portal 页表示一个完整的标记文档并且聚集若干 Portlet 窗口;也就是说,它将不同的应用程序用户界面组合到一个统一的表示中去。Portal 页使用户能够通过登录对话框向 Portal 验证自己的身份以便访问个性化的 Portal 视图。大部分 Portal 页包括一些导航机制以允许用户导航到其他的 Portal 页。
图 2:Portal 页
Portlet 窗口包括:
标题栏,带有 Portlet 的标题
? 修饰,包括用于更改 Portlet 的窗口状态的按钮(比如最大化或最小化 Portlet)和用于更改 Portlet 的模式的按钮(比如显示帮助或编辑预定义的 Portlet 设置)
? 由 Portlet 产生的内容(也称为一个标记段)。
?
图 3在不同的浏览器上展示了一个 Portlet 窗口。如您所见,该 portlet 产生的标记段并不局限于 HTML,而可以是任何标记。
图 3:在 HTML 浏览器(顶部)和 WML 浏览器(底部)中显示的 Portlet
Portlet 生命周期
基本的 portlet 生命周期必须:
1. 初始化,使用初始化类初始化 Portlet 并将其放入服务中。 2. 处理请求,处理不同种类的动作并呈现内容。 3. 完成,使用销毁类除去 Portlet。
Portlet 基于用户与 Portlet 或 Portal页的交互来接收请求。请求处理分为两个阶段:
1. 动作处理
如果用户单击 Portlet上的链接,就会触发动作。动作处理必须在页面上的任何Portlet 呈现开始之前结束。在动作阶段,Portlet可以改变 Portlet 的状态。 2. 呈现内容
在呈现阶段,Portlet 会产生要发送回客户端的标记。呈现不应该改变任何状态。它允许一个页面重新刷新而不需要改变Portlet 的状态。一个页面上的所有 Portlet的呈现都可以并行执行。
共分享92篇相关文档