计算机系统应用2010

url转向  时间:2021-01-26  阅读:()
年第19卷第10期52研究开发ResearchandDevelopment一种多Portlet互操作框架①刘高嵩卢维龙军(中南大学信息科学与工程学院湖南长沙410075)摘要:企业信息Portal作为企业信息集成的工具,主要是基于Portlet在表现层进行集成.
这种集成实质上就是Portlet之间数据交互问题.
在分析现有数据交互方法基础上,遵循JSR-168和WSRP规范,通过扩展Portlet实现接口,提出了多Portlet数据交互框架,并基于XML技术封装交互信息,实现Portlet之间信息交互.
关键词:门户;企业信息集成;数据交互;Portlet规范;WSRP规范FrameworkofMulti-PortletInteractionLIUGao-Song,LUWei,LONGJun(InstituteofInformationScienceandEngineering,CentralSouthUniversity,Changsha410075,China)Abstract:Portalsareameansintegratingentergrationinformationthroughaportlet,whichisapresentationcomponent.
Itistheessenceofdatainteractionbetweenportlets.
Thispaperproposesanapproachforextendingtheinterfaceofaportletandimplementingaportletcooperationbysupportingthecommunicationbetweenportlets.
TheapproachisbasedonanestablishedportletSpecification,aWSRPSpecification,andananalysisofexistingdataexchangemethods.
ThisapproachallowstheexchangemessageofstructuredXMLbetweenportletstocompletetheworktogether.
Keywords:portal;enterpriseinformationintegration;datainteractive;portletspecification;WSRPspecification1引言企业信息集成是信息技术的研究热点.
企业信息门户为企业应用集成提供了重要的途径,Portal作为企业信息门户,集成各种应用,为信息整合提供个性化交互统一平台.
Portal的核心技术是Portlet组件,Portlet是可复用的Web组件,它由Portlet容器进行管理,接收来自Portal容器的请求并进行处理,产生信息片断,然后Portal服务器聚集片断形成Portal页面[1].
JSR-168和WSRP规范是Portal的两个主要标准.
企业信息集成是将企业内部或企业之间不同企业应用系统的数据和业务处理整合起来,实现跨越应用系统边界集成,同时还要保留原有应用系统,实质上就是实现多个应用系统间互通互联[2].
Portal作为一种企业信息集成的工具,主要是利用Portlet集成来实现企业信息集成.
这种集成实质是通过Portlet之间进行数据交互通信来实现.
但JSR-168并没有明确定义数据如何在多Portlet间传递的互操作.
目前JSR-168支持使用PortletSession这种简单的通信方式,即向PortletSession中添加参数parameter并将该参数的Scope属性设置为APPLICATION-SCOPE,使得所有Portlet都能读写该parameter,从而通过共享PortletSession实现通信[3].
当前主流门户产品在Portlet交互方面大多采用类似方法实现数据传递,如Oracleportal通过页面参数传递的方法进行Portlet交互协作.
首先,在①基金项目:国家自然科学基金(60873081,M0921005,U0835003);高等学校博士学科点专项科研基金(20090162110072)收稿时间:2010-01-15;收到修改稿时间:2010-03-182010年第19卷第10期计算机系统应用ResearchandDevelopment研究开发53Portal页面建立页参数相当于页面的全局变量,然后在Portlet中设置Portlet参数,并与页面参数建立对应的关联关系,Portlet的参数传递到页面的全局参数是通过事件来传递[4].
通过PortletSession实现数据交互,实质是一种参数值传递,值传递方法可以很好的解决同一Portal页面的交互协作问题,但是该方法存在以下不足:首先当页面内容庞杂时,大量属性信息修改容易引发逻辑错误导致程序混乱;其次这种协作方式仅仅适用于同一系统中的Portlet之间传递简单的交互数据;最后这种方式并不支持与部署在远程服务器上的Portlet之间的通信.
这种应用相当有限,无法从根本上满足当前门户在应用向集成化和协作化方向发展的要求.
因此研究Portlet间的数据交互很有必要.
2多Portlet互操作框架设计Portlet交互协作是指多个Portlet之间进行协作完成某项业务,即用户的一个请求数据能够得到一组Portlet响应[5].
许多应用需要大量Portlet进行交互,例如在一个应用系统里面,有3个Portlet分别是A、B和C.
其中A显示有关账户的概要信息,B显示在过去20天内有关账户发生的所有事务信息,而C显示某一特定账户的详细信息.
这是一个简单的Portlet交互协作应用场景.
为实现Portlet交互需要解决如下问题:①支持跨越应用系统边界的通信;②与远程Portlet进行通信并支持异构系统;③在Portlet之间支持1:N通信,而且能够传送复杂数据;④必须考虑系统可重用性,可移植性以及对已存组件的集成问题.
参考当前Portal中Portlet的交互协作的设计思路,依赖Portlet和WSRP规范的核心特征,扩展Portlet实现接口,提出多Portlet数据交互框架,基于XML封装技术在Portlet之间进行复杂数据交互,实现Portlet间信息交互,达到集成目的,同时保证系统的灵活性和扩展性.
2.
1扩展标准Portlet为增强Portlet之间交互协作,充分利用Portlet规范,对标准Portlet进行扩展:增加了输出端口和输入端口的概念、一个Message类和扩展公共接口GenerateMarkup.
输出端口表示数据源Portlet要传送的数据;输入端口表示目标Portlet准确接收数据的验证数据结构;Message是一个简单的javabean,它的作用是对源Portlet传送的数据进行封装,表示数据输出端口结构;GenerateMarkup接口提供一个embXMLasNote(Messagemsg)方法,该方法是将Message对象使用XML来表示,返回值是一个字符串.
自定义Portlet通过继承Portlet规范中的GenericPortlet抽象类并实现GenerateMarkup接口.
当该Portlet接收到请求后,进行响应处理,如果需要提供交互数据,则将交互信息以Message形式表示,再将该Message以形参方式传递给embXMLasNote方法产生字符串,然后将字符串以注释的形式嵌到由GenericPortlet接口的render方法形成html片断.
数据输出端口结构包括name、message_type、broadcast、generatemarkupnested、message和to_portlets六个数据项组成,各数据项的具体意义由图1所示.
为了保证Message能够被Portlet准确地接收,仅仅靠输出端口中的name和to-portlets是不够的,为此提出了数据输入端口.
数据输入端口由name、from-portlets、message-type和action四个数据项组成,各数据项具体含义如图2所示.
数据输入端口以XML文件存在,其主要作用是匹配输出端口中的name和to-portlets,确保Portlet的action能够准确接收数据.
由上可知数据源输出端口通常嵌套在Portal页面的html标签中,这意味着数据源Portlet的输出端口能够在每个显示的页面中进行修改.
图1显示输出端口的XML描述,将以注释的形式内嵌在HTML.
标记和可以确定相互关联的Portlet;标记中包含该Portlet要传送的数据;标记定义传送数据的具体类型.
图1显示两个Portlet之间数据交互关系,其中org.
ssh.
personData为org.
ssh.
showPersonData提供用户详细信息.
图1输出端口xml描述计算机系统应用2010年第19卷第10期54研究开发ResearchandDevelopment数据输入端口同样用XML进行描述并保存在独立描述文件中,可以通过URL进行访问.
图2显示简单输入端口XML描述文件.
输入端口除了包含端口名字和类型外,还包括了action属性,用于确定这个输入端口由哪个action接受数据,该action标记依赖于数据接收器实现的具体分发机制.
图2表示由org.
ssh.
personData传送过来的数据被org.
ssh.
showPersonData的showData方法接受.
图2输入端口xml描述自定义Portlet通过继承Portlet规范中的GenericPortlet抽象类并且实现GenerateMarkup接口的方式提供数据输出端口,可以通过标记与在Portlet间建立1:N数据交互关系,标记进行封装传送的数据,利用标记确定交互数据具体类型,通过这种方式可以支持Portlet间的数据交互.
输入端口利用与标记确保数据可以被正确的Portlet接收起验证作用.
输出和输入端口采用XML描述是由于XML可以在不破坏原有信息内容的同时,可以自由定义、扩充、修正标记和文档结构,以满足不断变化的应用需求,实现异构系统间的信息表示、交换和集成.
2.
2多Portlet互操作框架Portal服务器是J2EEWeb服务器,它允许将Web应用程序部署在Servlet容器,该容器为Web应用程序的每个组件定义并维护运行环境,组件共享用户会话状态和全局应用状态.
Portal可以看作一个特殊web应用,它由Servlet容器,Portal应用服务程序,Portalweb应用和Web应用四部分构成.
为了支持扩展的Portlet组件之间交互,在Portal应用服务程序中增添了四个额外组件:数据过滤服务组件、PortalDispatchServlet、注册器Servlet和数据缓存如图3所示.
图3数据交互服务体系框架结构由2.
1及图3可知Portlet可以分为三种类型:充当数据源的Portlet、目标Portlet用于接收数据以及代理Portlet用于代理远程Portlet.
所以该Portal应用服务程序处理的数据结构主要是输入和输出端口.
具有数据交互功能的扩展Portlet跟其他Portlet一样也是由Portlet容器进行管理.
新增组件功能如下:PortalDispatchServlet组件:接受页面请求,然后根据页面配置文件,将请求转发到Portlet容器由具体的Portlet进行处理,将Portal页面返回给数据过滤服务组件.
数据交换过滤服务组件:负责对返回的Portal页面进行分析和转换工作.
主要是抽取源Portlet产生的片段,形成一个独立数据输出端口XML文件存放在应用服务程序的temp文件夹下,该temp文件能够被不同系统边界中的Portlet应用程序访问并利用XML解析器对该临时文件进行解析;在原来数据输出端口位置将用一个URL和一个应用菜单生成逻辑所代替,其中URL指向数据接收器Portlet的地址,而插入的应用逻辑主要是根据标记产生一个可供选择的导航菜单,通过用户交互的方式,触发解析数据输出端口描述文件与数据输入端口描述文件进行匹配,若匹配成功则将数据传送到用户选择的Portlet处理.
数据过滤服务组件是新增组件中最重要也是最2010年第19卷第10期计算机系统应用ResearchandDevelopment研究开发55复杂的一部分,其结构如图4所示.
图4数据交换过滤服务组件结构注册器Servlet组件:负责登记第一次被请求的Portlet信息,以及将数据过滤服务组件对页面分析和转换后的信息进行登记.
数据缓存:主要是用于缓存已经使用过的Portlet信息以及Portlet之间的数据交互关系.
带有扩展服务器组件的Portal请求响应处理主要步骤:①客户端浏览器向Portal服务器发送一个page请求,经验证通过后将请求交给数据交换过滤服务组件;②Portalweb应用服务程序中数据交换过滤服务暂时接收该Page请求,然后传送到PortalDispatchServlet;③PortalDispatchServlet读取页面配置文件,判断请求是否包含与组成门户网站网页的Portlet有关动作;④如果存在与某Portlet相关动作,DispatchServlet将该请求分发到Portlet容器调用相应的Portlet处理请求;⑤Portal通过Portlet容器调用Portlet,产生该请求的响应数据,若有数据交互的操作,则将使用GenerateMarkup中的embXMLasNote方法将交互数据嵌入到内容片段;否则直接产生内容片断;⑥Portal通过frame将产生的结果聚集于门户网站的网页,然后将网页返回到数据交换过滤组件;⑦数据交换过滤组件将对网页进行分析和转换操作并判断此次请求页面中的Portlet是否为第一次请求;分析网页中是否存在数据输出端口注释,如果存在则将该端口抽取形成xml临时文件存放在temp文件夹下;并在输出端口的位置用URL和一个处理逻辑代替,其作用已在上面提过不再赘述;⑧如果portlet是第一次请求则将该Portlet由注册器Servlet进行登记;⑨将分析和转换操作的结果和注册器的内容存入数据缓存;⑩数据交换过滤组件将处理后的网页重新组装返回客户端.
具有数据交互功能的Portlet注册数据源与数据接收器的处理时序如图5所示.
浏览器将页面请求发送到Portal服务器;Portal服务器组装Portlet产生的片断形成页面;将该页面返回给过滤组件,过滤器抽取Portlet的信息和输入输出端口,输出端口由URL代替,并确定使用该数据的Portlet;Registry注册Portlets、ports和URL,并将这些信息存入Cache;最后Filter将处理后的页面返回给浏览器运行.
图5注册数据源与数据接收器为了能集成远程Portlet,扩展Portlet组件同时也遵循WSRP规范.
远程Portlet通过代理Portlet充当WSRP消费者进行集成.
它们既可以作为数据源也可以当作数据接收器.
此时对于远程Portlet需增加额外数据项该Portlet的地址,它和输出端口描述都将嵌入到Portlet生成的片断,并通过WSRP协议中的getMarkup方法获得.
将数据发送到远程Portlet利用SOAP协议发送给Portlet的ActionURL,通过WSRP协议中的performBlockinginteraction方法调用结果[6].
3分析首先自定义Portlet通过继承Portlet规范中的GenericPortlet抽象类并且实现GenerateMarkup计算机系统应用2010年第19卷第10期56研究开发ResearchandDevelopment接口的方式提供数据输出端口,利用Message对象封装,并将其作为参数传递给embXMLasNote方法,最后将输出端口以注释形式写入片断中.
Portal将所有片断组装成一个完整的页面,返回给数据过滤服务组件,数据过滤服务组件将识别嵌入在片断中的注释并进行抽取形成一个独立的xml文件存放在portal服务器中的temp文件夹下,这样不论是否为同一系统中的Portlet均可访问这些文件,数据接收器可以解析该temp下的xml文件并与自身预先定义的输入端口文件匹配确定交互数据是否由该接收器接收,这样就可以实现跨越系统边界的通信交互.
其次数据输出端口的数据结构可以表示在Portlet之间进行1:N通信,而且能够传送复杂数据.
由于数据输出端口是基于XML技术表示,可以利用XML在不破坏原有信息内容的同时,自由定义、扩充、修正标记和文档结构,以满足不断变化的应用需求,实现异构系统间的信息表示、交换和集成不断变化.
最后在Portal应用服务程序中提供的4个组件部署在Servelt容器,与Portlet容器基本上是独立的,这样有利于降低与Portlet容器的耦合,可以实现系统的灵活性、扩展性和重用性.
由于对Portlet扩展的实现接口是在Portlet规范和WSRP规范基础上进行扩充,因此可以对标准Portlet以及远程Portlet进行集成.
4结束语企业信息集成是当今信息技术的研究热点,企业信息门户是企业信息集成的重要工具,利用Portal进行信息集成的实质就是Portlet间的信息交互问题.
本文分析了目前主流Portlet交互的常用方法以及它的局限性,遵循JSR-168和WSRP规范,并依赖这些规范的核心特征,通过实现GenerateMarkup接口,扩展Portlet的实现,提出输入和输出端口的概念以及多Portlet数据交互框架,并基于XML封装交互信息,实现Portlet间信息交互,协同完成业务工作,达到企业信息集成目的.
该方法优点是通过扩展Portlet组件实现集成方式简单,可以跨越系统边界传送复杂的数据,支持远程Portlet通信,具有很好的灵活性、扩展性和重用性.
参考文献1JavaCommunityProcess.
TheJavaPortletSpecifica-tion(JSR168)[2009-9-12].
http://jcp.
org/en/jsr/detailid=168,version1.
0.
2五云庆,杨丹.
基于门户技术的EAI实现方法研究.
计算机工程与设计,2007,28(6):1418-1419.
3陈毓林.
Portlet协作框架研究.
北京:中国科学院软件研究所,2005:19-20.
4马将,聂瑞华等.
基于JetSpeed的多portlet流程协作机制研究与应用.
计算机系统应用,2009,18(4):70-71.
5马增辉,解建仓等.
一种多Portlet之间交互方法的研究.
计算机工程,2007,33(13):242-243.
6OASISWebServicesforRemotePortlets(WSRP)Specification

Gigsgigscloud($9.8)联通用户优选日本软银VPS

gigsgigsCloud日本东京软银VPS的大带宽配置有100Mbps、150Mbps和200Mbps三种,三网都走软银直连,售价最低9.8美元/月、年付98美元。gigsgigscloud带宽较大延迟低,联通用户的好选择!Gigsgigscloud 日本软银(BBTEC, SoftBank)线路,在速度/延迟/价格方面,是目前联通用户海外VPS的最佳选择,与美国VPS想比,日本软银VPS延迟更...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

LOCVPS洛杉矶CN2线路KVM上线,洛杉矶/香港云地/香港邦联7折

LOCVPS发来了新的洛杉矶CN2线路主机上线通知,基于KVM架构,目前可与香港云地、香港邦联机房XEN架构主机一起适用7折优惠码,优惠后最低美国洛杉矶CN2线路KVM架构2GB内存套餐月付38.5元起。LOCPVS是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。...

url转向为你推荐
iphone6s内存多大iphone6s plus内存多大天玑1000plus和骁龙865哪个好麒麟985处理器和天玑1000处理器哪个更好?浏览器哪个好什么浏览器最好?视频剪辑软件哪个好后期视频剪辑什么软件最专业?压缩软件哪个好电脑常用压缩软件哪个好浏览器哪个好用浏览器哪个最好用?电视直播软件哪个好电视直播软件哪个好ps软件哪个好Photoshop哪个软件好用点?手机炒股软件哪个好手机炒股软件qq空间登录电脑手机怎么登qq空间电脑版?
长沙虚拟主机 xenvps cn域名备案 locvps 新加坡服务器 百度云100as 外国空间 网站监控 密码泄露 日本空间 52测评网 40g硬盘 如何安装服务器系统 空间登录首页 789 万网空间 万网注册 网络速度 hdroad cx域名 更多