企业门户关键技术:Portlet的研究
2008-12-20
作者:李永刚,张丽芬
在新经济时代,信息的重要性日益突现出来,企业竞争力的提高越来越多的依赖于企业查询、发布、采集、处理信息的能力。Internet的迅速发展使企业很容易获得大量信息,但是如何从这么多信息的信息中提炼出对企业有用的确是企业亟待解决的难题。1998年11月,Merrill Lynch发表了EIP(Enterprise Information Portal企业信息门户)报告,指出EIP是使企业摆脱内部和外部存储信息的限制,简单快速的获取商业信息,进行决策的途径。
那么何为企业信息门户?企业信息门户是一个应用系统,它使企业能够释放存储在企业内部和外部的各种信息,使企业员工、客户和合作伙伴能够从单一的渠道访问其所需的个人化信息。门户网站提供了集成的内容和应用,以及统一的协作工作环境。目前,门户已经被公认为是下一代桌面,是接触用户和满足用户体验的关键,也是实现企业应用集成" title="应用集成">应用集成(EAI)的重要途径。
目前开发门户技术分为两大主流:
2 一种是以微软" title="微软">微软为首的.Net技术,典型代表产品Microsoft? SharePoint? Portal Server,依靠微软强大的操作系统平台和办公软件的支持,内置了许多功能强大的Web组件,如Office组件、Exchange组件;优点是与Microsoft自身知识管理产品相匹配,但是他的缺点也很明显,与主流的企业软件不易集成;
2 另一种是基于J2ee技术发展的门户系统。代表产品有IBM的WebSphere Portal、Sun的iPlanet Portal Server、Bea的Web Logic Portal等产品,由于这些软件都是基于J2ee框架的,所以在功能上都很相似:支持门户个性化、活动管理、跨应用的单一登入、身份验证、权限管理和Portlet间的通信,也提供了不同数据库的选择;
评价一个门户产品的好坏最重要的是看它所支持的Portlet有多少,因为门户各种功能的实现都依赖于相应的Portlet。由于SharePoint运行平台的限制(只能运行在Windows平台)和第三方" title="第三方">第三方的组件相对缺乏,这就决定了它在企业级门户应用的不足;而基于J2ee技术的门户产品,由于其强大的跨平台性以及众多的第三方Portlet开发厂商的支持,称为门户产品的主流。
Portlet 是企业信息门户网站的心脏,它是可重用的组件,提供对应用程序" title="应用程序">应用程序、基于 Web 的内容和其它资源的访问。有了Portlet,开发者很容易依据企业需求快速的用已有的Portlet定制出一个功能强大的企业门户系统;同时这样的门户系统由于实现了模块化,也很容易维护。比如,企业要把公司的现有CRM集成到现有门户系统,那么我们不需要对CRM进行改动,只是开发或者购买第三方的具有相应功能的Portlet添加到门户系统就可以了。
2、Portlet技术
2.1、 Portlet简介
Portlet 是在门户中运行的 Web 页面的一部分,从最终用户的角度看,Portlet 是一个能够在Web页面显示出来的工作区域。每个 Portlet 将管理浏览器屏幕的一小部分,为您执行一项服务。所有的 Portlet都将检索来自数据库或其他来源的信息、转换这些信息,并将这些信息显示到浏览器屏幕上;从开发者角度看,Portlet是采用J2EE技术开发的并且运行在门户网站的Portlet容器(Container)中的插件;Portlet在许多方面都类似于Servlet;比如说:Portlet用Portlet API(参阅JSR-168 该规范现在处于审查状态[1])来编写,就象Servlet用Servlet API来编写一样,还有Portlet是运行在Portal环境中,Portlet 容器提供了 Portlet 初始化、使用和最后销毁的运行时环境;而Servlet运行在Web服务器端的Servlet容器中。两者不同的是Servlet直接与客户端通讯,而Portlet则通过Portal的应用来调用。Portlet只有在生成了适合在大页面中显示的内容之后,才会在Portal环境中适当运行,一个Portal页面是一系列Portlet的集合;
从上图可以看出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