专利名称:用于修改表示网络服务端点的端点引用的方法、装置和计算机程序的制作方法
技术领域:
本发明涉及数据处理系统,并且,更具体地,涉及对该数据处理系统内 的端点的寻址。
背景技术:
因特网基于客户端服务器模型,并且,包括多个网络服务器(webserver), 其是由多个客户端通过通信网络可达的。
经由因特网访问网络服务(web service)的观念正变得普及,并且,正 在开发大量的标准。
图1示出了包括主机计算机系统、网络服务器50的计算机网络5,其中, 网络服务器50通过通信网络(例如,因特网)60连接至客户端10。网络服 务器50主控对网络服务30的访问,网络服务30提供对被封装为单个实体并 发布到网络供其它程序使用的功能的收集,从而支持通过网络的可相互操作 的机器间交互。网络服务具有以例如网络服务定义语言(WSDL)的机器可 处理的格式描述的界面40。其它系统以由网络服务的界面使用消息所规定的 方式,与网络服务交互。典型地,使用HTTP来传递这些消息,并且,这些 消息通常包4舌与其它web相关的标准一起的extensible Markup Language (可 扩展标记语言)(XML)。
WS寻址规范是由W3C (万维网联盟)推动的合作努力的结果。WS寻 址与适当地指向(target)网络服务消息有关。
WS寻址引入了端点引用(EndpointReference, EPR)的概念,所述端点 引用以标准XML格式来传递寻址网络服务端点(具有相关联的一些可能的 应用数据的网络服务端口)所需的信息。
在EPR中存在大量的属性,例如,其地址(其为EPR表示的端点的URI)、 以及关于端点的元数据(例如端点的性能)。可以基于端点的部署信息来生成 这些属性(例如,地址URI)中的一些,或者,它们可以对生成EPR的应用 已知。作为网络服务交互的部分,在SOAP封包(envelope)中传播EPR。网络服务交互中的EPR的接收方可以使用该EPR,以便指向网络服务。
发明内容
根据第一方面,提供了用于修改表示网络服务端点的EPR的方法,该方 法包括取决于要被传播EPR的接收方的至少一个属性而修改EPR;以及向 客户端传播修改的EPR。
优选地,在EPR即将传播至接收方时,修改该EPR。 术语"接收方,,意味着包含接收方客户端和接收方网络服务两者。 一个这样的属性可以是接收方的位置,并且,这可导致EPR的地址元素 的修改。
在这样的实施例中,获取关于要被传播EPR的接收方的信息,并且,访 问一个或多个规则,以确定所获取的信息如何影响要传播的EPR。
可影响最终被传播至EPR接收方的EPR的规则的示例是这样的需求防 火墙(端点位于其后)外部的接收方经由该防火墙访问目标端点。
在一个实施例中,基于接收方与由EPR表示的端点之间的服务等级协定 (SLA),而修改EPR。
例如,可以将EPR接收方分类为"黄金服务,,商业伙伴。在此示例中, 可以在向接收方传播EPR的期间修改EPR,从而该EPR寻址保证较快的周 转时间的服务器。
接收方和端点的相对位置也可以导致EPR的修改。可以访问系统拓朴数 据,以《更作出关于相对位置的判断。
EPR可以包括元数据。这可以取决于预期的接收方的属性来被修改。例 如,可能需要特定的接收方总是以特定级别的安全性(安全策略)来访问 目标端点。可以修改元数据,以指定这样的安全策略。
根据另一方面,提供了用于修改表示网络服务端点的EPR的装置,该装 置包括用于取决于要被传播EPR的接收方的至少一个属性而修改EPR的部 件;以及用于向该接收方传播修改的EPR的部件。
可以在计算机软件中实施本发明。
通过仅使用示例,并且参考下列附图,现在将描述本发明的优选实施例图1是网络服务环境的构成图2a和2b图示了根据本发明的优选实施例的打印网络服务示例;以及 图3、 4a、 4b和4c图示了根据优选实施例的本发明的构成和处理。
具体实施例方式
如上面讨论的,WS寻址规范是关于确保正确地指向网络服务消息,并 且,考虑此而引入端点引用(EPR)的概念。
将参考图2a和2b (应当将它们相互结合而阅读)而描述EPR的示例性 使用。
客户端160使用服务请求器170 (例如,打印应用),以在步骤200联系 由网络服务器100所主控的打印目录服务110。打印目录服务110是可经由界 面120被访问的。在步骤210,服务请求器170浏览所提供的打印机目录, 以选择打印机。网络服务在步骤220返回端点引用(EPR)至打印服务180, 经由其,所选择的打印机130、 140或150可被访问。在此示例中,返回的 EPR是至由不同网络服务器175主控的网络服务180的。然而,在另一示例 中,EPR可以被创建于、并涉及同一网络服务器。
因此,如所示例的,EPR通常被创建并随后被传播至可能想要访问所引 用的端点的客户端。 一旦创建了 EPR,便认为其表示该端点,并且其内容不 变
在特定的情形下,向所有正在请求的客户端提供所请求的网络服务端点 的同样的EPR是不适当的。相反,或许优选的是,EPR取决于其正在被传播 到哪方。例如,如果上面的EPR正在被传递至防火墙外部的客户端,则可能 适当的是隐藏网络服务端点所驻留的网络服务器的实际地址。还可能适当 的是改变取决于EPR正在被传播到的客户端而返回的EPR。
因此,提出了这样的解决方案例如,其基于EPR要被传播到的目标而 修改EPR的地址部分。优选地,对EPR的这种修改在EPR被串行化以便传 播的同时发生。
现在将参考图3、 4a、 4b和4c而描述EPR的创建和修改。
如图3中所示,节点A具有端点实例240 (表示网络服务端点)。在步骤 400,在节点A上,EPR生成器300生成该端点实例的EPR (图4a、 4b )。所 生成的EPR可以被表示为<wsa:EndpointReference> <wsa:Address>targetServiceURI</wsa:Address>
</wsa:EndpointReference> 其中,wsa前缀〈wsa〉可等同于www.w3.org/2005/08/addressing,并且其中, targetServiceURI是节点A上的目标服务的URI地址。
在将EPR传播至客户端之前,在步骤410、 420, SOAP串行器310将 EPR串行化到SOAP消息中(图4a、 4b )。 SOAP消息包括报头(hdr)和主 体。随后,使用传播器320,将包括EPR的消息传播至客户端(步骤430)。 可以在报头中(例如,在WS寻址[replyTo]报头中)传播EPR,如列表1中 所示
<S:Envelope xmlns:S="http:〃www.w3.org/2003/05/soap-envelope" xmlns:wsa="http:〃www.w3.org/2005/08/addressing,,> <S:Header>
<wsa:ReplyTo>
<wsa:Address>http:〃nodeA/business/clientl</wsa:Address> </wsa:ReplyTo>
</S:Header> <S:Body>
</S:Body> </S:Envelope>
作为选择,可以在soap主体中传播EPR,如列表2中所示 <S:Envelope xmlns:S="http:〃www.w3.org/2003/05/soap-envelope" xmlns:wsa="http:〃www.w3.org/2005/08/addressing,,> <S:Header><S:Header> <S:Body>
<wsa:EndpointReference>
<wsa:Address>http:〃nodeA/business/clientl</wsa:Address> </wsa:EndpointReference>
</S:Body> </S:Envelope〉
如图4c中所示,在即将串行化时,使用获取器340获取关于EPR要被 指向的目的地地址的信息(步骤500)。在请求消息的情况下,EPR要被指向 的目的地地址可以来自于wsa:to(SOAP目的地)字^殳。在同步响应消息的情 况下,响应目的地地址的目的地可以/人其对应的^fr求消息的wsa:From EPR净皮 建立,或者从某个其它协议特有的信息被建立。
访问器组件350随后访问规则330,以确定目的地的地址如何影响要被 传播的EPR (步骤520 )。规则330定义应当由目的地使用的地址,以便指向 端点。例3n:
规则330可列出防火墙内的所有已知节点(内部IP地址),并且推断被 传播到不在此列表中的节点的EPR应当将它们的地址重写为防火墙的地址。
或者
该规则可以利用表示系统拓朴的拓朴映射表,以便基于EPR被传播到的 目的地、以及其在至端点的地址的拓朴中的相对位置,重写该EPR的地址。
修改器组件360随后基于EPR将被传播到(从而从之后的时间点起被指 向)的目的地,而重写该EPR的地址。
关于图3的示例,如果EPR被输出(作为SOAP消息的部分)至节点B, 则规则330可以不对节点A施加在输出之前修改EPR的任何要求,这是因为 其在防火墙250内。节点B在接收到未修改的EPR时,将因此能够直接引用 节点A。
然而,节点C在防火墙250外部(即,不被视为作防火墙范围内的节点), 并且,规则330可以指定节点C因此应当不能直接访问节点A。因此,在将用于节点C的SOAP消息串行化的期间,用防火墙的地址覆写当创建端点
实例时所生成的EPR地址。防火墙随后将任何消息从客户端路由至适当的节点。
注意,不能在防火墙中进行此EPR重写,这是因为,EPR可能被直接传 播至节点C (即,避开防火墙)。
如上面提到的,应当理解,对EPR的修改不需取决于EPR接收方的位置。 可以考虑接收方的一个或多个其它属性。该规则(较早示例的)可以基于除 了拓朴之外的某个属性,使用IP地址的一些组群(grouping) —例如,EPR 可以基于它们正在被传播的目的地的服务协定的等级而将它们的地址重写。 例如,可以将客户端分类为"黄金服务,,商业伙伴,从而可以修改EPR以便 被传播至该客户端的EPR指向保证特定周转时间的服务器。此外,可以修改 除了地址之外的EPR的方面,如元^:据。
因此,总结如下
WS寻址端点引用(WS-Addressing EndpointReference )表示网络服务端 点,并且,将其在SOAP封装中作为网络服务交互的部分传播。
公开了方法、装置和计算机程序,用于在传播端点引用时基于端点引用 接收方而解析(或修改)端点引用的方面。不同的接收方将潜在地接收不同 的端点引用。随着生成表示端点引用的SOAPXML用于端点引用的传播,重 新解析端点引用的方面。例如,客户端的位置可以对传播的地址产生影响一 如果该客户端在防火墙外部,则可能适当的是向该客户端提供防火墙自身 的地址,并且允许该防火墙将来自数据的任何请求重新路由至网络服务端点。 作为选择,包含在端点引用中的元数据可以取决于接收方而变化一包含在端
点引用中的策略元数据可以取决于该接收方而指定更加严格的安全要求。
9
权利要求
1.一种用于修改表示网络服务端点的EPR的方法,该方法包括取决于要被传播EPR的接收方的至少一个属性而修改该EPR;以及向该接收方传播修改的EPR。
2. 如权利要求l所述的方法,其中,取决于该接收方的至少一个属性而修改该EPR的步骤包括获取关于要被传播EPR的接收方的信息;以及访问一个或多个规则,以确定所获取的信息如何影响要传播的EPR。
3. 如权利要求2所述的方法,其中,要被传播EPR的接收方的至少一个属性包括该接收方的位置。
4. 如权利要求2或3所述的方法,其中,要被传播EPR的接收方的至少一个属性包括网络服务端点与该接收方之间的服务等级协定。
5. 如权利要求2、 3或4所述的方法,其中,要被传播EPR的接收方的至少一个属性包括该接收方相对于该网络服务端点的位置的位置。
6. 如权利要求5所述的方法,包括访问系统拓朴数据,以确定该接收方相对于该网络服务端点的位置的位置。
7. 如任一在前权利要求所述的方法,包括修改表示该网络服务端点的地址,该地址位于该EPR内。
8. 如任一在前权利要求所述的方法,包括取决于该接收方的至少一个属性而修改该EPR内的元数据。
9. 如权利要求8所述的方法,其中,修改该元数据,以为该接收方指定要在访问该端点时使用的特定安全策略。
10. —种用于修改表示网络服务端点的EPR的装置,该装置包括用于取决于要被传播EPR的接收方的至少一个属性而修改该EPR的部件;以及用于向该接收方传播修改的EPR的部件。
11. 如权利要求IO所述的装置,其中,用于取决于该接收方的至少一个属性而^f奮改该EPR的部件包括用于获取关于要一皮传播EPR的接收方的信息的部件;以及用于访问一个或多个规则以确定所获取的信息如何影响要传播的EPR的部件。
12. 如^L利要求11所述的装置,其中,要被传播EPR的接收方的至少一个属性包括该接收方的位置。
13. 如权利要求11或12所述的装置,其中,要被传播EPR的接收方的至少一个属性包括网络服务端点与该接收方之间的服务等级协定。
14. 如权利要求11、 12或13的任一个所述的装置,其中,要被传播EPR的接收方的至少一个属性包括该接收方相对于该网络服务端点的位置的位置。
15. 如权利要求14所述的装置,包括用于访问系统拓朴数据、以确定该接收方相对于该网络服务端点的位置的位置的部件。
16. —种包括程序代码部件的计算机程序,其适用于当在计算机上运行所述程序时,执行权利要求1至9的任一个所述的方法。
全文摘要
WS寻址端点引用表示网络服务端点,并且将其作为在SOAP封装中传播作为网络服务交互的部分。公开了一种方法、装置和计算机程序,用于在端点引用的传播时基于该端点引用接收方而解析(或修改)该端点引用的方面。不同接收方将潜在地接收不同的端点引用。随着生成表示端点引用的SOAP XML用于端点引用的传播,重新解析端点引用的方面。例如,接收方的位置可以对传播的地址产生影响—如果该接收方在防火墙外部,则适当的是向该接收方提供防火墙其自身的地址,并且允许该防火墙将来自数据的任何请求重新路由至网络服务端点。作为选择,包含在端点引用中的元数据可以取决于接收方而变化——包含在端点引用中的策略元数据可以取决于该接收方而指定更加严格的安全要求。
文档编号G06F9/46GK101542438SQ200780044225
公开日2009年9月23日 申请日期2007年11月8日 优先权日2006年11月30日
发明者丹尼尔·J·马修斯, 凯瑟琳·S·沃尔, 萨拉·L·米歇尔 申请人:国际商业机器公司