扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
WSRP ( Web Services for Remote Portlets ),即远程 Portlet Web 服务,是 OASIS 创建的 Web 服务标准,它允许在门户或其他中间 Web 应用程序中提供可视化的、即插即用的、面向用户的 Web 服务。 BEA Systems 一向是 OASIS 技术组 WSRP 1.0 标准的积极成员,为推动标准的进一步增强而不懈努力。
面向用户的 Web 服务(或称为面向表示的 Web 服务)提供了应用逻辑和表示逻辑。标准 Web 服务或面向数据的 Web 服务包括业务逻辑,但缺少表示逻辑,因此需要每个客户端实现它自己的表示逻辑。
面向用户的 Web 服务在大多数情况下都适用,但对于动态集成业务应用程序却不太适合。例如,如果要在商业门户中集成订单状态 Web 服务,则需要编写代码以在门户中显示订单状态服务的结果。使用 WSRP ,您可以将表示逻辑包含在 Web 服务中。通过提供一组面向表示的服务,可以动态完成应用程序和服务的聚合。您不再需要为了实现集成而开发表示逻辑。只需在商业门户中预先确定的位置请求将订单状态服务显示为 Portlet 。
WSRP 在业内有着强大的支持。此标准涉及到的一些公司有: BEA 、 IBM 、 Oracle 、 SAP 和 Sun 。有关 WSRP 的完整信息,请访问: www.oasis-open.org/committees/wsrp
WSRP 有如下优点:
WSRP 引入了 Portlet Producer 和 Protlet Consumer 的概念。
最终用户将能够与 Consumer 交流,来查看集成的应用程序。简单的说,就是:
Producer 被设计为 Portlet 的容器。 Producer 提供一些服务,如:自我描述、标记、注册以及 Portlet 管理。 Producer 能够有选择地管理 Consumer 的注册,并要求 Producer 在与 portlet 交互之前预先注册。注册在 Consumer 与 Producer 之间建立了一种关联。
Consumer 在本质上与代表最终用户的路由器是相似的。 Consumer 将用户请求发送给适当的 Producer 。 Producer 依次处理这些请求并将结果发送回 Consumer 。 Consumer 将整合来自不同 Producer 的结果并将最终结果返回给用户。由于 Consumer 代表最终用户,因此在 Consumer 之间存在许多特定于用户的信息。正如我们所期望的, Consumer 提供了信息间隔,并在互动过程中保护特定用户所有互动的私有性。
WSRP 最强大的功能之一就是能够动态地使用来自其他服务器的应用程序。您可以设置一个 Consumer Portal ,并对网络中可用的、来自 Producer Portal 的不同 portlet 进行动态查询和关联。结果将是一个全新的门户,它能够动态地集成新功能以简化业务流程和为门户用户授权。
集成后的门户可以进一步进行个性化设置和定制最终的门户并返回给用户。 Consumer 在与 Producer 的通信过程中使用 Portlet 句柄。如果 Producer 公开其“ Portlet 管理接口”,则将允许 Consumer 定制基于 Portlet 的特殊 WSRP 。
Consumer 需要在 Producer 中注册。 Producer 用唯一句柄识别每个 consumer 。此句柄可帮助识别特定 consumer 可用的 portlet 。
下图阐释了启用了 WSRP 的门户之间的交互 :
最终用户看到整合页面。
WebLogic Portal SP3 中对 WSRP 提供了完全的支持,而在 SP2 中,需要借助 SDK 才能实现 WSRP 的开发。
使用 WebLogic Portal ,您可以作为 WSRP Producer 或 WSRP Consumer 来启用项目。通过使用 WSRP ,客户将能够在 Weblogic Portal 中作为 Producer 公开 Protlet 应用程序。客户还能够以 Consumer 的身份在 Weblogic Portal 中集成 WSRP 相容 Portlet ,从而整合应用程序功能。
在 WebLogic Portal 中, WSRP 的 Consumer 既可以在 Workshop 中创建,也可以在 Admin Portal 中创建。
创建一个 Portlet ,命名为 RemoteCalendar.portlet 。选择 Portlet 类型为“ Remote Portlet ”,在 Find Producer 框中输入 http://localhost:7001/wlpWeb/producer?WSDL ,点击“ Retrieve ”,返回远程 Portal 应用中提供的 Producer 。也可以输入其它 Portal Domain 的链接,如:http://portalstandards.oracle.com/wsrp/jaxrpc?WSDL ,从本地机上返回支持 WSRP Producer 的 Portlet ,如下图所示,结果显示远程 Portal Domain 中有 7 个 Portlet Producer ,可以在本地建一个 Proxy Portlet 去访问它。
点击“ Register ”,输入一些注册信息,这些信息将被记到 WEB-INF 目录下的 wsrp-producer-registry.xml 文件中
第三步,点击“ NEXT ”,在“ Select Portlet From List ”界面中,选择“ My Calendar ”
在“ Proxy Portlet ”界面中,可以修改 Portlet 的 Title :
点击“ Finish ”,这样一个 Remote Portlet 就创建完了,可以象使用一个本地 Porlet 一样使用它。
也可以在 Administartion Portal 中创建远程 Portlet 。步骤如下:
点击“ Add Producer ”,输入 Producer 的属性,如下图所示。
这样所有的远程 Portlet 都会列出来,如下图所示。可以选择“ ADD ”把想要的 Portlet 加到本地,然后象对待一个本地 Portlet 一样装配它。
缺省情况下,使用 WebLogic Portal SP3 创建的 Portlet 都可以被远程的 Consumer 通过 WSRP 使用。如果你不想让 Portlet 具有这种特性,可以在 web.xml 中来禁用它。方法是在 web.xml 文件中找到下列描述,然后删除就可以。
<servlet> <servlet-name>com.bea.wsrp.producer.WsrpServer</servlet-name> <servlet-class>com.bea.wsrp.producer.WsrpServer</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>com.bea.wsrp.producer.WsrpServer</servlet-name> <url-pattern>/producer/*</url-pattern> </servlet-mapping>
在编写 WSRP 兼容的 Portlet 时,应该注意以下几个方面:
在 Portlet 之间不要有依赖于 Request 的属性;
如果有多个 Portlet 共享一个 Session ,最后把它们放到一个 Producer 中;
使用 SSL 提供安全性;
在 WEB-INF/wsrp-producer-config.xml 文件中,将 <service-config> 的所有安全属性设置为 true ;
Weblogic Portal 会自动管理 Consumer Portlet 与其它 Portlet 之间的 SSO ;
在 Portlet 中创建 URL 时,不要直接创建链接,相反,应该使用 WebLogic Portal 提供的 Tag 和 API 去创建 URL 。
让 Portlet 使用标准的样式属性,并且在 Skin 中指定这些属性。
在 Producer 一端,应该添加允许附件的支持。打开 WEB-INF 目录下的 wsrp-producer-config.xml ,把 transport 属性值从 String 修改为 attachment 。
<?xml version="1.0" encoding="UTF-8"?> <wsrp-producer-config …..> <description> This is a WSRP Producer </description> <service-config> <registration required="true" secure="false"/> <service-description secure="false"/> <markup secure="false" rewrite-urls="true" transport=" attachment "/> <portlet-management required="true" secure="false"/> </service-config> <supported-locales> <locale>en</locale> <locale>en-US</locale> </supported-locales> </wsrp-producer-config>
在 Consumer 一端,为 Proxy Portlet 设置缓存,这是缺省的。允许 Proxy Portlet 的 Forked Rendering 。在 WEB-INF/wsrp-producer-registery.xml 中设置连接超时:
<connection-timeout-msecs> 120000 </connection-timeout-msecs>
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者