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之上:
- 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片段直接插入页面