WO2009129732A1 - A distributed message invoking method and device - Google Patents

A distributed message invoking method and device Download PDF

Info

Publication number
WO2009129732A1
WO2009129732A1 PCT/CN2009/071364 CN2009071364W WO2009129732A1 WO 2009129732 A1 WO2009129732 A1 WO 2009129732A1 CN 2009071364 W CN2009071364 W CN 2009071364W WO 2009129732 A1 WO2009129732 A1 WO 2009129732A1
Authority
WO
WIPO (PCT)
Prior art keywords
call
message
stack information
request message
method body
Prior art date
Application number
PCT/CN2009/071364
Other languages
French (fr)
Chinese (zh)
Inventor
申海
李战杰
丁凯
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2009129732A1 publication Critical patent/WO2009129732A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Definitions

  • the specific operation method of the object implementation After the method is executed, the result will be according to the object.
  • the request delivery and execution paths are returned back to the client object.
  • the result can be output parameters, input and output parameters, return values, and exception information.
  • a stack information maintenance unit when the message sending unit sends the call request message, saves the call stack information and the current running state of the call request message to the information storage unit and exits the method body; and receives a response message at the message receiving unit When the call stack information saved in the information storage unit is restored;
  • the message invoking unit 11 includes: a message transmitting unit 111, a message receiving unit 112, an information storage unit 113, and a stack information maintaining unit 114, wherein:
  • Step 23 After receiving the response message of the foo call request message, restoring the saved call stack letter
  • Step 24 According to the restored call stack information, return to the running state before exiting the F1 method body, and continue to perform subsequent resuming.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

A distributed message invoking method and device are provided. The method includes the following steps: transmitting an invoke request message by an asynchronous invoke mode in the method body (21); preserving the invoke stack information of the invoke request message and of the current running state, and quitting the method body (22). When the response message of the invoke request message is received, resuming the preserved invoke stack information (23). The running state current before the method body was quit is then resumed according to the resumed invoke stack information, and performance of the subsequent logic (24) is continued.

Description

一种分布式调用消息的方法和装置  Method and device for distributed call message
本申请要求于 2008 年 4 月 22 日提交中国专利局、 申请号为 200810094611.1、 发明名称为 "一种分布式调用消息的方法和装置" 的中国专 利申请的优先权, 其全部内容通过引用结合在本申请中。  The present application claims priority to Chinese Patent Application No. 200810094611.1, entitled "A Method and Apparatus for Distributed Calling Messages", filed on April 22, 2008, the entire contents of In this application.
技术领域 Technical field
本发明涉及通信技术领域 , 尤其涉及一种分布式调用消息的方法和装置。 背景技术  The present invention relates to the field of communications technologies, and in particular, to a method and apparatus for distributed call messages. Background technique
软总线技术提供跨平台、 3fi吾言的组件通信能力 ,能够解决系统的分布性、 可扩展性问题,是实现分布式消息处理平台的基础。 目前业界比较有影响力的 软总线规范有 3种, 分别是: 公共对象请求代理体系结构 (CORBA, Common Object Request Broker Architecture)、 分布式组件对象模型 (DCOM, Distributed Component Object Model)和 Java2平台企业版 (J2EE, Java 2 Platform, Enterprise Edition)。 其中, CORBA 是由对象管理组织(OMG , Object Management Government)制定的一种标准的面向对象应用程序的体系规范。 DCOM是由微 软公司提出的, 支持在局域网、广域网甚至互联网上不同计算机的对象之间的 通信。 J2EE是 SUN公司提出的分布式对象总线标准。 以下以 CORBA为例简 单介绍分布式平台下调用消息的方式。  The soft bus technology provides cross-platform, 3fi, and component communication capabilities, which can solve the problem of system distribution and scalability, and is the basis for implementing a distributed message processing platform. At present, there are three influential soft bus specifications in the industry: Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM), and Java2 Platform Enterprise. Edition (J2EE, Java 2 Platform, Enterprise Edition). Among them, CORBA is a standard object-oriented application system specification developed by the Object Management Government (OMG). DCOM is proposed by Microsoft to support communication between objects on different computers in the LAN, WAN, and even the Internet. J2EE is a distributed object bus standard proposed by SUN. The following is a brief introduction to CORBA as an example of how to invoke messages under a distributed platform.
当一个客户要使用某个对象实现所提供的服务时 , 其一般过程如下: 1)客户通过某种方式找到特定对象的对象引用;  When a client wants to use an object to implement the provided service, the general process is as follows: 1) The client finds an object reference of a specific object in some way;
2) 如果该对象实现有相应的接口定义语言(IDL, Interface Definition 2) If the object implementation has a corresponding interface definition language (IDL, Interface Definition
Language)存根, 则客户可以通过该 IDL存根向对象实现发出请求, 否则, 在 接口库的协助下, 客户可以使用动态调用接口来向对象实现发送请求; Language), the client can make a request to the object implementation through the IDL stub, otherwise, with the assistance of the interface library, the client can use the dynamic call interface to send a request to the object implementation;
3) 当对象调用请求通过 IDL 存根或动态调用接口到达对象请求代理 (ORB, Object Request Broker)核心后 , ORB核心负责请求的传送, 将其传送给 相应的对象适配器;  3) After the object call request reaches the core of the Object Request Broker (ORB) through the IDL stub or the dynamic call interface, the ORB core is responsible for the transfer of the request and transmits it to the corresponding object adapter;
4)对象适配器接到该请求后, 判断所请求的对象实现是否有 IDL骨架存 在, 如果有, 则对象适配器通过该 IDL骨架调用执行对象实现的操作; 否则, 对象适配器将通过动态骨架接口中的动态实现例程来调用对象实现中的操作; 4) After receiving the request, the object adapter determines whether the requested object implementation has an IDL skeleton, and if so, the object adapter invokes an operation performed by the object through the IDL skeleton; otherwise, the object adapter passes through the dynamic skeleton interface. Dynamically implement routines to invoke operations in object implementations;
5)对象实现的特定操作方法体(method )执行完成后, 结果将按照对象 请求传递和执行路径逆向返回给客户对象, 结果可以是输出参数、输入输出参 数, 返回值以及异常信息等。 5) The specific operation method of the object implementation After the method is executed, the result will be according to the object. The request delivery and execution paths are returned back to the client object. The result can be output parameters, input and output parameters, return values, and exception information.
一般来说, 分布式调用分为两种方式: 异步调用和同步调用。 对于异步调 用, 调用后不能立即获得结果, 并且不阻塞线程而是继续执行后续逻辑。 异步 调用适合于不立即关心调用结果或者连续进行一批不相关调用的情况,以提高 效率。 对于同步调用, 调用时后续逻辑被阻塞, 直到调用完成获得结果或调用 超时。  In general, distributed calls are divided into two ways: asynchronous calls and synchronous calls. For asynchronous calls, the result is not immediately available after the call, and the subsequent logic is not blocked but the subsequent logic is continued. Asynchronous calls are useful for situations where you don't immediately care about the result of the call or make a batch of unrelated calls in succession. For synchronous calls, subsequent logic is blocked when called, until the call completes the result or the call times out.
通常, 开发者更适应于同步调用, 它看起来和本地调用一样方便, 但是由 于分布式远程调用不可能像本地调用那样立即获得结果,而是会阻塞线程直到 得到结果或超时, 这势必影响调用性能。  In general, developers are more comfortable with synchronous calls, which seems to be as convenient as local calls, but because distributed remote calls cannot get results as immediately as local calls, they block the thread until they get results or timeouts, which inevitably affects the call. performance.
如果想要提高系统的处理性能就需要使用异步调用方式, 在定义 IDL 时 需要定义两个单向的操作, 一个用于发起调用, 一个用于发送结果, 分别由调 用双方实现, 并被客户端和服务器端调用。  If you want to improve the processing performance of the system, you need to use the asynchronous call mode. When defining the IDL, you need to define two one-way operations, one for invoking the call and one for sending the result, which are implemented by the calling parties respectively, and are used by the client. And server-side calls.
在对现有技术的研究和实践过程中,本发明发明人发现在现有技术中,对 于异步调用, 用户在调用后无法马上得到返回值, 在调用的时候只管调用, 对 于调用结果需要在另外一个地方去接收和处理,这种开发方式在一定程度上打 乱了程序逻辑, 增加了开发的难度和成本, 又降低了程序可读性和可维护性。 对于应用开发来说,使用同步调用的开发效率远比异步方式高,但传统的分布 式系统的同步调用要求将线程阻塞,对于大并发量的通信系统,有限的线程资 源和高代价的锁操作会在很大程度上影响处理性能。 综上,在现有技术的分布 式调用消息的方法中 , 无法兼顾系统处理性能和业务开发效率。  In the research and practice of the prior art, the inventors of the present invention found that in the prior art, for an asynchronous call, the user cannot get the return value immediately after the call, and only calls the call when the call is made, and the call result needs to be additionally A place to receive and process, this development method to some extent disrupted the program logic, increased the difficulty and cost of development, and reduced program readability and maintainability. For application development, the development efficiency of using synchronous calls is much higher than that of asynchronous methods, but the synchronous calling of traditional distributed systems requires thread blocking. For large concurrent communication systems, limited thread resources and high-cost lock operations. Will greatly affect the processing performance. In summary, in the prior art distributed call message method, system processing performance and service development efficiency cannot be balanced.
发明内容 Summary of the invention
本发明实施例要解决的技术问题是提供一种分布式调用消息的方法和装 置, 能够兼顾系统处理性能和业务开发效率。  The technical problem to be solved by the embodiments of the present invention is to provide a method and device for distributing messages in a distributed manner, which can balance system processing performance and service development efficiency.
为解决上述技术问题,本发明所提供的分布式调用消息的方法和装置是通 过以下技术方案实现的:  To solve the above technical problem, the method and apparatus for distributed call message provided by the present invention are implemented by the following technical solutions:
本发明实施例提供了一种分布式调用消息的方法, 该方法包括: 在方法体内部采用异步方式发送调用请求消息;  An embodiment of the present invention provides a method for distributedly invoking a message, where the method includes: sending an invocation request message in an asynchronous manner within a method body;
保存所述调用请求消息的调用栈信息及当前运行状态并退出所述方法体; 当接收到所述调用请求消息的应答消息时, 恢复保存的所述调用栈信息; 根据恢复的调用栈信息, 恢复到退出所述方法体前所处运行状态, 继续执 行后续逻辑。 Saving the call stack information of the call request message and the current running state and exiting the method body; When the response message of the call request message is received, the saved call stack information is restored; according to the restored call stack information, the running state before exiting the method body is restored, and the subsequent logic is continued.
本发明实施例提供了一种分布式处理装置,该装置包括: 消息调用单元和 信息处理单元, 其中:  An embodiment of the present invention provides a distributed processing apparatus, where the apparatus includes: a message invoking unit and an information processing unit, where:
所述消息调用单元包括: 消息发送单元、 消息接收单元、 信息存储单元、 栈信息维护单元, 其中:  The message invoking unit includes: a message sending unit, a message receiving unit, an information storage unit, and a stack information maintaining unit, where:
消息发送单元, 在方法体内部采用异步方式发送调用请求消息; 消息接收单元, 接收所述调用请求消息的应答消息;  The message sending unit sends the call request message in an asynchronous manner in the method body; the message receiving unit receives the response message of the call request message;
信息存储单元, 保存调用栈信息和所述方法体当前运行状态;  An information storage unit, configured to save call stack information and a current running state of the method body;
栈信息维护单元,当所述消息发送单元发送调用请求消息后将所述调用请 求消息的调用栈信息和当前运行状态保存到信息存储单元并退出所述方法体; 在消息接收单元接收到应答消息时, 将保存在信息存储单元的调用栈信息恢 复;  a stack information maintenance unit, when the message sending unit sends the call request message, saves the call stack information and the current running state of the call request message to the information storage unit and exits the method body; and receives a response message at the message receiving unit When the call stack information saved in the information storage unit is restored;
信息处理单元,根据栈信息维护单元恢复出的调用栈信息, 恢复到退出所 述方法体前所处运行状态, 继续执行后续逻辑。  The information processing unit resumes the running state before exiting the method body according to the call stack information recovered by the stack information maintenance unit, and continues to execute the subsequent logic.
从以上技术方案可以看出,本发明实施例在方法体内部采用异步调用发送 调用请求消息, 在等待应答期间, 线程不被堵塞, 可以处理别的业务, 因此可 以保证系统的处理性能; 同时, 当接收到所述调用请求消息的应答消息时, 由 于可以通过恢复保存的栈信息直接恢复到退出所述方法体前所处运行状态,并 继续执行后续逻辑,后续逻辑可以直接应用当前方法体的调用结果,对于开发 人员来说,异步调用被封装在方法体内部,看到的只是该方法体的处理和后续 逻辑的顺序执行, 就像同步调用一样, 因此, 可以降低业务开发的复杂度, 提 高业务开发效率。 总之,本发明实施例所述的技术方案可以同时兼顾系统的处 理性能和业务开发效率。  As can be seen from the above technical solution, the embodiment of the present invention sends an invocation request message by using an asynchronous call in the method body. During the waiting for the response, the thread is not blocked, and other services can be processed, so that the processing performance of the system can be guaranteed; When the response message of the call request message is received, since the restored stack information can be directly restored to the running state before exiting the method body, and the subsequent logic is continued, the subsequent logic can directly apply the current method body. The result of the call, for the developer, the asynchronous call is encapsulated inside the method body, only the processing of the method body and the sequential execution of the subsequent logic are seen, just like the synchronous call, therefore, the complexity of the business development can be reduced. Improve business development efficiency. In summary, the technical solution described in the embodiments of the present invention can simultaneously consider the processing performance and service development efficiency of the system.
附图说明 DRAWINGS
图 1为本发明实施例中分布式处理装置实施例结构示意图;  1 is a schematic structural diagram of an embodiment of a distributed processing apparatus according to an embodiment of the present invention;
图 2为本发明实施例中分布式调用消息的方法实施例流程图;  2 is a flowchart of an embodiment of a method for distributedly calling a message according to an embodiment of the present invention;
图 3为本发明实施例中异步调用的流程图; 图 4为本发明实施例中的状态图。 3 is a flowchart of an asynchronous call in an embodiment of the present invention; Figure 4 is a state diagram of an embodiment of the present invention.
具体实施方式 detailed description
本发明实施例提供了一种分布式调用消息的方法和装置,能够同时兼顾系 统的处理性能和业务开发效率。为使本领域技术人员更好地理解和实现本发明 实施例, 以下参照附图进行伴细说明:  The embodiment of the invention provides a method and a device for distributing messages in a distributed manner, which can simultaneously consider the processing performance and service development efficiency of the system. To enable those skilled in the art to better understand and implement the embodiments of the present invention,
参照图 1, 为本发明实施例中分布式处理装置实施例结构示意图, 该分布 式处理装置包括: 消息调用单元 11和信息处理单元 12, 其中:  1 is a schematic structural diagram of an embodiment of a distributed processing apparatus according to an embodiment of the present invention. The distributed processing apparatus includes: a message invoking unit 11 and an information processing unit 12, where:
消息调用单元 11包括: 消息发送单元 111、 消息接收单元 112、 信息存储 单元 113、 栈信息维护单元 114, 其中:  The message invoking unit 11 includes: a message transmitting unit 111, a message receiving unit 112, an information storage unit 113, and a stack information maintaining unit 114, wherein:
消息发送单元 111, 在方法体( method ) 内部采用异步方式发送调用请求 消息;  The message sending unit 111 sends an invocation request message in an asynchronous manner inside the method body;
消息接收单元 112, 接收所述调用请求消息的应答消息;  The message receiving unit 112 receives the response message of the call request message;
信息存储单元 113 , 保存调用栈信息和所述方法体当前运行状态; 栈信息维护单元 114, 当所述消息发送单元 111发送调用请求消息后将所 述调用请求消息的调用栈信息和当前运行状态保存到信息存储单元 113 并退 出所述方法体; 在消息接收单元 112接收到应答消息时, 将保存在信息存储单 元 113的调用栈信息恢复;  The information storage unit 113 stores the call stack information and the current running state of the method body; the stack information maintaining unit 114, when the message sending unit 111 sends the call request message, the call stack information of the call request message and the current running state. Save to the information storage unit 113 and exit the method body; when the message receiving unit 112 receives the response message, restore the call stack information stored in the information storage unit 113;
信息处理单元 12, 根据栈信息维护单元 114恢复出的调用栈信息, 恢复 到退出所述方法体前所处运行状态, 继续执行后续逻辑。  The information processing unit 12 resumes the running state before exiting the method body according to the call stack information recovered by the stack information maintenance unit 114, and continues to execute the subsequent logic.
信息处理单元保存的调用栈信息和调用请求消息——对应 ,可以设置调用 请求消息标识与调用栈信息的对应关系,并且消息接收单元所返回的应答消息 中携带有与调用请求消息一致的标识,以使栈信息维护单元能够较快地查找到 保存的调用栈信息并恢复。  The call stack information and the call request message saved by the information processing unit, correspondingly, may set a correspondence between the call request message identifier and the call stack information, and the response message returned by the message receiving unit carries an identifier consistent with the call request message. In order to enable the stack information maintenance unit to quickly find the saved call stack information and recover.
信息处理单元执行后续逻辑可以是后续正常逻辑、超时处理逻辑,也可能 是异常处理逻辑,分别对应消息接收单元所接收到的应答消息所携带的业务调 用结果。  The subsequent processing logic of the information processing unit may be subsequent normal logic, timeout processing logic, or exception processing logic, corresponding to the service call result carried by the response message received by the message receiving unit.
可以理解的是, 所述分布式处理装置并不表示具体的设备名称,仅用于表 示可以用于分布式处理的装置。这种分布式处理装置应用范围非常广泛,可以 位于计算机、 网络中等有分布式处理装置的任何的分布式处理系统中。 对于这种分布式处理装置,可以通过消息调用单元对其他的远程服务进行 调用, 指定被调用对象和被调用方法体、设置调用参数等, 通过消息驱动状态 进行迁移, 并且在迁移前消息调用单元已经接收返回结果,信息处理单元可以 直接利用该返回结果, 所以, 从使用体验上来看, 异步调用被封装在方法体内 部, 开发人员看到的只是该方法体的处理和后续逻辑的顺序执行,和同步调用 完全相同 , 因此这种分布式处理装置的消息调用方式对开发人员来讲更友好, 可以降低业务开发的复杂度, 提高业务开发效率。 而在消息调用单元内部, 使 用异步方式进行消息调用, 在等待消息应答期间, 线程不会被堵塞, 可以继续 处理别的业务, 因此同时也可以保证系统的处理性能。 综上, 这种分布式处理 装置既能提高业务开发效率, 又能兼顾系统处理性能。 It can be understood that the distributed processing device does not represent a specific device name and is only used to indicate a device that can be used for distributed processing. Such distributed processing devices are widely used in any distributed processing system, such as computers, networks, and distributed processing devices. For such a distributed processing device, other remote services can be called by the message invoking unit, specify the called object and the called method body, set the calling parameters, etc., migrate through the message driving state, and call the message unit before the migration. The return result has been received, and the information processing unit can directly utilize the returned result. Therefore, from the perspective of the use experience, the asynchronous call is encapsulated inside the method body, and the developer sees only the processing of the method body and the sequential execution of the subsequent logic. It is exactly the same as the synchronous call, so the message calling mode of the distributed processing device is more friendly to the developer, which can reduce the complexity of business development and improve the efficiency of business development. In the message invoking unit, the message is invoked in an asynchronous manner. During the waiting for the message to be acknowledged, the thread will not be blocked and can continue to process other services, so that the processing performance of the system can also be guaranteed. In summary, this distributed processing device can not only improve the efficiency of business development, but also balance the processing performance of the system.
参照图 2, 为一个分布式调用消息的方法实施例流程图, 以下通过方法体 F1中的具体调用过程进行说明:  Referring to FIG. 2, a flow chart of a method embodiment of a distributed call message is described below by a specific calling process in the method body F1:
步骤 21、 在方法体 F1中采用异步调用方式发送 foo调用请求消息并执行 步骤 22;  Step 21: Send a foo call request message in the method body F1 by using an asynchronous call mode and execute step 22;
其中, 方法体(method )为类的成员, 是与类关联的函数, 可以访问所在 类中的元素。  The method body is a member of the class and is a function associated with the class, which can access the elements in the class.
对于上述异步调用方式,参照图 3 ,为本发明实施例中异步调用的流程图, 在分布式系统中进行一来一回两次异步调用的具体过程如下:  For the above asynchronous calling mode, referring to FIG. 3, it is a flowchart of asynchronous calling in the embodiment of the present invention. The specific process of performing one-to-one asynchronous calling in a distributed system is as follows:
步骤 211、 调用者向被调用者发起调用请求;  Step 211: The caller initiates a call request to the callee.
调用者发起调用后, 继续执行后续逻辑。  After the caller initiates the call, the subsequent logic continues.
步骤 212、 被调用者接收到请求后进行处理;  Step 212: The callee performs processing after receiving the request;
步骤 213、 被调用者发起调用请求, 其中携带有处理调用者请求所得到的 结果。  Step 213: The callee initiates a call request, where the result obtained by processing the caller request is carried.
步骤 214、 调用者接收被调用者的调用请求, 进行处理, 得到处理结果。 步骤 22、保存 foo调用请求消息的调用栈信息及当前运行状态并退出方法 体 F1 ;  Step 214: The caller receives the call request of the callee, performs processing, and obtains a processing result. Step 22: save the call stack information of the foo call request message and the current running state and exit the method body F1;
在退出方法体 F1前保存所述调用栈信息及当前运行状态, 然后释放当前 线程, 此后线程可以继续处理其他调用, 以保证系统的处理性能。  The call stack information and the current running state are saved before exiting the method body F1, and then the current thread is released, after which the thread can continue to process other calls to ensure the processing performance of the system.
步骤 23、 当接收到 foo调用请求消息的应答消息后,恢复保存的调用栈信 步骤 24、根据恢复的调用栈信息,恢复到退出 F1方法体前所处运行状态, 继续执行后续還辑。 Step 23: After receiving the response message of the foo call request message, restoring the saved call stack letter Step 24: According to the restored call stack information, return to the running state before exiting the F1 method body, and continue to perform subsequent resuming.
调度线程根据恢复的调用栈信息再次调度进入方法体 F1后, 从退出方法 体 F1前的运行状态继续执行后续逻辑,直到方法体 F1逻辑结束并退出方法体 Fl。  After the scheduling thread re-schedules into the method body F1 according to the restored call stack information, the subsequent logic is executed from the running state before the method body F1 is exited until the method body F1 ends logically and exits the method body F1.
由于后续逻辑可以直接使用步骤 23应答消息中所返回的调用结果,因此, 从开发人员来看, 与同步调用方式相同, 不需要打乱业务逻辑, 因此可以降低 业务开发的复杂度, 提高业务开发效率。  Since the subsequent logic can directly use the result of the call returned in the response message in step 23, from the developer's point of view, the same as the synchronous call mode, the business logic does not need to be disrupted, so the complexity of the business development can be reduced, and the business development can be improved. effectiveness.
其中, 为了较快地查找到保存的调用栈信息, 迅速恢复到退出方法体 F1 前所处运行状态 ,可以设置调用栈信息与调用请求消息和调用应答消息的对应 关系,具体为:预先设定调用请求消息的标识与该请求消息对应的应答消息具 有相同的标识 (ID, Identification), 在保存调用栈信息的同时, 保存该调用栈信 息对应的调用请求消息的 ID, 当接收到所述调用请求消息的应答消息时, 查 找与应答消息具有相同 ID的调用栈信息, 进而恢复该调用栈信息及退出方法 体前所处运行状态, 执行后续逻辑。  In order to quickly find the saved call stack information and quickly return to the running state before exiting the method body F1, the correspondence between the call stack information and the call request message and the call response message may be set, specifically: preset The identifier of the call request message has the same identifier (ID, Identification) as the response message corresponding to the request message, and the ID of the call request message corresponding to the call stack information is saved while the call stack information is saved, when the call is received. When requesting the response message of the message, the call stack information having the same ID as the response message is searched, and then the call stack information is restored and the running state before the method body is exited, and the subsequent logic is executed.
为便于理解,这种方法可以采用状态图对应用服务的逻辑进行描述,可以 定义一系列状态, 由消息驱动状态进行迁移。 参照图 4, 为本发明实施例中的 状态图, 其中, 服务调用图元( ServiceCall ) 41可以表示对其他远程服务的调 用, 如指定被调用对象和被调用方法体, 设置调用参数等, 并且在继续迁移前 已经接收返回值, 下一状态可以直接使用返回值, 所以从使用体验上看, 和同 步调用完全相同。 服务调用图元有三种出口: 调用正常出口、调用异常出口和 调用超时出口, 分别对应业务调用的三种结果: 下一状态 42、 异常处理 43和 超时处理 44。  For ease of understanding, this method can describe the logic of the application service using a state diagram, which can define a series of states that are migrated by the message-driven state. Referring to FIG. 4, a state diagram in an embodiment of the present invention, where a service call element (ServiceCall) 41 may represent a call to another remote service, such as specifying a called object and a called method body, setting a call parameter, etc., and The return value has been received before proceeding with the migration, and the next state can directly use the return value, so from the experience, it is exactly the same as the synchronous call. The service call primitive has three types of exits: call normal exit, call exception exit, and call timeout exit, which correspond to the three results of the service call: next state 42, exception handling 43, and timeout processing 44.
如果在状态图中以同步调用的方式调用了远端方法体 foo, 其处理过程如 下: 在方法体 F1内部采用异步方式发送 foo请求后会中途退出方法体 Fl, 退 出前要把调用栈信息以及当前运行状态保存下来, 然后释放当前线程,此时线 程可以继续处理其他调用, 等到 foo请求的应答消息到达后, 调度线程再次调 度进入方法体 F1 , 此时要恢复上次退出时保存的调用栈信息和退出前所处当 前运行状态, 然后从退出前状态继续执行后续逻辑, 直到方法体 F1的逻辑结 束并退出方法体 Fl。 If the remote method body foo is called in the state diagram by synchronous call, the processing procedure is as follows: After the foo request is sent asynchronously in the method body F1, the method body Fl is halfway out, and the call stack information is The current running state is saved, and then the current thread is released. At this time, the thread can continue to process other calls. After the response message of the foo request arrives, the scheduling thread reschedules into the method body F1, and the call stack saved at the last exit is restored. Information and where you left off before exiting The pre-run state, and then continue to execute the subsequent logic from the pre-exit state until the logic of the method body F1 ends and exits the method body F1.
这里例举的仅仅是一种实现方案,可以理解的是, 为了达到调用栈信息保 存和恢复的目的, 并不仅限于此种方案。  What is exemplified here is only an implementation solution. It can be understood that, in order to achieve the purpose of saving and recovering call stack information, it is not limited to such a scheme.
从该技术方案可以看出,通过在方法体内部采用异步调用方式发送调用请 求消息, 在等待应答期间, 线程被释放, 可以处理别的调用请求, 因此可以保 证系统的处理性能; 同时, 当接收到所述调用请求消息的应答消息后, 可以根 据保存的调用栈信息直接恢复到退出所述方法体前所处运行状态,继续执行后 续逻辑, 因此, 后续逻辑可以直接应用当前方法体的调用结果, 对于开发人员 来说,看到的只是该方法体的处理和后续逻辑的顺序执行,执行逻辑并没有被 打乱, 因此, 可以降低业务开发的复杂度, 提高业务开发效率。 综上可知, 本 发明实施例可以兼顾系统处理性能与业务开发效率。  It can be seen from the technical solution that the call request message is sent by using an asynchronous call mode inside the method body, and during the waiting for the response, the thread is released, and other call requests can be processed, thereby ensuring the processing performance of the system; meanwhile, when receiving After the response message of the call request message is received, the saved call stack information may be directly restored to the running state before exiting the method body, and the subsequent logic is continued to be executed. Therefore, the subsequent logic may directly apply the call result of the current method body. For the developer, what is seen is only the processing of the method body and the sequential execution of the subsequent logic. The execution logic is not disturbed. Therefore, the complexity of business development can be reduced, and the efficiency of business development can be improved. In summary, the embodiments of the present invention can balance system processing performance and service development efficiency.
以下通过具体的应用场景 ,对本发明实施例中分布式调用消息的方法进行 详细描述:  The method for the distributed call message in the embodiment of the present invention is described in detail below through a specific application scenario:
具体场景为: 类 CDemoClass调用远端 IF2接口 , 在类 CDemoClass中的 方法体 StateProcess中实现分布式调用, 以下通过具体步骤进行伴细说明: 步骤 51、 类 CDemoClass启动后, 进入方法体 StateProcess的同时将自身 的一个 Context成员 m— StateContext传入作为 Context类链表的才艮节点;  The specific scenario is as follows: The class CDemoClass calls the remote IF2 interface, and implements the distributed call in the method body StateProcess in the class CDemoClass. The following steps are described in detail with specific steps: Step 51: After the CDemoClass starts, enter the method body StateProcess A Context member of its own m-StateContext is passed as a node of the Context class linked list;
步骤 52、 方法体 StateProcess在方法体内部创建 CStateProcessContext实 例并保存在 Context类链表上;  Step 52: The method body StateProcess creates a CStateProcessContext instance inside the method body and saves it in the Context class linked list;
步骤 53、 方法体 StateProcess从初始状态开始迁移;  Step 53: The method body StateProcess starts to migrate from the initial state;
步骤 54、 当方法体 StateProcess迁移到方法体调用状态, 此时需要调用远 端的 IF2:: foo(int a)接口方法体;  Step 54: When the method body StateProcess is migrated to the method body call state, the IF2::foo(int a) interface method body needs to be called at the remote end;
1) 首先产生一个本地代理 IF2存根类型的对象, 然后调用 IF2存根的 foo 方法体;  1) First generate an object of the local proxy IF2 stub type, and then call the foo method body of the IF2 stub;
2) 在 IF2 存才 的方法体内部又会创建一个 Context 类实例并保存在 Context类链表上, 然后进入 foo方法体的状态机, 该状态机有两个状态: 发 送请求状态和接收应答状态;  2) Inside the method body of IF2, a Context class instance is created and saved in the Context class list, and then enters the state machine of the foo method body. The state machine has two states: the send request status and the receive response status;
3) 首先进入发送请求状态, 按照异步调用方式构造一个调用请求消息并 通过软总线发送出去,发送后将当前运行状态设置为接收应答状态, 并且需要 等待应答消息, 然后退出方法体 StateProcess, 释放调度线程, 此时所有的调 用栈信息都保存在 Context类中。 3) First enter the send request state, construct a call request message according to the asynchronous call mode and After being sent out through the soft bus, after sending, the current running state is set to the receiving response state, and the response message needs to be waited, and then the method body StateProcess is released, and the scheduling thread is released. At this time, all the call stack information is saved in the Context class.
可以将被调用对象、方法体和调用参数等调用信息构造成调用请求消息并 发送。  Call information such as the called object, method body, and call parameters can be constructed as a call request message and sent.
步骤 55、当收到软总线上返回的应答消息时,再次调进方法体 StateProcess 内部,并根据应答消息的 ID从 Context链中找到当前 Context对象并恢复上次 调用栈信息, 从退出点继续执行, 再次进入 IF2存根的方法体, 直接迁移到接 收请求状态, 取出应答消息中的返回值返回;  Step 55: When receiving the response message returned on the soft bus, re-enter the method body StateProcess again, and find the current Context object from the Context chain according to the ID of the response message and resume the last call stack information, and continue execution from the exit point. , the method body that enters the IF2 stub again, directly migrates to the receiving request state, and returns the return value in the response message to return;
步骤 56、 继续执行后续处理逻辑, 所述后续处理逻辑可以直接使用方法 体 StateProcess调用的返回值。  Step 56: Continue to execute subsequent processing logic, and the subsequent processing logic may directly use the return value of the method body StateProcess call.
可以看出, 该实施例中由于在方法体 StateProcess内部采用异步方式发送 调用请求消息,发送后将当前运行状态设置为接收应答状态, 并且需要等待应 答消息, 然后退出方法体 StateProcess, 释放调度线程, 此时所有的调用栈信 息都保存在 Context类中。 当收到应答消息时, 再次调进方法体 StateProcess 内部,并根据应答消息的 ID从 Context链中找到当前 Context对象并恢复上次 调用栈信息, 从退出点继续执行, 再次进入 IF2存根的方法体, 直接迁移到接 收请求状态, 取出应答消息中的返回值返回, 并继续执行后来处理逻辑, 所述 后续处理逻辑可以直接使用方法体 StateProcess调用的返回值。 因此, 在等待 应答期间, 线程可以处理别的业务, 不占用线程, 与同步调用相比, 可以保证 系统的处理性能; 而对于开发人员来说, 当接收到所述调用请求消息的应答消 息后, 可以根据保存的调用栈信息直接恢复到退出所述方法体前所处运行状 态,继续执行后续逻辑, 因此,后续逻辑可以直接应用当前方法体的调用结果, 对于开发人员来说,看到的只是该方法体的处理和后续逻辑的顺序执行,执行 逻辑并没有被打乱, 因此, 可以降低业务开发的复杂度, 提高业务开发效率。 综上可知,该实施例所采用的调用消息的方法可以同时兼顾系统的处理性能与 业务开发效率。  It can be seen that, in this embodiment, since the call request message is sent in the asynchronous manner in the method body StateProcess, after the sending, the current running state is set to the receiving response state, and the response message needs to be waited, and then the method body StateProcess is released, and the scheduling thread is released. At this point all call stack information is stored in the Context class. When receiving the response message, it is again loaded into the method body StateProcess, and the current Context object is found from the Context chain according to the ID of the response message and the last call stack information is restored, and execution continues from the exit point, and the method body of the IF2 stub is again entered. Directly migrating to the receive request state, returning the return value in the response message, and continuing to execute the post-processing logic, which can directly use the return value invoked by the method body StateProcess. Therefore, during the waiting for the response, the thread can process other services, does not occupy the thread, and can ensure the processing performance of the system compared with the synchronous call; and for the developer, after receiving the response message of the call request message According to the saved call stack information, it can directly restore to the running state before exiting the method body, and continue to execute the subsequent logic. Therefore, the subsequent logic can directly apply the calling result of the current method body, and the developer sees Only the processing of the method body and the sequential execution of the subsequent logic, the execution logic is not disturbed, therefore, the complexity of business development can be reduced, and the efficiency of business development can be improved. In summary, the method for invoking messages used in this embodiment can simultaneously consider the processing performance and service development efficiency of the system.
与上一实施例的不同之处在于,该技术方案采用了不同的调用栈信息保存 和恢复方法, 该方法具体为: 首先定义一种用于保存上下文关系的辅助类: 上 下文 (Context)类, 事实上, 可以对每个方法体生成对应的 Context类, 把方法 体的参数和局部变量作为该 Context类的成员, 在对应方法体中, 对参数和局 部变量的访问全部转换为访问 Context类的成员。 并且, 在进入方法体时, 都 把该方法体的 Context类对象链接到上一层方法体的 Context类对象上, 由此 可以形成一个 Context链, 所以即使中途退出以后还可以方便地找到整个 Context链。 The difference from the previous embodiment is that the technical solution adopts different call stack information saving and restoring methods, and the method is specifically: Firstly, an auxiliary class for saving a context relationship is defined: The following (Context) class, in fact, can generate a corresponding Context class for each method body, the method body parameters and local variables as members of the Context class, in the corresponding method body, access to parameters and local variables Convert to a member of the Context class. Moreover, when entering the method body, the Context object of the method body is linked to the Context class object of the upper method body, thereby forming a Context chain, so that the entire Context can be conveniently found even after the middle exit. chain.
当进行分布式远程调用时,会把调用信息构造成请求消息, 并通过软总线 发送, 该消息由一个唯一的消息 ID进行标识, 将该消息 ID存储在调用的 Context中; 而应答消息的 ID与前面发送的调用请求消息的 ID是一致的, 因 此, 当应答消息返回时, 可以 据应答消息的 ID找到对应的 Context对象, 再从中恢复出保存的调用栈信息。  When a distributed remote call is made, the call information is constructed as a request message and sent over the soft bus, the message is identified by a unique message ID, which is stored in the called Context; and the ID of the reply message It is consistent with the ID of the previously sent call request message. Therefore, when the response message returns, the corresponding Context object can be found according to the ID of the response message, and the saved call stack information is restored therefrom.
这里例举的仅仅是一种实现方案,可以理解的是, 为了达到调用栈信息保 存和恢复的目的, 并不仅限于此种方案。  What is exemplified here is only an implementation solution. It can be understood that, in order to achieve the purpose of saving and recovering call stack information, it is not limited to such a scheme.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可 读存储介质中, 该程序在执行时, 包括如下步骤:  It will be understood by those skilled in the art that all or part of the steps of implementing the foregoing embodiments may be performed by a program to instruct related hardware, and the program may be stored in a computer readable storage medium. , including the following steps:
在方法体内部采用异步方式发送调用请求消息;  Sending a call request message asynchronously within the method body;
保存所述调用请求消息的调用栈信息及当前运行状态并退出所述方法体; 当接收到所述调用请求消息的应答消息时, 恢复保存的所述调用栈信息; 根据恢复的调用栈信息, 恢复到退出所述方法体前所处运行状态, 继续执 行后续逻辑。  Saving the call stack information of the call request message and the current running state and exiting the method body; when receiving the response message of the call request message, restoring the saved call stack information; according to the restored call stack information, Resume to the running state before exiting the method body, and continue to execute the subsequent logic.
上述提到的存储介质可以是只读存储器, 磁盘或光盘等。  The above-mentioned storage medium may be a read only memory, a magnetic disk or an optical disk or the like.
以上对本发明所提供的一种分布式调用消息的方法和装置进行了详细介 绍, 对于本领域的一般技术人员, 依据本发明实施例的思想, 在具体实施方式 及应用范围上均会有改变之处, 综上所述,本说明书内容不应理解为对本发明 的限制。  The method and apparatus for distributed call message provided by the present invention are described in detail above. For those skilled in the art, according to the idea of the embodiment of the present invention, the specific implementation manner and the application range may be changed. In the above, the contents of this specification are not to be construed as limiting the invention.

Claims

权 利 要 求 Rights request
1. 一种分布式调用消息的方法, 其特征在于, 包括:  A method for distributedly invoking a message, comprising:
在方法体内部采用异步方式发送调用请求消息;  Sending a call request message asynchronously within the method body;
保存所述调用请求消息的调用栈信息及当前运行状态并退出所述方法体; 当接收到所述调用请求消息的应答消息时, 恢复保存的所述调用栈信息; 根据恢复的调用栈信息, 恢复到退出所述方法体前所处运行状态, 继续执 行后续逻辑。  Saving the call stack information of the call request message and the current running state and exiting the method body; when receiving the response message of the call request message, restoring the saved call stack information; according to the restored call stack information, Resume to the running state before exiting the method body, and continue to execute the subsequent logic.
2. 如权利要求 1 所述的分布式调用消息的方法, 其特征在于, 保存所述 调用请求消息的调用栈信息具体为:保存所述调用请求消息的标识和对应的调 用栈信息;  The method for the distributed call message according to claim 1, wherein the information of the call stack for saving the call request message is specifically: saving an identifier of the call request message and corresponding call stack information;
恢复保存的所述调用栈信息具体为:根据接收到的所述调用请求消息对应 的应答消息的标识, 查找保存有相同标识的调用栈信息并恢复, 其中, 预设所 述应答消息的标识与调用请求消息的标识一致。  Recovering the saved call stack information is: searching and recovering the call stack information with the same identifier according to the received identifier of the response message corresponding to the call request message, where the identifier of the response message is preset The identifier of the call request message is the same.
3. 如权利要求 1 所述的分布式调用消息的方法, 其特征在于, 保存所述 调用请求消息的调用栈信息的方法具体为:  The method for the distributed call message according to claim 1, wherein the method for saving the call stack information of the call request message is:
将调用请求消息的标识及调用栈信息保存在预设的上下文类中,所述上下 文类中类对象与方法体——对应,且所述方法体对应的类对象链接到上一层方 法体的类对象上形成上下文类链表;  The identifier of the call request message and the call stack information are saved in a preset context class, where the class object corresponds to the method body, and the class object corresponding to the method body is linked to the upper method body. Forming a context class linked list on the class object;
所述恢复保存的调用栈信息具体为:查找与所述应答消息的标识一致的类 对象, 再将保存的该类对象对应的调用栈信息恢复, 其中, 预设所述应答消息 的标识与调用请求消息的标识一致。  The call stack information that is saved and saved is specifically: searching for a class object that is consistent with the identifier of the response message, and then restoring the saved call stack information corresponding to the type of the object, where the identifier and the call of the response message are preset. The identifier of the request message is the same.
4. 如权利要求 1至 3任一项所述的分布式调用消息的方法, 其特征在于, 所述保存的调用栈信息包括: 被调用对象、 方法体、 调用参数。  The method for the distributed call message according to any one of claims 1 to 3, wherein the saved call stack information comprises: a called object, a method body, and a calling parameter.
5. 如权利要求 1至 3任一项所述的分布式调用消息的方法, 其特征在于, 所述执行后续逻辑具体为: 执行后续正常逻辑、执行超时处理逻辑或者执行异 常处理逻辑其中之一。  The method for distributing a message according to any one of claims 1 to 3, wherein the executing the subsequent logic is specifically: executing one of the subsequent normal logic, executing the timeout processing logic, or executing the exception processing logic. .
6. 一种分布式处理装置, 其特征在于, 包括: 消息调用单元和信息处理 单元, 其中:  A distributed processing device, comprising: a message invoking unit and an information processing unit, wherein:
所述消息调用单元包括: 消息发送单元、 消息接收单元、 信息存储单元、 栈信息维护单元, 其中: The message invoking unit includes: a message sending unit, a message receiving unit, an information storage unit, Stack information maintenance unit, where:
消息发送单元, 在方法体内部采用异步方式发送调用请求消息; 消息接收单元, 接收所述调用请求消息的应答消息;  The message sending unit sends the call request message in an asynchronous manner in the method body; the message receiving unit receives the response message of the call request message;
信息存储单元, 保存调用栈信息和所述方法体当前运行状态;  An information storage unit, configured to save call stack information and a current running state of the method body;
栈信息维护单元,当所述消息发送单元发送调用请求消息后将所述调用请 求消息的调用栈信息和当前运行状态保存到信息存储单元并退出所述方法体; 在消息接收单元接收到应答消息时, 将保存在信息存储单元的调用栈信息恢 复;  a stack information maintenance unit, when the message sending unit sends the call request message, saves the call stack information and the current running state of the call request message to the information storage unit and exits the method body; and receives a response message at the message receiving unit When the call stack information saved in the information storage unit is restored;
信息处理单元,根据栈信息维护单元恢复出的调用栈信息, 恢复到退出所 述方法体前所处运行状态, 继续执行后续逻辑。  The information processing unit resumes the running state before exiting the method body according to the call stack information recovered by the stack information maintenance unit, and continues to execute the subsequent logic.
PCT/CN2009/071364 2008-04-22 2009-04-20 A distributed message invoking method and device WO2009129732A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2008100946111A CN101262498B (en) 2008-04-22 2008-04-22 A distributed message call method and device
CN200810094611.1 2008-04-22

Publications (1)

Publication Number Publication Date
WO2009129732A1 true WO2009129732A1 (en) 2009-10-29

Family

ID=39962698

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/071364 WO2009129732A1 (en) 2008-04-22 2009-04-20 A distributed message invoking method and device

Country Status (2)

Country Link
CN (1) CN101262498B (en)
WO (1) WO2009129732A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879756A (en) * 2019-10-31 2020-03-13 深圳市泰洲科技有限公司 Method and device for processing abnormal cooperation process, computer equipment and storage medium
CN111383312A (en) * 2020-03-20 2020-07-07 厦门渊亭信息科技有限公司 Large-scale knowledge graph visualization method and device based on particle system

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262498B (en) * 2008-04-22 2011-01-05 华为技术有限公司 A distributed message call method and device
CN103607476B (en) * 2013-12-05 2017-05-17 上海普坤信息科技有限公司 System and method for distributed multi-stage persistence of huge number of messages
CN104731650A (en) * 2013-12-18 2015-06-24 青岛海尔空调器有限总公司 Acquisition method and device for system interface call information
CN106445692B (en) * 2015-08-12 2020-07-24 腾讯科技(深圳)有限公司 Network service control method and device
CN106713238B (en) * 2015-11-16 2020-10-30 阿里巴巴集团控股有限公司 Remote procedure calling method, device and system
CN106293522A (en) * 2016-08-03 2017-01-04 浪潮(北京)电子信息产业有限公司 A kind of storage performance optimization method based on TGT and device
CN107402826B (en) * 2017-06-30 2018-09-21 武汉斗鱼网络科技有限公司 A kind of method and device carrying out remote procedure call in an asynchronous manner
CN109491777A (en) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 Task executing method, device, equipment and storage medium
CN113676504B (en) * 2020-05-14 2022-12-27 华为技术有限公司 Low-power-consumption distributed calling method, equipment and device
CN112835836B (en) * 2021-01-29 2022-04-08 郑州信大捷安信息技术股份有限公司 Method and device for information interaction between host and smart card

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1325217A (en) * 2000-08-29 2001-12-05 深圳市中兴通讯股份有限公司 Distributed communication system and method
WO2004003770A1 (en) * 2002-06-27 2004-01-08 Bea Systems, Inc. System and method for web services java api-based invocation
CN1564137A (en) * 2004-04-09 2005-01-12 中兴通讯股份有限公司 Method of parallel regulating multi-task of imbedding system
CN1614555A (en) * 2003-11-06 2005-05-11 国际商业机器公司 Apparatus and method for autonomic hardware assisted thread stack tracking
CN1790270A (en) * 2005-12-14 2006-06-21 浙江大学 Java virtual machine implementation method supporting multi-process
CN101042660A (en) * 2006-03-23 2007-09-26 松下电器产业株式会社 Method of task execution environment switch in multitask system
CN101262498A (en) * 2008-04-22 2008-09-10 华为技术有限公司 A distributed message call method and device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1325217A (en) * 2000-08-29 2001-12-05 深圳市中兴通讯股份有限公司 Distributed communication system and method
WO2004003770A1 (en) * 2002-06-27 2004-01-08 Bea Systems, Inc. System and method for web services java api-based invocation
CN1614555A (en) * 2003-11-06 2005-05-11 国际商业机器公司 Apparatus and method for autonomic hardware assisted thread stack tracking
CN1564137A (en) * 2004-04-09 2005-01-12 中兴通讯股份有限公司 Method of parallel regulating multi-task of imbedding system
CN1790270A (en) * 2005-12-14 2006-06-21 浙江大学 Java virtual machine implementation method supporting multi-process
CN101042660A (en) * 2006-03-23 2007-09-26 松下电器产业株式会社 Method of task execution environment switch in multitask system
CN101262498A (en) * 2008-04-22 2008-09-10 华为技术有限公司 A distributed message call method and device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879756A (en) * 2019-10-31 2020-03-13 深圳市泰洲科技有限公司 Method and device for processing abnormal cooperation process, computer equipment and storage medium
CN110879756B (en) * 2019-10-31 2023-10-17 深圳市泰洲科技有限公司 Collaborative process exception handling method, collaborative process exception handling device, computer equipment and storage medium
CN111383312A (en) * 2020-03-20 2020-07-07 厦门渊亭信息科技有限公司 Large-scale knowledge graph visualization method and device based on particle system
CN111383312B (en) * 2020-03-20 2023-03-31 厦门渊亭信息科技有限公司 Large-scale knowledge graph visualization method based on particle system

Also Published As

Publication number Publication date
CN101262498B (en) 2011-01-05
CN101262498A (en) 2008-09-10

Similar Documents

Publication Publication Date Title
WO2009129732A1 (en) A distributed message invoking method and device
US9553944B2 (en) Application server platform for telecom-based applications using an actor container
Schmidt Applying patterns and frameworks to develop object-oriented communication software
JP3251800B2 (en) Communication system for exchanging data between computers in a network
US8713186B2 (en) Server-side connection resource pooling
CN106161537B (en) Method, device and system for processing remote procedure call and electronic equipment
US7415470B2 (en) Capturing and re-creating the state of a queue when migrating a session
WO2020207091A1 (en) Management client, and device monitoring system and method
US9231995B2 (en) System and method for providing asynchrony in web services
Pipatsakulroj et al. muMQ: A lightweight and scalable MQTT broker
JP2014528116A (en) Distributed resource management in portable computing devices
WO2018077284A1 (en) Communication method and system, electronic device and computer cluster
US20150106825A1 (en) Durable execution of long running applications
JP2004536382A (en) Systems, methods, and articles of manufacture using replaceable components to select network communication channel components with replaceable quality of service features
WO2022257247A1 (en) Data processing method and apparatus, and computer-readable storage medium
WO2013152565A1 (en) Capability aggregation and exposure method and system
CN113641410A (en) Netty-based high-performance gateway system processing method and system
WO2023046141A1 (en) Acceleration framework and acceleration method for database network load performance, and device
WO2023169267A1 (en) Network device-based data processing method and network device
JPH11353182A (en) Method and device for efficient representation of variable-length identifier in decentralized object system
JP4976128B2 (en) Transparent session transport between servers
Huang Android IPC mechanism
CN109669793B (en) Object calling method in middleware process
US6934953B2 (en) Deferred procedure call in interface description language
Rosa et al. INSANE: A Unified Middleware for QoS-aware Network Acceleration in Edge Cloud Computing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09735185

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09735185

Country of ref document: EP

Kind code of ref document: A1