(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf_第1页
(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf_第2页
(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf_第3页
(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf_第4页
(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机软件与理论专业论文)portlet语义互操作方法的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

p o r t l e t 语义互操作方法的研究与实现摘要 论文题目: 专业: 硕士生: 指导教师: p o n l e t 语义互操作方法的研究与实现 计算机软件与理论 周青云 李师贤教授 摘要 目前,门户( p o r t a l ) 在企业中获得了广泛的应用,p o r t a l 是一种w e b 应用, 主要用于构建分层次、个性化的信息和应用入口,将来自各个信息源的内容集成 到一个w e b 页面中,并为信息系统提供统一的表现层界面。p o r t l e t 是门户的核心 组件,它是一个j a v aw e b 组件,p o r t a l 使用p o r t l e t 提供信息系统的表示层。当企 业门户开发人员通过p o r t l e t 集成企业现有的应用系统时,为了提高信息服务效 率,带来更好的用户体验,一些业务逻辑需要不同的应用之间进行互操作来协同 完成,这说明p o r t b t 之间需要某种互操作能力。但是现有的j a v ap o r t l e t 协议在 p o r b t 互操作问题上存在缺陷,j s r1 6 8 仅支持使用p o r t l e t s e s s b n 这种非常简单 的p o r t b t 互操作方式,这种方式最大的缺点在于只有属于同一个w e b 应用的 p o r t b m 间才能共享属性,而且容易出现属性被误改而导致流程混乱等安全问题。 j s r2 8 6p o r t l e t 协议虽然提供了事件和共享呈现参数这两个新的特性用于祢补 j s r1 6 8 的不足,使得程序员可以通过发送事件和接收事件以及设置共享的呈现 参数来实现p o n b t 之间的通信,但仍然存在配置工作量大、p o r t l e t s 间所有的交 互逻辑都要硬编码、协作模式单一等问题。 本文提出了一种基于本体的p o n k t 语义互操作方法,主要通过扩展p o r t l e t 生成的标记片段及j s r2 8 6p o r t l e t 协议提供的p o r t l e t 过滤器来获得p o r t l e t 间的互 操作能力,并且不需要对集成的应用或服务做任何修改。其基本思想是:将参与 互操作的p o r t b t 在p o r t l e t 过滤器中通过解析标记语言代码片段和属性特征提取 输入输出数据的相关信息,然后将输入腧出数据映射到本体库中,从而完成自 动注册p o r t l e t 的语义信息。接着基于本体建立输入和输出数据之间的语义关联, 进行相应的数据转换,根据转换结果扩展p o r t l e t 生成的标记片段实现p o r t l c t 互 操作。最后,采用a p a c h ep l u t o2 0 + t o t m a t6 0 作为p o r t a l 服务器和p o r t l c t 的容 p o r t l e t 语义互操作方法的研究与实现摘要 器实现了本文提出的基于本体的p o r t l e t 语义互操作方法,实验证明该方法有效 地解决了现有的j a v ap o r t l e t 协议在p o r t l e t 互操作问题上存在的缺陷。 关键词:f - j p 、本体、互操作 t i t l e : m a j o r : n a l m : s u p e r v i s o r : t h er e s e a r c ha n di m p l e m e n t a t i o no f p o r t l e ts e m a r a i ci n t e r o p e r a b i l i t y c o m p u t e rs o r w a r ea n dt h e o r y q m g y u l lz h o u p r o s h i x i a nl i a b s t r a c t a tp r e s e n t , p o r t a l sh a v eb e e ni naw i d er a n g eo f a p p l i c a t i o n si nt h ee m e r p r i s e a p o r t a l i saw e bb a s e d a p p l i c a t i o nt h a tc o m m o n l y c o n s t r u c t sh i e r a r c h i c a la n d p e r s o m l i z e dg a t e w a y so fa p p l i c a t i o n s ,i n t e g r a t e sc o n t e m sf r o md i f f e r e ms 0 1 北e s w i t h i naw e bp a g e ,a n dp r o v i d e su n i f o r mp r e s e n t a t i o nl a y e ro fi n f o r r m t i o ns y s t e m s p o r t l e ti st h ec o r ec o m p o n e n to fap o r t a l , a n di t sa l s oaw e bc o m p o n e n to fj a v a p o r t a l su s ep o r t l e t sa sp l u g g a b l eu s e ri n t e r f a c ec o m p o n e n t st op r o v i d eap r e s e m a t i o n l a y e rt oi n f o r m a t i o ns y s t e r m ,b e f o r ed e v e l o p e r si ne n t e r p r i s eu s ep o r t l e t st oa g g r e g a t e e x i s t i n gw e ba p p l i c a t i o mi no r d e rt oi m p r o v et h ee f f i c i e n c yo f i n f o r r m t i o ns e r v i c e s a n db r i n gab e t t e ru s e re x p e r i e n c e ,s o m eb u s i n e s sl o g i ch a v et ob ef i n i s h e db y c o l l a b o r a t i v ei n t e r o p e r a t i o nb e t w e e nd i t t e r e ma p p l i c a t i o m t h i ss h o w st h a tw en e e d s o m ek i n do f i n l e r o p e m t i o nb e t w e e n p o r t l e t s t h ej s r16 8s t a n d a r dp e r m i t sd i s t i n c t p o r t l e t ss h a r eac o m m o np i e c eo f i n f o r m a t i o nb yu s i i l gp o r t l e t s e s s i o n , b u tw i t h i nt h es c o p eo ft h es a m ep r o d u c e r p o r t i e t sw h i c hp e r t a i nt od i s t i n c t p o r t l e ta p p l i c a t i o n s ”r e r m i ni s o h t e d t oo v e r c o r l 蟹 s o m eo ft h e s ed r a w b a c k s ,j s r2 8 6p r o v i d e st w on e wf e a t u r e s :e v e n t sa n dp u b l i c r e n d e rp a r a m e t e r s e v e n t se m b l eap o r t i e tt 0s e n da n dr e c e i v ee v e n t s ,a n dp e r f o r m s t a t et r a n s i t i o n , o rs e n df u r t h e re v e n t sa l i e rp r o c e s s i n g0 1 1 e p u b l i cr e n d e rp a r a m e t e r s a l l o wap o r t l e tt os h a r ep a r a r n e t e r sw i t ho t h e rp o r t l e t s h o w e v e r , t h e r ea r es t i l ls o m e p r o b l e m si nj s r2 8 6 ,s u c h 船h e a v yw o r k l o a di nc o n f i g u r a t i o n , h a r dc o d i n go f i n t e r o p e r a t i o nb g i c ,a n dr l oa l t e r n a t i v ec o o p e r a t i v em e t h o d s t h i sp a p e rp r e s e n t sal l e wa p p r o a c h , w h i c hu s i n go n t o l o g ya n de x p a n d i n gt h e m a r k u p so fp o r t l e tf r a g m e n t sa n dp o r t l e tf i l t e rs u p p o r t e db yj s r2 8 6 ,t os u p p o r t i i i ! 堕堕壁地型! 婴! 竺型型! 竺璺2 12 塑! 壁! 竺型堡坠竺2 竺些! ! 堡兰垒! 苎r 竺 s e r m n t i ci n t e m p e r a t i o no f p o r t l e t s t h em a i ni d e ai st h a t , i tm a p st h ei l 】p u ta n do u t p u t d a t ao f p o r t l e t si n t ot h ep r o p e r t i e si no n t o b g yf i b r a r y , t h e nd o e ss o m et r a m f o r m a t i o n b e t w e e nm p u ta n do u t p u td a t ab a s e do nt h es e r m n t i ci n f o r t m t i o n a f t e rt h a t , w e 锄 a b l et oi n t e g r a t et h ec u r r e n ta p p l i c a t i o mi n t op o r t a lw i t h o u tm o d i f i c a t i o ma n da c h i e v e i n t e r o p e r a t i o nb e t w e e n p o r t l e t s t h i sp a p e rc h o o s e sa p a c h ep l u t o2 0a n dt o m c a t6 0 ( p o r t a ls e r v e ra n dp o r t l e t c o n t a i m 0a sd e v e l o p m e me n v i r o n m e n t , a n di m p l e m e m st h ep r o p o s e da p p m a c kt h e r e s u l t so fe x p e r i m e n t ss h o wt h a t , i tc a ne f f e c t i v e l yo v e r c o m et h ed r a w b a c k si nt h e c u r r e n tj a v ap o r t l e ts t a n d a r d k e yw o r d s :p o r t l c t , s e m a n t i ci n t e r o p e m t i o r t , o n t o l o g y , j s r2 8 6 i v 论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:廛! 盎兰: e l 期:逸坦:6 :鱼 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电 子版和纸质版,有权将学位论文用于非赢利目的的少量复制并允许论 文进入学校图书馆、院系资料室被查阅,有权将学位论文的内容编入 有关数据库进行检索,可以采用复印、缩印或其他方法保存学位论文。 学位论文作者签名:1 碗霭厶导师 日期: 7 ,年6 月6 日 日期 , , p o n l e t 语义互操作方法的研究与实现第1 章绪论 第1 章绪论 p o r t a l 是一个基于w e b 的应用程序,它主要提供个性化、单点登录、不同来 源的内容整合以及提供信息系统的表示层【l 】。p o r t a l 模型的核心技术是p o r t l e t , p o r t l e t 是基于j a v a 技术的w e b 组件,用于集成和封装各种应用和服务。一个p o r t a l 页面中通常包含多个p o r t l e t ,可以在同一界面中为用户提供多种不同来源的内容 显示,当门户开发人员通过p o r t l e t 集成企业内外部的大量应用系统时,为了提 高信息服务效率,带来更好的用户体验,一些业务逻辑需要不同的应用之间进行 互操作来协同完成。因此,企业采用门户进行应用集成的关键是解决p o r t l e t 之 间的互操作问题。 1 1 课题研究的背景及意义 传统的观点认为门户( p o r t a l ) 就像一个大杂烩,将各种有关或无关的东西 全部糅合到一起( 如新浪、网易等门户网站) 【2 】。随着门户的发展,出现了许多 新的功能,用户可以开始对门户进行一些个性化的设置,如字体、背景图片、背 景色等。提供自定义的特性可以使每个人访问门户时浏览器中显示的内容完全不 同,如甲看到的是足球新闻和股票,乙看到的是娱乐和i t 资讯,这样用户就拥 有了个性化的门户。经过自定义后,不同种类的信息掺和在一起形成一个统一的 界面,如图1 1 中的i g o o g l e 个性化主页所示,这是目前非常流行的一种做法, 在一个门户页面上放置多个大小和形状不一的矩形框,每个框代表一个p o r t l e t , 每个p o r t l e t 显示个方面的内容。维基百科中对于门户定义是:“以统一的方式 显示来自不同地方的信息 ,将p o r t l e t 定义为“可插拔的用户界面组件 1 3 】。门 户的目标就是为不同用户提供个性化的设置从而显示不同的p o r t l e t ,以满足用户 的需求。 通常来说,企业级的应用集成分三层:表示层,业务逻辑层和数据层。数据 层集成主要关注于数据存储,使得相关应用程序的业务可以共享不同的数据源, 这是最灵活的一种集成方式,完全忽视应用程序和业务逻辑。业务层集成目标在 p o r i m 语义操作方法w 究与实m 第1 章绪论 于集成应用或业务逻辑,主要依赖丁中间件 - t 一 嫂翦鳆 ” 堕,一一 一一 图l - 1i g o o 曲的个性化主页 表示层集成是将应用系统的用户界面集成起来。这是侵入性最低、代价最小 的一种集成方式,而门户就提供了一种在表示层上集成各种异构应用和服务的能 力。经过这几年的发展,门户的应用已经扩大到企业内部中去了,包括内部门户, b 2 b 等形式,如企业财务门户将各种财务信息聚合到一起,分别以p o r t l e t 形式 展示,如银行账户、信用卡、保险、基金股票投资等,财务部门人员就可以一次 性获得各方面的财务数据。这种使用企业级门户将不同的应用程序和服务的用户 界面放在同一个门户页面上是虽简单的表示层集成,使得用户可以快捷地获得更 为全面的信息。但是,对于企业级门户,这种简单的集成能力显然不够的,一个 p o r t l e t 很可能需要另一个p o r t l e t 中所显示的信息,这时如果p o t t i e r 之问无法交 互的话,用户就必须手动复制数据或者直接在目标p o t t i e r 输入,既影响了操作 的流畅性,又容易导致一些不必要错误的发生。这说明p o r t l e t 之间需要某种共 享数据、协同工作的能力这样才能带来良好的用户体验。 此外,由于p o r t l e t 是门户虽核心的组件,p o r t a l 要依赖p o r t l e t 提供信息系统 的表示层,所以在门户中集成现有应用时,必须先用p o r t l e t 包装这些应用,郎 以某种方式将它们转换为p o r t l e t ,然后才能在门户中访问。因此从某种意义上讲, 特别是在表示层,要解决这些应用之间的集成问题就必须为它们所对应的p o t t i e r 之间提供有效的互操作能力。 早期的w e b 门户都是采用封闭式开发的,自家开发的p o r t l e t 只能在个特 p o n l 就语义互操作方法的研究与实现 第1 章绪论 定的p o r t l e t 容器中运行,不具有良好的兼容性,遇到新项目或需求变化时,开 发人员不得不重新修改p o g t 代码。这种情况直到2 0 0 3 年s u n 发布j s r1 6 8 1 】 规范后才得到改善,它提供了一个标准p o r t l e t a p i ,定义了p o n l e t 生命周期和其 它重要属性。即使到了今天,很多p o r t l e t 和p o r t l c t 容器都仍然遵循j s r1 6 8 规 范,凡遵循这些规范编写的p o r t l e t 几乎都有很好的移植性。 然而,对于互操作问题,j s r1 6 8 仅支持使用p o r t l e t s e s s i o n 这种非常简单的 p o r t l e t 互操作方式,就是向p o r t l e t s e s s i o n 中写入s c o p e 为a p p l i c a t i o ns c o p e 一 的属性,使得所有p o r t l e t 都能读写该属性,从而通过共享该属性实现通信。这 种主要方法有两个缺点:( 1 ) 由于p o r t l e t s e s s i o n 是基于h t t p s e s s i o n 的调用, p o r t l e t s e s s i o n 的s e t a t t r 矗) u t e 方法设置属性的时候,实际上是最后是调用了 h t t p s e s s i o n 的s e t a t t r i b u t e 方法,因此只有属于同一个w e b 应用的p o r t l e t s 间才 能共享属性;( 2 ) 如同全局变量一样,容易出现属性被误改而导致流程混乱等安 全问题。 2 0 0 8 年发布的j s r2 8 6p o r t l e t 4 】协议提供的事件和共享呈现参数这两个新的 特性用于祢补j s r1 6 8 在p o r t l e t 互操作问题上的缺陷,使得程序员可以通过发送 事件、接收事件以及设置共享的呈现参数来实现p o n b t 之间的通信。虽然这些 新特性解决了j s r1 6 8 仅使用p o r t l e t s e s s i o n 进行通信所带来的限制,但仍然存在 以下问题:( 1 ) 这两种方法都需要程序员在p o r t l e t x m l 中进行大量的配置工作, 而且p o r t l c t s 间所有的交互逻辑都要硬编码在p o r t l c t 中;( 2 ) 只支持一对多的协 作模式,即被a c t i o nu r l 触发的目标p o r t l e t 和同一个p o r t a l 页面中其他p o r t l e t 之间进行通信。 由于现有的j a v ap o n l e t 协议在p o n l e t 互操作问题上存在缺陷,而门户又非 常需要一种有效的p o r t l e t 互操作方法。因此,本文提出了一种基于本体的p o r t l e t 语义互操作方法,采用基于前端的实现策略( 基于前端是指p o r t l e t 互操作的行 为在客户端触发,p o r t l e t 之间的协作通过u r l 请求完成) 。该方法主要通过扩 展p o r t b t 生成的标记片段及j s r2 8 6p o r t l c t 协议提供的p o r t l e t 过滤器来获得 p o r t l e t 间的互操作能力,并且不需要对集成的应用或服务做任何修改。 p o t t i e r 语义互操作方法的研究与实现第1 章绪论 1 2p o r t l e t 概述 p o r t b t 是基于j a v a 技术的w e b 组件,它由p o r t l e t 容器管理、处理请求,并 动态生成输出内容。p o r t l e t 容器是根据门户提供的p o r t l e t 标准a p i 实现的供 p o r t l e t 运行的环境,p o r t l c t 被p o r t l c t 容器初始化、调用和销毁。j a v ap o r t l c t 容器 是在j a v as e r v l e t 容器基础之上实现的,并重用j a v as e r v l e t 的功能。从技术角度 来说,p o a b t 容器可以看作是p o n l e t 和门户之间的接口,而门户( p o r m l ) 实际 上就是p o r t l e t 容器的容器。下面详细讲述j a v ap o r t l e t 的两个标准规范j s r1 6 8 和j s r 2 8 6 。 1 2 1j s r1 6 8 2 0 0 3 年1 0 月,j a v ac o m m u n i t yp r o c e s s 发布了j a v as p e c i f i c a t i o nr e q u e s to s r ) 1 6 8 的最终版本:p o n l e ts p e c i f i c a t i o n 1 1 。j s r1 6 8 是第一个阐述j a v ap o r t l e t 开发 的编程标准。此前,在不同的p o r t a l 服务器上开发的p o r t l e t 之间无法兼容,j s r 1 6 8 的提出解决了兼容性问题,使得p o n l e t 具有很好的可移植性,j s r1 6 8 消除 了企业应用p o r t l e t 的担忧。 一回 一回 一圜 一回 图1 - 2 门户页面的创建过程 图1 2 显示了生成一个p o r t a l 页面的过程【1 】。首先,用户通过客户端设备如 h t m l 浏览器或具有上网功能的手机来访问p o r t a l ,服务器收到请求后,p o r t a l 会根据配置文件决定需要执行的p o r t l e t 的列表来满足请求。通过p o r t l c t 容器, p o r t a l 可以调用相应的p o r t l e t 。p o r t l c t 生成标记代码片段,接着p o r t a l 会为p o r t l e t 4 p o r t l e t 语义互操作方法的研究与实现第l 章绪论 生成的标记代码片段添加标题、控制按钮及其它修饰,加了修饰后的片段称作 p o r t l e t 窗口,然后p o r t a l 会将p o r t l c t 窗口组成一个完整的p o r t a l 页面( 如图1 - 3 1 】 所示) ,然后发送给客户端设备( 如浏览器) ,最后用户就可以看到了。 图1 - 3 一个门户页。面的组成元素 在p o r t l e t 被正确初始化后,p o r t l e t 容器会调用p o r t l e t 来处理客户端请求。 在j s r1 6 8 中,p o r t l e t 接1 2 1 定义了两个方法来处理请求:p r o c e s s a c t i o n 方法和 r e n d e r 方法,而在j s r1 6 8p o r t l c t 的开发中,开发者通常继承抽象类 j a v a x p o r t l e t g e m r i c p o r t l e t 来实现自己的p o n k t 逻辑代码( 如图1 4 所示 g e n e r i c p o r t l e t 的类图【5 】) 。如果p o r t b t 请求是一个动作请求,p o r t l e t 容器就调用 p o a b t 的p r o c e s s a c t i o n 方法。如果p o r t l e t 请求是一个渲染请求,p o n l e t 容器调 用p o r t b t 的r e n d e r 方法。 客户端的请求是通过p o r t b t 生成的u r l s 来触发的,这些u r l s 可以被称作 p o r t b tu r l s ,一个p o r t l c tu r l 指向一个特定的p o r t l e t 。p o r t l e tu r l 分为两种: 动作( a c t i o n ) u r l s 和渲染( r e n d e r ) u r l s 。就p o r t a l 页面上的一个p o r t l c t 而 言,动作u r l 请求会被翻译成一个动作请求和多个渲染请求;而被渲染u r l 触 发的客户端请求,则只被翻译成多个渲染请求。 图1 5 显示了个p o r t l e t 请求被处理的流程【1 1 。如果客户端请求是被动作 u r l 触发的,p o r t a l 或p o r t l c t 容器会首先通过调用目标p o r t l e t 的p r o c e s s a e t i o n 方法来触发动作请求,然后必须等到动作请求完成后再调用p o r t a l 页面上所有 p o n b m 的r e n d e r 方法来触发渲染请求,同时还需要处理内容已被缓存的p o r t l c t 5 p o t l l e t 语义操作方涪的研究与实 第l 章绪论 的可能异常 图i - 4j s r l 6 8 g e n e r i c p o r t l e t 类图 如果客户端请求被渲染u r l 触发,p o r t a l 或p o n l h 容器必须调用p o r 诅l 页 面上所有p o n b b 的r e n d e r 方法来触发渲染请求,同时还需要处理内容已被缓存 的p o a l e t 的可能异常。渲染请求会被依次地或同时地执行。而p o r t a l 或p o a i e t 容器无须为此客户端请求调用p r o c e s s a c t i o n 方法。 c 一,:碟“,警 p 一 皿o h 1 0 _ _ 图1 - 5 p o r t l e t 请求的处理流程 i l2 拳怒 篙:岩。 溉 、lrj p 砥l e t 语义互操作方法的研究与实现第1 章绪论 1 2 2j s r2 8 6 虽然j s r1 6 8 自提出后就在业界得到了广泛的支持,但是j s r1 6 8 存在一定 的缺陷,仅支持最基本的用例,而且在功能上有一些限制。因此,在提出j s r1 6 8 之后的三年时间里大多数支持j s r1 6 8 标准的门户产品都提供了一些扩展的功能, 支持更复杂的用例,这些附加的功能导致各个门户产品的标准不统一,于是又出 现了p o r t l e t 的兼容性问题。为了适应业界的发展,并且更好地规范p o r t l c t 开发, 在2 0 0 8 年6 月正式发布了j a v ap o r t l e ts p e c i f i c a t i o nv 2 0 ( 简称为j s r2 8 6 ) 【4 1 。 j s r 2 8 6 完全兼容j s r1 6 8 ,并提供了很多j s r1 6 8 所没有的新特性,例如事件、 资源服务、共享呈现参数、p o r t l e t 过滤器及p o r t l e t 窗口等。 图1 - 6 是j s r2 8 6g e n e r i c p o r t l e t 类的类图【5 1 ,同j s r1 6 8 相比,为了实现事 件处理和资源服务这两个新功能,j s r2 8 6 的g e n e r i c p o r t l e t 类增加了对 j a v a x p o r t l e t e v e n t p o r t l e t 和j a v a x p o r t l e t r e s o u r c e s e r v i n g p o r t l e t 接口的实现。因此, 符合j s r2 8 6 规范的p o r t l e t 可以定义四种生命周期方法来处理请求: p r o c e s s a c t i o n 、p r o c e s s e v e r a 、r e n d e r 和s e r v e r e s o u r c e 方法。和j s r16 8 一样,如 果p o r t l c t 请求是一个动作请求,p o r t l e t 容器就调用p o r t l c t 的p r o c e s s a c t i o n 方法。 如果p o r t l e t 请求是一个渲染请求,p o r t l c t 容器调用p o r t l e t 的r e n d e r 方法。而新 增的p r o c e s s e v e r s 方法用于事件的接收处理,s e r v e r e s o t r e e 方法用于接收由 r e s o u r c e u r l 触发的请求。下面主要介绍与本文相关的三个特性:p o r t l c t 过滤器、 事件和共享呈现参数。 ( 1 ) p o r t l e t 过滤器( p o r t l e tfi l t e r ) p o r t l e t 过滤器可以放置在j s r 2 8 6 规范提供的任何生命周期方法调用的前面 或者后面( p r o c e s s a c t i o n 、p r o c e s s e v e m 、r e n d e r 、s e r v e r e s o u r c e ) ,而且还支持这 些生命周期方法使用包装的请求和响应。与s e r v l e t 过滤器类似的是,p o n l e t 过 滤器需要在p o r t l e t x m l 部署描述符中进行定义,一个p o r t l e t 过滤器的声明包括两 部分:过滤器的定义声明( 使用 标签) 以及过滤器的映射声明( 使用 标签) 。与s e r v l e t 过滤器不同的是,s e r v l e t 只有一个s e r v i c e o 的 请求处理方法,因此s e r v l e t 只有一种类型的过滤器,而p o n l e t 却有四种请求处 理方法,于是有四种类型的过滤器,包括:a c t i o n 过滤器、r e n d e r 过滤器、r e s o m e e 过滤器和e v e n t 过滤器。 7 p o r t l c t 语义互操作方法的研究与实现 第1 章绪论 了 接口 l0 r e r t l 。t h “一 l i n i t ( ) l p r o e s s s a c t i 姐【) l r u x d e r ( ) d e s t r o y ( ) 丽i 箍习际蕊嗣鼯嗣 j p r o c e 。s s z v e n t ( ) 7 i z e r o s o 口c o ( ) j j b - ;b 0 g u e r i r f e r l i ,c , * n e r i d o t t l e t ( ) i n i t ( ) i a i t ( ) 乞p r o c e s s a c t i o 血( ) 厶r m d e r ( ) 0e t t t i t l e ( ) od o d i s p a t d ( ) 备d o y i t t ( ) od o e d i t ( ) od o h e l p ( ) g e t p o r n e t c o n f i ( ) 厶d e s t r o y ( ) 屯e t p o r t l e t i - ( ) ig e t p o r t l e t c o n t e x t ( ) 黾g e t r e s o u r c e 田u n d l e ( ) 厶g e t i “t p t r m e t e r ( ) 色g e t 工h it p * r m t t e r l m e s ( ) 气g e t p r o c e s s i 啦v e n t q n g t e s ( ) 蠢g e t p 曲l is k i n 吐v e n t g m m e zc ) e kg e t s p p o r t e d l o c a l e s ( ) 气c e t c o n t t i n e r r e n t i m * f f p t io 砧c ) 讼s 州e s o u r c e ( ) 厶p r o s e s 吐v e n t ( ) d o m e a d e r s ( ) og e t 耳e x t p o s s i b l e p o r t l 堋o d e s ( ) e t f l l b l ic l l n a “r u - e t e r 翦蛆e s ( ) 气g e t d e f , u l t i m e s p t c e ( ) 图1 - 6j s r2 8 6g e n e r i c p o n l e t 类图 j s r 2 8 6 为四种p o r t l e t 过滤器提供了统一的接口类p o r t l e t f i l t e r ,该接口提供 了两个方法: v o i di n i t ( f i l t e r c o n f i gc o n f i g ) 此方法是在调用d o f i l t e r 之前做一些初始化工作,对象f i l t e r c o n f i g 用于保存 p o r t l e t 的配置参数以及对门户上下文的引用。 v o i dd e s t r o y 0 此方法是在要将过滤器从服务移除之时调用的,在该方法中主要做一些释放 资源和清理垃圾的工作。 然后,j s r 2 8 6 又为这四种过滤器分别定义了一个继承自p o r t l e t f i l t e r 接口的 接1 2 类,并各自重载了d o f i l t e r o 方法。图1 7 【5 】是这几个类之间的关系。四种过 滤器分别对p o r t l e t 的四个生命周期方法进行拦截,用户自定义的过滤器必须实 现相应的过滤器接口的d o f i l t e r 方法,在d o f i l t e r o 方法中放置相关的处理程序, 8 p o t t i e r 语义互操作方法的研究与实现第1 章绪论 其对应关系见表1 1 。 r 一一q ”t 1 w , ”囊芒” |0 i l e z m c d i l t e r l 图1 7p o r t l c tf i l t e r 继承图 表1 1 过滤器与拦截方法关系图 过滤器 拦截方法 a c t i o n 过滤器p r o c e s s a c t i o n ( a c t i o n r e q u e s tr e q u e s t , a c t i o n r e s p o n s er e s p o m e ) r e n d e r 过滤器 r e n d e r ( r e n d e r r e q u e s tr e q u e s t , r e n d e r r e s p o n s er e s p o n s e ) r e s o u r c e 过滤器s e r v e r e s o u r c e ( r e s o u r c e r e q u e s tr e q u e s t , r e s o u r c e r e s p o n s e r e s p on s e ) e v e n t 过滤器p r o c e s s e v e n t ( e v e n t r e q u e s tr e q u e s t , e v e n t r e s p o n s er e s p o m e ) 如图1 8 所示1 5 ,当设置了p o r t l e t 过滤器时,p o r t l e t 请求先流经p o r t l e t 过滤 器链,最后到p o r t l e t ,p o r t l e t 调用相应方法处理请求后,p o r t l c t 响应同样先流经 p o r t l e t 过滤器链然后才到达p o r t a l ,p o r t a l 聚集页面内容,最后返回给客户端显 示。 p o a l e t r e q u 鳅 图1 - 8p o r t l e t 过滤器链 9 p o r t i a 语义互操作方法的研究与实现第1 章绪论 ( 2 ) 事件( e v e n t ) j s r2 8 6 定义的事件模型是一种松耦合的代理事件模型。在此模型中,p o r t l e t 定义可以发布和接收事件,在使用事件前,必须先在p o r t l e t 部署描述符( 即 p o r t l e t x m l 文件) 中声明。对于一个事件的声明包括三个部分,分别是事件的定 义声明( 在p o a - e t x m l 中使用 标签) 、事件的发布载体声明也就 是发布该事件的p o r t l e t 声明( 在p o r t l e t x m l 的 元素中用 标签) 、事件接收载体的p o r t l e t 声明( 在p o r t l e t x m l 的 元素中用 标签) 。 事件的发布:在希望发布事件的p o r t l e t 的p r o c e s s a c t i o n 0 方法里通过调用 a c t i o n r e s p o n s e 的s e t e v e n t 0 进行事件发布,s e t e v e n t 0 方法的输入参数为事件的 名称和对应的值,这些参数必须与前面在p o a l e t x m l 中的事件声明一致。 事件的接收:p o a l e t 必须实现j a v a x p o r t l e t e v e n t p o r t l e t 接口,事件的接收处 理则在该接i z l 的p r o c e s s e v e n t 0 方法中进行,j s r 2 8 6 的规范中该方法有两个输入 参数:e v e n t r e q u e s t 和e v e n t r e s p o n s e ,可以通过调用e v e n t r e q m s t 实例的 g e t e v e n t ( ) 方法来获得当前事件,该方法返回一个事件对象的实例,该实例封装 了事件的唯一标识和对应的值。获得事件对象后,同样也可以通过g e t q n a m e s 0 方法或者g e t n a m e o 获得事件的名称。 ( 3 ) 共享呈现参数( p u b l i er e n d e rp a r a m e t e r ) 共享呈现参数,就是指p o r t l c t 之间共享参数,每一个p o r t l e t 对该参数的修 改都能够直接被另外支持该参数p o r t k t 所获得。共享呈现参数与j s r1 6 8 中已经 有的私有呈现参数的区别在于,私有呈现参数只为p o r t l e t 内部使用,而共享呈 现参数则为多个p o r t l e t 之间通信协作而设置。共享呈现参数与事件相比的优势 就在于避免了事件处理过程调用的繁琐。对共享呈现参数的使用声明包括两个部 分,对共享呈现参数定义的声明( 在p o a l e t x m l 部署文件中使用 标签) 和支持共享呈现参数的p o r t 】e t 声明( 在p o r t l e t x m l 中钠n l e t 元素中使用 标签) 。 共享呈现参数可以通过a c t i o n r e s p o n s e 的s e t r e n d e r p a r a m e t e r ( ”标识”,”值- ) 方法设定,该标识必须在p o r t l e t x m l 中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论