用于在分布式计算环境中支持可执行代码的动态部署的系统和方法技术方案

技术编号:16048868 阅读:21 留言:0更新日期:2017-08-20 08:33
系统和方法在分布式计算环境中支持可执行代码的动态部署。分布式计算环境中的服务器节点可以从客户端接收类定义以执行,并且使用所述类定义生成类的实例并将其加载到存储器中,而无需重新启动或重新部署服务器节点。类定义可以定义否则对服务器节点不可用的新的或更新的类。使用唯一类身份来识别类,这使得能够确定类是新的还是更新的。类身份可以用于确定将类定义传输到服务器节点的需要,并且还用于确保实现了类的正确版本。在特定情况下,新的或更新的类定义实现lambda表达式。

【技术实现步骤摘要】
【国外来华专利技术】用于在分布式计算环境中支持可执行代码的动态部署的系统和方法版权声明本专利文档的公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照它在专利商标局的专利文件或记录中出现的那样进行传真复制,但是除此之外在任何情况下都保留所有版权。
本专利技术一般而言涉及计算机系统,并且具体而言涉及分布式计算环境。
技术实现思路
本公开描述了可以在分布式计算环境中支持可执行代码的动态部署的系统和方法。客户端为一个或多个类或更新的类生成类定义。类定义被串行化并传输到分布式计算环境中的服务器。分布式计算环境中的服务器接收串行化的类定义、解串行化(deserialize)类定义、并且在服务器上生成一个或多个类或更新的类用于执行。类或更新的类可以表示lambda表达式。此外,类或更新的类被提供有唯一身份,以确保执行正确的类或类版本并且确保串行化和分发服务器上不可用的类定义。可执行代码的动态部署使得能够在服务器节点上执行代理,其中代理依赖于否则对服务器节点不可用的新类定义。在实施例中,本公开描述了一种用于在分布式计算环境中支持lambda表达式的方法。该方法包括经由服务器接收实现lambda表达式的类定义。客户端生成实现lambda表达式的所述类定义、将其串行化并将其发送到服务器。服务器基于接收到的类定义来定义lambda类。如果lambda表达式在客户端侧被更新,那么将表示更新的lambda表达式的新类定义发送到服务器。当结合附图阅读时,根据以下各种实施例的描述,本专利技术的这些和其它目的和优点对于本领域技术人员将变得显而易见。附图说明图1图示根据本专利技术的实施例的分布式数据网格。图2A图示根据本专利技术的实施例的支持可执行代码的动态部署的分布式计算环境。图2B图示根据本专利技术的实施例的支持可执行代码的动态部署的方法。图3A图示根据本专利技术的实施例的支持实现lambda表达式的可执行代码的动态部署的分布式计算环境。图3B图示根据本专利技术的实施例的支持实现lambda表达式的可执行代码的动态部署的方法。具体实施方式本文描述的是在分布式计算环境中支持可执行代码的动态部署的系统和方法。分布式计算环境中的服务器节点可以从客户端接收类定义,以在不重新启动或重新部署服务器节点的情况下使用所述类定义来执行和生成类的实例并将该实例加载到存储器中。类定义可以实现否则对服务器节点不可用的新的或更新的类定义。利用唯一的类身份来识别类,这使得能够确定类是新的还是更新的。类身份可以用于确定将类定义传送到服务器节点的需要,并且还用于确保实现了类的正确版本。可执行代码的动态部署使得能够在服务器节点上执行代理,其中代理依赖于否则对服务器节点不可用的新类定义。在特定实施例中,本公开描述可以在分布式计算环境中支持实现lambda表达式的类定义的动态部署的系统和方法。分布式计算环境中的服务器可以从客户端接收一个或多个类定义,其中客户端生成所述一个或多个类定义以实现lambda表达式。然后,服务器可以基于接收到的类定义在服务器侧上定义lambda类。此外,当lambda表达式在客户端侧上被更新时,可以准备用于更新的lambda类的新类定义并将新类定义从客户端发送到服务器。用于支持可执行代码的动态部署的系统和方法在下面关于图1描述的分布式数据网格中具有特定的用途,其中所述可执行代码的动态部署包括如本文所述和如图2A、2B、3A和3B中所图示的实现lambda的类定义的动态部署的。用于支持包括实现lambda的类定义的动态部署的可执行代码的动态部署的系统和方法也可以应用于各种各样的替代分布式计算环境中。在以下描述中,将在附图的图中通过示例的方式而非限制的方式图示本专利技术。对本公开中的各种实施例的引用不一定是引用相同的实施例,并且这样的引用意味着至少一个。虽然讨论了具体实现,但是应当理解的是,这只是为了说明性的目的而提供。相关领域的技术人员将认识到的是,在不脱离本专利技术的范围和精神的情况下,可以使用其它组件和配置。此外,在某些情况下,将阐述许多具体细节以提供对本专利技术的详尽描述。但是,对于本领域技术人员将显而易见的是,可以在没有这些具体细节的情况下实践本专利技术。在其它情况下,没有详细描述众所周知的特征,以免模糊本专利技术。借助于图示特定功能的性能及其关系的功能构建块描述本专利技术。为了方便描述,本文往往任意地定义这些功能构建块的边界。因此,示出为由相同元件执行的功能在替代实施例中可由不同元件执行。并且示出为在单独元件中执行的功能可以替代地合并到一个元件中。只要适当地执行特定功能及其关系,就可以定义替代边界。任何这样的替代边界因此在本专利技术的范围和精神之内。贯穿附图和详细描述,使用了共同的附图标记指示相同的元件;因此,如果在其它地方描述元素,那么可以或可以不在特定于该图的详细描述中引用在图中使用的附图标记。三位数字标号中的第一个数字指示该元件首次出现的图系列。分布式数据网格分布式数据网格是其中计算机服务器的集合在一个或多个集群中一起工作以管理分布式或集群环境内的信息和相关操作(诸如,计算)的系统。分布式数据网格可以用于管理跨服务器共享的应用对象和数据。分布式数据网格提供低响应时间、高吞吐量、可预测的可扩展性、连续可用性和信息可靠性。作为这些能力的结果,分布式数据网格非常适合在计算密集型、有状态的中间层应用中使用。在特定示例中,分布式数据网格(诸如例如,Coherence数据网格)将信息存储在存储器中以实现更高的性能,并且在使该信息的拷贝跨若干服务器同步中采用冗余,从而在服务器故障的情况下确保系统的复原以及数据持续的可用性。在以下描述中,描述具有分区的高速缓存的Coherence数据网格。但是,本领域的普通技术人员将理解的是,在不脱离本专利技术的范围的情况下,例如在以上
技术实现思路
中描述的本专利技术可以应用于本领域已知的任何分布式数据网格。此外,虽然描述了Coherence分布式数据网格的许多具体细节以提供对本专利技术的详尽描述,但是对于本领域技术人员来说将显而易见的是,可以在没有这些具体细节的分布式数据网格中实践本专利技术。因此,在一些实施例中,在不脱离本专利技术的范围的情况下,体现本专利技术的分布式数据网格的特定实现可以排除某些特征、和/或包括与下面描述的分布式数据网格不同的或经修改的特征。图1图示存储数据并且向客户端150提供数据访问的分布式数据网格100的示例。“数据网格集群”或“分布式数据网格”是包括多个计算机服务器(例如,120a、120b、120c和120d)的系统,这些计算机服务器在一个或多个集群(例如,100a、100b、100c)中一起工作以在分布式或集群环境中存储和管理信息以及相关操作,诸如计算。虽然分布式数据网格100被图示为包括四个服务器120a、120b、120c、120d,其中在集群100a中具有五个数据节点130a、130b、130c、130d和130e,但是分布式数据网格100可以包括任何数量的集群以及在每一个集群中包括任何数量的服务器和/或节点。分布式数据网格可以在内存中存储信息以实现更高的性能,并且在使该信息的拷贝跨若干服务器同步中采用冗余,从而在服务器故障的情况下确保系统的复原以及数据持续的可用性。在实施例中,分布式数据网格100实现例如在以上
技术实现思路
和下本文档来自技高网
...
用于在分布式计算环境中支持可执行代码的动态部署的系统和方法

【技术保护点】
一种用于在分布式计算环境中支持可执行代码从客户端到节点的动态部署的方法,所述方法包括:在节点处从客户端接收串行化对象,其中串行化对象包括用于不存在于节点的类路径中的新类的类定义和利用所述新类的捕获的代理状态;在所述节点上解串行化串行化对象以取回所述类定义和所述捕获的代理状态;将类定义和捕获的代理状态加载到节点的存储器中,以在节点上生成新类的实例;以及在节点上执行代理。

【技术特征摘要】
【国外来华专利技术】2014.09.25 US 62/055,482;2014.11.06 US 62/076,1591.一种用于在分布式计算环境中支持可执行代码从客户端到节点的动态部署的方法,所述方法包括:在节点处从客户端接收串行化对象,其中串行化对象包括用于不存在于节点的类路径中的新类的类定义和利用所述新类的捕获的代理状态;在所述节点上解串行化串行化对象以取回所述类定义和所述捕获的代理状态;将类定义和捕获的代理状态加载到节点的存储器中,以在节点上生成新类的实例;以及在节点上执行代理。2.如权利要求1所述的方法,其中所述类定义实现lambda表达式。3.如权利要求1至2中任何一项所述的方法,所述方法还包括:在客户端上接收代理代码;从客户端上的所述代理代码确定用于所述新类的类定义;以及基于类定义生成用于所述新类的类身份。4.如权利要求1至3中任何一项所述的方法,所述方法还包括:在所述客户端上维护类/身份表;在客户端上接收用于所述代理的代理代码;从客户端上的所述代理代码确定用于所述新类的类定义;基于类定义生成用于所述新类的类身份;以及使用类/身份表来确定所述新类不存在于节点的类路径中。5.如权利要求1至3中任何一项所述的方法,所述方法还包括:在所述客户端上维护类/身份表;在客户端上接收用于所述代理的代理代码;从客户端上的所述代理代码确定用于所述新类的类定义;基于类定义生成用于所述新类的类身份;使用类/身份表来确定所述新类不存在于节点的类路径中;以及将用于所述新类的类身份添加到类/身份表。6.如权利要求1至5中任何一项所述的方法,所述方法还包括:在客户端上接收用于所述代理的代理代码;从客户端上的所述代理代码确定用于所述新类的类定义;在所述客户端上生成串行化对象,所述串行化对象包括用于不存在于节点的类路径中的新类的类定义和利用所述新类的所述捕获的代理状态;以及将所述串行化对象传输到节点。7.如权利要求1至6中任何一项所述的方法,所述方法还包括:在客户端上接收用于所述代理的代理代码,其中所述代理代码包括lambda表达式;从客户端上的所述代理代码确定用于所述新类的类定义,其中类定义实现所述lambda表达式;在所述客户端上生成包括串行化对象,所述串行化对象用于不存在于节点的类路径中的新类的类定义和利用所述新类的捕获的代理状态;以及将所述串行化对象传输到节点。8.如权利要求1至7中任何一项所述的方法,其中分布式计算环境包括数据网格集群,并且其中可执行代码的动态部署使得能够在所述数据网格集群中保持要由代理对其操作的数据的多个节点上执行所述代理,而无需重新部署所述数据网格集群中的所述多个节点。9.如权利要求1至8中任何一项所述的方法,其中分布式计算环境包括数据网格集群,并且其中所述代理是用于针对在所述节点中保持的数据执行的条目处理器。10.如权利要求1至9中任何一项所述的方法,其中分布式计算环境包括数据网格集群,并且其中所述代理是用于针对在所述节点中保持的数据执行的聚合器、过滤器、值提取器和可调用代码中的一个。11.一种用于在分布式计算环境中支持可执行代码的动态部署的系统,所述系统包括:计算机系统,所述计算机系统包括微处理器和存储器;节点,所述节点部署在所述计算机系统上作为所述分布式计算环境的一部分;以及其中所述节点被配置成:从客户端接收串行化对象,其中串行化对象包括用于不存在于节点的类路径中的新类的类定义和利用所述新类的捕获的代理状态,在节点上解串行化串行化对象以取回所述类定义和所述捕获的代理状态,将类定义和捕获的代理状态加载到分配给所述节点的所述存储器的一部分中,以在节点上生成新类的实例,以及在节点上执行代理。12.如权利要求11所述的系统,其中所述类定义实现lam...

【专利技术属性】
技术研发人员:A·瑟奥维克H·拉加
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1