JP2024173034A - Information processing method and server system - Google Patents

Information processing method and server system Download PDF

Info

Publication number
JP2024173034A
JP2024173034A JP2023091149A JP2023091149A JP2024173034A JP 2024173034 A JP2024173034 A JP 2024173034A JP 2023091149 A JP2023091149 A JP 2023091149A JP 2023091149 A JP2023091149 A JP 2023091149A JP 2024173034 A JP2024173034 A JP 2024173034A
Authority
JP
Japan
Prior art keywords
server
information
component
limitation
rpc
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.)
Pending
Application number
JP2023091149A
Other languages
Japanese (ja)
Inventor
雅仁 室井
Masahito Muroi
光宏 谷野
Mitsuhiro Yano
勇志郎 古川
Yushiro Furukawa
翔 王
Xiang Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LY Corp
Original Assignee
LY Corp
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 LY Corp filed Critical LY Corp
Priority to JP2023091149A priority Critical patent/JP2024173034A/en
Publication of JP2024173034A publication Critical patent/JP2024173034A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】プロセス間通信を行うサーバシステムの可用性向上を実現する。【解決手段】第1サーバから少なくとも第2サーバへのプロセス間通信を行うサーバシステムの情報処理方法であって、サーバシステムは、プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバを含み、第1サーバは、第2サーバを特定するための第1情報を解決サーバから受信し、第1情報に基づき、第2サーバにプロセス間通信の処理を要求するための第2情報を送信し、第2サーバは、第1サーバから第2情報を受信し、第2情報に基づく第1処理を実行する。【選択図】図1-1[Problem] To improve the availability of a server system that performs inter-process communication. [Solution] An information processing method for a server system that performs inter-process communication from a first server to at least a second server, the server system includes a resolution server that executes processing related to identifying an inter-process communication destination in the inter-process communication, the first server receives first information for identifying the second server from the resolution server, and transmits second information for requesting processing of the inter-process communication to the second server based on the first information, and the second server receives the second information from the first server and executes the first processing based on the second information. [Selected Figure] Figure 1-1

Description

本開示は、情報処理方法、サーバシステム等に関する。 This disclosure relates to information processing methods, server systems, etc.

クラウドコンピューティング等における分散アプリケーション処理を実現するために、複数のアプリケーション間において協調動作を行う仕組みとしてメッセージ通信が必要とされている。例えば、特許文献1には、メッセージキューを制御してメッセージ通信を実現するシステムが開示されている。 To realize distributed application processing in cloud computing and the like, message communication is required as a mechanism for cooperative operation between multiple applications. For example, Patent Document 1 discloses a system that realizes message communication by controlling a message queue.

特開2005-004356号公報JP 2005-004356 A

本発明の第1の態様によると、第1サーバから少なくとも第2サーバへのプロセス間通信を行うサーバシステムの情報処理方法であって、サーバシステムは、プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバを含み、第1サーバは、第2サーバを特定するための第1情報を解決サーバから受信し、第1情報に基づき、第2サーバにプロセス間通信の処理を要求するための第2情報を送信し、第2サーバは、第1サーバから第2情報を受信し、第2情報に基づく第1処理を実行する。
本発明の第2の態様によると、第1サーバから少なくとも第2サーバへのプロセス間通信を行うサーバシステムであって、サーバシステムは、プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバを含み、第1サーバは、第2サーバを特定するための第1情報を解決サーバから受信し、第1情報に基づき、第2サーバにプロセス間通信の処理を要求するための第2情報を送信する通信部を備え、第2サーバは、第1サーバから第2情報を受信する通信部と、第2情報に基づく第1処理を実行する制御部とを備える。
According to a first aspect of the present invention, there is provided an information processing method for a server system performing inter-process communication from a first server to at least a second server, the server system including a resolution server that performs processing related to identifying an inter-process communication destination in the inter-process communication, the first server receives first information for identifying the second server from the resolution server and transmits second information to the second server based on the first information for requesting processing of the inter-process communication, and the second server receives the second information from the first server and performs the first processing based on the second information.
According to a second aspect of the present invention, there is provided a server system that performs inter-process communication from a first server to at least a second server, the server system including a resolution server that performs processing related to identifying an inter-process communication destination in the inter-process communication, the first server having a communication unit that receives first information for identifying the second server from the resolution server and transmits second information to the second server based on the first information for requesting processing of the inter-process communication, and the second server having a communication unit that receives the second information from the first server and a control unit that performs first processing based on the second information.

第1実施例に係る通信システムのシステム構成の一例を示す図。FIG. 1 is a diagram showing an example of a system configuration of a communication system according to a first embodiment. 第1実施例に係るコンポーネントサーバの制御部によって実現される機能の一例を示す図。FIG. 4 is a diagram showing an example of functions realized by a control unit of the component server according to the first embodiment; 第1実施例に係るコンポーネントサーバの記憶部に記憶される情報の一例を示す図。FIG. 4 is a diagram showing an example of information stored in a storage unit of the component server according to the first embodiment; 第1実施例に係る呼び出し先解決サーバの制御部によって実現される機能の一例を示す図。FIG. 4 is a diagram showing an example of functions realized by a control unit of the call destination resolution server according to the first embodiment; 第1実施例に係る呼び出し先解決サーバの記憶部に記憶される情報の一例を示す図。FIG. 4 is a diagram showing an example of information stored in a storage unit of a call destination resolution server according to the first embodiment; 第1実施例に係る呼び出し先管理データの一例を示す図。FIG. 4 is a diagram showing an example of call destination management data according to the first embodiment. 第1実施例に係る一斉呼び出しサーバの制御部によって実現される機能の一例を示す図。FIG. 2 is a diagram showing an example of functions realized by a control unit of the mass calling server according to the first embodiment; 第1実施例に係る一斉呼び出しサーバの記憶部に記憶される情報の一例を示す図。FIG. 4 is a diagram showing an example of information stored in a storage unit of the mass calling server according to the first embodiment; 第1実施例に係る各装置が実行する処理の流れの一例を示すフローチャート。4 is a flowchart showing an example of a flow of a process executed by each device according to the first embodiment. 第1実施例に係る各ソフトウェアモジュールの処理の流れの一例を示すブロック図。FIG. 2 is a block diagram showing an example of the processing flow of each software module according to the first embodiment. 第1実施例に係る各装置が実行する処理の流れの一例を示すフローチャート。4 is a flowchart showing an example of a flow of a process executed by each device according to the first embodiment. 第2実施例に係る各装置が実行する処理の流れの一例を示すブロック図。FIG. 11 is a block diagram showing an example of a flow of processes executed by each device according to the second embodiment. 第2変形例に係る各装置が実行する処理の流れの一例を示すブロック図。FIG. 11 is a block diagram showing an example of a flow of processes executed by each device according to a second modified example.

<法的事項の遵守>
本明細書に記載の開示は、通信の秘密など、本開示の実施に必要な実施国の法的事項遵守を前提とすることに留意されたい。
<Compliance with legal matters>
It should be noted that the disclosures described herein are subject to compliance with the laws of the country of implementation, such as communications secrecy, as necessary for the implementation of the disclosure.

<実施形態>
本明細書では、分かり易いように「限定ではなく例として」と記載する箇所があるが、該当箇所ばかりでなく、以下説明する実施形態の全体について、その記載内容に限定されるものではないことに留意されたい。
<Embodiment>
In this specification, for ease of understanding, there are some places where the phrase "by way of example and not by way of limitation" is used, but please note that not only these places but also the entire embodiment described below are not limited to the contents of the description.

本開示に係るプログラム等を実施するための実施形態について、図面を参照して説明する。 An embodiment for implementing the program etc. related to this disclosure will be described with reference to the drawings.

本願請求項に係る発明の端末(本願発明の端末)の生産は、限定ではなく例として、ユーザが所有(所持)している端末で、本明細書に記載したプログラム(限定ではなく例として、アプリケーションプログラム)等が受信されることによって(または受信されて端末に記憶されることによって)、本端末において、本願請求項に係る発明の機能が実現可能となる状態が作り出される(本願請求項に係る発明が実行可能になる状態が作り出される)という概念を含んでもよい。 The production of a terminal of the claimed invention (terminal of the claimed invention) may include, by way of example and not limitation, the concept of a terminal owned (possessed) by a user receiving (or receiving and storing in the terminal) a program (by way of example and not limitation) described in this specification (an application program) and the like, thereby creating a state in which the functions of the claimed invention are realizable in the terminal (creating a state in which the claimed invention is executable).

また、本願請求項に係る発明のシステム(本願発明のシステム)の生産は、限定ではなく例として、本願システムに含まれるサーバから送信された本明細書に記載されたプログラム(限定ではなく例として、アプリケーションプログラム)等を、本願システムに含まれる端末で受信することによって(または受信されたプログラムが端末に記憶されることによって)、本願請求項に係るシステムの発明の機能が実現可能となる状態が作り出される(本願請求項に係る発明が実行可能になる状態が作り出される)という概念を含んでもよい。 Furthermore, the production of the system of the invention claimed in the present application (the system of the invention of the present application) may include, by way of example and not limitation, the concept of creating a state in which the functions of the invention of the system claimed in the present application can be realized (a state in which the invention claimed in the present application can be executed) by receiving, at a terminal included in the system of the present application, a program described in this specification (by way of example and not limitation, an application program) transmitted from a server included in the system of the present application (or by storing the received program in the terminal).

また、本明細書において、システムとは、限定ではなく例として、複数の装置を有して構成されるものとすることができる。
複数の装置は、同じ種類の装置の組合せとしてもよいし、異なる種類の装置の組合せとしてもよいし、同じ種類の装置と異なる種類の装置との組合せとしてもよい。
なお、システムとは、限定ではなく例として、複数の装置が協働して何らかの処理を行うもの、と考えることもできる。
In addition, in this specification, a system may be, for example and not by way of limitation, configured to include a plurality of devices.
The multiple devices may be a combination of devices of the same type, a combination of devices of different types, or a combination of devices of the same type and devices of different types.
Note that a system can be considered, for example and not by way of limitation, as a plurality of devices working together to perform some kind of processing.

また、クライアント(クライアント装置)とサーバとに関するシステムとは、限定ではなく例として、少なくとも以下のいずれかと考えることができる。
(1)端末&サーバ
(2)サーバ
(3)端末
Furthermore, a system relating to a client (client device) and a server can be considered to be, by way of example and not limitation, at least one of the following:
(1) Terminal & Server (2) Server (3) Terminal

(1)は、限定ではなく例として、少なくとも1つの端末と、少なくとも1つのサーバとを含むシステムである。この一例は、クライアントサーバシステムである。 (1) is, by way of example and not limitation, a system that includes at least one terminal and at least one server. One example of this is a client-server system.

サーバは、限定ではなく例として、以下の装置によって構成されており、単独の装置であってもよいし、複数の装置の組合せであってもよいものとする。 The server is, by way of example and not limitation, composed of the following devices, which may be a single device or a combination of multiple devices:

具体的には、サーバは、限定ではなく例として、少なくとも1つのプロセッサー(限定ではなく例として、CPU:Central Processing Unit、GPU:Graphics Processing Unit、APU:Accelerated Processing Unit、DSP:Digital Signal Processor(限定ではなく例として、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array)等)、コンピュータ装置(プロセッサー+メモリ)、制御装置、演算装置、処理装置等のいずれかを有して構成され、いずれか1つの装置の同種を複数備える構成(限定ではなく例として、CPU+CPU、ホモジニアスマルチコアプロセッサー等)や、いずれか1つの装置の異種を複数備える構成(限定ではなく例として、CPU+DSP、ヘテロジニアスマルチコアプロセッサー等)としてもよいし、複数の装置の組み合わせ(限定ではなく例として、プロセッサー+コンピュータ装置、プロセッサー+演算装置、複数の装置をヘテロジニアス化したもの等)であってもよい。
なお、プロセッサーは、仮想プロセッサーとしてもよい。
Specifically, the server is configured to have at least one processor (for example and not limitation, a CPU: Central Processing Unit, a GPU: Graphics Processing Unit, an APU: Accelerated Processing Unit, a DSP: Digital Signal Processor (for example and not limitation, an ASIC: Application Specific Integrated Circuit, an FPGA: Field Programmable Gate Array), etc.), a computer device (processor + memory), a control device, an arithmetic device, a processing device, etc., and may be a configuration having multiple of the same type of any one device (for example and not limitation, a CPU + CPU, a homogeneous multi-core processor, etc.), or a configuration having multiple different types of any one device (for example and not limitation, a CPU + DSP, a heterogeneous multi-core processor, etc.), or may be a combination of multiple devices (for example and not limitation, a processor + computer device, a processor + arithmetic device, a heterogeneous combination of multiple devices, etc.).
The processor may be a virtual processor.

また、サーバによって何らかの処理を実行する場合に、単一の装置で構成される場合は、単一の装置によって実施例に記載されている処理が実行される。また、複数の装置を有して構成されている場合には、一部の処理を一方の装置が実行し、その他の処理を他方の装置が実行するように構成されていてもよい。限定ではなく例として、プロセッサーと、演算装置とを有して構成される場合、第1処理をプロセッサーが実行し、第2処理を演算装置が実行するように構成されていてもよい。
また、複数の装置で構成する場合には、各々の装置が互いに物理的に離れた位置に配置されて構成されてもよい。
Furthermore, when a server executes some processing, if the server is configured with a single device, the processing described in the embodiment is executed by the single device. If the server is configured with multiple devices, the server may be configured to execute some processing by one device and execute other processing by the other device. As a non-limiting example, if the server is configured with a processor and an arithmetic device, the server may be configured to execute a first processing by the processor and execute a second processing by the arithmetic device.
Furthermore, when a configuration is made up of a plurality of devices, the devices may be arranged in locations physically separated from one another.

また、サーバの機能は、限定ではなく例として、クラウドコンピューティングにおけるPaaSやIaaS、SaaSの形態で提供されるようにしてもよい。 Furthermore, the server functions may be provided in the form of PaaS, IaaS, or SaaS in cloud computing, for example and without limitation.

また、システムの制御部は、端末の制御部とサーバの制御部とのうちの少なくともいずれか一方とすることができる。つまり、限定ではなく例として、(1A)端末の制御部のみ、(1B)サーバの制御部のみ、(1C)端末の制御部とサーバの制御部との両方、のうちのいずれかを、システムの制御部とすることができる。 The control unit of the system can be at least one of the control unit of the terminal and the control unit of the server. In other words, by way of example and not limitation, the control unit of the system can be any of the following: (1A) only the control unit of the terminal, (1B) only the control unit of the server, or (1C) both the control unit of the terminal and the control unit of the server.

また、システムの制御部が行う制御や処理(以下、包括的に「制御等」と称する。)は、(1A)端末の制御部のみによって行うようにしてもよいし、(1B)サーバの制御部のみによって行うようにしてもよいし、(1C)端末の制御部とサーバの制御部との両方によって行うようにしてもよい。
また、(1C)では、限定ではなく例として、システムが制御部によって行う制御等のうちの一部の制御等を端末の制御部によって行うようにし、残りの制御等をサーバの制御部によって行うようにしてもよい。この場合、制御等の割り当て(割り振り)は、等分であってもよいし、等分ではなく異なる割合で割り当ててもよい。
In addition, the control and processing (hereinafter collectively referred to as "control, etc.") performed by the control unit of the system may be (1A) performed only by the control unit of the terminal, (1B) performed only by the control unit of the server, or (1C) performed by both the control unit of the terminal and the control unit of the server.
In addition, in (1C), as an example and not a limitation, some of the controls performed by the control unit of the system may be performed by the control unit of the terminal, and the remaining controls may be performed by the control unit of the server. In this case, the allocation (allocation) of the controls may be equal or may be allocated in different proportions.

また、サーバの通信部という場合、サーバが単一の装置によって構成されている場合には、単一の装置が備える通信部そのものであってもよい。また、サーバが複数の装置を有して構成されている場合には、サーバの通信部は、各々の装置が備える各々の通信部を含む構成であってもよい。
限定ではなく例として、サーバは、第1装置と第2装置とを備え、第1装置は第1通信部を有し、第2装置は第2通信部を有する場合、サーバの通信部は、第1通信部と第2通信部とを含む概念としてもよい。
Furthermore, when referring to a communication unit of a server, if the server is configured with a single device, it may be the communication unit itself that the single device has, or, if the server is configured with multiple devices, the communication unit of the server may be configured to include each communication unit that each device has.
As an example and not by way of limitation, if a server comprises a first device and a second device, the first device having a first communication unit and the second device having a second communication unit, the communication unit of the server may be conceptualized as including the first communication unit and the second communication unit.

(2)は、限定ではなく例として、複数のサーバによって構成されるシステム(以下、「サーバシステム」と称する。)とすることができる。この場合、各々のサーバの構成としては、前述した構成を同様に適用することができる。 (2) As an example and not a limitation, the system may be a system made up of multiple servers (hereinafter referred to as a "server system"). In this case, the configuration of each server may be the same as that described above.

サーバシステムが行う制御等は、複数のサーバのうち、(2A)一のサーバのみによって行うようにしてもよいし、(2B)他のサーバのみによって行うようにしてもよいし、(2C)一のサーバと他のサーバとが行うようにしてもよい。
また、(2C)では、限定ではなく例として、サーバシステムが行う制御等のうちの一部の制御等を一のサーバが行うようにし、残りの制御等を他のサーバが行うようにしてもよい。この場合、制御等の割り当て(割り振り)は、等分であってもよいし、等分ではなく異なる割合で割り当ててもよい。
The control etc. performed by the server system may be performed by only one of the multiple servers (2A), by only the other servers (2B), or by both the one server and the other servers (2C).
In addition, in (2C), as an example and not a limitation, one server may perform part of the control etc. performed by the server system, and another server may perform the remaining control etc. In this case, the allocation (allocation) of the control etc. may be equal or may be allocated in different proportions.

(3)は、限定ではなく例として、複数の端末によって構成されるシステムとすることができる。
このシステムは、限定ではなく例として、以下のようなシステムとすることができる。
・サーバの機能を端末に持たせるシステム(分散システム)。これは、限定ではなく例として、ブロックチェーンの技術を用いて実現することが可能である。
・端末同士が無線通信を行うシステム。これは、限定ではなく例として、ブルートゥース(登録商標)等の近距離無線通信技術を用いてP2P(ピアツーピア)方式等で通信を行うことで実現可能である。
(3) By way of example and not limitation, the system may be comprised of multiple terminals.
The system may be, by way of example and not limitation, a system such as the following:
A system that provides server functions to terminals (distributed system). This can be realized, for example and without limitation, by using blockchain technology.
A system in which terminals communicate wirelessly with each other. This can be realized, for example and without limitation, by communicating in a peer-to-peer (P2P) manner using short-range wireless communication technology such as Bluetooth (registered trademark).

なお、上記は、制御部に限らず、システムの構成要素となり得る入出力部、通信部、記憶部、時計部等の各機能部についても同様である。 The above is not limited to the control unit, but also applies to each functional unit, such as the input/output unit, communication unit, memory unit, clock unit, etc., which may be components of the system.

以下の実施形態では、限定ではなく例として、端末とサーバとを含むシステム(限定ではなく例として、クライアントサーバシステム)を例示する。
なお、サーバとして、上記(2)のサーバシステムを適用することも可能である。
In the following embodiment, a system including a terminal and a server (a client-server system) is illustrated as an example and not as a limitation.
Incidentally, the server system described above in (2) can also be applied as the server.

また、端末とサーバとを含むシステムに代えて、サーバを含まないシステム、限定ではなく例として、上記(3)のシステムを適用することも可能である。
この場合の実施形態は、前述したブロックチェーンの技術等に基づいて構成することが可能である。具体的には、限定ではなく例として、以下の実施形態で説明するサーバに記憶されて管理されるデータを、ブロックチェーン上に保管(格納)する。そして、端末が、ブロックチェーンへのトランザクションを生成し、トランザクションがブロックチェーン上で承認されると、ブロックチェーン上に保管されたデータが更新されるようにすることができる。
Also, instead of a system including a terminal and a server, a system not including a server, such as the above-mentioned system (3) as an example and not a limitation, may be applied.
In this case, the embodiment can be configured based on the above-mentioned blockchain technology. Specifically, by way of example and not limitation, data stored and managed in a server described in the following embodiment is stored on the blockchain. Then, the terminal generates a transaction to the blockchain, and when the transaction is approved on the blockchain, the data stored on the blockchain can be updated.

なお、端末と表現した場合でも、これは、クライアントサーバにおけるクライアントの装置としての端末の意味に限定されるものではない。
つまり、端末は、クライアントサーバにおけるものではない装置の概念を含むこともあり得る。
It should be noted that even when the term "terminal" is used, this is not limited to the meaning of a terminal as a client device in a client server.
That is, a terminal may include the concept of a device other than in a client-server context.

また、本明細書では、適宜「通信I/Fによって」という表現を用いる。これは、限定ではなく例として、装置が、制御部(プロセッサー等)の制御に基づいて、通信I/Fを介して(通信部を介して)、各種の情報やデータを送受信することを示してもよいものとする。 In addition, the expression "through a communication I/F" is used appropriately in this specification. This is not intended to be limiting, but may be taken as an example to indicate that a device transmits and receives various types of information and data through a communication I/F (through a communication unit) based on the control of a control unit (such as a processor).

また、本明細書において「関する」、「関連する」と記載された用語について、「Aに関するB」や「Aに関連するB」という場合、限定ではなく例として、「A」と何らかの関係性を有する「B」を意味してよいものとする。この具体例については後述する。 In addition, in this specification, when the terms "related to" and "associated" are used, such as "B related to A" or "B related to A," this may mean, by way of example and not limitation, that "B" has some kind of relationship with "A." Specific examples of this will be described later.

また、本明細書において、「AとBとを送信する」、「AとBとを受信する」といったように、装置が2以上のものを対象として処理を行うことには、「A」と「B」とをタイミングを合わせて行うもの(以下、「同時」という。)と、「A」と「B」とをタイミングをずらして行うもの(以下、「非同時」という。)とを含めてよいものとする。
限定ではなく例として、第1情報と第2情報とを送信するという場合、第1情報と第2情報とをタイミングを合わせて送信するものと、第1情報と第2情報とをタイミングをずらして送信するものとの両方の概念を含めてよいものとする。
なお、ラグ(タイムラグ)を考慮し、「同時」には「ほぼ同時」を含めてよいものとする。
In addition, in this specification, when a device performs processing on two or more objects, such as "transmitting A and B" or "receiving A and B," this may include performing "A" and "B" in a synchronized manner (hereinafter referred to as "simultaneous"), and performing "A" and "B" with a different timing (hereinafter referred to as "non-simultaneous").
As an example and not a limitation, when referring to transmitting first information and second information, this may include both concepts of transmitting the first information and the second information in a synchronized manner and transmitting the first information and the second information with a lag in timing.
In addition, taking into consideration the lag (time lag), "simultaneous" may include "almost simultaneously."

なお、「A」と「B」とをタイミングをずらして行うといっても、これはあくまでも「A」と「B」とを対象として処理を行うものであればよく、その目的は必ずしも同じでなくてもよいものとする。
限定ではなく例として、上記のように第1情報と第2情報とを送信するという場合、第1情報と第2情報とを送信しさえすればよく、同じ目的で第1情報と第2情報とを送信する場合の他、異なる目的で第1情報と第2情報とを送信する場合も含めてよいものとする。
Note that, even if "A" and "B" are performed at different times, this only needs to be the processing targeting "A" and "B," and the purpose does not necessarily have to be the same.
As an example and not a limitation, when the first information and the second information are transmitted as described above, it is sufficient to transmit the first information and the second information, and this may include cases where the first information and the second information are transmitted for the same purpose as well as cases where the first information and the second information are transmitted for different purposes.

<実施例>
以下、本発明を適用した実施例の一例について説明する。
一例であるが、あるソフトウエアコンポーネントが複数のサーバによる分散処理によって動作する場合、ソフトウエアコンポーネントがプロセス間通信(限定ではなく例として、RPC(Remote Procedure Call))を行うために、メッセージキューによって情報(メッセージ)をやり取りする場合がある。この場合、メッセージキューを管理するMQシステム(限定ではなく例として、ActiveMQやRabbitMQ(登録商標)等)に障害が発生すると、発生中のプロセス間通信を巻き込んでプロセス間通信が断絶するため、ソフトウエアコンポーネントの動作に甚大な影響を与える場合が生じる。
<Example>
An example of an embodiment to which the present invention is applied will be described below.
For example, when a software component operates by distributed processing using multiple servers, the software component may exchange information (messages) through a message queue to perform inter-process communication (for example, but not limited to, RPC (Remote Procedure Call)). In this case, if a failure occurs in an MQ system (for example, but not limited to, ActiveMQ or RabbitMQ (registered trademark)) that manages the message queue, the inter-process communication that is currently occurring will be involved and the inter-process communication will be interrupted, which may have a significant impact on the operation of the software component.

また、限定ではなく例として、クラウドコンピューティングを実現するためのソフトウエアコンポーネント群であるOpenStack(登録商標)等において、各ソフトウエアコンポーネント(限定ではなく例として、NOVAやNEUTRON等)を動作させるサーバ群(クラスタ)を構成するサーバ数は、クラウドコンピューティングにおいて提供されるサービスが複雑化するにつれて莫大な数となる。
限定ではなく例として、クラスタを構成するサーバ数(限定ではなく例として、物理サーバ群で制御される仮想サーバの総数)が40,000を超える場合、MQシステムの動作負荷が上がり、プロセス間通信に遅延等が発生するため、ソフトウエアコンポーネントの安定動作が困難となる場合が生じる。
Also, as a non-limiting example, in OpenStack (registered trademark), which is a group of software components for realizing cloud computing, the number of servers constituting a server group (cluster) that runs each software component (as a non-limiting example, NOVA, NEUTRON, etc.) becomes enormous as the services provided in cloud computing become more complex.
As a non-limiting example, if the number of servers constituting a cluster (as a non-limiting example, the total number of virtual servers controlled by the group of physical servers) exceeds 40,000, the operating load of the MQ system increases, causing delays in inter-process communication, etc., which may make it difficult to ensure stable operation of software components.

以下説明する実施例では、クラスタを構成するサーバ間においてプロセス間通信を行う場合、MQシステムを介さずに直接メッセージの送受信を可能とすることで、単一障害点(SPOF:Single Point of Failure)をなくし、高可用性を実現することを可能とする。また、クラスタを構成するサーバ数が莫大な数となる場合においても、プロセス間通信をサーバ間において直接行うことで、クラスタで動作するソフトウエアコンポーネントの動作の高速化と、クラスタ全体の負荷低減を実現する。 In the embodiment described below, when inter-process communication is performed between servers constituting a cluster, messages can be sent and received directly without going through an MQ system, eliminating single points of failure (SPOF) and achieving high availability. Even when the number of servers constituting a cluster is enormous, inter-process communication can be performed directly between the servers, thereby speeding up the operation of software components running in the cluster and reducing the load on the entire cluster.

以下では、限定ではなく例として、ソフトウエアコンポーネントを動作させるクラスタに属する(クラスタを構成する)サーバのうち、ソフトウエアコンポーネントの処理に直接的に関わるサーバを「コンポーネントサーバ」と称する。コンポーネントサーバは、仮想サーバ(仮想マシン)としてもよいし、物理サーバ(物理マシン)としてもよい。 In the following, as an example and not a limitation, among the servers that belong to (constitute) a cluster that runs a software component, a server that is directly involved in processing the software component is referred to as a "component server." A component server may be a virtual server (virtual machine) or a physical server (physical machine).

また、以下では、限定ではなく例として、プロセス間通信はRPCに従って実行されることとする。なお、プロセス間通信は、限定ではなく例として、RMI(Remote Method Invocation)に従って実行されるようにしてもよい。また、プロセス間通信は、同一プログラムを利用した複数のプロセス間の通信に限定されない。 In the following, it is assumed, by way of example and not limitation, that inter-process communication is performed according to RPC. Note that, by way of example and not limitation, inter-process communication may be performed according to RMI (Remote Method Invocation). In addition, inter-process communication is not limited to communication between multiple processes using the same program.

また、以下では、限定ではなく例として、ソフトウエアコンポーネントは、各種のソフトウェアモジュールを内包することとする。そして、限定ではなく例として、ソフトウエアコンポーネントにおけるプロセス間通信を実現するためのソフトウェアモジュールを「メッセージングモジュール」と称する。 Furthermore, in the following, by way of example and not limitation, a software component will be taken to include various software modules. And, by way of example and not limitation, a software module for realizing inter-process communication in a software component will be referred to as a "messaging module."

限定ではなく例として、ソフトウエアコンポーネントがOpenStackのコンポーネントである場合、メッセージングモジュールは、限定ではなく例として、OpenStackの共用ライブラリ「Oslo」の「oslo.messaging」モジュールによって実現(実装)されるようにしてもよい。 By way of example and not limitation, if the software component is an OpenStack component, the messaging module may be implemented by, by way of example and not limitation, the "oslo.messaging" module of the OpenStack shared library "Oslo".

また、以下では、限定ではなく例として、メッセージングモジュールは、ソフトウエアコンポーネントからのプロセス間通信を種々のメッセージ伝達方法で送受信するためのメッセージングドライバを内包することとする。限定ではなく例として、本発明において提供されるメッセージングドライバを「httpメッセージングドライバ」と称する。
ソフトウエアコンポーネントは、メッセージングモジュールがメッセージングドライバを介してプロセス間通信を実現することで、メッセージングドライバのメッセージ伝達方法(使用するトランスポート層と言ってもよい。)に依存せずにメッセージングモジュールへの呼び出しと応答とを実現することができる。
Also, hereinafter, by way of example and not by way of limitation, the messaging module includes a messaging driver for sending and receiving inter-process communications from software components using various message delivery methods. By way of example and not by way of limitation, the messaging driver provided in the present invention will be referred to as an "http messaging driver."
By having the messaging module realize inter-process communication via the messaging driver, software components can make calls to and respond to the messaging module without depending on the messaging driver's message transmission method (which may also be called the transport layer used).

限定ではなく例として、「oslo.messaging」モジュールにおいて、MQシステムを用いる「AMQP(Advanced Message Queuing Protocol)ドライバ」から「httpメッセージングドライバ」にメッセージングドライバを変更することで、ソフトウエアコンポーネントの修正を行わずにメッセージ伝達方法を変更することができる。 By way of example and not limitation, in the "oslo.messaging" module, by changing the messaging driver from an "Advanced Message Queuing Protocol (AMQP) driver" that uses an MQ system to an "http messaging driver," the method of message delivery can be changed without modifying the software components.

なお、「httpメッセージングドライバ」は、本発明による情報処理手法を適用したプログラム(ソフトウェアドライバ)全般を指し、「oslo.messaging」モジュールにおけるメッセージングドライバに限定されない。 Note that the "http messaging driver" refers to any program (software driver) that applies the information processing method of the present invention, and is not limited to the messaging driver in the "oslo.messaging" module.

メッセージングモジュールは、限定ではなく例として、プロセス間通信を行うためのトランスポート層(限定ではなく例として、メッセージキューイングサービスやhttp送受信サービス)と、ソフトウエアコンポーネントとの間に位置するミドルウェアと言ってもよい。
メッセージングドライバは、ミドルウェアとトランスポート層とを橋渡しするソフトウエアドライバプログラムと言ってもよい。
The messaging module may be referred to as, for example and not limitation, middleware located between a transport layer for inter-process communication (for example and not limitation, a message queuing service or an HTTP sending and receiving service) and a software component.
A messaging driver may be said to be a software driver program that bridges the middleware and the transport layer.

また、以下では、限定ではなく例として、プロセス間通信の送信元となるコンポーネントサーバを「インヴォーカ(Invoker)」、プロセス間通信の送信先となるコンポーネントサーバを「ワーカ(Worker)」とそれぞれ称する。
インヴォーカは、関数の呼び出し元や呼び出し側と言ってもよい。また、ワーカは関数の呼び出し先や手続き側と言ってもよい。
In the following, by way of example and not limitation, a component server that is the source of inter-process communication will be referred to as an "invoker," and a component server that is the destination of inter-process communication will be referred to as a "worker."
An invoker may be referred to as the caller or invoker of a function, and a worker may be referred to as the callee or procedure of a function.

なお、限定ではなく例として、クライアントサーバモデルに当てはめて、インヴォーカを「クライアント」、ワーカを「サーバ」と言ってもよい。 As an example and not a limitation, we can refer to the invoker as the "client" and the worker as the "server" in a client-server model.

<第1実施例>
第1実施例は、限定ではなく例として、インヴォーカが、プロセス間通信の送信先を解決するための呼び出し先解決サーバを用いて適切なワーカを探索する。そして、インヴォーカとワーカとが、限定ではなく例として、http(Hypertext Transfer Protocol)によって通信することで、プロセス間通信を実現する実施例である。
First Example
In the first embodiment, as an example and not as a limitation, an invoker searches for an appropriate worker using a call destination resolution server for resolving the destination of inter-process communication, and the invoker and the worker communicate with each other by means of http (Hypertext Transfer Protocol), as an example and not as a limitation, to realize inter-process communication.

第1実施例に記載の内容は、他の各実施例や他の各変形例のいずれにも適用可能である。
また、既出の構成要素と同一の構成要素については同一の符号を付して、再度の説明を省略する。
The contents described in the first embodiment are applicable to any of the other embodiments and other modified examples.
Furthermore, the same components as those already mentioned are given the same reference numerals and will not be described again.

<システム構成>
図1-1は、本開示の実施形態における通信システム1のシステム構成の一例を示す図である。
通信システム1では、限定ではなく例として、ネットワーク30を介して、呼び出し先解決サーバ10と、一斉呼び出しサーバ40と、複数のコンポーネントサーバ20(コンポーネントサーバ20A,コンポーネントサーバ20B,コンポーネントサーバ20C,・・・)とが接続される。
<System Configuration>
FIG. 1A is a diagram illustrating an example of a system configuration of a communication system 1 according to an embodiment of the present disclosure.
In the communication system 1, as an example and not a limitation, a call destination resolution server 10, a mass call server 40, and multiple component servers 20 (component server 20A, component server 20B, component server 20C, ...) are connected via a network 30.

コンポーネントサーバ20は、ネットワーク30を介して、限定ではなく例として、ソフトウエアコンポーネントを利用するユーザが所有する不図示の端末および/または他のソフトウエアコンポーネントを実現する不図示のサーバに、所定のサービス(限定ではなく例として、ユーザ認証サービス、仮想ネットワークサービス等)を提供する機能を有する。
以下では、コンポーネントサーバ20を、単に「サーバ20(サーバ20A,サーバ20B,サーバ20C,・・・)」と呼ぶことがある。なお、各コンポーネントサーバ20A,コンポーネントサーバ20B,コンポーネントサーバ20C,・・・は、仮想サーバとしてもよいし、物理サーバとしてもよい。
The component server 20 has the function of providing predetermined services (for example, but not limited to, a user authentication service, a virtual network service, etc.) via the network 30 to, for example, but not limited to, a terminal (not shown) owned by a user who uses the software component and/or a server (not shown) that realizes other software components.
Hereinafter, the component servers 20 may be simply referred to as "servers 20 (server 20A, server 20B, server 20C, ...)." Note that each of the component servers 20A, 20B, 20C, ... may be a virtual server or a physical server.

呼び出し先解決サーバ10は、ネットワーク30を介して、コンポーネントサーバ20に、所定のサービス(限定ではなく例として、プロセス間通信呼び出し先解決サービス等)を提供する機能を有する。呼び出し先解決サーバ10は、限定ではなく例として、クラスタ(コンポーネントサーバクラスタ)管理サーバ等のように表現することもできる。
以下では、呼び出し先解決サーバ10を、単に「サーバ10」と呼ぶことがある。
The callee resolution server 10 has a function of providing a predetermined service (such as an inter-process communication callee resolution service, for example and not for limitation) to the component server 20 via the network 30. The callee resolution server 10 can also be expressed as a cluster (component server cluster) management server, for example and not for limitation.
Hereinafter, the call destination resolution server 10 may be simply referred to as the "server 10."

なお、呼び出し先解決サーバ10は、限定ではなく例として、単一の物理サーバまたは仮想サーバとしてもよいし、複数の物理サーバおよび/または仮想サーバで構成されるクラスタ(サーバシステム)としてもよい。 The call destination resolution server 10 may be, by way of example and not limitation, a single physical or virtual server, or a cluster (server system) consisting of multiple physical and/or virtual servers.

一斉呼び出しサーバ40は、ネットワーク30を介して、コンポーネントサーバ20に、所定のサービス(限定ではなく例として、プロセス間通信一斉呼び出しサービス等)を提供する機能を有する。一斉呼び出しサーバ40は、限定ではなく例として、ブロードキャストサーバやブロードキャスタ等のように表現することもできる。
以下では、一斉呼び出しサーバ40を、単に「サーバ40」と呼ぶことがある。
The mass call server 40 has a function of providing a predetermined service (such as an inter-process communication mass call service, for example and not for limitation) to the component servers 20 via the network 30. The mass call server 40 can also be expressed as a broadcast server or a broadcaster, for example and not for limitation.
Hereinafter, the mass calling server 40 may be simply referred to as the "server 40."

なお、一斉呼び出しサーバ40は、限定ではなく例として、単一の物理サーバまたは仮想サーバとしてもよいし、複数の物理サーバおよび/または仮想サーバで構成されるクラスタ(サーバシステム)としてもよい。 Note that the mass call server 40 may be, by way of example and not limitation, a single physical or virtual server, or a cluster (server system) consisting of multiple physical and/or virtual servers.

本実施形態では、限定ではなく例として、コンポーネントサーバ20と、呼び出し先解決サーバ10と、一斉呼び出しサーバ40とで構成されるサーバシステムの事業者(運営者)を、それぞれコンポーネントサーバ20のユーザ、呼び出し先解決サーバ10のユーザ、一斉呼び出しサーバ40のユーザと言ってもよい。また、限定ではなく例として、コンポーネントサーバ20と呼び出し先解決サーバ10と一斉呼び出しサーバ40とで構成されるサーバシステムの利用者を、不図示の端末のユーザ、または他のソフトウエアコンポーネントのユーザと言ってもよい。 In this embodiment, by way of example and not limitation, the operator of the server system consisting of the component server 20, the call destination resolution server 10, and the mass call server 40 may be referred to as a user of the component server 20, a user of the call destination resolution server 10, and a user of the mass call server 40, respectively. Also, by way of example and not limitation, the user of the server system consisting of the component server 20, the call destination resolution server 10, and the mass call server 40 may be referred to as a user of a terminal (not shown) or a user of another software component.

コンポーネントサーバ20(コンポーネントサーバ20A,コンポーネントサーバ20B,コンポーネントサーバ20C、・・・)(限定ではなく、サーバ、情報処理装置、情報管理装置、サーバシステム、クラスタの一例)は、各実施例において記載する機能を実現できる情報処理装置であればどのような端末であってもよい。
コンポーネントサーバ20は、限定ではなく例として、サーバ装置、コンピュータ(限定ではなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定ではなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定ではなく例として、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、ハイパーバイザ、またはコミュニケーションプラットホームを含む。
コンポーネントサーバ20および/または呼び出し先解決サーバ10および/または一斉呼び出しサーバ40を区別する必要がない場合は、コンポーネントサーバ20および/または呼び出し先解決サーバ10および/または一斉呼び出しサーバ40は、それぞれ情報処理装置と表現されてもよいし、されなくてもよい。
The component server 20 (component server 20A, component server 20B, component server 20C, ...) (not limited to, but an example of a server, information processing device, information management device, server system, cluster) may be any terminal that is an information processing device capable of realizing the functions described in each embodiment.
Component server 20 may include, by way of example and not limitation, a server appliance, a computer (by way of example and not limitation, a desktop, laptop, tablet, etc.), a media computing platform (by way of example and not limitation, a cable, satellite set-top box, digital video recorder, etc.), a handheld computing device (by way of example and not limitation, a PDA, email client, etc.), or any other type of computer, hypervisor, or communications platform.
If there is no need to distinguish between the component server 20 and/or the call destination resolution server 10 and/or the mass call server 40, the component server 20 and/or the call destination resolution server 10 and/or the mass call server 40 may or may not be represented as information processing devices.

コンポーネントサーバ20A、コンポーネントサーバ20Bおよびコンポーネントサーバ20Cの構成は、限定ではなく例として、同一とするようにしてもよい。
また、必要に応じて、コンポーネントサーバ20Xに対応づけられた、所定のサービス(プロセス)におけるサーバ情報をサーバ情報Xと表現してもよいし、しなくてもよい。
なお、サーバ情報とは、所定のサービス(プロセス)においてサーバに対応付けられたサーバの情報である。サーバ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、サーバの名前、サーバのIPアドレス、サーバのMACアドレス、サーバの処理能力(限定ではなく例として、MIPSやFLOPS)、サーバの構成情報(限定ではなく例として、プロセッサーコア数および/またはRAM容量等)、サーバの識別子などのサーバに対応づけられた情報を含み、これらのいずれか一つまたは、組み合わせであってもよいし、そうでなくてもよい。
The component server 20A, the component server 20B, and the component server 20C may have the same configuration, for example and not by way of limitation.
Furthermore, server information in a specific service (process) associated with the component server 20X may or may not be expressed as server information X, as necessary.
The server information is information associated with a server in a specific service (process). The server information includes, for example and without limitation, information associated with a server, such as the name of the server, the IP address of the server, the MAC address of the server, the processing capacity of the server (for example and without limitation, MIPS or FLOPS), configuration information of the server (for example and without limitation, the number of processor cores and/or RAM capacity, etc.), and a server identifier, which are input by a user or assigned by a specific service, and may be any one of these, or a combination of these, or may not be the same.

ネットワーク30は、1以上のコンポーネントサーバ20と、1以上の呼び出し先解決サーバ10と、1以上の一斉呼び出しサーバ40とを接続する役割を担う。すなわち、ネットワーク30は、上記の各種の装置が接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。 The network 30 serves to connect one or more component servers 20, one or more call destination resolution servers 10, and one or more mass call servers 40. In other words, the network 30 refers to a communication network that provides a connection path so that the above-mentioned various devices can connect and then send and receive data.

なお、ネットワーク30に接続される呼び出し先解決サーバ10の数や一斉呼び出しサーバ40の数、コンポーネントサーバ20の数は限定されない。 The number of call destination resolution servers 10, the number of mass call servers 40, and the number of component servers 20 connected to the network 30 are not limited.

ネットワーク30のうちの1つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよいし、そうでなくてもよい。ネットワーク30は、限定ではなく例として、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、ISDN(integrated service digital networks)、無線LAN、LTE(long term evolution)、CDMA(code division multiple access)、ブルートゥース(Bluetooth(登録商標))、衛星通信など、または、これらの2つ以上の組合せを含むことができる。ネットワーク30は、1つまたは複数のネットワーク30を含むことができる。 One or more portions of network 30 may or may not be wired or wireless. Network 30 may include, by way of example and not limitation, an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular network, integrated service digital networks (ISDN), wireless LAN, long term evolution (LTE), code division multiple access (CDMA), Bluetooth, satellite communications, or the like, or a combination of two or more thereof. Network 30 may include one or more networks 30.

呼び出し先解決サーバ10(限定ではなく、サーバ、情報処理装置、情報管理装置、サーバシステム、クラスタの一例)は、コンポーネントサーバ20に対して、所定のサービスを提供する機能を備える。呼び出し先解決サーバ10は、各実施形態において記載する機能を実現できる情報処理装置であればどのような装置であってもよい。呼び出し先解決サーバ10は、限定ではなく例として、サーバ装置、コンピュータ(限定ではなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定ではなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定ではなく例として、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、ハイパーバイザ、またはコミュニケーションプラットホームを含む。 The callee resolution server 10 (which is an example, but not limited to, of a server, information processing device, information management device, server system, or cluster) has a function of providing a specific service to the component server 20. The callee resolution server 10 may be any information processing device capable of implementing the functions described in each embodiment. The callee resolution server 10 may include, but is not limited to, a server device, a computer (which may be, but is not limited to, a desktop, laptop, tablet, or the like), a media computing platform (which may be, but is not limited to, a cable or satellite set-top box, or a digital video recorder), a handheld computing device (which may be, but is not limited to, a PDA, or an email client, or the like), or any other type of computer, hypervisor, or communication platform.

限定ではなく例として、呼び出し先解決サーバ10とコンポーネントサーバ20とを区別する必要がない場合は、呼び出し先解決サーバ10とコンポーネントサーバ20とは、それぞれ情報処理装置と表現されてもよいし、されなくてもよい。 By way of example and not limitation, if there is no need to distinguish between the called resolution server 10 and the component server 20, the called resolution server 10 and the component server 20 may or may not be represented as information processing devices.

一斉呼び出しサーバ40(限定ではなく、サーバ、情報処理装置、情報管理装置、サーバシステム、クラスタの一例)は、コンポーネントサーバ20に対して、所定のサービスを提供する機能を備える。一斉呼び出しサーバ40は、各実施形態において記載する機能を実現できる情報処理装置であればどのような装置であってもよい。一斉呼び出しサーバ40は、限定ではなく例として、サーバ装置、コンピュータ(限定ではなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定ではなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定ではなく例として、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、ハイパーバイザ、またはコミュニケーションプラットホームを含む。 The mass call server 40 (which is an example, but not limited to, of a server, information processing device, information management device, server system, or cluster) has a function of providing a predetermined service to the component server 20. The mass call server 40 may be any information processing device capable of implementing the functions described in each embodiment. The mass call server 40 may include, but is not limited to, a server device, a computer (which may be, but is not limited to, a desktop, laptop, tablet, etc.), a media computer platform (which may be, but is not limited to, a cable or satellite set-top box, digital video recorder, etc.), a handheld computer device (which may be, but is not limited to, a PDA, email client, etc.), or other types of computers, hypervisors, or communication platforms.

限定ではなく例として、呼び出し先解決サーバ10と一斉呼び出しサーバ40とを区別する必要がない場合は、呼び出し先解決サーバ10と一斉呼び出しサーバ40とは、それぞれ情報処理装置と表現されてもよいし、されなくてもよい。
また、限定ではなく例として、一斉呼び出しサーバ40とコンポーネントサーバ20とを区別する必要がない場合は、一斉呼び出しサーバ40とコンポーネントサーバ20とは、それぞれ情報処理装置と表現されてもよいし、されなくてもよい。
As an example and not as a limitation, if there is no need to distinguish between the call destination resolution server 10 and the mass call server 40, the call destination resolution server 10 and the mass call server 40 may or may not be represented as information processing devices.
Also, by way of example and not limitation, if there is no need to distinguish between the mass call server 40 and the component server 20, the mass call server 40 and the component server 20 may or may not be represented as information processing devices.

[各装置のハードウェア(HW)構成]
通信システム1に含まれる各装置のHW構成について説明する。
[Hardware (HW) configuration of each device]
The HW configuration of each device included in the communication system 1 will be described.

(1)サーバのHW構成
図1-1には、呼び出し先解決サーバ10とコンポーネントサーバ20と一斉呼び出しサーバ40とのHW構成の一例を示している。
呼び出し先解決サーバ10は、制御部11(CPU)、記憶部15、通信I/F14(インタフェース)、入出力部12、時計部19を備える。呼び出し先解決サーバ10のHWの各構成要素は、限定ではなく例として、バスBを介して相互に接続される。なお、呼び出し先解決サーバ10のHWは、呼び出し先解決サーバ10のHWの構成として、全ての構成要素を含むことは必須ではない。限定ではなく例として、呼び出し先解決サーバ10のHWは、個々の構成要素、または複数の構成要素を取り外すような構成であってもよいし、そうでなくてもよい。
(1) HW Configuration of Servers FIG. 1A shows an example of the HW configuration of a call destination resolution server 10, a component server 20, and a general call server 40. As shown in FIG.
The call destination resolution server 10 includes a control unit 11 (CPU), a storage unit 15, a communication I/F 14 (interface), an input/output unit 12, and a clock unit 19. The components of the HW of the call destination resolution server 10 are connected to each other via a bus B, for example and not for limitation. It is not essential that the HW of the call destination resolution server 10 includes all components as the configuration of the HW of the call destination resolution server 10. For example and not for limitation, the HW of the call destination resolution server 10 may or may not be configured to remove individual components or multiple components.

制御部11は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定ではなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。 The control unit 11 has circuitry that is physically structured to execute functions realized by the code or instructions contained in the program, and is realized, for example and not by way of limitation, by a data processing device built into hardware.

制御部11は、代表的には中央処理装置(CPU)、であり、その他にマイクロプロセッサー、プロセッサーコア、マルチプロセッサー、ASIC、FPGAであってもよいし、そうでなくてもよい。本開示において、制御部11は、これらに限定されない。 The control unit 11 is typically a central processing unit (CPU), but may also be a microprocessor, a processor core, a multiprocessor, an ASIC, or an FPGA, or may not be such a unit. In this disclosure, the control unit 11 is not limited to these.

記憶部15は、呼び出し先解決サーバ10が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶部15は、HDD、SSD、フラッシュメモリなど各種の記憶媒体により実現される。ただし、本開示において、記憶部15は、これらに限定されない。また、記憶部15は、メモリ(memory)と表現されてもよいし、されなくてもよい。 The storage unit 15 has a function of storing various programs and various data required for the operation of the call destination resolution server 10. The storage unit 15 is realized by various storage media such as a HDD, SSD, and flash memory. However, in this disclosure, the storage unit 15 is not limited to these. Furthermore, the storage unit 15 may or may not be expressed as a memory.

通信I/F14は、ネットワーク30を介して各種データの送受信を行う。通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F14は、ネットワーク30を介してコンポーネントサーバ20等の各種装置との通信を実行する機能を有する。通信I/F14は、各種データを制御部11からの指示に従って、コンポーネントサーバ20等の各種装置に送信する。また、通信I/F14は、コンポーネントサーバ20等の各種装置から送信された各種データを受信し、制御部11に伝達する。また、通信I/F14を単に通信部と表現する場合もある。また、通信I/F14が物理的に構造化された回路で構成される場合には、通信回路と表現する場合もある。 The communication I/F 14 transmits and receives various data via the network 30. The communication may be performed either wired or wirelessly, and any communication protocol may be used as long as the communication between the two devices is possible. The communication I/F 14 has a function of communicating with various devices such as the component server 20 via the network 30. The communication I/F 14 transmits various data to various devices such as the component server 20 according to instructions from the control unit 11. The communication I/F 14 also receives various data transmitted from various devices such as the component server 20 and transmits it to the control unit 11. The communication I/F 14 may also be simply referred to as a communication unit. When the communication I/F 14 is configured with a physically structured circuit, it may also be referred to as a communication circuit.

入出力部12は、呼び出し先解決サーバ10に対する各種操作を入力する装置や、呼び出し先解決サーバ10で処理された処理結果を出力する装置等を含む。入出力部12は、入力部と出力部が一体化していてもよいし、入力部と出力部に分離していてもよいし、そうでなくてもよい。 The input/output unit 12 includes a device for inputting various operations to the call destination resolution server 10, a device for outputting the results of processing performed by the call destination resolution server 10, and the like. The input/output unit 12 may be an integrated input unit and an output unit, may be separate input unit and output unit, or may not be.

入力部は、ユーザからの入力を受け付けて、入力に係る情報を制御部11に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入力部は、代表的にはキーボード等に代表されるハードウェアキーや、マウス等のポインティングデバイスで実現される。なお、入力部は、限定ではなく例として、タッチパネルやカメラ(動画像を介した操作入力)、マイク(音声による操作入力)を含んでいてもよいし、そうでなくてもよい。 The input unit is realized by any one or combination of all types of devices that can accept input from a user and transmit information related to the input to the control unit 11. The input unit is typically realized by hardware keys such as a keyboard, or a pointing device such as a mouse. Note that the input unit may or may not include a touch panel, a camera (operation input via video images), or a microphone (operation input by voice), but is not limited to these.

出力部は、制御部11で処理された処理結果を出力することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力部は、限定ではなく例として、 タッチパネル、タッチディスプレイ、スピーカ(音出力)、レンズ(限定ではなく例として3D(three dimensions)出力や、ホログラム出力)、プリンターなどを含む。 The output unit is realized by any one or a combination of any type of device capable of outputting the results of processing by the control unit 11. Examples of the output unit include, but are not limited to, a touch panel, a touch display, a speaker (sound output), a lens (for example, but not limited to, 3D (three dimensions) output or hologram output), a printer, etc.

あくまでも一例であるが、入出力部12は、限定ではなく例として、表示部13を備える。 By way of example only, the input/output unit 12 is equipped with a display unit 13, by way of example and not by way of limitation.

表示部13は、ディスプレイ等で実現される。ディスプレイは、代表的にはモニタ(限定ではなく例として、液晶ディスプレイやOELD(organic electroluminescence display)で実現される。なお、ディスプレイは、ヘッドマウントディスプレイ(HDM)などであってもよいし、そうでなくてもよい。なお、これらのディスプレイは、3Dで表示データを表示可能であってもよいし、そうでなくてもよい。本開示において、ディスプレイは、これらに限定されない。 The display unit 13 is realized by a display or the like. The display is typically realized by a monitor (for example, but not limited to, a liquid crystal display or an organic electroluminescence display (OELD). The display may or may not be a head mounted display (HDM) or the like. These displays may or may not be capable of displaying display data in 3D. In the present disclosure, displays are not limited to these.

時計部19は、呼び出し先解決サーバ10の内蔵時計であり、時刻情報(計時情報)を出力する。時計部19は、限定ではなく例として、ハードウェアクロックとしてのRTC(Real Time Clock)やシステムクロック等を有して構成される。時計部19は、限定ではなく例として、計時部や時刻情報検出部と表現することもできる。 The clock unit 19 is a built-in clock of the call destination resolution server 10, and outputs time information (timekeeping information). The clock unit 19 is configured to include, for example and not limitation, an RTC (Real Time Clock) as a hardware clock, a system clock, etc. The clock unit 19 can also be expressed as a timekeeping unit or a time information detection unit, for example and not limitation.

限定ではなく例として、コンポーネントサーバ20と、一斉呼び出しサーバ40とについても呼び出し先解決サーバ10と同様に構成することができる。 By way of example and not limitation, the component server 20 and the mass call server 40 can be configured in the same manner as the call destination resolution server 10.

(2)その他
呼び出し先解決サーバ10は、プログラムPを記憶部15に記憶し、このプログラムPを実行することで、制御部11が、制御部11に含まれる各部としての処理を実行する。つまり、記憶部15に記憶されるプログラムPは、呼び出し先解決サーバ10に、制御部11が実行する各機能を実現させる。このプログラムPは、プログラムモジュールと表現されてもよいし、されなくてもよい。
他の装置についても同様である。
(2) Others The call destination resolution server 10 stores the program P in the storage unit 15, and by executing this program P, the control unit 11 executes the processing of each unit included in the control unit 11. In other words, the program P stored in the storage unit 15 causes the call destination resolution server 10 to realize each function executed by the control unit 11. This program P may or may not be expressed as a program module.
The same applies to other devices.

本開示の各実施形態においては、コンポーネントサーバ20および/または呼び出し先解決サーバ10および/または一斉呼び出しサーバ40のCPUがプログラムPを実行することにより、実現するものとして説明する。 In each embodiment of the present disclosure, the CPU of the component server 20 and/or the call destination resolution server 10 and/or the mass call server 40 is described as executing the program P to achieve this.

なお、コンポーネントサーバ20の制御部21、および/または、呼び出し先解決サーバ10の制御部11、および/または、一斉呼び出しサーバ40の制御部41は、制御回路を有するCPUだけでなく、集積回路(IC(Integrated Circuit)チップ、LSI(Large Scale Integration))等に形成された論理回路(ハードウェア)や専用回路によって各処理を実現してもよいし、そうでなくてもよい。また、これらの回路は、1または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を1つの集積回路により実現されることとしてもよいし、そうでなくてもよい。また、LSIは、集積度の違いにより、VLSI、スーパーLSI、ウルトラLSIなどと呼称されることもある。そのため、限定ではなく例として、制御部21は、制御回路と表現されてもよいし、されなくてもよい。
他の装置についても同様である。
In addition, the control unit 21 of the component server 20, and/or the control unit 11 of the call destination resolution server 10, and/or the control unit 41 of the mass calling server 40 may or may not realize each process by a logic circuit (hardware) formed in an integrated circuit (IC (Integrated Circuit) chip, LSI (Large Scale Integration)) or a dedicated circuit, as well as a CPU having a control circuit. In addition, these circuits may be realized by one or more integrated circuits, and the multiple processes shown in each embodiment may or may not be realized by one integrated circuit. In addition, LSIs may be called VLSIs, super LSIs, ultra LSIs, etc. depending on the degree of integration. Therefore, by way of example and not limitation, the control unit 21 may or may not be expressed as a control circuit.
The same applies to other devices.

また、本開示の各実施形態のプログラムP(限定ではなく例として、ソフトウェアプログラム、コンピュータプログラム、またはプログラムモジュール)は、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよいし、されなくてもよい。記憶媒体は、「一時的でない有形の媒体」に、プログラムPを記憶可能である。また、プログラムPは、本開示の各実施形態の機能の一部を実現するためのものであってもよいし、そうでなくてもよい。さらに、本開示の各実施形態の機能を記憶媒体にすでに記録されているプログラムPとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよいし、そうでなくてもよい。 In addition, the program P (which may be, for example and not by way of limitation, a software program, computer program, or program module) of each embodiment of the present disclosure may or may not be provided in a state stored in a computer-readable storage medium. The storage medium is capable of storing the program P in a "non-transitory tangible medium." The program P may or may not be for realizing part of the functions of each embodiment of the present disclosure. Furthermore, the program P may or may not be a so-called difference file (difference program) that can realize the functions of each embodiment of the present disclosure in combination with a program P already recorded in a storage medium.

また、システムのプログラム(システムによって実行されるプログラム)という場合、システムについては前述した通りである。そして、前述したシステムのプログラムとは、システム全体で実行可能なプログラムであって、このプログラムは、限定ではなく例として、システムを構成する装置個々のプログラムで構成されてもよく、システムを構成する個々の装置に保存されるプログラムは、各々異なっていてもよいものとする。つまり、システムを構成する個々の装置で共通のプログラムでなくてもよいものとする。
限定ではなく例として、システムが複数のサーバ(サーバシステムやクラスタ)で構成されている場合、システムのプログラムをP1とすると、システムのプログラムP1は、呼び出し先解決サーバ10に保存されたプログラムP2と、コンポーネントサーバ20に保存されたプログラムP3とで構成され、P2とP3とは、システムのプログラムを実行するためのものであり、それぞれ異なるプログラムとなっていてもよい。限定ではなく例として、呼び出し先解決サーバ10に保存されたプログラムP2は、第1の処理を実行し、第1の処理をした結果をサーバに送信するプログラムであり、コンポーネントサーバ20に保存されたプログラムP3は、受信した第1の処理をした結果に対して第2の処理を行い、第2の処理を行った結果を呼び出し先解決サーバ10に送信するプログラムであってもよい。
他の装置についても同様である。
Furthermore, when referring to a system program (a program executed by the system), the system is as described above. The above-mentioned system program is a program that can be executed by the entire system, and this program may be composed of individual programs of the devices that make up the system, for example and without limitation, and the programs stored in each device that makes up the system may be different from each other. In other words, it is not necessary for the programs to be common to the individual devices that make up the system.
As an example and not a limitation, when a system is composed of multiple servers (server system or cluster), the system program P1 is composed of a program P2 stored in the call destination resolution server 10 and a program P3 stored in the component server 20, and P2 and P3 are for executing the system program and may be different programs. As an example and not a limitation, the program P2 stored in the call destination resolution server 10 may be a program that executes a first process and transmits the result of the first process to the server, and the program P3 stored in the component server 20 may be a program that executes a second process on the received result of the first process and transmits the result of the second process to the call destination resolution server 10.
The same applies to other devices.

記憶媒体は、1つまたは複数の半導体ベースの、または他の集積回路(IC)(限定ではなく例として、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カード、またはドライブ、任意の他の適切な記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。なお、記憶媒体はこれらの例に限られず、プログラムPを記憶可能であれば、どのようなデバイスまたは媒体であってもよい。また、記憶媒体をメモリ(memory)と表現されてもよいし、されなくてもよい。 The storage medium may include one or more semiconductor-based or other integrated circuits (ICs) (such as, by way of example and not limitation, a field programmable gate array (FPGA) or an application specific IC (ASIC)), a hard disk drive (HDD), a hybrid hard drive (HHD), an optical disk, an optical disk drive (ODD), a magneto-optical disk, a magneto-optical drive, a floppy diskette, a floppy disk drive (FDD), a magnetic tape, a solid-state drive (SSD), a RAM drive, a secure digital card, or a drive, any other suitable storage medium, or a suitable combination of two or more thereof. The storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, as appropriate. It should be noted that the storage medium is not limited to these examples and may be any device or medium capable of storing the program P. Also, the storage medium may or may not be referred to as a memory.

呼び出し先解決サーバ10および/または一斉呼び出しサーバ40および/またはコンポーネントサーバ20は、限定ではなく例として、記憶媒体に記憶されたプログラムPを読み出し、読み出したプログラムPを実行することによって、各実施形態に示す複数の機能部の機能を実現することができる。 By way of example and not limitation, the call destination resolution server 10 and/or the mass call server 40 and/or the component server 20 can realize the functions of the multiple functional units shown in each embodiment by reading a program P stored in a storage medium and executing the read program P.

また、本開示のプログラムPは、プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して、呼び出し先解決サーバ10および/または一斉呼び出しサーバ40および/またはコンポーネントサーバ20に提供されてもよいし、されなくてもよい。呼び出し先解決サーバ10および/または一斉呼び出しサーバ40および/またはコンポーネントサーバ20は、限定ではなく例として、インターネット等を介してダウンロードしたプログラムPを実行することにより、各実施形態に示す複数の機能部の機能を実現する。 In addition, the program P of the present disclosure may or may not be provided to the call destination resolution server 10 and/or the mass call server 40 and/or the component server 20 via any transmission medium capable of transmitting a program (such as a communication network or broadcast waves). The call destination resolution server 10 and/or the mass call server 40 and/or the component server 20 executes the program P downloaded via the Internet or the like, by way of example and not limitation, thereby realizing the functions of the multiple functional units shown in each embodiment.

また、本開示の各実施形態は、プログラムPが電子的な伝送によって具現化されたデータ信号の形態でも実現され得る。
呼び出し先解決サーバ10および/または一斉呼び出しサーバ40および/またはコンポーネントサーバ20における処理の少なくとも一部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよいし、そうでなくてもよい。
コンポーネントサーバ20における処理の少なくとも一部、または全部を、呼び出し先解決サーバ10および/または一斉呼び出しサーバ40により行う構成としてもよいし、そうでなくてもよい。この場合、コンポーネントサーバ20の制御部21の各機能部の処理のうち少なくとも一部の処理、または全部の処理を、呼び出し先解決サーバ10および/または一斉呼び出しサーバ40で行う構成としてもよいし、そうでなくてもよい。
呼び出し先解決サーバ10および/または一斉呼び出しサーバ40における処理の少なくとも一部、または全部を、コンポーネントサーバ20により行う構成としてもよいし、そうでなくてもよい。この場合、呼び出し先解決サーバ10の制御部11および/または一斉呼び出しサーバ40の制御部41の各機能部の処理のうち少なくとも一部の処理、または全部の処理を、コンポーネントサーバ20で行う構成としてもよいし、そうでなくてもよい。
In addition, each embodiment of the present disclosure may be realized in the form of a data signal in which the program P is embodied by electronic transmission.
At least a part of the processing in the call destination resolution server 10 and/or the mass call server 40 and/or the component server 20 may or may not be realized by cloud computing consisting of one or more computers.
At least a part or all of the processing in the component server 20 may or may not be performed by the call destination resolution server 10 and/or the mass call server 40. In this case, at least a part or all of the processing of each functional unit of the control unit 21 of the component server 20 may or may not be performed by the call destination resolution server 10 and/or the mass call server 40.
At least a part or all of the processing in the call destination resolution server 10 and/or the mass call server 40 may or may not be performed by the component server 20. In this case, at least a part or all of the processing of each functional unit of the control unit 11 of the call destination resolution server 10 and/or the control unit 41 of the mass call server 40 may or may not be performed by the component server 20.

呼び出し先解決サーバ10における処理の少なくとも一部、または全部を、一斉呼び出しサーバ40により行う構成としてもよいし、そうでなくてもよい。この場合、呼び出し先解決サーバ10の制御部11の各機能部の処理のうち少なくとも一部の処理、または全部の処理を、一斉呼び出しサーバ40で行う構成としてもよいし、そうでなくてもよい。
一斉呼び出しサーバ40における処理の少なくとも一部、または全部を、呼び出し先解決サーバ10により行う構成としてもよいし、そうでなくてもよい。この場合、一斉呼び出しサーバ40の制御部41の各機能部の処理のうち少なくとも一部の処理、または全部の処理を、呼び出し先解決サーバ10で行う構成としてもよいし、そうでなくてもよい。
At least a part or all of the processing in the call destination resolution server 10 may or may not be performed by the mass call server 40. In this case, at least a part or all of the processing of each functional unit of the control unit 11 of the call destination resolution server 10 may or may not be performed by the mass call server 40.
At least a part or all of the processing in the mass call server 40 may or may not be performed by the call destination resolution server 10. In this case, at least a part or all of the processing of each functional unit of the control unit 41 of the mass call server 40 may or may not be performed by the call destination resolution server 10.

明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよいし、そうでなくてもよい。 Unless explicitly stated, the judgment configuration in the embodiments of the present disclosure is not essential, and a specified process may or may not be executed when the judgment condition is satisfied, or when the judgment condition is not satisfied.

なお、本開示のプログラムは、限定ではなく例として、ActionScript、JavaScript(登録商標)などのスクリプト言語、Go、Objective-C、Java(登録商標)などのコンパイラ言語、HTML Living Standardなどのマークアップ言語などを用いて実装される。 The programs disclosed herein may be implemented using, by way of example and not limitation, scripting languages such as ActionScript and JavaScript (registered trademark), compiler languages such as Go, Objective-C and Java (registered trademark), and markup languages such as HTML Living Standard.

<機能構成>
(1)コンポーネントサーバ20の機能構成
図1-2は、本実施例においてコンポーネントサーバ20の制御部21によって実現される機能の一例を示す図である。
制御部21は、限定ではなく例として、記憶部25に記憶されたコンポーネント処理プログラム251に従ってコンポーネントプログラム処理を実行するためのコンポーネントプログラム処理部211を機能部として含む。
また、制御部21は、限定ではなく例として、記憶部25に記憶されたhttpデーモンプログラム253に従ってhttpによる情報の送受信を行うためのhttpデーモン処理を実行するためのhttpデーモン処理部213を機能部として含む。
<Functional configuration>
(1) Functional Configuration of the Component Server 20 FIG. 1B is a diagram showing an example of functions realized by the control unit 21 of the component server 20 in this embodiment.
The control unit 21 includes, as a functional unit, a component program processing unit 211 for executing component program processing in accordance with a component processing program 251 stored in the storage unit 25, by way of example and not of limitation.
The control unit 21 also includes, as a functional unit, an http daemon processing unit 213 for executing an http daemon process for sending and receiving information via HTTP in accordance with an http daemon program 253 stored in the memory unit 25, by way of example and not limitation.

図1-3は、本実施例においてコンポーネントサーバ20の記憶部25に記憶される情報の一例を示す図である。
記憶部25には、限定ではなく例として、制御部21によってコンポーネントプログラム処理として実行されるコンポーネント処理プログラム251と、制御部21によってhttpデーモン処理として実行されるhttpデーモンプログラム253と、サーバID255とが記憶される。
FIG. 1C is a diagram showing an example of information stored in the storage unit 25 of the component server 20 in this embodiment.
The memory unit 25 stores, by way of example and not limitation, a component processing program 251 executed by the control unit 21 as a component program process, an http daemon program 253 executed by the control unit 21 as an http daemon process, and a server ID 255.

限定ではなく例として、コンポーネント処理プログラム251は、ソフトウエアコンポーネントと言ってもよい。 By way of example and not limitation, the component processing program 251 may be referred to as a software component.

httpデーモンプログラム253は、限定ではなく例として、Apache(登録商標) HTTP Serverやnginx(登録商標)、WSGI(Web Server Gateway Interface) Server等で実現(実装)されるようにしてもよい。 The http daemon program 253 may be realized (implemented) by, for example but not limited to, Apache (registered trademark) HTTP Server, nginx (registered trademark), WSGI (Web Server Gateway Interface) Server, etc.

コンポーネント処理プログラム251は、限定ではなく例として、メッセージングモジュール2513を備える。また、メッセージングモジュール2513は、限定ではなく例として、httpメッセージングドライバ2515を備える。 The component processing program 251 includes, by way of example and not by way of limitation, a messaging module 2513. The messaging module 2513 also includes, by way of example and not by way of limitation, an http messaging driver 2515.

サーバID255は、限定ではなく例として、コンポーネント処理プログラムを実行するクラスタ(サーバシステム)のうち、特定のコンポーネントサーバ20を識別するための情報である。
限定ではなく例として、あるコンポーネントサーバ20がコンポーネントプログラム処理を開始する場合、コンポーネント処理プログラム251に従ってコンポーネントサーバ20ごとに割り振られる識別情報がサーバID255に記憶されるようにしてもよい。
The server ID 255 is, by way of example and not limitation, information for identifying a particular component server 20 in a cluster (server system) that executes a component processing program.
For example and not limitation, when a component server 20 starts a component program process, identification information assigned to each component server 20 in accordance with the component processing program 251 may be stored in the server ID 255 .

(2)呼び出し先解決サーバ10の機能構成
図1-4は、本実施例において呼び出し先解決サーバ10の制御部11によって実現される機能の一例を示す図である。
制御部11は、限定ではなく例として、記憶部15に記憶された呼び出し先解決処理プログラム151に従って、コンポーネントサーバ20間におけるプロセス間通信の呼び出し先解決処理を実行するための呼び出し先解決処理部111を機能部として含む。
なお、制御部11は、限定ではなく例として、記憶部15に記憶されたhttpデーモンプログラムに従ってhttpによる情報の送受信を行うためのhttpデーモン処理を実行するためのhttpデーモン処理部を機能部として含むようにしてもよい。
(2) Functional Configuration of the Call Destination Resolution Server 10 FIG. 1-4 is a diagram showing an example of functions realized by the control unit 11 of the call destination resolution server 10 in this embodiment.
The control unit 11 includes, as a functional unit and not as a limitation, a callee resolution processing unit 111 for executing callee resolution processing of inter-process communication between component servers 20 in accordance with a callee resolution processing program 151 stored in the memory unit 15.
In addition, the control unit 11 may include, as a non-limiting example, an HTTP daemon processing unit as a functional unit for executing HTTP daemon processing to send and receive information via HTTP in accordance with an HTTP daemon program stored in the memory unit 15.

図1-5は、本実施例において呼び出し先解決サーバ10の記憶部15に記憶される情報の一例を示す図である。
記憶部15には、限定ではなく例として、制御部11によって呼び出し先解決処理として実行される呼び出し先解決処理プログラム151と、呼び出し先管理データ153とが記憶される。
なお、記憶部15に、httpデーモンプログラムを記憶させるようにしてもよい。
FIG. 1-5 is a diagram showing an example of information stored in the storage unit 15 of the call destination resolution server 10 in this embodiment.
In the storage unit 15, for example and not for limitation, a callee resolution processing program 151 executed by the control unit 11 as the callee resolution processing, and callee management data 153 are stored.
The storage unit 15 may also be configured to store an http daemon program.

呼び出し先管理データ153は、コンポーネントプログラム(限定ではなく例として、OpenStackにおけるNOVAやNEUTRON等)を実行するクラスタ(サーバシステム)内の個々のコンポーネントサーバ20に関する登録データであり、そのデータ構成の一例を図1-6に示す。
呼び出し先管理データ153には、限定ではなく例として、サーバIDと、バインドキー情報と、その他登録情報とが関連付けて記憶される。
The callee management data 153 is registration data related to each component server 20 in a cluster (server system) that executes a component program (such as, but not limited to, NOVA or NEUTRON in OpenStack). An example of the data configuration is shown in FIG.
In the call destination management data 153, for example and not for limitation, a server ID, bind key information, and other registration information are stored in association with each other.

サーバIDは、コンポーネント処理プログラムを実行するクラスタを構成するコンポーネントサーバ20の識別情報であり、限定ではなく例として、コンポーネントサーバ20がコンポーネント処理プログラムを実行する際にコンポーネントサーバ20から送信されるサーバIDが記憶される。 The server ID is identification information of the component server 20 that constitutes the cluster that executes the component processing program, and as a non-limiting example, the server ID sent from the component server 20 when the component server 20 executes the component processing program is stored.

なお、サーバIDは、コンポーネントサーバ20が識別可能な情報(限定ではなく例として、IPアドレスやポート番号、MACアドレス、URI等)としてもよい。
また、サーバIDは、RPCエンドポイント情報と言ってもよい。
The server ID may be information that can be identified by the component server 20 (for example, but not limited to, an IP address, a port number, a MAC address, a URI, etc.).
The server ID may also be called RPC endpoint information.

また、サーバIDは、限定ではなく例として、コンポーネントサーバ20がコンポーネント処理プログラムを実行する際に呼び出し先解決サーバ10によってコンポーネントサーバ20ごとに一意な値(固有の値)が設定されて記憶されるようにしてもよい。
この場合、呼び出し先解決サーバ10は、設定したサーバIDをコンポーネントサーバ20に送信するようにしてもよい。そして、コンポーネントサーバ20は、受信したサーバIDを記憶部25に記憶させるようにしてもよい。
In addition, as an example and not a limitation, the server ID may be set and stored as a unique value (proper value) for each component server 20 by the callee resolution server 10 when the component server 20 executes the component processing program.
In this case, the call destination resolution server 10 may transmit the set server ID to the component server 20. Then, the component server 20 may store the received server ID in the storage unit 25.

バインドキー情報は、限定ではなく例として、RPCにおけるプロセス間通信の呼び出し先を定めるための情報である。このバインドキー情報は、限定ではなく例として、コンポーネントサーバ20がコンポーネント処理プログラムを実行する際にコンポーネントサーバ20から送信されるバインドキー情報が記憶される。 The bind key information is, by way of example and not by way of limitation, information for determining the call destination of inter-process communication in an RPC. As an example and not by way of limitation, this bind key information stores the bind key information sent from the component server 20 when the component server 20 executes a component processing program.

なお、バインドキー情報は、限定ではなく例として、コンポーネントサーバ20がコンポーネント処理プログラムを実行する際に呼び出し先解決サーバ10によって設定され、記憶されるようにしてもよい。 In addition, as a non-limiting example, the bind key information may be set and stored by the called resolution server 10 when the component server 20 executes the component processing program.

また、バインドキー情報は、限定ではなく例として、メッセージングモジュール2513がRPCに従ってプロセス間通信を受け付けるために必要となる情報であり、限定ではなく例として、RPCとの互換性を保つ必要がない場合、バインドキー情報は記憶させないようにしてもよい。 In addition, the bind key information is, by way of example and not limitation, information required for the messaging module 2513 to accept inter-process communication according to RPC, and, by way of example and not limitation, if there is no need to maintain compatibility with RPC, the bind key information may not be stored.

また、バインドキー情報には、限定ではなく例として、文字列のパターンを示す表現(限定ではなく例として、1ワードマッチ(限定ではなく例として、「*」)や複数ワードマッチ(限定ではなく例として、「#」)等)を含めるようにしてもよい。バインドキー情報には、限定ではなく例として、複数のバインドキー文字列を含めるようにしてもよい。 The bind key information may also include, by way of example and not limitation, an expression indicating a string pattern (by way of example and not limitation, one word match (by way of example and not limitation, "*") or multiple word match (by way of example and not limitation, "#")). The bind key information may also include, by way of example and not limitation, multiple bind key strings.

その他登録情報には、限定ではなく例として、コンポーネントサーバ20に関するサーバ情報やコンポーネントサーバ20の構成情報(限定ではなく例として、CPUコア数やメインメモリ容量等)、アップタイムやロードアベレージといった各種の情報を含めるようにすることができる。また、その他登録情報には、呼び出し先解決サーバ10による各コンポーネントサーバ20への死活監視に関する情報を含めるようにしてもよい。 The other registered information may include, by way of example and not limitation, server information about the component server 20, configuration information about the component server 20 (by way of example and not limitation, the number of CPU cores, main memory capacity, etc.), and various other information such as uptime and load average. The other registered information may also include information regarding alive monitoring of each component server 20 by the called resolution server 10.

なお、その他登録情報に、サーバの役割を識別するための情報(以下、「サーバ役割情報」と称する。)として、限定ではなく例として、RPCを受付可能であることを示す「ワーカ」等を設定可能であるようにしてもよい。 In addition, other registration information may include information for identifying the role of the server (hereinafter referred to as "server role information"), such as "worker" indicating that RPCs can be accepted, as an example and not a limitation.

なお、呼び出し先管理データ153に、一斉呼び出しサーバ40の登録情報を記憶させるようにしてもよい。
この場合、限定ではなく例として、サーバ役割情報に、限定ではなく例として、「ブロードキャスタ」と設定可能であるようにしてもよい。関連付けられるバインドキー情報はあってもよいし、無くてもよい。
また、サーバIDは、一斉呼び出しサーバ40によって設定されることとしてもよいし、呼び出し先解決サーバ10によって設定されることとしてもよい。
The call destination management data 153 may store registration information of the mass calling server 40 .
In this case, for example and not for limitation, the server role information may be set to, for example and not for limitation, "broadcaster." There may or may not be associated bind key information.
The server ID may be set by the mass calling server 40 or by the call destination resolution server 10 .

なお、限定ではなく例として、ある一斉呼び出しサーバ40が後述のRPCメッセージ情報増幅送信処理を実行中の間、その一斉呼び出しサーバ40に関するレコード(サーバID等)を呼び出し先管理データ153から一時的に削除するようにしてもよい。 As an example and not a limitation, while a certain mass call server 40 is executing the RPC message information amplification and transmission process described below, the record (server ID, etc.) related to that mass call server 40 may be temporarily deleted from the call destination management data 153.

なお、呼び出し先解決処理プログラム151は、限定ではなく例として、サービス・ディスカバリシステムであるConsulや、DNS(Domain Name System)等に基づいて実装されるようにしてもよい。 The call destination resolution processing program 151 may be implemented based on, for example and not by way of limitation, a service discovery system such as Consul or DNS (Domain Name System).

(3)一斉呼び出しサーバ40の機能構成
図1-7は、本実施例において一斉呼び出しサーバ40の制御部41によって実現される機能の一例を示す図である。
制御部41は、限定ではなく例として、記憶部45に記憶された一斉呼び出し処理プログラム451に従って、複数のコンポーネントサーバ20へのプロセス間通信を実行するための一斉呼び出しプログラム処理部411を機能部として含む。
また、制御部41は、限定ではなく例として、記憶部45に記憶されたhttpデーモンプログラム453に従ってhttpによる情報の送受信を行うためのhttpデーモン処理を実行するためのhttpデーモン処理部413を機能部として含む。
(3) Functional Configuration of the Mass Calling Server 40 FIG. 1-7 is a diagram showing an example of functions realized by the control unit 41 of the mass calling server 40 in this embodiment.
The control unit 41 includes, as a functional unit and not as a limitation, a simultaneous call program processing unit 411 for executing inter-process communication with multiple component servers 20 in accordance with a simultaneous call processing program 451 stored in the memory unit 45 .
The control unit 41 also includes, as a functional unit, an HTTP daemon processing unit 413 for executing HTTP daemon processing for sending and receiving information via HTTP in accordance with an HTTP daemon program 453 stored in the memory unit 45, for example and not for limitation.

図1-8は、本実施例において一斉呼び出しサーバ40の記憶部45に記憶される情報の一例を示す図である。
記憶部45には、限定ではなく例として、制御部41によって一斉呼び出し処理として実行される一斉呼び出し処理プログラム451と、制御部41によってhttpデーモン処理として実行されるhttpデーモンプログラム453と、コンポーネントサーバ一覧情報455とが記憶される。
FIG. 1-8 is a diagram showing an example of information stored in the storage unit 45 of the mass calling server 40 in this embodiment.
The memory unit 45 stores, by way of example and not limitation, a mass call processing program 451 executed by the control unit 41 as a mass call process, an http daemon program 453 executed by the control unit 41 as an http daemon process, and component server list information 455.

コンポーネントサーバ一覧情報455は、インヴォーカであるコンポーネントサーバ20がプロセス間通信において一斉呼び出し(限定ではなく例として、rpc.fanout)を実行する場合、一斉呼び出し先として指定されるワーカであるコンポーネントサーバ20の一覧情報であり、限定ではなく例として、各コンポーネントサーバ20のサーバID(サーバ識別情報)が記憶され保管されている。 The component server list information 455 is a list of component servers 20 that are workers designated as the destination of a mass call when the component server 20 that is an invoker executes a mass call (for example, but not limited to, rpc.fanout) in inter-process communication, and, for example, but not limited to, the server ID (server identification information) of each component server 20 is stored and saved.

なお、一斉呼び出しサーバ40は、限定ではなく例として、http通信を仲介し増幅するためのAPIサーバと言ってもよい。 In addition, the mass call server 40 may be described as an API server for mediating and amplifying HTTP communications, but is not limited to this example.

<処理>
図1-9は、本実施例において各装置が実行する処理の流れの一例を示すフローチャートである。本フローチャートでは、限定ではなく例として、手続き側からの応答を期待するrpc.call通信について説明する。また、本フローチャートでは、限定ではなく例として、コンポーネントサーバ20Aをrpcの呼び出し側(インヴォーカ)、コンポーネントサーバ20Bをrpcの手続き側(ワーカ)とする。
この図では、左側から順にインヴォーカとなるコンポーネントサーバ20Aの制御部21が実行する処理、呼び出し先解決サーバ10の制御部11が実行する処理、ワーカとなるコンポーネントサーバ20Bの制御部21が実行する処理をそれぞれ示している。
<Processing>
1-9 is a flowchart showing an example of the flow of processing executed by each device in this embodiment. In this flowchart, as an example and not a limitation, an RPC.call communication in which a response is expected from the procedure side is described. Also, in this flowchart, as an example and not a limitation, the component server 20A is the RPC call side (invoker) and the component server 20B is the RPC procedure side (worker).
This figure shows, from the left, the processing performed by the control unit 21 of the component server 20A which is the invoker, the processing performed by the control unit 11 of the called resolution server 10, and the processing performed by the control unit 21 of the component server 20B which is the worker.

フローチャートに先立ち、各コンポーネントサーバ20の制御部21は、限定ではなく例として、コンポーネント処理プログラム251とhttpデーモンプログラム253とに従って、コンポーネントプログラム処理とhttpデーモン処理とを開始する。すると、各コンポーネントサーバ20の制御部21は、限定ではなく例として、httpメッセージングドライバ2515に従って、記憶部25に記憶されるサーバID255を含むコンポーネントプログラム起動情報を通信I/F22によって呼び出し先解決サーバ10に送信する。 Prior to the flowchart, the control unit 21 of each component server 20 starts component program processing and http daemon processing according to, for example and not limitation, the component processing program 251 and the http daemon program 253. Then, the control unit 21 of each component server 20 sends component program start-up information including the server ID 255 stored in the storage unit 25 to the call destination resolution server 10 via the communication I/F 22 according to, for example and not limitation, the http messaging driver 2515.

なお、コンポーネントプログラム起動情報に、限定ではなく例として、各コンポーネントサーバ20に関する構成情報等のサーバ情報を含めるようにしてもよい。また、コンポーネントプログラム起動情報に、限定ではなく例として、コンポーネントプログラム処理の起動時に設定されるバインドキー情報を含めるようにしてもよい。 In addition, the component program startup information may include, by way of example and not by way of limitation, server information such as configuration information regarding each component server 20. In addition, the component program startup information may include, by way of example and not by way of limitation, bind key information that is set when the component program process is started.

通信I/F14によってコンポーネントサーバ20からコンポーネントプログラム起動情報を受信すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、ワーカ更新処理を実行する(S110)。
ワーカ更新処理において、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、受信したコンポーネントプログラム起動情報に基づいて、各コンポーネントサーバ20を「ワーカ」とするように呼び出し先管理データ153を更新し登録する。
When the component program start information is received from the component server 20 via the communication I/F 14, the control unit 11 of the call destination resolution server 10 executes a worker update process, for example and not for limitation (S110).
In the worker update process, the control unit 11 of the callee resolution server 10 updates and registers the callee management data 153 so that each component server 20 becomes a "worker" based on the received component program start-up information, for example and not limitation.

なお、各コンポーネントサーバ20の制御部21は、限定ではなく例として、コンポーネントプログラム処理を開始すると、限定ではなく例として、コンポーネントプログラム起動情報を所定時刻(限定ではなく例として、「毎時00分」)または所定期間(限定ではなく例として、「7200秒」)ごとに呼び出し先解決サーバ10に送信するようにしてもよい。
そして、呼び出し先解決サーバ10の制御部11は、コンポーネントサーバ20からコンポーネントプログラム起動情報を受信すると、受信したコンポーネントプログラム起動情報に基づいて、呼び出し先管理データ153を更新するようにしてもよい。
In addition, by way of example and not limitation, when the control unit 21 of each component server 20 starts component program processing, the control unit 21 may, by way of example and not limitation, transmit component program startup information to the called resolution server 10 at a predetermined time (by way of example and not limitation, "00 minutes past the hour") or at predetermined intervals (by way of example and not limitation, "7200 seconds").
Then, when the control unit 11 of the call destination resolution server 10 receives the component program start information from the component server 20, the control unit 11 may update the call destination management data 153 based on the received component program start information.

また、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、各々のコンポーネントサーバ20がワーカとして稼働していることを確認するためのコンポーネントプログラム稼働確認情報を所定時刻(限定ではなく例として、「毎分00秒」)または所定期間(限定ではなく例として、「60秒」)ごとに各コンポーネントサーバ20に送信するようにしてもよい。
通信I/F24によって呼び出し先解決サーバ10からコンポーネントプログラム稼働確認情報を受信すると、コンポーネントサーバ20の制御部21は、限定ではなく例として、コンポーネントプログラム起動情報を呼び出し先解決サーバ10に送信するようにしてもよい。
そして、呼び出し先解決サーバ10の制御部11は、コンポーネントサーバ20からコンポーネントプログラム起動情報を受信すると、受信したコンポーネントプログラム起動情報に基づいて、呼び出し先管理データ153を更新するようにしてもよい。
In addition, the control unit 11 of the destination resolution server 10 may, by way of example and not limitation, send component program operation confirmation information to each component server 20 at a predetermined time (as an example and not limitation, "00 seconds every minute") or at a predetermined period (as an example and not limitation, "60 seconds") to confirm that each component server 20 is operating as a worker.
When component program operation confirmation information is received from the called resolution server 10 via the communication I/F 24, the control unit 21 of the component server 20 may, as a non-limiting example, send component program start-up information to the called resolution server 10.
Then, when the control unit 11 of the call destination resolution server 10 receives the component program start information from the component server 20, the control unit 11 may update the call destination management data 153 based on the received component program start information.

なお、呼び出し先解決サーバ10の制御部11は、あるコンポーネントサーバ20からコンポーネントプログラム起動情報を受信不能と判定する場合、そのコンポーネントサーバ20を呼び出し先管理データ153から削除するようにしてもよい。 When the control unit 11 of the call destination resolution server 10 determines that it is unable to receive component program startup information from a certain component server 20, it may delete that component server 20 from the call destination management data 153.

これにより、呼び出し先解決サーバ10において、各コンポーネントサーバ20の稼働状態に応じた死活監視を実現することができる。 This allows the called resolution server 10 to perform alive monitoring according to the operating status of each component server 20.

その後、インヴォーカであるコンポーネントサーバ20Aの制御部21は、限定ではなく例として、コンポーネントプログラムにおけるrpc.call手続きに基づいて、rpc.call処理を実行開始する(A110)。
rpc.call処理において、コンポーネントサーバ20Aのコンポーネントプログラム処理部211は、限定ではなく例として、httpメッセージングドライバ2515が組み込まれているメッセージングモジュール2513のRPCクライアント(狭義のインヴォーカ)を呼び出す。
Thereafter, the control unit 21 of the component server 20A, which is the invoker, starts executing rpc.call processing based on the rpc.call procedure in the component program, for example and not by way of limitation (A110).
In the rpc.call process, the component program processing unit 211 of the component server 20A calls an RPC client (narrowly defined as an invoker) of the messaging module 2513 in which the http messaging driver 2515 is embedded, for example and not by way of limitation.

以下では、コンポーネント処理プログラム251からメッセージングモジュール2513の呼び出し引数において指定されるrpc処理の内容を、限定ではなく例として、「rpc処理要求情報」と称する。 In the following, the content of the RPC processing specified in the calling arguments of the messaging module 2513 from the component processing program 251 will be referred to as "RPC processing request information" by way of example and not by way of limitation.

rpc処理要求情報は、限定ではなく例として、以下の要素で構成されることとしてもよい。
・rpcメッセージ情報:手続き側で行う具体例処理内容(関数と言ってもよい)。
・ターゲット:手続き側のコンポーネントサーバ20を探索する方法を識別するための情報。
・ルーティングキー:コンポーネントサーバ20を探索する際に用いる、バインドキー情報と照合するための情報。
The RPC processing request information may be composed of the following elements, by way of example and not limitation:
RPC message information: Specific processing contents (which may be called functions) performed on the procedure side.
Target: Information for identifying a method for searching for a procedural component server 20.
Routing key: Information used when searching for the component server 20 and for matching with the bind key information.

なお、rpc処理要求情報は、限定ではなく例として、より簡潔に、ルーティングキーと、rpcメッセージ情報とで構成されることとしてもよい。 In addition, by way of example and not limitation, the RPC processing request information may be more simply composed of a routing key and RPC message information.

また、以下では、rpcメッセージ情報に基づく手続き側でのrpc処理の結果(関数の返り値と言ってもよい)に関する情報を「rpc処理結果情報」と称する。 In addition, below, information regarding the result of RPC processing on the procedure side based on RPC message information (which can also be said to be the return value of the function) is referred to as "RPC processing result information."

すると、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、httpメッセージングドライバ2515に従って、RPCの手続き先を特定するために必要な情報であるワーカ一覧要求情報を通信I/F24によって呼び出し先解決サーバ10に送信する(A120)。
なお、呼び出し先解決サーバ10を識別するための情報(限定ではなく例として、IPアドレスやAPIサーバのURI等)は、限定ではなく例として、httpメッセージングドライバ2515が記憶することとしてもよい。また、呼び出し先解決サーバ10を識別するための情報は、随時呼び出し先解決サーバ10がコンポーネントサーバ20に送信するようにしてもよい。
Then, the control unit 21 of the component server 20A, by way of example and not limitation, sends worker list request information, which is information necessary to identify the RPC procedure destination, to the call destination resolution server 10 via the communication I/F 24 in accordance with the HTTP messaging driver 2515 (A120).
Note that, by way of example and not limitation, the information for identifying the call destination resolution server 10 (such as an IP address or a URI of an API server) may be stored by the HTTP messaging driver 2515. Also, the information for identifying the call destination resolution server 10 may be transmitted from the call destination resolution server 10 to the component server 20 as needed.

通信I/F14によってコンポーネントサーバ20Aからワーカ一覧要求情報を受信すると、呼び出し先解決サーバ10の制御部11は、呼び出し先管理データ153を参照し、限定ではなく例として、サーバ役割情報が「ワーカ」であるサーバIDと、バインドキー情報とを含むワーカ一覧情報を通信I/F14によってコンポーネントサーバ20Aに送信する(S130)。
なお、ワーカ一覧情報に、各コンポーネントサーバ20の構成情報やロードアベレージといった各種のサーバ情報を含めるようにしてもよい。
When worker list request information is received from component server 20A via communication I/F 14, the control unit 11 of the callee resolution server 10 refers to the callee management data 153 and, as an example but not limited to, sends worker list information including a server ID whose server role information is "worker" and binding key information to the component server 20A via communication I/F 14 (S130).
The worker list information may include various types of server information such as configuration information and load average of each component server 20 .

なお、ワーカ一覧要求情報とワーカ一覧情報との送受信は、限定ではなく例として、httpプロトコルに従って行われるようにしてもよいし、DNSに従って行われるようにしてもよい。 Note that the sending and receiving of worker list request information and worker list information may be performed according to the HTTP protocol or according to DNS, but this is not a limitation of the present invention.

また、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、呼び出し先解決サーバ10を示すURIに、限定ではなく例として、REST API(RESTful API)を介してワーカ一覧情報を取得するようにしてもよい。 In addition, the control unit 21 of the component server 20A may, for example and not for limitation, obtain worker list information from a URI indicating the called resolution server 10 via a REST API (RESTful API).

通信I/F24によって呼び出し先解決サーバ10からワーカ一覧情報を受信すると、コンポーネントサーバ20Aの制御部21は、ワーカ探索処理を実行する(A130)。
ワーカ探索処理において、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、受信したワーカ一覧情報とrpc処理要求情報とに基づいて、rpcメッセージ情報を送信するワーカ(この例では、コンポーネントサーバ20B)を決定する。
When the worker list information is received from the call destination resolution server 10 via the communication I/F 24, the control unit 21 of the component server 20A executes a worker search process (A130).
In the worker search process, the control unit 21 of the component server 20A determines a worker (in this example, component server 20B) to send the RPC message information based on the received worker list information and RPC processing request information, by way of example and not limitation.

より具体例には、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、rpc処理要求情報におけるターゲットおよびルーティングキーの条件を満たすバインドキー情報を持つコンポーネントサーバ20のサーバIDを探索するようにしてもよい。 More specifically, the control unit 21 of the component server 20A may search for the server ID of a component server 20 having bind key information that satisfies the target and routing key conditions in the RPC processing request information, for example and not limitation.

限定ではなく例として、ターゲットが「ダイレクト」である場合、コンポーネントサーバ20Aの制御部21は、バインドキー情報がルーティングキーとマッチするサーバIDのコンポーネントサーバ20をワーカとするようにしてもよい。
また、限定ではなく例として、ターゲットが「トピック」である場合、コンポーネントサーバ20Aの制御部21は、バインドキー情報における文字列のパターンを示す表現を利用し、ルーティングキーと条件マッチするサーバIDのコンポーネントサーバ20をワーカとするようにしてもよい。
また、限定ではなく例として、ターゲットが「null(無指定)」である場合、コンポーネントサーバ20Aの制御部21は、バインドキー情報がルーティングキーと完全一致するサーバIDのコンポーネントサーバ20をワーカとするようにしてもよい。
As an example and not by way of limitation, when the target is "direct", the control unit 21 of the component server 20A may select as a worker a component server 20 having a server ID whose bind key information matches the routing key.
Also, as an example and not a limitation, when the target is a “topic”, the control unit 21 of the component server 20A may use an expression indicating a string pattern in the binding key information, and designate a component server 20 having a server ID that matches the routing key as a worker.
Also, as a non-limiting example, when the target is “null (unspecified)”, the control unit 21 of the component server 20A may designate as a worker a component server 20 having a server ID whose binding key information completely matches the routing key.

なお、ワーカ探索処理において、コンポーネントサーバ20Aの制御部21は、複数のサーバIDを探索結果として出力するようにしてもよい。 In addition, in the worker search process, the control unit 21 of the component server 20A may output multiple server IDs as the search result.

ワーカとなるサーバIDが探索されると、コンポーネントサーバ20Aの制御部21は、探索されたサーバIDに基づいて、rpcメッセージ情報を通信I/F24によってコンポーネントサーバ20Bに送信する(A150)。
また、コンポーネントサーバ20Bの制御部21は、通信I/F24によってコンポーネントサーバ20Aからrpcメッセージ情報を受信する(B110)。
When the server ID to be a worker is found, the control unit 21 of the component server 20A transmits rpc message information to the component server 20B via the communication I/F 24 based on the found server ID (A150).
Furthermore, the control unit 21 of the component server 20B receives the rpc message information from the component server 20A via the communication I/F 24 (B110).

rpcメッセージ情報の送受信において、限定ではなく例として、コンポーネントサーバ20のhttpデーモン処理部213は、httpに従って情報の送受信を行うようにしてもよい。この場合、コンポーネントサーバ20Aの制御部21は、POSTメソッドによってコンポーネントサーバ20Bにrpcメッセージ情報を送信するようにしてもよい。また、コンポーネントサーバ20Bの制御部21は、GETメソッドによってコンポーネントサーバ20Aからrpcメッセージ情報を受信するようにしてもよい。 In sending and receiving rpc message information, as a non-limiting example, the http daemon processing unit 213 of the component server 20 may send and receive information according to http. In this case, the control unit 21 of the component server 20A may send the rpc message information to the component server 20B by the POST method. Also, the control unit 21 of the component server 20B may receive the rpc message information from the component server 20A by the GET method.

なお、用いるプロトコルはhttp/1.0としてもよいし、http/1.1としてもよいし、http/2としてもよいし、その他のバージョンとしてもよい。 The protocol used may be http/1.0, http/1.1, http/2, or any other version.

限定ではなく例として、rpcメッセージ情報の送受信にhttpを用いることで、呼び出し側のコンポーネントサーバ20A(インヴォーカ)は、手続き側のコンポーネントサーバ20(ワーカ)にrpcメッセージ情報が届いたか否かを判定することができる。 As an example and not a limitation, by using HTTP to send and receive RPC message information, the calling component server 20A (invoker) can determine whether the RPC message information has arrived at the procedure component server 20 (worker).

また、rpcメッセージ情報の送受信において、http以外のプロトコル(限定ではなく例として、SSH(Secure Shell)等)を用いて通信するようにしてもよい。 In addition, when sending and receiving RPC message information, communication may be performed using a protocol other than HTTP (such as, but not limited to, SSH (Secure Shell)).

なお、コンポーネントサーバ20Bの制御部21は、通信I/F24によってコンポーネントサーバ20Aからrpcメッセージ情報を受信すると、RPC処理中情報を通信I/F22によって呼び出し先解決サーバ10に送信するようにしてもよい。
通信I/F14によってコンポーネントサーバ20BからRPC処理中情報を受信すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、受信したRPC処理中情報に基づいて、呼び出し先管理データ153を更新する(限定ではなく例として、サーバ役割情報を「ビジー」とする)ようにしてもよい。
そして、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、サーバ役割情報が「ビジー」となっているコンポーネントサーバ20をワーカ一覧情報に含めないようにしてもよい。
これにより、rpcによる手続き中のコンポーネントサーバ20Bをワーカ一覧から一時的に外し、他のコンポーネントサーバ20から重複して手続き側として選択されることを防ぐことができる。
In addition, when the control unit 21 of the component server 20B receives the RPC message information from the component server 20A via the communication I/F 24, the control unit 21 may transmit RPC processing information to the call destination resolution server 10 via the communication I/F 22.
When RPC processing in progress information is received from the component server 20B via the communication I/F 14, the control unit 11 of the callee resolution server 10 may, for example and not by way of limitation, update the callee management data 153 based on the received RPC processing in progress information (for example and not by way of limitation, the server role information may be set to “busy”).
Then, the control unit 11 of the call destination resolution server 10 may, for example and without limitation, not include the component server 20 whose server role information is "busy" in the worker list information.
This makes it possible to temporarily remove the component server 20B undergoing a procedure by rpc from the worker list, thereby preventing it from being selected as the procedure side by other component servers 20 in duplicate.

通信I/F24によってコンポーネントサーバ20Aからrpcメッセージ情報を受信すると、コンポーネントサーバ20Bの制御部21は、コンポーネントプログラム処理を実行する(B130)。
コンポーネントプログラム処理において、コンポーネントサーバ20Bの制御部21は、受信したrpcメッセージ情報に基づいて、httpメッセージングドライバ2515が組み込まれているメッセージングモジュール2513のRPCサーバ(狭義のワーカ)を呼び出す。
すると、コンポーネントサーバ20Bのコンポーネントプログラム処理部211は、メッセージングモジュール2513を介して受信したrpcメッセージ情報で指定される手続き(処理)を実行する。
When the rpc message information is received from the component server 20A via the communication I/F 24, the control unit 21 of the component server 20B executes the component program processing (B130).
In the component program processing, the control unit 21 of the component server 20B calls the RPC server (worker in the narrow sense) of the messaging module 2513 in which the http messaging driver 2515 is built, based on the received rpc message information.
Then, the component program processing unit 211 of the component server 20 B executes the procedure (processing) specified in the RPC message information received via the messaging module 2513 .

限定ではなく例として、コンポーネントプログラム処理が終了すると、コンポーネントサーバ20Bの制御部21は、コンポーネントプログラム処理の処理結果を含むrpc処理結果情報を通信I/F24によってコンポーネントサーバ20Aに送信する(B150)。
また、コンポーネントサーバ20Aの制御部21は、通信I/F24によってコンポーネントサーバ20Bからrpc処理結果情報を受信する(A170)。
As an example and not a limitation, when the component program processing is completed, the control unit 21 of the component server 20B transmits rpc processing result information including the processing result of the component program processing to the component server 20A via the communication I/F 24 (B150).
Furthermore, the control unit 21 of the component server 20A receives the RPC processing result information from the component server 20B via the communication I/F 24 (A170).

rpc処理結果情報の送受信において、限定ではなく例として、コンポーネントサーバ20の制御部21は、rpcメッセージ情報の送受信と同様に、httpに従って情報の送受信を行うようにしてもよい。
rpc処理結果情報の送受信にhttpを用いることで、手続き側のコンポーネントサーバ20(ワーカ)は、呼び出し側のコンポーネントサーバ20A(インヴォーカ)にrpc処理結果情報が届いたか否かを判定することができる。
In transmitting and receiving RPC processing result information, as an example and not a limitation, the control unit 21 of the component server 20 may transmit and receive information according to HTTP, similar to the transmission and reception of RPC message information.
By using HTTP to send and receive the RPC processing result information, the component server 20 (worker) on the procedure side can determine whether or not the RPC processing result information has arrived at the component server 20A (invoker) on the calling side.

なお、rpcメッセージ情報とrpc処理結果情報との送受信において、それぞれhttpリクエストが発生するようにしてもよいし、rpcメッセージ情報の送受信によるhttpリクエストのレスポンスとしてrpc処理結果情報の送受信が行われるようにしてもよい。 Note that an HTTP request may be generated for each transmission and reception of RPC message information and RPC processing result information, or the RPC processing result information may be transmitted and received as a response to an HTTP request generated by the transmission and reception of RPC message information.

また、rpc処理結果情報の送受信において、http以外のプロトコル(限定ではなく例として、SSH(Secure Shell)等)を用いて通信するようにしてもよい。 In addition, when sending and receiving RPC processing result information, communication may be performed using a protocol other than HTTP (such as, but not limited to, SSH (Secure Shell)).

なお、コンポーネントサーバ20Bの制御部21は、通信I/F24によってコンポーネントサーバ20Aにrpc処理結果情報を送信すると、RPC処理終了情報を通信I/F22によって呼び出し先解決サーバ10に送信するようにしてもよい。
通信I/F14によってコンポーネントサーバ20BからRPC処理終了情報を受信すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、受信したコンポーネントプログラム処理終了情報に基づいて、呼び出し先管理データ153を更新する(限定ではなく例として、サーバ役割情報を「ワーカ」とする)ようにしてもよい。
In addition, when the control unit 21 of the component server 20B transmits the RPC processing result information to the component server 20A via the communication I/F 24, the control unit 21 may transmit the RPC processing end information to the call destination resolution server 10 via the communication I/F 22.
When RPC processing end information is received from the component server 20B via the communication I/F 14, the control unit 11 of the callee resolution server 10 may, for example and not by way of limitation, update the callee management data 153 based on the received component program processing end information (for example and not by way of limitation, the server role information may be set to "worker").

また、コンポーネントサーバ20Aの制御部21は、通信I/F24によってコンポーネントサーバ20Bからrpc処理結果情報を受信すると、RPC処理終了情報を通信I/F22によって呼び出し先解決サーバ10に送信するようにしてもよい。
通信I/F14によってコンポーネントサーバ20AからRPC処理終了情報を受信すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、受信したコンポーネントプログラム処理終了情報に基づいて、呼び出し先管理データ153を更新する(限定ではなく例として、サーバ役割情報を「ワーカ」とする)ようにしてもよい。
In addition, when the control unit 21 of the component server 20A receives RPC processing result information from the component server 20B via the communication I/F 24, it may transmit RPC processing end information to the call destination resolution server 10 via the communication I/F 22.
When RPC processing end information is received from the component server 20A via the communication I/F 14, the control unit 11 of the callee resolution server 10 may, for example and not by way of limitation, update the callee management data 153 based on the received component program processing end information (for example and not by way of limitation, the server role information may be set to "worker").

これらの処理により、RPCからタスク解放されたコンポーネントサーバ20を再びワーカ一覧に復帰させ、他のコンポーネントサーバ20から手続き側として選択させることができる。 By performing these processes, the component server 20 that has been released from the RPC can be returned to the worker list and can be selected as the procedure side by other component servers 20.

なお、手続き側からの応答を期待しないrpc.cast通信については、限定ではなく例として、B150とA170とのステップを省略することで実現するようにしてもよい。
rpc.cast通信についても、インヴォーカからワーカにrpcメッセージ情報が届いたか否かを判定することができる。
Note that, for rpc.cast communication that does not expect a response from the procedure side, as an example and not a limitation, it may be realized by omitting steps B150 and A170.
For rpc.cast communication, it can also be determined whether or not rpc message information has been received from the invoker to the worker.

また、本例ではワーカ探索処理においてコンポーネントサーバ20BのサーバIDが探索された場合について例示したが、ワーカ探索処理において複数のサーバIDが探索された場合についても同様に複数のワーカに対するrpcメッセージ情報および/またはrpc処理結果情報の送受信を行うようにしてもよい。 In addition, in this example, the case where the server ID of component server 20B is searched for in the worker search process has been illustrated, but in the case where multiple server IDs are searched for in the worker search process, RPC message information and/or RPC processing result information may be sent and received to multiple workers in a similar manner.

図1-10は、本発明における提案手法と、従来手法であるAMQP利用時とにおけるソフトウェアモジュール間の協調動作の対比を示すブロック図である。
図1-10の上側には、提案手法であるhttpメッセージングドライバを用いる場合の動作を、下側にはAMQPライバを用いる場合の動作をそれぞれ示す。
ブロック図中において、丸印に数字で書かれる内容を、文中では便宜上「((数字))」と表記することとする。
FIG. 1-10 is a block diagram showing a comparison of the cooperative operations between software modules in the method proposed in the present invention and the conventional method using AMQP.
The upper part of FIG. 1-10 shows the operation when using the proposed method, that is, an HTTP messaging driver, and the lower part shows the operation when using an AMQP driver.
In the block diagrams, the contents written in numbers in circles will be represented as "((number))" for convenience in the text.

提案手法における動作は、限定ではなく例として、以下の通りである。なお、提案手法における動作は、以下の動作に限定されない。
((1)).インヴォーカ側のアプリケーションプロセス(限定ではなく例として、コンポーネントプログラム処理の一例)がRPC通信を行うためにRPCメッセージングクライアントモジュール(限定ではなく例として、メッセージングモジュールの一例)のRPCクライアントと通信。また、RPCクライアントからhttpメッセージングドライバへrpc処理要求情報を送信。
((2)).httpメッセージングドライバが呼び出し先解決サーバ10で提供される呼び出し先解決サービスに通信。
((3)).呼び出し先解決サービスからhttpメッセージングドライバへRPCの手続き先を特定するために必要な情報を送信。限定ではなく例として、httpメッセージングドライバが手続き先となるサーバ20Bを特定(Exchange and Bind)。
((4)).インヴォーカ側のhttpメッセージングドライバがワーカであるサーバ20Bにrpcメッセージ情報を送信。また、rpcメッセージ情報が送信されると、送信が完了したことを示す情報を、限定ではなく例として、RPCクライアントを介してアプリケーションプロセスに伝達可能。
((5)).ワーカ側のRPCメッセージングサーバモジュール(限定ではなく例として、メッセージングモジュールの一例)において、httpメッセージングドライバが受信したrpcメッセージ情報をRPCサーバに送信。RPCサーバはワーカ側のアプリケーションプロセス(限定ではなく例として、コンポーネントプログラム処理の一例)にrpcメッセージ情報に基づく処理を要求。
((6)).ワーカ側のアプリケーションプロセスがrpc処理結果情報をRPCメッセージングサーバモジュールに送信。RPCサーバを介してhttpメッセージングドライバに伝達。
((7)).ワーカ側のhttpメッセージングドライバがインヴォーカであるサーバ20Aにrpc処理結果情報を送信。また、rpc処理結果情報が送信されると、送信が完了したことを示す情報を、限定ではなく例として、RPCサーバを介してアプリケーションプロセスに伝達可能。
((8)).インヴォーカ側のRPCメッセージングクライアントモジュールにおいて、httpメッセージングドライバが受信したrpc処理結果情報をRPCクライアントに送信。RPCクライアントはインヴォーカ側のアプリケーションプロセスにrpc処理結果情報を戻り値として渡す。
The operations in the proposed method are, by way of example and not by way of limitation, as follows: Note that the operations in the proposed method are not limited to the following operations.
((1)) An application process (for example, but not limited to, an example of a component program process) on the invoker side communicates with an RPC client of an RPC messaging client module (for example, but not limited to, an example of a messaging module) to perform RPC communication. Also, the RPC client sends RPC processing request information to an HTTP messaging driver.
((2)) The HTTP messaging driver communicates with the callee resolution service provided by the callee resolution server 10.
((3)) The callee resolution service transmits information necessary to identify the destination of the RPC procedure to the http messaging driver. As an example and not a limitation, the http messaging driver identifies the server 20B that will be the destination of the procedure (Exchange and Bind).
((4)) The HTTP messaging driver on the invoker side sends the RPC message information to the worker server 20B. Also, once the RPC message information has been sent, information indicating that the sending has been completed can be communicated to the application process via the RPC client, by way of example and not limitation.
((5)) In the RPC messaging server module on the worker side (for example, but not limited to, an example of a messaging module), the HTTP messaging driver sends the received RPC message information to the RPC server. The RPC server requests the application process on the worker side (for example, but not limited to, an example of a component program process) to perform processing based on the RPC message information.
((6)) The application process on the worker side sends the RPC processing result information to the RPC messaging server module. The information is transmitted to the HTTP messaging driver via the RPC server.
((7)) The worker-side http messaging driver sends the RPC processing result information to the invoker, server 20A. Also, once the RPC processing result information has been sent, information indicating that the sending has been completed can be communicated to the application process via the RPC server, by way of example and not limitation.
((8)) In the RPC messaging client module on the invoker side, the HTTP messaging driver sends the received RPC processing result information to the RPC client. The RPC client passes the RPC processing result information to the application process on the invoker side as a return value.

また、従来手法における動作は、限定ではなく例として、以下の通りである。
((1)).インヴォーカ側のアプリケーションプロセスがRPC通信を行うためにRPCメッセージングクライアントモジュールのRPCクライアントと通信。また、RPCクライアントからAMQPドライバへrpc処理要求情報を送信。
((2)).AMQPドライバがメッセージキューイングサービス(限定ではなく例として、RabbitMQ等)にrpc処理要求情報に基づくrpc処理要求を発行。メッセージキューイングサービスにおいて、手続き先となるサーバ20Bに紐づけられるキューを特定し、キューにrpcメッセージ情報を保管(Exchange, Bind and Queue)。
((3)).ワーカ側のRPCメッセージングサーバモジュールにおいて、AMQPドライバがメッセージキューイングサービスのキューを定期的にフェッチ。
((4)).キューにサーバ20B宛のrpcメッセージ情報が存在する場合、AMQPドライバがキューからrpcメッセージ情報を読み出し。
((5)).AMQPドライバが受信したrpcメッセージ情報をRPCサーバに送信。RPCサーバはワーカ側のアプリケーションプロセスにrpcメッセージ情報に基づく処理を要求。
((6)).ワーカ側のアプリケーションプロセスがrpc処理結果情報をRPCメッセージングサーバモジュールに送信。RPCサーバを介してAMQPドライバに伝達。
((7)).ワーカ側のAMQPドライバがメッセージキューイングサービスにrpc処理結果情報を送信(キューイング)。
((8)).メッセージキューイングサービスがインヴォーカ側のAMQPドライバにrpc処理結果情報を送信。
((9)).インヴォーカ側のRPCメッセージングクライアントモジュールにおいて、AMQPドライバが受信したrpc処理結果情報をRPCクライアントに送信。RPCクライアントはインヴォーカ側のアプリケーションプロセスにrpc処理結果情報を戻り値として渡す。
Also, the operation of the conventional approach is as follows, by way of example and not by way of limitation.
((1)) The application process on the invoker side communicates with the RPC client of the RPC messaging client module to perform RPC communication. Also, the RPC client sends RPC processing request information to the AMQP driver.
((2)) The AMQP driver issues an RPC processing request based on the RPC processing request information to a message queuing service (such as, for example and not limitation, RabbitMQ). In the message queuing service, a queue linked to the server 20B that is the destination of the procedure is identified, and the RPC message information is stored in the queue (Exchange, Bind and Queue).
((3)) In the RPC messaging server module on the worker side, the AMQP driver periodically fetches the queue of the message queuing service.
((4)) If RPC message information addressed to server 20B exists in the queue, the AMQP driver reads the RPC message information from the queue.
((5)) The AMQP driver sends the received RPC message information to the RPC server. The RPC server requests the worker application process to process the RPC message information.
((6)) The application process on the worker side sends the RPC processing result information to the RPC messaging server module. The information is transmitted to the AMQP driver via the RPC server.
((7)) The AMQP driver on the worker side sends the RPC processing result information to the message queuing service (queueing).
((8)) The message queuing service sends the RPC processing result information to the AMQP driver on the invoker side.
((9)) In the RPC messaging client module on the invoker side, the AMQP driver sends the received RPC processing result information to the RPC client. The RPC client passes the RPC processing result information to the application process on the invoker side as a return value.

これらの動作から、提案手法では、インヴォーカ側のhttpメッセージングドライバとワーカ側のhttpメッセージングドライバとにおいて直接rpcメッセージ情報できることがわかる。rpc処理結果情報についても同様である。
このため、インヴォーカ側のhttpメッセージングドライバにおいて送信先となるワーカの解決が終了していれば、それ以降のプロセス間通信に支障が生じない。また、呼び出し先解決サービスが停止した場合においても、インヴォーカ側でrpcメッセージ情報の送信前にトラブルを検知することができる。このため、アプリケーションプロセスに例外処理等を実行させることが容易となる。
From these operations, it can be seen that in the proposed method, RPC message information can be directly exchanged between the HTTP messaging driver on the invoker side and the HTTP messaging driver on the worker side. The same is true for RPC processing result information.
Therefore, if the HTTP messaging driver on the invoker side has completed the resolution of the worker to be the destination, there will be no problems with subsequent inter-process communication. Also, even if the call destination resolution service stops, the invoker side can detect the problem before sending the RPC message information. This makes it easy to have the application process execute exception handling, etc.

対して、従来手法では、全てのrpcメッセージ情報およびrpc処理結果情報は、メッセージキューイングサービスを経由する必要が生じる(メッセージキューイングサービスがSPOFとなる)。
このため、メッセージキューイングサービスが停止すると、送受信中のrpcメッセージ情報およびrpc処理結果情報を含めて、プロセス間通信全般に支障が生じる。また、メッセージキューイングサービスのキューに何らかの改変が発生した場合等において、プロセス間通信に混乱が生じ、原因の特定が困難なアプリケーションプロセスのエラーが生じる可能性がある。
In contrast, in the conventional method, all RPC message information and RPC processing result information must go through a message queuing service (the message queuing service is an SPOF).
For this reason, when the message queuing service stops, it causes problems in inter-process communication in general, including RPC message information being sent and received and RPC processing result information. In addition, if some kind of modification occurs to the queue of the message queuing service, it may cause confusion in inter-process communication, resulting in an error in the application process whose cause is difficult to identify.

また、従来手法において、ワーカ側のAMQPドライバはインヴォーカから送信されたrpcメッセージ情報を受信するために、メッセージキューイングサービスのキューへのフェッチが随時必要とされる。
対して、提案手法では、インヴォーカ側のアプリケーションプロセスからワーカ側のアプリケーションプロセスまでrpcメッセージ情報がソフトウェアモジュール間を一路に伝達されていることがわかる。rpc処理結果情報についても同様である。
このため、提案手法では、処理にフェッチを行うためのオーバーヘッドが生じず、アプリケーションプロセスを実行するクラスタ全体の負荷を低減させることができる。
Furthermore, in the conventional method, the AMQP driver on the worker side needs to fetch from the queue of the message queuing service from time to time in order to receive the RPC message information sent from the invoker.
On the other hand, in the proposed method, it can be seen that RPC message information is transmitted between software modules in a straight line from the application process on the invoker side to the application process on the worker side. The same is true for RPC processing result information.
Therefore, the proposed method does not incur overhead for fetching during processing, and can reduce the load on the entire cluster running application processes.

また、提案手法では、インヴォーカ側のアプリケーションプロセスはワーカにrpcメッセージ情報が到達したことを、ワーカ側のアプリケーションプロセスはインヴォーカにrpc処理結果情報が到達したことを、それぞれ検知可能である。
対して、従来手法では、メッセージキューイングサービスにrpcメッセージ情報および/またはrpc処理結果情報がキューイングされたか否かのみを検知することができる。
このため、提案手法では、プロセス間通信の進行度合を的確に把握することができ、限定ではなく例として、アプリケーションプロセスにおける投機的実行等を効率的に進めることができる。また、アプリケーションプロセスのデバッグ操作がより容易となる。
In addition, in the proposed method, the application process on the invoker side can detect that RPC message information has arrived at the worker, and the application process on the worker side can detect that RPC processing result information has arrived at the invoker.
In contrast, the conventional method can only detect whether or not RPC message information and/or RPC processing result information has been queued in a message queuing service.
Therefore, the proposed method can accurately grasp the progress of inter-process communication, and by way of example and not limitation, can efficiently perform speculative execution in application processes. In addition, debugging operations of application processes becomes easier.

また、従来手法におけるメッセージキューイングサービスは、呼び出し先解決サービスと比べて複雑な処理を必要とする。このため、提案手法では、プロセス間通信を実現するためのサービスを含めたアプリケーションプロセスを実行するクラスタ全体のリソースを低減することができる。また、メッセージキューイングサービスに比べて簡潔な呼び出し先解決サービスは、平均故障間隔(MTBF:Mean Time Between Failures)が長く、また、平均復旧時間(MTTR:Mean Time To Recovery)が短くなることが期待できる。結果として、アプリケーションプロセスを実行するクラスタ全体の信頼性をより向上させることができる。 In addition, the message queuing service in the conventional method requires more complex processing than the callee resolution service. As a result, the proposed method can reduce the resources of the entire cluster that runs application processes, including services for implementing inter-process communication. In addition, the callee resolution service is simpler than the message queuing service, so it is expected to have a longer mean time between failures (MTBF) and a shorter mean time to recovery (MTTR). As a result, the reliability of the entire cluster that runs application processes can be improved.

なお、本発明におけるプロセス間通信は、rpc.call通信やrpc.cast通信に限定されない。 Note that inter-process communication in the present invention is not limited to rpc.call communication or rpc.cast communication.

図1-11は、本実施例において各装置が実行する処理の流れの別例を示すフローチャートである。本フローチャートでは、限定ではなく例として、手続き側からの応答を期待しないrpc.fanout通信について説明する。また、本フローチャートでは、限定ではなく例として、コンポーネントサーバ20Aをrpcの呼び出し側(インヴォーカ)、コンポーネントサーバ20B、コンポーネントサーバ20C、コンポーネントサーバ20D、・・・をrpcの手続き側(ワーカ)とする。
この図では、左側から順にインヴォーカとなるコンポーネントサーバ20Aの制御部21が実行する処理、呼び出し先解決サーバ10の制御部11が実行する処理、一斉呼び出しサーバ40の制御部41が実行する処理、ワーカとなるコンポーネントサーバ20Bの制御部21が実行する処理をそれぞれ示している。なお、他のワーカについては、限定ではなく例として、コンポーネントサーバ20Bの制御部21が実行する処理と同様に実行することができる。
1-11 is a flowchart showing another example of the flow of processing executed by each device in this embodiment. In this flowchart, as an example and not a limitation, an RPC.fanout communication that does not expect a response from the procedure side is described. Also, in this flowchart, as an example and not a limitation, the component server 20A is the RPC caller (invoker), and the component server 20B, the component server 20C, the component server 20D, ... are the RPC procedure side (workers).
In this figure, from the left, there are shown a process executed by the control unit 21 of the component server 20A which is an invoker, a process executed by the control unit 11 of the called resolution server 10, a process executed by the control unit 41 of the mass calling server 40, and a process executed by the control unit 21 of the component server 20B which is a worker. Note that, for the other workers, the process executed by the control unit 21 of the component server 20B can be performed in the same manner as the process executed by the control unit 21 of the component server 20B, by way of example and not limitation.

なお、説明を簡略化するため、限定ではなく例として、本フローチャートでは一斉呼び出しサーバ40が一つ(ブロードキャスタが一つ)の場合について例示する。限定ではなく例として、一斉呼び出しサーバ40は複数(限定ではなく例として、一斉呼び出しサーバ40A,一斉呼び出しサーバ40B,一斉呼び出しサーバ40C,・・・等)あってもよい。この場合、各一斉呼び出しサーバ40には、異なるバインドキー情報が割り振られるようにしてもよい。 For the sake of simplicity, this flowchart illustrates, by way of example and not limitation, a case in which there is one mass call server 40 (one broadcaster). By way of example and not limitation, there may be multiple mass call servers 40 (by way of example and not limitation, mass call server 40A, mass call server 40B, mass call server 40C, ..., etc.). In this case, different bind key information may be assigned to each mass call server 40.

フローチャートに先立ち、前述のように、各コンポーネントサーバ20の制御部21は、呼び出し先解決サーバ10にコンポーネントプログラム起動情報を送信する。
また、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、受信したコンポーネントプログラム起動情報に基づいて、各コンポーネントサーバ20を「ワーカ」とするように呼び出し先管理データ153を更新する。
Prior to the flow chart, as described above, the control unit 21 of each component server 20 transmits component program start information to the call destination resolution server 10 .
Furthermore, the control unit 11 of the call destination resolution server 10 updates the call destination management data 153 so as to designate each component server 20 as a "worker" based on the received component program start-up information, for example and not for limitation.

一斉呼び出しサーバ40の制御部41は、限定ではなく例として、ワーカ一覧要求情報を通信I/F44によって呼び出し先解決サーバ10に送信する。そして、通信I/F14によって一斉呼び出しサーバ40からワーカ一覧要求情報を受信すると、呼び出し先解決サーバ10の制御部11は、通信I/F14によって一斉呼び出しサーバ40にワーカ一覧情報を送信する。なお、一斉呼び出しサーバ40に送信するワーカ一覧情報には、サーバ役割情報が「ビジー」となっているコンポーネントサーバ20を含めるようにしてもよい。
また、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、呼び出し先管理データ153を参照し、ワーカ一覧要求情報を送信した一斉呼び出しサーバ40のサーバ役割情報を「ブロードキャスタ」に更新する。
通信I/F44によって呼び出し先解決サーバ10からワーカ一覧情報を受信すると、一斉呼び出しサーバ40の制御部41は、受信したワーカ一覧情報に基づいて、コンポーネントサーバ一覧情報455を更新する。
The control unit 41 of the mass calling server 40, by way of example and not limitation, transmits worker list request information to the call destination resolution server 10 via the communication I/F 44. Then, upon receiving the worker list request information from the mass calling server 40 via the communication I/F 14, the control unit 11 of the call destination resolution server 10 transmits the worker list information to the mass calling server 40 via the communication I/F 14. Note that the worker list information transmitted to the mass calling server 40 may include component servers 20 whose server role information is "busy."
Furthermore, the control unit 11 of the call destination resolution server 10, by way of example and not limitation, refers to the call destination management data 153 and updates the server role information of the mass call server 40 that sent the worker list request information to "broadcaster".
When the communication I/F 44 receives the worker list information from the call destination resolution server 10, the control unit 41 of the batch call server 40 updates the component server list information 455 based on the received worker list information.

なお、一斉呼び出しサーバ40にバインドキー情報が割り当てられる場合、一斉呼び出しサーバ40の制御部41は、受信したワーカ一覧情報のうち、一斉呼び出しサーバ40のバインドキー情報とマッチするコンポーネントサーバ20のサーバID一覧をコンポーネントサーバ一覧情報455に記憶させるようにしてもよい。
限定ではなく例として、図1-6において、一斉呼び出しサーバ40のバインドキー情報が「apple」である場合、コンポーネントサーバ一覧情報455には、「apple」を含むサーバID「SID20A」~「SID20D」までの各コンポーネントサーバ20に関する識別情報が格納されるようにしてもよい。
In addition, when bind key information is assigned to the mass call server 40, the control unit 41 of the mass call server 40 may store a list of server IDs of component servers 20 that match the bind key information of the mass call server 40 from the received worker list information in the component server list information 455.
As a non-limiting example, in FIG. 1-6, if the bind key information of the mass call server 40 is “apple,” the component server list information 455 may store identification information for each component server 20 having server IDs “SID20A” to “SID20D” that include “apple.”

また、一斉呼び出しサーバ40の制御部41は、限定ではなく例として、ワーカ一覧要求情報を所定時刻(限定ではなく例として、「毎時00分」)または所定期間(限定ではなく例として、「7200秒」)ごとに呼び出し先解決サーバ10に送信することで、コンポーネントサーバ一覧情報455を更新するようにしてもよい。 In addition, the control unit 41 of the mass call server 40 may, for example and not for limitation, update the component server list information 455 by sending worker list request information to the call destination resolution server 10 at a predetermined time (for example and not for limitation, "every hour at 00 minutes") or at predetermined intervals (for example and not for limitation, "7200 seconds").

なお、各コンポーネントサーバ20の制御部21は、一斉呼び出しサーバ40にコンポーネントプログラム起動情報を送信するようにしてもよい。そして、一斉呼び出しサーバ40の制御部41は、受信したコンポーネントプログラム起動情報に基づいて、コンポーネントサーバ一覧情報455を更新するようにしてもよい。 The control unit 21 of each component server 20 may transmit component program start-up information to the mass call server 40. The control unit 41 of the mass call server 40 may then update the component server list information 455 based on the received component program start-up information.

まず、インヴォーカであるコンポーネントサーバ20Aの制御部21は、限定ではなく例として、コンポーネントプログラムにおけるrpc.fanout手続きに基づいて、rpc.fanout処理を実行開始する(A210)。
rpc.fanout処理において、コンポーネントサーバ20Aのコンポーネントプログラム処理部211は、限定ではなく例として、httpメッセージングドライバ2515が組み込まれているメッセージングモジュール2513のRPCクライアントを呼び出す。
First, the control unit 21 of the component server 20A, which is the invoker, starts executing rpc.fanout processing based on the rpc.fanout procedure in the component program, for example and not for limitation (A210).
In the rpc.fanout process, the component program processing unit 211 of the component server 20A calls an RPC client of a messaging module 2513 that includes, by way of example and not limitation, an http messaging driver 2515.

すると、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、httpメッセージングドライバ2515に従って、RPCの手続き先を特定するために必要な情報を要求するブロードキャスタ要求情報を通信I/F24によって呼び出し先解決サーバ10に送信する(A230)。 Then, the control unit 21 of the component server 20A, by way of example and not limitation, sends broadcast request information requesting information required to identify the RPC procedure destination to the call destination resolution server 10 via the communication I/F 24 in accordance with the http messaging driver 2515 (A230).

すると、呼び出し先解決サーバ10の制御部11は、呼び出し先管理データ153を参照し、限定ではなく例として、サーバ役割情報が「ブロードキャスタ」であるサーバIDと、バインドキー情報とを含むブロードキャスタ情報を通信I/F14によってコンポーネントサーバ20Aに送信する(S210)。なお、ブロードキャスタ情報に、各一斉呼び出しサーバ40のロードアベレージといった各種の情報を含めるようにしてもよい。 The control unit 11 of the call destination resolution server 10 then refers to the call destination management data 153, and by way of example and not limitation, transmits broadcaster information including a server ID whose server role information is "broadcaster" and bind key information to the component server 20A via the communication I/F 14 (S210). Note that the broadcaster information may also include various types of information such as the load average of each simultaneous call server 40.

なお、呼び出し先解決サーバ10の制御部11は、通信I/F14によってコンポーネントサーバ20Aからブロードキャスタ要求情報を受信すると、呼び出し先解決サーバ10の制御部11は、ワーカ更新処理を実行するようにしてもよい。 When the control unit 11 of the called resolution server 10 receives broadcast request information from the component server 20A via the communication I/F 14, the control unit 11 of the called resolution server 10 may execute a worker update process.

また、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、呼び出し先解決サーバ10を示すURIに、限定ではなく例として、REST APIを介してブロードキャスタ情報を取得するようにしてもよい。 In addition, the control unit 21 of the component server 20A may, for example and not for limitation, obtain broadcaster information from a URI indicating the called resolution server 10 via a REST API, for example and not for limitation.

通信I/F24によって呼び出し先解決サーバ10からブロードキャスタ情報を受信すると、コンポーネントサーバ20Aの制御部21は、ブロードキャスタ探索処理を実行する(A250)。
ブロードキャスタ探索処理において、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、受信したブロードキャスタ情報とrpc処理要求情報とに基づいて、rpcメッセージ情報を送信するブロードキャスタ(この例では、一斉呼び出しサーバ40)を決定する。
When the broadcaster information is received from the call destination resolution server 10 via the communication I/F 24, the control unit 21 of the component server 20A executes a broadcaster search process (A250).
In the broadcaster search process, the control unit 21 of the component server 20A determines, by way of example and not limitation, the broadcaster (in this example, the mass call server 40) that will send the RPC message information based on the received broadcaster information and RPC processing request information.

より具体例には、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、rpc処理要求情報におけるターゲットおよびルーティングキーの条件を満たすバインドキー情報を持つ一斉呼び出しサーバ40のサーバIDを探索するようにしてもよい。
限定ではなく例として、ターゲットが「ファンアウト」である場合、コンポーネントサーバ20Aの制御部21は、バインドキー情報がルーティングキーとマッチするサーバIDの一斉呼び出しサーバ40をブロードキャスタとするようにしてもよい。
また、限定ではなく例として、ターゲットが「ファンアウト」であり、ルーティングキーが「null(無指定)」である場合、コンポーネントサーバ20Aの制御部21は、任意のサーバIDの一斉呼び出しサーバ40をブロードキャスタとするようにしてもよいし、ロードアベレージが最も低いサーバIDの一斉呼び出しサーバ40をブロードキャスタとするようにしてもよい。
As a more specific example, the control unit 21 of the component server 20A may, by way of example and not limitation, search for the server ID of a mass call server 40 having bind key information that satisfies the target and routing key conditions in the RPC processing request information.
As an example and not of limitation, when the target is "fan out", the control unit 21 of the component server 20A may set the mass call server 40 of the server ID whose bind key information matches the routing key as the broadcaster.
Also, as a non-limiting example, when the target is "fan out" and the routing key is "null (unspecified)," the control unit 21 of the component server 20A may designate a mass call server 40 of any server ID as the broadcaster, or may designate a mass call server 40 of a server ID with the lowest load average as the broadcaster.

なお、ブロードキャスタの識別情報(限定ではなく例として、IPアドレスやAPIサーバのURI等)は、限定ではなく例として、httpメッセージングドライバ2515が記憶することとしてもよい。探索されたサーバIDは、ブロードキャスタの識別情報と言ってもよい。ブロードキャスタの識別情報は、限定ではなく例として、一斉呼び出しサーバ40が随時各コンポーネントサーバ20に送信するようにしてもよい。 The broadcaster identification information (such as, for example and not limitation, an IP address or an API server URI) may be stored by the http messaging driver 2515. The searched server ID may be referred to as the broadcaster identification information. The broadcaster identification information may be transmitted by the mass call server 40 to each component server 20 at any time, for example and not limitation.

ブロードキャスタとなるサーバIDが探索されると、コンポーネントサーバ20Aの制御部21は、探索されたサーバIDに基づいて、rpcメッセージ情報を通信I/F24によって一斉呼び出しサーバ40に送信する(A270)。
また、一斉呼び出しサーバ40の制御部41は、通信I/F44によってコンポーネントサーバ20Aからrpcメッセージ情報を受信する(L210)。
When the server ID to be the broadcaster is found, the control unit 21 of the component server 20A transmits rpc message information to the broadcast call server 40 via the communication I/F 24 based on the found server ID (A270).
Furthermore, the control unit 41 of the mass calling server 40 receives the RPC message information from the component server 20A via the communication I/F 44 (L210).

rpcメッセージ情報の送受信において、限定ではなく例として、コンポーネントサーバ20Aのhttpデーモン処理部213と、一斉呼び出しサーバ40のhttpデーモン処理部413とは、httpに従って、情報の送受信を行うようにしてもよい。この場合、コンポーネントサーバ20Aの制御部21は、POSTメソッドによって一斉呼び出しサーバ40にrpcメッセージ情報を送信するようにしてもよい。また、一斉呼び出しサーバ40の制御部21は、GETメソッドによってコンポーネントサーバ20Aからrpcメッセージ情報を受信するようにしてもよい。 In sending and receiving rpc message information, as a non-limiting example, the http daemon processing unit 213 of the component server 20A and the http daemon processing unit 413 of the mass call server 40 may send and receive information according to http. In this case, the control unit 21 of the component server 20A may send the rpc message information to the mass call server 40 by the POST method. Also, the control unit 21 of the mass call server 40 may receive the rpc message information from the component server 20A by the GET method.

なお、rpcメッセージ情報の送受信において、限定ではなく例として、コンポーネントサーバ20Aの制御部21は、一斉呼び出しサーバ40を示すURIに、限定ではなく例として、REST APIを介してrpcメッセージ情報を送信するようにしてもよい。 In addition, when sending and receiving RPC message information, as an example and not a limitation, the control unit 21 of the component server 20A may send the RPC message information to a URI indicating the mass call server 40 via a REST API, as an example and not a limitation.

また、rpcメッセージ情報の送受信において、http以外のプロトコル(限定ではなく例として、SSH(Secure Shell)等)を用いて通信するようにしてもよい。 In addition, when sending and receiving RPC message information, communication may be performed using a protocol other than HTTP (such as, but not limited to, SSH (Secure Shell)).

限定ではなく例として、rpcメッセージ情報の送受信にhttpを用いることで、呼び出し側のコンポーネントサーバ20A(インヴォーカ)は、一斉呼び出しサーバ40(ブロードキャスタ)にrpcメッセージ情報が届いたか否かを判定することができる。 By way of example and not limitation, by using HTTP to send and receive RPC message information, the calling component server 20A (invoker) can determine whether the RPC message information has reached the mass call server 40 (broadcaster).

通信I/F44によってコンポーネントサーバ20Aからrpcメッセージ情報を受信すると、一斉呼び出しサーバ40の制御部41は、rpcメッセージ情報増幅送信処理を実行する(L230)。
rpcメッセージ情報増幅送信処理において、一斉呼び出しサーバ40の制御部41は、限定ではなく例として、コンポーネントサーバ一覧情報455を参照し、rpcメッセージ情報を通信I/F44によってブロードキャスタが送信するコンポーネントサーバ(ワーカ)一覧として登録された各コンポーネントサーバ20(限定ではなく例として、コンポーネントサーバ20A,コンポーネントサーバ20B,コンポーネントサーバ20C、・・・)に送信する。
また、コンポーネントサーバ20Bの制御部21は、通信I/F44によって一斉呼び出しサーバ40からrpcメッセージ情報を受信する(B110)。そして、一斉呼び出しサーバ40からrpcメッセージ情報を受信すると、コンポーネントサーバ20Bの制御部21は、コンポーネントプログラム処理を実行する(B130)。
When the RPC message information is received from the component server 20A via the communication I/F 44, the control unit 41 of the batch call server 40 executes an RPC message information amplification and transmission process (L230).
In the RPC message information amplification and transmission process, the control unit 41 of the mass call server 40, by way of example and not limitation, refers to the component server list information 455 and transmits the RPC message information via the communication I/F 44 to each component server 20 (by way of example and not limitation, component server 20A, component server 20B, component server 20C, ...) registered as a list of component servers (workers) to which the broadcaster transmits.
The control unit 21 of the component server 20B also receives the RPC message information from the mass calling server 40 via the communication I/F 44 (B110). Upon receiving the RPC message information from the mass calling server 40, the control unit 21 of the component server 20B executes component program processing (B130).

rpcメッセージ情報の送受信において、限定ではなく例として、一斉呼び出しサーバ40のhttpデーモン処理部413と、コンポーネントサーバ20Bのhttpデーモン処理部213とは、httpに従って、情報の送受信を行うようにしてもよい。この場合、一斉呼び出しサーバ40の制御部41は、POSTメソッドによってコンポーネントサーバ20Bにrpcメッセージ情報を送信するようにしてもよい。また、コンポーネントサーバ20Bの制御部21は、GETメソッドによって一斉呼び出しサーバ40からrpcメッセージ情報を受信するようにしてもよい。 In sending and receiving rpc message information, as a non-limiting example, the http daemon processing unit 413 of the mass call server 40 and the http daemon processing unit 213 of the component server 20B may send and receive information according to http. In this case, the control unit 41 of the mass call server 40 may send the rpc message information to the component server 20B by the POST method. Also, the control unit 21 of the component server 20B may receive the rpc message information from the mass call server 40 by the GET method.

なお、rpcメッセージ情報増幅送信処理において、一斉呼び出しサーバ40の制御部41は、rpcメッセージ情報の送信先がインヴォーカ(この場合、コンポーネントサーバ20A)である場合、rpcメッセージ情報を送信しないようにしてもよい。 In addition, in the rpc message information amplification and transmission process, the control unit 41 of the mass call server 40 may choose not to transmit the rpc message information if the destination of the rpc message information is an invoker (in this case, the component server 20A).

また、rpcメッセージ情報の送受信において、http以外のプロトコル(限定ではなく例として、SSH(Secure Shell)等)を用いて通信するようにしてもよい。 In addition, when sending and receiving RPC message information, communication may be performed using a protocol other than HTTP (such as, but not limited to, SSH (Secure Shell)).

限定ではなく例として、rpcメッセージ情報の送受信にhttpを用いることで、一斉呼び出しサーバ40(ブロードキャスタ)は、手続き側の各コンポーネントサーバ20(ワーカ)にrpcメッセージ情報が届いたか否かを判定することができる。 By way of example and not limitation, by using HTTP to send and receive RPC message information, the mass call server 40 (broadcaster) can determine whether the RPC message information has reached each component server 20 (worker) on the procedure side.

なお、一斉呼び出しサーバ40の制御部41は、限定ではなく例として、手続き側の各コンポーネントサーバ20にrpcメッセージ情報が届いたと判定する場合、呼び出し側のコンポーネントサーバ20A(インヴォーカ)にrpcメッセージ情報が届いたことを示すrpcメッセージ到達情報を送信するようにしてもよい。
rpcメッセージ到達情報は、各ワーカにrpcメッセージ情報が届いたと判定するごとに送信するようにしてもよいし、すべてのワーカにrpcメッセージ情報が届いたと判定する場合、送信するようにしてもよい。
これにより、rpc.fanout通信においても、呼び出し側のコンポーネントサーバ20A(インヴォーカ)は、手続き側の各コンポーネントサーバ20(ワーカ)にrpcメッセージ情報が届いたか否かを判定することができる。
In addition, as a non-limiting example, when the control unit 41 of the mass call server 40 determines that RPC message information has arrived at each component server 20 on the procedure side, it may send RPC message arrival information indicating that the RPC message information has arrived to the component server 20A (invoker) on the calling side.
The RPC message arrival information may be sent each time it is determined that the RPC message information has reached each worker, or it may be sent when it is determined that the RPC message information has reached all workers.
As a result, even in rpc.fanout communication, the component server 20A (invoker) on the calling side can determine whether or not the rpc message information has reached each component server 20 (worker) on the procedure side.

また、一斉呼び出しサーバ40の制御部41は、限定ではなく例として、通信I/F44によってコンポーネントサーバ20Aからrpcメッセージ情報を受信すると、ワーカ一覧要求情報を呼び出し先解決サーバ10に送信することで、コンポーネントサーバ一覧情報455を更新するようにしてもよい。 Also, as a non-limiting example, when the control unit 41 of the mass call server 40 receives RPC message information from the component server 20A via the communication I/F 44, the control unit 41 may update the component server list information 455 by sending worker list request information to the called resolution server 10.

限定ではなく例として、rpc.fanout通信において、多数のワーカと通信する必要が生じる場合、インヴォーカは、ブロードキャスタを介して各ワーカにrpcメッセージ情報を送信することができる。このため、インヴォーカが直接各ワーカにrpcメッセージ情報を送信する(もしくはメッセージングキューを発行する)場合に比べて、インヴォーカの負荷を下げることができる。インヴォーカの通信負荷をコンポーネントプログラム処理に直接関わらないブロードキャスタに肩代わりさせることで、結果として、ソフトウエアコンポーネントを動作させるクラスタの負荷が下がり、ソフトウエアコンポーネントの動作安定性向上と処理の高速化を実現することができる。 By way of example and not limitation, in RPC.fanout communication, when it is necessary to communicate with multiple workers, the invoker can send RPC message information to each worker via a broadcaster. This reduces the load on the invoker compared to when the invoker sends RPC message information directly to each worker (or issues a messaging queue). By offloading the communication load of the invoker to a broadcaster that is not directly involved in component program processing, the load on the cluster that runs the software component is reduced, improving the operational stability of the software component and speeding up processing.

<第1実施例の効果>
本実施例は、インヴォーカであるコンポーネントサーバ20A(限定ではなく、第1サーバの一例)からワーカである少なくともコンポーネントサーバ20B(限定ではなく、第2サーバの一例)へのRPC(限定ではなく、プロセス間通信の一例)を行うサーバシステムにおいて、サーバシステムは、ワーカ一覧情報送信処理(限定ではなく、プロセス間通信先を特定することに関する処理の一例)を実行する呼び出し先解決サーバ10(限定ではなく、解決サーバの一例)を含む。そして、コンポーネントサーバ20Aの制御部21は、コンポーネントサーバ20Bを特定するためのワーカ一覧情報(限定ではなく、第1情報の一例)を呼び出し先解決サーバ10から受信すると、ワーカ一覧情報に基づいて、コンポーネントサーバ20Bにrpcメッセージ情報(限定ではなく、第2情報の一例)を送信する。また、コンポーネントサーバ20Bの制御部21は、コンポーネントサーバ20Aからrpcメッセージ情報を受信すると、rpcメッセージ情報に基づくコンポーネントプログラム処理(限定ではなく、第1処理の一例)を行う構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバは、解決サーバから受信する第1情報からプロセス間通信を行う相手の第2サーバを特定することができる。そして、第1サーバは、第2サーバにプロセス間通信の処理を要求するための第2情報を直接送信することができる。そして、第2サーバは、第1サーバから第2情報を直接受信し、第2情報に基づく第1処理を実行することができる。
結果として、サーバシステムの可用性を向上させることができる。
Effects of the First Embodiment
In this embodiment, in a server system that performs an RPC (not limited to, but an example of inter-process communication) from a component server 20A (not limited to, but an example of a first server) that is an invoker to at least a component server 20B (not limited to, but an example of a second server) that is a worker, the server system includes a called resolution server 10 (not limited to, but an example of a resolution server) that executes a worker list information transmission process (not limited to, but an example of a process related to identifying an inter-process communication destination). Then, when the control unit 21 of the component server 20A receives worker list information (not limited to, but an example of first information) for identifying the component server 20B from the called resolution server 10, the control unit 21 transmits rpc message information (not limited to, but an example of second information) to the component server 20B based on the worker list information. Also, when the control unit 21 of the component server 20B receives rpc message information from the component server 20A, the control unit 21 of the component server 20B performs a component program process (not limited to, but an example of a first process) based on the rpc message information.
As an example of the effect of the embodiment obtained by such a configuration, the first server can identify the second server with which to perform inter-process communication from the first information received from the solution server. The first server can then directly transmit the second information for requesting processing of the inter-process communication to the second server. The second server can then directly receive the second information from the first server and execute the first processing based on the second information.
As a result, the availability of the server system can be improved.

また、本実施例は、rpcメッセージ情報がhttpに基づいて送受信される構成を示している。
このような構成により得られる実施例の効果の一例として、第2情報を、ステートレス性を持つプロトコルであるhttpに基づいて送受信することで、第1サーバと第2サーバとの制御部における通信負荷を下げることができる。そのため、ステートフル性を持つTCP(Transmission Control Protocol)やSSHに基づいて通信を行う場合に比べて、送受信処理に係る負荷を軽減することができる。
なお、AMQPでは、限定ではなく例として、TCPに基づいて通信を実行する。
Moreover, this embodiment shows a configuration in which RPC message information is transmitted and received based on HTTP.
As an example of an effect of the embodiment obtained by such a configuration, by transmitting and receiving the second information based on HTTP, which is a stateless protocol, the communication load on the control units of the first server and the second server can be reduced, and therefore the load related to the transmission and reception process can be reduced compared to the case where communication is based on TCP (Transmission Control Protocol) or SSH, which are stateful.
It should be noted that, by way of example and not limitation, AMQP performs communications based on TCP.

また、本実施例は、インヴォーカであるコンポーネントサーバ20Aの制御部21は、ワーカであるコンポーネントサーバ20Bがrpcメッセージ情報を受信したことを判定する構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバにおいて、第2サーバが第2情報を受信したか否かに基づく例外処理等を実行することが実現可能となる。結果として、サーバシステムの可用性を向上させることができる。
In addition, this embodiment shows a configuration in which the control unit 21 of the component server 20A, which is an invoker, determines that the component server 20B, which is a worker, has received rpc message information.
As an example of an effect of the embodiment obtained by such a configuration, it is possible to realize the first server performing exception processing based on whether the second server has received the second information, thereby improving the availability of the server system.

また、本実施例は、コンポーネントサーバ20Aの制御部21は、RPC通信を制御するメッセージングモジュール2513(限定ではなく、ミドルウェアの一例)に組み込まれたhttpメッセージングドライバ2515(限定ではなく、メッセージングドライバの一例)を介して(httpメッセージングドライバに従って)ワーカ一覧情報を受信し、rpcメッセージ情報を送信する制御を行う。そして、コンポーネントサーバ20Bの制御部21は、httpメッセージングドライバ2515を介して(httpメッセージングドライバに従って)rpcメッセージ情報を受信する制御を行う構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバと第2サーバとで、ミドルウェアのメッセージングドライバを変更することで、容易にプロセス間通信の実現方法を変更することができる。そのため、サーバシステムのユーザは、メッセージングドライバを選択することで、プロセス間通信の実現方法を迅速かつ柔軟に調整することができる。
In this embodiment, the control unit 21 of the component server 20A receives worker list information (according to an http messaging driver) via an http messaging driver 2515 (not limited to, but an example of a messaging driver) incorporated in a messaging module 2513 (not limited to, but an example of middleware) that controls RPC communication, and controls the transmission of RPC message information.The control unit 21 of the component server 20B is configured to control the reception of RPC message information via the http messaging driver 2515 (according to the http messaging driver).
As an example of the effect of the embodiment obtained by such a configuration, by changing the messaging driver of the middleware between the first server and the second server, the method of realizing inter-process communication can be easily changed. Therefore, the user of the server system can quickly and flexibly adjust the method of realizing inter-process communication by selecting the messaging driver.

また、本実施例は、ワーカであるコンポーネントサーバ20Bの制御部21は、rpcメッセージ情報に基づくコンポーネントプログラム処理に基づいて、rpc処理結果情報(限定ではなく、第3情報の一例)を送信する。そして、コンポーネントサーバ20Aの制御部21は、コンポーネントサーバ20Bからrpc処理結果情報を受信する構成を示している。
このような構成により得られる実施例の効果の一例として、第2サーバは、第1サーバにプロセス間通信の処理結果である第3情報を直接送信することができる。そして、第1サーバは、第2サーバから第3情報を直接受信し、プロセス間通信の処理を完了することができる。
結果として、サーバシステムの可用性を向上させることができる。
In this embodiment, the control unit 21 of the component server 20B, which is a worker, transmits RPC processing result information (not limited to this, but an example of the third information) based on the component program processing based on the RPC message information. The control unit 21 of the component server 20A receives the RPC processing result information from the component server 20B.
As an example of an effect of the embodiment obtained by such a configuration, the second server can directly transmit the third information, which is the processing result of the inter-process communication, to the first server, and the first server can directly receive the third information from the second server and complete the processing of the inter-process communication.
As a result, the availability of the server system can be improved.

また、本実施例は、rpcメッセージ情報とrpc処理結果情報とがhttpに基づいて送受信される構成を示している。
このような構成により得られる実施例の効果の一例として、第2情報と第3情報とを、ステートレス性を持つプロトコルであるhttpに基づいて送受信することで、第1サーバと第2サーバとの制御部における通信負荷を下げることができる。そのため、ステートフル性を持つSMTP(Simple Mail Transfer Protocol)やFTP(File Transfer Protocol)に基づいて通信を行う場合に比べて、迅速に送受信の処理を実行することができる。
Moreover, this embodiment shows a configuration in which RPC message information and RPC processing result information are transmitted and received based on HTTP.
As an example of an effect of the embodiment obtained by such a configuration, the second information and the third information are transmitted and received based on HTTP, which is a stateless protocol, so that the communication load on the control units of the first server and the second server can be reduced, and therefore the transmission and reception process can be executed more quickly than when communication is performed based on SMTP (Simple Mail Transfer Protocol) or FTP (File Transfer Protocol), which are stateful.

また、本実施例は、ワーカであるコンポーネントサーバ20Bの制御部21は、インヴォーカであるコンポーネントサーバ20Aがrpc処理結果情報を受信したことを判定する構成を示している。
このような構成により得られる実施例の効果の一例として、第2サーバにおいて、第1サーバが第3情報を受信したか否かに基づく例外処理等を実行することが実現可能となる。結果として、サーバシステムのユーザがシステムデバッグ等を実行することをより容易とし、ユーザの利便性を向上させることができる。
In addition, this embodiment shows a configuration in which the control unit 21 of the component server 20B, which is a worker, determines that the component server 20A, which is an invoker, has received the rpc processing result information.
As an example of an effect of the embodiment obtained by such a configuration, it is possible to realize the second server to execute exception processing or the like based on whether the first server has received the third information or not. As a result, it becomes easier for the user of the server system to execute system debugging or the like, and the user convenience can be improved.

また、本実施例は、コンポーネントサーバ20Aの制御部21は、RPC通信を制御するメッセージングモジュール2513(限定ではなく、ミドルウェアの一例)に組み込まれたhttpメッセージングドライバ2515(限定ではなく、メッセージングドライバの一例)を介して(httpメッセージングドライバに従って)ワーカ一覧情報を受信し、rpcメッセージ情報を送信し、rpc処理結果情報を受信する制御を行う。そして、コンポーネントサーバ20Bの制御部21は、httpメッセージングドライバ2515を介して(httpメッセージングドライバに従って)rpcメッセージ情報を送信し、rpc処理結果情報を受信する制御を行う構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバと第2サーバとで、ミドルウェアのメッセージングドライバを変更することで、容易にプロセス間通信の実現方法を変更することができる。そのため、サーバシステムのユーザは、メッセージングドライバを選択することで、プロセス間通信の実現方法を迅速かつ柔軟に調整することができる。
In this embodiment, the control unit 21 of the component server 20A receives worker list information (according to an HTTP messaging driver) via an HTTP messaging driver 2515 (not limited to, but an example of a messaging driver) incorporated in a messaging module 2513 (not limited to, but an example of middleware) that controls RPC communication, transmits RPC message information, and receives RPC processing result information.The control unit 21 of the component server 20B is configured to transmit RPC message information (according to an HTTP messaging driver) via the HTTP messaging driver 2515, and to receive RPC processing result information.
As an example of the effect of the embodiment obtained by such a configuration, by changing the messaging driver of the middleware between the first server and the second server, the method of realizing inter-process communication can be easily changed. Therefore, the user of the server system can quickly and flexibly adjust the method of realizing inter-process communication by selecting the messaging driver.

また、本実施例は、サーバシステムは、ワーカである少なくともコンポーネントサーバ20Bとコンポーネントサーバ20C(限定ではなく、第3サーバの一例)とにrpcメッセージ情報増幅送信処理(限定ではなく、プロセス間通信の処理を要求することに関する処理の一例)を実行する一斉呼び出しサーバ40(限定ではなく、増幅サーバの一例)を含む。そして、インヴォーカであるコンポーネントサーバ20Aの制御部21は、一斉呼び出しサーバ40を特定するためのブロードキャスタ情報(限定ではなく、第4情報の一例)を呼び出し先解決サーバ10から受信し、ブロードキャスタ情報に基づいて、一斉呼び出しサーバ40にrpcメッセージ情報(限定ではなく、第5情報の一例)を送信する。また、一斉呼び出しサーバ40の制御部41は、コンポーネントサーバ20Aからrpcメッセージ情報を受信すると、少なくともコンポーネントサーバ20Bとコンポーネントサーバ20Cとにrpcメッセージ情報を送信する。コンポーネントサーバ20Bとコンポーネントサーバ20Cとの制御部21は、rpcメッセージ情報を受信すると、rpcメッセージ情報に基づくコンポーネントプログラム処理(限定ではなく、第5情報に基づく処理の一例)を実行する構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバは、解決サーバから受信する第4情報から増幅サーバを特定することができる。そして、第1サーバは、プロセス間通信の処理を要求するための第5情報を1度だけ増幅サーバに送信することで、増幅サーバを中継して第2サーバと第3サーバとに第5情報を送信することができる。
また、第1サーバは、増幅サーバに第5情報を直接送信することができる。そして、増幅サーバは、少なくとも第2サーバと第3サーバとに、第5情報を直接送信することができる。
結果として、複数のサーバに対してプロセス間通信の処理を要求する場合、第1サーバが直接複数のサーバに対して第5情報を送信する場合に比べて、第1サーバの負荷を下げることができる。そして、サーバシステムの可用性を向上させることができる。
In addition, in this embodiment, the server system includes a simultaneous call server 40 (not limited to, but an example of an amplification server) that executes an RPC message information amplification and transmission process (not limited to, but an example of a process related to requesting a process for inter-process communication) to at least the component server 20B and the component server 20C (not limited to, but an example of a third server) that are workers. Then, the control unit 21 of the component server 20A that is an invoker receives broadcaster information (not limited to, but an example of the fourth information) for identifying the simultaneous call server 40 from the call destination resolution server 10, and transmits RPC message information (not limited to, but an example of the fifth information) to the simultaneous call server 40 based on the broadcaster information. Furthermore, when the control unit 41 of the simultaneous call server 40 receives the RPC message information from the component server 20A, it transmits the RPC message information to at least the component server 20B and the component server 20C. The control units 21 of the component servers 20B and 20C are configured to execute component program processing (not limited to this, but an example of processing based on the fifth information) based on the rpc message information upon receiving the rpc message information.
As an example of the effect of the embodiment obtained by such a configuration, the first server can identify the amplification server from the fourth information received from the resolution server. Then, the first server can transmit the fifth information for requesting the processing of the inter-process communication to the amplification server only once, and can transmit the fifth information to the second server and the third server via the amplification server.
Also, the first server can directly transmit the fifth information to the amplification server, and the amplification server can directly transmit the fifth information to at least the second server and the third server.
As a result, when a request for inter-process communication processing is made to a plurality of servers, the load on the first server can be reduced compared to when the first server directly transmits the fifth information to the plurality of servers, and the availability of the server system can be improved.

また、本実施例は、rpcメッセージ情報がhttpに基づいて送受信される構成を示している。
このような構成により得られる実施例の効果の一例として、第5情報を、ステートレス性を持つプロトコルであるhttpに基づいて送受信することで、第1サーバと第2サーバとの制御部における通信負荷を下げることができる。そのため、ステートフル性を持つプロトコルに基づいて通信を行う場合に比べて、迅速に送受信の処理を実行することができる。
Moreover, this embodiment shows a configuration in which RPC message information is transmitted and received based on HTTP.
As an example of an effect of the embodiment obtained by such a configuration, by transmitting and receiving the fifth information based on HTTP, which is a stateless protocol, the communication load on the control units of the first server and the second server can be reduced, and therefore, the transmission and reception process can be executed more quickly than in the case of communication based on a stateful protocol.

また、本実施例は、コンポーネントサーバ20Aの制御部21は、RPC通信を制御するメッセージングモジュール2513(限定ではなく、ミドルウェアの一例)に組み込まれたhttpメッセージングドライバ2515(限定ではなく、メッセージングドライバの一例)を介して(httpメッセージングドライバに従って)ブロードキャスタ情報を受信し、rpcメッセージ情報を送信する制御を行う。そして、コンポーネントサーバ20Bとコンポーネントサーバ20Cとの制御部21は、httpメッセージングドライバ2515を介して(httpメッセージングドライバに従って)rpcメッセージ情報を受信する制御を行う構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバと第2サーバとで、ミドルウェアのメッセージングドライバを変更することで、容易にプロセス間通信の実現方法を変更することができる。そのため、サーバシステムのユーザは、メッセージングドライバを選択することで、プロセス間通信の実現方法を迅速かつ柔軟に調整することができる。
In this embodiment, the control unit 21 of the component server 20A receives broadcast information (according to the http messaging driver) via an http messaging driver 2515 (not limited to, but an example of a messaging driver) incorporated in a messaging module 2513 (not limited to, but an example of middleware) that controls RPC communication, and controls the transmission of RPC message information. The control units 21 of the component servers 20B and 20C each control the reception of RPC message information via the http messaging driver 2515 (according to the http messaging driver).
As an example of the effect of the embodiment obtained by such a configuration, by changing the messaging driver of the middleware between the first server and the second server, the method of realizing inter-process communication can be easily changed. Therefore, the user of the server system can quickly and flexibly adjust the method of realizing inter-process communication by selecting the messaging driver.

また、本実施例は、プロセス間通信がRPCに基づく構成を示している。
このような構成により得られる実施例の効果の一例として、RFC(Request For Comments)で規定され、標準化された技術として種々のシステムにおいて広く用いられているRPCに基づいて、プロセス間通信を実現することができる。そのため、ユーザの利便性を向上させることができる。
Furthermore, this embodiment shows a configuration in which inter-process communication is based on RPC.
As an example of the effect of the embodiment obtained by such a configuration, inter-process communication can be realized based on RPC, which is defined in RFC (Request For Comments) and is widely used in various systems as a standardized technology, thereby improving user convenience.

<第1変形例(1)>
上記の実施例では、ワーカ探索処理はインヴォーカとなったコンポーネントサーバ20Aにおいて実行することとしたが、これに限定されない。限定ではなく例として、ワーカ探索処理を呼び出し先解決サーバ10で実行するようにしてもよい。
<First Modification (1)>
In the above embodiment, the worker search process is executed in the component server 20A that is the invoker, but this is not limited to this. As a non-limiting example, the worker search process may be executed in the call destination resolution server 10.

この場合、限定ではなく例として、図1-9において、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、rpc.call処理を実行開始すると(A110)、限定ではなく例として、rpc処理要求情報におけるターゲットとルーティングキーとを含むワーカ探索要求情報を通信I/F24によって呼び出し先解決サーバ10に送信するようにしてもよい。 In this case, as an example and not a limitation, in FIG. 1-9, when the control unit 21 of the component server 20A starts executing the rpc.call process (A110), the control unit 21 may send worker search request information including the target and routing key in the rpc processing request information to the called resolution server 10 via the communication I/F 24.

通信I/F14によってコンポーネントサーバ20Aからワーカ探索要求情報を受信すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、呼び出し先管理データ153を参照し、限定ではなく例として、サーバ役割情報が「ワーカ」であるサーバIDの各レコードと、ワーカ探索要求情報とに基づいて、ワーカ探索処理を実行する。
ワーカ探索処理については、限定ではなく例として、コンポーネントサーバ20Aの制御部21におけるワーカ探索処理と同様に実行するようにしてもよい。
When worker search request information is received from the component server 20A via the communication I/F 14, the control unit 11 of the callee resolution server 10 refers to the callee management data 153, by way of example and not limitation, and performs worker search processing based on each record of the server ID whose server role information is ``worker'' and the worker search request information, by way of example and not limitation.
The worker search process may be executed in the same manner as the worker search process in the control unit 21 of the component server 20A, for example and without limitation.

ワーカ探索処理を実行すると、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、探索されたサーバIDを含むワーカ解決情報を通信I/F14によってコンポーネントサーバ20Aに送信するようにしてもよい。
そして、コンポーネントサーバ20Aの制御部21は、受信したワーカ解決情報に基づいて、rpcメッセージ情報を通信I/F24によってコンポーネントサーバ20Bに送信するようにしてもよい。
When the worker search process is executed, the control unit 11 of the called resolution server 10 may, by way of example and not limitation, send worker solution information including the searched server ID to the component server 20A via the communication I/F 14.
Then, the control unit 21 of the component server 20A may transmit the rpc message information to the component server 20B via the communication I/F 24 based on the received worker solution information.

ワーカ探索処理を呼び出し先解決サーバ10において実行することにより、各コンポーネントサーバ20の処理負荷を呼び出し先解決サーバ10に負荷分散させ、ソフトウエアコンポーネントの処理速度を向上させることができるとともに、より柔軟なスケーリングに対応可能とすることが期待できる。 By executing the worker search process on the called resolution server 10, the processing load of each component server 20 can be distributed to the called resolution server 10, which is expected to improve the processing speed of software components and enable more flexible scaling.

<第1変形例(2)>
上記の実施例では、ワーカとなったコンポーネントサーバ20Bがrpcメッセージ情報を受信すると、rpcメッセージ情報に基づくコンポーネントプログラム処理を実行することとしたが、これに限定されない。
限定ではなく例として、インヴォーカとなったコンポーネントサーバ20Aの制御部21は、コンポーネントサーバ20Bがrpcメッセージ情報を受信したと判定し、その後所定時間(限定ではなく例として、「60秒」)が経過した後もrpc処理結果情報を受信しない場合、ワーカに何らかのトラブルが発生したと判定するようにしてもよい。
<First Modification (2)>
In the above embodiment, when the component server 20B that has become a worker receives the rpc message information, it executes the component program processing based on the rpc message information, but the present invention is not limited to this.
As an example and not as a limitation, the control unit 21 of the component server 20A that has become the invoker may determine that the component server 20B has received RPC message information, and if no RPC processing result information is received even after a predetermined time has elapsed (for example and not as a limitation, "60 seconds"), it may determine that some kind of trouble has occurred in the worker.

この場合、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、ワーカに送信したrpcメッセージ情報に基づく処理を中止させるためのRPC中止要求情報を、限定ではなく例として、httpメッセージングドライバを介して通信I/F24によってコンポーネントサーバ20Bに送信するようにしてもよい。 In this case, the control unit 21 of the component server 20A may, for example and not for limitation, send RPC stop request information for stopping processing based on the RPC message information sent to the worker to the component server 20B via the communication I/F 24 via an HTTP messaging driver.

また、コンポーネントサーバ20Aの制御部21は、限定ではなく例として、メッセージングモジュールにおいて、要求されたrpc.call処理に基づくrpc処理要求情報を再生成し、限定ではなく例として、ワーカ探索処理とrpcメッセージ情報送信処理とをやり直すようにしてもよい。 In addition, the control unit 21 of the component server 20A may, for example and not for limitation, regenerate RPC processing request information based on the requested RPC.call processing in the messaging module, and, for example and not for limitation, redo the worker search processing and the RPC message information transmission processing.

なお、やり直しのワーカ探索処理において、コンポーネントサーバ20Aの制御部21は、前回探索されたワーカ(例えば、コンポーネントサーバ20B)とは異なるワーカを送信先として決定するようにしてもよい。 In addition, in a retry worker search process, the control unit 21 of the component server 20A may determine a worker other than the worker searched for previously (e.g., component server 20B) as the destination.

これにより、プロセス間通信におけるデッドロックを防ぐとともに、プロセス間通信のリトライをメッセージングモジュールのレベル(レイヤー)で実行させることができる。 This prevents deadlocks in inter-process communication and allows inter-process communication retries to be performed at the messaging module level (layer).

<第1変形例(3)>
上記の実施例では、rpc.fanout処理において、インヴォーカとなったコンポーネントサーバ20Aの制御部21は、一の一斉呼び出しサーバ40にrpcメッセージ情報を送信することとしたが、これに限定されない。
限定ではなく例として、ブロードキャスタ探索処理において、コンポーネントサーバ20Aの制御部21は、複数のサーバIDを探索結果として出力するようにしてもよい。
そして、コンポーネントサーバ20Aの制御部21は、探索結果となった複数のサーバIDに対応する一斉呼び出しサーバ40(限定ではなく例として、一斉呼び出しサーバ40A,一斉呼び出しサーバ40B,・・・等)にrpcメッセージ情報を送信するようにしてもよい。
<First Modification (3)>
In the above embodiment, in the rpc.fanout process, the control unit 21 of the component server 20A that has become the invoker transmits the rpc message information to one general call server 40, but the present invention is not limited to this.
As a non-limiting example, in the broadcaster search process, the control unit 21 of the component server 20A may output a plurality of server IDs as a search result.
Then, the control unit 21 of the component server 20A may send RPC message information to the mass call servers 40 (for example, but not limited to, the mass call server 40A, the mass call server 40B, ..., etc.) corresponding to the multiple server IDs found as a result of the search.

これにより、fanout先のワーカが膨大な数となる場合においても、ブロードキャスタの負荷を分散させることで迅速にプロセス間通信の仲介を行うことができる。 This makes it possible to distribute the load on the broadcaster and quickly mediate inter-process communication even when there are a huge number of fanout workers.

また、限定ではなく例として、異なる一斉呼び出しサーバ40ごとに異なるバインドキー情報を与えるようにしてもよい。そして、ブロードキャスタ探索処理において、コンポーネントサーバ20Aの制御部21は、ワーカ探索処理と同様にルーティングキーとマッチする複数の一斉呼び出しサーバ40を探索結果として出力できるようにしてもよい。 Also, as a non-limiting example, different bind key information may be provided for each different mass call server 40. Then, in the broadcaster search process, the control unit 21 of the component server 20A may be able to output multiple mass call servers 40 that match the routing key as search results, similar to the worker search process.

これにより、インヴォーカは多くの異なるワーカに対して柔軟にかつ簡潔にプロセス間通信を実現することができる。 This allows the invoker to implement inter-process communication flexibly and succinctly across many different workers.

<第1変形例(4)>
上記の実施例では、一斉呼び出しサーバ40の制御部41は、予めコンポーネントサーバ一覧情報455を更新することとしたが、これに限定されない。
<First Modification (4)>
In the above embodiment, the control unit 41 of the mass calling server 40 updates the component server list information 455 in advance, but the present invention is not limited to this.

限定ではなく例として、一斉呼び出しサーバ40の制御部41は、インヴォーカであるコンポーネントサーバ20Aからrpcメッセージ情報を受信すると、ワーカ一覧要求情報を通信I/F44によって呼び出し先解決サーバ10に送信するようにしてもよい。そして、一斉呼び出しサーバ40からワーカ一覧要求情報を受信すると、呼び出し先解決サーバ10の制御部11は、通信I/F14によって一斉呼び出しサーバ40にワーカ一覧情報を送信するようにしてもよい。
通信I/F44によって呼び出し先解決サーバ10からワーカ一覧情報を受信すると、一斉呼び出しサーバ40の制御部41は、受信したワーカ一覧情報に基づいて、コンポーネントサーバ一覧情報455を更新するようにしてもよい。
As a non-limiting example, when the control unit 41 of the mass calling server 40 receives RPC message information from the component server 20A, which is the invoker, the control unit 41 may transmit worker list request information to the call destination resolution server 10 via the communication I/F 44. Then, when the control unit 11 of the call destination resolution server 10 receives the worker list request information from the mass calling server 40, the control unit 11 of the call destination resolution server 10 may transmit the worker list information to the mass calling server 40 via the communication I/F 14.
When the communication I/F 44 receives the worker list information from the call destination resolution server 10, the control unit 41 of the batch call server 40 may update the component server list information 455 based on the received worker list information.

一斉呼び出しサーバ40の制御部41は、限定ではなく例として、コンポーネントサーバ一覧情報455を更新すると、rpcメッセージ情報増幅送信処理を実行するようにしてもよい。 By way of example and not limitation, the control unit 41 of the mass call server 40 may execute an RPC message information amplification and transmission process when the component server list information 455 is updated.

これにより、一斉呼び出しサーバ40の制御部41は、逐次最新のワーカ一覧情報に基づいて、rpcメッセージ情報増幅送信処理を実行することができ、rpcメッセージ情報の送信漏れやワーカとしての機能を停止しているコンポーネントサーバ20へのrpcメッセージ情報の誤送信を防ぐことができる。 This allows the control unit 41 of the mass call server 40 to execute the RPC message information amplification and transmission process based on the latest worker list information, thereby preventing the RPC message information from being missed or the RPC message information from being erroneously sent to a component server 20 that has stopped functioning as a worker.

<第1変形例(5)>
上記の実施例では、手続き側からの応答を期待しないrpc.fanout通信について例示したが、これに限定されない。限定ではなく例として、rpc.fanout通信において、手続き側からの応答を受け取るようにしてもよい。
<First Modification (5)>
In the above embodiment, the rpc.fanout communication is exemplified, in which no response is expected from the procedure side, but the present invention is not limited to this. As a non-limiting example, the rpc.fanout communication may receive a response from the procedure side.

この場合、限定ではなく例として、図1-11において、コンポーネントサーバ20Bの制御部21は、コンポーネントプログラム処理を実行すると(B130)、コンポーネントプログラム処理の処理結果を含むrpc処理結果情報を通信I/F24によってコンポーネントサーバ20Aに送信するようにしてもよい。他のワーカとなるコンポーネントサーバについても同様である。 In this case, by way of example and not limitation, in FIG. 1-11, when the control unit 21 of the component server 20B executes the component program processing (B130), it may transmit RPC processing result information including the processing result of the component program processing to the component server 20A via the communication I/F 24. The same applies to other component servers that become workers.

なお、コンポーネントサーバ20Bの制御部21は、コンポーネントプログラム処理を実行すると、限定ではなく例として、rpc処理結果情報を通信I/F24によってrpcメッセージ情報を受信した一斉呼び出しサーバ40に送信するようにしてもよい。そして、一斉呼び出しサーバ40の制御部41は、コンポーネントサーバ20Bからrpc処理結果情報を受信すると、rpcメッセージ情報を受信したコンポーネントサーバ20Aにrpc処理結果情報を送信するようにしてもよい。他のワーカとなるコンポーネントサーバについても同様である。 When the control unit 21 of the component server 20B executes the component program processing, it may, for example and not by way of limitation, transmit RPC processing result information to the mass call server 40 that received the RPC message information via the communication I/F 24. Then, when the control unit 41 of the mass call server 40 receives the RPC processing result information from the component server 20B, it may transmit the RPC processing result information to the component server 20A that received the RPC message information. The same applies to the other component servers that become workers.

また、一斉呼び出しサーバ40の制御部41は、rpcメッセージ情報増幅送信処理におけるrpcメッセージ情報の送受信が完了すると(L230)、インヴォーカであるコンポーネントサーバ20Aに、rpcメッセージ情報の送受信(A270:L210)に伴うhttpリクエストのレスポンスを送受信するようにしてもよい。 In addition, when the transmission and reception of the RPC message information in the RPC message information amplification and transmission process is completed (L230), the control unit 41 of the mass call server 40 may transmit and receive a response to the HTTP request associated with the transmission and reception of the RPC message information (A270: L210) to the component server 20A, which is the invoker.

すなわち、手続き側からの応答を期待するrpc.fanout通信として、限定ではなく例として、以下の2パターンの実装が可能である。
(1).rpc.callのfanout。
(2).rpc.castのfanoutにおける実行完了確認。
That is, as an example, but not limited to, the following two patterns of implementation are possible for rpc.fanout communication that expects a response from the procedure side.
(1). RPC. Call fanout.
(2) Confirm completion of execution of .rpc.cast in fanout.

<第2実施例>
クラウドコンピューティングでは、システムの可用性を向上させるためや、災害対策として、物理サーバが設置されている場所(限定ではなく例として、データセンタ等)ごとに分離したシステムを冗長して分散運用することがある(いわゆるマルチリージョンやマルチゾーン)。
第2実施例は、限定ではなく例として、インヴォーカが、リージョンやゾーン(可用性ゾーン)をまたいでワーカを呼び出し可能な実施例である。
Second Example
In cloud computing, in order to improve system availability or as a disaster prevention measure, systems are sometimes operated in a redundant and distributed manner (so-called multi-region or multi-zone) by separating them into separate systems for each location where a physical server is installed (for example, but not limited to, a data center).
A second embodiment is an embodiment, by way of example and not limitation, in which an invoker can invoke workers across regions and zones (availability zones).

第2実施例に記載の内容は、他の各実施例や他の各変形例のいずれにも適用可能である。
また、既出の構成要素と同一の構成要素については同一の符号を付して、再度の説明を省略する。
The contents described in the second embodiment are applicable to any of the other embodiments and other modified examples.
Furthermore, the same components as those already mentioned are given the same reference numerals and will not be described again.

第2実施例では、限定ではなく例として、データセンタ間をまたいだマルチリージョン構成について例示する。
以下では、データセンタAに属する呼び出し先解決サーバ10を「呼び出し先解決サーバ10´」、データセンタBに属する呼び出し先解決サーバ10を「呼び出し先解決サーバ10´´」、データセンタCに属する呼び出し先解決サーバ10を「呼び出し先解決サーバ10´´´」、・・・と「´」の数で区別することとする。他のコンポーネントサーバ20や一斉呼び出しサーバ40についても同様である。
In the second embodiment, a multi-region configuration spanning data centers will be illustrated as an example and not a limitation.
In the following, the call destination resolution server 10 belonging to data center A will be referred to as the "call destination resolution server 10'", the call destination resolution server 10 belonging to data center B will be referred to as the "call destination resolution server 10", the call destination resolution server 10 belonging to data center C will be referred to as the "call destination resolution server 10"", ... by the number of "'". The same applies to the other component servers 20 and the mass call server 40.

図2-1は、本実施例におけるマルチリージョン通信システム構成と処理の流れの概念を示すブロック図である。
なお、図の簡略化のため、各サーバ間を結ぶネットワーク30については図示を省略する。また、ブロック図中において、丸印に数字で書かれる内容を、文中では便宜上「((数字))」と表記することとする。
また、本ブロック図では、限定ではなく例として、データセンタAのコンポーネントサーバ20A´をrpcの呼び出し側(インヴォーカ)、データセンタBのコンポーネントサーバ20B´´をrpcの手続き側(ワーカ)とする。
FIG. 2A is a block diagram showing the concept of the multi-region communication system configuration and processing flow in this embodiment.
In order to simplify the diagram, the network 30 connecting the servers is not shown. In addition, in the block diagram, the contents written in circles with numbers will be written as "((number))" for convenience in the text.
In addition, in this block diagram, as an example and not a limitation, the component server 20A' in data center A is the rpc caller (invoker), and the component server 20B'' in data center B is the rpc procedure (worker).

また、以下では、限定ではなく例として、各データセンタ内における接続をネットワーク30X(ネットワーク30A、ネットワーク30B、ネットワーク30C、・・・)、各データセンタ間を接続するためのネットワーク30を「グローバルネットワーク30」とそれぞれ称する。 Furthermore, in the following, as an example and not a limitation, the connections within each data center will be referred to as network 30X (network 30A, network 30B, network 30C, ...), and the network 30 for connecting each data center will be referred to as "global network 30."

一般に、各データセンタ内におけるネットワーク30Xに比べて、グローバルネットワーク30の接続性能は低くなる(限定ではなく例として、レイテンシが大きい、および/または、スループットが小さい)。 In general, the global network 30 will have lower connection performance (for example, but not limited to, higher latency and/or lower throughput) compared to the networks 30X within each data center.

マルチリージョン通信システムでは、限定ではなく例として、データセンタAにおいて、ネットワーク30Aを介して、呼び出し先解決サーバ10´と、一斉呼び出しサーバ40´と、複数のコンポーネントサーバ20´(コンポーネントサーバ20A´,コンポーネントサーバ20B´,コンポーネントサーバ20C´,・・・)とが接続される。
また、限定ではなく例として、データセンタBにおいて、ネットワーク30Bを介して、呼び出し先解決サーバ10´´と、一斉呼び出しサーバ40´´と、複数のコンポーネントサーバ20´´(コンポーネントサーバ20A´´,コンポーネントサーバ20B´´,コンポーネントサーバ20C´´,・・・)とが接続される。
また、限定ではなく例として、データセンタCにおいて、ネットワーク30Cを介して、呼び出し先解決サーバ10´´´と、一斉呼び出しサーバ40´´´と、複数のコンポーネントサーバ20´´´(コンポーネントサーバ20A´´´,コンポーネントサーバ20B´´,コンポーネントサーバ20C´´´,・・・)とが接続される。
In a multi-region communication system, as an example and not a limitation, in a data center A, a call destination resolution server 10', a mass call server 40', and multiple component servers 20' (component server 20A', component server 20B', component server 20C', ...) are connected via a network 30A.
Also, as an example and not a limitation, in data center B, a call destination resolution server 10'', a mass call server 40'', and multiple component servers 20'' (component server 20A'', component server 20B'', component server 20C'', ...) are connected via network 30B.
Also, as an example and not a limitation, in data center C, a call destination resolution server 10'''', a mass call server 40'''', and a plurality of component servers 20''' (component server 20A'''', component server 20B'', component server 20C''...) are connected via a network 30C.

他のデータセンタについても同様である。 The same applies to other data centers.

以下に、本実施例において各装置が実行する処理の流れの一例を示す。
なお、処理に先立ち、前述したように、各データセンタにおいて、各コンポーネントサーバ20の制御部21は、コンポーネントプログラム処理とhttpデーモン処理とを開始する。そして、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、データセンタ内の各サーバ20について、呼び出し先管理データ153を更新する。また、一斉呼び出しサーバ40の制御部41は、限定ではなく例として、データセンタをまたいだ各サーバ20について、コンポーネントサーバ一覧情報455を更新する。
An example of the flow of processing executed by each device in this embodiment will be shown below.
Prior to the processing, as described above, in each data center, the control unit 21 of each component server 20 starts component program processing and http daemon processing. Then, the control unit 11 of the call destination resolution server 10 updates the call destination management data 153 for each server 20 in the data center, by way of example and not by way of limitation. Also, the control unit 41 of the simultaneous call server 40 updates the component server list information 455 for each server 20 across the data centers, by way of example and not by way of limitation.

((1)).各データセンタの呼び出し先解決サーバ10(呼び出し先解決サーバ10´,呼び出し先解決サーバ10´´,呼び出し先解決サーバ10´´´,・・・)の制御部11は、限定ではなく例として、グローバルネットワーク30を介して、各々の呼び出し先管理データ153を同期させる。
なお、呼び出し先解決サーバ10の制御部11は、限定ではなく例として、呼び出し先管理データ153を所定時刻(限定ではなく例として、「毎分00秒」)または所定期間(限定ではなく例として、「60秒」)ごと同期するようにしてもよい。
((1)). The control unit 11 of the callee resolution server 10 (callee resolution server 10′, callee resolution server 10″, callee resolution server 10′″, ...) of each data center synchronizes each callee management data 153 via the global network 30, for example and not by way of limitation.
In addition, the control unit 11 of the call destination resolution server 10 may, by way of example and not by way of limitation, synchronize the call destination management data 153 at a predetermined time (by way of example and not by way of limitation, "00 seconds every minute") or at a predetermined period of time (by way of example and not by way of limitation, "60 seconds").

((2)).データセンタAのサーバ20A´の制御部21は、限定ではなく例として、コンポーネントプログラムにおけるrpc.call手続きに基づいて、rpc.call処理を実行開始する。サーバ20A´の制御部21は、限定ではなく例として、httpメッセージングドライバ2515に従って、rpc処理要求情報に基づいて、ワーカ一覧要求情報を同じデータセンタ内の呼び出し先解決サーバ10´に送信する。
なお、呼び出し先解決サーバ10´が停止している場合、サーバ20A´の制御部21は、限定ではなく例として、ワーカ一覧要求情報を最も近しい(限定ではなく例として、サーバ10とのレイテンシが低い、および/または、物理サーバが設置されている距離が近い)データセンタの呼び出し先解決サーバ10に送信するようにしてもよい。
((2)). The control unit 21 of the server 20A' in data center A starts executing an rpc.call process based on the rpc.call procedure in the component program, for example and not for limitation. The control unit 21 of the server 20A' sends worker list request information to the call destination resolution server 10' in the same data center based on the rpc process request information according to the http messaging driver 2515, for example and not for limitation.
In addition, when the destination resolution server 10' is stopped, the control unit 21 of the server 20A' may, for example and not limitation, send the worker list request information to the destination resolution server 10 in the nearest data center (for example and not limitation, the data center with the lowest latency to the server 10 and/or the physical server located close by).

((3)).呼び出し先解決サーバ10´の制御部11は、限定ではなく例として、ワーカ更新処理を実行する。そして、呼び出し先解決サーバ10´の制御部11は、限定ではなく例として、ワーカ一覧情報をサーバ20A´に送信する。
呼び出し先管理データ153の同期のタイミング等の問題により、呼び出し先解決サーバ10´の呼び出し先管理データ153には、別データセンタのサーバ20B´´が登録されていない可能性が生じる。
呼び出し先解決サーバ10´からワーカ一覧情報を受信すると、コンポーネントサーバ20A´の制御部21は、ワーカ探索処理を実行する。ワーカ探索処理において、限定ではなく例として、別データセンタのサーバ20B´´が探索結果として探索できず、ワーカ探索処理が失敗するとする。
((3)) The control unit 11 of the call destination resolution server 10′ executes a worker update process, for example and not for limitation. Then, the control unit 11 of the call destination resolution server 10′ transmits worker list information to the server 20A′, for example and not for limitation.
Due to a problem such as the timing of synchronization of the callee management data 153, there is a possibility that the server 20B'' in another data center is not registered in the callee management data 153 of the callee resolution server 10'.
When receiving the worker list information from the call destination resolution server 10′, the control unit 21 of the component server 20A′ executes a worker search process. In the worker search process, as an example and not a limitation, it is assumed that the server 20B″ in another data center cannot be searched as a search result, and the worker search process fails.

なお、ワーカ探索処理が成功した場合、コンポーネントサーバ20A´の制御部21は、rpcメッセージ情報送信処理を実行する。 If the worker search process is successful, the control unit 21 of the component server 20A' executes the rpc message information sending process.

((4)).ワーカ探索処理が失敗した場合、コンポーネントサーバ20A´の制御部21は、ワーカ一覧要求情報を最も近いデータセンタ内の呼び出し先解決サーバ10´´に送信する。 ((4)) If the worker search process fails, the control unit 21 of the component server 20A' sends the worker list request information to the call destination resolution server 10'' in the nearest data center.

((5)).呼び出し先解決サーバ10´´の制御部11は、限定ではなく例として、ワーカ更新処理を実行する。そして、呼び出し先解決サーバ10´´の制御部11は、限定ではなく例として、呼び出し先解決サーバ10´´の呼び出し先管理データ153に基づいて、ワーカ一覧要求情報をサーバ20A´に送信する。 ((5)). The control unit 11 of the called resolution server 10'' executes a worker update process, for example and not for limitation. Then, the control unit 11 of the called resolution server 10'' transmits worker list request information to the server 20A' based on the called management data 153 of the called resolution server 10''.

((6)).呼び出し先解決サーバ10´´からワーカ一覧情報を受信すると、コンポーネントサーバ20A´の制御部21は、ワーカ探索処理を実行する。ワーカ探索処理が成功すると、コンポーネントサーバ20A´の制御部21は、rpcメッセージ情報をワーカであるコンポーネントサーバ20B´´に送信する。 ((6)). Upon receiving the worker list information from the called resolution server 10'', the control unit 21 of the component server 20A' executes a worker search process. If the worker search process is successful, the control unit 21 of the component server 20A' sends the rpc message information to the component server 20B', which is the worker.

なお、ワーカ探索処理が失敗した場合、コンポーネントサーバ20A´の制御部21は、再度ワーカ一覧要求情報を次に近いデータセンタ内の呼び出し先解決サーバ10´´´に送信する。 If the worker search process fails, the control unit 21 of the component server 20A' again sends the worker list request information to the call destination resolution server 10''' in the next closest data center.

これにより、ワーカであるサーバ20A´の制御部21は、接続性能が低いグローバルネットワーク30の使用を最小限に抑えることができる。また、各データセンタにおいて、呼び出し先解決サーバ10は自立して動作を行うため、冗長性を保つことができる。 This allows the control unit 21 of the worker server 20A' to minimize the use of the global network 30, which has low connection performance. In addition, in each data center, the call destination resolution server 10 operates independently, so redundancy can be maintained.

従来手法であるメッセージキューイングサービスを用いる場合と比較を行う。
限定ではなく例として、データセンタごとにコンポーネントサーバ20のクラスタを構成し、冗長化を行う場合、データセンタ間をまたいで一のメッセージキューイングサービスを構成する単一クラスタ方式では、メッセージキューイングサービスがデータセンタをまたいで通信を行うトラヒックが増大し、グローバルネットワーク30がボトルネックとなりクラスタ全体のパフォーマンスが頭打ちになるという問題が発生する。
A comparison is made with the conventional method using a message queuing service.
As a non-limiting example, when configuring a cluster of component servers 20 for each data center to provide redundancy, in a single cluster system in which one message queuing service is configured across data centers, the traffic of the message queuing service communicating across data centers increases, causing the global network 30 to become a bottleneck and causing the performance of the entire cluster to hit a plateau.

また、単一クラスタ方式では、メッセージキューイングサービスに複数データセンタに配置されるすべてのコンポーネントサーバ20が接続されるため、データセンタ数を増やすほどメッセージキューイングサービスに接続されるサーバ数が比例して増加し、メッセージキューイングサービスの負荷が増大するという問題が発生する。 In addition, in the single cluster system, all component servers 20 located in multiple data centers are connected to the message queuing service, so as the number of data centers increases, the number of servers connected to the message queuing service increases proportionally, resulting in a problem of increased load on the message queuing service.

データセンタごとにメッセージキューイングサービスを構成する複数クラスタ方式では、上記の問題を解決することが可能であるが、限定ではなく例として、メッセージングモジュール2513において複数のメッセージキューイングサービスをサポートしていることが望ましい。メッセージングモジュール2513において複数のメッセージキューイングサービスをサポートするためには、限定ではなく例として、データセンタごとのメッセージキューイングサービスのアクセス先とMQクラスタとのマッピングや、データセンタごとのメッセージキューイングサービスの動作状態等を管理する必要が生じる。このため、メッセージングモジュール2513の構成が複雑になり、プログラムコンポーネントクラスタ全体の負荷が上がるという問題が発生する。 The above problem can be solved by a multiple cluster method in which a message queuing service is configured for each data center, but by way of example and not limitation, it is desirable for the messaging module 2513 to support multiple message queuing services. In order to support multiple message queuing services in the messaging module 2513, it becomes necessary to manage, by way of example and not limitation, the mapping between the access destination of the message queuing service for each data center and the MQ cluster, the operating status of the message queuing service for each data center, etc. This causes the configuration of the messaging module 2513 to become complex, which causes a problem of an increased load on the entire program component cluster.

また、限定ではなく例として、メッセージングモジュール2513において複数のメッセージキューイングサービスをサポートしていない場合(限定ではなく例として、「oslo.messaging」モジュール)、ソフトウエアコンポーネント側で複数のメッセージキューイングサービスをサポートする必要が生じ、メッセージングモジュール2513を介してプロセス間通信を実現する際の利便性が低下するという問題が発生する。 Furthermore, by way of example and not limitation, if messaging module 2513 does not support multiple message queuing services (for example and not limitation, the "oslo.messaging" module), it becomes necessary for the software component to support multiple message queuing services, which causes a problem of reduced convenience when realizing inter-process communication via messaging module 2513.

これに対して、提案手法では、各データセンタ間が自立的に動作可能な複数クラスタ方式を取りながら、インヴォーカが属するデータセンタの呼び出し先解決サーバ10を優先して呼び出すことで、データセンタ間をまたいだトラヒックの増加を最小限に抑えることができる。 In contrast, the proposed method uses a multiple cluster approach that allows each data center to operate autonomously, and prioritizes calling the call destination resolution server 10 of the data center to which the invoker belongs, thereby minimizing the increase in traffic between data centers.

また、httpメッセージングドライバ2515がデータセンタをまたいだ場合においてもプロセス間通信のエンドポイント(インヴォーカとワーカ)の識別情報を管理できるため、メッセージングモジュール2513やコンポーネント処理プログラム251を変更する必要が発生せず、メッセージングモジュール2513を介してプロセス間通信を実現する際の利便性を向上させることができる。 In addition, since the HTTP messaging driver 2515 can manage the identification information of the inter-process communication end points (invoker and worker) even when the data center is spanned, there is no need to modify the messaging module 2513 or the component processing program 251, improving the convenience of realizing inter-process communication via the messaging module 2513.

<第2実施例の効果>
本実施例は、サーバシステムに、データセンタAに属する呼び出し先解決サーバ10´(限定ではなく、解決サーバ)とは異なるデータセンタB(限定ではなく、リージョンまたはゾーンの一例)に属する呼び出し先解決サーバ10´´(限定ではなく、第1解決サーバの一例)を含む。そして、インヴォーカであるコンポーネントサーバ20A´の制御部21は、呼び出し先解決サーバ10´から受信するワーカ一覧情報(限定ではなく、第1情報の一例)に基づいて、ワーカであるコンポーネントサーバ20B´´のサーバID(限定ではなく、識別情報の一例)が探索出来ない場合(限定ではなく、解決できない場合の一例)、コンポーネントサーバ20B´´を特定するためのワーカ一覧情報(限定ではなく例として、第6情報の一例)を呼び出し先解決サーバ10´´から受信する。すると、コンポーネントサーバ20Aの制御部21は、呼び出し先解決サーバ10´´から受信したワーカ一覧情報(限定ではなく、第6情報の一例)に基づいて、コンポーネントサーバ20B´´にrpcメッセージ情報を送信する構成。を示している。
このような構成により得られる実施例の効果の一例として、第1サーバは、解決サーバから受信した第1情報では第2サーバを識別できない場合、第1解決サーバから受信した第6情報を用いて第2サーバを識別することができる。そのため、第1サーバは、解決サーバと第1解決サーバとで異なるリージョンまたはゾーンをまたいで冗長構成される解決サーバシステムを利用してプロセス間通信の相手である第2サーバを特定することができる。
結果として、サーバシステムの可用性を向上させることができる。
<Effects of the Second Example>
In this embodiment, the server system includes a callee resolution server 10'' (not limited to, an example of a first resolution server) belonging to a data center B (not limited to, an example of a region or zone) different from the callee resolution server 10' (not limited to, a resolution server) belonging to the data center A. Then, when the control unit 21 of the component server 20A', which is an invoker, cannot search for the server ID (not limited to, an example of identification information) of the component server 20B'' as a worker based on the worker list information (not limited to, an example of the first information) received from the callee resolution server 10' (not limited to, an example of a case where the component server 20B'' cannot be resolved), the control unit 21 receives worker list information (not limited to, an example of the sixth information) for identifying the component server 20B'' from the callee resolution server 10''. Then, the control unit 21 of the component server 20A transmits RPC message information to the component server 20B'' based on the worker list information (not limited to, an example of the sixth information) received from the callee resolution server 10''.
As an example of the effect of the embodiment obtained by such a configuration, when the first server cannot identify the second server by the first information received from the resolution server, the first server can identify the second server by using the sixth information received from the first resolution server. Therefore, the first server can specify the second server, which is the other party of the inter-process communication, by using the resolution server system in which the resolution server and the first resolution server are redundantly configured across different regions or zones.
As a result, the availability of the server system can be improved.

また、本実施例では、rpcメッセージ情報がhttpに基づいて送受信される。そして、インヴォーカであるコンポーネントサーバ20A´の制御部21はRPC通信を制御するメッセージングモジュール2513(限定ではなく、ミドルウェアの一例)に組み込まれたhttpメッセージングドライバ2515(限定ではなく、メッセージングドライバの一例)を介して(httpメッセージングドライバに従って)ワーカ一覧情報(限定ではなく、第1情報と第6情報との一例)を受信し、rpcメッセージ情報を送信する制御を行う。そして、コンポーネントサーバ20B´´の制御部21は、httpメッセージングドライバ2515を介して(httpメッセージングドライバに従って)rpcメッセージ情報を受信する制御を行う構成を示している。
このような構成により得られる実施例の効果の一例として、第1サーバと第2サーバとで、ミドルウェアのメッセージングドライバを変更することで、容易にプロセス間通信の実現方法を変更することができる。そのため、サーバシステムのユーザは、メッセージングドライバを選択することで、プロセス間通信の実現方法を容易に変更することができる。
In this embodiment, RPC message information is sent and received based on HTTP. The control unit 21 of the component server 20A', which is an invoker, receives worker list information (not limited to, an example of the first information and the sixth information) (according to the HTTP messaging driver) via the HTTP messaging driver 2515 (not limited to, an example of a messaging driver) incorporated in the messaging module 2513 (not limited to, an example of middleware) that controls RPC communication, and controls the transmission of the RPC message information. The control unit 21 of the component server 20B'' shows a configuration in which it controls the reception of RPC message information via the HTTP messaging driver 2515 (according to the HTTP messaging driver).
As an example of the effect of the embodiment obtained by such a configuration, by changing the messaging driver of the middleware between the first server and the second server, the method of realizing inter-process communication can be easily changed. Therefore, the user of the server system can easily change the method of realizing inter-process communication by selecting the messaging driver.

また、本実施例は、コンポーネントサーバ20A´と呼び出し先解決サーバ10´とは同じデータセンタA(限定ではなく、同じリージョンまたはゾーンの一例)に属し、コンポーネントサーバ20A´の制御部21は、コンポーネントサーバ20A´との通信レイテンシが最も低い(限定ではなく、最も近しいリージョンまたはゾーンに属する一例)呼び出し先解決サーバ10´´からワーカ一覧情報を受信する構成を示している。
このような構成により得られる実施例の効果の一例として、リージョンまたはゾーンをまたぐ通信による処理の遅延を最小化することができる。また、リージョンまたはゾーンをまたぐ通信の発生を最小化することができる。結果として、リージョンまたはゾーンによる冗長化構成を保ちつつ、サーバシステム全体で発生する通信負荷を下げることができる。
In addition, in this embodiment, the component server 20A' and the called resolution server 10' belong to the same data center A (not limited to this, but an example of the same region or zone), and the control unit 21 of the component server 20A' receives worker list information from the called resolution server 10'' which has the lowest communication latency with the component server 20A' (not limited to this, but an example of this belonging to the closest region or zone).
As an example of the effect of the embodiment obtained by such a configuration, it is possible to minimize the processing delay caused by communication across regions or zones. Also, it is possible to minimize the occurrence of communication across regions or zones. As a result, it is possible to reduce the communication load generated in the entire server system while maintaining a redundant configuration based on regions or zones.

<第2変形例(1)>
上記の実施例では、データセンタ間をまたいだマルチリージョン構成について例示したが、これに限定されない。限定ではなく例として、各データセンタを可用性ゾーンとみなすことで、マルチゾーンについても同様に実現することができる。
また、マルチリージョンとマルチゾーンとを併用するマルチサイトについても同様に実現可能である。
<Second Modification Example (1)>
In the above embodiment, a multi-region configuration across data centers is illustrated, but is not limited to this. By way of example and not limitation, a multi-zone configuration can be similarly realized by regarding each data center as an availability zone.
Similarly, a multi-site system using both multi-regions and multi-zones can be realized.

<第2変形例(2)>
上記の実施例では、ワーカ探索処理はインヴォーカとなったコンポーネントサーバ20A´において実行することとしたが、これに限定されない。限定ではなく例として、ワーカ探索処理を各データセンタの呼び出し先解決サーバ10で実行するようにしてもよい。
<Second Modification Example (2)>
In the above embodiment, the worker search process is executed in the component server 20A' that is the invoker, but this is not limited to this. As a non-limiting example, the worker search process may be executed in the call destination resolution server 10 of each data center.

図2-2は、本変形例におけるマルチリージョン通信システム構成と処理の流れの概念を示すブロック図である。 Figure 2-2 is a block diagram showing the concept of the multi-region communication system configuration and processing flow in this modified example.

以下に、本変形例において各装置が実行する処理の流れの一例を示す。
なお、処理に先立ち、前述のように、限定ではなく例として、データセンタ内の各サーバ20について、呼び出し先管理データ153とコンポーネントサーバ一覧情報455とが更新されることとしてもよい。
An example of the flow of processes executed by each device in this modified example will be shown below.
Prior to the processing, as described above, by way of example and not limitation, the callee management data 153 and the component server list information 455 may be updated for each server 20 in the data center.

((1)).各データセンタの呼び出し先解決サーバ10(呼び出し先解決サーバ10´,呼び出し先解決サーバ10´´,呼び出し先解決サーバ10´´´,・・・)の制御部11は、限定ではなく例として、グローバルネットワーク30を介して、各々の呼び出し先管理データ153を同期させる。 ((1)). The control unit 11 of the callee resolution server 10 (callee resolution server 10', callee resolution server 10'', callee resolution server 10''', ...) of each data center synchronizes the callee management data 153 of each data center via the global network 30, for example and not for limitation.

((2)).データセンタAのサーバ20A´の制御部21は、限定ではなく例として、コンポーネントプログラムにおけるrpc.call手続きに基づいて、rpc.call処理を実行開始する。サーバ20A´の制御部21は、限定ではなく例として、httpメッセージングドライバ2515に従って、rpc処理要求情報に基づいて、ワーカ探索要求情報を同じデータセンタ内の呼び出し先解決サーバ10´に送信する。
なお、呼び出し先解決サーバ10´が停止している場合、サーバ20A´の制御部21は、限定ではなく例として、ワーカ探索要求情報を最も近い(限定ではなく例として、サーバ10とのレイテンシが低い)データセンタの呼び出し先解決サーバ10に送信するようにしてもよい。
((2)). The control unit 21 of the server 20A' in the data center A starts to execute the rpc.call process based on the rpc.call procedure in the component program, for example and not for limitation. The control unit 21 of the server 20A' sends the worker search request information to the call destination resolution server 10' in the same data center based on the rpc process request information according to the http messaging driver 2515, for example and not for limitation.
In addition, when the destination resolution server 10' is stopped, the control unit 21 of the server 20A' may, for example and not limitation, send the worker search request information to the destination resolution server 10 in the closest data center (for example and not limitation, with low latency to the server 10).

((3)).呼び出し先解決サーバ10´の制御部11は、限定ではなく例として、ワーカ更新処理を実行する。そして、呼び出し先解決サーバ10´の制御部11は、限定ではなく例として、呼び出し先解決サーバ10´の呼び出し先管理データ153を参照し、ワーカ探索処理を実行する。
ワーカ探索処理において、呼び出し先管理データ153の同期のタイミング等の問題により、呼び出し先解決サーバ10´の呼び出し先管理データ153から手続き側のサーバ(この例では、サーバ10B´´)が探索出来ない場合、呼び出し先解決サーバ10´の制御部11は、限定ではなく例として、ワーカ探索要求情報を最も近いデータセンタの呼び出し先解決サーバ10´´に送信する。
((3)) The control unit 11 of the call destination resolution server 10′ executes a worker update process, for example and not for limitation. Then, the control unit 11 of the call destination resolution server 10′ executes a worker search process, for example and not for limitation, by referring to the call destination management data 153 of the call destination resolution server 10′.
In the worker search process, if the procedure side server (in this example, server 10B") cannot be found from the callee management data 153 of the callee resolution server 10' due to issues such as the timing of synchronization of the callee management data 153, the control unit 11 of the callee resolution server 10' will, by way of example and not limitation, send worker search request information to the callee resolution server 10'' in the nearest data center.

なお、ワーカ探索処理において、呼び出し先解決サーバ10´の呼び出し先管理データ153から手続き側のサーバが探索出来る場合、呼び出し先解決サーバ10´の制御部11は、ワーカ解決情報をサーバ20A´に送信する。 In addition, in the worker search process, if the procedure side server can be found from the callee management data 153 of the callee resolution server 10', the control unit 11 of the callee resolution server 10' sends the worker resolution information to the server 20A'.

((4)).通信I/F14によって呼び出し先解決サーバ10´からワーカ探索要求情報を受信すると、呼び出し先解決サーバ10´´の制御部11は、限定ではなく例として、呼び出し先解決サーバ10´´の呼び出し先管理データ153を参照し、ワーカ探索処理を実行する。
ワーカ探索処理において、呼び出し先解決サーバ10´´の制御部11は、呼び出し先解決サーバ10´´の呼び出し先管理データ153から手続き側のサーバ(この例では、サーバ10B´´)が探索されると、ワーカ解決情報をサーバ20A´に送信する。
((4)) When worker search request information is received from the call destination resolution server 10′ via the communication I/F 14, the control unit 11 of the call destination resolution server 10″, by way of example and not limitation, refers to the call destination management data 153 of the call destination resolution server 10″ and executes a worker search process.
In the worker search process, when the control unit 11 of the call destination resolution server 10'' searches for a procedure side server (in this example, server 10B'') from the call destination management data 153 of the call destination resolution server 10'', it transmits worker solution information to the server 20A'.

なお、呼び出し先解決サーバ10´´の制御部11は、ワーカ解決情報を呼び出し先解決サーバ10´を介してサーバ20A´に送信するようにしてもよい。 The control unit 11 of the called resolution server 10'' may transmit the worker resolution information to the server 20A' via the called resolution server 10'.

呼び出し先解決サーバ10´´からワーカ解決情報を受信すると、コンポーネントサーバ20A´の制御部21は、rpcメッセージ情報をワーカであるコンポーネントサーバ20B´´に送信する。 When worker resolution information is received from the called resolution server 10'', the control unit 21 of the component server 20A' sends the rpc message information to the worker component server 20B''.

ワーカ探索処理を各データセンタの呼び出し先解決サーバ10において実行することにより、各コンポーネントサーバ20の処理負荷を呼び出し先解決サーバ10に負荷分散させることができる。 By executing the worker search process on the call destination resolution server 10 of each data center, the processing load of each component server 20 can be distributed to the call destination resolution server 10.

<第2変形例(3)>
上記の実施例では、呼び出し先解決サーバ10を用いる処理(限定ではなく例として、rpc.call通信やrpc.cast通信)について例示したが、これに限定されない。限定ではなく例として、一斉呼び出しサーバ40を用いるrpc.fanout通信についてもデータセンタ間で発生するトラヒックを最小限に抑えるように構成してもよい。
<Second Modification Example (3)>
In the above embodiment, the process using the call destination resolution server 10 (as an example and not a limitation, rpc.call communication and rpc.cast communication) is illustrated, but the present invention is not limited to this. As an example and not a limitation, rpc.fanout communication using the general call server 40 may also be configured to minimize the traffic generated between data centers.

この場合、限定ではなく例として、一斉呼び出しサーバ40´におけるコンポーネントサーバ一覧情報455は、限定ではなく例として、以下の要素(A)+(B)のようにrpcメッセージ情報を記述してもよい。
(A):一斉呼び出しサーバ40と同じデータセンタに存在する各コンポーネントサーバ20の識別情報。
(B):一斉呼び出しサーバ40と異なるデータセンタに存在する各一斉呼び出しサーバ40の識別情報。
In this case, by way of example and not limitation, the component server list information 455 in the mass call server 40' may describe the RPC message information as the following elements (A)+(B):
(A): Identification information of each component server 20 that exists in the same data center as the mass paging server 40.
(B): Identification information of each of the mass paging servers 40 that exist in a data center different from the mass paging server 40 .

インヴォーカ(限定ではなく例として、コンポーネントサーバ20A´)と同じデータセンタに存在する一斉呼び出しサーバ40´の制御部41は、は、インヴォーカからrpcメッセージ情報を受信すると、rpcメッセージ情報増幅送信処理において、限定ではなく例として、(A)と(B)とを対象としてrpcメッセージ情報を送信する。 When the control unit 41 of the mass call server 40', which exists in the same data center as the invoker (as an example, not a limitation, the component server 20A'), receives RPC message information from the invoker, in the RPC message information amplification and transmission process, it transmits the RPC message information to (A) and (B), as an example, not a limitation.

インヴォーカと異なるデータセンタに存在する一斉呼び出しサーバ40の制御部41は、一斉呼び出しサーバ40´からrpcメッセージ情報を受信すると、rpcメッセージ情報増幅送信処理において、限定ではなく例として、(A)を対象としてrpcメッセージ情報を送信する。 When the control unit 41 of the mass call server 40, which exists in a data center different from the invoker, receives the RPC message information from the mass call server 40', in the RPC message information amplification and transmission process, it transmits the RPC message information to (A) as a non-limiting example.

このようにインヴォーカが存在するデータセンタの一斉呼び出しサーバ40を親とし、他のデータセンタの一斉呼び出しサーバ40を子として再帰的にrpcメッセージ情報を送信することで、データセンタ間で発生するトラヒックを最小化することができる。 In this way, the mass call server 40 in the data center where the invoker exists is treated as the parent, and the mass call servers 40 in other data centers are treated as children, and RPC message information is sent recursively, thereby minimizing the traffic generated between data centers.

<他の実施例>
(1)情報処理装置
上記の実施例では、本開示における情報処理装置を呼び出し先解決サーバ10および/または一斉呼び出しサーバ40として説明したが、これに限定されない。
<Other Examples>
(1) Information Processing Device In the above embodiment, the information processing device in the present disclosure has been described as the call destination resolution server 10 and/or the mass call server 40, but is not limited thereto.

呼び出し先解決サーバ10および/または一斉呼び出しサーバ40を1つとするのではなく、呼び出し先解決サーバ10および/または一斉呼び出しサーバ40を複数のサーバに分け、これら各々のサーバを本開示における情報処理装置としてもよい。 Instead of having a single call destination resolution server 10 and/or a single mass call server 40, the call destination resolution server 10 and/or the mass call server 40 may be divided into multiple servers, and each of these servers may be an information processing device in the present disclosure.

また、サーバではなく、ソフトウエアコンポーネントを利用する端末と通信する管理用のコンピュータ等の端末や管理用のスマートフォン等の端末を、本開示における情報処理装置としてもよい。 In addition, instead of a server, a terminal such as a management computer that communicates with a terminal that uses a software component, or a terminal such as a management smartphone, may be the information processing device in this disclosure.

また、複数の情報処理装置を含むシステムを構成し、このシステムが、上記の実施例で説明した呼び出し先解決サーバ10および/または一斉呼び出しサーバ40の各種の処理を行うようにしてもよい。 It is also possible to configure a system including multiple information processing devices, and have this system perform the various processes of the call destination resolution server 10 and/or the mass call server 40 described in the above embodiment.

(2)その他
前述したように、上記の各々の実施例、各々の変形例、その他の実施例等で説明した内容は、それぞれ組み合わせて適用することが可能である。
(2) Others As described above, the contents described in the above embodiments, the respective modifications, and other embodiments can be applied in combination with each other.

<他の実施形態>
本発明の他の態様として、第1サーバから少なくとも第2サーバへのプロセス間通信を制御するミドルウェアに組み込まれるドライバプログラムであって、ドライバプログラムは、プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバと通信させる処理を含み、ドライバプログラムは、第1サーバにおいて、第2サーバを特定するための第1情報を解決サーバから受信させ、第1情報に基づき、第2サーバにプロセス間通信の処理を要求するための第2情報を送信させ、第2サーバにおいて、第1サーバから第2情報を受信させるようにしてもよい。
<Other embodiments>
Another aspect of the present invention is a driver program incorporated into middleware that controls inter-process communication from a first server to at least a second server, the driver program including a process for communicating with a resolution server that executes a process related to identifying an inter-process communication destination in the inter-process communication, the driver program causing the first server to receive first information for identifying the second server from the resolution server, and based on the first information, transmitting second information to the second server for requesting processing of the inter-process communication, and causing the second server to receive the second information from the first server.

また、ドライバプログラムは、第2情報をハイパーテキスト・トランスファー・プロトコルに基づいて送受信させるようにしてもよい。 The driver program may also transmit and receive the second information based on the HyperText Transfer Protocol.

また、ドライバプログラムは、第2サーバにおいて、第1サーバに第2情報に基づく第1処理に関する第3情報を送信させ、第1サーバにおいて、第2サーバから第3情報を受信させるようにしてもよい。 The driver program may also cause the second server to transmit third information regarding the first process based on the second information to the first server, and cause the first server to receive the third information from the second server.

また、ドライバプログラムは、第2情報と第3情報とをハイパーテキスト・トランスファー・プロトコルに基づいて送受信させるようにしてもよい。 The driver program may also transmit and receive the second information and the third information based on the HyperText Transfer Protocol.

また、ドライバプログラムは、第2サーバと少なくとも第3サーバとにプロセス間通信の処理を要求することに関する処理を実行する増幅サーバと通信させる処理を含み、ドライバプログラムは、第1サーバにおいて、増幅サーバを特定するための第4情報を解決サーバから受信させ、第4情報に基づき、増幅サーバにプロセス間通信の処理を要求するための第5情報を送信させ、第2サーバと第3サーバとにおいて、増幅サーバから第5情報を受信させるようにしてもよい。 The driver program may also include a process for communicating with an amplification server that executes a process for requesting the second server and at least a third server to process inter-process communication, and the driver program may cause the first server to receive fourth information for identifying the amplification server from the resolution server, and based on the fourth information, transmit fifth information for requesting the amplification server to process the inter-process communication, and cause the second server and the third server to receive the fifth information from the amplification server.

また、ドライバプログラムは、第5情報をハイパーテキスト・トランスファー・プロトコルに基づいて送受信させるようにしてもよい。 The driver program may also transmit and receive the fifth information based on the HyperText Transfer Protocol.

1 通信システム
10 呼び出し先解決サーバ
20 コンポーネントサーバ
30 ネットワーク
40 一斉呼び出しサーバ
Reference Signs List 1 Communication system 10 Call destination resolution server 20 Component server 30 Network 40 Mass call server

Claims (16)

第1サーバから少なくとも第2サーバへのプロセス間通信を行うサーバシステムの情報処理方法であって、
前記サーバシステムは、前記プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバを含み、
前記第1サーバは、
前記第2サーバを特定するための第1情報を前記解決サーバから受信し、
前記第1情報に基づき、前記第2サーバに前記プロセス間通信の処理を要求するための第2情報を送信し、
前記第2サーバは、
前記第1サーバから前記第2情報を受信し、
前記第2情報に基づく第1処理を実行する。
An information processing method for a server system performing inter-process communication from a first server to at least a second server, comprising the steps of:
the server system includes a resolution server that executes a process related to identifying an inter-process communication destination in the inter-process communication;
The first server
receiving first information for identifying the second server from the resolution server;
transmitting second information for requesting the second server to process the inter-process communication based on the first information;
The second server,
receiving the second information from the first server;
A first process is executed based on the second information.
請求項1に記載の情報処理方法であって、
前記第2情報はハイパーテキスト・トランスファー・プロトコルに基づいて送受信される。
2. The information processing method according to claim 1,
The second information is transmitted and received based on the HyperText Transfer Protocol.
請求項2に記載の情報処理方法であって、
前記第1サーバは、前記第2サーバが前記第2情報を受信したことを判定する。
3. The information processing method according to claim 2,
The first server determines that the second server has received the second information.
請求項2に記載の情報処理方法であって、
前記第1サーバは、
前記プロセス間通信を制御するミドルウェアに組み込まれたメッセージングドライバを介して前記第1情報を受信し、
前記メッセージングドライバを介して前記第2情報を送信し、
前記第2サーバは、
前記メッセージングドライバを介して前記第2情報を受信する。
3. The information processing method according to claim 2,
The first server
receiving the first information via a messaging driver incorporated in a middleware that controls the inter-process communication;
Sending the second information via the messaging driver;
The second server,
The second information is received via the messaging driver.
請求項1に記載の情報処理方法であって、
前記第2サーバは、前記第1サーバに前記第1処理に基づく第3情報を送信し、
前記第1サーバは、前記第2サーバから前記第3情報を受信する。
2. The information processing method according to claim 1,
the second server transmits third information based on the first process to the first server;
The first server receives the third information from the second server.
請求項5に記載の情報処理方法であって、
前記第2情報と前記第3情報とはハイパーテキスト・トランスファー・プロトコルに基づいて送受信される。
6. An information processing method according to claim 5,
The second information and the third information are transmitted and received based on the HyperText Transfer Protocol.
請求項6に記載の情報処理方法であって、
前記第2サーバは、前記第1サーバが前記第3情報を受信したことを判定する。
7. An information processing method according to claim 6,
The second server determines that the first server has received the third information.
請求項6に記載の情報処理方法であって、
前記第1サーバは、
前記プロセス間通信を制御するミドルウェアに組み込まれたメッセージングドライバを介して前記第1情報を受信し、
前記メッセージングドライバを介して前記第2情報を送信し、
前記メッセージングドライバを介して前記第3情報を受信し、
前記第2サーバは、
前記メッセージングドライバを介して前記第2情報を受信し、
前記メッセージングドライバを介して前記第3情報を送信する。
7. An information processing method according to claim 6,
The first server
receiving the first information via a messaging driver incorporated in a middleware that controls the inter-process communication;
Sending the second information via the messaging driver;
receiving the third information via the messaging driver;
The second server,
receiving the second information via the messaging driver;
The third information is sent via the messaging driver.
請求項1に記載の情報処理方法であって、
前記サーバシステムは、前記第2サーバと少なくとも第3サーバとに前記プロセス間通信の処理を要求することに関する処理を実行する増幅サーバを含み、
前記第1サーバは、
前記増幅サーバを特定するための第4情報を前記解決サーバから受信し、
前記第4情報に基づき、前記増幅サーバに前記プロセス間通信の処理を要求するための第5情報を送信し、
前記増幅サーバは、
前記第1サーバから前記第5情報を受信し、
少なくとも前記第2サーバと前記第3サーバとに前記第5情報を送信し、
前記第2サーバは、
前記増幅サーバから前記第5情報を受信し、
前記第5情報に基づく処理を実行し、
前記第3サーバは、
前記増幅サーバから前記第5情報を受信し、
前記第5情報に基づく処理を実行する。
2. The information processing method according to claim 1,
the server system includes an amplification server that executes a process for requesting the second server and at least a third server to process the inter-process communication;
The first server
receiving fourth information for identifying the amplification server from the resolution server;
transmitting fifth information for requesting the amplification server to process the inter-process communication based on the fourth information;
The amplification server includes:
receiving the fifth information from the first server;
Transmitting the fifth information to at least the second server and the third server;
The second server,
receiving the fifth information from the amplification server;
Executing a process based on the fifth information;
The third server,
receiving the fifth information from the amplification server;
A process based on the fifth information is executed.
請求項9に記載の情報処理方法であって、
前記第5情報はハイパーテキスト・トランスファー・プロトコルに基づいて送受信される。
10. The information processing method according to claim 9,
The fifth information is transmitted and received based on the hypertext transfer protocol.
請求項10に記載の情報処理方法であって、
前記第1サーバは、
前記プロセス間通信を制御するミドルウェアに組み込まれたメッセージングドライバを介して前記第4情報を受信し、
前記メッセージングドライバを介して前記第5情報を送信し、
前記第2サーバと前記第3サーバとは、前記メッセージングドライバを介して前記第5情報を受信する。
11. The information processing method according to claim 10,
The first server
receiving the fourth information via a messaging driver incorporated in the middleware that controls the inter-process communication;
Sending the fifth information via the messaging driver;
The second server and the third server receive the fifth information via the messaging driver.
請求項1に記載の情報処理方法であって、
前記サーバシステムは、前記解決サーバとは異なるリージョンまたはゾーンに属する第1解決サーバをさらに含み、
前記第1サーバは、
前記第1情報に基づき前記第2サーバの識別情報を解決できない場合、前記第2サーバを特定するための第6情報を前記第1解決サーバから受信し、
前記第6情報に基づき、前記第2サーバに前記第2情報を送信する。
2. The information processing method according to claim 1,
The server system further includes a first resolution server that belongs to a different region or zone from the resolution server;
The first server
receiving sixth information for identifying the second server from the first resolution server when the identification information of the second server cannot be resolved based on the first information;
The second information is transmitted to the second server based on the sixth information.
請求項12に記載の情報処理方法であって、
前記第2情報はハイパーテキスト・トランスファー・プロトコルに基づいて送受信され、
前記第1サーバは、
前記プロセス間通信を制御するミドルウェアに組み込まれたメッセージングドライバを介して前記第1情報と前記第6情報とを受信し、
前記メッセージングドライバを介して前記第2情報を送信し、
前記第2サーバは、
前記メッセージングドライバを介して前記第2情報を受信する。
13. The information processing method according to claim 12,
the second information is transmitted and received based on a hypertext transfer protocol;
The first server
receiving the first information and the sixth information via a messaging driver incorporated in a middleware that controls the inter-process communication;
Sending the second information via the messaging driver;
The second server,
The second information is received via the messaging driver.
請求項12に記載の情報処理方法であって、
前記第1サーバと前記解決サーバとは同じ前記リージョンまたは前記ゾーンに属し、
前記第1サーバは、前記第1サーバと最も近しい前記リージョンまたは前記ゾーンに属する前記第1解決サーバから前記第6情報を受信する。
13. The information processing method according to claim 12,
The first server and the resolution server belong to the same region or zone;
The first server receives the sixth information from the first resolution server that belongs to the region or zone that is closest to the first server.
請求項1から請求項14のいずれか一項に記載の情報処理方法であって、
前記プロセス間通信はリモートプロシージャコール・プロトコルに基づく。
15. An information processing method according to any one of claims 1 to 14, comprising:
The inter-process communication is based on the remote procedure call protocol.
第1サーバから少なくとも第2サーバへのプロセス間通信を行うサーバシステムであって、
前記サーバシステムは、前記プロセス間通信におけるプロセス間通信先を特定することに関する処理を実行する解決サーバを含み、
前記第1サーバは、前記第2サーバを特定するための第1情報を前記解決サーバから受信し、前記第1情報に基づき、前記第2サーバに前記プロセス間通信の処理を要求するための第2情報を送信する通信部を備え、
前記第2サーバは、
前記第1サーバから前記第2情報を受信する通信部と、
前記第2情報に基づく第1処理を実行する制御部とを備える。
A server system that performs inter-process communication from a first server to at least a second server,
the server system includes a resolution server that executes a process related to identifying an inter-process communication destination in the inter-process communication;
the first server includes a communication unit that receives first information for identifying the second server from the resolution server, and transmits second information for requesting the second server to process the inter-process communication based on the first information;
The second server,
A communication unit that receives the second information from the first server;
and a control unit that executes a first process based on the second information.
JP2023091149A 2023-06-01 2023-06-01 Information processing method and server system Pending JP2024173034A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023091149A JP2024173034A (en) 2023-06-01 2023-06-01 Information processing method and server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023091149A JP2024173034A (en) 2023-06-01 2023-06-01 Information processing method and server system

Publications (1)

Publication Number Publication Date
JP2024173034A true JP2024173034A (en) 2024-12-12

Family

ID=93799363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023091149A Pending JP2024173034A (en) 2023-06-01 2023-06-01 Information processing method and server system

Country Status (1)

Country Link
JP (1) JP2024173034A (en)

Similar Documents

Publication Publication Date Title
US12072851B2 (en) System and method for connection concentration in a database environment
CN107438060B (en) A remote procedure calling method in a network device and network device
US10104167B2 (en) Networking functions in a micro-services architecture
US8910185B2 (en) Message queuing application access to specific API services through a generic API interface integrating a message queue
US9424144B2 (en) Virtual machine migration to minimize packet loss in virtualized network
US7739391B2 (en) Gateway for wireless mobile clients
KR102340296B1 (en) System and method for supporting common transaction identifier (xid) optimization and transaction affinity based on resource manager (rm) instance awareness in a transactional environment
CN114787781A (en) System and method for enabling a highly available managed failover service
KR102341809B1 (en) System and method for supporting a bypass-domain model and a proxy model and updating service information for across-domain messaging in a transactional middleware machine environment
US10819641B2 (en) Highly available servers
Saokar et al. {ServiceRouter}: Hyperscale and minimal cost service mesh at meta
US11872497B1 (en) Customer-generated video game player matchmaking in a multi-tenant environment
EP3912036B1 (en) Technique for connection handling in a distributed system
US10223238B1 (en) Multiple-stage crash reporting
JP2024173034A (en) Information processing method and server system
US20240007340A1 (en) Executing on-demand workloads initiated from cloud services in a software-defined data center
US11481397B1 (en) Aggregating and emitting database activity record batches
US11544114B1 (en) Methods for optimizing cloud-scale distributed asynchronous systems with idempotent workloads and devices thereof
US11431826B2 (en) Secure demand-driven file distribution

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20231027

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231108