《2022年Portal技术标准简介 .pdf》由会员分享,可在线阅读,更多相关《2022年Portal技术标准简介 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Portal技术标准简介关键字:portalJEE 作为建立在Java 平台上的企业级应用解决方案,经过这些年不断发展,已经成为企业级开发的工业标准和首选平台。众多厂商如IBM,BEA 和 Oracle 等都围绕该规范推出了相应的,功能强大的产品。JEE 规范组中最受业界认同和取得最大成功的就是JEE Web 层面规范,发展到今天,已经步入门户(Portal)的时代。门户,简言之就是提供包括内容聚合、单点登陆、个性化定制和安全管理等服务的基础Web平台。在 Java EE 里,Portal 有两种标准:JSR 168 和 JSR 286。同时 OASIS 组织还为 Portal 的远程调用定义
2、了相关WebServicds标准 WSRP。名词解释名词解释Portal 门户,提供包括内容聚合、单点登陆、个性化定制和安全管理等服务的基础Web 平台。Portlet Portlet 是基于web 的 Java 组件。它由Portlet 容器管理,能够处理请求,产生动态内容。Portlet 被 Portal 用作为可插拔的用户接口组件,为信息系统提供展现。由 Portlet 动态产生的内容也被叫做fragment。fragment 是遵循某种规则的标记(例如:HTML,XHTML,WML),可与其他的fragment 一起建立一个完整的文档。一般一个Portlet 产生的内容和其他的Port
3、let 产生的内容聚集在一起形成Portal网页。Portlet Container Portlet 在 Portlet 容器中运行,Portlet 容器为Portlet 提供必需的运行环境。Portlet 容器包含Portlet(组件)并且管理它们的生命周期,它也为Portlet 的参数设置提供持久化的存储。Portlet 容器不是一个类似于servlet 容器的独立容器。它是在servlet 容器上通过扩展方式实现的,并重用servlet 容器提供的功能。从Portal 的角度来看,Portlet Container 是 Portal 平台所提供的众多服务之一。JSR168,JSR286
4、由于越来越多的公司开发了各自的Portal 组件和基于其的Portal 产品(如 Bea,IBM,Oracle,Sun,Sybase,Novell,SAP,Jetspeed,Vignette 等.这种互不兼容的接口实现不断带给程序提供商各种问题和麻烦,为了解决这种问题,JCP 发布了JSR168(Java Specification Request),Portlet Specification,用以提供不同Portal 和 Portlets 之间的互用性。JSR 286 是 168 规范的延伸,是目前最新标准规范。SSO Single Sign-On 即单点登陆。当一个大系统中存在多个子系统时
5、,用户只需要正确登陆其中任何一个子系统,就可以在各个子系统中来回自由切换和使用授予该用户权限的各种资源。一般可以分为两种类型:Web 应用之间的单点登陆和门户Web 应用和它所连接的后台系统之间的单点登陆。SSO 是任何一个门户产品必须解决的问题,必须提供的服务。WSRP WSRP 是 OASIS 组织的一个规范,它定义了远程门户网站的Web 服务。通过Web Service 将远程内容抓取到本地,最后通过本地内容聚合引擎展示出来。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -JSR 168 和 JSR 286Portlet 是部署在容器内用来生成动态内容的Web 组
6、件,与servlet 类似,portlet 的整个生命周期从init 到 destroy 的过程都在portlet 容器中进行。Java Portlet Specification 对 portlet API、标准化用户数据、参数设置、portlet 请求以及响应、部署、打包以及安全等方面都做了详细的规定,以此来实现portlet 之间以及portlet 与 portlet 容器之间的交互和协作。Java Portlet Specification 1.0,即 Java Specification Request(JSR)168 发布于 2003 年10 月。JSR 168 目前在业界受到广泛
7、支持,而且它由开放源码支持。标准和产品的第一个版本存在一定的缺陷,仅支持最基本的用例,在功能上有一些限制。而且Java Portlet Specification V1.0 也存在这种情况,因此,经过三年之后,大多数支持 Java Portlet Specification V1.0 的门户产品都提供一些附加扩展,以支持更高级的用例,这些附加的扩展造成了各个门户产品的标准不统一,彼此间的交互协作成了不可避免的问题。为了更好地规范portlet 开发,以适应业界发展,并提供适应于最高级别用例的标准解决方案,从而为这些高级功能提供互操作性,在 2005 年 11 月开始了Java Portlet
8、Specification V2.0(称为 JSR 286)的开发,Java Portlet Specification V2.0 已在 2008 年 2 月 25 日正式定稿,并于 2008 年 6 月 12 日正式发布。Portal 标准概念一个 Portal 由多个 Portal Page 组成。每个Portal Page 都包含了多个Portlet。一个 Portal Page 的结构如下图:每个 Portlet Page 由一个或多个Portlet Window 组成,每个Portlet Window 又分为两部分:一个是 Decorations and controls,它决定了
9、portlet 窗口的标题条、控制和边界的样式;另一个是Portlet Fragment,它由 Portlet Context 填充。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -Portlet vs Servlet*Portlet 在以下方面与Servlet 相似:1.Portlet 由特定的容器管理。2.Portlet 生成动态内容。3.Portlet 的生命周期由容器管理。4.Portlet 通过请求/响应模式与 web 客户端交互。*Portlet 在以下方面与Servlet 相异:1.Portlet 只能生成标记段,而不是整个文档。2.Portlet 没有可
10、供直接访问的URL 地址。不过你还是能够让别人通过URL 访问到 Portlet,你可以把包含该Portlet 的页面的 URL 发给他。3.Portlet 不能随意地生成内容,这是因为Portlet 生成的内容最终要成为 Portal 页面的一部分。如果Portal 服务器要求的是 html/text 类型,那么所有的 Portlet 都应生成 html/text 类型的内容。再比方说,如果Portal 服务器要求的是 WML 类型,那么所有的Portlet 都应生成 WML 类型的内容。*Portlet 还提供了一些附加的功能:1.设置参数的持久化存储:Portlet 提供了一个Portl
11、etPreferences?对象用来保存用户的设置参数。这些参数被存入一个持久化数据库,这样服务器重启后数据依然有效。开发者不必关心这些数据存储的具体实现机制。2.请求处理:Portlet 提供了更为细粒度的请求处理。对于用户在Portlet 上动作时向该Portlet 发出的请求(一种称为活跃期的状态),或者因用户在其它Portlet 上动作而引发的刷新页面请求,Portal 服务器提供了两种不同的回调方法来处理。3.Portlet 模式:Portlet 用模式的概念来表示用户在做什么。Portlet 标准定义了三种模式:VIEW、EDIT、HELP。在使用 mail 应用的时候,你可能会用
12、它来读信、写信或检查信件 这些都是 mail 应用的预定功能,Portlets 通常以 VIEW 模式提供这些功能。但还有一些活动,像指定刷新时间或(重新)设置用户名和密码,这些活动允许用户定制应用的行为,因此它们用的是EDIT 模式。Mail 应用的帮助功能用的是HELP 模式。4.窗口状态:窗口状态决定了Portal 页面上留给Portlet 生成内容的空间。如果点击最大化按钮,Portlet 将占据整个屏幕,成为用户唯一可用的Portlet;而在最小化状态,Portlet 只显示为标题条。作为开发者应当根据可用空间的大小来定做内容。5.用户信息:通常 Portlet 向发出请求的用户提供
13、个性化的内容,为了能更加行之有效,Portlet 需要访问用户的属性信息,如姓名、email、电话等。Portlet 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -API 为此提供了用户属性的概念,开发者能够用标准的方式访问这些属性,并由管理员负责在这些属性与真实的用户信息数据库(通常是LDAP 服务器)之间建立映射关系。JSR 286 介绍JSR 286 兼容了 JSR 168,并完善了JSR 168 的部分功能,并提供了诸多JSR 168 所没有的新特性,例如资源服务、事件、portlet 过滤器、共享呈现参数及 portlet 窗口等。与V1.0 类似,V2.0
14、 也将基于J2EE 1.4,因此可让Portlet 使用 J2EE 1.4 增强(如JSP 2.0)。下面是该新规范的一些主要功能及特性:1.资源服务:JSR 168 定义的直接链接到资源方式,无法访问到相关Portlet 的信息,包括 Portlet 模式、窗口状态、当前呈现参数或Portlet 首选项等。JSR 286 采用了一种新的资源服务方式 Portlet 资源服务2.事件:通过发送事件和接收事件来实现portlet 之间的通信。JSR 286 定义的事件模型是一种松耦合的代理事件模型。在此模型中,Portlet 定义可以接收以及在Portlet 部署描述符中公布的事件。在运行时,门
15、户管理员(或业务用户)可以将不同的Portlet 连接在一起。3.Portlet 过滤器:与servlet 过滤器类似,根据Portlet 请求和响应动态的呈现内容的变换。但是它们两者之间存在巨大差异。Servlet 过滤器是一个门户级过滤器,它可以修改由一些小的部分(来自页面上所有Portlet 的响应)集合而成的整个门户页面;而Portlet 过滤器只能用于那些小的部分。存在以下四种类型的portlet 过滤器:*Action 过滤器*Render 过滤器*Resource 过滤器*Event 过滤器4.共享呈现参数:除了portlet 私有的呈现参数之外,新增了可以在portlet 之间
16、共享的呈现参数,从而创建一个页面上下文。共享呈现参数与事件相比的优势就在于避免了事件处理过程调用的繁琐。5.Portlet 窗口:提供portlet 窗口 ID 供 portlet 使用。在 Portal 容器中布名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -局同一个Portlet 多次的情况下,窗口 ID 可以用来区分同一个Portlet 的不同窗口,从而可以使这些Portlet 窗口缓存并呈现不同的数据。WSRPWSRP(Web Services for Remote Portlets),一个定义了如何利用基于SOAP 的 Web 服务在门户应用程序中生成标记片断
17、的规范。通过定义一组公共接口,WSRP 允许门户在它们的页面中显示远程运行的portlet,而不需要门户开发人员进行任何编程。对于最终用户,这些porlet 就和运行在他们本地的门户上一样,但是实际上这些portlet 来自于远程运行的portlet 容器,并且交互是通过SOAP 消息的交换来实现的。在面向服务的体系结构中利用WSRP 将是一个强大的组合,从而使面向呈现的portlet 应用程序可以被发现并重用而不用任何额外的开发和部署活动。WSRP 规范是OASIS(Organization for the Advancement of Structured Information Stan
18、dards)的一个产品,这个组织是推动技术标准采纳的一个协会。WSRP 规范的1.0 版本在2003 年的八月份发布,2.0 版本在 2008 年 4 月发布。获得了众多门户市场主要厂商的支持,包括IBM?,BEA,Oracle 和 Microsoft?。OASIS 的 WSRP 规范定义了通用的,设计良好的接口,可以与可插入的,面向呈现的Web 服务进行交互。这些服务处理用户交互,并且为门户集合提供了标记片断。为什么需要 WSRP如果 Web 服务提供一个机制来创建独立于平台的服务,且JSR 168 和 JSR 286 定义了一个标准来开发portlet,那么我们为什么需要WSRP 呢?答案
19、很简单。虽然Web 服务提供了重用后端服务的能力,WSRP 却让我们能够重用整个用户接口!例如,我们可能想要为门户的最终用户提供输入证券代码可以查询股票信息的能力。我们知道目前很可能已经有Web 服务提供了完整的功能。我们可以在UDDI 中查询这些股票报价服务。在查找到一个这种服务的基础上,接下来我们需要编写一个客户端来绑定并使用Web 服务,也可以开发一个portlet 来允许门户用户与这个服务进行交互。使用Web 服务工具包可以使Web 服务客户端的开发相对容易;然而,开发用户接口可能不是这么简单。而且,我们必须执行在我们的门户服务器上部署新开发的portlet 和 Web 服务的全部步骤
20、。到这一步,我们必须开发、编译和部署一些新的代码来向最终用户提供股票报价服务名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -功能。虽然利用第三方开发的股票报价服务可以减少开发时间,但开发和部署为门户用户提供功能的前端应用程序的流程却是繁琐且耗时的。在这个例子中加入WSRP,我们可以更加容易的将股票报价portlet 集成到我们的门户中。我们可以浏览UDDI 目录来为用户提供portlet 本身,或者提供用户浏览portlet 注册表的能力。一旦发现了Stock Quote Portlet,将其添加到门户上只需要点击几下鼠标就完成了。我们不需要执行任何代码编写或者部署活动
21、,因为该portlet 是通过 WSRP 来调用的。最终用户不需要了解任何关于WSRP 的知识,甚至不知道他们的portlet 实际上是远程托管的!最终用户只知道他们有一个可用的portlet 目录,他们可以从中进行挑选。还有什么可以更容易呢?WSRP 参与者在深入了解WSRP 实际工作以前,让我们简要的说明一下WSRP 体系结构中的不同部分。下面的图示举例说明了WSRP 体系结构中的每个主要参与者,以及门户在聚集标记片断中所扮演的角色。虽然这个图只是显示了一个门户仅使用来自一个生产者的WSRP portlet,但是没有理由说门户不能使用多个WSRP 生产者提供的portlet。WSRP 规范
22、在 WRSP 体系结构中定义了如下的参与者:*WSRP 生产者(WSRP producer):这是一个Web 服务,提供了一个或者多个 portlet,并且实现了一套WSRP 接口,因此也为消费者提供了一组常用操作。生产者仅仅可以提供一个portlet,或者提供一个运行时(或容器)来部署和管理多个portlet,这取决于实现方式。WSRP 生产者是一个真实的Web 服务,通过 WSDL 和一组端点完成。WSRP 中的每个生产者都是通过标准的 WSDL 文档来描述的。*WSRP portlet:WSRP portlet 是一个可插入的用户接口组件,存在于WSRP 生产者内,通过生产者定义的接口进
23、行远程访问。WSRP portlet 并不是一个 Web 服务(它不能被直接访问,必须通过他的父生产者来访问)。*WSRP 消费者(WSRP consumer):这是一个Web 服务客户端,调用名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -生产者提供的WSRP Web 服务并且为用户提供环境来同一个或多个生产者提供的 portlet 进行交互。WSRP 消费者最常见的例子是门户。WSRP 接口正如前面间接提到的那样,WSRP 定义了一组公共接口,所有的WSRP 生产者都需要实现这些接口,并且 WSRP 消费者必须使用这些接口来同远程运行的portlet 进行交互。由于
24、这些接口已经被完善定义,用来同任何符合WSRP 的生产者进行通信,因此标准化这些接口使门户可以与远程运行的portlet 进行交互。WSRP 规范需要每个生产者实现两个必需的接口,还可以实现另外两个可选接口:*服务描述接口(必选):服务描述接口允许WSRP 生产者向消费者介绍它的功能。WSRP 消费者可以使用这个接口来查询生产者,以便发现其提供了哪些 portlet,以及关于生产者自身的一些其他元数据。这个接口可以作为一个发现机制来确定所提供的portlet,但是同样重要的是让消费者可以了解关于生产者技术能力的附加信息。生产者元数据可以包含消费者与任何portlet 交互之前,生产者是否需要注
25、册或初始化cookie 的信息。*标记接口(必选):标记接口允许WSRP 消费者同 WSRP 生产者的远程运行的portlet 进行交互。例如,当用户通过门户页面提供一个表单时需要使用这个接口执行一些交互。另外,门户可能需要根据portlet 当前的状态来获取最新的标记(例如当用户点击刷新或者与当前页面的另一个portlet 进行交互的时候)。*注册接口(可选):注册接口允许WSRP 生产者要求WSRP 消费者在通过服务描述和标记接口与服务进行交互之前进行某种形式的注册。通过这个机制,生产者可以为特定类型的消费者定制他的行为。例如,生产者可能基于特定的消费者过滤一些提供的portlet。另外,注册接口提供了一个机制允许生产者和消费者进行对话,这样他们可以交换关于彼此技术能力的信息。*Portlet 管理接口(可选):Portlet 管理接口使WSRP 消费者可以访问远程运行的portlet 的生命周期。通过这个接口,消费者具备定制portlet 行为甚至是销毁一个远程运行的portlet 实例的能力。后记名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -http:/ 8 页,共 8 页 -
限制150内