CN1777154A - 用于对应用组件的接口的方法和系统 - Google Patents
用于对应用组件的接口的方法和系统 Download PDFInfo
- Publication number
- CN1777154A CN1777154A CN200510115132.XA CN200510115132A CN1777154A CN 1777154 A CN1777154 A CN 1777154A CN 200510115132 A CN200510115132 A CN 200510115132A CN 1777154 A CN1777154 A CN 1777154A
- Authority
- CN
- China
- Prior art keywords
- class
- application
- interface
- mentioned
- remote agent
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
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)
- Multi Processors (AREA)
Abstract
本发明提供了一种方法、系统和制造物品,其中第一应用和第二应用在节点的第一进程空间中执行,其中第三应用能够在第二进程空间中执行。由远程代理类提供对第一、第二和第三应用的公用接口。通过从公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
Description
技术领域
本公开涉及用于对应用组件的接口的方法、系统以及制造物品。
背景技术
一个网络可包括通过通信链路彼此通信的诸如计算系统、存储服务器等节点的集合。存在许多类型的网络,包括局域网(LAN)、广域网(WAN)、内联网、因特网、存储区域网络(SAN)等。在SAN中可包括存储服务器和存储设备的高速子网,其中存储服务器可提供或控制对存储设备中可能存储的数据的访问。例如,IBM*TotalStorage*Enterprise StorageServer*(ESS)可以用作SAN环境中的存储服务器。
在具有多个节点的网络环境中,每一节点可具有为该节点管理进程间通信的至少一个组件。该组件可称为消息路由器或进程间通信组件。
进程间通信组件可使用远程过程调用。远程过程调用允许一个节点上的程序调用位于其他节点上的过程。例如,当第一节点的进程调用第二节点上的过程时,可将第一节点上的调用进程挂起,而被调用过程的执行可发生在第二节点上。可从调用方进程经由参数向被调用过程发送信息,并且可经由过程结果向调用方进程返回信息。
远程过程调用是基于过程或方法的,并且可能需要多个调用以获得多个属性。例如,如果一个类具有属性A、B和C,这三个属性具有对应的方法getA()、getB()和getC(),则可能需要三个远程调用以得到属性A、B和C。
发明内容
本发明提供了一种方法、系统和制造物品,其中第一应用和第二应用在节点的第一进程空间中执行,其中第三应用能够在第二进程空间中执行。由远程代理类提供对第一、第二和第三应用的公用接口。通过从公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
在一些实施例中,上述节点包括在网络中,该网络包括多个节点,其中第一应用是进程间通信组件,其中第二和第三应用包括在执行于该节点上的多个软件组件中,以及其中该进程间通信组件允许该多个软件组件与该网络的其他节点进行通信。在另外的实施例中,上述网络是存储区域网络,其中上述节点是在该存储区域网络中实现的第一存储服务器,其中上述进程间通信组件是第一消息路由器,其中第一存储服务器和第二存储服务器包括存储设备,以及其中第一存储服务器上的第一消息路由器和第二存储服务器上的第二消息路由器允许分布于第一和第二存储服务器上的数据的冗余存储。
在另外的实施例中,第三应用的所有属性由对上述公用接口的单个调用从该公用接口提取出。
在另外的实施例中,第一应用是消息路由器,其中该消息路由器与第二应用经由实现接口进行通信,其中第三应用与该消息路由器经由代理接口进行通信,以及其中该实现接口和代理接口是由从提供上述公用接口的上述远程代理类导出的服务接口类的类工厂返回的。
在另外的实施例中,第三应用调用从上述远程代理类导出的服务接口类。该服务接口类的类工厂确定要被返回给第三应用的类的类型。服务接口远程代理类被返回给第三应用,其中第三应用使用该服务接口远程代理类与第一应用进行通信。
在另外的实施例中,第二应用调用从上述远程代理类导出的服务接口类。该服务接口类的类工厂确定要被返回给第二应用的类的类型。服务接口远程实现类被返回给第二应用,其中第二应用使用该服务接口远程实现类与第一应用进行通信。
在另外的实施例中,上述远程代理类是以面向对象的语言实现的类,其中提供上述公用接口的远程代理类允许第三应用通过代理接口与第一应用进行通信,该代理接口是经由从该远程代理类导出的至少一个类的类工厂提供的。
附图说明
现在参考附图,其中相同的参考标号代表相应的部分:
图1示出了根据一些实施例的计算环境的框图;
图2示出了根据一些实施例的计算环境的示例性节点中所包括的应用组件和消息路由器的框图;
图3示出了根据一些实施例的由应用组件和消息路由器使用的远程代理类的框图;
图4示出了根据一些实施例的远程代理类和服务接口类的框图,其中服务接口类使用类工厂向应用组件返回类;
图5示出了根据一些实施例的通过单个调用获得对象的所有属性的应用的框图;
图6示出了根据一些实施例的用于向应用组件和消息路由器提供公用接口的操作;
图7示出了根据一些实施例的用于将应用组件与服务接口类接口的操作;以及
图8示出了其中实现了一些实施例的系统。
具体实施方式
在下面的描述中,参照构成本说明书的一部分并且示出了一些实施例的附图。应该理解,可以使用其他的实施例并且可以实现结构和操作上的改变。
图1示出了根据某些实施例的计算环境100的框图。计算环境100包括通过网络106与管理控制台108通信的一个或多个存储设备102、104。
存储设备102、104可以由两个或更多节点组成。例如,存储设备102可以包括主映象服务器110和备用映象服务器112,并且存储设备104可以包括主映象服务器114和备用映象服务器116。在一些实施例中,备用映象服务器112和116可分别存储主映象服务器110和114的备份数据。在一些其他实施例中,节点110、112、114、116可以是ESS服务器。
在一些实施例中,节点108、110、112、114、116可以包括任何适合的计算设备,包括目前本领域中已知的设备,诸如存储服务器、服务器、个人计算机、工作站、主机、中型计算机、网络设备、掌上计算机、电话设备、刀片计算机、手持计算机等等。节点108、110、112、114、116可以作为网络106的节点而在计算环境110中使用,其中网络106可以包括任何适合的网络,包括目前本领域中已知的那些网络,诸如SAN、LAN、内联网、互联网、ESS网络等等。
因此,图1示出了一些实施例,其中可以包括存储服务器的多个节点108、110、112、114、116通过网络106相连接。多个节点108、110、112、114、116可以包括允许网络106的多个节点108、110、112、114、116之间的消息通信的多个应用组件和消息路由器。
图2示出了根据一些实施例的计算环境100的示例性节点200中所包括的多个应用组件和消息路由器的框图。
示例性节点200可以包括图1中示出的节点108、110、112、114、116中的任意一个节点。例如,在一些实施例中,示例性节点200可以是ESS服务器110。示例性服务器200包括多个应用组件202a...202m、204a...204n、以及消息路由器206。
在一些实施例中,消息路由器206是一种进程间通信组件,其能够通过网络106发送和接收消息。消息路由器206可以包括以软件、硬件、固件、或它们的任意组合实现的应用。在一些实施例中,消息路由器206可以是比某些应用组件202a...202m、204a...204n更加处理器和存储器敏感的应用,因为消息路由器206可能一直运行并且可能需要经常准备通过网络106发送和接收消息。在一些实施例中,当消息路由器206在示例性节点200中运行时,消息路由器206可属于第一进程空间208。在一些操作系统中,进程空间可包括构成该进程空间的进程树的进程标识符和父/子关系的池。
应用组件202a...202m、204a...204n属于两个不同组。第一组应用组件202a...202m和消息路由器206可属于第一进程空间208,也就是应用组件202a...202m和消息路由器206共享同一进程空间208。由于第一组应用组件202a...202m共享与消息路由器206相同的进程空间,所以当与不共享与消息路由器206相同的进程空间的应用组件相比较时,第一组应用组件能够以在处理时间和/或存储器使用方面更少的开销与消息路由器206进行通信。
第二组应用组件204a...204n能够在第二进程空间210中运行。然而,如果应用组件204a...204n在第二进程空间210中运行,那么对于应用组件204a...204n来说,当与应用组件202a...202m相比较时,用于与消息路由器206通信的处理开销要高。
一些实施例向第一组应用组件202a...202m和第二组应用组件204a...204n提供用于通信的公用接口。接口是一种设备或一种系统,不相关的实体可以使用它来彼此交互。在面向对象的程序设计系统中,接口是一种可允许不相关的对象彼此交互的设备或编程语言构造。接口可以声明期望实现一个或多个类的方法。在一些实施例中,接口能够揭示对象的编程接口,而不揭示该对象的类。在一些实施例中,可由远程代理类来提供公用接口,其是以诸如Java*编程语言的面向对象的程序设计语言实现的。
在一些实施例中,第一组应用组件202a...202m经由来源于远程代理类的实现接口212与消息路由器206交互。另外,第二组应用组件204a...204n经由来源于远程代理类的代理接口214与消息路由器206交互。
与不使用代理接口214而与消息路由器206进行通信相比较,第二组应用组件204a...204n能够使用更少数量的资源与消息路由器206进行通信。所节省的资源包括处理器时间和/或存储器量。
因此,图2示出了其中代理接口214允许一组应用组件204a...204n与消息路由器206进行通信的一些实施例,其中应用组件204a...204n和消息路由器206可在不同的进程空间中执行。
图3示出了根据一些实施例的两组应用组件202a...202m和204a...204n以及消息路由器206所使用的“远程代理”类300的框图。
“远程代理”类300向这两组应用202a...202m和204a...204n提供公用接口。在一些实施例中,可以以诸如Java编程语言的面向对象的语言来实现“远程代理”类300。从“远程代理”类300导出的类由应用组件202a...202m、204a...204n使用。
图4示出了根据一些实施例使用类工厂向应用组件202a...202m、204a...204n返回类的“远程代理”类300和“服务接口”类400的框图。
在称为“服务接口”类400的抽象类中定义了消息路由器206的接口,其中“服务接口”类400从“远程代理”类300导出。在不同的面向对象的语言中,用于命名和标识类的语法可能是不同的。然而,可以以任何合适的面向对象的程序设计语言来设计由“服务接口”类400和“远程代理”类300提供的功能。
图4示出了从“服务接口”类400导出的“服务接口远程实现”类402和“服务接口远程代理”类404。在面向对象的术语中,“服务接口远程实现”类402是“服务接口”方法的实现,而“服务接口远程代理”类404是“服务接口”类400的远程代理接口。
“服务接口远程实现”类402提供对消息路由器206的接口。“服务接口远程代理”类404中的方法可以调用“远程代理”类300中的方法,以获得期望的服务。
因此,图4示出了其中“远程代理”类300提供公用接口以由应用组件202a...202m、204a...204n使用的一些实施例。在一些实施例中,应用可以获得从图4所示的类导出的对象中所存储的属性。
图5示出了根据一些实施例的计算环境中的应用的框图,其中该应用经由单个调用获得对象的所有属性。在一些实施例中,该对象可以是诸如图4所示的类300、400、402或404的类的实例。
在一些实施例中,应用500可以访问对象502的属性,其中对象502是图4所示类300、400、402、404中任一个的实例。如果应用500请求(参考标号504)对象502的属性502a…502m,则由于引用的局部性的原理,很可能(参考标号506)应用500不久后也会请求对象502的属性504a...504n。在一些实施例中,如果经由从应用500对对象502的单个调用提取出所有属性502a...502m、504a...504n,则可以增进应用500的执行。
因此,图5示出了一些实施例,其中计算环境100中实现的应用500经由单个调用提取出对象502的所有属性并且与在多个组中提取属性的情况相比降低了处理时间需求。对象502可以代表作为计算环境100中提供的任一类300、400、402、404的实例的任何对象。在一些实施例中,在使用“远程代理”类300时,提取对象的所有属性。
图6示出了根据一些实施例的向应用组件202a...202m、204a...204n以及消息路由器206提供公用接口的操作。
在块600,控制开始,其中由以诸如Java编程语言的面向对象的程序语言编写的程序来提供“远程代理”类300。在一些实施例中,如果直接或间接基于“远程代理”类300的对象请求类属性,那么该对象以单个调用请求所有的类属性。在一些可选的实施例中,可能不以单个调用请求所有类属性。
类属性被存储(在块602)在从“远程代理”类300导出的本地类中,以为将来所用。经由“远程代理”类300将公用接口提供(在块604)给所有应用组件202a...202m、204a...204n以及消息路由器206。公用接口是通过使用图4所示的“远程代理”类300以及所导出的类400、402、404被提供的。
应用组件202a...202m、204a...204n和消息路由器206利用单个调用提取用于应用组件202a...202m、204a...204n和消息路由器206提供的服务的所有数据。
因此,图6示出了一些实施例,其中提供公用接口的“远程代理”类300被提供给应用组件202a...202m、204a...204n和消息路由器206,其中用于由应用组件202a...202m、204a...204n和消息路由器206提供的服务的所有数据以单个调用被提取出,并且其中该数据被存储在对象的属性中。
图7示出了根据一些实施例用于将应用组件202a...202m、204a...204n与“服务接口”类400接口的操作。
在块700,控制开始,其中诸如应用组件204a的示例性应用组件调用“服务接口”类400。在一些实施例中,“服务接口”类使用工厂类确定要由该示例性应用组件所使用的类的类型。可以以诸如Java编程语言的面向对象的程序设计语言来设计工厂类。
如果“服务接口”类400确定(在块702)要由该示例性应用组件使用的类的类型是“服务接口远程代理”类404,则“服务接口”类400将“服务接口远程代理”类404返回(在块704)给该示例性应用组件。例如,在其中该示例性组件是能够在第二进程空间中执行的应用组件204a...204n中的一个的一些实施例中,“服务接口”类400使用类工厂确定该示例性组件需要“服务接口远程代理”类404提供代理接口214(图2所示),以允许应用组件204a...204n与消息路由器206进行通信。
“服务接口远程代理”类404使用(在块706)“远程代理”类300以一个调用从“远程代理”类300获得所有属性。该示例性应用组件根据以后的需要使用(在块708)所接收到的属性。
如果“服务接口”类400确定(在块702)要由该示例性应用组件使用的类的类型是“服务接口远程实现”类404,则“服务接口”类将“服务接口远程实现”类404返回(在块708)给该示例性应用组件。例如,在一些实施例中,如果该示例性组件是消息路由器206或者是能够在与消息路由器206相同的进程空间中执行的应用组件202a...202m中的任何一个,则“服务接口”类400使用类工厂确定该示例性组件需要“服务接口远程代理”类404提供实现接口212(图2所示),以允许应用组件202a...202m与消息路由器206进行通信。
因此,图7示出了一些实施例,其中从公用接口提供者“远程代理”类300导出的“服务接口”类400经由类工厂确定要由调用“服务接口”类400的示例性组件所使用的类的类型。如果调用“服务接口”类400的示例性组件是能够在与消息路由器206的进程空间不同的进程空间中执行的应用组件204a...204n,则“服务接口”类提供代理接口214以建立该示例性组件与消息路由器206之间的通信。
作为在“服务接口”类400内使用类工厂的结果,该示例性组件不必对使用什么接口与消息路由器206进行通信作出任何确定。因此,当向任一节点108、110、112、114、116、200添加一个新应用组件时,不需要对该新应用进行额外的修改。“远程代理”300提供由该新应用使用的公用接口,以便经由代理接口214或实现接口212自动进行通信。
一些实施例减少了计算环境100中的通信开销而增加了整体性能。在一些实施例中,应用组件通过以对对象的单个调用提取出所有属性,而聚集数据。
在一些实施例中,需要类属性的方法可以请求所有的类属性,然后将这些类属性存储在本地类中,以为将来所用。
其他的实施例细节
所描述的技术可以实现为一种包括软件、固件、微代码、硬件和/或它们的任意组合的方法、装置或制造物品。在此使用的术语“制造物品”指程序指令、代码和/或逻辑,这些程序指令、代码和/或逻辑实现于电路(例如集成电路芯片、可编程门阵列(PGA)、ASIC等等)和/或计算机可读介质(例如磁存储介质,诸如硬盘驱动器、软磁盘、磁带)、光存储器(例如CD-ROM、DVD-ROM、光盘等等)、易失性和非易失性存储设备(例如电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存储器(RAM)、动态随机存储器(DRAM)、静态随机存储器(SRAM)、闪存、固件、可编程逻辑等等)。计算机可读介质中的代码可由诸如处理器的机器访问和执行。在一些实施例中,可以进一步通过传输介质或经由网络从文件服务器访问实现了实施例的代码。在这种情况下,其中实现了代码的制造物品可以包括诸如网络传输线路的传输介质、无线传输介质、经由空间、无线电波、红外信号的信号传播等。当然,本领域的技术人员将认识到,在不脱离这些实施例的范围的情况下,可以进行许多的修改,并且该制造物品可以包括本领域中已知的任何信息承载介质。例如,该制造物品包括存储介质,该存储介质具有在其上存储的指令,当这些指令由机器执行时导致操作被执行。
图8示出了其中可以实现一些实施例的系统800的框图。在一些实施例中,根据系统800可以实现节点108、110、112、114、116、200。系统800可包括电路802,该电路在一些实施例中可以包括处理器804。系统800也可以包括存储器806(例如易失性存储设备)和存储设备808。在某些或全部节点108、110、112、114、116、200中可以存在或可不存在系统800的某些组件。存储设备808可包括非易失性存储设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等等)、磁盘驱动器、光盘驱动器、磁带驱动器等等。存储设备808可以包括内部存储设备、附加存储设备和/或网络可访问的存储设备。系统800可包括包含有代码812的程序逻辑810,该程序逻辑可以加载到存储器806中并由处理器804或电路802执行。在一些实施例中,包含代码812的程序逻辑810可以存储在存储设备808中。在一些其他实施例中,可以在电路802中实现程序逻辑810。因此,尽管图8示出了与其他组件分离的程序逻辑810,但是程序逻辑810可以在存储器806和/或电路802中实现。
一些实施例可涉及一种用于由个人或将计算机可读代码结合到计算系统中的自动处理来部署计算指令的方法,其中与计算系统相结合的代码能够执行上述实施例的操作。
可以并行和顺序地执行图6-7中示出的至少一些操作。在可选实施例中,可以以不同的顺序执行、修改或移除一些操作。
而且,为说明的目的而以单独的模块描述了许多软件和硬件组件。这种组件可以被集成为更少数量的组件或被分成更大数量的组件。另外,被描述为由特定组件执行的一些操作可以由其他的组件执行。
图1-8所示或所涉及的数据结构和组件被描述为具有特定类型的信息。在可选的实施例中,这些数据结构和组件可以被不同地构造并且具有比图中所示或所涉及到的更少、更多或不同的字段或不同的功能。
因此,以上实施例的描述是为说明和描述的目的而提供的。其并不是穷举的或要将这些实施例限制为所公开的确切形式。根据上述教导,许多修改和变化是可能的。
*IBM、TotalStorage和Enterprise Storage Server是IBM公司的商标或注册商标。
*Java是Sun Microsystems的商标或注册商标。
Claims (30)
1.一种方法,包括:
在节点的第一进程空间中执行第一应用和第二应用,其中第三应用能够在第二进程空间中执行;
由远程代理类向第一、第二和第三应用提供公用接口;以及
通过从上述公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
2.如权利要求1的方法,其中上述节点包括在网络中,该网络包括多个节点,其中第一应用是进程间通信组件,其中第二和第三应用包括在执行于该节点上的多个软件组件中,以及其中该进程间通信组件允许该多个软件组件与该网络的其他节点进行通信。
3.如权利要求2的方法,其中上述网络是存储区域网络,其中上述节点是在该存储区域网络中实现的第一存储服务器,其中上述进程间通信组件是第一消息路由器,其中第一存储服务器和第二存储服务器包括存储设备,其中第一存储服务器上的第一消息路由器和第二存储服务器上的第二消息路由器允许分布于第一和第二存储服务器上的数据的冗余存储。
4.如权利要求1的方法,其中第三应用的所有属性由对上述公用接口的单个调用从该公用接口提取出。
5.如权利要求1的方法,其中第一应用是消息路由器,其中该消息路由器与第二应用经由实现接口进行通信,其中第三应用与该消息路由器经由代理接口进行通信,以及其中该实现接口和代理接口是由从提供上述公用接口的上述远程代理类导出的服务接口类的类工厂返回的。
6.如权利要求1的方法,进一步包括:
由第三应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第三应用的类的类型;以及
将服务接口远程代理类返回给第三应用,其中第三应用使用该服务接口远程代理类与第一应用进行通信。
7.如权利要求1的方法,进一步包括:
由第二应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第二应用的类的类型;以及
将服务接口远程实现类返回给第二应用,其中第二应用使用该服务接口远程实现类与第一应用进行通信。
8.如权利要求1的方法,其中上述远程代理类是以面向对象的语言实现的类,其中提供上述公用接口的该远程代理类允许第三应用通过代理接口与第一应用进行通信,该代理接口是经由从该远程代理类导出的至少一个类的类工厂提供的。
9.一种系统,包括:
存储器;以及
与该存储器连接的处理器,其中该处理器能够执行操作,该操作包括:
(i)在第一进程空间中执行第一应用和第二应用,其中第三应用
能够在第二进程空间中执行;
(ii)由远程代理类向第一、第二和第三应用提供公用接口;以及
(iii)通过从上述公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
10.如权利要求9的系统,其中该系统是网络的节点,该网络包括多个节点,其中第一应用是进程间通信组件,其中第二和第三应用包括在执行于该节点上的多个软件组件中,以及其中该进程间通信组件允许该多个软件组件与该网络的其他节点进行通信。
11.如权利要求10的系统,其中上述网络是存储区域网络,其中上述节点是在该存储区域网络中实现的第一存储服务器,其中上述进程间通信组件是第一消息路由器,其中第一存储服务器和第二存储服务器包括存储设备,其中第一存储服务器上的第一消息路由器和第二存储服务器上的第二消息路由器允许分布于第一和第二存储服务器上的数据的冗余存储。
12.如权利要求9的系统,其中第三应用的所有属性由对上述公用接口的单个调用从该公用接口提取出。
13.如权利要求9的系统,其中第一应用是消息路由器,其中该消息路由器与第二应用经由实现接口进行通信,其中第三应用与该消息路由器经由代理接口进行通信,以及其中该实现接口和代理接口是由从提供上述公用接口的上述远程代理类导出的服务接口类的类工厂返回的。
14.如权利要求9的系统,所述操作进一步包括:
由第三应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第三应用的类的类型;以及
将服务接口远程代理类返回给第三应用,其中第三应用使用该服务接口远程代理类与第一应用进行通信。
15.如权利要求9的系统,所述操作进一步包括:
由第二应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第二应用的类的类型;以及
将服务接口远程实现类返回给第二应用,其中第二应用使用该服务接口远程实现类与第一应用进行通信。
16.如权利要求9的系统,其中上述远程代理类是以面向对象的语言实现的类,其中提供上述公用接口的该远程代理类允许第三应用通过代理接口与第一应用进行通信,该代理接口是经由从该远程代理类导出的至少一个类的类工厂提供的。
17.一种制造物品,其中该制造物品能够执行操作,该操作包括:
在节点的第一进程空间中执行第一应用和第二应用,其中第三应用能够在第二进程空间中执行;
由远程代理类向第一、第二和第三应用提供公用接口;以及
通过从上述公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
18.如权利要求17的制造物品,其中上述节点包括在网络中,该网络包括多个节点,其中第一应用是进程间通信组件,其中第二和第三应用包括在执行于该节点上的多个软件组件中,以及其中该进程间通信组件允许该多个软件组件与该网络的其他节点进行通信。
19.如权利要求18的制造物品,其中上述网络是存储区域网络,其中上述节点是在该存储区域网络中实现的第一存储服务器,其中上述进程间通信组件是第一消息路由器,其中第一存储服务器和第二存储服务器包括存储设备,其中第一存储服务器上的第一消息路由器和第二存储服务器上的第二消息路由器允许分布于第一和第二存储服务器上的数据的冗余存储。
20.如权利要求17的制造物品,其中第三应用的所有属性由对上述公用接口的单个调用从该公用接口提取出。
21.如权利要求17的制造物品,其中第一应用是消息路由器,其中该消息路由器与第二应用经由实现接口进行通信,其中第三应用与该消息路由器经由代理接口进行通信,以及其中该实现接口和代理接口是由从提供上述公用接口的上述远程代理类导出的服务接口类的类工厂返回的。
22.如权利要求17的制造物品,所述操作进一步包括:
由第三应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第三应用的类的类型;以及
将服务接口远程代理类返回给第三应用,其中第三应用使用该服务接口远程代理类与第一应用进行通信。
23.如权利要求17的制造物品,所述操作进一步包括:
由第二应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第二应用的类的类型;以及
将服务接口远程实现类返回给第二应用,其中第二应用使用该服务接口远程实现类与第一应用进行通信。
24.如权利要求17的制造物品,其中上述远程代理类是以面向对象的语言实现的类,其中提供上述公用接口的该远程代理类允许第三应用通过代理接口与第一应用进行通信,该代理接口是经由从该远程代理类导出的至少一个类的类工厂提供的。
25.一种用于部署计算基础结构的方法,包括将计算机可读代码合并到计算系统中,其中与该计算系统结合的该代码能够执行:
在节点的第一进程空间中执行第一应用和第二应用,其中第三应用能够在第二进程空间中执行;
由远程代理类向第一、第二和第三应用提供公用接口;以及
通过从上述公用接口获得第三应用的多个属性,而在第一进程空间中执行第三应用。
26.如权利要求25的方法,其中上述节点包括在网络中,该网络包括多个节点,其中第一应用是进程间通信组件,其中第二和第三应用包括在执行于该节点上的多个软件组件中,以及其中该进程间通信组件允许该多个软件组件与该网络的其他节点进行通信。
27.如权利要求26的方法,其中上述网络是存储区域网络,其中上述节点是在该存储区域网络中实现的第一存储服务器,其中上述进程间通信组件是第一消息路由器,其中第一存储服务器和第二存储服务器包括存储设备,其中第一存储服务器上的第一消息路由器和第二存储服务器上的第二消息路由器允许分布于第一和第二存储服务器上的数据的冗余存储。
28.如权利要求25的方法,其中第三应用的所有属性由对上述公用接口的单个调用从该公用接口提取出。
29.如权利要求25的方法,与该计算系统结合的上述代码能够执行:
由第三应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第三应用的类的类型;以及
将服务接口远程代理类返回给第三应用,其中第三应用使用该服务接口远程代理类与第一应用进行通信。
30.如权利要求25的方法,与该计算系统结合的上述代码能够执行:
由第二应用调用从上述远程代理类导出的服务接口类;
经由该服务接口类的类工厂确定要被返回给第二应用的类的类型;以及
将服务接口远程实现类返回给第二应用,其中第二应用使用该服务接口远程实现类与第一应用进行通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/990,652 US7543300B2 (en) | 2004-11-16 | 2004-11-16 | Interface for application components |
US10/990,652 | 2004-11-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1777154A true CN1777154A (zh) | 2006-05-24 |
CN100559778C CN100559778C (zh) | 2009-11-11 |
Family
ID=36568610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510115132.XA Expired - Fee Related CN100559778C (zh) | 2004-11-16 | 2005-11-10 | 用于对应用组件的接口的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7543300B2 (zh) |
CN (1) | CN100559778C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997913A (zh) * | 2009-08-10 | 2011-03-30 | 三星电子株式会社 | 在网络应用之间数据通信的装置和方法 |
CN109032659A (zh) * | 2018-07-20 | 2018-12-18 | 珠海宏桥高科技有限公司 | 单页面应用基于配置引用远程页面组件的方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7573875B2 (en) * | 2006-05-19 | 2009-08-11 | Alcatel Lucent | Proactively providing a redundant multicast tree in an internet protocol television (IPTV) network |
US8479019B1 (en) * | 2011-12-13 | 2013-07-02 | Unisys Corporation | Cryptography for secure shell in emulated environments |
CN103116520B (zh) * | 2012-11-02 | 2016-07-06 | 深圳键桥通讯技术股份有限公司 | 基于tcp/ udp的远程过程调用rpc的方法 |
US20160026515A1 (en) * | 2014-07-24 | 2016-01-28 | Simmonds Precision Products, Inc. | Segmented software architecture |
DE102015223001A1 (de) * | 2015-11-20 | 2017-05-24 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Computersystems, Computerprogramm mit einer Implementation des Verfahrens und zur Ausführung des Verfahrens bestimmtes Computersystem |
CN107395665B (zh) * | 2017-05-22 | 2020-04-24 | 创新先进技术有限公司 | 一种区块链业务受理及业务共识方法及装置 |
CN111338828B (zh) * | 2020-03-24 | 2022-04-08 | 广州方硅信息技术有限公司 | 终端设备及其应用程序接口调用控制方法 |
CN113360180A (zh) * | 2021-06-28 | 2021-09-07 | 平安普惠企业管理有限公司 | 系统的组件配置方法、装置、计算机设备及存储介质 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487607B1 (en) * | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6385661B1 (en) * | 1998-10-19 | 2002-05-07 | Recursion Software, Inc. | System and method for dynamic generation of remote proxies |
US7069320B1 (en) | 1999-10-04 | 2006-06-27 | International Business Machines Corporation | Reconfiguring a network by utilizing a predetermined length quiescent state |
US7974192B2 (en) * | 1999-10-13 | 2011-07-05 | Avaya Inc. | Multicast switching in a distributed communication system |
US6947965B2 (en) * | 1999-11-30 | 2005-09-20 | Recursion Software, Inc. | System and method for communications in a distributed computing environment |
US6629128B1 (en) * | 1999-11-30 | 2003-09-30 | Recursion Software, Inc. | System and method for distributed processing in a computer network |
US20020032783A1 (en) * | 1999-12-30 | 2002-03-14 | Tuatini Jeffrey T. | Shared service funtionality invocation |
US7003571B1 (en) * | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
US7009980B1 (en) | 2000-03-13 | 2006-03-07 | Lucent Technologies Inc. | Apparatus and method for automatic port identity discovery in hierarchical heterogenous systems |
US7327683B2 (en) * | 2000-03-16 | 2008-02-05 | Sri International | Method and apparatus for disseminating topology information and for discovering new neighboring nodes |
US6735200B1 (en) * | 2000-03-21 | 2004-05-11 | International Business Machines Corporation | Method and apparatus for monitoring the availability of nodes in a communications network |
US6901588B1 (en) * | 2000-04-17 | 2005-05-31 | Codemesh, Inc. | Sharing components between programming languages by use of polymorphic proxy |
US7031288B2 (en) * | 2000-09-12 | 2006-04-18 | Sri International | Reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network |
WO2002065329A1 (en) * | 2001-02-14 | 2002-08-22 | The Escher Group, Ltd. | Peer-to peer enterprise storage |
US7000238B2 (en) * | 2001-10-10 | 2006-02-14 | Borland Software Corporation | Development system providing extensible remoting architecture |
US7051341B2 (en) * | 2001-12-14 | 2006-05-23 | International Business Machines Corporation | Method, system, and program for implementing a remote method call |
EP1322124A1 (de) * | 2001-12-19 | 2003-06-25 | Siemens Aktiengesellschaft | Verfahren zum Betreiben eines Kommunikationsnetzes |
US7243103B2 (en) * | 2002-02-14 | 2007-07-10 | The Escher Group, Ltd. | Peer to peer enterprise storage system with lexical recovery sub-system |
US7392302B2 (en) * | 2002-02-21 | 2008-06-24 | Bea Systems, Inc. | Systems and methods for automated service migration |
US7475126B2 (en) * | 2002-03-15 | 2009-01-06 | Nortel Networks Limited | Method and apparatus for system lineup and testing |
US7171672B2 (en) * | 2002-04-24 | 2007-01-30 | Telefonaktie Bolaget Lm Ericsson (Publ) | Distributed application proxy generator |
US8266239B2 (en) * | 2002-06-27 | 2012-09-11 | Oracle International Corporation | Remote services system relocatable mid level manager |
US8775649B2 (en) * | 2002-11-26 | 2014-07-08 | Oracle America, Inc. | Optimizing client code through automated server specialization |
US20040122937A1 (en) * | 2002-12-18 | 2004-06-24 | International Business Machines Corporation | System and method of tracking messaging flows in a distributed network |
US20040158780A1 (en) * | 2003-02-11 | 2004-08-12 | Conrad Jeffrey Richard | Method and system for presenting neighbors of a device in a network via a graphical user interface |
US7356562B2 (en) | 2003-04-30 | 2008-04-08 | International Business Machines Corporation | Dynamic generator for fast-client static proxy from service interface definition document |
US20040230813A1 (en) | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US7539150B2 (en) | 2004-11-16 | 2009-05-26 | International Business Machines Corporation | Node discovery and communications in a network |
-
2004
- 2004-11-16 US US10/990,652 patent/US7543300B2/en not_active Expired - Fee Related
-
2005
- 2005-11-10 CN CN200510115132.XA patent/CN100559778C/zh not_active Expired - Fee Related
-
2008
- 2008-10-30 US US12/262,089 patent/US7818752B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997913A (zh) * | 2009-08-10 | 2011-03-30 | 三星电子株式会社 | 在网络应用之间数据通信的装置和方法 |
US9690636B2 (en) | 2009-08-10 | 2017-06-27 | Samsung Electronics Co., Ltd. | Apparatus and method of data communication between web applications |
CN109032659A (zh) * | 2018-07-20 | 2018-12-18 | 珠海宏桥高科技有限公司 | 单页面应用基于配置引用远程页面组件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100559778C (zh) | 2009-11-11 |
US20090049458A1 (en) | 2009-02-19 |
US20060117321A1 (en) | 2006-06-01 |
US7818752B2 (en) | 2010-10-19 |
US7543300B2 (en) | 2009-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1777154A (zh) | 用于对应用组件的接口的方法和系统 | |
US9747341B2 (en) | System and method for providing a shareable global cache for use with a database environment | |
CN1224905C (zh) | 在群集计算机系统中的执行资源动作的方法 | |
US7617218B2 (en) | Persistent key-value repository with a pluggable architecture to abstract physical storage | |
CN1831802A (zh) | 将模块耦合到互连上的管理控制器的方法和装置 | |
US20040019887A1 (en) | Method, system, and program for loading program components | |
CN1841330A (zh) | 用于管理多节点smp系统的方法和系统 | |
CN1494017A (zh) | 用于环球网服务结构中的包容器选择器及其选择方法 | |
CN1710865A (zh) | 一种提高基于构件软件系统可靠性的方法 | |
CN1740997A (zh) | 网络设备及其外围器件互连资源的分配方法 | |
CN101043421A (zh) | 一种基于内存的ip地址最长匹配快速查找的方法 | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
CN101354720B (zh) | 一种分布式内存数据库数据系统及其共享方法 | |
CN1687899A (zh) | 将应用程序动态下载到用户识别模块的方法、系统及模块 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
JP4452023B2 (ja) | 分割されたコンピュータ・システムの1つの区画から他の区画にデータを転送する装置と方法 | |
CN1929463A (zh) | 对象请求代理、用于提供资源高效传送的方法和装置 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN1866828A (zh) | 一种数据处理系统及其方法 | |
US8775498B2 (en) | Universal architecture for client management extensions on monitoring, control, and configuration | |
CN1833207A (zh) | 用于基于网络来对多个空间分布式装置进行监控和控制的系统和方法 | |
US20170026464A1 (en) | Allocation of service endpoints to servers | |
TW202315360A (zh) | 微服務分配方法、電子設備及儲存介質 | |
CN100344114C (zh) | 网络设备的访问方法及实现装置 | |
CN1932760A (zh) | 开发和执行平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091111 Termination date: 20181110 |