
从上图可以看出Portlet 不只是现有 Web 内容的简单视图,还是完整的应用程序,符合标准的模型-视图-控制器设计。Portlet 有多种状态和视图模式,还有事件和消息传递功能;
· 模型,为 Portlet 检索的数据源,该数据源可能是本地的也可能是远程的,这些数据源可能来自于其它的数据库、交易系统、联合内容供应商,也可能是另外的远程Web站点;随着门户继续发展为新的桌面和集成标准,如何使门户和其它Web之间通信成为新的课题,现在通用的解决办法是采用xml作为数据交换中介;将Web信息划分为频道,每个频道包含一系列子条目,每个子条目包括标题、标题的描述以及该标题文章在的链接;另外,RSS,OCS和RDF通常都是门户网站采用的描述信息的格式。RSS(Rich Site Summary,丰富站点摘要)是一种深受欢迎且很有用的联合的新闻和娱乐内容格式。可以把内容直接从内容管理系统发布到 Rich Site Summary 和 Open Content Syndication(开放内容联合,OCS)频道,门户网站服务器的内置 RSS Portlet 很容易就能将这些内容显示在频道上。
· 视图,用于显示 Portlet 数据的图形显示机制;Portlet一般都支持多种设备(浏览器)访问,设备可以是用 HTML 来支持使用桌面浏览器的PC,也可以是用 WML 和用 cHTML 标记来支持的移动电话(掌上电脑)。由于Portlet采用MVC设计模式,业务逻辑层和表示层分离,一个业务层可以对应多个视图;这样,控制器可以依据设备调用相应的视图显示;
· 控制器,它连接选定的视图到数据,并指导Portlet 的操作。 控制器根据目标设备或浏览器选择要显示的视图,然后将数据模型传递给视图。视图抽取特定的显示数据,为浏览器格式化数据,然后将其输出提供给浏览器,作为 Portlet 输出的门户网站聚集的一部分。
2.2、Portlet技术应用
在门户世界,门户服务器就象一个大的框架,而框架中的内容、样式、以及风格等都由用户决定, 他们无需程序员就能用Portlet构造和管理他们个人主页的内容(程序员的职责就是开发一个个通用的Portlet)。门户页面中各个区域的内容是独立的,每个区域都是一个特定功能的Portlet程序,可以根据需要显示特定的信息的Portlet。用户可以预先定义每个Portlet所显示的内容。例如,一个News Portlet可以完成收集信息、列出当天最重要的新闻、进行信息检索等功能;而一个ERP Portlet可以把后台ERP系统产生的各种业务数据按照预订的方式显示在门户上,企业管理人员不必直接访问后台的ERP系统就可以获得各种业务数据。由此用户可以组织他们的计算桌面以匹配自己的工作模式和需要,从而使他们能够拥有更高的生产效率、更大的便利性,并且在内部网导航上花费更少的时间。
Portlet有几种显示模式:视图、帮助、编辑和配置,可通过 Portlet 标题栏上的图标调用。Portlet 最初显示是视图模式,当用户和 Portlet 交互时,它会显示一系列视图状态,例如表单和响应、错误消息和其它应用程序特定状态;帮助模式用于为用户提供关于Portlet 的帮助;编辑模式为用户提供改变Portlet 设置的页面,用户可以配置Portlet的状态、显示模式以及颜色等;配置模式为门户网站管理员提供一个页面,用于配置被所有用户共享的 Portlet 设置。每个Portlet 模式有三种显示状态:正常、最大化和最小化。当 Portlet 最大化时,它被显示在整个门户网站页面,遮住其它 Portlet。当 Portlet 最小化时,仅有 Portlet 的标题栏显示在门户网站页上。
目前影响Portlet企业应用主要有两大因素:
一个就是不同的门户厂商针对他们的Portlet有各种各样的PortletAPI,缺乏Portlet开发标准,导致在不同平台上的Portlet不能互用,例如,在BEA WebLogic上开发的Portlet无法用在IBM WebSphere平台上;目前,SUN、IBM等十几家门户厂商正在致力于推动门户标准的制订,为JSR168(一个致力于为Portlet的互用性定义Java API的组织)提供赞助:这一新的Java portlet API将成为最终的Java技术规范,为各种互操作的被称为Portlet的门户组件定义一个公共模式与Java接口,以便使各个门户用户与各种应用相连接。这一新的Portlet API可让应用、内容和服务等的提供商将各种Portlet通过一个公共的标准Java Portlet API执行,并以一种标准的方式组合起来。这样,这些Portlet就能配置在所有相应的门户服务器上。
另一个因素就是Portlet数量过少,解决该问题除了开放标准,鼓励第三方开发商外,另一个途径是把门户与Web服务相结合,把Portlet作为Web 服务发布到网上,用户通过Web服务访问就可以轻而易举地获得数以千计的Portlet。下面我们讨论Portlet如何应用Web服务的关系;
2.3、Portlet与Web服务
Web服务(Web Services)在近期内将成为Internet上自动查找信息和应用的最主要方法,作为Portal,应该能够将数据资源和远程应用集成起来,下面我们讨论Portlet如何使用Web服务;
2.3.1用Portlet来架构Web服务
将Portlet作为远程Portlet Web服务对外发布,使得其它的Portals能够很容易找到并且与之集成。一个典型的例子是新闻Portlet。新闻Portlet使得用户能够配置用于跟踪的新闻分类,然后从Web服务中获取该类别下的最新新闻并且显示出来。在这个例子中,Portlet代码运行在本地的Portal中,利用Web服务来访问信息。Web服务提供信息,本地的Portlet则用于显示这些信息,Web服务返回的信息可以作为一个XML文件。
下图说明了如何用Portlet来架构Web服务;当Portlet接收到请求去访问远程服务,Portlet首先会去调用SOAP代理对象,该代理把请求参数排列成与程序设计语言无关的SOAP请求,再把该请求发送到远程Web服务中。远程的Web服务将接收到的SOAP请求进行拆包,将请求参数进行还原,并且根据这些参数来调用本地的Web服务,完成服务请求。当服务返回结果后,SOAP封装器将结果进行封装成同样与程序设计语言无关的SOAP响应,并且送回给SOAP代理。SOAP代理最后要把返回的结果数据进行拆包,送给调用它的Portlet。

2.3.2 远程门户网站 Web 服务
远程Web服务器,即另外一个Portal,在UDDI目录中发布Portlet作为远程门户 Web服务。这样本地Portal在UDDI目录中就查找远程的Portlet服务并且与他们捆绑在一起。这样使得本地Portal用户不需要在本地Portal服务器上安装Portlet代码就可以直接访问远程的Portlet服务。目前结构化信息标准促进组织(OASIS)成立远程门户网站 Web 服务(Web Services for Remote Portals,WSRP)技术委员会,由 IBM 担任主席的 WSRP [3] 委员会创建 XML 和 Web 服务标准,该标准允许可视的面向用户的服务和门户网站或其它 Web 应用程序间的互操作性。WSRP定义一个通用、清晰的与Web服务交互接口和协议,该接口负责处理用户交互信息以及生成符合门户显示的片段界面。下图为远程Portlet工作机制:当有用户请求访问其它的Portal服务器上的Web服务时,本地Portal服务器通过通用的Portlet代理就可以动态地同远程Portal服务器的Portlets进行通讯。这样以来就不需要在本地的Portal服务器中安装相应的Portlet文件。为了达到这个目的,Portlets本身就必须作为Web服务提供给其它的Portlets,同时必须用WSDL来描述远程Web服务接口。WSDL定义了所有远程Portlets和所需的参数,以及返回值,相应的Portlet API的集合。这样,远程Portlet不一定非要用Java实现,它们也可以用其它的程序设计语言实现。
Web服务供应商如果想发布远程Portlet Web服务,必须先发布适当的UDDI目录入口,以便引导至用WSDL描述的远程Portlet Web服务接口。
远程Portlet一旦发布,Portal管理员就可以用Portal管理工具来搜索UDDI目录,查找用远程Portlet Web服务接口(Remote Portlet Web Services Interface)实现的Web服务,预选一些经过匹配的Portlet Web服务,将它们加到Portal的Portlet注册表中。

3、结论
我们知道,每个企业当前都有许多企业应用系统,如电子邮件、文档管理、企业资源规划(ERP)、客户关系管理(CRM)、供应链管理(SCM)等系统,各个系统没有办法独立实现资源共享。应用Portlet技术可以合并多个企业应用,满足系统之间无缝地共享和交换数据的需要,同时表现为一个可定制的基于浏览器的界面,实现用户单点" title="单点">单点登陆(single sign-on)即可访问各个经过授权的应用。从而给企业带来如下好处:
通过与客户伙伴更紧密的联系、提高生产力、缩短创新的周期,从而使收益增加;通过高效地运营、一致的基础结构、良好的信息流和知识管理,使运营成本下降;通过访问更多有关信息、单点访问应用程序和协作工具,使生产效率得到提高,决策得以改善;通过良好的安全性和单点登录,使得较少的密码需要管理,达到更好的用户体验;通过共同的表达和一致的用户界面,使培训费用降低;统一的应用程序,可使它们的使用寿命延长,并可通过桌面和普及的设备等新方法访问它们。
参考文献:
[1] JSR 168 http://www.jcp.org/jsr/detail/168.jsp
[2] Jetspeed: http://java.apache.org/jetspeed
[3] WSRP: http://oasis-open.org/committees/wsrp
[4] Web Sevies Description Language(WSDL)1.1 Erik Christensen ,Francisco Curbera,Greg Meredith,Sanjiva Weerawarana,2000
http://www.w3.org/tr/wsdl/
[5] IBM开发人员园地 http://www-900.ibm.com
The research of portlet –the key technology of Enterprise Information Portal
Keyword Portlet Web service EIP
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。