CN1776610A - 用于把同步接口转换为异步接口的设备、系统、和方法 - Google Patents
用于把同步接口转换为异步接口的设备、系统、和方法 Download PDFInfo
- Publication number
- CN1776610A CN1776610A CNA2005100992239A CN200510099223A CN1776610A CN 1776610 A CN1776610 A CN 1776610A CN A2005100992239 A CNA2005100992239 A CN A2005100992239A CN 200510099223 A CN200510099223 A CN 200510099223A CN 1776610 A CN1776610 A CN 1776610A
- Authority
- CN
- China
- Prior art keywords
- affairs
- module
- requestor
- transactions requests
- interface
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
公开了一种用于把同步接口转换为异步接口的设备、系统和方法。该设备包括接收模块、生成模块和返回模块。接收模块从同步请求者接收事务请求,生成模块生成延迟对象以及与所请求的返回类型兼容的转发接口,并且返回模块向请求者返回延迟对象与转发接口。另外,公开了用于实现这样的设备、系统和方法的服务。该设备、系统和方法的实现提高了计算性能、降低了应用运行时间、并且减少了计算资源的使用。
Description
技术领域
本发明涉及计算机接口,特别涉及把同步接口转换为异步接口。
背景技术
通常,当计算机代码以模块化格式编写时它的运行更高效。最通用的代码配置包括代码主块,其调用代码的其它外围块以执行特定任务并且返回那些任务的结果。在大多数情况下,主代码期望以特定格式返回结果。期望返回的特定格式通常称为返回类型。这里使用的术语“类型”,如通常在计算机编程领域内使用的那样,是指返回对象的格式。代码的外围块经常被称为函数、模块、方法、及其他类似的术语。如这里所使用的那样,代码的外围块被称为函数。
使用接口进行主代码和函数之间的交互。接口可能包括其中主代码启动与函数的事务的函数调用,而且还可以包括返回端口,其中函数通过该返回端口向主代码返回预定类型的值。一般地,接口要求在函数调用中向函数传递特定参数,而且返回的值具有通常预定的具体类型。
类似地,计算设备之间的事务经常必须符合预定的标准和格式。从第一计算设备到第二计算设备的通信本质上仅仅是从第一计算设备上的主代码到第二计算设备上的函数的函数调用,以及相关联的返回。如这里所使用的那样,主代码被称为请求者。另外,请求者可以包括调用另一个函数的函数、向另一个计算设备请求事务的计算设备等等。
例如,存储服务器客户端上的应用可以请求存储服务器在存储介质上创建卷以存储由该应用生成的数据。应用代码向存储服务器发送请求,存储服务器在存储介质上创建卷,而且存储服务器返回已经创建了卷的确认。在这个示例中,来自应用的请求类似于函数调用。实际上,请求可以是函数调用的直接结果。存储服务器送回的确认类似于函数所返回的返回值。同样,应用期望所返回的确认将具有特定的预定格式。这里将请求和相关联的返回称为事务。
上面的示例描述了典型的同步接口。如果请求者停止并且进行等待,直到函数完成了所请求的任务并且返回期望类型的返回对象为止,则接口是同步的。如果请求者在等待期望类型的返回对象的同时不停止处理其它作业,则接口是异步的。异步接口通常更加高效,这是因为代码或者应用不必在发送下一个请求之前等待每个请求的返回对象。另外,异步接口允许应用或者代码同时处理其它任务以及发送和接收事务。
例如,在异步系统中,应用向存储服务器发送请求以便在存储介质上创建新的卷。然后,应用可以在接收到确认创建了卷的、根据第一请求的返回对象之前,发送对存储在文件中的数据的另外请求。在异步系统中,极大地减少了请求和返回之间的空闲时间。
从上面的示例可以清楚,在很多情况下,就性能而言,异步接口远远优于同步接口。遗憾的是,传统上将同步接口转换为异步接口不是容易实现的任务。如果全然进行尝试,则转换接口需要对同步代码的大范围修改以及潜在的硬件改变。
从上述论述可知,需要一种把同步接口转换为异步接口的设备、系统、和方法。有利地是,这样的设备、系统和方法将增加处理性能。另外,在系统或者网络环境中实现该设备、系统和方法的情况下,可以极大地提高系统和网络性能。最值得注意地是,实现这样的设备、系统和方法可以不必需要对现有接口代码或者硬件的修改。
发明内容
响应于本技术领域的现阶段状况,特别是响应于本技术领域内尚未被当前可得到的计算机接口解决方案完全解决的问题和需要,开发了本发明。因此,本发明已被开发以便提供一种用于把同步接口转换为异步接口的设备、系统、和方法,它们克服了本技术领域内的许多或者全部上述缺陷。
在一个实施例中,把同步接口转换为异步接口的设备具有包含多个模块的逻辑单元,这些模块被配置为在功能上执行以下的必要步骤:从同步请求者接收事务请求;生成延迟对象以及与所请求的返回类型兼容的转发接口;以及向请求者返回延迟对象与转发接口。所述实施例中的这些模块包括接收模块、生成模块、和返回模块。
在一个实施例中,该设备包括接收模块,其被配置为从同步请求者接收事务请求。该设备还可以包括阻塞模块。阻塞模块阻塞来自同步请求者的另外事务请求,直到该事务可供完成为止。在另一个实施例中,请求者同时发送事务请求并处理先前请求的事务的返回。
在一个实施例中,该设备包括生成模块,其被配置为生成延迟对象以及与所请求的返回类型兼容的转发接口。可以由生成模块的分离和不同的子模块生成延迟对象和转发接口。该设备可以另外包括满足模块,其被配置为满足来自同步请求者的事务请求,直到该事务可供完成为止。在另外的实施例中,当事务可供完成时,通知模块经由延迟对象通知同步请求者。
在一个实施例中,该设备包括返回模块,其被配置为向请求者返回延迟对象与转发接口。该设备还可以包括启动模块和完成模块。当事务可供完成时,启动模块经由延迟对象启动第二事务请求。完成模块通过返回期望类型的对象来完成该事务。
在另一个实施例中,该设备可以包括请求模块、接收模块、和处理模块。请求模块发送事务请求。接收模块经由相关联的转发接口接收延迟对象。处理模块响应于接收到延迟对象而继续处理任务。
还给出了本发明的系统,其用于把同步接口转换为异步接口。在一个实施例中,该系统包括同步请求者和应答者。同步请求者发送事务请求、接收延迟对象与相关联的转发接口、并且响应于接收到延迟对象而继续处理任务。应答者从同步请求者接收事务请求、生成延迟对象以及与所请求的返回类型兼容的转发接口、并且向请求者返回延迟对象与转发接口。
本发明还给出了本发明的方法,其用于把同步接口转换为异步接口。所公开实施例中的方法实质上包括实现上面关于所述设备和系统的操作而给出的功能所必需的步骤。在一个实施例中,该方法包括:从异步请求者接收事务请求;生成延迟对象以及与所请求的返回类型兼容的转发接口;以及向请求者返回延迟对象与转发接口。该方法还可以包括如上所述的阻塞、满足、通知、启动、和完成。
还给出了一种用于提供本发明的服务的方法,其用于把同步接口转换为异步接口。所公开实施例中的方法实质上包括实现上面关于所述方法、设备和系统的实现而给出的功能所必需的步骤。在一个实施例中,该方法包括:从异步请求者接收事务请求;生成延迟对象以及与所请求的返回类型兼容的转发接口;以及向请求者返回延迟对象与转发接口。
在另一个实施例中,该方法包括使得请求者能够继续处理其它事务,直到接收到事务可供完成的通知为止。在一个实施例中,完成事务包括经由延迟对象返回期望类型的对象。
贯穿本说明书对特性、优点、或者类似语言的引用不暗含所有可以用本发明实现的特性和优点应当是或者处于本发明的任何单个实施例中。相反,涉及特性和优点的语言应被理解为是指结合实施例描述的特定特性、优点、或者特征包含在本发明的至少一个实施例中。因此,贯穿本说明书对特性和优点和类似语言的论述可以但不一定涉及同一个实施例。
此外,本发明的所述特性、优点、以及特征可以在一个或多个实施例中以任何适当的方式组合。相关领域的技术人员应当认识到,可以在没有具体实施例的特定特性或优点中的一个或多个的情况下实施本发明。另外,可在某些实施例中辨识到的另外特征和优点可以不存在于本发明的所有实施例中。
根据下面描述和所附权利要求,本发明的这些特征和优点将会变得更加明显,或者可以通过如下所述实施本发明来了解这些特征和优点。
附图说明
为了更容易地理解本发明的优点,将通过参考在附图中说明的特定实施例给出上面简要描述的本发明的更具体描述。应当理解,这些附图仅仅描述了本发明的典型实施例,因此不应被认为是对本发明范围的限制,将通过附图的使用,用附加的特定性和细节描述和说明本发明,其中:
图1为示意框图,其说明了用于把同步接口转换为异步接口的系统的一个实施例;
图2为示意框图,其说明了用于把同步接口转换为异步接口的设备的一个实施例;
图3为示意框图,其说明了用于把同步接口转换为异步接口的设备的另一个实施例;
图4为详细示意框图,其说明了用于把同步接口转换为异步接口的设备的一个实施例;
图5为示意流程图,其说明了用于把同步接口转换为异步接口的方法的一个实施例;
图6为详细的示意流程图,其说明了用于把同步接口转换为异步接口的方法的一个实施例;
图7为示意框图,其说明了请求应用、转发接口、和延迟对象之间的交互。
具体实施方式
为了更具体地强调功能单元的实现独立性,在本说明书中描述的许多功能单元已被标注为模块。例如,模块可以被实现为硬件电路,其包括定制VLSI电路或门阵列、成品半导体如逻辑芯片、晶体管、或者其它分立部件。模块还可以以诸如现场可编程门阵列、可编程阵列逻辑电路、可编程逻辑器件等之类的可编程硬件设备实现。
模块还可以用软件实现,以便由各种处理器执行。可执行代码的所标识模块可以例如包括计算机指令的一个或多个物理或逻辑块,它们可以例如被组织为对象、过程、或函数。然而,所标识模块的可执行代码不需要物理地位于一起,而是可以包含存储在不同位置的不同指令,当它们逻辑上连接在一起时,组成该模块并且实现该模块的规定目的。
实际上,可执行代码的模块可以是单条指令,或者多条指令,并且甚至可以在不同的程序当中,以及跨越几个存储器设备,在几个不同的代码段上分布。类似地,这里也可以在模块内标识和说明操作数据,而且可以以任何适当的形式实施并且在任何适当类型的数据结构内组织。操作数据可以被集中为单个数据集,或者可以在包括不同存储设备的不同位置上分布,并且可以至少部分地仅仅作为系统或网络上的电子信号存在。
贯穿本说明书对“一个实施例”、“实施例”或者类似语言的引用意味着结合实施例描述的具体特性、结构、或者特征包括在本发明的至少一个实施例中。因此,贯穿本说明书出现的短语“在一个实施例中”、“在实施例中”,以及类似的语言可以但不一定全都涉及相同的实施例。
对信号承载介质的引用可以采用能够生成信号、导致信号生成、或者导致在数字处理设备上执行机器可读指令的程序的任何形式。信号承载介质可以由传输线、致密盘、数字视频盘、磁带、伯努利(Bernoulli)驱动器、磁盘、穿孔卡、闪存、集成电路、或者其它数字处理设备存储器装置实施。
对服务的引用可以包括提供与所公开的设备、系统或方法的分析、设计、实现或利用相关联的任何可能的服务提供。另外,服务可以包括但是不限于合同形式或者其它形式的对硬件、软件、固件、网络资源、数据存储资源、物理设施等的出租、租赁、许可及其它提供。另外,服务可以包括体力劳动、咨询以及体力、智力、以及人力资源的其它提供。
所包括的示意流程图通常作为逻辑流程图加以阐述。因而,所描述的次序和所标注的步骤表示所给出方法的一个实施例。可以考虑在功能、逻辑、或效果上与所示方法的一个或多个步骤或者它的多个部分等效的其它步骤和方法。另外,提供了所采用的格式和符号以便说明方法的逻辑步骤,并且应当理解,这些格式和符号不限制该方法的范围。虽然可以在流程图中采用各种箭头类型和线类型,但是应当理解,它们不限制相应方法的范围。实际上,一些箭头或者其它连接符可以用来仅仅指示方法的逻辑流程。例如,箭头可以表示在所示方法中列举的步骤之间的未指定时长的等待或监视期。另外,具体方法出现的次序可以或者可以不必严格地遵循所示相应步骤的次序。
此外,本发明的所述特性、优点、以及特征可以在一个或多个实施例中以任何适当的方式组合。在下面描述中,提供了许多具体细节,例如程序、软件模块、用户选择、网络事务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的示例,以提供对本发明实施例的彻底理解。然而相关领域的技术人员可以认识到,可以在不采用一个或多个具体细节的情况下实施本发明,或者可以采用其它的方法、部件、素材等实施本发明。另外,没有示出或者详细描述众所周知的结构、材料、或操作,以避免使本发明的各方面变得模糊。
图1说明了用于把同步接口转换为异步接口的系统100的一个实施例。系统100包括请求者102和应答者104。请求者102向应答者104传达事务请求(106)。然后,应答者104向请求者返回(108)对象。
在一个实施例中,请求者102和应答者104是计算机可读代码的模块。请求者102可以包括预先存在的同步接口。在这样一个实施例中,可以不需要对请求者102的接口进行修改。在一个实施例中,请求者102可以是主代码或者应用。请求者可以采用函数或模块请求(106)事务。在一个实施例中,这样的请求(106)为函数调用。在另一个实施例中,请求者102为计算设备。例如,请求者102可以是存储区域网络(SAN)的客户端。客户端可以驻留通过SAN请求(106)事务的应用,这些事务诸如创建卷以存储数据、检索数据等。
在一个实施例中,应答者104也可以是计算机可读代码。例如,应答者104可以是向请求者返回(108)数据对象的集成软件包中的函数或模块。应答者104可以响应于函数调用而返回(108)数据对象。在另一个示例中,应答者可以是计算或存储设备。例如,应答者104可以是控制存储设备的存储服务器。请求者102可以请求106创建卷事务。应答者104然后可以创建该卷,并且返回(108)创建卷对象,其指示已经成功地创建了卷。
系统100的一个示例可以包括与存储设备交互的Java应用。在这样一个示例中,Java应用是请求者102且存储设备是应答者104。应用可以向存储设备请求106用于数据检索的事务。然后,存储设备从存储介质检索数据,并且以预定格式向应用返回(108)数据。如果应用在等待返回(108)数据对象的期间不处理其它任务,则认为该应用是同步的。
在可替换示例中,存储设备104可以首先返回具有与期望数据类型兼容的接口的延迟对象,然后从存储介质检索数据,并且最终向请求者102返回期望数据类型的数据。返回延迟对象允许同步请求者102继续处理其它的任务,由此把它转换为异步接口。
图2为示意框图,其说明了用于把同步接口转换为异步接口的设备102的一个实施例。在一个实施例中,设备102是系统100的请求者102。所示出的请求者102包括请求模块202、接收模块204和处理模块206。请求者102可以包括预先存在的同步接口。
在一个实施例中,请求模块202向应答者104发送事务请求。该请求可以包括函数调用、应用事务、数据传输等。请求可以向计算机可读代码的模块、计算设备、存储设备等等发出。
接收模块204接收由应答者104返回的对象。典型地,同步请求者102具有返回对象所期望的预定格式。对象可以是诸如复杂命令的结果之类的复杂数据构造,或者仅仅是被设置为高或低的单个位。如果接收模块204包含现有的接口,则可以由那个接口定义返回数据类型。典型地,这样的接口将会使从同步转换为异步的处理复杂化。然而,如稍后参考图3和图7所论述的那样,本发明借助于转发接口而绕过了这样的问题。
处理模块206响应于接收到延迟对象而继续处理任务。在一个实施例中,处理模块206是数据处理器。在另一个实施例中,处理模块206可以是主代码、可执行代码、应用等。通常,同步接口将要求处理模块206等待执行请求事务之后的其它任务,直到接收模块204接收了返回对象为止。然而,在这个实施例中,一旦接收模块204经由转发接口接收了延迟对象,则处理模块206继续处理其它任务。
在设备102的一个实施例中,可以不需要修改请求模块202、接收模块204和处理模块206。事实上,可以根本不用修改同步请求者上的接口。然而,如下面将要清楚描述的那样,引入延迟对象可以间接地把同步接口转换为异步接口。
图3为示意框图,其说明了用于把同步接口转换为异步接口的设备104的另一个实施例。在一个实施例中,设备104是系统100的请求者104。在实施例中,请求者104包括接收模块302、生成模块304、以及返回模块306。
接收模块302从同步请求者102接收事务请求。在一个实施例中,接收模块302可以是软件接口。例如,接收模块302可以从计算机可读代码的另一个模块接收函数调用。在一个实施例中,事务请求可以传递确定期望返回类型的特定参数。
在一个实施例中,生成模块304生成延迟对象以及与所请求的返回类型兼容的转发接口。生成模块304可以同时生成延迟对象和转发接口。可替换地,可以由生成模块的单独子模块生成延迟对象和转发接口。在另一个可替换实施例中,生成模块304可以触发其它的模块,以便生成延迟对象和转发接口。在一个实施例中,由生成模块304生成的延迟对象可以包括IOU对象。IOU对象和相关联的数据类具有不同的接口格式。因此,IOU对象需要将转发接口与现有的同步接口相关联。在一个实施例中,转发接口可以包括动态代理。将参考图7进一步论述IOU对象和动态代理。
在一个实施例中,返回模块306向请求者返回延迟对象与转发接口。在另外的实施例中,返回模块306还可以向请求者102返回事务的完成结果。返回模块306可以响应于函数的完成而返回数据对象。可替换地,返回模块可以返回在网络部件之间所请求的事务的结果。
图4为详细示意框图,其说明了用于把同步接口转换为异步接口的设备104的一个实施例。如结合图3所述,设备104可以包括接收模块302、生成模块304和返回模块306。另外,设备104可以包括满足模块402、阻塞模块404、通知模块406、启动模块408、以及完成模块410。
在一个实施例中,满足模块402帮助在所请求的事务正在进行中的时候继续其它计算任务的处理。满足模块402可以满足来自同步请求者的事务请求,直到该事务可供完成为止。在一个实施例中,满足模块402通过将延迟对象识别为已完成的事务来满足请求。如果请求者102将延迟对象识别为已完成的事务,则请求者102可以继续处理其它任务。
在一个实施例中,阻塞模块404保护应答者104以防止对相同任务的多次请求。如果请求者102具有未完成的事务请求,则可以发送另外的事务请求。对相同事务的多次请求可以降低系统性能并且还延迟事务的完成。
在一个实施例中,当事务可供完成时,通知模块406经由延迟对象通知同步请求者。通知模块406可以触发要发给请求者102的消息。例如,通知模块406可以触发延迟对象的预定通知功能,以向请求者102通知该事务可供完成。
在一个实施例中,当事务可供完成时,启动模块408经由延迟对象启动第二事务请求。由于满足模块402暂时满足请求者102,并且阻塞模块404阻塞另外的事务请求,应答者104可以继续处理以完成对于完成事务所必需的任务。当事务可供完成时,应答者104必须向请求者102触发事务的完成。在一个实施例中,启动模块408触发延迟对象内的函数,其启动第二事务请求。在可替换实施例中,启动模块408向请求者102发送指示事务可供完成的消息。可以经由延迟对象发送该消息。
在一个实施例中,完成模块410可以通过经由返回模块306返回期望类型的已完成返回数据对象而非延迟对象来完成事务。可替换地,完成模块410可以响应于来自请求者102的第二请求返回期望类型的数据对象。完成模块410可以直接发送数据对象。可替换地,完成模块410可以经由返回模块306发送数据对象。
图5为示意流程图,其说明了用于把同步接口转换为异步接口的方法500的一个实施例。方法500开始(502),并且接收模块302接收(504)事务请求。接下来,生成模块304生成(506)延迟对象和转发接口。然后,返回模块306然后向请求者102返回(508)延迟对象和转发接口,并且该处理500结束(510)。
在一个实施例中,方法500被实现为用于提供将同步接口转换为异步接口的服务的方法的一部分。在一个实施例中,服务可以包括与上述设备102、104、系统100和方法500的分析、设计、和实现相关联的附加步骤。该服务可以包括如结合图6所述的附加步骤。
图6为详细的示意流程图,其说明了用于把同步接口转换为异步接口的方法600的一个实施例。在一个实施例中,方法600包括可以由请求者102、以及应答者104执行的步骤。当请求者102上的请求模块202向应答者104请求(604)事务时,方法600开始(602)。然后,应答者104的接收模块302接收(606)事务请求。然后,应答者104的生成模块304生成(608)延迟对象和转发接口。然后,应答者104的返回模块306向请求者102返回(610)延迟对象与转发接口。
在一个实施例中,请求者102的接收模块204接收(614)延迟对象和转发接口。在一个实施例中,满足模块402然后经由延迟对象满足(616)请求者102,直到事务可供完成为止。另外,阻塞模块404可以阻塞(612)来自请求者102的另外事务请求。一旦被满足(616),请求者102的处理模块206则可以确定(618)是否有另外的事务被排队等待请求。如果是(618),则请求模块202向应答者104发送(604)对另外事务的请求,并且处理600继续以类似的方式对所请求的另外事务进行处理。如果没有(618)要求另外的事务,则请求者102的处理模块206可以继续(620)处理其它任务。
在一个实施例中,通知模块406然后向请求者102通知(622)事务可供完成。请求者102的接收模块204从应答者104接收(624)该通知,并且处理模块206准备完成该事务。启动模块408启动(626)第二事务请求。然后,请求者102的请求模块202请求(628)该事务的完成。然后,应答者104的完成模块410完成(630)该事务,而且方法600结束(632)。
图7为示意框图,其说明了请求应用702、转发接口706和延迟对象708之间的交互700。在一个实施例中,请求者102是请求应用702。请求应用702发出事务请求,并且经由接口704接收返回数据对象。在一个实施例中,接口704被预先配置为仅仅接受特定格式的返回数据对象。期望格式被称为对象数据类型。
如在上面论述中所公开的那样,可以响应于事务请求而返回延迟对象708,而不是期望的数据对象。延迟对象708满足请求者102,并且允许请求者102在应答者104处理事务的同时继续处理其它任务。
延迟对象708的一个示例是在Java程序设计语言中由IOU数据类定义的IOU对象。当代替期望的数据对象返回给请求者102时,可以使请求者102满足已经暂时完成事务。IOU对象可以在请求者102上执行基本操作。一种这样的操作是standby()操作,其指示事务正在处理中,并且请求者102可以继续处理其它任务。另外的操作可以包括closed()、redeem()、以及addCallback()。closed()操作指示事务结果可供完成。redeem()操作经由IOU对象向请求者102返回所欠(owed)的数据对象。addCallback()操作可以在事务可供完成时启动第二事务请求。虽然IOU对象可以用作延迟对象708,但是可以实现延迟对象708的其它实施例。
一个与延迟对象708的使用相关联的基本问题是延迟对象708可能没有所要求的接口类型。延迟对象708可以是响应于对各种事务的请求而使用的通用工具。因此,生成模块304生成延迟对象708和转发接口706。转发接口706可以与请求应用702的接口704,以及延迟对象708的接口类型都兼容。转发接口706可以起到将延迟对象708与请求应用702相连接的适配器的作用。
转发接口706的一个示例可以包括Java程序设计语言的动态代理。当实例化时,可以向动态代理传递几个参数。这些参数可以包括目标、方法、以及参数。目标参数指示被代理的实际数据对象。在一个示例中,目标可以是延迟对象708。方法参数指示最初被请求以便执行事务的方法或函数。所指示的方法或函数可以是应答者104。‘参数’参数包括最初通过事务请求发送的数据。这些参数可以帮助动态代理确定接口704所期望的对象数据类型。
可以以其它特定形式实施本发明而不背离本发明的精神或者基本特征。所述实施例在所有方面都被认为仅仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而非前面描述表示。所有落在权利要求的等价含义和范围之内的改变都要包含在权利要求的范围之内。
Claims (30)
1、一种将同步接口转换为异步接口的设备,该设备包括:
接收模块,被配置为从同步请求者接收事务请求;
生成模块,被配置为生成延迟对象以及与所请求的返回类型兼容的转发接口;以及
返回模块,被配置为向请求者返回延迟对象与转发接口。
2、如权利要求1所述的设备,还包括阻塞模块,其被配置为阻塞来自同步请求者的另外事务请求,直到该事务可供完成为止。
3、如权利要求1所述的设备,还包括满足模块,其被配置为满足来自同步请求者的事务请求,直到该事务可供完成为止。
4、如权利要求1所述的设备,其中请求者继续处理其它的事务,直到该事务可供完成为止。
5、如权利要求1所述的设备,其中请求者同时发送多个事务请求并处理先前请求的事务的返回。
6、如权利要求1所述的设备,还包括通知模块,其被配置为当事务可供完成时,经由延迟对象通知同步请求者。
7、如权利要求1所述的设备,还包括启动模块,其被配置为当事务可供完成时,经由延迟对象启动第二事务请求。
8、如权利要求1所述的设备,还包括完成模块,其被配置为通过返回期望类型的对象来完成该事务。
9、一种将同步接口转换为异步接口的设备,该设备包括:
请求模块,被配置为发送事务请求;
接收模块,被配置为经由相关联的转发接口接收延迟对象;以及
处理模块,被配置为响应于接收到延迟对象而继续处理任务。
10、一种将同步接口转换为异步接口的系统,该系统包括:
同步请求者,被配置为发送事务请求、接收延迟对象与相关联的转发接口、并且响应于接收到延迟对象而继续处理任务;以及
应答者,被配置为从同步请求者接收事务请求、生成延迟对象以及与所请求的返回类型兼容的转发接口、并且向请求者返回延迟对象与转发接口。
11、如权利要求10所述的系统,其中应答者还被配置为阻塞来自同步请求者的另外事务请求,直到该事务可供完成为止。
12、如权利要求11所述的系统,其中应答者还被配置为满足来自同步请求者的事务请求,直到该事务可供完成为止。
13、如权利要求12所述的系统,其中应答者还被配置为,当事务可供完成时,经由延迟对象通知同步请求者。
14、如权利要求13所述的系统,其中应答者还被配置为,当事务可供完成时,经由延迟对象启动第二事务请求。
15、如权利要求14所述的系统,其中应答者还被配置为通过返回期望类型的对象来完成该事务。
16、如权利要求15所述的系统,其中请求者继续处理其它的事务直到该事务可供完成为止。
17、如权利要求16所述的系统,其中请求者同时发送多个事务请求并处理先前请求的事务的返回。
18、一种有形地实施机器可读指令程序的信号承载介质,该程序可由数字处理设备执行,以执行用于将同步接口转换为异步接口的操作,这些操作包括:
从同步请求者接收事务请求;
生成延迟对象以及与所请求的返回类型兼容的转发接口;以及
向请求者返回延迟对象与转发接口。
19、如权利要求18所述的信号承载介质,其中这些指令还包括这样的操作,即阻塞来自同步请求者的另外事务请求,直到该事务可供完成为止。
20、如权利要求18所述的信号承载介质,其中这些指令还包括这样的操作,即满足来自同步请求者的事务请求,直到该事务可供完成为止。
21、如权利要求18所述的信号承载介质,其中请求者继续处理其它的事务,直到该事务可供完成为止。
22、如权利要求18所述的信号承载介质,其中请求者同时发送多个事务请求并处理先前请求的事务的返回。
23、如权利要求18所述的信号承载介质,其中这些指令还包括这样的操作,即当该事务可供完成时经由延迟对象通知同步请求者。
24、如权利要求18所述的信号承载介质,其中,这些指令还包括这样的操作,即当该事务可供完成时经由延迟对象启动第二事务请求。
25、如权利要求18所述的信号承载介质,其中,这些指令还包括这样的操作,即通过返回期望类型的对象来完成该事务。
26、一种用于提供将同步接口转换为异步接口的服务的方法,该方法包括:
从同步请求者接收事务请求;
生成延迟对象以及与所请求的返回类型兼容的转发接口;以及
向请求者返回延迟对象与转发接口。
27、如权利要求26所述的方法,其中该方法还包括使得请求者能够继续处理其它事务,直到接收到该事务可供完成的通知为止。
28、如权利要求26所述的方法,其中该方法还包括:
当该事务可供完成时,经由延迟对象通知同步请求者;
经由延迟对象启动第二事务请求;以及
通过返回期望类型的对象来完成该事务。
29、如权利要求26所述的方法,其中完成该事务还包括经由延迟对象返回期望类型的对象。
30、一种将同步接口转换为异步接口的设备,该设备包括:
用于从同步请求者接收事务请求的装置;
用于生成延迟对象以及与所请求的返回类型兼容的转发接口的装置;以及
用于向请求者返回延迟对象与转发接口的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/991,271 US8055821B2 (en) | 2004-11-17 | 2004-11-17 | Apparatus, system, and method for converting a synchronous interface into an asynchronous interface |
US10/991,271 | 2004-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776610A true CN1776610A (zh) | 2006-05-24 |
CN100377081C CN100377081C (zh) | 2008-03-26 |
Family
ID=36568611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100992239A Expired - Fee Related CN100377081C (zh) | 2004-11-17 | 2005-09-07 | 用于把同步接口转换为异步接口的设备、系统、和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8055821B2 (zh) |
CN (1) | CN100377081C (zh) |
TW (1) | TW200630889A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442897C (zh) * | 2006-08-28 | 2008-12-10 | 华为技术有限公司 | 终端与服务器通信的方法、系统和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840748B2 (en) * | 2007-08-31 | 2010-11-23 | International Business Machines Corporation | Buffered memory module with multiple memory device data interface ports supporting double the memory capacity |
US8082482B2 (en) * | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US7865674B2 (en) * | 2007-08-31 | 2011-01-04 | International Business Machines Corporation | System for enhancing the memory bandwidth available through a memory module |
US7899983B2 (en) | 2007-08-31 | 2011-03-01 | International Business Machines Corporation | Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US8086936B2 (en) * | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US7861014B2 (en) * | 2007-08-31 | 2010-12-28 | International Business Machines Corporation | System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel |
US7818497B2 (en) * | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US8019919B2 (en) * | 2007-09-05 | 2011-09-13 | International Business Machines Corporation | Method for enhancing the memory bandwidth available through a memory module |
US7558887B2 (en) | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US7925826B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7925825B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to support a full asynchronous interface within a memory hub device |
US8140936B2 (en) * | 2008-01-24 | 2012-03-20 | International Business Machines Corporation | System for a combined error correction code and cyclic redundancy check code for a memory channel |
US7925824B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
US7930469B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to provide memory system power reduction without reducing overall memory system performance |
US7930470B2 (en) * | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US7770077B2 (en) * | 2008-01-24 | 2010-08-03 | International Business Machines Corporation | Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem |
CN103176779B (zh) * | 2011-12-21 | 2017-09-15 | 北大方正集团有限公司 | 书眉制作方法和装置 |
CN111104191B (zh) * | 2019-12-17 | 2024-04-02 | 深圳前海环融联易信息科技服务有限公司 | 接口对接方法、装置、计算机设备及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4631666A (en) | 1982-10-25 | 1986-12-23 | Burroughs Corporation | Data transfer network for variable protocol management |
US5199106A (en) * | 1986-09-19 | 1993-03-30 | International Business Machines Corporation | Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus |
US5640585A (en) | 1988-02-09 | 1997-06-17 | Ast Research, Inc. | State machine bus controller |
US5170476A (en) * | 1990-01-22 | 1992-12-08 | Motorola, Inc. | Data processor having a deferred cache load |
JPH08235111A (ja) | 1994-12-26 | 1996-09-13 | Toshiba Corp | コンピュータシステム |
US5754823A (en) | 1995-02-23 | 1998-05-19 | Datalogic, Inc. | Configurable I/O system using logic state arrays |
FI104858B (fi) * | 1995-05-29 | 2000-04-14 | Nokia Networks Oy | Menetelmä ja laitteisto asynkronisen väylän sovittamiseksi synkroniseen piiriin |
JPH0969849A (ja) * | 1995-08-31 | 1997-03-11 | Horiba Ltd | 非同期通信方法 |
US6226666B1 (en) | 1997-06-27 | 2001-05-01 | International Business Machines Corporation | Agent-based management system having an open layered architecture for synchronous and/or asynchronous messaging handling |
GB2340265B (en) * | 1998-07-31 | 2003-04-23 | Sony Uk Ltd | Data processing |
US6490623B1 (en) * | 1998-08-24 | 2002-12-03 | International Business Machines Corporation | System, method and computer readable code for encapsulating system, language and device independent communications socket functionality in a lightweight uniform communications object model |
US6848060B2 (en) * | 2001-02-27 | 2005-01-25 | International Business Machines Corporation | Synchronous to asynchronous to synchronous interface |
US9203923B2 (en) * | 2001-08-15 | 2015-12-01 | Qualcomm Incorporated | Data synchronization interface |
US6886041B2 (en) * | 2001-10-05 | 2005-04-26 | Bea Systems, Inc. | System for application server messaging with multiple dispatch pools |
US7631092B2 (en) * | 2001-10-05 | 2009-12-08 | Bea Systems, Inc. | System and method for providing a pluggable message store |
US6950959B2 (en) * | 2002-02-12 | 2005-09-27 | Fulcrum Microystems Inc. | Techniques for facilitating conversion between asynchronous and synchronous domains |
US7350184B2 (en) * | 2002-05-02 | 2008-03-25 | Bea Systems, Inc. | System and method for enterprise application interactions |
US7739351B2 (en) * | 2004-03-23 | 2010-06-15 | Salesforce.Com, Inc. | Synchronous interface to asynchronous processes |
-
2004
- 2004-11-17 US US10/991,271 patent/US8055821B2/en not_active Expired - Fee Related
-
2005
- 2005-09-07 CN CNB2005100992239A patent/CN100377081C/zh not_active Expired - Fee Related
- 2005-11-14 TW TW094139989A patent/TW200630889A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442897C (zh) * | 2006-08-28 | 2008-12-10 | 华为技术有限公司 | 终端与服务器通信的方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100377081C (zh) | 2008-03-26 |
US20060117322A1 (en) | 2006-06-01 |
US8055821B2 (en) | 2011-11-08 |
TW200630889A (en) | 2006-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1776610A (zh) | 用于把同步接口转换为异步接口的设备、系统、和方法 | |
US10114682B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
US7930701B2 (en) | JMS integration into an application server | |
CN109922158A (zh) | 基于微服务的数据处理方法、装置、介质及电子设备 | |
US20070011291A1 (en) | Grid automation bus to integrate management frameworks for dynamic grid management | |
WO2014187412A1 (zh) | 消息处理线程的控制方法及装置 | |
CN1306430C (zh) | 基于构件的用户自定义事件方法 | |
WO2014173151A1 (en) | Method, device and terminal for data processing | |
WO2018045541A1 (zh) | 一种容器分配的优化方法及处理设备 | |
US20090292765A1 (en) | Method and apparatus for providing a synchronous interface for an asynchronous service | |
CN116795647A (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
EP1351142A2 (en) | Apparatus and method of lazy connection transaction enlistment | |
CN1293463C (zh) | 用于分组互异操作的系统和方法 | |
CN113111666B (zh) | 一种实现应用程序的多语言翻译的系统及方法 | |
JP4862056B2 (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
CN113297305A (zh) | 会话状态处理方法、装置、设备和存储介质 | |
US10979359B1 (en) | Polling resource management system | |
CN1630853A (zh) | 用于构造分布式软件成分的方法 | |
CN1298508A (zh) | 执行与分布式系统中的远程过程调用相关的处理的可下载智能代理 | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
CN111459981B (zh) | 查询任务的处理方法、装置、服务器及系统 | |
CN109412973B (zh) | 一种音频处理方法、装置及存储介质 | |
CN110557428A (zh) | 一种基于Kubernetes的脚本解释型服务代理方法和系统 | |
CN112041817A (zh) | 用于管理借助于加速器装置的硬件加速的请求的方法和节点 | |
CN112306578B (zh) | 可配置数据源的DataFetcher实现系统和方法 |
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: 20080326 Termination date: 20160907 |