《用于位置无关软件的需求驱动的部署的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于位置无关软件的需求驱动的部署的系统和方法.pdf(32页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103947140 A (43)申请公布日 2014.07.23 CN 103947140 A (21)申请号 201280056941.6 (22)申请日 2012.09.19 61/536,826 2011.09.20 US H04J 1/00(2006.01) (71)申请人 以太杰作有限责任公司 地址 美国纽约州 (72)发明人 RF麦茨尼斯 (74)专利代理机构 上海专利商标事务所有限公 司 31100 代理人 张东梅 (54) 发明名称 用于位置无关软件的需求驱动的部署的系统 和方法 (57) 摘要 描述了用于提供和消费 web 服务的技术, 包 括被配置。
2、为存储一种或多种 web 服务的服务库和 连接到各服务主机的、 被配置为存储与各服务主 机相关的数据的主机目录。 各服务主机是网络, 且 适于通过实例化 web 服务中的一种的一个或多个 终端来接收和履行对被存储在服务库中的 web 服 务的部署请求。管理器被配置为查询主机目录和 服务库, 生成部署计划, 并把部署请求传送给一个 或多个服务主机。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.05.20 (86)PCT国际申请的申请数据 PCT/US2012/056018 2012.09.19 (87)PCT国际申请的公布数据 WO2013/043665 EN 2013.。
3、03.28 (51)Int.Cl. 权利要求书 3 页 说明书 11 页 附图 17 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书11页 附图17页 (10)申请公布号 CN 103947140 A CN 103947140 A 1/3 页 2 1. 一种用于提供 web 服务的系统, 包括 : 服务库, 被配置为存储一种或多种 web 服务 ; 一个或多个服务主机, 其被连接到网络, 且适于接收和履行对所述被存储在所述服务 库中的web服务的部署请求, 其中, 履行部署请求包括实例化所述web服务中的一种的一个 或多个终端 ; 主机目录, 其被连接到。
4、所述服务主机, 且被配置为存储与所述一个或多个服务主机相 关的数据 ; 以及 管理器, 其被配置为查询所述主机目录和所述服务库, 生成部署计划, 并把部署请求传 送给所述一个或多个服务主机。 2. 如权利要求 1 所述的系统, 其特征在于, 所述服务库还被配置为从发布者接收所述 一种或多种 web 服务。 3. 如权利要求 1 所述的系统, 其特征在于, 所述一个或多个服务主机还被配置为把关 于所述 web 服务的使用的信息传送给所述管理器。 4. 如权利要求 1 所述的系统, 其特征在于, 所述一个或多个服务主机还被配置为把与 所述一个或多个服务主机相关的数据发送给所述主机目录, 且其中, 。
5、与所述一个或多个服 务主机相关的数据包括可用资源。 5. 如权利要求 1 所述的系统, 进一步包括发现服务, 所述发现服务包括目录, 所述目录 被配置为注册和维护每一服务主机的所述终端的条目。 6.如权利要求5所述的系统, 其特征在于, 所述目录服务还被配置为存储在所述web服 务和在其上部署所述 web 服务的一组相应终端之间的映射。 7. 如权利要求 6 所述的系统, 其特征在于, 所述目录服务还被配置为接收对应于所述 web服务中的一种的URI、 并且请求并解析对应于在其上部署所述web服务中的一种的所述 终端中的一个的 URL。 8. 如权利要求 7 所述的系统, 进一步包括服务使用者。
6、, 其包括 : 使用者代理 ; 以及 入网点, 所述使用者代理绑定到所述入网点, 所述入网点被配置为与所述发现服务通 信, 且被配置为绑定到所述一个或多个服务终端。 9. 如权利要求 8 所述的系统, 其特征在于, 所述入网点被配置为对服务的位置进行抽 象, 同时保持所述使用者代理的观点, 由此充当供所述使用者代理进入到所述 web 服务的 实例化的网关。 10. 一种提供 web 服务的方法, 包括 : 把一种或多种 web 服务存储在服务库中 ; 把与一个或多个服务主机相关的数据存储在主机目录中 ; 借助于管理器控制所述一个或多个服务主机中的每一个上的一个或多个服务终端上 的所述一种或多种。
7、 web 服务的部署, 其中, 控制部署包括 : 查询所述服务库和主机目录, 以便检索关于所述一种或多种 web 服务的信息以及与所 述一个或多个服务主机相关的数据 ; 使用关于所述一种或多种 web 服务的信息以及与所述一个或多个服务主机相关的数 据, 生成部署计划 ; 权 利 要 求 书 CN 103947140 A 2 2/3 页 3 把部署请求传送给所述一个或多个服务主机 ; 以及 响应于所述部署请求, 实例化所述 web 服务中的一种的所述一个或多个终端。 11. 如权利要求 10 所述的方法, 进一步包括在所述服务库处从发布者接收所述一种或 多种 web 服务。 12. 如权利要求。
8、 10 所述的方法, 进一步包括将关于所述 web 服务的使用的信息从所述 一个或更多个服务主机传送至所述管理器。 13. 如权利要求 10 所述的方法, 进一步包括将与所述一个或多个服务主机相关的数据 从所述一个或更多个服务主机发送到所述主机目录, 且其中, 与所述一个或多个服务主机 相关的数据包括可用资源。 14. 如权利要求 10 所述的方法, 进一步包括在发现服务中注册和维护每一服务主机的 所述终端的条目, 所述发现服务包括目录。 15. 如权利要求 14 所述的方法, 进一步包括借助于所述发现服务存储在所述 web 服务 和在其上部署所述 web 服务的一组相应终端之间的映射。 16。
9、. 如权利要求 15 所述的方法, 进一步包括在所述发现服务处接收对应于所述 web 服 务中的一种的 URI, 并且请求并解析对应于在其上部署所述 web 服务中的一种的所述终端 中的一个的 URL。 17. 一种用于消费 web 服务的方法, 包括 : 把使用者代理绑定到入网点 ; 经由所述入网点与发现服务通信, 以便解析对应于服务终端的 URL, 所述服务终端对应 于期望的 web 服务 URI ; 以及 把所述入网点绑定到所述服务终端 ; 其中, 所述发现服务被配置为与管理器通信, 所述管理器被配置为查询主机目录和服 务库, 生成部署计划, 并把部署和取消部署请求传送给一个或多个服务主。
10、机, 所述一个或多 个服务主机中的一个被配置为实例化所述服务终端。 18. 如权利要求 17 所述的方法, 其特征在于, 所述入网点被配置为对服务的位置进行 抽象, 同时保持所述使用者代理的观点, 由此充当供所述使用者代理进入到所述 web 服务 的实例化的网关。 19. 如权利要求 17 所述的方法, 所述主机目录被配置为存储与所述一个或多个服务主 机相关的数据。 20. 如权利要求 17 所述的方法, 所述服务目录被配置为至少存储所期望的 web 服务。 21. 一种非暂态计算机可读介质, 其包含计算机可执行指令, 在被执行时, 所述计算机 可执行指令引起一个或多个计算机设备执行一种提供 。
11、web 服务的方法, 所述方法包括 : 把一种或多种 web 服务存储在服务库中 ; 把与一个或多个服务主机相关的数据存储在主机目录中 ; 借助于管理器控制所述一个或多个服务主机中的每一个上的一个或多个服务终端上 的所述一种或多种 web 服务的部署, 其中, 控制部署包括 : 查询所述服务库和主机目录, 以便检索关于所述一种或多种 web 服务的信息以及与所 述一个或多个服务主机相关的数据 ; 使用关于所述一种或多种 web 服务的信息以及与所述一个或多个服务主机相关的数 权 利 要 求 书 CN 103947140 A 3 3/3 页 4 据, 生成部署计划 ; 把部署请求传送给所述一个或。
12、多个服务主机 ; 以及 响应于所述部署请求, 实例化所述 web 服务中的一种的所述一个或多个终端。 22. 如权利要求 21 所述的非暂态计算机可读介质, 还包括在所述服务库处从发布者接 收所述一种或多种 web 服务。 23. 如权利要求 21 所述的非暂态计算机可读介质, 还包括将关于所述 web 服务的使用 的信息从所述一个或多个服务主机传送给所述管理器。 24. 如权利要求 21 所述的非暂态计算机可读介质, 还包括将与所述一个或多个服务主 机相关的数据从所述一个或多个服务主机发送给所述主机目录, 且其中, 与所述一个或多 个服务主机相关的数据包括可用资源。 25. 如权利要求 21。
13、 所述的非暂态计算机可读介质, 还包括在发现服务中注册和维护每 一服务主机的所述终端的条目, 所述发现服务包括目录。 26. 如权利要求 25 所述的非暂态计算机可读介质, 还包括借助于所述发现服务存储在 所述 web 服务和在其上部署所述 web 服务的一组相应终端之间的映射。 27. 如权利要求 26 所述的非暂态计算机可读介质, 还包括在所述发现服务处接收对应 于所述web服务中的一种的URI, 并且请求并解析对应于在其上部署所述web服务中的一种 的所述终端中的一个的 URL。 28. 一种非暂态计算机可读介质, 其包含计算机可执行指令, 在被执行时, 所述计算机 可执行指令引起一个或。
14、多个计算机设备执行一种用于消费 web 服务的方法, 所述方法包 括 : 把使用者代理绑定到入网点 ; 经由所述入网点与发现服务通信以便解析对应于服务终端的 URL, 所述服务终端对应 于所期望的 web 服务 URI ; 以及 把所述入网点绑定到所述服务终端 ; 其中, 所述发现服务被配置为与管理器通信, 所述管理器被配置为查询主机目录和服 务库, 生成部署计划, 并把部署和取消部署请求传送给一个或多个服务主机, 所述一个或多 个服务主机中的一个被配置为实例化所述服务终端。 29. 如权利要求 28 所述的非暂态计算机可读介质, 其特征在于, 所述入网点被配置为 对服务的位置进行抽象, 同时。
15、保持所述使用者代理的观点, 由此充当供所述使用者代理进 入到所述 web 服务的实例化的网关。 30. 如权利要求 28 所述的非暂态计算机可读介质, 所述主机目录被配置为存储与所述 一个或多个服务主机相关的数据。 31. 如权利要求 28 所述的非暂态计算机可读介质, 所述服务目录被配置为至少存储所 期望的 web 服务。 权 利 要 求 书 CN 103947140 A 4 1/11 页 5 用于位置无关软件的需求驱动的部署的系统和方法 0001 对相关申请的交叉引用 0002 本申请涉及于 2011 年 9 月 20 日提交的美国临时申请第 61/536,826 号, 该临时申 请通过引。
16、用整体合并于此, 并从中保护优先权。 0003 背景 0004 所公开的主题涉及用于面向服务的计算, 尤其而非限制, 涉及 web( 网 ) 服务体系 结构。 0005 面向服务的计算 (SOC) 促进了把应用组件组装到服务的网络中, 服务的网络可以 松散地耦合, 以便创建跨越组织和计算平台的灵活的、 动态的业务流程和灵巧的应用。 面向 服务的计算已经成为使得紧密耦合的、 基于组件的分布式系统进化成可以使用统一的技术 来定址服务操作、 绑定到服务操作和调用服务操作的更广泛的服务网络的方法。 0006 面向服务的计算可以提供创建反映向自主性和异质性发展的趋势的新体系结构 的方式。 允许面向服务的。
17、计算的灵活的且松散耦合的流程的分布式体系结构可以被称为面 向服务的体系结构 (SOA), 其软件服务是主要组件。SOA 的主要特性是在松散地耦合的自主 服务之间的互操作、 促进在宏 ( 服务 ) 级别的代码重用和体系结构的组合性。 0007 SOA可以由三个主要实体组成提供者、 使用者和注册表。 提供者可以在注册表 中发布服务位置 ; 使用者可以使用注册表来定位服务以便对其编程并调用。SOA 实现可以 指定用来描述服务的语言、 提供发布和发现它们的方式并规定用来与它们交互的协议和通 信机制。日益增加地使用共同称为 “web 服务” 的这样一组标准来实现软件服务在因特网上 的部署。 0008 W。
18、eb 服务可以基于平台无关的标准, 例如通过 W3C 工作组的努力开发的那些标准。 这些标准可以定义允许在跨越因特网的异构计算平台上的客户机和服务之间交互的协议、 消息格式和服务描述语言。 0009 由 web 服务引入的标准可以提供使得分布式系统从紧密耦合的分布式应用进化 成松散耦合的服务系统的手段。通过使用良好定义的接口交换消息, 各标准可以允许在异 构计算平台之间的互操作。通过对实现和主控技术进行抽象 (abstracting), 平台无关的 web 服务标准可以提供这样的手段 : 使得对现有的异构服务的访问匀质化, 同时促进开发 新的服务, 而无需强制任何人采用特定的实现或主控技术。尽。
19、管 web 服务模型已经被广泛 采纳, 但其前景受到至少两种限制的削弱。 0010 首先, web 服务寻址模型可能是刚性的, 且仅适用于具有高度可靠的主机的高度可 靠的联网环境。 它可能无法考虑因特网上的主机的内在动态和不可靠性, 并且, 目标为能够 在主机故障中表现稳健的应用可能变得杂乱分布故障恢复代码。其次, 负担过重的和受到 指定的服务提供者角色可以引起开发其中 web 服务的使用仅是偶发的自有部署系统和封 闭世界环境。背负着这两个缺点, web 服务模型的广泛采用可以引起公开 web 服务接口的 应用高度密集、 但在它们所要求的部署系统和主控环境方面很大程度上不兼容的软件服务 的前景。
20、。 0011 因此, 存在对改善的 web 服务体系结构的需求。 说 明 书 CN 103947140 A 5 2/11 页 6 0012 概述 0013 在所公开的本主题的一个方面中, 用于提供 web 服务的系统包括被配置为存储一 种或多种 web 服务的服务库。 0014 连接到网络的一个或多个服务主机适于接收和履行对存储在服务库中的 web 服 务的部署和取消部署请求。履行部署和取消部署请求可以包括实例化 web 服务的一个或多 个终端。连接到服务主机的主机目录被配置为存储与服务主机相关的数据。管理器被配置 为查询主机目录和服务库, 生成部署计划, 并向服务主机传送部署和取消部署请求。。
21、 0015 在一种实施例中, 服务库可以被配置为从发布者接收 web 服务。服务主机可以把 关于 web 服务使用的信息传送给管理器。服务主机可以把与一个或多个服务主机相关的数 据 ( 例如可用资源 ) 发送给主机目录。 0016 在一种实施例中, 系统可以包括发现服务, 其包括可以被配置为注册和维护对应 于每一服务主机的终端的条目的目录。目录服务可以存储在 web 服务和 web 服务部署在其 上的相应一组终端之间的映射。目录服务可以被配置为接收对应于 web 服务中的一种的统 一资源标识符 (URI) 请求, 并且请求并解析对应于 web 服务部署在其上的终端中的一个的 URL。 0017。
22、 在所公开的本主题的另一方面中, 用于提供 web 服务的方法包括把一种或多种 web服务存储在服务库中, 并把与一个或多个服务主机相关的数据存储在主机目录中。 该方 法包括借助于管理器控制一个或多个服务主机中的每一个上的一个或多个服务终端上的 一种或多种 web 服务的部署和取消部署。控制可以包括查询服务库和主机目录, 以便检索 关于 web 服务和服务主机的信息和数据, 使用该信息和数据来生成部署计划, 把部署和取 消部署请求传送给服务主机, 并响应于部署和取消部署请求实例化 web 服务的一个或多个 终端。 0018 在所公开的本主题的另一方面中, 用于消费 web 服务的方法包括把使用。
23、者代理绑 定到入网点 (point of presence)。入网点可以与发现服务通信以便解析对应于与所期望 的 web 服务 URL 对应的服务终端的 URL。入网点可以绑定到服务终端。发现服务与管理器 通信, 该管理器被配置为查询主机目录和服务库, 生成部署计划, 并把部署和取消部署请求 传送给一个或多个服务主机。 0019 附图简述 0020 图1是根据所公开的本主题用于提供web服务的系统的实施例的服务提供者部分 的示意图。 0021 图2是用于根据所公开的本主题提供web服务的系统的实施例的发现服务和服务 提供者部分的示意图。 0022 图3是用于根据所公开的本主题提供和消费web服。
24、务的系统的实施例的服务使用 者、 发现服务和服务提供者的示意图。 0023 图4是阐释用于根据所公开的本主题提供和消费web服务的方法的实施例的流程 图。 0024 图 5 是根据所公开的本主题的实施例在服务使用者和本地入网点之间的示例性 交互的示意图。 0025 图 6 是根据所公开的本主题的实施例在发布者和服务库之间的示例性交互的示 说 明 书 CN 103947140 A 6 3/11 页 7 意图。 0026 图 7 是根据所公开的本主题的实施例在服务主机和主机目录之间的示例性交互 的示意图。 0027 图 8 是根据所公开的本主题的实施例在入网点和活动服务目录之间的示例性交 互的示意。
25、图。 0028 图 9 是根据所公开的本主题的实施例在活动服务目录和管理器之间的示例性交 互的示意图。 0029 图 10a 是根据所公开的本主题的实施例在管理器和服务库之间的示例性交互的 示意图。 0030 图 10b 是根据所公开的本主题的实施例在管理器和主机目录之间的示例性交互 的示意图。 0031 图10c和图l0d是根据所公开的本主题的实施例在管理器和服务主机之间的示例 性交互的示意图。 0032 图 l0e 是根据所公开的本主题的实施例在管理器和活动服务目录之间的示例性 交互的示意图。 0033 图 11 是根据所公开的本主题的实施例的终端部署的示意图。 0034 图 12 是根据。
26、所公开的本主题的实施例的服务调用的示意图。 0035 图 13 是根据所公开的本主题的实施例的需求驱动的动态部署的示意图。 0036 贯穿各图, 除非由上下文以另外方式说明或指示, 否则相同的标号和字符用来指 示所阐释的实施例的类似的特征、 元素、 组件或部分。此外, 尽管现在将参照各图详细描述 所公开的本主题, 但也结合预期是非限制性的说明性实施例来详细描述所公开的本主题。 0037 详细描述 0038 在此所使用的术语 “动作者 (actor)” 可以指负责采取动作的实体。例如, 动作者 可以包括自动化计算机程序。替代地,“动作者” 可以指带有适于受到计算机的操作者控制 的用户接口的计算机。
27、程序。 0039 在此所使用的术语 “基础设施” 可以共同地指独立于任何特定实现存在于一种操 作状态的所描述的体系结构的组件。 0040 在此所使用的术语 “web 服务” 可以指在网络上部署软件服务。在此所使用的术语 “web 服务” 不预期限于在因特网上部署软件服务, 本领域中的普通技术人员将明白, 这样的 服务也可以被部署在其他网络例如局域网 LAN 或类似物上。 0041 出于阐释而非限制的目的, 描述现在将由结合所公开的本主题用于描述 (web 服 务定义语言(WSDL)、 广告和发现(通用描述、 发现和集成(UDDI)以及与web服务通信(简 单对象访问协议 (SOAP) 的某些标。
28、准组成。然而, 本领域中的普通技术人员将明白, 可以使 用其他合适的标准, 例如代表性状态传输 (REST), 且下列描述不预期限制。 0042 Web 服务可以通过使用 SOAP 交换消息来进行交互。SOAP 定义 web 服务的通信协 议, 其独立于编程语言和平台, 且可以在广泛的传输协议上使用。例如, 在 HTTP 上的 SOAP 可以被用作绑定 web 服务定义的引用协议。 0043 SOAP 消息可以包括外部 XML 元素 ( 其可以被称为 “包封 (envelope)” ,“包封” 定义 消息的命名空间)、 可选的首部元素(其包括对消息收发框架的任何相关扩展)和所要求的 说 明 书。
29、 CN 103947140 A 7 4/11 页 8 主体元素。主体元素可以提供用于把信息传送给最终的 SOAP 接收器的机制, 但在这一角色 之外尚未指定, 且既不具有已定义的结构或解释、 也不具有指定要进行的任何处理的方式。 0044 WSDL是用于以XML描述web服务的语言。 服务的组件接口描述可以被实现为WSDL 文档, 该 WSDL 文档可以包括定位 web 服务终端、 绑定到 web 服务终端并与之交互所要求的 信息。从在它们的操作、 每一操作 ( 包括类型定义 ) 的参数和返回值以及用于通信的协议 和数据绑定方面描述 web 服务终端的 XML 文档元素构建 WSDL 文档。 。
30、0045 可以针对终端的 WSDL 文档编写请求者代理软件, 例如借助于自动代码产生工具 来以具体语言生成代理或 “存根 (stub)” 代码。这些可以是独立的工具, 例如用于 Java 的 “WSDL-Java” , 也可以是基于 IDE 的工具, 例如在 Visual Studio 和 Eclipse 中, 其为以 Perl、 C+、 C#、 PHP 及其他产生代码的生成器提供可插入框架。 0046 出于阐释而非限制的目的, 下面参见图 1、 图 2、 图 3 和图 4 描述所公开的本主题的 示例性实施例。 0047 在一个示例性实施例中, 且参见图 1, 用于提供 web 服务的系统可以。
31、包括服务提供 者组件 110。服务提供者组件 110 可以例如在计算机程序中实现。计算机程序可以被存储 在计算机可读介质上, 例如 CD-ROM、 DVD、 磁盘、 ROM、 RAM 等等。可以把程序的指令读取到诸 如例如连接到网络的服务器或分布式计算机系统等的一个或多个计算设备中所包括的一 个或多个处理器的存储器中。 在被执行时, 程序可以指示处理器控制计算设备的各种组件。 尽管程序中的指令序列的执行引起处理器执行在此描述的某些功能, 但硬布线电路可以用 来代替用于实现目前所公开的本主题的软件指令或者与这些软件指令组合使用。因而, 本 发明的各实施例不限于硬件和软件的任何特定组合。 0048。
32、 与示例性实施例结合, 服务提供者组件 101 可以包括例如服务库 130, 服务库 130 可以被配置为存储一种或多种 web 服务。例如, 服务库 130 可以连接到发布者 160, 发布者 160 可以把 web 服务 “发布” 给服务库 130 以供存储。连接到网络的服务主机 147 可以适于 接收和履行对存储在服务库130中的web服务的部署和取消部署请求。 例如, 履行部署和取 消部署请求可以包括实例化 web 服务中的一种的一个或多个终端 143。主机目录 120 可以 连接到服务主机 147 并被配置为存储与一个或多个服务主机 147 相关的数据。管理器 150 可以被配置为查。
33、询主机目录 120 和服务库 130, 生成部署计划, 并把部署和取消部署请求传 送给服务主机 147。 0049 服务主机 147 可以被配置为把关于 web 服务的使用的信息传送给管理器 150。服 务主机 147 也可以被配置为把与它们的可用资源相关的数据发送给主机目录 120。 0050 通过把提供 web 服务的责任划分成多个独立的角色、 减少对每一动作者所要求的 领域特定的知识量并降低参与提供 web 服务的壁垒, 这一示例性实施例可以减少参与者在 web服务生命周期的复杂性。 例如发布、 部署和主控web服务的任务被看作是不同的独立活 动。因而, 出于阐释而非限制的目的, 服务提。
34、供者组件 101 可以被看作是三个不同的 “动作 者” : 发布者 160、 管理器 150 和服务主机 147。另外, 两个体系结构实体 : 被称为服务库 130 和主机目录 120 的储存库。 0051 不是明确地部署, web 服务提供者代理实现可以改为由发布者 160 描述, 然后发布 者 160 通过把它存储在被称为服务库 130 的储存库中来把它 “发布” 到基础设施中。这种 方法通过把服务实体化与实际实现分开来表示 web 服务部署的方法即, web 服务的生 说 明 书 CN 103947140 A 8 5/11 页 9 命周期可以是在它被发布时开始, 而不是在它被部署时开始。。
35、 0052 为了参与基础设施, 服务主机 147 可以通过描述它们的可用资源并向被称为主机 目录 120 的目录注册来注册它们主控 web 服务的意愿。服务主机 147 可以指示它们的可用 web服务部署容器, 并指定发布者160的列表(它们愿意部署这些发布者160的web服务提 供者代理实现)。 不是通过广告它们的静态部署的服务而是通过广告它们的主控能力、 加入 可以由管理器 150 根据需要动态地使用 ( 且回收 ) 以便满足改变的需求水平的共享的潜在 主控资源池, 服务主机 147 因而可以参与基础设施。 0053 管理器 160 可以负责管理单种 web 服务 ( 对于该 web 服务。
36、, 在任何给定的时刻, 可 以存在零个或更多个终端 140) 的提供水平。为了制定 (enact) 部署, 管理器 160 可以首先 查询服务库130和主机目录120, 然后通过把web服务实现与有适当能力的服务主机147配 对来创建部署计划。管理器 150 可以把部署请求 (433) 发送给服务主机 147, 然后, 服务主 机 147 可以负责实例化 web 服务的终端 140( 或拒绝请求 )。服务主机 147 可以把关于在它 们的域内部署的每一 web 服务终端的使用的信息提供给每一 web 服务的管理器 150。管理 器 150 可以使用这种使用数据来做出关于它们管理的必要的 web。
37、 服务的提供水平的判决。 0054 在另一示例性实施例中, 且参见图 2, 用于提供 web 服务的系统可以包括发现服务 组件210。 例如且以与服务提供者组件110类似的方式, 发现服务组件210可以在计算设备 上执行的计算机程序中实现。这种计算机设备可以是与服务提供者组件 110 物理上分离的 设备, 经由诸如因特网等的网络耦合到服务提供者组件 110。替代地, 计算机设备主控的发 现服务组件210可以是相同的计算机设备主控的服务提供者组件110。 值得注意的是, 这些 计算设备和在此描述的所有其他计算设备在本发明的精神和范围内都可以被实现为单个 设备、 设备的群集、 网络等等。 0055。
38、 发现服务组件210可以包括活动服务目录220。 例如, 活动服务目录220可以被配 置为存储在被存储在服务库 130 中的 web 服务和 web 服务部署在其上的相应一组终端 143 之间的映射。 0056 活动服务目录 220 可以保存在单种 web 服务和 web 服务的一组活动终端 143 之间 的映射。体系结构中的中央实体, 活动服务目录 220 中所保存的集合映射可以表示从所有 参与者视角来看的基础设施的当前状态。 因为所有基础设施参与者可以依靠于活动服务目 录 220 来定位它们所期望的 web 服务的终端 143, 对于不具有当前所部署的终端的 web 服 务, 这种目录可以。
39、促进自动部署过程。 0057 活动服务目录 220 可以提供添加、 移除和定位 (450)web 服务的活动终端 143 的操 作。如果活动服务目录 220 接收对具体的 web 服务的活动终端的查找请求, 但不存在这样 的条目, 则活动服务目录220可以主动定位所请求的web服务并告知管理器150。 管理器可 以使用先前所描述的部署过程来动态地发起新的终端 143 的部署。管理器 150 可以负责插 入和维护它管理的 web 服务的任何新近部署的终端 143 的所有活动服务目录 220 条目。例 如, 如果, 对其 web 服务的需求下降到零, 则管理器 150 可以决定取消部署已部署终端 。
40、143 中的一个 ( 或全部 )。如果终端 143 被取消部署, 则管理器 150 可以从活动服务目录 220 移 除该终端条目, 确保目录保持最新, 且尽可能精确地反映基础设施的当前状态。 0058 在另一示例性的实施例, 且参见图 3, 用于提供 web 服务的系统可以包括服务使用 者组件310。 例如且以与服务提供者组件110类似的方式, 服务使用者组件310可以在计算 说 明 书 CN 103947140 A 9 6/11 页 10 设备上执行的计算机程序中实现。这种计算机设备可以是与服务提供者组件 110 物理上分 离的设备, 经由诸如因特网等的网络耦合到服务提供者组件 110。替代。
41、地, 计算机设备主控 的服务使用者组件 310 可以是相同的计算机设备主控的服务提供者组件 110 的一部分。 0059 服务使用者组件 310 可以包括使用者代理 320 和入网点 330。例如, 发现服务 210 可以被配置为从服务使用者组件 310 接收到对应于服务库 130 中的 web 服务中的一种或多 个的 URI, 并且请求并解析对应于已部署的 web 服务的终端 143( 如果有的话 ) 的一个或多 个 URL。结合某些实施例, 具体的 web 服务的多个实现可以被发布给服务库 130, 其中的每 一个都对应于相同的URI。 例如, 具体的web服务可以使用多种不同的语言来实现。
42、和/或要 求一个或多个不同的部署环境。每一实现可以被存储在服务库 130 中, 且可以对应于相同 的 URI, 且可以实现相同的接口, 以使得对特定实现中的任何一个的调用可以产生相同的返 回。使用者代理 320 可以被绑定到入网点 330。 0060 入网点330可以与发现服务通信, 且可以使用URL来绑定到服务终端143。 入网点 330 可以被配置为对服务的位置进行抽象, 同时保持使用者代理 320 的观点, 由此充当供使 用者代理进入到 web 服务的实例化的网关。 0061 结合这一示例性实施例, 所公开的技术不要求使用URL来描述web服务, 这是由于 URL 可以随时间变得无效。W。
43、eb 服务替代地可以用 URI 标识, 抽象地描述在任何时刻可以具 有零个或更多个活动终端的服务。通过引入代替它们执行定位 web 服务终端 143 并绑定到 web 服务终端 143 的机制, 服务使用者组件 310 可以免除这些任务。 0062 这种技术可以提出用于使用 web 服务有限中介框架, 其可以从调用请求中所包含 的 URI 透明地解析活动终端 URL。这种框架可以被实现为驻留在服务使用者组件 310 处的 代理机制, 该代理机制可以充当进入到体系结构的实例化的网关“入网点” , 如上面所 描述且在图3中所叙述的。 使用者代理320软件可以被编写为绑定到这一本地入网点330, 并。
44、使用所期望的 web 服务的 URI 来调用 web 服务操作。通过从活动服务目录 220 检索 web 服务的活动终端143的列表、 选择终端以供使用、 代替服务使用者310调用所请求的操作并 返回任何结果, 入网点 330 可以负责根据 URI 透明地解析 URL。它也可以负责透明地检测 web服务和它们部署在其上的服务主机147的故障并从中恢复, 并且负责通过(根据本地策 略 ) 再次尝试替代的终端 143 来主动从这些故障恢复。不可恢复的错误可以被返回给服务 使用者 310, 指示给定基础设施可用资源, 当前不可能履行请求。 0063 入网点 330 可以对服务的位置进行抽象, 同时仍。
45、然保持当前的服务使用者组件 310 对系统的观点。它可以简化使用者代理 320 应用的创建, 例如通过允许开发者针对 web 服务执行什么而不是它处于何处或当前是否部署来编程。进一步, 因为它使用要求与发现 服务 210 交互的所有任务, 入网点 330 可以提供在用于基础设施的具体标准版本上的抽象 层 ( 例如, UDDI 版本 )。这可以提供在面对不断进化的标准时针对过时的屏障, 同时允许使 用者代理应用可以在使用不同的标准的环境之间迁移。 0064 在一种示例性实施例中, 且参见图 4, 用于提供 web 服务的方法可以包括把一种或 多种 web 服务存储在服务库中 (410)。例如, 。
46、服务库可以从发布者接收 (411) 所发布的 web 服务。与一个或多个服务主机相关的数据可以被存储 (420) 在主机目录中。例如, 主机目 录可以接收 (422) 与服务主机相关的数据, 例如关于可用资源和服务主机乐意主控来源于 哪些发布者的 web 服务的数据。管理器可以控制 (430) 在服务主机中的每一个上的服务终 说 明 书 CN 103947140 A 10 7/11 页 11 端上的 web 服务的部署和取消部署。例如, 管理器可以查询 (431) 服务库和主机目录, 以便 检索关于 web 服务的信息以及与服务主机相关的数据。然后, 使用关于 web 服务的信息以 及与服务主。
47、机相关的数据, 管理器可以生成 (432) 部署计划。然后, 管理器可以把部署和取 消部署请求传送 (433) 给服务主机。然后, 服务主机可以响应于部署请求实例化 (434)web 服务, 或响应于取消部署请求去实例化 web 服务。可以从服务主机把使用数据及其他信息 反馈 440 回到管理器。 0065 管理器可以把关于 web 服务被部署在其上的终端的信息 ( 包括活动服务目录 ) 发 送 (450) 给发现服务。例如, 通过本地入网点, 服务使用者可以把 URI 请求发送 (460) 给目 录服务。 结合管理器, 响应于URI请求, 发现服务可以提供URL响应(470), 且服务使用者。
48、可 以绑定到主控所期望的 web 服务的终端。 0066 出于阐释而非限制的目的, 参见图 5 到图 10, 现在将对在此公开的系统的某些组 件之间的示例性交互做出描述。 0067 根据所公开的本主题的实施例, 且参见图 5, 服务使用者 310 不需要直接与 web 服 务终端交互。例如, 服务使用者 310 可以绑定到本地入网点 330 并对其调用操作。POP 可以 与服务使用者 310 共同定位 ; 使用者代理 320 可以被编写为静态地绑定到 web 服务的 URI, 例如在前面加上本地的 URI 的协议、 主机名和端口。 0068 例如, 图 5 中阐释调用由 URI “Servic。
49、eA( 服务 A)” 标识的 web 服务的操作 “x” 。使 用者代理应用可以绑定到 POP 并对其调用操作, 然后, POP 可以定位所请求的 web 服务的终 端。POP 可以通过调用 “findAll( 查找全部 )” 操作且用 URI“ServiceA” 作为参数来把查 找请求发送给活动服务目录 220, 且可以接收回描述 ServiceA 的当前活动终端 540 和 550 的 ServiceInstanceDescriptor( 服务实例描述符 ) 的列表 (541、 551 和 552)。POP 可以应 用本地策略以便选择在连接到终端并代表服务使用者调用操作 “x” 之前使用哪一终端。操 作结果可以被返回到 POP 且最终被返回给使用者代理 320 应用。 0069 根据所公开的本主题的实施例, 且参见图 6, 发布者 160 可以是 ( 尽管不必是 ) 与 服务库 130 交互以便发布和取消发布 web 服务的实现的服务使用者。对于其他服务使用者 ( 例如, 310),。