CN102843411A - 在分布式网络中定位并执行对象 - Google Patents
在分布式网络中定位并执行对象 Download PDFInfo
- Publication number
- CN102843411A CN102843411A CN2012100866715A CN201210086671A CN102843411A CN 102843411 A CN102843411 A CN 102843411A CN 2012100866715 A CN2012100866715 A CN 2012100866715A CN 201210086671 A CN201210086671 A CN 201210086671A CN 102843411 A CN102843411 A CN 102843411A
- Authority
- CN
- China
- Prior art keywords
- equipment
- uri
- request
- assembly
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了在分布式网络中定位并执行对象。本发明涉及分布式网络中或云中的对象的交互和执行。每一个对象包括统一资源标识符(URI)路径,该URI路径通过分布式对象目录来命名云中的对象。客户机设备能够基于URI路径来直接与对象的实况实例对接。对象对于远程过程调用语义可以是不可知的。在某些方面,对象能够被远程地或本地地连接和交互。此外,对象的单个实例或多个实例能够基本上同时存在。
Description
技术领域
本发明一般涉及与实况对象交互,尤其涉及在分布式网络中定位并执行对象。
背景技术
随着计算技术的发展以及计算设备变得越来越普遍,计算机编程技术可适合用于所使用中的广泛的各种计算设备。这些计算设备可以在分布式网络中利用,其中计算机编程和数据是分布(或分散)在不止一个计算设备上的。此外,计算设备可用于通过分布式网络与其他设备和/或系统交互。作为一种经济的机制,可利用客户机/服务器计算,其中客户机设备具有第一组能力,而服务器(或分布式网络中的其他设备)提供第二组能力。
就此,软件对象能够运行分布式协议的实例。软件对象(或简称为“对象”)包括属性和方法或行为,这些属性和方法或行为是一组可能的外部交互模式,通过它们,对象的代理能够参与在本地运行时环境中。常规上,对象被存储在诸如数据库等数据存储中,并且对象的数据或代码被存储于在其中编译该对象的共享库中。当要利用对象时,本地地(例如,在客户机设备上)加载并执行对象。然而,有了这样的常规系统,对象知道并理解远程过程,这可使得对这些对象的编程变得不仅费时,而且非常面向细节。
因此,常规系统无法适当地支持不知道远程过程的软件对象。此外,当今不存在允许软件对象驻留在分布式网络中以实现对这些对象的分布式支持的系统。
当今的计算系统和对象执行系统技术的上述缺点仅旨在提供常规系统的一些问题的概览,并且不旨在是穷尽性的。传统系统的其他问题以及此处所描述的各非限制性实施例的对应的益处可以在审阅以下描述后变得更显而易见。
发明内容
此处提供了简化的发明内容以帮助能够对以下更详细的描述和附图中的示例性、非限制性实施例的各方面有基本或大体的理解。然而,本发明内容并不旨在作为详尽的或穷尽的概览。相反,本发明内容的唯一目的在于,以简化的形式提出与一些示例性、非限制性实施例相关的一些概念,作为以下各实施例的更详细的描述的序言。
在一个或多个实施例中,提供了供开发者持久存储对象和读回(或执行)对象的简单机制。此外,对象能够本地地和/或远程地访问。例如,所公开的实施例允许在分布式目录中对对象进行读写。由此,对象能够被远程地和/或本地地连接和交互。
另外,这些方法能够在网络或云中的正在运行的实例上执行。对象实现可以不知道主存环境的细节。此外,对象实现可以不知道远程过程调用和/或远程过程调用(RPC)语义。
可以有基本上同时存在的同一对象的单个实例或多个实例。此外,无论是正在运行或不是正在运行,每一个对象包括统一资源标识符(URI)路径,该URI路径通过分布式对象目录来命名云中的对象。
这些和其他实施例在下文中更详细地描述。
附图说明
参考附图进一步描述各非限制性实施例,在附图中:
图1示出了根据一方面的示例性计算系统的框图;
图2是示出根据一方面的包含开发组件、存储组件和执行组件的对象管理器组件的框图;
图3示出了根据一方面的对象管理器组件的另一方面;
图4示出了根据一方面的包含监视器组件和卸载组件的对象处理组件;
图5示出了根据一方面的本地绑定过程的非限制性流程图;
图6示出了根据一方面的远程绑定过程的非限制性流程图;
图7示出了根据一方面的激活过程的非限制性流程图;
图8是示出根据一方面的与实况对象进行交互的示例性、非限制性过程的流程图;
图9是示出根据一方面的允许多个设备(或单个设备)与对象的实况版本进行交互的示例性、非限制性过程的流程图;
图10是示出根据一方面的与实况对象进行交互的示例性、非限制性过程的流程图;
图11是表示其中可实现在本文中所述的各实施例的示例性、非限制性联网环境的框图;以及
图12是表示其中可实现在本文中所述的各实施例的一个或多个方面的示例性非限制性计算系统或操作环境的框图。
具体实施例
概览
存在可被配置成用作远程对象的各种类型的对象。这些对象包括例如.NET远程对象,其可包括单调用对象、单元素对象和激活客户机的对象。单调用对象只服务一个传入请求并且不保留状态信息。单元素对象服务多个客户机并且可通过存储客户机调用之间的状态信息来共享数据。激活客户机的对象是能够应客户机请求被激活的服务器侧对象。如在此处所用的,用户、终端用户、客户机设备、实体等等可以是指人类、行动者、计算机、因特网、系统(或另一系统)、商业企业、机器、机械等等,并且在后文中将取决于上下文而通常被称为用户、客户机或客户机设备。
常规上,当要利用对象时,用户通常本地地安装对象(例如,在客户机设备上)。因此,对象以对象知道并理解复杂的远程过程的方式开发或创建。这一远程过程知晓对象的开发可以是费时的,并且通常利用高度熟练的开发者,这些开发者具备创建具有执行复杂远程过程的能力的对象的技术技能。对这些高度熟练的开发者的利用增加成本以及对象本身的复杂性。
由此,开发能够如所预期的那样操作而不知道复杂的远程调用的对象将会是有益的。此外,开发能够在分布式网络中应用的对象将会是有益的,这能够提高这些对象的可用性。
在一实施例中,所公开的各方面涉及存在于网络中并且可通过网络直接访问的软件对象。能够对与对象相关联的数据进行读写,并且可执行对象的方法。这些读取、写入和执行能够在不将对象加载到本地主机的地址空间中的情况下执行。在一些实施例中,各方法能够在位于分布式连接的网络中或“云中”的对象上执行。不像其他形式的远程方法调用和/或对象激活,所公开的各方面允许开发者在不关心远程过程调用语义、实现具体接口或甚至在云中运行和/或主存对象的位置的情况下创建对象。
所公开的各方面允许对象按使用相对或绝对统一资源标识符(URI)的路径位于网络中。该路径允许调用者(例如,客户机设备)远程地访问对象并且以统一且一致的方式与对象的属性(例如,数据)交互或调用对象的方法(例如,代码)。因此,所公开的各方面允许开发者创建对象并将对象置于网络中。开发者(或另一用户)能够本地地(在客户机的地址空间中)或远程地(在服务器的地址空间中)与对象进行交互。
在一个实施例中,一种系统包括对象管理器组件,该组件被配置成基于从客户机设备接收到的对统一资源标识符(URI)的请求来访问对象。该URI是相对URI或绝对URI。该系统还包括被配置成远程地与对象交互的对象处理组件。对象对远程过程是不可知的。
在一些实现中,对象管理器组件被配置成连接到对象的实况实例。在其他实现中,对象处理组件被配置成接收对象情况的实时反馈。根据一些实现,对象处理组件被配置成间接地与代表对象执行至少一个功能的至少第二对象交互。
在一实现中,对象被配置成将其功能的至少一部分卸载到分布式对象。对象处理组件不知道分布式对象的存在。在其他实现中,对象处理组件被配置成匿名地与对象进行交互。
在一些实现中,该系统还包括抽象层,该抽象层被配置成代表对象与客户机设备通信并且代表客户机设备与对象通信。在另一实施例中,一种方法包括将对象写入到web服务并且将该对象保存在与该web服务相关联的数据库中。该方法还包括基于接收到针对统一资源标识符(URI)的请求来执行对象。
在一实现中,保存对象包括将URI分配给对象,其中该URI是通用的。在一些实现中,执行基于来自第一设备的请求。在该实现中,该方法还包括查明第一设备已经与对象连接并且保存该对象的第一版本。该方法还包括从第一设备和第二设备接收请求并且根据第二请求来执行对象的第一版本。
在另一实现中,该方法包括处理对对象的至少一个改变。该请求和至少一个改变是从第一设备接收到的。该方法还包括自动将至少一个改变保存在与web服务相关联的数据库中。
在另一实现中,该方法包括从第二设备接收第二请求并且向第二设备呈现具有至少一个改变的对象。在一些实现中,执行包括与至少第二对象进行交互,其中该第二对象与该对象相关联。
在另一实施例中,一种用于对象的分布式执行的方法包括接收对对象的调用。对象包括第一子对象和第二子对象。该方法还包括根据该调用来执行对象、第一子对象和第二子对象中的至少一个,其中该执行是在云中进行的。
在一实现中,该执行包括在执行期间移动对象的至少一部分。在另一实现中,该执行包括在第一机器中执行第一子对象以及在第二机器中执行第二子对象。在另一实现中,该执行包括将对象的至少一个功能卸载到第一子对象或第二子对象。
在一些实现中,该方法包括监视对于对象、第一子对象和第二子对象的使用,并基于监视,卸载对象、第一子对象和第二子对象中的至少一个的功能。
此处,以上已经呈现了对象执行系统的实施例中的某一些的概览。作为接下来的内容的路标,更详细地描述对象执行系统的各示例性、非限制性实施例和特征。随后,为了附加说明,给出一些非限制性实现和示例,之后是其中可实现这些实施例和/或特征的代表性网络和计算环境。
在分布式网络中定位并执行对象
作为针对从统一资源标识符(URI)提供对实况对象的访问以及提供对象的分布式执行的一种或多种非限制性方式的进一步描述,图1大致示出了示例性计算系统的框图。计算系统包括环境100,该环境可以是分布式网络或分布式目录。在某些方面,环境100与云计算(或简称为“云”)相关联,其中终端用户(例如,客户机设备)不知道传递服务的系统、分布式对象等的物理位置和配置。在一示例中,位于云中的抽象层能够从客户机设备接收指令。基于这些指令,抽象层能够代表客户机设备与一个或多个对象交互。此外,抽象层能够代表对象与客户机设备交互。由此,抽象层能够对客户机设备隐藏实现细节。
当用户需要可位于环境100中的服务或分布式对象时,接收对象请求110。例如,每一分布式对象都可具有相对URI或绝对URI。例如,第一分布式对象可具有第一URI,第二分布式对象可具有第二URI,以此类推。根据一方面,URI可以在创建对象时被分配给对象并被保留在分布式对象目录中。根据一些方面,对象请求包括对URI的引用。由此,当用户期望访问分布式对象时,用户输入该对象的URI。根据一些方面,能够从单个用户或从不同用户接收多个对象请求。多个对象请求可以是针对不同对象的,由此这些多个对象请求可引用不同的URI。根据一方面,该系统被配置成诸如通过抽象层来执行多个对象请求。此外,对象的单个实例或多个实例能够基本上同时存在。
在某些方面,分配给对象的URI可以是匿名的,以使得不存在与对象相关联的安全特征(例如,口令、安全凭证等)。由此,可访问网络且知道URI的任何客户机都能够访问对象并且利用与该对象相关联的特征。根据一些方面,可以为对象建立安全特征。在这种情况下,用户尝试通过输入URI来访问对象,并且另外输入各种凭证(例如,用户id/口令对、生物测定数据或其他安全参数)。如果凭证与分配给对象的凭证匹配,则用户被授权并且被授予对对象的访问。如果凭证不匹配,则拒绝对对象的访问。
基于对象请求110(例如,URI以及在某些情况下的安全参数的输入),对象管理器组件120被配置以访问对象。根据某些方面,对象管理器组件120访问对象数据130。例如,对象管理器组件120能够从对象服务器获取对象数据130。根据某些方面,对象管理器组件120不知道对象的实际位置。例如,对象可位于与分布式网络对接的不同设备(或不同云)上。在一方面,对象管理器组件120被配置成连接到对象(或另一对象或与该对象相关联的子对象)的实况实例。
对象数据130被提供给被配置成远程地与对象进行交互的对象处理组件140。例如,对象处理组件140可被配置成执行关于位于环境100中的对象的方法。此外,对象处理组件140可被配置成允许远程地(在云中或在分布式对象目录(对象名字空间))或本地地(在客户机设备上)利用对象。如果远程地利用对象,则(例如,实时地,在与做出改变大致同时,等等)自动将对该对象的任何改变保存在云中。在某些方面,对象处理组件被配置成匿名地与对象进行交互。
如果本地地利用对象,则基于其他准则来手动地(例如,通过用户)或自动地将对该对象的任何改变保存到云。例如,如果用户本地地与对象交互,则抽象层可请求在满足特定准则后(例如,在指定的时间间隔后,在对对象的改变的通知后,等等)将对象保存到云。将对象手动和/或自动保存到云允许用户(或不同的用户)在请求与该对象相关联的URI时(在稍后时间)访问该对象的已更新版本。
所公开的各方面的优点是能够在没有特殊编程考虑事项的情况下提供对象。由此,对象能够存活在网络中并且能够利用云计算。此外,对象的已更新版本(或最近版本)可由不同的用户/客户机设备、相同的用户/相同的客户机设备或相同的用户/不同的客户机设备访问。例如,用户可能在工作计算机处与对象交互。如果用户远程地与对象交互,则该对象可被自动保存在云中。如果用户本地地与对象交互,则该用户可以在这天下班之前将该对象保存到云。在晚上,用户可决定再次访问对象。由于对象的实况版本已被保存在云中(例如,自动、手动),因此用户能够从不同的设备(例如,家庭计算机)或相同的设备(例如,在工作和家里两者处使用的膝上型计算机)访问该对象。
在一实施例中,图1所示的对象执行系统在操作上可不同于常规的对象执行系统,以便提供胜于可由采用常规的对象执行系统的计算系统实现的优势的额外优势。例如,此处所公开的对象执行系统能够在分布式网络或云中本地地和/或远程地应用。
为了示出其他方面,图2是示出根据一方面的包含开发组件210、存储组件220和执行组件230的对象管理器组件200的框图。对象管理器组件200被配置成创建对象并将URI分配给对象。在一个实施例中,开发组件210被配置成将对象写入到web服务。例如,开发者可利用普通编程来定义对象“foo”(例如,开发者不知道该对象将被在云中使用)。在定义对象“foo”之后,开发者可通过调用web服务并执行“写”过程来发布该对象,该“写”过程被配置成将对象写入到web服务。
存储组件220被配置成将对象保留或保存在与web服务相关联的数据库中。继续上述示例,在与将对象写入到web服务大致相同的时间,将路径分配给对象。例如,路径可包括对象的名称,诸如“Fred”。由此,“foo”是实际对象实例且对象名称是“Fred”。对象名称允许对象作为已命名的对象存在于云中。例如,开发者可能本地地创建对象,然而,一旦该对象被保存至web服务,则该对象在云中并且能够被保留在例如数据库中。在一方面,保存对象包括将URI分配给对象,其中URI是通用的(例如,可由不止一个用户利用,可以在多个位置利用,等等)。在某些方面,URI可使得对象的单个实例或多个实例能够基本上同时存在。
执行对象230被配置成基于接收到针对URI的请求来执行(例如,运行)对象。例如,当将要执行对象“Fred”时,接收请求并且在相同的URI执行对象。由此,开发者能够在没有复杂的远程过程并且在不关心系统的基础结构的情况下创建对象。
图3示出了根据一方面的对象管理器组件300的另一方面。对象管理器组件300可包括开发组件310和存储组件320,该开发组件被配置成创建对象,存储组件被配置成将对象保留在云中。对象对远程过程可以是不可知的。
对象管理器组件300还包括执行组件330,该执行组件被配置成根据对URI的请求来选择性地授予对对象的访问。该URI可以是相对URI或绝对URI。在一方面,执行组件330被配置成选择性地将对对象的访问授予一个或多个用户和/或一个或多个客户机设备。例如,用户正在工作时利用对象。稍后在晚上,用户想要使用不同的客户机设备来在家里与对象交互。执行组件330被配置成选择性地授予用户对对象的访问,尽管客户机设备是不同。在另一方面,不同的用户(以及不同的客户机设备)可被提供对云中的对象的访问。
为了方便这些访问,执行组件330可被配置成基于来自第一设备的请求来执行对象。状态组件340被配置成查明第一设备是仍然连接到对象还是已经与对象断开连接。该判定可基于客户机上的活动会话或基于其他准则(例如,超时状态,其中如果在指定时间内没有接收到输入,则客户机设备自动超时并且对对象的访问被断开连接)来做出。如果第一设备仍然连接到对象,则拒绝另一设备对对象的访问。或者,可以向该另一设备提供该对象的多个实例中的一个。
如果确定客户机不再连接到对象,则存储组件320被配置成保留该对象的修改后版本(例如,第一版本)。在某些方面,存储组件320可被配置成保留对象的原始版本和/或对象的后续(例如,修改后)版本。在某些方面,对象的已保存版本可以是对象的多个实例中的一个实例。
对象管理器组件300可以从第一设备或从第二设备接收第二请求。基于该第二请求,执行组件330被配置成执行对象的修改后版本(例如,对象的后续版本)。
图4示出了根据一方面的包含监视器组件410和卸载组件420的对象处理组件400。对象处理组件400被配置成远程地与对象交互。在一方面,对象处理组件400通过抽象层间接地与对象交互。在某些实现,对象处理组件400被配置成间接地与代表对象执行至少一个功能的至少第二对象交互。对象对远程过程是不可知的。
监视器组件410被配置成接收对象的情况的实时反馈。例如,对象能够在客户机设备上本地地执行并且被保存到云,以使得该对象能够在不同的客户机设备(或在另一时间在相同的客户机设备上)使用。如果对象未被保存到云,则该对象的最近版本将不会通过URI可用。然而,如果在云中执行对象,则将该对象的最近版本自动保留在云中。由此,如果在云中执行对象(或者当对象的本地副本被保存到云时),则监视器组件410(在远程执行的情况下)被配置成获取实时反馈或(在本地执行的情况下)已更新反馈。
卸载组件420被配置成间接地与代表对象执行至少一个功能的至少第二对象(例如,子对象)进行交互。由于对象在分布式网络中,因此该对象的确切位置可能不是已知的。此外,对象可具有可位于分布式网络(例如,云、因特网等)中的不同位置的子对象或多个部分。例如,可执行一实况对象,该实况对象可连接到一个或多个其他正在执行的对象、子对象、多个部分、分量,等等(例如,分布式部分)。分布式部分(以及对象)的每一部分都可位于不同的系统,这能够提供互操作性。
此外,在云中,对象能够在第一机器(或第一云)中执行,并且分布式部分的至少一部分能够在第二机器中(或在第二云中)执行。根据一方面,如果(例如,由于处理约束)一机器或云不具有执行方法的能力,则即使对象处理组件400不知道分布式对象的存在,对象也可被配置成将其功能的至少一部分卸载到分布式对象。因此,即使对象在最初创建时没有该能力,功能的至少一部分也在不同的机器或云(例如,分布式部分)上执行。客户机设备不知道卸载或分布式部分。
此外,所公开的各方面提供单个对象的分布式执行。由此,如果过渡使用对象,则该对象可以快速分散到不同的机器或云。另外,可提供能够预测是否应卸载对象的功能的分析。
以下示例示出了如何将对象置于网络中。该示例使用具有差别的典型的购物车场景,该购物车不是网站专用应用代码,而是独立于网站存在的“云对象”。注意,任何对象(诸如.NET对象)都可以与所公开的方面一起使用,无论该对象是否理解远程过程调用,这是所公开的各方面的优点。
用户通过网站访问“云中”的购物车,并因此能够从web上的任何地方而不仅仅是当个网站访问相同的购物车。在一方面,用户可输入URI并使用该URI来访问购物车。
例如,用户虚拟地拜访基于web的书店并购买一本书且将这本书放在个人购物车中。然后,用户去往基于web的电子商店,并且购买视频游戏且将该视频游戏添加到相同的个人购物车。接着,用户拜访基于web的住房改善商店,并且购买割草机,该割草机也被放在个人购物车中。该购物车是“云”对象并且属于用户,而不是商家本身。由此,用户可离开一个网站并且在不丢失购物车物品的情况下从不同的计算机或设备访问另一网站。当用户期望结账(例如,购买物品)时,交易被发送到适当的商家以完成交易并独立地递送商品。
可以理解,上述示例是假想的,并且对于与每一个结账过程(例如,商家)交互的逻辑问题将根据与每一个结账过程相关联的不同实体来在个别地启用。所公开的各方面允许在“云中”实现个人购物车,常规系统未解决该实现。此外,尽管所公开的各方面是针对分布式购物场景来讨论的,但所公开的各方面能够用于除了此处所讨论的场景之外的其他场景。
以下是所公开的各方面的示例,其中对象不被远程地执行,而是被下载到做出调用的机器(例如,客户机设备)并且本地地执行。
这是为了将其与此处描述的远程执行方面进行对比而示出了。
上述示例本地地(在客户机设备上)创建购物车,并将其写入用户的个人目录下的对象名字空间。在该示例中,客户由客户ID来命名。购物车对象被存储且具有名称“MySoftwareBasket(我的软件购物篮)”,以暗示该客户机正在线构造买软件。该示例基本上是在写入数据。
注意,在网络中存在购物车,应用可通过调用作为“Bind(绑定)”和“Activate(激活)”的两个目录方法中的一个来访问该购物车。Bind连接到对象的现有实例并且能够以作为本地(生成本地副本)或远程(连接到远程副本)的两种方式中的一种来执行。Activate用于创建新远程实例并将其加载到网络中。Activate将对象加载到云中的远程过程中。
使用本地选项来绑定到目录中的对象导致该对象的数据被复制到本地机器并且创建本地实例。对对象的任何调用都是(例如,在过程中)本地执行的。在该场景中,对象将被保存回到名字空间中以使得改变起作用。
图5示出了根据一方面的本地绑定过程的非限制性流程图。客户机设备500将绑定请求510发送到名字空间服务器520。名字空间服务器520用绑定响应530来回复,该绑定响应可包括名字记录。客户机设备500将读取请求540发送到对象服务器550,该读取请求可包括对象id。对象服务器550与数据源560交互以获取对象数据570,该对象数据被加载在对象服务器550上。对象服务器550将对象图580提供给客户机设备500。
以下示例示出了这如何能够看上去是程序性的。在其对象使用Bind方法下载之后,这全都发生在客户机设备上。
以下示例类似于上述示例,不同之处在于绑定选项指定远程绑定。在该示例中,真实对象未被下载到客户机,而是在客户机上创建代理。
图6示出了根据一方面的远程绑定过程的非限制性流程图。客户机设备600将绑定请求610发送到名字空间服务器620,名字空间服务器用可包括名字空间记录的绑定响应630来回复。客户机设备600将包括图ID(或对象id)的绑定请求640发送到对象服务器650。对象服务器650连接660到对象主存进程670。客户机设备600通过对象主存进程670对对象做出远程调用680。
对Add(添加)的调用是远程执行的,而对Write(写入)的调用指示远程进程执行对象的到数据库的写入。
对象能够在一个调用中被激活和绑定。在该场景中,创建新实例并且返回代理。图7示出了根据一方面的激活过程的非限制性流程图。示出了将绑定请求710传送到名字空间服务器720的客户机设备700。名字空间服务器720用包括名字空间记录的绑定响应730来回复。
包括对象id的激活请求740被从客户机设备700发送到对象服务器750。对象服务器750访问数据源760并且数据被加载770到对象服务器750。对象服务器750将对象实例780加载到对象主存进程790中。客户机设备700对对象795做出远程调用。
以下代码示出了这如何能够看上去是程序性的。
在激活的情况下,对象正作为单个实例在云中运行。客户机仅仅远程地与对象交互,这对客户机的透明的。客户机甚至能够断开连接并且稍后从相同的机器或从不同的机器重新连接到相同的正在运行的对象。
在该激活情况下,对Add的调用被发送到对象,但该对象不知道该调用的远程的。这是所公开的各方面的优点,因为提供远程调用(remoting)和激活技术的常规系统使得开发者和对象实现知道该细节。
因此,所公开的各方面顾及对对象的远程过程调用。这些示例迄今大多数主要处理对象的数据以及调用是本地的还是远程的。存在关于对象的对数据调用过程或进程的方法。例如,在下文中将假设存在关于购物车对象的Checkout(结账)方法。以下示例示出了对结账方法的远程调用可能看上去如何:
该示例调用远程购物车两次:第一次是添加产品而第二次是启动结账过程。注意,对Write的调用能够以任何次序执行。这简单地指示状态将被写入到数据库。
一旦存在到远程实例的连接,就可远程调用方法。所公开的各方面的技术透明地执行远程调用,然而,由于在传统的远程过程调用技术中对象本身将知道远程调用,因此不利用传统的远程过程调用技术。相反,正在运行的对象被主存在主存进程中并且调用请求被发送到服务,以传递各种参数。
另外,在云中运行的对象实例被允许向正在运行的对象的任何其他实例发送消息或从正在运行的对象的任何其他实例接收消息。这类似于方法调用,然而,方法是特殊的。在该场景中,对象提供处理消息传递的实现逻辑。
一个类可实现只用于发送的ISendMessage、只用于接收的IRecieveMessage、或ISendReceiveMessage,以便在单个操作中只发送、只接受或发送并接收。GraphId(图Id)是正在运行的对象在分布式名字空间中的地址。名字空间中的每一个对象都具有其子集的ID。根据某些方面,ID是16字节ID,然而可利用其他长度。在执行上述代码后,云中的对象能够通过所定义的消息收发合同或通过类的固有方法来彼此通信。
图8是示出根据一方面的与实况对象进行交互的示例性、非限制性过程的流程图。在800,将对象写入到web服务。在810,将对象保存在与web服务相关联的数据库中。在一方面,将对象保存在数据库中可包括将URI分配给对象。URI可以是通用的。例如,对象可由知道URI的任何人使用。
在820,基于接收到针对URI的请求来执行对象。在一方面,对象可由第一设备执行并被保存(例如,在云中)。在稍后时间,可由第二设备来执行对象的已保存版本。例如,可处理对对象的至少一个改变,并且该至少一个改变可被保存在与web服务相关联的数据库中。请求和改变可从第一设备接收。此外,根据一方面,可以从第二设备接收第二请求,并且可向该第二设备呈现具有至少一个改变的对象(例如,对象的已保存版本)。在一方面,执行对象包括与至少第二对象交互,其中该第二对象与该对象相关联。
图9是示出根据一方面的允许多个设备(或单个设备)与对象的实况版本进行交互的示例性、非限制性过程的流程图。在900,基于来自第一设备的请求来执行对象。该请求可针对与对象的实况实例相关联的URI。在910,确定第一设备已经与对象断开连接。例如,可以从第一设备接收指示该第一设备正离开URI(例如,终止实况会话)的显式通知。然而,在某些方面,该判定可基于数据推断(例如,客户机设备没有响应、超时时间段已经过去,等等)来做出。
基于该断开连接,在920,保存对象的第一版本(或后续版本)作为修改后版本。在某些方面,维护对象的多个版本。在930,从第一设备或从第二设备接收第二请求。基于第二请求,在940,执行对象的第一版本(或后续版本)。对对象的后续修改可被保留,诸如在存储介质中。
图10是示出根据一方面的与实况对象进行交互的示例性、非限制性过程的流程图。在1000,接收对对象的调用。对象可包括第一子对象和第二子对象(或更多子对象)。在1010,根据调用来执行对象、第一子对象和第二子对象(或子分量)中的至少一个。
在一方面,该执行包括在执行期间移动对象的至少一部分。在另一方面,该执行包括在第一机器中执行第一子对象以及在第二机器中执行第二子对象。在另一方面,该执行包括将对象的至少一个功能卸载到第一子对象或第二子对象。例如,在执行对象后,在1020,监视对对象(或子对象)的使用。基于监视,在1030,卸载至少一个对象(或子对象)的功能。
示例性联网和分布式环境
本领域普通技术人员可以理解,此处所描述的对象执行系统和方法的各实施例可以结合任何计算机或其它客户机或服务器设备来实现,该任何计算机或其它客户机或服务器设备可作为计算机网络的一部分来部署或者被部署在分布式计算环境中,并且可以连接到任何种类的数据存储。就此,此处所描述的各实施例可以在具有任意数量的存储器或存储单元以及出现在任意数量的存储单元上的任意数量的应用程序和进程的任何计算机系统和环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件等对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化,等等。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。在这一点上,各种设备可具有应用、对象或资源,它们可以参与如针对本发明的各实施例描述的对象创建和执行机制。
图11提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等,这些计算对象或设备可包括如由应用1130、1132、1134、1136、1138和数据存储1140表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每一个计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等可通过通信网络1142直接或间接与一个或多个其他计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等进行通信。即使在图11中被示为单个元件,但通信网络1142可包括向图11的系统提供服务的其他计算对象或解释设备,和/或可表示未示出的多个互连网络。每一个计算对象1110、1112等或计算对象或设备1120、1122、1124、1126、1128等还可包含诸如应用1130、1132、1134、1136、1138等应用,这些应用可利用API或适用于与根据本发明的各实施例来提供的对象执行技术进行通信或适用于对象执行技术的实现的其他对象、软件、固件和/或硬件。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可以由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构可用于变得与如各实施例中所描述的对象执行系统相关联的示例性通信。
因此,可以利用诸如客户机/服务器、对等、或混合体系结构等网络拓扑结构和网络基础结构的主机。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。客户机可以是进程,即大致上是请求由另一程序或进程提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在网络化系统中,客户机通常是访问由例如服务器等另一计算机提供的共享的网络资源的计算机。在图11的图示中,作为非限制性示例,计算对象或设备1120、1122、1124、1126、1128等可被认为是客户机而计算对象1110、1112等可被认为是服务器,其中服务器1110、1112等提供数据服务,诸如从客户机计算对象或设备1120、1122、1124、1126、1128等接收数据、存储数据、处理数据、向客户机计算对象或设备1120、1122、1124、1126、1128发送数据等,但任何计算机都可取决于环境而被认为是客户机、服务器或两者。
服务器通常是可通过诸如因特网或无线网络基础架构等远程网络或本地网络访问的远程计算机系统。客户机进程可以在第一计算机系统中活动,而服务器进程可以在第二计算机系统中活动,它们通过通信介质彼此通信,从而提供分布式功能并允许多个客户机利用服务器的信息收集能力。按照此处所描述的技术来利用的任何软件对象可以被单独提供或分布在多个计算设备或对象上。
在其中通信网络1142或总线是例如因特网的网络环境中,计算对象1110、1112等可以是其他计算对象或设备1120、1122、1124、1126、1128等通过诸如超文本传输协议(HTTP)等多种已知协议中的任一种与其通信的web服务器。担当服务器的计算对象1110、1112等还可用作客户机,例如计算对象或设备1120、1122、1124、1126、1128等,如可以是分布式计算环境的特性。
示例性计算设备
如上所述,有利的是,此处所描述的技术可适用于其中期望在计算系统中执行对象创建和执行的任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象,即,在设备的资源使用可理想地优化的任何地方。因此,以下在图12中所述的通用远程计算机只是计算设备的一个示例。
尽管并非所需,但各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户端工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
因此,图12示出了其中可实现各实施例的一个或多个方面的合适的计算系统环境1200的一个示例,尽管如上所述,计算系统环境1200仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。也不应当将计算系统环境1200解释为对在示例性计算系统环境1200中所示的组件中的任何一个或其组合有任何依赖或要求。
参考图12,用于实现一个或多个实施例的示例性远程设备包括计算机1210形式的通用计算设备。计算机1210的组件可包括,但不限于,处理单元1220、系统存储器1230、以及将包括系统存储器的各种系统组件耦合到处理单元1220的系统总线1222。
计算机1210通常包括各种计算机可读介质,并且可以是可由计算机1210访问的任何可用介质。系统存储器1230可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器1230还可包括操作系统、应用程序、其他程序模块、以及程序数据。根据进一步的示例,计算机1210还可以包括各种其它介质(未示出),可以包括,但不是限制,RAM,、ROM、EEPROM、闪存存储器或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备或其它可用于存储所需信息的有形的和/或非瞬时介质。
用户可通过输入设备1240向计算机1210输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口1250之类的接口连接到系统总线1222。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口1250连接。
计算机1210可使用到一个或多个其他远程计算机(诸如远程计算机1270)的诸如网络接口1260的逻辑连接在联网或分布式环境中操作。远程计算机1270可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机1210所述的任何或全部元件。图12所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络1272,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但底层概念可被应用于任何网络系统和任何计算设备或系统。
此外,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于以上所述的示例性系统,参考各附图的流程图还可理解根据所述的主题实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,并非全部所示的框都是实现下面所述的方法所必需的。
除了此处所描述的各实施例之外,可以理解,可以使用其他相似的实施例或者可对所述实施例作出修改和添加以便执行对应的实施例的相同或等效的功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。
Claims (15)
1.一种系统,包括:
对象管理器组件(120),被配置成基于从客户机设备接收到的对统一资源标识符URI的请求来访问对象;以及
对象处理组件(140),被配置成远程地与所述对象交互。
2.如权利要求1所述的系统,其特征在于,所述对象对于远程过程是不可知的。
3.如权利要求1所述的系统,其特征在于,所述对象管理器组件(120)被配置成连接到所述对象的实况实例。
4.如权利要求1所述的系统,其特征在于,所述对象处理组件(140)被配置成接收所述对象的情况的实时反馈。
5.如权利要求1所述的系统,其特征在于,所述对象处理组件(140)被配置成间接地与代表所述对象执行至少一个功能的至少第二对象交互。
6.如权利要求1所述的系统,其特征在于,所述对象被配置成将其功能的至少一部分卸载到分布式对象,其中所述对象处理组件(140)不知道所述分布式对象的存在。
7.如权利要求1所述的系统,其特征在于,所述对象处理组件(140)被配置成匿名地与所述对象进行交互。
8.如权利要求1所述的系统,其特征在于,所述URI是相对URI或绝对URI。
9.如权利要求1所述的系统,其特征在于,还包括抽象层,所述抽象层被配置成代表所述对象与所述客户机设备通信,并且代表所述客户机设备与所述对象通信。
10.一种方法,包括:
将对象写入(800)到web服务;
将所述对象保存(810)在与所述web服务相关联的数据库中;
基于接收到针对统一资源标识符URI的请求来执行(820)所述对象。
11.如权利要求10所述的方法,其特征在于,保存所述对象包括将所述URI分配给所述对象,其中所述URI是通用的。
12.如权利要求10所述的方法,其特征在于,所述执行是基于来自第一设备的请求的,所述方法还包括:
查明所述第一设备已经与所述对象断开连接;
保存所述对象的第一版本;
从所述第一设备或第二设备接收第二请求;以及
根据所述第二请求来执行所述对象的第一版本。
13.如权利要求10所述的方法,其特征在于,还包括:
处理对所述对象的至少一个改变,其中所述请求和所述至少一个改变是从第一设备接收到的;以及
自动将所述至少一个改变保存在与所述web服务相关联的数据库中。
14.如权利要求13所述的方法,其特征在于,还包括:
从第二设备接收第二请求;以及
向所述第二设备呈现具有所述至少一个改变的对象。
15.如权利要求10所述的方法,其特征在于,所述执行包括与至少第二对象交互,其中所述第二对象与所述对象相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/074,260 US8856171B2 (en) | 2011-03-29 | 2011-03-29 | Locating and executing objects in a distributed network |
US13/074,260 | 2011-03-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843411A true CN102843411A (zh) | 2012-12-26 |
CN102843411B CN102843411B (zh) | 2018-12-07 |
Family
ID=46928683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210086671.5A Active CN102843411B (zh) | 2011-03-29 | 2012-03-28 | 在分布式网络中定位并执行对象的系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8856171B2 (zh) |
CN (1) | CN102843411B (zh) |
WO (1) | WO2012134827A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172102A (zh) * | 2017-07-13 | 2017-09-15 | 上海联影医疗科技有限公司 | 数据访问方法、系统以及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270735B2 (en) | 2014-10-10 | 2019-04-23 | Microsoft Technology Licensing, Llc | Distributed components in computing clusters |
US10635433B2 (en) * | 2017-08-24 | 2020-04-28 | General Electric Company | Cross application behavior customization |
CN117082049B (zh) * | 2023-07-19 | 2024-06-11 | 中电金信软件有限公司 | 文件转移方法及装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237024B1 (en) * | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6636900B2 (en) | 1998-06-29 | 2003-10-21 | Sun Microsystems, Inc. | Method and apparatus for executing distributed objects over a network |
US6957436B1 (en) | 1999-01-29 | 2005-10-18 | Iona Technologies, Plc | Method and system for multi-threaded object loading and unloading |
US6694335B1 (en) * | 1999-10-04 | 2004-02-17 | Microsoft Corporation | Method, computer readable medium, and system for monitoring the state of a collection of resources |
US7080078B1 (en) * | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
US7131107B2 (en) | 2000-07-03 | 2006-10-31 | Oculus Technologies Corporation | Method for mapping business processes using an emergent model on a computer network |
US7043525B2 (en) * | 2000-12-18 | 2006-05-09 | Bang Networks, Inc. | Techniques for updating live objects at clients using a dynamic routing network |
US6836886B2 (en) * | 2001-03-19 | 2004-12-28 | Autodesk, Inc. | Method and apparatus for delivering electronic information |
US7155728B1 (en) * | 2001-06-28 | 2006-12-26 | Microsoft Corporation | Remoting features |
US7222152B1 (en) | 2001-10-01 | 2007-05-22 | Microsoft Corporation | Generic communications framework |
US7213236B2 (en) | 2001-11-30 | 2007-05-01 | Intrinsyc Software International, Inc. | Method of bridging between .Net and Java |
US7072807B2 (en) | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US8001142B2 (en) * | 2003-04-02 | 2011-08-16 | Oracle America, Inc. | Distributed data system with incremental data updates |
JP2004312413A (ja) * | 2003-04-08 | 2004-11-04 | Sony Corp | コンテンツ提供サーバ、情報処理装置、および方法、並びにコンピュータ・プログラム |
US7685253B1 (en) * | 2003-10-28 | 2010-03-23 | Sun Microsystems, Inc. | System and method for disconnected operation of thin-client applications |
US20050108481A1 (en) * | 2003-11-17 | 2005-05-19 | Iyengar Arun K. | System and method for achieving strong data consistency |
US7885978B2 (en) * | 2004-07-09 | 2011-02-08 | Microsoft Corporation | Systems and methods to facilitate utilization of database modeling |
US7693994B2 (en) | 2004-09-17 | 2010-04-06 | Ricoh Company, Ltd. | Intermediary apparatus, distributed processing system, data-transfer method, program and recording medium |
US7461134B2 (en) | 2004-11-19 | 2008-12-02 | W.A. Krapf, Inc. | Bi-directional communication between a web client and a web server |
US8060864B1 (en) * | 2005-01-07 | 2011-11-15 | Interactive TKO, Inc. | System and method for live software object interaction |
AU2010201379B2 (en) * | 2010-04-07 | 2012-02-23 | Limelight Networks, Inc. | System and method for delivery of content objects |
US8572033B2 (en) * | 2008-03-20 | 2013-10-29 | Microsoft Corporation | Computing environment configuration |
CN101547212B (zh) * | 2008-03-29 | 2012-09-05 | 华为技术有限公司 | 一种分布式对象的调度方法和系统 |
US9369357B2 (en) * | 2010-02-03 | 2016-06-14 | Symantec Corporation | Method, system, and computer readable medium for remote device management |
AU2010202782B1 (en) * | 2010-07-01 | 2010-11-25 | Brightcove Inc. | Cloud data persistence engine |
-
2011
- 2011-03-29 US US13/074,260 patent/US8856171B2/en active Active
-
2012
- 2012-03-16 WO PCT/US2012/029318 patent/WO2012134827A2/en active Application Filing
- 2012-03-28 CN CN201210086671.5A patent/CN102843411B/zh active Active
-
2014
- 2014-09-08 US US14/479,988 patent/US10936693B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172102A (zh) * | 2017-07-13 | 2017-09-15 | 上海联影医疗科技有限公司 | 数据访问方法、系统以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20120254239A1 (en) | 2012-10-04 |
CN102843411B (zh) | 2018-12-07 |
WO2012134827A2 (en) | 2012-10-04 |
US20140379865A1 (en) | 2014-12-25 |
WO2012134827A3 (en) | 2012-12-27 |
US8856171B2 (en) | 2014-10-07 |
US10936693B2 (en) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Van Steen et al. | A brief introduction to distributed systems | |
US9077717B2 (en) | Propagation and adoption of extensions across applications in networked solutions | |
Bellavista et al. | The handbook of mobile middleware | |
Al-Jaroodi et al. | Service-oriented middleware: A survey | |
JP2020017948A (ja) | ブロックチェーンネットワークに基づくアプリケーション実現方法、装置、デバイス及び記憶媒体 | |
Veijalainen et al. | Transaction management for m-commerce at a mobile terminal | |
CN108965468A (zh) | 区块链网络服务平台及其链码安装方法、存储介质 | |
US20090094339A1 (en) | Methods and apparatus for widget sharing between content aggregation points | |
Gaddah et al. | A survey of middleware paradigms for mobile computing | |
US20100153530A1 (en) | Network-based application late binding | |
Espada et al. | Modeling architecture for collaborative virtual objects based on services | |
Tripathi et al. | Experiences and future challenges in mobile agent programming | |
CN102843411A (zh) | 在分布式网络中定位并执行对象 | |
Dipsis et al. | A RESTful middleware for AI controlled sensors, actuators and smart devices | |
Kumar et al. | Handbook of Mobile Systems Applications and Services | |
Plebani et al. | MicroMAIS: executing and orchestrating Web services on constrained mobile devices | |
Lee et al. | Itinerary-based mobile agent as a basis for distributed OSGi services | |
Horng et al. | An agent-based smart home system and its service-scheduling mechanism: Design and implementation | |
Canfora et al. | Sip2share-a middleware for mobile peer-to-peer computing | |
Fernando | Building Enterprise Software Systems with Microservice Architecture | |
Bainomugisha et al. | Bringing Scheme programming to the iPhone—Experience | |
Romero | Context as a Resource: A Service-Oriented Approach for Context-Awareness | |
CN117411877A (zh) | 基于边缘计算的应用交付方法、系统、设备及存储介质 | |
Pratistha et al. | Improving operational efficiency of web services with mobile agent technology | |
Boix et al. | Scripting mobile devices with ambienttalk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150728 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150728 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |