Portal知识总结
- 格式:pdf
- 大小:510.97 KB
- 文档页数:15
门户网站集成技术一、总述本公司门户网站是基于开源Portal进行开发,满足JSR168标准,Portal的核心架构是完全基于Web Services 的开发体系结构。
其核心门户服务器(Corporate Portal Server)是门户中最主要的部件,主要提供门户内展现服务、个性化页面、社区、知识目录、管理分级等功能。
Enterprise Portal具有最广泛的平台及标准支持,同时支持J2EE 和.Net平台。
二、技术词汇先来了解一下,门户集成技术所用到技术词汇。
1.Portlet规范:随着企业级portal的大量涌现,不同提供商创建了不同的portal组件api,即portlet。
不兼容给应用服务商portal用户和portal server 提供商都造成了问题。
为了消除这些问题,jsr168,即portlet规范提出。
portlet规范,即JSR(java specification request)168,JSR168是Java 规范要求(Java Specification Request ,JSR)的缩写,它为创建Portlet建立标准的API。
很多重量级的Portal开发商和开源项目组参与了Java标准化组织(Java Community Process)创建过程,JSR168在2003年10月正式发布。
最主要的Portal开发商已经宣布计划支持JSR 168标准。
以下就是支持JSR 168标准的Portal开发商:Accenture、Apache Software Foundation、BEA、Boeing、Borland、Bowstreet、Cap Gemini Ernst & Young、Citrix、Computer Associates、CoreMedia、DaimlerChrysler、Documentum、Enformia Ltd、Hewlett-Packard、Interwoven、Macromedia、McDonald Bradley、Novell、Oracle、Plumtree、SAP、Sybase、Tarantella, Inc、Vignette。
JSR168定义了portlet的运行时环境,即portlet容器;定义了portlet和portlet容器之间的api集,提供portlet存储易失数据和持久数据的机制;提供portlet包含servlet和jsp的机制;定义方便部署的portlet打包方法;提供jsr168规范下的portal的二进制portlet便携性。
2.Portal 和 Portlet 容器Portal概念:英文字面是“入口”,国内有叫“门户”技术的,但“集成”技术更能表达它的意思。
在Portlet规范里是这样讲的:“portal是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。
聚集是指将来自各个信息源的内容集成到一个web页面里的活动”。
Portal的主要任务是将不同的应用程序集合到一个页面,这个页面的外观是Portal用户共有的。
Portal也可以有复杂的个性化特征,这些特征能够给用户提供自定义内容。
Portal页可以有不同的 Portlet 集,以便为不同的用户创建内容。
图1展示了 Portal 的体系结构,比如一个由 WebSphere Portal 提供服务的Portal。
客户端请求由 PortalWeb 应用程序进行处理,它为当前用户检索当前页上的 Portlet。
然后,Portal Web应用程序为每个Portlet 调用 Portlet 容器来通过 Container Invoker API 检索它的内容。
Portlet 容器通过 Portlet API 调用Portlet。
Container Provider Service Provider Interface(SPI)允许 portlet 容器通过Portal 检索信息。
图 1. 基本的 Portal 体系结构Portlet 容器概念:Portlet 容器运行 Portlet,给它们提供所需的运行时环境,并且管理它们的生命周期。
它为Portlet 首选项提供持久性存储,这使得能够为不同的用户生成自定义输出。
3.Portal 页和 Portlet图2展示了基本的 Portal 页组件。
Portal 页表示一个完整的标记文档并且聚集若干 Portlet 窗口;也就是说,它将不同的应用程序用户界面组合到一个统一的表示中去。
Portal 页使用户能够通过登录对话框向 Portal 验证自己的身份以便访问个性化的 Portal 视图。
大部分Portal 页包括一些导航机制以允许用户导航到其他的 Portal 页。
图 2:Portal 页Portlet 窗口包括:标题栏,带有 Portlet 的标题修饰,包括用于更改 Portlet 的窗口状态的按钮(比如最大化或最小化 Portlet)和用于更改 Portlet 的模式的按钮(比如显示帮助或编辑预定义的 Portlet 设置)由 Portlet 产生的内容(也称为一个标记段)。
图 3在不同的浏览器上展示了一个 Portlet 窗口。
如您所见,该portlet 产生的标记段并不局限于 HTML,而可以是任何标记。
图 3:在 HTML 浏览器(顶部)和 WML 浏览器(底部)中显示的PortletPortlet概念:基于Java技术的web组件,由处理请求和生成动态内容的portlet容器管理。
下图显示了在访问一个portal服务器时浏览器中页面的样子。
如果仔细查看浏览器里的页面,就会看到页面是由不同的“窗口”组成的。
一个窗口用于刷新天气,另一个用于新闻,还有一个用于刷新股价,等等。
这里的每一个窗口都代表了一个portlets。
如果看得再仔细些,还会发现每个窗口都有一个标题条和一些按钮,包括最小化和最大化按钮。
在系统里,这些窗口是相互独立开发、各不同的应用。
新闻portlet的开发者创建应用并打包成war格式的文件,随后portal服务器的管理员在服务器上部署该war文件并创建页面,接下来每个用户会选择在他的页面里有哪些应用。
例如,如果用户对股价不感兴趣而对体育感兴趣,他可以用“体育”窗口替换“股价”窗口。
4.Portlet 生命周期基本的 portlet 生命周期必须:初始化,使用初始化类初始化 Portlet 并将其放入服务中。
处理请求,处理不同种类的动作并呈现内容。
完成,使用销毁类除去 Portlet。
Portlet 基于用户与 Portlet 或 Portal页的交互来接收请求。
请求处理分为两个阶段:动作处理如果用户单击 Portlet上的链接,就会触发动作。
动作处理必须在页面上的任何Portlet 呈现开始之前结束。
在动作阶段,Portlet可以改变 Portlet 的状态。
呈现内容在呈现阶段,Portlet 会产生要发送回客户端的标记。
呈现不应该改变任何状态。
它允许一个页面重新刷新而不需要改变Portlet 的状态。
一个页面上的所有 Portlet的呈现都可以并行执行。
Portal页面的元素图2显示了Portal页面的各种元素。
每个portlet页面由一个或多个portlet窗口组成,每个portlet窗口又分为两部分:一个是外观,它决定了portlet窗口的标题条、控制和边界的样式;另一个是portlet段,它由portlet应用填充。
Portal服务器决定了portal页面的整体观感,像标识、标题条颜色、控制图标等。
通过修改几个JSP和css模板文件就可以改变portal的整个观感。
Portal的功能可以分为三个主要方面:1. Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并为其提供必要的资源和环境信息。
Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合成响应。
2. 内容聚集:Portlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们将在“如何创建Portal页面”部分对此做进一步讨论。
3. 公共服务:portlet服务器的一个强项是它所提供的一套公共服务。
这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。
在大部分实现中都有望找到的几个公共服务有:1)单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。
例如一旦我登录了我的intranet网站,我就能访问mail应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。
Portal服务器会为你分配一个通行证库。
你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。
在你已登录到intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。
你对其它应用的访问也将照此处理。
2)个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。
第二,用户可以决定在她的页面上有哪些portlets。
例如,如果我是个体育迷,我可能会用一个能提供我钟爱球队最新信息的portlet来取代股票和新闻portlets。
一些在个性化服务方面领先的商业实现版本允许你建立为用户显示什么样的应用所依据的标准(如收入和兴趣)。
在这种情况下,可以设定一些像“对任何收入为X的用户显示馈赠商品的portlet”和“对任何收入为X的用户显示打折商品的portlet”这样的商业规则。
此外还有一些公共服务,比如机器翻译,是由portal服务器将portlet生成的内容翻译为用户要求的语言。
大部分的商业portal服务器都支持手持设备访问并具有针对不同的浏览终端生成不同内容的能力。
Portlets :“Portlets是一种Web组件-就像servlets-是专为将合成页面里的内容聚集在一起而设计的。
通常请求一个portal页面会引发多个portlets被调用。
每个portlet都会生成标记段,并与别的portlets生成的标记段组合在一起嵌入到portal页面的标记内。
” portlets还提供了一些附加的功能:1.设置参数的持久化存储:portlets提供了一个PortletPreferences对象用来保存用户的设置参数。
这些参数被存入一个持久化数据库,这样服务器重启后数据依然有效。