《跨越多个计算设备分布的应用的执行.pdf》由会员分享,可在线阅读,更多相关《跨越多个计算设备分布的应用的执行.pdf(24页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103843308 A (43)申请公布日 2014.06.04 CN 103843308 A (21)申请号 201280048624.X (22)申请日 2012.10.01 13/251,538 2011.10.03 US H04L 29/08(2006.01) H04L 29/12(2006.01) G06F 9/54(2006.01) (71)申请人 思科技术公司 地址 美国加利福尼亚州 (72)发明人 约翰C科特尔 (74)专利代理机构 北京东方亿思知识产权代理 有限责任公司 11258 代理人 李晓冬 (54) 发明名称 跨越多个计算设备分布的应用的执行。
2、 (57) 摘要 根据一个实施例, 一种系统包括至少一个处 理器。所述系统在计算设备上检测促进一个或多 个应用的执行的调用事件。所述应用包括至少一 个远程应用。搜索路径被检查以确定所述一个或 多个应用的位置, 并且包括指示用于执行对应的 远程应用的远程位置的至少一个指示符。与所述 至少一个远程应用相关联的每个指示符被解析以 确定用于执行所述对应的远程应用的远程位置。 所述应用在所确定的位置处被执行, 同时每个远 程应用在所述对应的远程位置处的对应的远程计 算设备上被执行。实施例可以进一步包括用于以 上面所描述的基本上相同的方式执行跨越多个计 算设备分布的应用的方法和编码有用于执行该方 法的软件。
3、的计算机可读介质。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.04.02 (86)PCT国际申请的申请数据 PCT/US2012/058278 2012.10.01 (87)PCT国际申请的公布数据 WO2013/052412 EN 2013.04.11 (51)Int.Cl. 权利要求书 3 页 说明书 15 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书15页 附图5页 (10)申请公布号 CN 103843308 A CN 103843308 A 1/3 页 2 1. 一种方法, 其包括 : 在计算设备上检测。
4、促进一个或多个应用的执行的调用事件, 其中所述应用包括各自用 于在对应的远程计算设备上执行的至少一个远程应用 ; 检查搜索路径以确定所述一个或多个应用的位置, 其中所述搜索路径包括各自与对 应的远程应用相关联并且指示用于执行所述对应的远程应用的远程位置的至少一个指示 符 ; 解析与所述至少一个远程应用相关联的每个指示符以确定用于执行所述对应的远程 应用的远程位置 ; 以及 使能在所确定的位置处执行所述一个或多个应用, 其中每个远程应用在所述对应的远 程位置处的所述对应的远程计算设备上被执行。 2. 根据权利要求 1 所述的方法, 其中解析与所述至少一个远程应用相关联的每个指示 符包括采用域名服。
5、务 (DNS) 来确定由该指示符所指示的所述远程位置的地址。 3. 根据权利要求 1 所述的方法, 进一步包括 识别驻留在所述计算设备上的一个或多个应用, 以及向域名服务 (DNS) 注册所识别的 应用以使所识别的应用与所述计算设备的位置相关联。 4. 根据权利要求 1 所述的方法, 其中检测所述调用事件包括从程序代码和外壳中的至 少一个接收命令。 5. 根据权利要求 4 所述的方法, 其中使能执行所述一个或多个应用包括 : 选择性地对与所述应用的执行相关联的数据应用服务, 其中所述服务由所述命令来指 定。 6. 根据权利要求 1 所述的方法, 其中使能执行所述一个或多个应用包括 : 将由所述。
6、应用中的一个或多个的执行产生的数据引导至少一个其它应用。 7. 根据权利要求 1 所述的方法, 进一步包括 : 使能响应于来自检测到促进该本地应用的执行的调用事件的远程计算设备的请求来 执行所述计算设备的本地应用。 8. 根据权利要求 1 所述的方法, 其中所述计算设备和所述远程计算设备中的一个或多 个包括不同的操作系统。 9. 一种系统, 其包括 : 至少一个处理器, 其配置成 : 在计算设备上检测促进一个或多个应用的执行的调用事件, 其中所述应用包括各自用 于在对应的远程计算设备上执行的至少一个远程应用 ; 检查搜索路径以确定所述一个或多个应用的位置, 其中所述搜索路径包括各自与对 应的远。
7、程应用相关联并且指示用于执行所述对应的远程应用的远程位置的至少一个指示 符 ; 解析与所述至少一个远程应用相关联的每个指示符以确定用于执行所述对应的远程 应用的远程位置 ; 以及 使能在所确定的位置处执行所述一个或多个应用, 其中每个远程应用在所述对应的远 程位置处的所述对应的远程计算设备上被执行。 10. 根据权利要求 9 所述的系统, 进一步包括 : 权 利 要 求 书 CN 103843308 A 2 2/3 页 3 用来确定由在所述搜索路径内的每个指示符所指示的所述远程位置的地址的域名服 务 (DNS) 系统。 11. 根据权利要求 9 所述的系统, 其中所述至少一个处理器被进一步配置。
8、成 : 识别一个或多个应用并且向域名服务 (DNS) 注册所识别的应用以使所识别的应用与所 述计算设备的位置相关联。 12. 根据权利要求 9 所述的系统, 其中所述至少一个处理器被进一步配置成 : 通过从程序代码和外壳中的至少一个接收命令来检测所述调用事件。 13. 根据权利要求 12 所述的系统, 其中所述至少一个处理器被进一步配置成 : 选择性地对与所述应用的执行相关联的数据应用服务, 其中所述服务由所述命令来指 定。 14. 根据权利要求 9 所述的系统, 其中所述至少一个处理器被进一步配置成 : 将由所述应用中的一个或多个的执行产生的数据引导至少一个其它应用。 15. 根据权利要求 。
9、9 所述的系统, 其中所述至少一个处理器被进一步配置成 : 使能响应于来自检测到促进该本地应用的执行的调用事件的远程计算设备的请求来 执行所述计算设备的本地应用。 16. 根据权利要求 9 所述的系统, 其中所述计算设备中的至少两个包括不同的操作系 统。 17. 一个或多个计算机可读存储介质, 其编码有包括计算机可执行指令的软件并且当 所述软件被处理器被执行时可操作来 : 在计算设备上检测促进一个或多个应用的执行的调用事件, 其中所述应用包括各自用 于在对应的远程计算设备上执行的至少一个远程应用 ; 检查搜索路径以确定所述一个或多个应用的位置, 其中所述搜索路径包括各自与对 应的远程应用相关联。
10、并且指示用于执行所述对应的远程应用的远程位置的至少一个指示 符 ; 解析与所述至少一个远程应用相关联的每个指示符以确定用于执行所述对应的远程 应用的远程位置 ; 以及 使能在所确定的位置处执行所述一个或多个应用, 其中每个远程应用在所述对应的远 程位置处的所述对应的远程计算设备上被执行。 18. 根据权利要求 17 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执行指令以 : 采用域名服务 (DNS) 来确定由所述搜索路径中的所述至少一个指示符所指示的所述远 程位置的地址。 19. 根据权利要求 17 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执。
11、行指令以 : 识别驻留在所述计算设备上的一个或多个应用并且向域名服务 (DNS) 注册所识别的应 用以使所识别的应用与所述计算设备的位置相关联。 20. 根据权利要求 17 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执行指令以 : 通过从程序代码和外壳中的至少一个接收命令来检测所述调用事件。 权 利 要 求 书 CN 103843308 A 3 3/3 页 4 21. 根据权利要求 20 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执行指令以 : 选择性地对与所述应用的执行相关联的数据应用服务, 其中所述服务由所述命令来指 定。 22. 根据权。
12、利要求 17 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执行指令以 : 将由所述应用中的一个或多个的执行产生的数据引导至少一个其它应用。 23. 根据权利要求 17 所述的计算机可读介质, 其中所述计算机可执行指令进一步包括 计算机可执行指令以 : 使能响应于来自检测到促使该本地应用的执行的调用事件的远程计算设备的请求来 执行所述计算设备的本地应用。 24. 根据权利要求 17 所述的计算机可读介质, 其中所述计算设备和所述远程计算设备 中的一个或多个包括不同的操作系统。 25. 根据权利要求 17 所述的计算机可读介质, 其中所述计算设备中的一个或多个包括 虚拟计算。
13、设备。 26. 根据权利要求 1 所述的方法, 其中所述计算设备中的一个或多个包括虚拟计算设 备。 27. 根据权利要求 9 所述的系统, 其中所述至少一个处理器被进一步配置成 : 将所述计算设备中的一个或多个实现为虚拟计算设备。 权 利 要 求 书 CN 103843308 A 4 1/15 页 5 跨越多个计算设备分布的应用的执行 技术领域 0001 本公开涉及应用的执行, 并且更具体地, 涉及在应用调用的位置本地和远程分布 和跨越多个计算设备分布的各种应用的执行。 背景技术 0002 分布式处理框架 (例如 CORBA、 DCOM、 .NET、 EJB、 JINI、 Javaspaces。
14、、 Web 服务等) 试 图协调跨越相连接的计算设备的环境中的应用的功能执行。然而, 随着分布式处理框架的 成熟, 由于应用本身的编码的复杂性或由于应用将任务委派给的框架的复杂性, 应用开发 人员或管理员对框架的使用变得越来越不便。 例如, 应用服务器典型地花费数分钟启动, 加 载数万或数十万个类, 并且在执行单个应用事务之前消耗数百兆字节的内存。 0003 分布式处理框架典型地持续消耗资源 (例如, 无论框架是否正在执行任何有用的 工作) , 并且趋于要么对于应用和支持服务 (例如 .NET 或 Java 变体中的任一个) 而言为技术 特定的, 要么与技术无关但要求多个技术特定的实施方式 (。
15、例如 CORBA、 X-Window) 。分布式 处理框架实施方式的技术特定性质可能是框架与现有应用的适应性的约束, 或者是与新的 应用编程语言和新兴工具集成的障碍。 附图说明 0004 图 1 是用于本实施例的示例拓扑的示意图示。 0005 图 2 是根据实施例具有用于提供分布式处理接口的模块的主机系统的框图。 0006 图 3 是图示了根据实施例跨越多个主机系统分布的示例应用被执行的方式的过 程流程图。 0007 图 4 是图示了根据实施例的示例远程应用的执行的流程图。 0008 图 5 是图示了根据实施例的跨越多个主机系统分布的数个示例应用的执行的流 程图。 具体实施方式 0009 概述。
16、 0010 根据一个实施例, 系统包括至少一个处理器。系统在计算设备上检测促进一个或 多个应用的执行的调用事件。 应用包括各自用于在对应的远程计算设备上执行的至少一个 远程应用。搜索路径被检查以确定一个或多个应用的位置。搜索路径包括各自与对应的远 程应用相关联并且指示用于对应的远程应用的执行的远程位置的至少一个指示符。 与所述 至少一个远程应用相关联的每个指示符被解析以确定用于对应的远程应用的执行的远程 位置。所述一个或多个应用在所确定的位置处被执行, 同时每个远程应用在对应远程位置 处的对应的远程计算设备上被执行。 实施例可以进一步包括用于以上面所描述的基本上相 同的方式来执行跨越多个计算设。
17、备分布的应用的方法和具有用于执行上述方法的软件的 计算机可读介质。 说 明 书 CN 103843308 A 5 2/15 页 6 0011 示例实施例 0012 本文中所描述的实施例针对用于管理用于驻留在采用兼容的网络可访问操作系 统的设备的任何组合上的应用的分布式处理的功能的分布式处理接口。进一步地, 各种增 值能力可以被叠加在这个功能上。本实施例从云使能操作系统的开发人员和 / 或应用的角 度上具有效果, 其中, 在云使能操作系统中, 在任何计算设备上调用的任何应用在网络内任 何地方被全局动态地发现并且执行。本实施例提供了操作系统与应用之间的接口, 并且透 明地执行应用而不论应用驻留在哪。
18、里 (好像应用是本地的) 。接口可以接收并且处理来自代 码 (例如, 程序、 脚本、 宏等) 的命令或指令, 或者可替代地, 接口为接收并且处理来自用户的 命令或指令的外壳的形式。此外, 应用可以被动态地组合或者分发以用代理范式在最佳位 置中 (或者在具有最佳可用资源的计算设备上) 执行。 0013 本实施例的分布式处理接口提供了数个优点。特别地, 分布式处理接口动态地定 位一个或多个本地或远程应用, 并且在定义的工作流中执行应用。 进一步地, 分布式处理接 口管理应用之间的所有通信, 对于应用和通信两者加强安全, 并且在完成之后释放所有分 配的资源。分布式处理接口可以无关于应用技术和数据交换。
19、协议, 并且不干扰应用代码。 而且, 分布式处理接口作为应用与操作系统 (和 / 或网络) 之间的中介物以应用各种增值能 力。 分布式处理接口可以被实现为用于与用户交互的外壳, 或者可替代地, 被嵌入在操作系 统 (例如, 可执行库等) 内或者与其紧密地集成。 0014 本实施例的分布式处理接口修改执行路径 (例如, 由 PATH 命令或环境变量 (例如, $PATH) 来指示的执行路径) 以将域名服务 (DNS-SD) 查找表包括为服务位置的一部分。例 如, 在分布式处理接口实施例的外壳提示符 ( “nsh” ) 处键入的以下命令 : 0015 nshexport PATH=/bin;/us。
20、r/bin;myapps.domain.com 0016 nshhello_world, 0017 并通过针对提供所期望的服务的称作 “hello_world” 的应用的可执行文件 (例如, 包含具有使计算机系统执行任务的形式的应用代码 (例如, 典型地为用于物理处理器的机 器代码) 的文件) 来搜索 “/bin” 和 “/usr/bin” 目录而对以上命令进行处理。当应用未驻 留在这些目录内时, 则提供对 “hello_world.myapps.domain.com” 的域名服务 (DNS) 查找。 如果互联网协议 (IP) 地址被从该查找返回 (例如, 不管 DNS 查找是否是负载平衡、 。
21、群集、 故 障转移等的结果) , 则应用或服务位置被认为是成功的。定位远程和本地应用的优先级被搜 索路径中指令符序列控制 (例如, 由 PATH 或其它命令或 $PATH 或其它环境变量来指示) 。将 待搜索的服务或计算设备的 DNS 名称包括在搜索路径内的能力使得服务的位置 (无论本地 还是在远程计算设备上) 能够为隐式的、 透明的、 自动的, 并且使用搜索路径中的条目的排 序按优先级排序。 0018 如果应用被远程地定位, 则分布式处理接口结合安全远程执行能力来建立到远程 主机系统的安全连接 (例如, 经由任何常规或其它安全技术) , 执行远程应用, 并且将输出输 送回分布式处理接口。在远。
22、程主机系统处的架构采用这些能力的类似能力, 其中进程管理 器守护程序接收对应用执行的请求并且发起 (或者分叉出) 进程来定位并且执行远程主机 系统上的应用。 0019 分布式处理接口将透明的服务位置和执行与在命令或指令之间输入和输出输送 结合在一起 (例如, 一个应用的输出用作下一个应用的输入) 。例如, 相对于在本实施例的外 说 明 书 CN 103843308 A 6 3/15 页 7 壳处键入的以下命令 (例如,“|” 指示输送) : 0020 nshcat input.txt|appx|appy|appzoutput.txt, 0021 分布式处理接口执行并且产生本地输出而不管应用 (。
23、例如, appx、 appy 以及 appz) 驻留在哪里 (例如, 在包含远程守护程序的任何网络可访问的设备上, 包括已将它们的服务 注册在 DNS 中的移动设备) 。外壳透明地用输送应用之间的工作流, 并且可以应用增值指令 符 (例如, 加密和压缩以优化并且保护通信) 。 0022 在本实施例中, 外壳内置命令和指令符能够与应用无缝地混合而不管应用技术或 应用的位置如何。进一步地, 支持涉及将分布式命令或指令无缝包括在复杂过程逻辑的动 态命令替换中的编程和脚本, 而不管如由它们在 DNS 中注册的名称所引用的应用的位置如 何。 0023 本实施例的所述 DNS 注册方面使得服务注册和位置能。
24、够完全地在不高于开放系 统互联 (OSI) 栈的第 3 层 (例如, 网络层) 处发生并且以协议无关的方式使用 DNS 联盟、 冗余 以及弹性特征在全局的任何位置处发生。应用的 DNS 注册可以基于应用编程接口 (API) 调 用或自动注册的自动化方式 (例如, 依据执行的更新 (例如, 应用在给定时刻驻留在特定计 算设备上) 、 将所有应用注册在该系统上的定义目录的扫描等) 。 0024 除了实现标准输入、 标准输出以及标准错误接口的近乎通用的读写功能的能力之 外 , 不要求应用具有实现分布式处理或通信的任何知识或代码。例如, 可以将指令符与命 令替换内联地应用、 应用在代码指令内、 作为环。
25、境变量应用或者作为命令行自变量来应用。 0025 因此, 本实施例提供应用技术无关的服务位置和注册 (例如, 包括通过应用的自注 册) 、 无缝的本地和远程命令或指令执行 (例如, 包括基于定义的一套准则在主机操作环境 之间动态地移动的移动代码 (例如, 分布式处理接口代理可以被指定用于输送并且执行计 算设备具有较高容量和较低延迟的任何一个应用 (例如, 被动态地发送到一个位置以处理 5 千兆字节数据然后以避免跨越网络将数据移动到应用首先被定位在的地方的延迟的完美 状态返回的 5 兆字节应用) 等) ) 。 0026 进一步地, 本实施例提供透明的、 非干扰性的以及应用技术无关的 : 用于优化。
26、并且 保护应用之间的分布式通信的增值选项 (例如, 加密、 压缩、 服务质量、 群集、 安全等) 的使 用 ; 跟踪、 度量、 利用、 容量以及在服务执行点处收集到的依赖管理洞察力和服务的粒度 ; 以及基于由服务本身在执行点处所驱动的陈述性、 程序性或动态度量驱动准则的任何组合 的动态工作负载管理和编排, 其中通信在本地、 远程、 同步或异步执行的变化中被编排。 0027 而且, 本实施例可以在云环境中执行上述功能, 在所述云环境中, 任何 IP 可寻址 设备可以作为能随时改变物理或虚拟位置的客户端和服务器服务提供商 (例如, 包括通过 本实施例的分布式处理接口正在动态地向 DNS 服务登记处。
27、注册其本身的移动设备或应用) 两者参与。采用允许实现在对应用之间的响应请求阻塞之外的异步 Web 处理的附加模型的 执行模型。 0028 本实施例可以作为应用与操作系统 (和/或网络) 之间的中介物以应用对进程执行 的指令符控制、 跟踪、 报告以及优化通信和任何数目的附加方面 (例如, 包括对应用之间的 相互依赖的完全且准确的依赖洞察力报告的利用、 安全凭证、 优化的路由、 服务质量等) 。进 一步地, 本实施例将应用功能与网络能力集成在一起而不干扰应用其本身 (例如, 包括在不 要求应用内的 API 接口的情况下促使网络设备中的硬件能力改变的能力) 。例如, 当通过分 说 明 书 CN 10。
28、3843308 A 7 4/15 页 8 布式处理接口在应用之间输送数据时, 可以为应用透明地采用加密或压缩协处理器。 0029 此外, 本实施例可以保护结合了对应用上下文可用的特征的限制的执行上下文, 从而降低移动代码的风险。而且, 用任何编程技术编写的任何应用可以简单地通过在分布 式处理接口内执行来继承本实施例的外壳的分布式处理能力。 关于客户端与消费的服务之 间的使用模式的准确的业务智能通过捕获在 DNS 登记处以及客户端和服务器的两个端点 处的依赖性来生成, 而无需典型地加密 URL 或者干扰应用。新的应用模式被建立以用于动 态地集合或者分发应用以便基于一套陈述性、 程序性或动态地确定。
29、的准则来执行任务。 0030 本实施例组合了各种特征以提供包括基于 DNS 的技术无关的服务登记处和位置 代理的上述能力 (例如, 用于全局联盟、 定标、 冗余、 弹性等的能力) 、 用来管理其中应用被执 行的网络使能接口的远程执行守护程序、 用作应用与操作系统、 网络以及彼此之间的执行 环境中介物的网络使能接口进程、 以及应用透明地继承的叠加到网络使能接口上的增值服 务 (例如, 加密、 压缩、 依赖跟踪、 服务质量 (QoS) 、 服务定位、 服务注册等) 。 0031 本实施例可以由包括操作系统、 软件可执行文件或库 (例如, 提供分布式处理控制 器、 应用、 进程管理器等) 、 配置文。
30、件的各种组件来实现。 域名服务 (DNS) 、 一个或多个计算设 备、 以太网网络 (例如, 典型地包括访问和服务交换机、 电缆或无线连通性以及网络操作系 统) 以及一个或多个存储设备能够借助于与计算设备和操作系统的交互来存储并且访问上 述软件。本实施例的分布式处理接口一般地响应应用的调用事件。 0032 用于本实施例的示例拓扑在图 1 中被图示。具体地, 拓扑 100 包括域名服务 (DNS) 服务器系统 105 和一个或多个主机系统 114。DNS 系统 105 处理查询以提供与应用相关联 的位置信息 (例如, IP 或其它网络地址、 位置等) 。DNS 系统 105 和主机系统 114 。
31、可以彼此远 离并且通过网络 112 进行通信。网络优选地是典型地包括访问和服务交换机、 电缆或无线 连通性以及网络操作系统的以太网网络。然而, 网络可以由任何数目的任何适合的通信介 质 (例如, 广域网 (WAN) 、 局域网 (LAN) 、 因特网、 内部网、 以太网等) 来实现。可替代地, DNS 系 统105和主机系统114对于彼此而言可以是本地的, 并且经由任何适当的本地通信介质 (例 如, 局域网 (LAN) 、 硬连线、 无线链路、 内部网等) 进行通信。 0033 主机系统 114 可以包括一个或多个应用, 并且使得能够从如在下面所描述的分布 式处理接口在主机系统 114 中的一。
32、个或多个上执行本地和远程应用。主机系统 114 包括用 来便于跨越如在下面所描述的主机系统分布的应用的执行的各种模块。主机系统 114 可以 呈现图形用户接口 (例如, GUI、 桌面等) 或其它用户接口 (例如, 命令行提示符、 菜单画面等) 以请求用于执行期望动作 (例如, 调用本地或远程应用等) 的信息或命令。 0034 主机系统 114 可以由优选地装配有显示器或监视器、 基部 (例如, 包括处理器 270 (图 2) 、 内存 280 和 / 或内部或外部通信设备或网络接口 260 (例如, 调制解调器、 网卡等) ) 、 可选的输入设备 (例如, 键盘、 鼠标或其它输入设备) 以及。
33、任何商业上可用的和/或定制的软 件 (例如, 通信软件、 分布式处理控制器以及进程管理器模块等) 的任何常规或其它计算机 系统来实现。可替代地, 主机系统 114 可以进一步由任何类型的计算机或处理设备 (例如, 膝上型计算机、 个人数字助理 (PDA) 、 移动 / 蜂窝电话设备、 移动设备 (例如, 板或平板) 等) 来实现。进一步地, DNS 系统 105 可以由优选地装配有显示器或监视器、 基部 (例如, 包括处 理器、 内存和 / 或内部或外部通信设备或网络接口 (例如, 调制解调器、 网卡等) ) 、 可选的输 入设备 (例如, 键盘、 鼠标或其它输入设备) 以及任何商业上可用的和。
34、/或定制的软件 (例如, 说 明 书 CN 103843308 A 8 5/15 页 9 通信软件、 DNS 软件等) 的任何常规或其它计算机系统来实现。 0035 主机系统114包括用来执行跨越如图2中所图示的主机系统分布的应用的各种模 块。具体地, 主机系统 114 包括操作系统 205、 分布式处理控制器模块 210、 进程管理器模块 220 以及 DNS 解析模块 232。操作系统 205 可以由任何常规或其它操作系统来实现, 其中主 机系统 114 可以各自包括相同的或不同的操作系统。分布式处理控制器模块 210 (例如, 经 由主机系统 114) 为外壳提供用户接口。分布式处理控制。
35、器模块 (例如, 经由主机系统 114) 进一步解析命令或指令 (例如, 来自外壳或代码的命令或指令) , 促进服务位置在主机系统 114 之中找到在命令或指令内指定的应用, 并且像在下面所描述的那样在所指定的应用之 间用输送或者引导数据。 0036 进一步地, 分布式处理控制器模块可以与选择性地利用来执行外部化的服务的许 多可插拔的服务模块相关联。 分布式处理控制器模块通过一系列这些可插拔服务模块来传 递请求以便在用于和 / 或来自应用的数据上执行各种服务。可以针对对数据的操作依次放 置任何数量的服务模块。 每个可插拔服务模块可以在不干扰应用的情况下使用外部环境变 量、 命令行自变量或属性文。
36、件来配置。 0037 可插拔模块可以包括 : 提供依靠外部服务来基于可用容量确定优化策略的工作负 载管理策略的策略管理器230 ; 以及用来动态地向DNS系统105注册主机系统114上的应用 的DNS注册模块234。 此外, 各种可插拔模块可以与标准输入 (stdin236) 、 输出 (stdout238) 以及错误流 (stderr, 未示出) 相关联以使得服务能够被应用于用于和 / 或来自应用的数 据。 这些各种可插拔模块可以包括 : 用来提供关于主机系统或应用操作的统计 (针对标准输 入 236 和输出 238) 的统计模块 240 ; 用来对传出数据 (针对标准输出 238) 进行编。
37、码的编码 模块 243 ; 用于对编码的传入数据 (来自标准输入 236) 进行解码的解码模块 242 ; 用来压缩 传出数据 (针对标准输出 238) 的压缩模块 245 ; 用来对压缩的传入数据 (来自标准输入 236) 进行解压缩的解压缩模块 244 ; 用来加密传出数据 (针对标准输出 236) 的加密模块 247 ; 用 来对传入加密的数据 (来自标准输入 236) 进行解密的解密模块 246 ; 用来使处理负载 (针对 标准输入236和输出238) 平衡的负载平衡模块248 ; 用来响应于故障执行动作 (针对标准输 入 236 和输出 238) 的故障转移模块 250 ; 以及用来。
38、适应文件转移 (例如, 应用或其它数据的 迁移) (针对标准输入 236 和输出 238) 的文件转移模块 252。用于应用的数据可以通过将 数据从一个应用的标准输出 238(例如, 经由传送模块 256) 导向另一应用的标准输入 236 (例如, 经由接收模块 254) 来输送。 0038 这些服务可以由主机系统 114 来执行, 或者被卸载到外部处理器并且由外部处理 器来执行。 特别地, 每个可插拔服务模块可以作为将功能委派给外部资源 (例如, 主机系统、 网络设备或服务等) 的接口。例如, 服务模块可以与网络设备或协处理器卡进行通信以执行 任务 (例如, 加密、 负载平衡等) 。 003。
39、9 DNS 解析模块 232 提供对服务位置的帮助, 并且与 DNS 系 105 进行通信以便为应 用提供位置信息 (例如, IP 或其它地址、 位置等) 。进程管理器模块 220 优选地具有守护程 序的形式, 并且处理 (例如, 经由主机系统 114) 包括从其它主机系统 114 执行应用的请求以 及执行主机系统的扫描以动态地注册在主机系统上发现的应用的各种任务。 进程管理器模 块接收针对应用执行的请求, 并且发起 (或者分叉出) 进程以用于分布式处理控制器模块执 行 (例如, 经由主机系统 114) 应用执行的执行。主机系统 114 可以进一步将为如在下面所 说 明 书 CN 103843。
40、308 A 9 6/15 页 10 描述的服务位置 (例如, 搜索路径等) 提供参数的配置文件 215 以及供由主机系统本地或远 程执行的一个或多个应用 225 包括在内存 280 内。 0040 各种模块 (例如, 分布式处理控制器模块、 进程管理器模块、 DNS 解析模块、 可插拔 服务模块等) 可以通过任何数量的软件和/或硬件模块或单元的任何组合来实现, 并且可以 驻留在主机系统的内存 280 内以供由处理器 270 执行。 0041 根据本实施例执行跨越主机系统114分布的应用的方式在图3中被图示。 首先, 本 实施例的分布式处理接口使得应用执行能够无关于应用在特定操作系统或计算机设备。
41、 (例 如, 主机系统 114) 上的位置。应用执行透明地发生, 而无论应用对于调用而言是本地的还 是远程的, 从而创建提供优化或服务的机会。特别地, 在步骤 300 处应用被调用。这可以通 过代码 (例如, 程序、 脚本、 宏等) 内的命令来实现, 或者键入到本实施例的外壳中, 从而引导 一个或多个指定的应用的执行。 0042 一旦命令被接收到, 在步骤 302 处由分布式处理控制器模块 210(例如, 经由主机 系统 114) 对提供搜索路径或换句话说用于定位在所接收到的命令内指定的应用的指令符 的配置文件 215 内的条目 (例如, PATH 命令或其它条目) 进行分析。搜索路径的这种使。
42、用使 得能实现对于本地和远程应用的执行的透明性。 应用的位置在搜索路径中的解析将用于应 用的可执行文件的目录的优先顺序搜索与远程网络命名服务组合以使得该应用能够被以 与要么应用存在于调用操作系统的已安装文件系统本地要么存在于计算机网络上的远程 资源上无关的一种方式定位。网络命名和位置服务到搜索路径 (例如, PATH 或其它条目) 的 这种集成可以被应用于能够返回可寻址位置的任何类型的网络命名服务, 远程执行能够从 所述可寻址位置发起并由与远程资源协调的分布式处理控制器模块完成。 0043 全解析的路径条目包括以所期望的优先级顺序来组合本地和 / 或远程引用的结 构, 并且分布式处理控制器模块。
43、取决于所配置的策略解析并且执行在任意位置或全部位置 中的应用。用于搜索路径的示例条目可以包括下列内容 : 0044 PATH= 本地引用 ; 远程引用 , 0045 其中远程引用可以是用于指示远程服务的位置 (例如, URL、 HOP 全局标识符、 RMI 引用、 DNS 名称等) 的任何适合的惯例。进一步地, 条目 (例如, PATH 或其它条目) 的任何部 分可以支持替换。在这种情况下, 路径条目的各部分可以是对如在以下示例条目中所示出 的配置信息 (例如, 环境变量、 寻找资源 (例如, URL 或配置文件等) 的来源的内联脚本) 的其 它源的抽象引用。 0046 PATH= 本地引用 。
44、;$REMOTE_REFERENCES 0047 PATH= 本地引用 ;get_remote_references 0048 PATH= 本地引用 ;http:/host.domain/remote_references 0049 PATH= 本地引用 ;file:/remote_references。 0050 对搜索路径中的应用的可执行文件的位置的解析可以使用域名服务名称的前缀 来识别在顺序优先的搜索路径中正被调用的应用。 这使得应用能够被解析成不高于开放系 统互连 (OSI) 模型的第 3 层 (例如, 网络层) 的水平的目标。将应用解析为不高于开放系统 互连 (OSI) 模型中的第 。
45、3 层 (例如, 网络层) 的一个或多个 IP 地址的优点包括目标执行主机 系统被解析为一个或多个全局位置而无需代理或重引导。 这对于在目标主机处没有复杂性 的全局负载平衡和故障转移来说是有用的, 而且对于定位可能频繁地改变位置的有状态的 说 明 书 CN 103843308 A 10 7/15 页 11 应用而言也是有用的。 0051 集成搜索路径中的应用通过可被分布式处理控制器模块作为执行目标主机系统 得到以满足调用的域名服务 (DNS) 解析为一个或多个互联网协议 (IP) 地址。集成搜索路径 中的远程 DNS 引用可以具有完全地解析 ( “应用 . 主机 . 域” ) 引用的数个配置。。
46、用于完全限 定引用的示例包括下列内容 : 0052 PATH= 本地引用 ; 应用 . 主机 . 域 。 0053 用于应用的可执行文件名称的隐式替换的示例包括下列内容 : 0054 PATH= 本地引用 ;$ 应用可执行文件名称 主机 . 域 。 0055 分布式处理控制器模块 (例如, 经由主机系统 114) 识别在搜索路径内的本地目录 或路径。如果在步骤 304 处确定一样识别出本地目录, 则在步骤 308 处对所识别的本地目 录进行搜索以得到所指定的应用。 如果应用在所识别的本地目录内未被找到, 则在步骤302 处获取下一个搜索路径条目并且响应于在步骤 324 处确定出存在附加的搜索路。
47、径像上面 所描述的那样对下一个搜索条目进行分析。 当没有附加的搜索路径条目存在时, 在步骤300 处响应于在步骤 316 处确定出存在附加的应用而调用下一个应用。 0056 当在步骤 308 处确定出在所识别的本地目录内找到应用时, 分布式处理控制器模 块 (例如, 经由主机系统114) 确定待执行的指定服务的存在。 服务可以由在所接收到的命令 内的指令符来指定, 并且在执行应用之前和 / 或之后执行。应用的解析和执行使得服务 (例 如, 可选的优化或强制执行) 能够被应用于每个应用的输入和输出的拦截数据流, 并且总体 上应用于集成组合。这些服务可以使用可插拔服务模块 (例如, 软件模块或软件。
48、库) 或对如 上面所描述的外部服务的接口惯例来实现。服务可以包括加密、 压缩、 编码 (例如, XML) 、 服 务质量 (QoS) 、 事务控制、 统计、 日志、 调试 / 追踪、 负载平衡、 故障转移、 文件转移、 动态 DNS 注册以及策略强制执行实施。 0057 例如, 可插拔服务模块 (例如, 文件转移模块 252(图 2) ) 可以被用来将应用文件和 数据转移和 / 或拷贝到提供对将应用功能作为操作的调用序列的一部分在网络内动态地 放置在任何设备上具有最佳能力的位置 (例如, 主机或其它处理系统) 。进一步地, 可插拔服 务模块 (例如, DSN 注册模块 234(图 2) ) 可。
49、以被用来通过扫描调用主机系统的操作系统上 的本地目录将应用注册和 / 或重新注册在域名服务 (DNS) 中, 或者在成功的应用转移结束 处作为动作序列的一部分将转移的 / 拷贝的应用文件的位置重新注册到它们新的位置处。 动态注册或重新注册包括无论在参与的应用 (例如, 应用的可执行文件) 最初驻留时、 或者 作为动态调用或部署的结果动态地移动时均对其进行自动的和程序性的重新注册。例如, 每个主机系统 114 上的进程管理器模块或守护程序 (例如, 经由 DNS 注册模块 234) 对在定 义的一组目录内的应用的可执行文件集、 或作为它们的处理指令符的结果到达主机系统的 应用的任何传入的可执行文件进行注册或者重新注册。这使得携带代理状态的 “代理” 可 执行文件能够随着代理可执行文件从系统移动到执行工作的系统而被动态地找到。 0058 此外, 可插拔服务模块 (例如, 策略管理器模块 230(图 2) ) 可以提供策略引擎以基 于指示调用何时将发生调用和 / 或调用将发生的方式以及将被。