远程门户组件的Web服务处理系统的制作方法

文档序号:7610943阅读:363来源:国知局
专利名称:远程门户组件的Web服务处理系统的制作方法
技术领域
本发明涉及Web服务技术。
背景技术
目前,以互联网为代表的计算机网络技术得到了迅猛发展,已经从简单的信息浏览发展到复杂的分布式应用,Web服务的出现加速了现有应用的集成,方便了企业与企业之间的互操作。虽然,Web服务解决了企业与企业之间的互操作问题,但是,它本身并不能提供任何用户交互或表示功能,因此还需要中间应用程序来提供用户界面。这就需要为每个Web服务进行特定的编码来展现,在实际应用中,就会带来应用周期长,重复编码等问题,并不适应动态电子商务应用的需求。
出现这种问题主要是因为在当前的Web服务应用模式下,缺乏一种有效的方式将远程内容和应用整合成面向最终用户的Web服务。在Web服务的展现方面,近年来已经取得了一些研究成果,如Takeshi等人提出了一种基于Web表单的Web服务界面表示方法,而WSUI(Web Service User Interface)通过一个Schema来描述出专门的Web服务用户层,并使用XSLT样式单来构建用户界面,限定了界面元素,缺乏灵活性。而WSIA(Web Services for InteractiveApplications)依赖于W3C的XForm的表现技术和语义网技术来构建Web服务界面,实现过于复杂。只有WSRP(Web Services for Remote Portlets)使用已经成熟的Portlets技术的展现能力实现了Web服务的用户界面,并且实现了不同平台上的门户组件的共享。
门户是对应用的单一集成访问点,它可以集成不同来源的信息和应用,为用户提供完整的应用视图。门户的构建基于一系列的门户组件。门户组件是一种门户服务器的组件,它实现业务功能,产生面向用户的可视化的标记片段(如HTML标记片断),这些标记片段经过门户组件整合模块的整合,成为最终用户界面。
WSRP(Web Services for Remote Portlets)是OASIS组织在2003年9月提出的一项开放标准,其中文含义是远程门户组件的Web服务。它位于Web服务协议栈的最顶层。WSRP利用已有的Web服务标准,使用WSDL定义了一个Web服务接口描述,使用标准的Web服务接口包装远程门户组件,这些接口独立于具体的应用,只描述了如何获取使用远程门户组件,保证了调用者如何和远程门户组件交互,而不规定组件的具体实现,因此具有良好的互操作性,使得WSRP服务具有可视化、面向用户、即插即用的重要特点,极大的方便Web应用程序的快速集成。
但是,如何实现WSRP接口,利用规范的开放标准,实现信息共享和真正的互操作,如何提供一种基础结构能够容纳不同接口的远程门户组件仍是当前WSRP应用中的重要问题。已有的系统大多基于对现有门户平台的改造实现门户组件的远程使用,而不是针对远程门户组件的。

发明内容
鉴于上述原因,本发明的目的是提供一种远程门户组件的Web服务处理系统(以下简称WSRP处理系统),该WSRP处理系统可以容纳和管理远程门户组件,提供生产者的基础结构,对外暴露出WSRP规范定义的Web服务端口,向消费者提供可视化的远程门户组件,同时向消费者提供一套有效的工具,以方便消费者使用远程门户组件。
为实现上述目的,本发明采用以下技术方案一种远程门户组件的Web服务处理系统,它由WSRP生产者基础结构、通用的WSRP消费者代理和信息门户中的远程组件管理模块三大部分组成;所述WSRP生产者基础结构是本系统的核心部分,它实现了WSRP规范中定义的Web服务接口;处理远程门户组件运行环境的共性需求;支持多种不同门户组件实现;以及动态地部署和反部署门户组件;所述通用WSRP消费者代理主要是代理完成消费一个WSRP服务所需要完成的共性处理以及SOAP客户端的工作;任何消费者都可以方便的通过消费者代理、WSRP生产者基础结构获取远程门户组件的标记;所述远程组件管理模块主要完成测试、检验和管理系统的运行。
所述WSRP生产者基础结构包括Web服务接口层、WSRP引擎处理层、服务调用层和门户组件部署配置管理器四部分;Web服务接口层为一个Java平台的Web服务实现,用于接收消费者的SOAP请求,分析其语义,使用RMI调用下层的WSRP引擎来得到返回结果,并重新序列化成SOAP消息返回给消费者;WSRP引擎处理层主要完成WSRP服务的统一处理;所述服务调用层主要完成对多种门户组件的集成;所述门户组件部署配置管理器动态地监控系统的运行情况,并且动态的部署、反部署门户组件。
所述Web服务接口层包括消费者注册接口、得到服务描述接口、远程组件的定制和配置接口和得到标记片段和处理用户交互接口;所述消费者注册接口消费者向生产者注册,形成一种契约关系,得到一个唯一的注册句柄作为访问远程门户组件的依据和身份标识;得到服务描述接口消费者动态的获取生产者提供的服务内容和组件变动情况,及时获取动态的服务描述,应用新的组件;远程组件的定制和配置接口消费者可以向生产者要求新的可配置的组件实例,并配置这些组件的属性,使得同一门户组件在不同的消费者处显示不同的外观和内容;得到标记片段和处理用户交互接口消费者通过该Web服务接口可以动态得到远程门户组件的标记片断,并与之交互,体现了WSRP服务的可视化和交互性。
所述WSRP引擎处理层由注册管理器、描述处理器、会话处理器和实体对象池四部分构成;所述注册管理器完成对注册对象的管理,采用对象哈希表的方法,按注册句柄为键,在内存和外存中换入换出注册对象;所述描述处理器主要完成WSRP规范中的服务描述;所述会话处理器主要管理多个实体会话对象;所述实体对象池统一管理内存中的实体对象。
所述服务调用层具有统一调用接口与所述WSRP引擎处理层进行信息传递;所述服务调用层为每种portlet提供了门户组件适配器接口,配置相应的适配器。
所述门户组件部署配置管理器提供了一个独立的javaSwing窗口界面与WSRP引擎连接,可以动态的监控系统的运行情况,并且动态的部署、反部署新的门户组件。
所述WSRP服务消费者代理模块具有管理和调用WSRP服务的统一功能,是一个可重用的组件模块;它包括配置管理器、注册管理器、生产者管理器、会话管理器、实体管理器、服务定位器和服务管理接口;配置管理器的功能是管理和记录消费者代理的配置信息,并且在初始化的时候将这些信息传给相应的组件,同时为其他组件提供功能接口,可以改变配置文件的内容;注册管理器主要完成在初始化的时候从配置管理器中获取注册信息,生成并且管理所有的已经注册的对象,这其中最重要的是一个注册句柄;对外提供接口可以实现注册和注销功能;向下调用服务加载器,获取一个注册端口,以便调用Web服务;生产者管理器主要完成管理好所有消费者注册的生产者,提供获取,删除这些生产者对象的方法。为了便于组织管理,系统将生产者对象以URL为键值添加到一个哈希表中去;会话管理器主要是管理多个实体会话对象;实体管理器主要是管理多个实体,提供功能给其他组件,初始化的时候,读取所有实体序列化文件,恢复成系统内存对象,按实体句柄为键值存放在哈希表;提供接口供其他组件调用,根据实体句柄获取实体对象;同时提供动态添加一个实体对象的方法,在添加以后自动序列化该对象,保持持久状态。


图1为本发明WSRP处理系统结构示意2为本发明WSRP处理系统生产者基础结构结构示意3为本发明WSRP处理系统门户消费者结构示意4为本发明WSRP处理系统消费者代理结构示意图具体实施方式
为了清楚地说明WSRP处理系统,本发明首先说明一下生产者和消费者。生产者表现为一个Web服务,消费者为该Web服务的使用者。当消费者发现了生产者Web服务以后,所有消费远程门户组件的工作都是通过Web服务端口的操作完成。
如图1所示,本发明提供的WSRP处理系统由WSRP生产者基础结构、通用的WSRP消费者代理和信息门户中的远程组件管理模块三大部分组成。
独立的WSRP生产者基础结构是WSRP处理系统的核心部分,它实现了WSRP规范中定义的Web服务接口;处理远程门户组件运行环境的共性需求,如会话处理,功能实现,持久化状态处理等;在WSRP引擎中使用实体对象来抽象的代表一个门户组件对象,以屏蔽不同门户组件之间的区别,进行统一管理;使用适配器接口,支持多种不同门户组件实现;同时,还提供了一个可以动态的部署和反部署门户组件的配置管理工具。
通用WSRP消费者代理主要是代理完成需要消费一个WSRP服务的共性处理,例如会话、注册、描述和标记等接口以及SOAP客户端的工作,消费者代理对外提供一系列的功能接口,使得任何消费者都可以方便的通过消费者代理获取远程门户组件的标记。
远程组件管理模块是一个基于Jetspeed信息门户平台作为远程门户的消费者,它包括远程门户组件管理模块和远程门户组件映射模块,主要完成测试和检验系统的运行。在该信息门户中调用WSRP消费者代理可以消费生产者基础结构中的远程门户组件。
下面结合附图再详细地描述各个模块的结构和功能。
如图2所示,WSRP生产者基础结构是整个系统的核心,它包括Web服务接口层、WSRP引擎处理层、服务调用层和门户组件部署配置管理器四部分。Web服务接口层、WSRP引擎处理层和服务调用层之间接口清晰,职责明确,共同构成生产者的基础结构。参考图1、图2所示,Web服务接口层实际上就是一个远程组件Web服务,门户消费者通过Web服务接口层、WSRP引擎调用远程服务组件。图1中的WSRP引擎部分包括图2中的WSRP引擎处理层、服务调用层。图1中的配置管理工具是指图2中的门户组件部署配置管理器。远程组件Web服务运行有赖于WSServer的支持,而远程组件Web服务和WSRP引擎部分都运行在Jboss服务器中。
WSRP服务需要实现WSRP1.0的规范接口和功能,为了实现总体目标,使得生产者成为一个远程门户组件的运行时环境,生产者必须具备以下功能1具有消费者注册功能,支持注册状态的持久化和注册关系的管理。
2具有会话管理功能,为每个用户对每个远程门户组件的请求创建,保存和管理会话关系和临时数据。
3具有通常的Portlet运行时环境提供的功能,可以返回特定的状态下的Portlet标记,并且可以管理Portlet的状态和属性。
4支持直接的用户交互,用户请求被转发到请求的Portlet,根据交互状态返回合适的标记片段。
5发布和支持远程门户组件的运行。这里因为门户组件的厂商繁多,而且相关的规范Java Portlet API正在形成中,所以我的目标的首先支持JetspeedPortlet API的扩展,进一步支持标准的Java PortletAPI。
6持久化的状态存储,需要即时保存运行时的状态和重要信息,将运行时对象序列化。
7支持消费者对远程门户组件的管理和配置,包括克隆、定制和改变属性等操作。
8可移植性和可扩展能力,采用多个Portlet适配器连接多种Portlet容器,支持多种PortletAPI。
9具有较好的容错能力,异常处理能力和完备的日志功能等。
基于以上功能,按照高内聚,低耦合的设计思想,如图2所示,本发明将WSRP生产者基础结构设计成层次化的处理模型,主要包含Web服务接口层、WSRP引擎处理层、服务调用层和门户组件部署配置管理器四部分。
1、Web服务接口层Web服务接口层主要是一个Java平台的Web服务实现,用于接收消费者的SOAP请求,分析其语义,使用RMI调用下层的WSRP引擎来得到返回结果,并重新序列化成SOAP消息返回给消费者。
Web服务接口层包括实现WSRP规范中定义的注册、描述、标记和管理4种类型的Web服务端口,并严格遵循WSRP规范的接口数据结构,以实现Internet上的互操作。其中,消费者注册接口消费者向生产者注册,形成一种契约关系,得到一个唯一的注册句柄作为访问远程门户组件的依据和身份标识。
得到服务描述接口消费者动态的获取生产者提供的服务内容和组件变动情况,及时获取动态的服务描述,应用新的组件。
远程组件的定制和配置接口消费者可以向生产者要求新的可配置的组件实例,并配置这些组件的属性,使得同一门户组件在不同的消费者处显示不同的外观和内容。
得到标记片段和处理用户交互接口消费者通过该Web服务接口可以动态得到远程门户组件的标记片断,并与之交互,体现了WSRP服务的可视化和交互性。
将Web服务接口单独分层一方面体现了功能模块的层次,更为重要的是使得WSRP生产者可以方便的移植到任何J2EE平台的Web服务容器内。本发明的生产者Web服务运行环境使用的是WebSASE1.5版本,如果需要,生产者基础结构可以方便的移植到其他的Web服务运行环境中。
2、WSRP引擎处理层为了动态管理和配置,保证系统的层次结构和松耦合,本发明将WSRP引擎设计成一个可管理的Mbean,运行在一个Mbean容器中,该Mbean对外暴露两种类型的接口一个是服务接口和一个是管理接口。WSRP引擎处理层利用抽象的实体对象来代表一个远程门户组件,最终通过实体对象去调用服务调用层的各种门户组件适配器接口。
WSRP引擎处理层主要指实现WSRP统一处理过程的引擎Mbean及其相关组件,该部分主要由注册管理器、描述处理器、会话处理器和实体对象池四部分构成。
(1)注册管理器本发明使用Registration对象来描述一个消费者和本生产者的注册关系。该对象的一系列属性就表明了注册的数据和注册的句柄。在注册完成后,消费者方可根据注册句柄完成其他的调用。注册管理器对注册对象的管理,采用对象哈希表的方法,按注册句柄为键,就可以方便而快速的在内存中存取注册对象。使用CastorAPI的强大功能,可以方便的在内存和外存中换入换出注册对象。
(2)、描述处理器描述处理器主要完成WSRP规范中的服务描述,其中只包含获取服务描述一个操作,但是它同样涉及到了描述信息的持久化工作,而且由于系统配置的动态化,服务描述也是动态的,所以需要根据部署配置工具的操作而改变。本发明使用了一个服务描述对象来表示一个描述。
(3)、会话处理器复杂的门户组件支持用户的会话状态,对于有会话状态的门户组件,本发明仍然只抽象出一个实体,并且将该实体对象放在实体池中管理。但是需要为每个用户的请求建立一个实体会话来保存临时的会话状态,本发明使用一个实体会话对象来保存一个用户的临时信息,该对象唯一对应一个句柄,会话处理器就是许多个实体会话对象的管理器。
当一个用户对某个portlet的标记或交互请求第一次到来时,会带来一个唯一的会话ID,会话处理器根据这个ID建立用户会话,表现为一个实体会话对象,实体便可以使用该会话对象保存一些中间状态。
当消费者强行结束一个会话,或者会话终止期到来,会话管理器便会销毁用户会话。
(4)、实体对象池由于用户的每次请求都要经过实体对象,为了避免对实体对象的频繁创建,本发明使用一个实体对象池来统一管理内存中的实体对象,避免重复创建对象的开销。
每个对象都是可以序列化和反序列化。实体池初始化的时候从硬盘上的实体对象对应的xml文件反序列化生成一系列的实体对象,每种类型的portlet只有一个实体对象文件,其中包含一个克隆的句柄列表。将实体的对象和实体状态分开的好处是,每个克隆的实体其基本信息和它的父对象是一致的,所区别的地方只有可配置的属性列表。
实体对象池内包含有多个实体对象,它是实现克隆Portlet、销毁Portlet和获取Portlet详细描述的接口,每次克隆和销毁一个实体,实体池都需要重新改变状态,并且将实体对象及时的序列化到xml文件中。实体对象池为其他组件提供了根据句柄获取实体对象的功能。
3、服务调用层由于Java平台上的门户组件接口没有得到统一,因此有多种门户组件的实现,通常每种门户平台的门户组件接口都不尽相同,不同门户之间也无法共享组件。不同的门户组件通常依赖于现有的应用服务器或运行框架,因此在服务调用层的实现上,本发明设计了具有统一调用接口的组件适配器,以完成对多种门户组件的集成。
WSRP引擎中使用实体对象的方法抽象的代表一个portlet(门户组件),但是本发明仍然需要有实际的portlet运行时的对象来提供实现基础的标记和交互接口,Portlet作为远程门户组件,是整个WSRP最核心的部分,因此本发明需要构建一个Portlet的运行时的环境来容纳,管理,调用这些发布在生产者中的portlet。
通常情况下,每种类型的Portal实现都提供了完全不同的portlet接口,而每个Portal就是一个portlet的运行时容器,但是因为Portal涉及到页面整合、定制、布局等诸多功能所以显得庞大,而这里本发明只需要为portlet提供一个最基本的运行时环境,可以调用portlet提供的有限功能就可以,大多数如管理、协作等相关功能是本发明不需要的,所以才可能实现一个简单的Portlet运行时环境。
尽管如此,本发明的设计还是突破了每种Portal支持特定PortletAPI的限制,使得WSRP生产者可以生产不同类型接口的Portlet,因为本发明的运行时环境只需要支持porltet有限的功能和接口,所以本发明为每种portlet提供了门户组件适配器接口,配置相应的适配器,就可以解决扩展性和支持多种API的问题。对于每种类型的门户组件适配器,本发明仅定义其调用接口,不对实现方式进行约束。因此在门户组件适配器的实现中,只需按照该门户组件的功能实现所依赖的运行框架进行定制,并在部署配置文件中描述相关配置信息,即可配置到服务调用层中由门户组件对象池在运行时动态加载,为服务调用层提供一致的调用方式。
所有的适配器对外提供的功能包括获取一个Portlet的标记片段、支持用户和Porltet之间的交互。
本发明支持Jetspeed PortletAPI扩展编写的Portlet,既可以发布在生产者中,也可以正常的作为本地门户组件在ACTPortal中使用,大大的缩短了应用周期,方便Internet环境中的快速开发。
为了提高服务调用效率,避免服务器端频繁的创建对象开销,本发明使用了门户组件对象池,每个门户组件在第一次请求时被创建,其后由门户组件对象池保存和管理该对象实例,在对象池中对象数量超过一定个数后,本发明自动销毁最长时间未用的实体组件对象,保证资源的控制。
4、门户组件部署配置管理器为了快速部署远程门户组件,了解系统运行时的状况,便于管理和配置,本发明提供了一个门户组件部署和置管理器来用于实现系统管理员的管理功能,本模块提供了一个独立的javaSwing窗口界面与WSRP引擎连接,可以动态的监控系统的运行情况,并且动态的部署、反部署新的门户组件。
为了避免繁琐的手工操作,能够实现动态部署,将发布一个门户组件的所有资源和配置文件按指定的目录使用iar命令打包成后缀名为rpar的包,作为一个发布单元,只需要将发布单元拷贝到deploy目录下就会被监听。
本发明在部署管理器中使用一个后台线程作为监听器,监听时间间隔在引擎的配置文件中可配置,默认值是3000。即每3000毫秒,每隔3秒钟会监听deploy目录一次,根据时间戳判断,发现新的部署单元包就发布,发现删除了就反部署该门户组件。
部署WSRP生产者的目的是向消费者提供一系列的远程门户组件,这些组件的基础是具体的portlet的类,同时还有相关的配置文件,本发明需要的配置文件及其组成如下生产者配置文件指明了配置的日志文件和生产者的相关信息,在系统初始化的时候用到。
生成服务描述文件是服务描述整个对象的存储文件,初始的时候在生产者部署时生成,以后会由描述处理器自动管理,其内容是动态变化的。
以上这两个配置文件是全局起作用,由引擎控制,一般需要手工修改。
对于每个Portlet(门户组件)都需要有以下的配置文件实体描述文件该配置文件指明该Portlet的类文件、描述、标题窗口状态等属性,系统会将该配置文件转换为一个实体描述文件,代表一个持久化的实体。
Portlet属性描述文件和属性值文件这部分主要是给消费者配置的Portlet使用的独立的属性配置。
目前因为本发明的生产者是基于Java平台的,所以支持java平台的Portlet,向生产者中部署一个portlet,如果手工做需要做以下几件事情1获取该Portlet的java类(Class以及jar)并拷贝到生产者的指定目录中,此时生产者已经被展开为生产者Web服务。
2获取该Portlet的资源列表,并拷贝到持久化存储目录。
3手工写一个实体配置文件并放在指定目录。
4手工写一个实体状态配置文件并放在指定目录。
5重新启动系统,读取配置文件。
部署和反部署的具体工作由一个部署管理器完成,具体的过程比较复杂,主要过程包括解压缩,拷贝文件,动态注册等等。
监控管理员通过监控界面主要可以监控系统的5类资源1系统配置信息,即WSRP.propertities文件内容,并可修改。
2消费者注册信息浏览到系统中所有注册的消费者信息和配置文件,并且可以动态的注册一个消费者,修改一个消费者的注册信息,动态的终止某个消费者的注册关系。
3实体信息浏览系统中的所有生产者提供实体已经从这些实体克隆的消费者配置实体;浏览和修改实体的配置属性描述;浏览和修改实体的默认属性值;动态的销毁一个实体。
4实体属性文件实体属性文件描述了实体的属性信息。
5生产者配置文件描述了生产者组件工厂的配置信息。
消费者扮演了使用远程门户组件的角色,一个门户消费者为了实现对远程门户组件的消费,需要构建对应的本地Portlet来映射远程门户组件,有两种实现方式可供选择一种是纯代理portlet方式每个本地的门户组件自己去调用远程门户组件,获取远程组件的输出;一种是消费者代理和轻量级的本地组件结合,使用消费者代理封装所有共性的处理过程,再用简单的本地组件通过调用消费者代理获取远程门户组件的输出。
考虑到系统的实用性,扩展性和性能要求,结合对这两种方式的分析,本发明Portal消费者采用消费者代理的做法。WSRP服务消费者代理模块具有管理和调用WSRP服务的统一功能,是一个可重用的组件模块。消费者代理模块是一个独立的通用模块,它将使用、管理远程门户组件的一些共性功能集中起来,做成可重用的模块,提供相应的功能接口,这样任何消费者想要使用远程服务,都可以通过远程代理实现。所以消费者代理模块将使用一个WSRP服务的功能分开成相互调用的模块,每个模块独立的完成自己的功能同时可以提供给其他的模块调用,实现一个完整的从生产者管理,到服务注册、服务描述、远程门户组件克隆等功能的完整应用体系。
如图3、图4所示,WSRP消费者代理模块包括配置管理器、注册管理器、生产者管理器、会话管理器、实体管理器、服务定位器和服务管理接口。
1、配置管理器消费者代理需要一个消费者配置文件来记录消费者的信息,记录该消费者注册到生产者的注册信息和生产者URL,以及需要记录到引用的远程门户组件的信息,本发明将这些信息以一个消费者配置文件的形式持久化的记录下来。当系统启动,首先要初始化配置管理器,从配置文件中提取相关信息,可以将系统恢复成使用状态,这个配置文件的内容包括记录消费者信息包括消费者名字、消费者代理名字、描述和消费者URL等。
记录注册到的生产者信息,包括描述、URL和注册句柄记录系统引用到的远程门户组件的句柄和描述信息。
在系统的运行中因为管理员的操作会随时影响系统的状态,所以在以下情况发生时,系统的配置文件会自动改变,这主要通过其他组件调用配置管理器的接口实现。
注册和注销会从配置文件中删除一个生产者和注册信息。
克隆或删除一个远程门户组件会添加和删除一个实体层信息。
配置管理器的功能就是管理和记录消费者代理的配置信息,并且在初始化的时候将这些信息传给相应的组件,同时为其他组件提供功能接口,可以改变配置文件的内容。
配置管理器主要将实体信息提供给实体管理器,将生产者信息提供给生产者管理器,将注册信息提供给注册管理器;同时会被注册管理器和实体管理器调用以修改配置文件。
值得注意的是为什么生产者需要持久化运行时对象,而消费者只要记录几个句柄?这是因为生产者可以持久化的统一管理信息,那么消费者就不需要做重复的工作,如果需要详细的信息,可以根据一些简单的句柄和URL,通过调用WSRP服务的形式获取。
2、注册管理器一般情况下,生产者需要向消费者注册,形成长期稳定的注册关系,并且能够持久的记录,以方便消费者使用远程门户组件,同时也便于商业业务的管理。为了描述这种注册关系,本发明使用了一个Registration对象来描述一个消费者和生产者的注册关系。该对象的一系列属性就表明了注册的数据和注册的句柄。在注册完成后,消费者方可根据注册句柄完成其他的调用。它包括注册上下文,其中包括一个注册句柄。
简而言之,注册管理器要完成的工作包括在初始化的时候从配置管理器中获取注册信息,生成并且管理所有的已经注册的对象,这其中最重要的是一个注册句柄;对外提供接口可以实现注册和注销功能;向下调用服务加载器,获取一个注册端口,以便调用Web服务。
3、生产者管理器为了方便的管理远程门户组件,系统将每个远程的WSRP生产者抽象成为一个生产者对象,由生产者管理器统一管理,一个生产者对象包含如下属性1)生产者的URL地址,这个是Web服务的URL地址;2)消费者在该生产者中的注册句柄;3)生产者名字;4)生产者的服务描述。
它主要承担获取生产者服务描述的功能实现。
生产者管理器所需要完成的功能就是管理好所有消费者注册的生产者,提供获取,删除这些生产者对象的方法。为了便于组织管理,系统将生产者对象以URL为键值添加到一个哈希表中去。
4、会话管理器大部分的Portlet都是支持用户状态的,对于有会话状态的Portlet,本发明仍然指抽象出一个实体,并且将该实体对象放在实体池中管理。但是需要为每个用户的请求建立一个实体会话来保存临时的会话状态,本发明使用一个实体会话对象来保存一个用户的临时信息,该对象唯一对应一个句柄,会话处理器就是许多个实体会话对象的管理器。
对于每个实体会话,它包含一个全局唯一的标识,会话句柄;一个实体句柄,记录了该会话维系于哪个实体对象;一个会话终止期,默认值可以在配置文件中设置,每次激活会话后恢复初始值,到时间未激活者销毁该会话对象;
一个属性哈希表,提供put和get方法便于存取临时的会话信息。
当一个用户对某个门户组件的标记或交互请求第一次到来时,会带来一个唯一的会话ID,会话处理器根据这个ID建立用户会话一个实体会话对象,实体便可以使用该会话对象保存一些中间状态。
当消费者强行结束一个会话,或者会话终止期到来,会话管理器便会销毁用户会话。
5、实体管理器本发明在消费者代理中使用每个实体对象代表远程的门户组件对象,这个实体对象具有如下属性●实体的访问点就是生产者的WebService URL;●实体上下文包括实体句柄;●实体描述实体自身的描述信息;●注册上下文包含注册关系的对象。
实体管理器的功能就是管理好这些实体,提供功能给其他组件,初始化的时候,读取所有实体序列化文件,恢复成系统内存对象,按实体句柄为键值存放在哈希表;提供接口供其他组件调用,根据实体句柄获取实体对象;同时提供动态添加一个实体对象的方法,在添加以后自动序列化该对象,保持持久状态。
如图1所示,本发明远程门户组件的Web服务处理系统还包括远程门户组件管理模块,它包括远程门户组件管理模块和远程门户组件映射模块。
服务管理模块面向门户系统管理员提供管理WSRP生产者和远程门户组件的功能。作为消费者使用远程门户组件的界面,WSRP服务提供了本地门户组件Portlet来实现界面功能,在这些本地Porlet中调用消费者代理提供的功能,实现门户对远程门户组件的消费,具体的消费方法是使用一种特定的本地门户组件作为远程门户组件的映射,这种映射对用户是完全透明的,用户使用实际上仍然是本地的Portlet,但是该Portlet的标记和交互来自远方的生产者。
为了使Portal成为一个WSRP服务的消费者,Portal必须具备使用远程门户组件的功能,本发明以基础类库的方式给出可以实现基本的WSRP消费功能的WSRP消费者代理,统一管理和调用消费者使用的远程门户组件,同时提供一个基于门户组件的管理界面,方便Portal使用消费者代理提供的功能。同时为了在Portal中方便的使用,本发明提供一种抽象的WSRPPortlet作为对远程Portlet的映射,简单的来说消费者必须具备以下功能
1可以向生产者注册,修改注册和取消注册的功能。
2获取指定的服务描述的功能。
3支持克隆或者直接添加的功能。
4支持克隆的远程门户的配置。
5持久化的状态存储,需要保存运行时的状态,将运行时对象序列化。
6支持消费者对远程门户组件的管理和配置,包括克隆、定制和修改等操作。
7可移植性和可扩展能力,消费者代理可以方便的被重用,接口清晰。
8具有较好的容错能力,异常处理能力等。
消费者代理虽然给本发明提供了完备的功能,但是本发明仍然需要用户界面来实现和完成这个功能,所以这部分一方面是界面,另一方面还有一些功能需要实现。虽然WSRP消费者代理可以完成绝大部分的管理和配置工作,但是它只提供了一些功能接口,不是和任何特定的消费者相关的,并且为了使用消费者代理,Portal也要做许多额外的工作,门户消费者的服务管理模块有以下几个门户组件组成,如图5所示1生产者浏览门户组件管理员可以通过该门户组件组件浏览所有注册的远程门户组件生产者的基本信息,并可以删除(注销)一个生产者;2生产者详细信息门户组件门户管理员浏览生产者提供的远程门户组件列表,通过操作选择直接引用还是克隆引用该生产者提供的远程门户组件;3注册生产者门户组件向新的生产者注册,以使用该生产者提供的功能;4远程浏览门户组件浏览系统使用的远程门户组件,并且可以删除已经使用的远程门户组件;5配置门户组件可以配置克隆的远程门户组件的属性以实现不同的外观和布局。
根据远程组件映射原理,每个系统引用的远程Portlet都要在Portal中有一个WSRPPortlet来映射,那么Portal怎样管理WSRPPotrlet,怎样识别WSRPPortlet的问题可以通过注册文件来解决。
具体的方法是在添加或克隆的时候,门户根据克隆后的句柄作为名字生成一个门户组件注册文件,向系统注册一个新的本地映射组件,该组件的名字就应该就是克隆后得到的远程门户组件实例句柄。
下面描述了门户消费者引用和克隆一个远程门户组件的过程1)首先管理员登录门户网站,进入到生产者详细信息的页面2)进入引用或克隆的页面,自动获取到从远程组件描述中得来的生成门户组件注册文件需要的参数,包括Portlet名字注册需要的本地组件名称,和句柄相同以保证唯一;Portlet标题该远程门户组件对应的本地组件的标题;Portlet描述该远程门户组件对应的本地组件的描述;生产者的URL生产者的Web服务地址;portleHandle远程门户组件句柄;应用类型可能是ref或者clone,表明是直接引用远程门户组件还是克隆;3)根据参数生成门户组件注册文件,写入门户配置文件夹,文件名与句柄相同;4)动态注册该Portlet,使得门户组件即时可用;5)消费者代理配置管理器中里面添加该门户组件信息,并写入配置文件;6)引用和克隆不同的事情就在于句柄来源和type,克隆的句柄是调用生产者Web服务得到的。
删除一个已经引用的远程门户组件的引用关系主要包括以下步骤1)首先要动态取消注册,使得该门户组件不能使用;2)然后从每个用户页面中去掉这个本地映射的组件;3)然后删除该门户组件注册文件;4)然后调用生产者Web服务销毁一个远程门户组件实例;5)然后告诉消费者代理要删除该远程门户组件的相关信息;通常情况下,对于门户消费者,使用的都是本地的门户组件,每个门户组件需要实现特定的接口被门户引擎调用。使用Ogc表示本地组件的接口,该接口返回一个HTML标记片段,也就该组件的输出,每个门户页面表现为多个门户组件的输出的集合,由门户引擎将本地的门户组件输出的HTML标记片段封装成最终用户页面。
为了使得门户可以使用远程组件,本发明使用一种特殊的本地组件,这种组件实现了Ogc本地接口,但是其返回的内容是在该组件内部调用了Ogm而获取到的。对消费者而言,每个生产者对应一个Web服务的URL,每个生产者可能提供多个门户组件,每个门户组件实例对象会有一个唯一的句柄PortletHandle表示,而且会在Portal端存在一个本地组件Pyi,因为有Ogc(Pyi)=Ogm(URL,PortletHandle),也就能保证门户对远程组件的消费。
为了使得消费者的工作具有重用性,本发明将所有调用远程门户组件的相关工作抽象为一个通用的消费者代理,以功能组件的形式提供给门户。
一个具体的映射过程如下1)门户站点管理员决定使用某个远程门户组件。
2)发送复制实例的SOAP调用请求,生产者为门户生成新的门户组件实例。
3)门户生成一个本地门户组件与该远程组件相关联。
4)用户访问门户中的映射组件,该组件调用远程组件的Ogm操作获取远程组件的输出,通过Ogc接口返回给本地门户组件。
5)用户提交表单数据,本地组件会转交给远程组件并将结果返回,完全模拟远程组件的行为。
这样做的优点是,WSRP门户组件对门户引擎透明,具有极好的重用性和灵活性,扩展性。门户组件使用的组件都是本地的,不同的是WSRP门户组件相当于远程门户组件在本地的一个映射,这样所有与远程组件相关的操作都限定在组件内部,对门户系统结构和性能没有任何影响,具有很低的耦合度。
因为远程门户组件返回的是纯文本形式的HTML片断,远程组件中输出的其他一些非文本信息将难于获取,因此消费者在生成本地映射的组件同时,将远程组件的2进制资源如图片,音频,或视频下载到本地,并且修改返回的HTML信息以保证页面中的资源完整的显示给最终用户。
本发明远程门户组件的Web服务处理系统的主要操作流程包括注册第一步,门户发出调用请求第二步,引擎处理请求,检查参数;第三步,通过引擎消息总线找到注册管理器,调用注册接口完成注册功能;第四步,读取并进行合法性校验,返回注册句柄。
获取描述第一步,信息门户发出户获取服务描述请求;第二步,引擎处理请求,检查参数;
第三步,通过引擎消息总线找到描述管理器;第四步,写入并实施写后读校验,根据校验结果进行失败或成功返回。
获取标记并交互第一步,信息门户发出交互请求,传递交互参数;第二步,引擎获取参数,检查后存入会话,状态改变;第三步,引擎找到门户组件适配器,通过组件对象池获取组件对象;第四步,得到组件对象的输出,进行成功返回。
远程组件管理第一步,信息门户发出管理请求,传递调用参数;第二步,接受参数将控制转交实体对象池和门户组件对象池;第三步,完成操作后返回结果;其中,当消费者获取远程门户组件实例并配置其属性以后,就在消费者页面中增加了远程门户组件的映射,最终用户就可以通过消费者的页面使用远程门户组件。最终用户浏览远程门户组件的内容,就会触发相应的获取标记接口,消费者自动调用接口获取远程门户组件的输出,对于用户而言,这个过程是透明的,当用户提交表单,表单数据会转交给远程门户组件并且将结果返回给最终用户,在多个交互过程中,通过消费者,用户和远程门户组件保持会话关系。
纵上所述,本发明在系统结构设计上,采用了如下的设计方式1、为系统各模块定义了清晰的功能接口,并且将实现和接口分离,采用类工厂的设计模式,使得各模块可以动态组装,降低了模块之间的耦合度,提高的灵活性和可重用性,同时使得系统的改造和升级在确定的可控范围之内,保持了系统的相对稳定性;2、层次化的处理结构将对远程门户组件的访问过程分解为三个阶段,使问题的解决约束在不同的层次,保持各个部分的相对独立,增强了系统的可扩展能力;3、动态配置过程提供了配置和部署管理工具不但可以动态的部署和反部署门户组件,而且还可以动态的更新组件的配置信息和属性信息,满足WSRP应用需求的易变性和多样性,增强处理过程的灵活性;4独立的生产者基础结构使得WSRP生产者不依赖于具体的门户平台,采用了适配器的设计模式使得生产者可以支持多种不同门户组件接口实现,体现了高度的兼容性和可扩展性。
权利要求
1.一种远程门户组件的Web服务处理系统,其特征在于该Web服务处理系统由WSRP生产者基础结构、通用的WSRP消费者代理和信息门户中的远程组件管理模块三大部分组成;所述WSRP生产者基础结构是本系统的核心部分,它实现了WSRP规范中定义的Web服务接口;处理远程门户组件运行环境的共性需求;支持多种不同门户组件实现;以及动态地部署和反部署门户组件;所述通用WSRP消费者代理主要是代理完成消费一个WSRP服务所需要完成的共性处理以及SOAP客户端的工作;任何消费者都可以方便的通过消费者代理、WSRP生产者基础结构获取远程门户组件的标记;所述远程组件管理模块主要完成测试、检验和管理系统的运行。
2.根据权利要求1所述的远程门户组件的Web服务处理系统,其特征在于所述WSRP生产者基础结构包括Web服务接口层、WSRP引擎处理层、服务调用层和门户组件部署配置管理器四部分;所述Web服务接口层为一个Java平台的Web服务实现,用于接收消费者的SOAP请求,分析其语义,使用RMI调用下层的WSRP引擎来得到返回结果,并重新序列化成SOAP消息返回给消费者;所述WSRP引擎处理层主要完成WSRP服务的统一处理;所述服务调用层主要完成对多种门户组件的集成;所述门户组件部署配置管理器动态地监控系统的运行情况,并且动态的部署、反部署门户组件。
3.根据权利要求2所述的远程门户组件的Web服务处理系统,其特征在于所述Web服务接口层包括消费者注册接口、得到服务描述接口、远程组件的定制和配置接口和得到标记片段和处理用户交互接口;所述消费者注册接口消费者向生产者注册,形成一种契约关系,得到一个唯一的注册句柄作为访问远程门户组件的依据和身份标识;得到服务描述接口消费者动态的获取生产者提供的服务内容和组件变动情况,及时获取动态的服务描述,应用新的组件;远程组件的定制和配置接口消费者可以向生产者要求新的可配置的组件实例,并配置这些组件的属性,使得同一门户组件在不同的消费者处显示不同的外观和内容;得到标记片段和处理用户交互接口消费者通过该Web服务接口可以动态得到远程门户组件的标记片断,并与之交互,体现了WSRP服务的可视化和交互性。
4.根据权利要求2所述的远程门户组件的Web服务处理系统,其特征在于所述WSRP引擎处理层由注册管理器、描述处理器、会话处理器和实体对象池四部分构成;所述注册管理器完成对注册对象的管理,采用对象哈希表的方法,按注册句柄为键,在内存和外存中换入换出注册对象;所述描述处理器主要完成WSRP规范中的服务描述;所述会话处理器主要管理多个实体会话对象;所述实体对象池统一管理内存中的实体对象。
5.根据权利要求2所述的远程门户组件的Web服务处理系统,其特征在于所述服务调用层具有统一调用接口与所述WSRP引擎处理层进行信息传递;所述服务调用层为每种门户组件提供了门户组件适配器接口,配置相应的适配器。
6.根据权利要求2所述的远程门户组件的Web服务处理系统,其特征在于门户组件部署配置管理器提供了一个独立的javaSwing窗口界面与WSRP引擎连接,可以动态的监控系统的运行情况,并且动态的部署、反部署新的门户组件。
7.根据权利要求1所述的远程门户组件的Web服务处理系统,其特征在于所述WSRP服务消费者代理模块具有管理和调用WSRP服务的统一功能,是一个可重用的组件模块;它包括配置管理器、注册管理器、生产者管理器、会话管理器、实体管理器、服务定位器和服务管理接口;配置管理器的功能是管理和记录消费者代理的配置信息,并且在初始化的时候将这些信息传给相应的组件,同时为其他组件提供功能接口,可以改变配置文件的内容;注册管理器主要完成在初始化的时候从配置管理器中获取注册信息,生成并且管理所有的已经注册的对象,这其中最重要的是一个注册句柄;对外提供接口可以实现注册和注销功能;向下调用服务加载器,获取一个注册端口,以便调用Web服务;生产者管理器主要完成管理好所有消费者注册的生产者,提供获取,删除这些生产者对象的方法。为了便于组织管理,系统将生产者对象以URL为键值添加到一个哈希表中去;会话管理器主要是管理多个实体会话对象;实体管理器主要是管理多个实体,提供功能给其他组件,初始化的时候,读取所有实体序列化文件,恢复成系统内存对象,按实体句柄为键值存放在哈希表;提供接口供其他组件调用,根据实体句柄获取实体对象;同时提供动态添加一个实体对象的方法,在添加以后自动序列化该对象,保持持久状态。
全文摘要
本发明公开了一种远程门户组件的Web服务处理系统,它由WSRP生产者基础结构、通用的WSRP消费者代理和信息门户中的远程组件管理模块三大部分组成。所述WSRP生产者基础结构是本系统的核心部分,它实现了WSRP规范中定义的Web服务接口;处理远程门户组件运行环境的共性需求;支持多种不同门户组件实现;以及动态地部署和反部署门户组件;所述通用WSRP消费者代理主要是代理完成消费一个WSRP服务所需要完成的共性处理以及SOAP客户端的工作;任何消费者都可以方便的通过消费者代理、WSRP生产者基础结构获取远程门户组件的标记;所述远程组件管理模块主要完成测试、检验和管理系统的运行。
文档编号H04L29/06GK1805431SQ20051000192
公开日2006年7月19日 申请日期2005年1月12日 优先权日2005年1月12日
发明者怀进鹏, 赵勇, 王后庆, 马殿富, 李振海, 葛声, 刘旭东 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1