WSRP是一套基于Web服务的开放规范而非XML标准,由OASIS制定,通过WSDL、SOAP、XML Schema等XML技术实现远程Portlet的即插即用,封装界面渲染、操作处理与状态管理,使门户可直接嵌入并交互远程HTML片段。

WSRP(Web Services for Remote Portlets)不是一种XML标准,而是一套基于Web服务的开放规范,由OASIS组织制定,核心目标是让Portlet(门户组件)能以“即插即用”方式跨系统远程使用。它依赖XML技术(如WSDL、SOAP、XML Schema)实现通信,但本身不是XML语法或标记标准。
WSRP的本质:面向展示的远程交互协议
传统Web服务(如SOAP/XML-RPC)只暴露业务逻辑,客户端需自行开发界面;WSRP不同——它把**用户界面渲染、用户操作处理、状态管理**都封装进服务中。门户(Consumer)只需调用标准接口,就能把远程Portlet像本地组件一样嵌入页面,用户点击、输入、刷新等操作全部由远程端完成,结果以HTML片段形式返回。
WSRP 1.0的关键技术组成
它定义了一组严格约束的Web服务接口,全部通过WSDL描述,运行在SOAP/HTTP之上:
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
- Markup Service:提供初始HTML内容、处理用户动作(如按钮点击)并返回更新后的页面片段
- Registration Service:支持Consumer向Producer注册,用于身份识别与个性化配置
- Service Description:通过WSDL和XML Schema声明Portlet能力(支持的操作、参数、生命周期行为)
-
Lifecycle & Navigation:定义Portlet初始化、销毁、状态保存(如
handleEvents、performBlockingInteraction等操作)
为什么说它“基于XML”但不是“XML标准”
WSRP本身不定义新XML标签或文档结构。它复用已有XML技术栈:
- 接口契约用WSDL(XML格式)描述
- 消息体用SOAP(XML格式)封装,含
getMarkup、performAction等操作 - 数据类型、错误码、安全策略等均用XML Schema定义
- 所有交互必须符合WSRP 1.0规范中对XML命名空间、元素结构、必需属性的强制要求
实际部署中的典型流程
一个企业门户想接入外部天气Portlet,无需下载代码或部署Java应用:
- 门户作为WSRP Consumer,发现远程Producer的WSDL地址(如
http://weather.example.com/wsrp?wsdl) - 解析WSDL,确认其支持
getMarkup和performBlockingInteraction - 发起
register请求,获得唯一registrationHandle - 后续每次渲染,发送带
portletHandle和registrationHandle的getMarkup请求,接收HTML片段直接插入页面









