数据共享系统、方法以及软件工具的制作方法

文档序号:7620143阅读:262来源:国知局

专利名称::数据共享系统、方法以及软件工具的制作方法
技术领域
:本发明涉及数据处理领域,具体而言,涉及用于在客户端平台上运行的portlet(小门户)之间数据共享的方法、系统以及软件工具。
背景技术
:万维网为一种因特网多媒体信息检索系统。在网络环境中,客户端机器利用超文本传送协议(HTTP)与网络服务器通信。网络服务器利用称为超文本标记语言(HTML)的标准页面描述语言向用户提供至诸如文本、图片、图像、声音、视频等文件的访问。HTML提供基本文档格式,并且允许开发者制定至其他服务器与文件的、称为超链接的连接。在因特网模式中,至服务器的网络路径由统一资源定位符(URL)标识,URL具有用于定义网络连接的特殊语法。所谓的网络浏览器,例如NetscapeNavigator(NetscapeNavigator为NetscapeCommunicationCorporation的注册商标)或者MicrosoftInternetExplorer(Microsoft与InternetExplorer为MicrosoftCorporation的注册商标),其为在客户端机器上运行的应用程序,使用户能够通过借助URL指明链接来访问信息,并且能够在不同的HTML页面之间导航。当网络浏览器的用户选择链接时,客户端机器向命名服务发出请求,以将主机名称(在URL中)映射到服务器机器所在的特定网络IP(互连网协议)地址。该命名服务返回可能相应于该请求的IP地址。利用该IP地址,网络服务器建立到服务器机器的连接。如果服务器机器可用,则其返回网页。为了进一步促进站点内的导航,网页一般包含一或多个称为“锚链”(anchor)或“链接”的超文本引用。门户一般为聚合来自各种不同来源的内容、并且在门户网页内呈现该内容的网络应用,并且可能具有复杂的个性化特征,以向用户提供定制内容。门户应用可以提供至一或多个后端软件应用的网关,并且一般配备在分离的门户服务器上。门户服务器一般将网页安排在包含一或多个portlet的门户页面内。portlet为网络组件,由portlet容器管理,其处理并生成动态网络内容。该内容一般称为片断(fragment),可以由门户与来自其他portlet的内容聚集,以形成门户页面。依赖于portlet的用户配置,由portlet生成的内容可能对各个用户都不相同。门户提供了一种导航框架,用于按层次在服务器上排列的一组网页。该框架提供了用户界面,其允许导航通过服务器上的可用页面层次。提供该导航的用户界面称为主题(theme)。每个页面可能包含零或多个portlet,利用设计或管理工具预先确定并且构造页面排列。对于标准的服务器端门户,使用客户端网络服务器来在单个页面上观看几个portlet的聚集后的输出。用户与由portlet产生的内容交互,例如通过提交表单或者跟踪链接,从而使portlet动作被门户接收。当门户服务器收到HTTP请求时,其确定该请求是否包含目标为与门户页面相关联的任一portlet的动作。如果有目标为portlet的动作,则门户请求portlet容器启动该portlet以处理该动作。portlet处理该动作,并且生成内容片断以包含在新的门户页面中。另外,所请求的门户页面上所有其他portlet都更新并且将内容片断传递给门户。门户将每个portlet内容片断在portlet窗口中打包,向每个窗口添加标题与控件按钮。有时这称为“包裹”(wrapping)每个所提供的内容片断,并且用来包裹所述片断的附加标记被称为“皮肤”(skin)。皮肤可能包含控件按钮,可以使用这些控件按钮来(例如)将portlet置于特定模式下,例如编辑或配置,或者用来将portlet的显示状态变为最大化或最小化视觉状态,就像人们在一般窗口系统中看到的一样。然后,门户将portlet窗口聚集到完整的门户页面中,以发送给客户端。网络浏览器将该代码呈现在客户端的显示屏幕上。如果用户开始于至门户主页面的URL、或者借助至特定页面的URL、或者借助至portlet实例的URL链接,则可以通过主题所提供的导航框架导航至门户所提供的页面;在后一种情况下,门户提供包含该portlet的完整页面。许多公司都对开发满足其业务需求的portlet进行了大量投入。目前这些都是纯服务器端应用,只能使用客户端网络浏览器访问,并且只有在通过某种形式的网络连接到门户服务器时才能访问。如果在不连接到网络时也能继续使用这些相同的portlet,则很有用,这可以从通过将portlet重置为在客户端展开的独立程序实现。然而,这会需要修改所有portlet以允许它们作为独立应用程序运行,这将是一项费钱费时的工作,可能会不利于从服务器向客户端转移。与本专利申请同时提交的、名为“MethodandSoftwareToolfortheInstallationofPortletsintoaClientPlatform”的未决英国专利申请,以及具有portlet视图的客户端计算机系统(CleintComputerSystemwithPortletViews),目的就在于处理这些问题,并且允许将portlet迁移到客户端计算机系统。该系统允许以对用户透明的方式将portlet与其他客户端应用一道集成。不采用门户聚集模型,而是每个portlet都与独立视图窗口相关联,其中在这些视图窗口的每一个中运行网络浏览器。指示浏览器导航至与portlet相关联的页面,由此显示由该portlet输出的内容。然后利用HTTP,借助嵌入式浏览器,进行用户与portlet之间的所有通信。可以通过portlet视图工具,进行改变portlet状态或模式的请求,并且通过将与该portlet相关联的浏览器重定向到特定URL来将这些请求传递给给portlet。客户端计算机的优选实施方式允许未经修改的portlet在富客户端平台(也称为智能客户端、胖客户端或厚客户端)上的窗口内运行,该丰富客户端平台为以下客户端其进行大部分处理,而服务器计算机系统执行少量或不执行处理。对portlet的控制从portlet标记转移到客户端UI。从用户的观点看,portlet与任何其他客户端应用之间没有差别。用户能够以与portlet被部署为服务器portlet时与该portlet交互完全相同的方式与其交互。在该情况下,如果portlet能够共享数据并且能够与其他客户端应用合作,则可大大提高在客户端上保持portlet的价值。本发明目的在于提供一种对具有portlet视图的客户端计算机系统的改进,其具有portlet共享数据的功能。
发明内容本发明的各个方面提供了一种用来在客户端计算机系统中组件之间传送数据的方法、软件工具、以及系统。该客户端计算机系统具有用户界面,用来显示包含由多个组件呈现的内容的页面。提供属性中介方,其维护客户端计算机系统的组件所链接的源与目的数据字段的注册表。当向属性中介方注册的组件检测到用户请求时,通知该属性中介方,然后通知向属性中介方注册的一组组件通信阶段的开始。由动作所针对的组件处理用户请求,并且将在用户请求处理过程中更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件。当通信阶段的结束时,属性中介方通知所述组件组,然后至少一个组件呈现内容以显示。在名称为”PortletDataSharingSystem,MehtodandProgramProduct”的US20040090969(其内容融入此文作为参考)中描述的属性中介方体系结构允许portlet开发人员定义在标准门户中接收和/或与其他portlet共享数据的数据字段。该属性中介方概念用于本发明,并且得到扩展,以提供客户端portlet与在客户端计算机系统中运行的其他应用之间的异构通信机制。在US20040090969中描述的属性中介方数据共享模型的要素在于改变portlet的生命周期,以在要开始动作阶段(其中进行属性中介方通信)时,以及再次在该阶段要结束时,要求通知。本发明优选实施方式避免了修改portlet生命周期模型的需求,由此将对portletAPI的修改最小化。在本发明优选实施方式中,关于属性中介方通信的开始与结束的通知由属性中介方直接转发给合作的组件,而属性中介方不知道当前组件的确切性质。通过这种方式,所有属性提供者都以一致的方式发挥作用,并且所有属性提供者都以相同的语义接收相同的通知。在不修改portlet容器的前提下之所以可以如此的原因在于客户端门户的性质,其中客户端平台完全控制了每个portlet的用户交互与显示,因此在必要时能够发出正确的事件。目前存在大量基于IBMWebSphere技术的portlet,还有越来越多的portlet基于最近的JSR(Java规格请求)-168PortletAPI标准。尽管目的相同,这些技术在实现上有很大差异,优选实施方式修改了属性中介方的关键思路,从而该系统可与多种类型的portlet以及客户端应用一起工作,而不用修改现有API。更优选的特征为如下配置该机制,使得任意两个客户端组件之间的通信以完全独立于组件性质(不管其为portlet还是其他)的方式进行。现在仅作为例子参照附图描述本发明的优选实施方式,其中图1显示客户端平台显示的例子;图2A显示根据本发明优选实施方式的系统的组件之间交互的概图;图2B显示其中可以实现图2A的系统的客户端插件体系结构及其功能组件;图2C显示根据优选实施方式的客户端计算机系统的扩展点与扩展之间相互关系;图3A、3B、3C显示根据本发明优选实施方式的可能显示的显示页面或部分显示页面屏幕;图4A显示根据本发明优选实施方式的在设计显示页面时所涉及的步骤;图4B显示根据本发明优选实施方式的在显示所存储的显示页面时所涉及的步骤;图5显示根据本发明优选实施方式的在安装portlet时所涉及的步骤;图6显示根据本发明优选实施方式的连线工具的元素;图7A、7B、7C、7D显示根据本发明一种实施方式的透视图的部分屏幕;图8A、8B、8C显示根据本发明一种实施方式的连线工具屏幕;和图9显示根据本发明一种实施方式的、当检测用户动作时所采取的步骤的流程图。具体实施例方式在以下描述中,参照构成本发明描述一部分的附图并且说明一种实现。应该理解可以利用其他实现,并且在不脱离本发明的范围的前提下,可以进行结构与操作上的修改。在客户端途径中,分离的视图窗口与每个portlet相关联,并且在每个这些视图窗口内运行网络浏览器。引导portlet视图内的浏览器导航至与该portlet相关联的页面,从而显示该portlet的输出。然后,使用HTTP,通过嵌入式浏览器,进行用户与portlet之间的所有通信。可以通过客户端平台UI,进行改变portlet模式或状态的请求,并且通过将与该portlet相关联的浏览器重定向到特定URL,将这些请求传递给该portlet。本发明的优选实施方式利用基于Eclipse技术的客户端平台,其提供源代码构造块、插件框架以及运行实例,这些有利于应用工具开发。其为用于创建、集成、以及部署模块(所谓的插件)的环境,其可以是跨越各种计算环境的工具。Eclipse平台定义了工作台(Workbench)用户界面(UI)以及一组公用的、不依赖于领域的用户交互范例,可将工具构造者可以插入其中以添加新功能。该平台具有一组可以由工具构造者扩展的标准视图。工具构造者既可以添加新视图,也可以将新的领域特定功能插入现有视图中。工具被编写为插件,其操作Eclipse文件空间(称为Workspace(工作空间))中的文件,并且在工作台中呈现其工具特定的UI。当启动Eclipse平台时,向用户呈现工作台窗口显示页面,其提供由一组可用插件构成的集成开发环境。Eclipse将在多种操作系统上运行,包括Linux与Windows((Microsoft与Windows为MicrosoftCorporation在美国、其他国家、或者所有国家的注册商标,Linux为LinusTorvalds在美国、其他国家、或者所有国家的注册商标)。在ObjectTechnologyInternationalInc.的EclipsePlatformTechnicalOverview中描述了Eclipse平台,其可以(例如)在www.eclipse.org上找到,其融入此文作为参考。Eclipse平台包含插件文件夹,其中部署了各个插件。每个插件安装在插件文件夹下其自身的文件夹中。插件以XML清单文件描述,称为plugin.xml,其驻留在插件的文件夹中。清单文件声明该插件与其他插件的互连,并且告诉Eclipse平台其需要知道哪些以激活该插件。可以通过插件注册表API,以编程得到插件清单文件的分析后内容,并且在称为插件注册表的主存内库中缓存分析后的插件规格。Eclipse平台提供插件管理内核以及存在于每个Eclipse部署的核心插件。这些核心插件的标识被硬编码在Eclipse平台中,并且该平台知道在Eclipse的每个运行实例中激活这些插件。在另一方面,当其他插件需要时,激活非核心插件。插件之间的互连模型是简单的插件声明其他插件能够对其作出提供的任意数目的被命名的扩展点,以及其对其他插件的或多个扩展点作出提供的任意数目的扩展。其他插件可以扩展插件的扩展。扩展点可以具有相应的API接口。通过对该扩展点的扩展,其他插件提供该接口的实现。作为附件1融入此文的Eclipse平台插件清单规格在文档中记录了定义插件时使用的XML元素与属性。每个插件具有唯一的标识符(XML属性id),其用来在其他相关插件清单文件内指示插件。也可以在供应者提供的插件代码内使用唯一标识符,以访问插件的运行实例。在Eclipse平台上安装插件包含两个阶段。第一阶段包含将构成插件的资源(清单文件、jar或war文件以及其他资源)拷贝到该平台的插件目录下该插件的相应文件夹中。第二阶段包含通过向插件注册表添加来自插件清单文件的数据(例如分析后插件规格),注册该插件。一旦完成了这一步,当需要插件执行某功能时,Eclipse平台就可以激活该插件。Eclipse平台用户界面(UI)模式基于视图与透视图。视图为显示有关对象的信息的窗口;透视图提供其上可以组织视图的显示页面或画布。插件可以向平台提供视图,并且视图可以被组织为不同的透视图。Eclipse工作台提供的多个扩展点,包含视图扩展点。借助该视图扩展点,通过向该视图扩展点提供一或多个扩展,其他插件可以向平台提供视图。参照图1,其中显示客户端平台的显示器的简单例子,其具有三个不同的透视图102a、102b、102c。透视图102a在最上层显示,并且包含五个视图104,其中三个视图显示portlet内容,两个非portlet视图显示其他客户端平台组件。由portlet视图插件提供每个显示portlet的视图,作为Eclipse视图扩展点的扩展。以后将描述向Eclipse透视图添加portlet视图的方法。如上所述,portlet一般在portlet服务器内运行,portlet服务器在页面上聚集来自所有portlet的内容,并且返回所聚集的内容。在本发明中,portlet服务器不将来自一portlet的内容与来自另一portlet的内容聚集,而是一次返回由单个portlet提供的网络内容。由此,此处使用名词“portlet服务器”来指示已经修改了的标准portlet服务器进程。此处使用的名词“portlet服务器”表示以下服务器进程当被请求时,其利用诸如HTTP等协议来提供来自单个portlet的标记文档,以及任意相关的文件与脚本。本发明可以用单个portlet服务器实现。然而,当前对于编写portlet存在几个实际的标准。优选实施方式支持这些标准中的两个,即WebSphereportlet以及Java规格请求(JSR)-168(StandardWebSphere为InternationalBusinessMachinesCorp.ofArmonk,NY.的注册商标)。优选实施方式提供利用WebSphere门户服务器与JSR-168门户服务器的修改版本的portlet服务器。服务器进程提供来自单个portlet的标记文档,即没有对来自不同portlet的内容的聚集。URL指向单个的portlet,并且仅返回该portlet自身的标记片断。消减了门户服务器的代码,从而不提供任何方案、或者皮肤、或者进行portlet内容片断的包裹。门户页面替换为Eclipse透视图,其具有在Eclipse中改变透视图以导航通过显示页面的功能,并且通过实现为至Eclipse平台的插件的portlet视图工具,提供用于在显示页面上显示的portlet内容片断的皮肤,如下所述。另外,Tomcat应用服务器代码、WebSphere与JSR-168门户服务器代码被尽可能地消减,以不包含客户端计算机系统中不需要的不必要的功能,例如服务器安全功能(登录/验证等等)。配置portlet服务器以允许安装portlet,并且支持portlet生命周期(即,Init、Service、以及Destroy方法)以及模式改变。Init方法允许portlet被初始化;当需要portlet呈现其内容时,调用Service方法;Destroy方法允许portlet被停止服务并销毁。优选实施方式利用嵌入式版本的TomcatJava2EnterpriseEdition(J2EE)应用服务器来保持portlet服务器。Tomcat为在ApacheSoftwareFoundation的Jakarta项目下开发的、JavaServlet与JavaServerPages技术的开源实现(Java与所有基于Java的商标为SunMicrosystems,Inc.在美国、其他国家、或者所有国家的商标)。另外,Tomcat应用服务器提供对J2EE服务的支持,例如数据库连接与EnterpriseJavaBeans(EJBs)。本领域技术人员可以理解同样可以使用其他应用服务器,例如WebSphere应用服务器。图2a显示根据优选实施方式的系统的组件之间互连的概况。这些组件包含Tomcat应用服务器201与应用服务器接口(API)205;对于所支持的每种portlet类型的portlet服务器,此处为WebSphereportlet服务器204b与JSR-168portlet服务器204a;portlet接口203a、203b(其实现为portlet服务器的一部分);JSR-168portlet视图插件202,其与在portlet服务器204a上安装的JSR-168portlet206之一相关联;以及网络浏览器207,其在由port1et视图插件202提供的客户端视图(未在图2a中显示)内运行。该网络浏览器使用HTTP208与Tomcat服务器201通信。图2b显示优选实施方式的Eclipse插件体系结构,其中提供portlet视图工具作为portlet视图插件。如图所示,客户端系统100包含多个portlet视图插件202(显示了两个)以及项目插件110。项目插件包含用于实现该系统、并且包含多个UI组件220与多个服务器组件230的代码。(虽然在图2b中这些被显示为形成单个插件110,但是可以根据偏好将这些实现于许多独立的插件中。)UI组件220包含安装向导209,具有UI动作处理器212的标准portlet视图211,以及门户模板213。标准portlet视图代码211由每个portlet视图插件使用,以将其portlet内容包裹到视图窗口中、提供控件图标、当要显示其相关联的portlet的视图时运行网络浏览器等等。portlet安装向导209提供portlet安装菜单,以后将描述安装向导的实现,其创建portlet视图插件202。标准portlet视图211提供每个portlet视图插件实现其视图所需的代码。这使portlet视图工具能够提供用于portlet视图的框、在视图框上使用的portlet控件图标,并且在每个portlet视图中运行网络浏览器。UI动作处理器212包含由portlet视图工具响应于用户点击portlet控件图标而执行的代码,用来表示控件动作。门户模板组件213提供缺省初始透视图,用户可以从此选择并打开portlet安装向导209。安装向导由安装到客户端上的每个portlet都配备有其自身的相关联的portlet视图插件202。以下问题依赖于所安装的portlet的类型,即其为JSR-168还是WebSphereportletportlet安装在哪个portlet服务器上,以及向导所提供的portlet接口扩展214指向哪个portlet接口203a、b。扩展了图2b左侧的portlet视图插件202,以显示其内容,其为两个扩展即portlet接口扩展214,其通过用户定义的服务器扩展点232连接到服务器;以及视图扩展210,其扩展Eclipse视图扩展点。视图210引用标准portlet视图211,其从标准portlet视图211获得运行网络浏览器207所需的代码。网络浏览器207可以用来借助HTTP从该插件的相关portlet实例所在的portlet服务器接收网络内容。portlet接口扩展214包含对于该portlet服务器的访问数据,并且允许视图210与有关门户服务器上相关portlet实例通信。portlet接口扩展214包含其相关portlet的名称与ID,并且使用这些来指向有关portlet接口203(a或b)。配置portlet服务器204a与204b,从而当收到对于portlet内容的请求时,有关服务器(即对于WebSphereportlet的WebSphereportlet服务器,以及对于JSB-168portlet的JSB-168portlet服务器)只返回该单个Portlet的内容,而不将该内容与来自其他portlet的内容聚集,并且不将该内容打包到具有标题条与控件按钮等等的portlet窗口中。portlet的视图插件使用网络浏览器以在视图窗口内显示该内容,根据portlet的配置数据,该插件提供该视图窗口。如图2c所示,客户端计算机系统100包含多个UI扩展,其插入Eclipse平台的工作台扩展点222;以及服务器扩展,其插入项目插件110所声明的服务器扩展点232。参照图2a与2b,现在描述平台的运行时间过程。首先,Eclipse平台启动;读取其已注册插件的清单文件,构造其主存内插件注册表;并且初始化其已注册插件。由此,项目插件110被初始化,并且由此可以通过Eclipse平台使用。另外,该平台初始化任何已注册portlet视图插件202。直至用户显示包含portlet的视图的页面或者安装新portlet,对于门户服务器204a、204b没有发生任何特殊的事情。当用户选择要显示的、包含portlet视图的透视图时,相关插件必须获得该portlet的标记内容,并且其进行调用以检索该内容。首先,其调用该portlet类型的实例对象,以察看相关联的portlet服务器204a、204b是否已启动。如果portlet服务器还未启动,则portlet接口203a、203b(通过API205)告诉应用服务器201启动相关portlet服务器204a、204b。当portlet服务器启动时,其所有已安装的portlet206将被初始化。与动作所针对的portlet相关联的portlet视图插件202包含识别其与之相关联的portlet实例的参数。portlet视图工具创建视图窗口,其中运行网络浏览器,并且通过传递portlet实例的id与所需模式借助服务器API对portlet实例进行查询。portlet服务器返回URL,并且视图将其传递给嵌入式浏览器207。浏览器207通过HTTP将URL请求发送给应用服务器201,并且接收包含由该portlet呈现的标记的响应。然后,浏览器207根据所接收的标记显示portlet内容。portlet可以包含至其他页面、文档等等的链接,并且如果用户选择其中的任何一个,则该浏览器利用HTTP检索所链接的标记。当用户与portlet206交互时,浏览器207与portlet服务器204a或204b之间的交互继续进行。portlet模式或状态改变请求,例如编辑、配置、或帮助模式,通过用户点击portlet视图的皮肤或窗口框中的控件图标之一来启动。然后,port1et视图工具执行UI动作处理器212,UI动作处理器212通知动作所针对的视图的portlet接口214选择了哪个控件按钮。portlet接口214向网络浏览器传递URL,该视图应该从该URL请求新内容。从该URL接收的网络内容使浏览器能够以所请求的模式/状态显示portlet206。现在参照图3a、3b、3c,从视觉角度描述portlet的安装。当平台200启动时,将显示欢迎透视图,一般具有控件条/按钮,从该控件条/按钮可以选择诸如“打开空白门户模板”等选项,如图3a所示。空白门户模板为一工具,(实现为EclipseUI的“透视图”扩展点的扩展213),其允许用户创建新的透视图以及利用安装portlet向导安装portlet(参看图3b)。当选择了安装portlet向导209时,向用户显示(参看图3c)客户端系统100特定文件夹302中portlet网络应用存档文件(.war)文件的文件列表300。如果用户从该列表中选择一或多个portlet,则向导将每个选定portlet的.war文件安装到相关portlet服务器上。(单个.war文件可以包含多个portlet,并且用户可能能够选择单个.war文件内的特定portlet进行安装)。当安装了每个选定portlet时,向导向用户显示成功安装报告,然后根据所使用的特定平台,用户可能必须重新启动客户端平台使利用新近安装的portlet。向导还为每个所安装的portlet提供客户端平台视图,以后将更详细地解释这一机制。由此,这些视图被添加到平台的可用视图列表,该列表显示了所有视图扩展,并且开发人员或用户可以使用该列表来设计新的显示页面,例如新透视图。参照图4a,为了设计新的透视图,当启动400时,向用户显示菜单页面(实现为EclipseUI扩展点“ActionSets”的扩展),用户可以从该页面选择并打开402空白门户模板。用户从模板下拉菜单中选择“显示视图”选项,并且被显示404可用portlet视图和/或客户端平台组件视图的列表。选择所列视图之一406将使该视图实例化,并且在当前透视图中打开。用户可以添加更多视图至正在创建的页面,并且通过诸如重新调整大小、重新定位(例如拖拉放置等等)等功能,可以在该页面上组织410这些视图,并且可以设计透视图,该透视图与portlet视图一道显示非portlet客户端平台组件,如图1所示。以与切换到门户中的新页面类似的方式,可以将所创建的透视图存储到在需要时可以被记起的预定透视图的列表中412。当关闭透视图时,该透视图上的试图也被关闭。参照图4b,当用户要求显示所存储的透视图时,从“打开透视图”选项下的下拉菜单中选择所需透视图414。然后,平台200实例化为选定透视图的部分的所有插件416,并且读取其清单文件。根据清单文件的信息,平台利用portlet视图工具来创建418每个视图窗口的框以及任何必要工具条与菜单,并且将网络浏览器嵌入每个实例化的portlet视图中。对于由portlet视图插件提供的视图,启动每个相关插件,并且每个相关插件借助嵌入式网络浏览器发送420对于其相关portlet内容的请求。该请求去向应用服务器,应用服务器将其指向相关portlet服务器。(在做这些时,应用服务器通过检查请求URL并且查找至其容器(例如portlet服务器)的映射表,确定处理该请求的正确容器。)然后,向用户显示透视图422,其具有显示通过嵌入式网络浏览器接收的内容的任一portlet视图。然后,用户与任一所显示视图交互。如果用户(例如)通过点击在视图中显示的URL链接与portlet视图交互,则嵌入式网络浏览器借助HTTP从portlet服务器请求具有该URL的内容。URL指向单个portlet。portlet服务器只返回来自所指向的portlet的html内容,然后该内容由嵌入式网络浏览器显示。透视图上其余视图不更新。参照图5,现在描述在将portlet安装到应用服务器中所涉及的功能步骤。该平台配备有portlet安装向导,组件209,当用户选择502该组件时,该组件提供用户界面,该界面使用户能够从war文件列表中选择特定portletwar文件。war(网络应用存档)文件为portlet的一般包裹。响应于用户选择portlet504,安装向导209根据war文件确定portlet类型,并且通过初始化相关portlet服务器204a、204b(如果其还未被初始化的话),创建portlet接口203的实例。借助portlet实例203a、203b,安装向导209指令portlet服务器204a、204b安装portlet.war文件211,这导致了portlet服务器上portlet206的新实例506。在该过程中,portlet服务器安装(多个)portlet文件,并且将portlet细节添加到管理其portlet的portlet容器的注册表。当成功安装了portlet.war文件211时,安装向导209生成508与该portlet相关联的、并且包含其自身清单文件的新portlet视图插件202。清单文件列出显示标签(例如插件视图的标题),视图插件所需的控件以及扩展,并且声明两个扩展EclipseUI视图扩展点的视图扩展;以及用于扩展由项目插件110提供的JSR-168或WebSphereportlet扩展点232的JSR-168或WebSphereportlet接口扩展214。portlet接口扩展使portlet能够声明与其相关联的是哪种类型的portlet,以及在相关portlet服务器组件204a、204b中包含的引用代码,以提供相关portlet服务器接口203a、203b。视图扩展引用标准portlet视图代码,当向用户显示视图时,portlet视图插件运行该标准portlet视图代码。通过使用这些,portlet视图工具创建所需菜单与工具条,并且将该工具所提供的图标应用到portlet视图的框中。如上所述,在Eclipse平台中注册510portlet视图插件后,用户可以将新portlet的视图添加到Eclipse透视图。该结构与服务器端门户中portlet实例的不同之处在于本系统中门户服务器204不将来自多个portlet的内容聚集到门户页面中。相反,每个portlet具有其自身的、可以在用户的Eclipse平台屏幕上显示的portlet视图窗口。另外,门户服务器不是通过向每个窗口添加框(包含标题与控件按钮),将每个portlet片断打包到portlet窗口中。相反,portlet视图工具根据portlet视图清单文件,提供其portlet视图窗口的框,包含标题条与控件按钮。对于每个已安装的portlet,安装向导在Eclipse平台上安装新的portlet视图插件。Eclipse平台在独立的窗口或者视图(每个都具有其自身的框、控件按钮与嵌入式网络浏览器)中显示每个portlet视图插件。现在描述在portlet和/或客户端组件之间的数据共享机制。为了实现本发明,创建portlet和客户端组件,具有接收并与零或更多个其他组件共享数据的能力。在创建组件时,开发人员定义该组件内每个数据字段的数据类型(即字符、串、实数、整数等等)。开发人员还定义数据字段为输入字段、输出字段、内部字段、或输入/输出字段。指定为输入字段或输入/输出字段的数据字段可以接收来自另一组件或内容提供者的数据。类似地,指定为输出字段或输入/输出字段的数据字段可以与另一组件共享数据。指定为内部字段的数据字段不能接收或与另一组件或内容提供者共享数据。该数据共享机制使用允许将一个组件的源字段(即输出或输入/输出字段)映射/链接到另一个组件的目的字段(即输入或输入/输出字段)的映射系统。当映射两个字段时,源字段中的数据将自动与目的字段共享。该映射系统一般包含允许开发人员或者用户将所希望的字段链接(“连线(wire)”)在一起的用户界面。一旦映射了源与目的字段,(多个)源字段中的任何数据就将自动与目的字段共享。在提供正确适当的映射时,该映射系统首先可以确保数据可以被适当共享(即数据类型兼容,并且相应字段被适当指定为输入和/或输出字段)。如果允许共享,则可以呈现显示该新映射的图形表示。在优选实施方式中,该映射系统被实现为上述Eclipse平台中的连线工具215。如图6所示,连线工具215包含其提供给Eclipse平台视图扩展点的视图扩展,以及属性中介方(propertybroker)。每个portlet与客户端组件向属性中介方注册,通过显露其数据字段表示其是否能够发布数据和/或消耗数据。属性中介方维护其可以用来映射一个组件的数据源字段(即输出或输入/输出字段)到另一个组件的目的字段(即输入或输入/输出字段)的注册表。当映射两个字段时,源字段中的数据将自动与目的字段共享。映射字段列表或“连线”可以在XML文档中提供,或者由用户以图形方式编辑/创建。如上所述,在处理请求时,portlet一般具有两个主要阶段动作阶段与呈现阶段。动作阶段由门户服务器调用,针对被点击的、“动作所针对”的特定portlet,处理该动作,然后对于页面上所有portlet,调用呈现阶段。只有当portlet上某物被点击时,才调用动作阶段,而不是首次显示页面时初次调用。关于属性中介方通信的开始与结束的通知由属性中介方直接转发给合作方组件,属性中介方不知道当前组件的确切性质。通过这种方式,所有属性提供者都以一致的方式发挥作用,并且所有属性提供者都以相同的语义接收相同的通知。在不修改portlet容器的前提下之所以可能如此的原因在于客户端门户的性质,其中客户端平台完全控制了每个portlet的用户交互与显示,因此在必要时能够发出正确的事件。参加属性中介的组件(portlet或插件)都不允许开始呈现内容,直至完成所有的属性中介。这是为了确保组件不会呈现陈旧的数据。开始不能呈现数据,因为其可能被属性中介方改变。为了解决该问题,可以将称为BeginEventPhase与EndEventPhase的新生命周期方法引入WebSphereportletAPI。在开始呈现portlet之前,保证完成这些生命周期阶段,由此给出了完成属性中介的时机。然而,因为JSR-168portletAPI不包含BeginEventPhase与EndEventPhase生命周期方法,所以需要一新机制来协调用于客户端属性共享的中介与呈现的时序。为了达到这一点,引入称为communicaitonPhaseBegun与communicaitonPhaseEnded的两个方法。属性中介方在portlet插件以及在该页面上具有视图的每个其他插件上调用这两个方法。当调用communicaitonPhaseBegun方法时,插件设置标志,例如信号量,以通知自身不要开始呈现,因为正在进行属性中介。当调用communicaitonPhaseEnded时,插件清除该标志,以通知自身现在可以进行内容呈现。然后,该插件能够通过向其传递URL来更新嵌入式浏览器。注意当进行属性中介时,嵌入式浏览器中的所有URL点击都被portlet插件截获,而不仅仅是改变portle模式的点击。因为任何交互都可能激活属性中介周期,所以这是必要的。为了截获这些用户动作,portlet插件在嵌入式浏览器中注册事件监听器。诸如MircrosoftInternetExplorer等嵌入式浏览器提供该事件监听功能。参照图9,该图描述当portlet为检测到客户端交互的组件时所涉及的方法步骤。当用户在portlet上执行动作901时,嵌入式浏览器检测用户点击,并且抛出事件通知,该事件通知由与其相关联的portlet插件拾取。然后,该portlet插件通知属性中介方要处理新请求。然后,属性中介方通知902页面上的每个组件communicaitonPhaseBegun。动作所针对的portlet组件现在允许其浏览器对URL进行动作903,并且浏览器将URL发送给动作所针对的portlet,由此触发其动作处理与呈现阶段两者。即使在插件中设置了标志,也允许动作所针对的portlet呈现;这之所以可以是因为在动作阶段已完成其属性共享。在其动作阶段过程中,动作所针对的portlet进行调用以通知属性中介方所改变的属性。进而属性中介方跟随其连线,并且通知904属性改变的目标portlet,由此允许这些portlet更新其数据。这些portlet可以处理其接收的数据属性的新值,并且产生另一数据属性的新值。如果该另一数据属性为共享属性,则portlet将通知属性中介方该属性的新值。属性中介方将再次利用连线通知所有链接的portlet(或者其他链接的组件)这些属性改变。借助事件监听器,使与动作所针对的portlet相关联的portlet视图插件获知已经通过嵌入式浏览器完成了动作所针对的portlet的呈现。然后,该portlet视图插件通知属性中介方请求已经完成,并且属性中介方通过调用方法communicaitonPhaseEnded,通知905每个在显示页面上具有视图的其他组件通信阶段已经结束。然后,每个其他组件刷新其内容906,以反映更新后的数据值,或者在修改方式下,只有那些改变了属性的组件才刷新其内容。对于每个portlet视图插件,刷新涉及其嵌入式浏览器借助HTTP与其相关portlet通信,并且portlet以新近呈现的内容响应,该新近呈现的内容反映属性中介所产生的所有改变。在优选实施方式中,每个组件都能在其自身私有存储空间中读取并写入数据。当修改源字段的数据值时,“源”组件将消息发送给属性中介方。属性中介方访问为源字段定义的映射,并且将消息发送给与源字段共享的每个“目的”组件。所述消息包含目的字段的标识,以及目的字段的更新后数据值。人们可能希望在具有不同数据类型的字段之间共享数据。为了解决此类问题,可以提供转换系统以将共享数据从源字段数据类型/格式转换为目的字段数据类型/格式。由此,该转换系统总是允许容纳任意数目的数据类型。为了提供此类有效的数据转换,一般提供转换数据(例如,存储在数据库中),以由转换系统访问。当必要时,属性中介方可以使用该转换系统以在源字段与目的字段数据类型之间转换数据。然后,“目的”组件将新数据值写入其自身私有存储空间,并且执行所需的所有功能。可替换地,属性中介方可以为每个portlet/组件提供每个共享字段的字段以及“目的”组件列表。然后,组件能够将消息直接发送给每个“目的”组件。可替换地,可以利用共享存储器实现组件之间的数据共享。在这种情况下,组件可以将所有源字段写入共享存储器位置。随后,另一组件为映射的目的字段从该共享存储器位置读取数据。所述读取与写入可以由属性中介方和/或转换系统执行,从而在不要求portlet或客户段组件中附加功能的情况下,进行所需的通信与数据类型转换。图7显示网络搜索Eclipse透视图700,其包含五个portlet的视图,即搜索条portlet701、搜索历史portlet702、以及三个搜索引擎portlet704、705、706,这三个搜索引擎分别(例如)称为“Youwho”、“AskBertie”、以及“Goggles”。该网络搜索透视图还包含由连线工具的视图扩展602提供的连线工具视图703。搜索条portlet701包含搜索条707,用户可以向其输入搜索词;以及搜索按钮708,用来表示用户希望搜索所输入的词。搜索历史portlet包含用来显示搜索历史的显示区域(在图7中为空),并且包含“清除历史”按钮,用户通过该按钮可以清除显示区域。图7所示透视图为透视图的基本版本,当用户首次选择透视图时,在用户与页面上任何视图交互之前,显示该基本版本。当没有进行搜索时,每个搜索引擎portlet视图都显示消息“没有结果要显示”。连线工具视图703提供允许开发人员或用户将所希望的字段链接在一起的用户界面。在图8A中,作为连线工具的Eclipse视图,显示了以图形方式映射/链接一或多个源字段到一或多个目的字段的示范性图形用户界面。利用该用户界面以及图7A的示例透视图,首先从视觉角度描述利用连线工具600将搜索引擎portlet与搜索历史portlet“连线”到搜索条portlet的方法。如图8A所示,显示开发来共享属性的页面上的每个组件,其能够共享的属性(字段)在该组件名称下缩进显示。由此,列出了每个搜索引擎portlet,并且每个搜索引擎portlet都具有称为“searchcommand”的属性。搜索历史portlet列为“网络搜索历史”,并且具有两个数据字段;即“repeatsearchterm”与“lastsearchterm”。搜索条portlet列为“网络搜索条”,并且具有一个数据字段“searchtarget”。虽然未显示,但是根据属性的I/O规格,可以不同格式在连线工具视图中显示每个属性。例如,输入字段、输出字段、以及输入/输出字段可以特有颜色显示,包含特有形状或标记等等。当用户选择所列属性时,例如searchtarget数据字段,可以显示下拉菜单800。该菜单给予用户以下选项添加至选定属性的新连线,即指定选定属性为新映射中的目的字段,或者添加来自选定属性的新连线,即指定选定属性为源字段。为了创建将搜索条连接到Youwho搜索portlet的连线,用户选择创建来自searchtarget属性的新连线的选项。然后,显示称为“创建新连线”的新窗口810(参看图8B)。该窗口提供其他portlet、插件及其属性的列表,从这些其他portlet、插件及其属性用户可以选择Youwho搜索portlet的searchcommand属性。这就导致将来自搜索条的searchtarget串的连接到Youwho搜索portlet的searchcommand串,其中searchtarget串为源字段,searchcommand串为新连线的目的字段。图8c显示连线工具视图的显示,其通过利用所连线的属性下的箭头显示连接。图7B显示通过在网络搜索条中输入词“IBM”并且选择搜索按钮会显示的结果。如图所示,Youwho搜索portlet显示利用Youwho搜索引擎对词IBM的搜索结果。其他两个搜索引擎705、706保持其原来的“没有结果要显示”状态。现在相对于上面参照图7A至7C与图8A至8C所述的实施方式,详细描述属性中介方的功能。如上所述,属性中介方维护注册表,属性中介方使用该注册表来将待映射/链接的一个组件的数据源字段映射/链接到另一组件的目的字段。当用户利用连线工具设置两个组件之间的新连线时,该连线的源组件注册其源属性,目的组件注册其目的属性。在图8A至8C的例子中,属性中介方存储从网络搜索条portlet的searchtarget属性至Youwho搜索portlet的searchcommand属性的映射。当用户在搜索条中输入搜索词后,点击搜索按钮表示网络搜索条portlet中的动作。与搜索条portlet相关联的portlet插件(未显示)截获该用户动作,并且获得URL,然而还不允许网络搜索条portlet允许执行动作。网络搜索条portlet告诉属性中介方604通信开始。然后,属性中介方告诉在透视图上显示视图的所有portlet与客户端组件正在进行通信。然后,网络条portlet的相关插件将该URL传递给其嵌入式网络浏览器,该嵌入式网络浏览器利用HTTP联系相关portlet服务器,然后,该相关portlet服务器处理所请求的动作。在处理动作的过程中,网络搜索条portlet通知属性中介方其searchtarget属性已经改变,并且提供searchtarget属性新值给属性中介方。中介方利用其注册表,并且通知链接到searchtarget属性的所有portlet或客户端组件该属性的新值。进而,所链接的portlet或所链接的客户端组件可以通过中介方触发结果的属性改变。在图8A至8C的例子中,属性中介方通知Youwho搜索portletsearchtarget属性新值,然后Youwho搜索portlet相应的修改其自身的searchcommand属性。当网络搜索条portlet完成动作时,该portlet发送新的刷新后的内容,以在其视图窗口中由嵌入式网络浏览器显示;然后,其相关portlet插件通知中介方通信阶段完成。然后,中介方通知页面上每个注册组件通信阶段已经完成。然后,刷新在页面上出现的每个其他portlet/组件视图。对于每个portlet,这通过其相关portlet插件告诉其嵌入式网络浏览器刷新来完成。然后,在portlet视图窗口中呈现从相关portlet服务器接收回来的、更新后的内容。在通信阶段过程中,Youwhoportlet通过属性中介方获得其searchtarget属性新值,即搜索词“IBM”。在其呈现阶段过程中,Youwhoportlet在网络上查询其相关搜索引擎,以获得对于词“IBM”的搜索结果。然后,从该搜索引擎接收的结果由portlet呈现,并且发送给嵌入相关Youwhoportlet视图中的网络浏览器,以在屏幕上显示。在如上所述地创建了搜索条portlet的searchtarget属性至其他两个搜索portlet中每一个的searchcommand属性的连线之后,所有这三个搜索portlet通过搜索用户在搜索条707中输入的字符串,将对用户在搜索条portlet中选择搜索按钮进行反应,如图7C所示。最后,可以连线搜索历史portlet702,以记录通过搜索条portlet进行的搜索。为了达到这一点,将网络搜索条的searchtarget属性连线到历史portlet的lastsearchterm属性,lastsearchterm属性出现在其显示的先前搜索词列表的顶部。由此,当刷新搜索历史portlet时,在输入词或词组至网络搜索条之后,新的lastsearchterm值将被添加到其搜索词列表的顶部,先前的搜索词相应地向列表下方顺序移动。在图7D的例子中,搜索引擎在先前搜索词列表中列出两个词IBM与Microsoft。通过利用搜索历史portlet的repeatsearchterm属性,可以实现搜索历史portlet的进一步特征。该repeatsearchterm属性连线到网络搜索条portlet中的searchtarget属性,如上所述,该searchtarget属性连线到每个搜索引擎portlet的searchcommand属性。通过用户点击历史portlet所显示的搜索历史中的项目,例如在在图7D的例子中,在词“IBM”或“Microsoft”上点击,重置repeatsearchterm属性。这表示请求由所连线的搜索引擎重复执行对于选定的(多个)搜索词的搜索。替换图8A、8B、8C所示的用户界面,将一或多个源字段映射到一或多个目的字段的用户界面可以(例如)包含具有源侧与目的侧的表。可以使用下拉菜单以确保只选择有效的连接。例如,在选择源portlet/组件之后,定义为输出或输入/输出字段的字段可以在源字段下拉菜单中列出。可以类似方式选择(多个)目的字段。当组件只包含对于选择有效的单个字段时(即只包含一个输入字段的天气portlet,即城市列表),则在指定该组件之后,可以替用户自动选择该字段。类似地,当在门户页面上只包含两个portlet时,一旦将一个portlet选定为源,则可以将另一portlet选定为目的。不管怎样,如上所述,一旦将源字段映射到目的字段,源字段中的任何数据将自动与目的字段共享。虽然连线所述组件的方法指连线portlet,但是也可以利用上述属性中介方机制,将客户端组件的属性连线到portlet的属性,以及连线到其他客户端组件的属性。只要本发明的实施方式是可实现的,至少部分地利用软件控制的可编程处理设备,例如微处理器、数字信号处理器、或者其他处理设备、数据处理装置或系统,就可以理解用来配置可编程设备、装置、或系统以实现上述方法的计算机程序被认为是本发明的一个方面。该计算机程序可以实现为源代码,或者经过编译,以在处理设备、装置、或系统上实现,或者实现为(例如)目标代码。另外,包含这样的计算机程序的制造物也被认为是本发明的一个方面。例如,可以在诸如一或多个DVD/CD-ROM和/或软盘等介质上提供用来实现各种功能或者传送信息的计算机程序,然后将其存储在硬盘上。也可以在远程通信介质上提供可以由数据处理系统实现的程序,例如通过远程通信网络和/或因特网,以及实现为电子信号。对于作为无线终端在射频电话网络上运行的数据处理系统,该远程通信介质可以是承载表示所述计算机程序与数据的适当编码信号的射频载波。可选地,该载波可以是光纤链路的光载波,或者远程通信系统的任何其他适当的载波介质。本领域技术人员可以理解虽然针对上述实例实施方式描述了本发明,但是本发明不限于此,并且存在落入本发明范围内的许多可能的修改与变动。本发明的范围包含任何此处所述的任何新颖特征或者特征组合。在此本申请人提请注意在本申请或者任何从其导出的进一步申请的处理的过程中,可能会形成对这些特征或者特征组合的新权利要求。具体地,参照附图,来自从属权利要求的特征可能与独立权利要求的特征组合,并且来自各个独立权利要求的特征可能以任意适当的方式组合,而不是只有权利要求所列出的特定组合。为避免疑问,本说明书与权利要求中所用的名词“包含”不应理解为表示“只包含”。附件1EclipsePlatformPlug-inManifestVersion0.90-LastrevisedMarch15,2001Themanifestmarkupdefinitionsbelowmakeuseofvariousnamingtokensandidentifiers.Toeliminateambiguity,herearesomeproductionrulesforthese[arereferencedintextbelow].Ingeneral,allidentifiersarecase-sensitive.SimpleToken=sequenceofcharactersfrom(’a-z’,’A-Z’,’0-9’)ComposedToken=SimpleToken|(SimpleToken’.’ComposedToken)JavaClassName=ComposedTokenPlugInId=ComposedTokenPlugInPrereq=PlugInId|’export’PlugInIdExtensionId=SimpleTokenExtensionPointId=SimpleTokenExtensionPointReference=ExtensionPointID|(PlugInId’.’ExtensionPointId)Theremainderofthissectiondescribestheplugin.xmlfilestructureasaseriesofDTDfragments.Fileplugin.dtdpresentstheDTDdefinitionititsentirety.<?xmlencoding=″US-ASCII″?><!ELEMENTplugin(requires?,runtime?,extension-point*,extension*)><!ATTLISTpluginnameCDATA#REQUIREDidCDATA#REQUIREDversionCDATA#REQUIREDvendor-nameCDATA#IMPLIEDclassCDATA#IMPLIED>The<plugin>elementdefinesthebodyofthemanifest.Itoptionallycontainsdefinitionsfortheplug-inruntime,declarationsofanynewextensionpointsbeingintroducedbytheplug-in,aswellasconfigurationoffunctionalextensions(configuredintoextensionpointsdefinedbyotherplug-ins,orintroducedbythisplug-in).<plugin>attributesareasfollows·name-userdisplayable(translatable)namefortheplug-in·id-uniqueidentifierfortheplug-in.оTominimizepotentialfornamingcollisions,theidentifiershouldbederivedfromtheinternetdomainidofthesupplyingvendor(reversingthedomainnametokensandappendingadditionalnametokensseparatedbydot[.]).Forexample,vendoribm.comcoulddefineplug-inidentifiercom.ibm.db2о[productionrulePlugInId]·version-plug-inversionnumber.Seeorg.eclipse.core.runtime.PluginVersionIdentifierfordetails.Plug-inversionformatismajor.minor.service.Changeinthemajorcomponentisinterpretedasanimpompatibleversionchange.Changeintheminorcomponentisintepretedasacompatibleversionchange.Changeintheservicecomponentisintepretedascumulativeserviceappliedtotheminorversion.·vendor-name-user-displayablenameofthevendorsupplyingtheplug-in.·class-nameoftheplug-inclassforthisplug-in.Theclassmustbeasubclassoforg.eclipse.core.runtime.Plugin.TheXMLDTDconstructionruleelement*meanszeroormoreoccurrencesoftheelement;element?meanszerooroneoccurrenceoftheelement;andelement+(usedbelow)meansoneormoreoccurrencesoftheelement.Basedonthe<plugin>definitionabove,thismeans,forexample,thataplug-incontainingonlyarun-timedefinitionandnoextensionpointdeclarationsorextensionconfigurationsisvalid(forexample,commonlibrariesthatotherplug-insdependon).Similarly,aplug-incontainingonlyextensionconfigurationsandnoruntimeorextensionpointsofitsownisalsovalid(forexample,configuringclassesdeliveredinotherplug-insintoextensionpointsdeclaredinotherplug-ins).The<requires>sectionofthemanifestdeclaresanydependenciesonotherplug-ins.<!ELEMENTrequires(import+)><!ELEMENTimportEMPTY><!ATTLISTimportpluginCDATA#REQUIREDversionCDATA#IMPLIEDmatch(exact|compatible)″compatible″export(true|false)″false″>Eachdependencyisspecifiedusingan<import>element.Itcontainsthefollowingattributes·plugin-identifieroftherequiredplug-in·version-optionalversionspecification·match-versionmatchingrule.Ignoredifversionattributeisnotspecified.Determineswhetherthedependencyissatisfiedonlywithaplug-inofthespecifiedversion(possiblywithadditionalserviceapplied),orthedependencycanbesatisfiedwithanycompatibleversion(includingamorerecentminorversionoftheplug-in)·export-specifieswhetherthedependentplug-inclassesaremadevisible(are(re)exported)tousersofthisplug-in.Bydefault,dependentclassesarenotexported(arenotmadevisible)The<runtime>sectionofthemanifestcontainsadefinitionofoneormorelibrariesthatmakeuptheplug-inruntime.Thereferencedlibrariesareusedbytheplatformexecutionmechanisms(theplug-inclassloader)toloadandexecutethecorrectcoderequiredbytheplug-in.<!ELEMENTruntime(library+)><!ELEMENTlibrary(export*)><!ATTLISTlibrarynameCDATA#REQUIRED><!ELEMENTexportEMPTY><!ATTLISTexportnameCDATA#REQUIRED>The<runtime>elementhasnoattributes.The<library>elementscollectivelydefinetheplug-inruntirne.Atleastone<library>mustbespecified.Each<library>elementhasthefollowingattributes·name-stringreferencetoalibraryfileordirectorycontainingclasses(relativetotheplug-ininstalldirectory).Directoryreferencesmustcontaintrailingfileseparator.Each<library>elementcanspecifywhichportionofthelibraryshouldbeexported.Theexportrulesarespecifiedasasetofexportmasks.Bydefault(noexportrulesspecified),thelibraryisconsideredtobeprivate.The<export>elementshavethefollowingattributes·name-specifiestheexportmask.Validvaluesareо*-indicatesallcontentsoflibraryareexported(public)·package-name.*-indicatesallclassesinthespecifiedpackageareexported.ThematchingrulesaresameasinJavaimportstatement.·class-name-fullyqualifiedjavaclassnameTheplatform′sarchitectureisbasedonthenotionofconfigurableextensionpoints.Theplatformitselfpredefinesasetofextensionpointsthatcoverthetaskofextendingtheplatformanddesktop(forexample,addingmenuactions,contributingembeddededitor).Inadditiontothepredefinedextensionpoints,eachsuppliedplug-incandeclareadditionalextensionpoints.Bydeclaringanextensionpointtheplug-inisessentiallyadvertisingtheabilitytoconfiguretheplug-infunctionwithexternallysuppliedextensions.Forexample,thePageBuilderplug-inmaydeclareanextensionpointforaddingnewDesignTimeControls(DTCs)intoitsbuilderpalette.ThismeansthatthePageBuilderhasdefinedanarchitectureforwhatitmeanstobeaDTCandhasimplementedthecodethatlooksforDTCextensionsthathavebeenconfiguredintotheextensionpoints.<!ELEMENTextension-pointEMPTY><!ATTLISTextension-pointnameCDATA#REQUIREDidCDATA#REQUIREDschemaCDATA#IMPLIEDThe<extension-point>elementhasthefollowingattributes·name-user-displayable(translatable)namefortheextensionpoint·id-simpleidtoken,uniquewithinthisplug-in.Thetokencannotcontaindot(.)orwhitespace.о[productionruleExtensionPointId]·schema-schemaspecificationforthisextensionpoint.TheexactdetailsarebeingdefinedaspartofthePlug-InDevelopmentEnvironment(PDE).Theschemaiscurrentlynotusedatruntime.Thereferenceisafilenamerelativetotheplug-ininstallationlocation.Actualextensionsareconfiguredintoextensionpoints(predefined,ornewlydeclaredinthisplug-in)inthe<extension>section.Theconfigurationinformationisspecifiedaswell-formedXMLcontainedbetweenthe<extension>and</extension>tags.Theplatformdoesnotspecifytheactualformoftheconfigurationmarkup(otherthanrequiringittobewell-formedXML).Themarkupisdefinedbythesupplieroftheplug-inthatdeclaredtheextensionpoint.Theplatformdoesnotactuallyinterprettheconfigurationmarkup.Itsimplypassestheconfigurationinformationtotheplug-inaspartoftheextensionpointprocessing(atthetimetheextensionpointlogicqueriesallofitsconfiguredextensions).<!ELEMENTextensionANY><!ATTLISTextensionpointCDATA#REQUIREDidCDATA#IMPLIEDnameCDATA#IMPLIED>The<extension>elementhasthefollowingattributes·point-referencetoanextensionpointbeingconfigured.Theextensionpointcanbeonedefinedinthisplug-inoranotherplug-inо[productionruleExtensionPointReference]·id-optionalidentifierforthisextensionpointconfigurationinstance.Thisisusedbyextensionpointsthatneedtouniquelyidentify(ratherthanjustenumerate)thespecificconfiguredextensions.Theidentifierisspecifiedasasimpletokenuniquewithinthedefinitionofthedeclaringplug-in.Whenusedglobally,theextensionidentifierisqualifiedbytheplug-inidentifierо[productionruleExtensionId]·name-user-displayable(translatable)namefortheextensionImportantThecontentofthe<extension>elementisdeclaredusingtheANYrule.Thismeansthatanywell-formedXMLcanbespecifiedwithintheextensionconfigurationsection(between<extension>and</extension>tags).(c)CopyrightIBMCorp.2000,2001.权利要求1.一种在客户端计算机系统中组件之间传送数据的方法,该客户端计算机系统具有用户界面,用来显示包含由多个组件呈现的内容的页面,所述方法包含以下步骤提供属性中介方,其维护客户端计算机系统的组件所链接的源与目的的数据字段的注册表;当向属性中介方注册的组件检测到用户请求时,通知该属性中介方;通知向属性中介方注册的一组组件通信阶段的开始;由动作所针对的组件处理用户请求;将在用户请求处理过程中更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件;属性中介方通知所述组件组通信阶段的结束;以及由至少一个组件呈现已更新内容。2.根据权利要求1所述的方法,其中向其传送所述已更新值的组件的目的数据字段为链接到一或多个其他组件的数据字段的源数据字段,该方法还包含将已更新数据值传送给每个所述的其他组件。3.根据权利要求1或2所述的方法,其中目的组件处理更新的值,其中向该目的组件传递该更新的值。4.根据权利要求3所述的方法,其中如果目的组件对已更新值的处理更新目的组件源数据字段的值,则该方法还包含将已更新源数据字段值传送给与其链接的每个目的数据字段。5.根据上述权利要求任一项所述的方法,还包含检测引起组件动作的用户请求。6.根据权利要求5所述的方法,还包含显示包含多个视图的页面,其中每个视图由客户端计算机系统中一或多个组件提供。7.根据权利要求6所述的方法,其中通过检测与由那个组件所提供的视图的用户交互,检测引起该组件动作的用户请求。8.根据权利要求5、6或7所述的方法,其中所述检测用户请求包含在组件中设置事件监听器。9.根据上述权利要求任一项所述的方法,其中被通知通信阶段开始与结束的组件组为那些具有在显示页面上显示的视图的组件组。10.根据上述权利要求任一项所述的方法,其中在发送有关通信阶段结束的通知之前,动作所针对的组件呈现其内容。11.根据上述权利要求任一项所述的方法,其中具有在通信阶段过程中被更新的数据字段的每个组件呈现已更新的内容。12.根据上述权利要求任一项所述的方法,还包含向用户显示已更新页面。13.根据权利要求6至12中任一项所述的方法,其中至少一个具有在显示页面上显示的视图的组件为portlet。14.根据权利要求13所述的方法,还包含在客户端计算机系统中提供portlet服务器,以处理对于portlet内容的请求,该portlet服务器在其上安装有一或多个portlet。15.根据权利要求14所述的方法,还包含在显示页面上提供视图窗口,并且运行其中的网络浏览器以显示portlet内容。16.根据权利要求15所述的方法,还包含通过网络浏览器,从安装在portlet服务器上的portlet请求网络内容;以及在所提供的视图窗口中显示在显示页面上收到的网络内容。17.根据上述权利要求任一项所述的方法,还包含在客户端计算机系统上运行客户端平台,所述用户界面允许显示由在该客户端平台中注册的插件组件提供的视图。18.根据权利要求14、15或16所述的方法,还包含提供与在portlet服务器上安装的每个portlet相关联的portlet视图工具。19.根据权利要求18所述的方法,还包含portlet视图工具截获对于来自portlet的对于网络内容的用户请求。20.根据权利要求19所述的方法,还包含当截获用户请求时,通知属性中介方。21.一种计算机系统,包含多个组件,每个组件都具有一或多个数据字段,并且能够用来呈现内容;以及属性中介方,包含注册表,其将向属性中介方注册的源组件的源数据字段映射到目的组件的目的数据字段;其中第一组件用来接收用户请求,向属性中介方发送关于收到该请求的通知,并且处理该用户请求;响应于从第一组件收到所述通知,属性中介方用来通知一组组件通信阶段的开始,并且通知所述组件组通信阶段的结束;在用户请求处理过程中已更新的每个源数据字段的值被传送给具有所链接的目的数据字段的每个组件。22.根据权利要求21所述的计算机系统,还包含通信部件,当目的组件的目的数据字段也是链接到一或多个其他组件的源数据字段时,用来将所述已更新数据值传送给所述一或多个其他组件。23.根据权利要求21或22所述的计算机系统,其中属性中介方用来将在用户请求处理过程中已更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件。24.根据权利要求21至23中任一项所述的计算机系统,还包含用来处理目的组件所接收的已更新值的处理部件。25.根据权利要求24所述的计算机系统,还包含如果由目的组件对收到的已更新值的处理更新目的组件源数据字段的值,则用来将源数据字段已更新值传送给与其链接的每个目的数据字段的部件。26.根据权利要求21至25中任一项所述的计算机系统,还包含用来检测引起组件动作的用户请求的部件。27.根据权利要求21至26中任一项所述的计算机系统,还包含显示部件,用来显示包含多个视图窗口的页面,其中每个视图窗口包含由客户端计算机系统的一或多个组件提供的内容。28.根据权利要求27所述的计算机系统,还包含用来检测与由组件所提供的视图窗口的用户交互的部件。29.根据权利要求25或27所述的计算机系统,其中检测用户请求包含在组件中设置事件监听器。30.根据权利要求21至29中任一项所述的计算机系统,其中属性中介方用来向其发送有关通信阶段开始与结束的通知的组件组为那些具有在显示页面上显示的视图的组件组。31.根据权利要求21至30中任一项所述的计算机系统,还包含用来显示包含一或多个视图窗口的页面的用户界面,其中视图窗口显示由该计算机系统的组件提供的内容。32.根据权利要求31所述的计算机系统,还包含portlet服务器,用来处理对于portlet内容的请求,该portlet服务器在其上安装有一或多个portlet;以及portlet视图工具,与在portlet服务器上安装的portlet相关联,用来控制相关联的portlet并且用来运行网络浏览器,以在视图窗口中显示来自与其相关联的portlet的内容。33.根据权利要求32所述的计算机系统,还包含多个portlet视图工具,每个都与在portlet服务器上安装的portlet相关联。34.根据权利要求32或33所述的计算机系统,其中portlet视图工具包含与portlet相关联的、并且能够被配置来向该计算机系统提供视图的portlet视图插件。35.根据权利要求32、33或34所述的计算机系统,其中包括多个portlet服务器,每个服务器具有一或多个安装在其中的portlet。36.根据权利要求35所述的计算机系统,其中portlet视图工具包含portlet接口,用来使能与相关portlet服务器上相关联的portlet的交互。37.根据权利要求21至36中任一项所述的计算机系统,其中portlet视图工具能够被配置来提供用于显示portlet内容的视图窗口的框。38.根据权利要求21至37中任一项所述的计算机系统,还包含用来运行客户端平台的部件,以及用来允许显示由在该客户端平台中注册的插件组件所提供的视图的用户界面。39.根据权利要求32至34中任一项所述的计算机系统,其中portlet视图工具包含用来确定待由网络浏览器请求以在portlet视图窗口中显示的portlet内容的URL的部件。40.一种在客户端计算机系统中组件之间传送数据的软件工具,该客户端计算机系统具有用户界面,用来显示包含由多个组件呈现的内容的页面,所述软件工具用来维护客户端计算机系统的组件所链接的源与目的数据字段的注册表;通过计算机系统的组件接收关于检测用户请求的通知;通知一组组件通信阶段的开始;将在用户请求处理过程中更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件;以及当通信阶段结束时,通知所述组件组。41.根据权利要求40所述的软件工具,还用来当目的组件的目的数据字段也是链接到一或多个其他组件的源数据字段时,将所述已更新数据值传送给所述一或多个其他组件。42.根据权利要求40或41所述的软件工具,还用来将在用户请求处理过程中已更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件。43.根据权利要求40至42中任一项所述的软件工具,还用来如果由目的组件对收到的已更新值的处理更新目的组件源数据字段的值,则将源数据字段已更新值传送给与其链接的每个目的数据字段。44.一种计算机程序产品,包含用来执行权利要求1至20中任一项所述的方法的计算机可实现指令。45.一种数据处理系统,包括权利要求40至43中任何一项所述的软件工具。46.一种方法、系统或软件工具,用来在计算机系统的组件之间共享数据,基本如此处参照附图所述。全文摘要本发明提供一种方法、系统或软件工具,用来在客户端计算机系统中组件之间传送数据。该客户端计算机系统具有用户界面,用来显示包含由多个组件呈现的内容的页面。提供属性中介方,其维护客户端计算机系统的组件所链接的源与目的数据字段的注册表。当向属性中介方注册的组件检测到用户请求时,通知该属性中介方,然后通知向属性中介方注册的一组组件通信阶段的开始。由动作所针对的组件处理用户请求,并且将在用户请求处理过程中更新的每个源数据字段的值传送给具有所链接的目的数据字段的每个组件。当通信阶段的结束时,属性中介方通知所述组件组,然后至少一个组件呈现内容以显示。文档编号H04L12/28GK1750470SQ200510081399公开日2006年3月22日申请日期2005年6月30日优先权日2004年9月17日发明者布伦登·阿瑟斯,斯坦利·K·杰拉德-邓恩,基兰·J·奥马霍恩,查尔斯·R·E·史密斯申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1