CN102591710A - 共享对象表示 - Google Patents
共享对象表示 Download PDFInfo
- Publication number
- CN102591710A CN102591710A CN2011104442360A CN201110444236A CN102591710A CN 102591710 A CN102591710 A CN 102591710A CN 2011104442360 A CN2011104442360 A CN 2011104442360A CN 201110444236 A CN201110444236 A CN 201110444236A CN 102591710 A CN102591710 A CN 102591710A
- Authority
- CN
- China
- Prior art keywords
- broker
- runtime environment
- computer
- pipeline
- object broker
- 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
- 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/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及共享对象表示。本文描述了用于在一个或多个运行时环境之间共享对象表示的概念和技术。根据本文公开的概念和技术,定义对象的逻辑包括对一个或多个对象代理的引用。定义对象代理的逻辑可包括对与该对象代理相对应的至少一个对象的引用。在生成与对象代理相关联的对象引用时,该对象引用被路由至与该对象代理相对应的对象。根据各种实现,经由访问对象代理来访问对象。因此,对象对于对象代理所驻留的运行时环境可显得是本地的。在一些实施例中,管道将对象引用从对象代理转换至对象,并使得运行时环境之间能够通信。对象也可被一个以上对象代理引用。
Description
技术领域
本发明涉及对象表示,尤其涉及共享对象表示。
背景技术
在面向对象的编程中,类是一种构造,其用作蓝图(或模板)以创建那个类的实例,这些实例被称为对象。类描述该类的对象共享的状态和行为。类用属性来描述对象的状态,属性也被称为成员变量或实例变量。类用可重用代码调用的方法来描述对象的行为。
因此,类可被描述为描述状态和行为的元数据包。类具有描述该类和对象如何经由方法来交互的接口、以及定义对象中的数据如何被划分成属性的结构。类也可具有被称为运行时的元对象的表示,其为操纵类相关元数据提供支持。
对象可在运行时环境中被编组在一起,且可被隔离以免被其他软件或运行时环境访问。虽然对象可被隔离以免被其他软件访问,但在一些实例中,可允许访问这些对象。例如,可允许其他软件经由调用已被配置成允许由其他软件调用的该对象的过程或函数来访问这些对象。因此,这些对象能够处理数据并支持来自其他对象的方法调用,但不能与其他运行时环境共享。由于对象的独立性,简化了对象的管理以及对象使用的跟踪。
然而,在面向对象的编程模型中,代码在运行时环境之间的共享和再循环可能是困难的。具体地,由于与对象相对应的数据可能是特定运行时环境专用的,因此在运行时环境之间共享这些对象可能是困难的或是不可能的。因此,面向对象的编程模型关于管理和跟踪提供了益处,但可能关于在软件和/或运行时环境之间再循环和共享对象提出了挑战。
本文所做出的本公开正是关于这些和其他考虑事项而提出的。
发明内容
本文描述用于共享对象表示的概念和技术。根据本文公开的概念和技术,存在或创建与一个运行时环境相关联的对象。还创建引用该对象的对象代理。定义对象代理的逻辑可标识与该对象代理相关联的对象、该对象所驻留的运行时环境、以及用于访问该对象的信息。类似地,定义对象的逻辑可标识与该对象相关联的一个或多个对象代理。因此,当在运行时环境中引用对象代理时,该对象引用可被路由至由定义该对象代理的逻辑所标识的对象。从特定运行时环境的角度而言,对象代理对于该运行时环境而言是本地的,尽管与该对象代理相对应的对象可能实际上驻留在不同的运行时环境中。
根据一方面,管道管理在两个或多个运行时环境之间共享对象表示。若运行时环境引用对象代理,则该管道将该对象引用路由至另一运行时环境中的对象,并基于该对象引用就像该对象直接被该运行时环境引用那样提供对象实现。在一些实现中,该管道存储或访问转换数据,该转换数据定义对象与对象代理之间的关系和/或如何使得运行时环境之间能够通信。用于标识对象和/或对象代理的转换数据可基于定义对象和/或对象代理的逻辑来生成。
应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图说明
图1是示出用于本文所公开的各实施例的示例性操作环境的系统图。
图2是示出根据示例性实施例的用于共享对象表示的方法的各方面的流程图。
图3是示出根据示例性实施例的用于共享对象表示的另一方法的各方面的流程图。
图4是示出能够实现本文所提出的实施例的各方面的计算系统的示例性计算机硬件和软件架构的计算机架构图。
具体实施方式
以下详细描述针对用于共享对象表示的概念和技术。根据本文描述的概念和技术,存在或创建与一个或多个运行时环境相关联的对象和/或对象代理。定义对象代理的逻辑可标识与该对象代理相关联的对象、这些对象所驻留的运行时环境、以及用于访问这些对象的信息。类似地,定义对象的逻辑可标识与这些对象相关联的一个或多个对象代理、这些对象代理所驻留的运行时环境、以及用于访问这些对象代理的信息。
若运行时环境中引用了对象代理,则该对象引用可被路由至由定义该对象代理的逻辑所标识的对象。从运行时环境的角度而言,对象代理是该运行时环境本地的对象,尽管与对象代理相对应的对象可能驻留在不同的运行时环境中。因此,对象代理可用于允许运行时环境在运行时调用关于与其他运行时环境相关联的对象的方法以及将参数传递至与其他运行时环境相关联的对象。
尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施本文描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。
在以下详细描述中,参考了构成详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。现在参考附图(贯穿若干附图中,相同的标号表示相同的元素),将提出用于共享对象表示的计算系统、计算机可读存储介质和计算机实现的方法的各方面。
现在参考图1,将描述用于本文所提出的各实施例的一个操作环境100的各方面。操作环境100包括两个运行时环境102A、102B,其在下文被统称为运行时环境102。运行时环境102包括用于执行面向对象的程序的硬件和软件,并且包括但不限于操作系统、应用程序、虚拟机等等。在一个实施例中,运行时环境102之一包括操作系统,而运行时环境102中的另一个包括应用程序。在另一实施例中,运行时环境之一包括第一应用程序,诸如来自美国华盛顿州雷德蒙德市的微软公司的MICROSOFT DYNAMICS产品系列的成员,而运行时环境中的另一个包括托管代码环境,诸如.NET环境。应当理解,这些实施例是示例性的,而不应被解释为以任何方式构成限制。
根据各实施例,运行时环境102被配置成与或经由通信网络104(“网络”)通信。根据各实施例,运行时环境102被配置为面向对象的环境。因此,尽管未在图1中示出,但是应当理解,运行时环境102可包括用于管理对象106A、106B(下文统称为对象106)的基础结构。用于管理对象106的基础结构可用于在对象寿命(从创建到回收)的任何部分期间管理对象106。对象106基本上类似于面向对象的编程环境中在传统上使用或表示的对象。因此,为简明起见,本文不进一步描述对象106。
运行时环境102还可包括用于管理对象代理108A、108B(下文统称为对象代理108)的基础结构。在运行时环境102中创建对象代理108,并以与在运行时环境102中访问本地对象(诸如对象106)的方式类似的方式在运行时环境102中访问对象代理108。然而,对象代理108实际上引用其他运行时环境102中的对象106。因此,当在运行时环境102中访问对象代理108时,对该对象代理108的引用或访问被转换至另一运行时环境102中的对象106。
根据各实施例,对象代理108经由代码被绑定到对象106。因此,一个运行时环境102中的对象106与另一运行时环境102共享而无需实际上再产生对象106。对象代理108无需包含其自己的任何状态。在调用对象代理108时,依赖与对象代理108相关联的对象106的状态。更具体地,在关于对象代理108调用方法时,该方法调用可被路由至该另一运行时环境102中的相应对象106。
可由程序员或开发者和/或经由其他手段来创建或编码对象代理108。在一些实施例中,以与创建或编码对象106的方式基本类似的方式来创建或编码对象代理108。在其他实施例中,经由配置成用于基于用户或设备输入来生成用于对象代理108的代码的一个或多个用户或设备接口生成对象代理108。根据各实施例,与对象代理108相对应的代码包括对其他运行时环境102中的对象106的引用和/或指示如何转换对对象代理108的访问或引用以使得对相应对象106能够访问或引用的逻辑。因此,与特定对象代理108相关联的逻辑可指示可如何经由访问第二运行时环境中的对象代理108来访问第一运行时环境102中的对象106。在所示实施例中,例如,与运行时环境102A中表示的对象代理108A相对应的逻辑可包括对运行时环境102B中表示的对象106B的一个或多个引用。类似地,与运行时环境102B中的对象代理108B相对应的逻辑可包括对运行时环境102A中表示的对象106A的一个或多个引用。虽然无需在图1中示出,但是运行时环境102可包括用于创建、管理、使用、以及安排对象106和对象代理108的基础结构,诸如硬件和/或软件。
运行时环境102还可包括应用编程接口(“API”)110A、110B,其在下文统称为API 110。API 110包括用于允许运行时环境102以及网络、环境、设备、系统、和/或其他实体之间的通信的一个或多个接口。在一些实施例中,运行时环境102A与运行时环境102B之间的通信经由各自相应的API 110和网络104发生。该实施例是示例性的,并且不应当被解释为以任何方式构成限制。
在一些实施例中,操作环境100还包括在网络104上运行或与网络104通信的管道112。根据各实施例,管道112的功能由一个或多个个人计算机(“PC”)、服务器计算机、和/或配置成执行一个或多个应用的硬件来提供。在所示实施例中,管道112的功能由配置成执行操作系统(未示出)以及一个或多个应用程序的服务器计算机来提供。应该理解,该实施例是示例性的,并且不应被解释为以任何方式构成限制。
虽然图1中所示的操作环境100示出了分开实施的运行时环境102和管道112,但是应理解,运行时环境102和管道112中的一个或多个或者全部可驻留在单个设备或设备组合中和/或由单个设备或设备组合来执行。例如,在一个实施例中,运行时环境102A是计算机的操作系统,而运行时环境102B包括用于提供.NET、JAVA、CGI或者其他代码或脚本的虚拟机实现的环境,诸如软件和/或硬件。同时,若期望,管道112的功能可由在相同设备上执行的软件应用来提供。因此,应该理解,所示实施例是示例性的,并且不应被解释为以任何方式构成限制。
操作系统是用于控制管道112的操作的计算机程序,且应用程序在操作系统之上执行以提供本文描述的用于共享对象表示的功能。应用程序包括但不必限于通信模块114和转换模块116。尽管通信模块114和转换模块116被示为管道112的组件,但是应当理解,这些组件中的每个或其组合可以实施为在网络104和/或管道112上操作或者与网络104和/或管道112通信的独立设备或其组件,或者实施在这些独立设备或其组件中。因此,所示实施例是示例性的,并且不应该被解释为以任何方式构成限制。
通信模块114由管道112执行以使得运行时环境102以及一个或多个网络、设备、应用等等之间能够通信,如本文中更详细地描述的。更具体地,通信模块114可由管道112执行以使管道112基于对对象106和/或对象代理108的访问来确定和/或使得运行时环境102之间能够通信。通信模块114被配置成识别哪些API 110是可用的和/或可用于允许访问运行时环境102中的对象106或对象代理108。因此,当在运行时环境102之一中访问对象代理108时,通信模块114被配置成描述可如何访问与所访问的对象代理108相对应的对象106。此外,通信模块114可经由API 110和/或经由其他手段来使得运行时环境102之间能够通信。
转换模块116由管道112执行以将一个运行时环境102中的对象引用映射到另一运行时环境102。更具体地,当在一个运行时环境102中访问或引用对象代理108时,管道112被配置成执行转换模块116以标识另一运行时环境102中的相应对象106。将明白,转换模块116可将该标识基于与对象代理108相对应的逻辑,如本文中所解释的。附加地或替换地,转换模块116由管道112执行以标识与经更新的、所访问的、所创建的、或回收的对象106相对应的对象代理108以允许删除不需要的对象代理108。根据各实施例,管道112存储或访问转换数据118。转换数据118可由管道112使用或查询,以标识与已被访问、引用、更新、创建或回收的对象106或对象代理108相对应的对象106或对象代理108。
将明白,管道112由此经由执行通信模块114和转换模块116被配置成,识别一个运行时环境102中与对象106或对象代理108相关联的访问或引用、标识第二运行时环境102中的相应对象106或对象代理108、以及使得这些运行时环境102之间能够通信。虽然转换数据118被示为管道112的组件,但是应理解,若期望,转换数据118可被存储在独立设备中,诸如一个或多个数据库、服务器计算机、台式计算机、移动电话、膝上型计算机、存储器设备、和/或其他数据存储或计算设备。
图1示出了两个运行时环境102、一个网络104以及一个管道112。然而,应该理解,操作环境100的一些实现包括两个以上运行时环境102、多个网络104、以及多个管道112。因此,所示实施例应该被理解为示例性的,并且不应该被解释为以任何方式构成限制。
现在转到图2,将详细描述用于共享对象表示的方法200的各方面。应该理解,不一定按任何特定次序来呈现本文公开的方法的操作,并且以替换次序来执行一些或全部操作是可能的且是构想了的。为了易于描述和说明,按所示次序来呈现各操作。可以添加、省略和/或同时执行操作,而不脱离所附权利要求书的范围。
还应该理解,所示方法可以在任何时候结束并且不必完整地执行。本文公开的方法的一些或全部操作和/或基本上等效的操作可以通过执行计算机存储介质上所包括的计算机可读指令来执行,如上面定义的。如在说明书和权利要求书中使用的术语“计算机可读指令”及其变型,在本文是用来广泛地包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子产品、其组合等等。
因此,应该理解,本文所述的逻辑操作被实现为:(1)一系列计算机实现的动作或运行于计算系统上的程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,可以选择不同的实现。因此,本文描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑,以及其任何组合来实现。
出于说明和描述本公开的概念的目的,本文公开的方法被描述为由管道112来执行。应该理解,这些实施例是示例性的,并且不应被视为以任何方式构成限制。方法200始于操作202,其中在运行时环境102之一中创建对象106或对象代理108。根据一些实施例,在运行时环境102之一中创建对象106。如上所述,对象106的创建可以与在面向对象的环境中创建对象的方式基本类似的方式来完成。因此,不再更详细地描述对象106的创建。然而应理解,若期望,对象106可包括用于标识与对象106相关联的一个或多个对象代理108的逻辑。
根据其他实施例,操作202包括在运行时环境102之一中创建对象代理108。若期望,可以与创建对象106的方式基本类似的方式来创建对象代理108。在一些实施例中,用户、设备、或其他实体经由硬编码在运行时环境102中创建对象代理108。在其他实施例中,用户、设备或其他实体经由用户接口或通过恰当引用对象106自动地生成对象代理108的其他手段来创建对象代理108。如上所述,对象代理108包括对另一运行时环境102中的对象106的引用、对另一运行时环境102中的对象106的一个或多个引用、指示如何访问另一运行时环境102中的对象106的信息、和/或其他信息。这些信息中没有信息、这些信息中的一些信息,或这些信息中的所有信息可被存储为以上描述的转换数据118。
方法200从操作202前进至操作204,其中管道112确定操作202中创建的对象是对象106还是对象代理108。若管道112在操作204中确定操作202中创建的对象是对象代理108,则方法200前进至操作206。在操作206中,管道112标识与对象代理108相对应的对象106,并生成以上描述的用于标识与所创建的对象代理108相对应的对象106的转换数据118。如上所述,与对象代理108相对应的逻辑可包括用于标识对象106的信息以使得在运行时将对对象代理108的引用能够转换成对对象106的引用。
因此,管道112可被配置成提取该信息并将该信息存储为转换数据118。在其他实施例中,操作206包括管道112生成用于将与对象代理108相关联的对象引用映射到相应对象106的信息、以及用于使得运行时环境102之间能够通信的信息。管道112可将转换数据118存储在管道112上和/或存储在管道112能访问的数据存储位置。
若管道112在操作204中确定操作202中创建的对象是对象106,则方法200前进至操作208,其中管道112标识引用对象106的任何对象代理108(若有)。若期望,管道112可标识任何此类引用并将其存储为转换数据118。因此,如以上解释的,对象106的任何改变可被传播到相应的对象代理108,以确保对象代理是对象106的准确表示。方法200从操作206和208前进至操作210。方法200在操作210处结束。
现在转到图3,将详细描述用于共享对象表示的另一方法300的各方面。方法300始于操作302,其中管道112检测对象引用。根据各实施例,由管道112检测到的对象引用可对应于与对象106或对象代理108相关联的引用。此外,由管道112检测到的引用可包括方法调用、参数的传递、对象106的创建、对象106或对象代理108的回收等等。如以上解释的,对象代理108可被编码成在被调用或引用时引起经由管道112的通信。因此,管道112可经由监视对象106和/或对象代理108、经由管道112检测到的通信等来知晓对象引用。
方法300从操作302前进至操作304,其中管道112确定被引用的对象是对象106还是对象代理108。如上所述,管道112可基于监视信息、检测通信、和/或经由其他手段来确定在操作302中检测到何种类型的引用。若期望,管道112还可访问或查询转换数据118,以确定被引用的对象是对象106还是对象代理108。
若管道112在操作304中确定被引用的对象是对象代理108,则方法300前进至操作306,其中管道112将该对象引用转换至与对象代理108相对应的对象106。如上所述,在一些实施例中,若期望,管道112可经由访问或查询转换数据118来标识相应的对象106。附加地或替换地,管道112可检查与对象代理108相对应的逻辑以标识相应对象106。
管道112,经由转换模块116的执行,基于对象代理逻辑108和/或转换数据118将对象代理108转换至或映射到对象106。根据各种实现,管道112执行通信模块114以:确定可如何完成运行时环境102之间的通信、以及基于所确定的信息来使得运行时环境102之间能够通信。在一些实施例中,例如,管道112确定可用于在运行时环境102之间通信的任何API 110或其他接口或网络。因此,管道112可将一个运行时环境102中与对象代理108相关联的对象引用映射到另一运行时环境102中的对象106,并确定可如何完成这些运行时环境102之间的通信。
方法300从操作306前进至操作308,其中管道112通过使得这两个运行时环境102之间能够通信来提供对象实现。因此,管道112经由访问对象代理108来使得对对象106能够访问。应当明白,根据本文公开的概念和技术的各种实现,在一个运行时环境102中访问的对象代理108可以就像该对象代理108是该运行时环境102本地的对象那样被该运行时环境102访问。此外,应理解,运行时环境102能够经由对象代理108、API 110和管道112无缝地访问对象106,就像对象106驻留在对象代理108所驻留的运行时环境102中一样。
方法300从操作308、以及若管道112确定被引用的对象不是代理则从操作304前进至操作310。方法300在操作310处结束。虽然已参考对象代理108描述了方法300,但是应理解,也可关于对对象106的引用使用方法300。因此,方法300可由管道112执行以实现对象106和/或对象代理108。尽管未在图3中示出,应理解,若管道112在操作304中确定对象106已被引用,则对象106的实现可以在对象106所驻留的运行时环境102内以基本正常的方式进行。
图4示出了能够执行本文所描述的用于共享对象表示的软件组件的设备的示例性计算机架构400。因此,图4中所示的计算机架构400示出了用于服务器计算机、移动电话、PDA、智能电话、服务器计算机、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。计算机架构400可用于执行本文所呈现的软件组件的任何方面。
图4所示的计算机架构400包括中央处理单元402(“CPU”)、包括随机存取存储器406(“RAM”)和只读存储器(“ROM”)408在内的系统存储器404、以及将存储器404耦合至CPU 402的系统总线410。基本输入/输出系统被存储在ROM 408中,该系统包含帮助诸如在启动期间在计算机架构400中的元件之间传送信息的基本例程。计算机架构400还包括用于存储操作系统414、通信模块114、转换模块116、以及转换数据118的大容量存储设备412。
大容量存储设备412通过连接至总线410的大容量存储控制器(未示出)连接到CPU 402。大容量存储设备412及其相关联的计算机可读介质为计算机架构400提供非易失性存储。虽然本文包含的对计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机架构400访问的任何可用计算机存储介质或通信介质。
通信介质包括诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何传递介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包括在计算机可读介质的范围之内。
作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机架构400访问的任何其他介质。为了权利要求书的目的,短语“计算机存储介质”及其变型不包括波、信号和/或其他瞬态和/或无形通信介质本身。
根据各实施例,计算机架构400可以使用通过诸如网络104之类的网络到远程计算机的逻辑连接来在联网环境中操作。计算机架构400可以通过连接至总线410的网络接口单元416来连接到网络104。应当明白,网络接口单元416还可以被用来连接到其它类型的网络和远程计算机系统,例如,客户端设备118。计算机架构400还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器418,这些设备包括键盘、鼠标或者电子指示笔(未在图4中示出)。类似地,输入/输出控制器418可以向显示屏、打印机或其他类型的输出设备(也未在图4中示出)提供输出。
应当理解,本文所描述的软件组件在被加载到CPU 402中并被执行时可以将CPU 402和总体计算机架构400从通用计算系统变换成为被定制为促进本文提出的功能的专用计算系统。CPU 402可从任何数目的晶体管或其它分立电路元件中构造,这些元件可以独立地或集体地呈现任何数目的状态。更具体而言,CPU 402可以响应于包含在本文所公开的软件模块中的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU 402如何在各状态之间转移来变换CPU 402,由此变换了构成CPU 402的晶体管或其它分立硬件元件。
对本文所提出的软件模块的编码也可变换本文所提出的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体变换可取决于各种因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储器还是辅存储器等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换半导体存储器的物理状态而编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可变换这些组件的物理状态以在其上存储数据。
作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术来实现。在这些实现中,本文所提出的软件可以在其中编码了软件时变换磁或光介质的物理状态。这些变换可以包括改变给定磁性介质内的特定位置的磁性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况下,物理介质的其他转换也是可以的,前面提供的示例只是为了便于此讨论。
鉴于以上内容,应当理解,在计算机架构400中发生许多类型的物理变换以便存储并执行本文所提出的软件组件。还应当理解,计算机架构400可以包括其它类型的计算设备,包括:手持式计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员已知的其它类型的计算设备。还可以构想的是,计算机架构400可以不包括图4所示的全部组件,可以包括未在图4中明确示出的其它组件,或者可利用完全不同于图4所示的架构。
基于上述内容,应当明白,本文已经公开了用于共享对象表示的技术。尽管用对计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质专用的语言描述了本文所提出的主题,但可以理解,所附权利要求书中定义的本发明不必限于本文所述的具体特征、动作或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对本文所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。
Claims (10)
1.一种计算机实现的用于共享对象表示的方法,所述计算机实现的方法包括执行计算机实现的操作,用于:
在管道(112)处,检测与第一运行时环境(102)相关联的对象引用;
确定所述对象引用是与对象(106)还是与对象代理(108)相关联;
响应于确定所述对象引用与所述对象代理(108)相关联,标识与所述对象代理(108)相关联的对象(106);以及
将所述对象引用转换至与所述对象代理(108)相关联的所述对象(106)。
2.如权利要求1所述的方法,其特征在于,标识与所述对象代理相关联的对象包括访问转换数据以获得标识所述对象的信息。
3.如权利要求1所述的方法,其特征在于,关于所述对象代理调用的方法被路由至与所述对象代理相关联的所述对象,所述对象与第二运行时环境相关联。
4.如权利要求1所述的方法,其特征在于,定义所述对象代理的逻辑包括标识与所述对象代理相对应的所述对象的数据。
5.如权利要求1所述的方法,其特征在于,将所述对象引用转换至所述对象包括将所述对象引用从所述对象代理路由至所述对象。
6.如权利要求2所述的方法,其特征在于,所述转换数据包括将所述对象与所述对象代理相关联的信息。
7.如权利要求6所述的方法,其特征在于,对象引用包括方法调用,且其中提供所述对象实现包括将所述方法调用从所述对象代理路由至所述对象,所述对象与第二运行时环境相关联。
8.如权利要求1所述的方法,其特征在于,还包括响应于确定所述对象引用与所述对象相关联,实现所述对象引用,其中定义所述对象的逻辑包括标识与所述对象相关联的一个或多个对象代理的数据。
9.如权利要求8所述的方法,其特征在于,还包括:
响应于检测所述对象的更新,访问转换数据以标识所述对象代理;以及
更新所述对象代理以反映所述对象的所述更新。
10.一种其上存储有计算机可读指令的计算机存储介质,所述指令在由计算机执行时使得所述计算机:
在管道(112)处,生成标识第一运行时环境(102A)中的对象代理(108A)与第二运行时环境(102B)中的对象(106B)之间的关联的转换数据(118);
在所述管道(112)处,检测在所述第一运行时环境(102A)中生成的方法调用;
确定所述方法调用是与所述第一运行时环境(102A)中的对象(106A)还是与所述对象代理(108A)相关联,所述对象代理(108A)与所述第二运行时环境(102B)中的对象(106B)相关联;
响应于确定所述方法调用与所述对象代理(108)相关联,标识与所述对象代理(108A)相关联的所述对象(106B);
将所述方法调用转换至与所述对象代理(108A)相关联的所述对象(106B);
确定所述第一运行时环境(102A)与所述第二运行时环境(102B)之间的通信路径,所述通信路径包括一个或多个应用编程接口(110);以及
将所述方法调用从所述对象代理(108A)转换至所述第二运行时环境(102B)中的所述对象(106B)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/969,590 | 2010-12-16 | ||
US12/969,590 US20120159515A1 (en) | 2010-12-16 | 2010-12-16 | Sharing object representations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591710A true CN102591710A (zh) | 2012-07-18 |
CN102591710B CN102591710B (zh) | 2015-11-25 |
Family
ID=46236267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110444236.0A Active CN102591710B (zh) | 2010-12-16 | 2011-12-15 | 共享对象表示 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120159515A1 (zh) |
CN (1) | CN102591710B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683992A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 用于管理对象的方法和装置 |
CN110058859A (zh) * | 2018-01-18 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 程序运行及虚拟机实例的实现方法、装置、设备及介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671245B2 (en) | 2017-03-29 | 2020-06-02 | Microsoft Technology Licensing, Llc | Collection and control of user activity set data and activity set user interface |
US10732796B2 (en) | 2017-03-29 | 2020-08-04 | Microsoft Technology Licensing, Llc | Control of displayed activity information using navigational mnemonics |
US10853220B2 (en) | 2017-04-12 | 2020-12-01 | Microsoft Technology Licensing, Llc | Determining user engagement with software applications |
US10693748B2 (en) | 2017-04-12 | 2020-06-23 | Microsoft Technology Licensing, Llc | Activity feed service |
US11580088B2 (en) | 2017-08-11 | 2023-02-14 | Microsoft Technology Licensing, Llc | Creation, management, and transfer of interaction representation sets |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083483A1 (en) * | 2002-10-29 | 2004-04-29 | Nobuyuki Yamamoto | Method for generating calling convention transformation process |
US20060136873A1 (en) * | 2004-12-20 | 2006-06-22 | Klaus Herter | Application development performed independent of system landscape |
CN1808434A (zh) * | 2006-01-26 | 2006-07-26 | 无锡永中科技有限公司 | 基于对象存储库的对象引用方法 |
CN1902589A (zh) * | 2004-01-12 | 2007-01-24 | 国际商业机器公司 | 在数据处理网络中与远程对象进行通信 |
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
CN101102257A (zh) * | 2006-07-08 | 2008-01-09 | 国际商业机器公司 | 传输数据对象的方法和装置 |
US20080066081A1 (en) * | 2003-10-21 | 2008-03-13 | Gemstone Systems, Inc. | Object monitoring system in shared object space |
US20090025009A1 (en) * | 2007-07-18 | 2009-01-22 | Frank Brunswig | Co-execution of objects from divergent runtime environments |
CN101739297A (zh) * | 2010-01-21 | 2010-06-16 | 上海交通大学 | 普适服务动态更新中服务对象状态转移系统及其方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69126857T2 (de) * | 1991-01-18 | 1998-01-08 | Ibm | Objektorientierte Programmierungsplattform |
US20020032783A1 (en) * | 1999-12-30 | 2002-03-14 | Tuatini Jeffrey T. | Shared service funtionality invocation |
US7100149B1 (en) * | 2002-04-26 | 2006-08-29 | Ciena Corporation | Apparatus and generic method for interfacing with managed objects in a communication network |
US8549516B2 (en) * | 2008-12-23 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for controlling, by a hypervisor, access to physical resources |
US8285925B1 (en) * | 2009-07-31 | 2012-10-09 | Amazon Technologies, Inc. | Management of object mapping information corresponding to a distributed storage system |
-
2010
- 2010-12-16 US US12/969,590 patent/US20120159515A1/en not_active Abandoned
-
2011
- 2011-12-15 CN CN201110444236.0A patent/CN102591710B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083483A1 (en) * | 2002-10-29 | 2004-04-29 | Nobuyuki Yamamoto | Method for generating calling convention transformation process |
US20080066081A1 (en) * | 2003-10-21 | 2008-03-13 | Gemstone Systems, Inc. | Object monitoring system in shared object space |
CN1902589A (zh) * | 2004-01-12 | 2007-01-24 | 国际商业机器公司 | 在数据处理网络中与远程对象进行通信 |
CN1989489A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
US20060136873A1 (en) * | 2004-12-20 | 2006-06-22 | Klaus Herter | Application development performed independent of system landscape |
CN1808434A (zh) * | 2006-01-26 | 2006-07-26 | 无锡永中科技有限公司 | 基于对象存储库的对象引用方法 |
CN101102257A (zh) * | 2006-07-08 | 2008-01-09 | 国际商业机器公司 | 传输数据对象的方法和装置 |
US20090025009A1 (en) * | 2007-07-18 | 2009-01-22 | Frank Brunswig | Co-execution of objects from divergent runtime environments |
CN101739297A (zh) * | 2010-01-21 | 2010-06-16 | 上海交通大学 | 普适服务动态更新中服务对象状态转移系统及其方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683992A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 用于管理对象的方法和装置 |
CN109683992B (zh) * | 2017-10-18 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 用于管理对象的方法和装置 |
CN110058859A (zh) * | 2018-01-18 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 程序运行及虚拟机实例的实现方法、装置、设备及介质 |
CN110058859B (zh) * | 2018-01-18 | 2023-09-08 | 斑马智行网络(香港)有限公司 | 程序运行及虚拟机实例的实现方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102591710B (zh) | 2015-11-25 |
US20120159515A1 (en) | 2012-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150293764A1 (en) | Method and system to compose and execute business rules | |
US20160350435A1 (en) | System and method for data-driven web page navigation control | |
CN102591645B (zh) | 对数据的基于元数据的事件支持操作 | |
CN102591710B (zh) | 共享对象表示 | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
US20200409665A1 (en) | Systems and Methods for Seamlessly Integrating Multiple Products by Using a Common Visual Modeler | |
CN103718155A (zh) | 运行时系统 | |
CN102707982A (zh) | 托管汇编件的增量式生成 | |
US8200710B2 (en) | System and method for runtime rendering of web-based user interfaces for master data management | |
CN102236578A (zh) | 分布式工作流执行 | |
CN102292736A (zh) | 利用合成容器的协作环境项目可扩展性 | |
CN102810057A (zh) | 一种记录日志的方法 | |
CN101965561A (zh) | 用于异步方法的声明性支持 | |
US20170168860A1 (en) | Dynamically binding data in an application | |
CN102999545A (zh) | 高效提供相同类型的多个元数据表示 | |
CN102693154A (zh) | 动态惰性类型系统 | |
CN102419709A (zh) | 基于元数据的事件化 | |
CN102567044A (zh) | 代码部署协助 | |
CN102203767A (zh) | 重新配置模型 | |
US9836282B2 (en) | Separation of concerns between information technology services models | |
US11727456B2 (en) | Generating a quote to cash solution | |
CN102142025B (zh) | 构成带有链接的自动创建的视图 | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN102859512A (zh) | 可远程处理的项目 | |
KR101734306B1 (ko) | 멀티 프로그램 코드 자동 개발 시스템 |
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: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |