3、用Web服务构建企业门户网站
为了使将 WSRP 服务动态集成到门户网站中尽可能简单,我们需要集成一个查找和绑定功能。可以将一个 UDDI 注册中心当作发布和查找 WSRP 服务的注册中心。这个 UDDI 注册中心可以是一个局限在公司网络中的专用 UDDI,也可以是公用 UDDI 目录。希望提供或使用 WSRP 服务的客户机应用程序可以执行下面的操作:(如图3所示)
·将 Portlet 作为 WSRP 服务发布:管理员使用发布函数将 portlet 作为 WSRP 服务发布到 UDDI 注册中心。例如,门户网站的管理函数可以读取门户网站的 portlet 注册中心,并显示所有可用的 portlet,这样,portlet 管理员就可以选择要发布的 portlet 了。
·查找和绑定远程 Portlet Web 服务:查找和绑定管理函数让管理员可以搜索 UDDI 注册中心来查找 WSRP 服务。对于一个选定的服务,管理函数可以在 portlet 注册中心中自动生成一个绑定到该服务的 portlet 代理。
·选择代表 WSRP 服务的 portlet 代理:在管理员将 portlet 代理绑定到 WSRP 服务之后,用户就可以将 portlet 代理放在他们的一个个人页面上去了。
图3 用WSRP服务查找和绑定远程Portlet
图4和图5演示了用Web Service 构架门户网站整个业务流程。当Portlet接收一个需要交互式远程服务请求时,Portlet通过SOAP Proxy产生应答;Proxy包装这些参数,转换为SOAP的请求,并将请求送给远程Web Service。 Web Service通过SOAP Wrapper来接收SOAP请求,还原这些参数,使用参数完成本地服务,当web Service 返回结果时,SOAP Wrapper 将结果数据转换为SOAP的响应,并把它送回来到SOAP Proxy,SOAP Proxy最后还原成结果数据,并以一个适当的形式返回到原先请求的portlet。
为了简化在Portlets中使用Web Service,象IBM等公司提供一个Web Service Proxy产生器工具,该工具能够从一个WSDL接口文档自动产生客户代码,并且实现可选择的服务实施文档。如果只有一个服务接口文档被用,服务代理产生器工具产生一个通用的服务代理,它能被用到存取给定的任何服务实施。 如果一个服务接口和一个服务实施都被用,服务代理产生器工具产生一个服务代理只能存取服务实施。 服务代理包含在服务接口文档里面,它是一个特定的绑定的代码。 举例来说,如果绑定是一个SOAP绑定,然后服务代理将会包含用来启动服务的SOAP客户代码。