JP6478618B2 - Transaction control system, transaction control method and program - Google Patents
Transaction control system, transaction control method and program Download PDFInfo
- Publication number
- JP6478618B2 JP6478618B2 JP2014257514A JP2014257514A JP6478618B2 JP 6478618 B2 JP6478618 B2 JP 6478618B2 JP 2014257514 A JP2014257514 A JP 2014257514A JP 2014257514 A JP2014257514 A JP 2014257514A JP 6478618 B2 JP6478618 B2 JP 6478618B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- information
- processing unit
- unit
- processing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000012545 processing Methods 0.000 claims description 163
- 238000004519 manufacturing process Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 description 38
- 238000007726 management method Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、トランザクション制御システム、トランザクション制御方法及びプログラムに関する。 The present invention relates to a transaction control system, a transaction control method, and a program.
従来、仮想化技術は、物理的には一台のコンピュータを、仮想的に複数台のコンピュータとして利用することを可能としている。つまり、仮想化技術によって、ハードウェアをソフトウェア化することが可能となり、サーバイメージをコピーして、必要なサーバ数を確保することができるようになっている。 Conventionally, the virtualization technology makes it possible to physically use one computer as a plurality of computers virtually. In other words, it becomes possible to make hardware hardware by using the virtualization technology, and it is possible to secure a necessary number of servers by copying a server image.
他方、一台の大きなサーバではなく、複数の小さなサーバに処理を分担させることにより性能を上げていく分散システムが、大量データを高速に保管・検索できる仕組みや、大規模なバッチシステムを分散して性能を上げていく仕組みなど、様々な分野で実用化されている。このような分散システムは、従来システムが一か所で行っていた機能を、複数のコンピュータで分散させながら、あたかも一台のコンピュータのように動作する。 On the other hand, a distributed system that improves performance by sharing processing with multiple small servers instead of a single large server distributes a mechanism that can store and retrieve large amounts of data at high speed and a large-scale batch system. Have been put to practical use in various fields, such as a mechanism for improving performance. Such a distributed system operates as if it were a single computer, while the functions previously performed by the system in one place are distributed among a plurality of computers.
このような仮想化技術や大規模分散技術等をベースにして、近年クラウドと総称されるサービスが、ネットワーク上で提供されている。主なクラウドサービスとして、例えば、Amazon Web Services(商標)などが知られている(非特許文献1参照)。 In recent years, services collectively referred to as cloud have been provided on the network based on such virtualization technology and large-scale distributed technology. As a main cloud service, for example, Amazon Web Services (trademark) is known (see Non-Patent Document 1).
また、大規模分散技術で求められる負荷分散について、ロードバランサを用いて、処理装置1台あたりの負荷を抑えることが知られている(非特許文献2参照)。 In addition, with respect to load distribution required for large-scale distribution technology, it is known to use a load balancer to suppress the load per processing apparatus (see Non-Patent Document 2).
ところで、クラウド環境では、クライアントのニーズに合わせて、小規模から大規模までのトランザクションに対応可能なサーバシステムを実現することが求められている。 By the way, in a cloud environment, it is required to realize a server system that can handle transactions from a small scale to a large scale according to the needs of clients.
他方、クラウド環境において、サーバを切り替えたり、追加したりする際に、クラウド環境で提供しているサービスを停止させないことが求められる。上述のロードバランサでは、サーバを装置単位で切り替えてサービスを停止させないことは可能であるが、小規模のトランザクションを処理する処理部単位での切り替えは困難である。 On the other hand, when a server is switched or added in a cloud environment, it is required not to stop a service provided in the cloud environment. In the load balancer described above, it is possible to switch the server in units of devices and not stop the service, but it is difficult to switch in units of processing units that process small transactions.
そこで、本発明は、かかる実情に鑑み、小規模から大規模までのトランザクションに対応可能であり、サービスが停止しないような運用を実現することができるトランザクション制御システム、トランザクション制御方法及びプログラムを提供することを目的とする。 Therefore, in view of such circumstances, the present invention provides a transaction control system, a transaction control method, and a program that can deal with transactions from a small scale to a large scale and can realize an operation that does not stop the service. For the purpose.
本発明の一態様によるトランザクション制御システムは、1又は複数のサーバを有し、各クライアントから要求されるトランザクションを処理するトランザクション制御システムであって、前記トランザクションを処理する1又は複数の処理部と、前記処理部を起動し、該処理部に関する第1情報を付与する管理部と、前記クライアントからトランザクションのルーティングに関する第2情報とともにトランザクションの処理要求を受け付け、前記第2情報及び前記管理部から通知された前記第1情報に基づいて決定した処理部に、前記トランザクションをルーティングするルーティング部と、を備える。 A transaction control system according to an aspect of the present invention is a transaction control system that includes one or a plurality of servers and processes a transaction requested from each client, and includes one or a plurality of processing units that process the transaction; The management unit that starts up the processing unit and gives first information about the processing unit, and receives a transaction processing request together with second information about transaction routing from the client, and is notified from the second information and the management unit And a routing unit that routes the transaction to the processing unit determined based on the first information.
また、前記第1情報は、前記処理部のバージョン情報であってもよい。 Further, the first information may be version information of the processing unit.
また、前記ルーティング部は、前記管理部から、第2情報は同じであるが前記バージョン情報が異なる処理部への切り替えと、該処理部の異なるバージョン情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、前記異なるバージョン情報の処理部に切り替えて前記トランザクションをルーティングしてもよい。 In addition, when the routing unit is notified of switching to a processing unit having the same second information but different version information from the management unit, and different version information of the processing unit, the routing unit and the client together with the transaction When the second information is acquired, the transaction may be routed by switching to the processing unit of the different version information.
また、前記第1情報は、クライアントアプリケーションの審査又は本番を示す情報であってもよい。 Further, the first information may be information indicating examination or production of the client application.
また、前記ルーティング部は、前記管理部から、前記審査を示す第1情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、該トランザクションを前記審査に対応する処理部にルーティングし、前記管理部から、前記本番を示す第1情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、該トランザクションを前記本番に対応する処理部にルーティングしてもよい。 In addition, when the management unit is notified of the first information indicating the examination, the routing unit obtains the second information together with the transaction from the client, and routes the transaction to a processing unit corresponding to the examination. When the first information indicating the production is notified from the management unit, the transaction may be routed to the processing unit corresponding to the production when the second information is acquired together with the transaction from the client.
また、前記ルーティング部は、機能ごとにキューを有し、所定の機能におけるトランザクションをクライアントから要求された場合、該所定の機能に対応するキューに関連付けられた前記処理部の群の中から、前記第1情報及び前記第2情報に基づいてルーティングする処理部を決定してもよい。 Further, the routing unit has a queue for each function, and when a transaction in a predetermined function is requested from a client, the routing unit is selected from the group of processing units associated with the queue corresponding to the predetermined function. A processing unit to be routed may be determined based on the first information and the second information.
また、本発明の一態様によるトランザクション制御方法は、1又は複数のサーバを有し、各クライアントから要求されるトランザクションを処理するトランザクション制御システムにおいて、前記トランザクション制御システムに含まれる処理装置が行うトランザクション制御方法であって、前記トランザクションを処理する1又は複数の処理部が起動された場合、該処理部に関する第1情報を取得する取得ステップと、前記クライアントからトランザクションとともに処理部へのルーティングに関する第2情報を受け付ける受付ステップと、受け付けられた前記第2情報と、取得された前記第1情報とに基づいて決定した処理部に、前記トランザクションをルーティングするルーティングステップと、を有する。 The transaction control method according to an aspect of the present invention includes a transaction control system that includes one or a plurality of servers and processes a transaction requested by each client. The transaction control is performed by a processing device included in the transaction control system. A method, wherein when one or more processing units for processing the transaction are activated, an acquisition step for acquiring first information about the processing unit, and second information about routing from the client to the processing unit together with the transaction And a routing step for routing the transaction to the processing unit determined based on the received second information and the acquired first information.
また、本発明の一態様によるプログラムは、前記トランザクション制御方法をコンピュータに実行させる。 A program according to an aspect of the present invention causes a computer to execute the transaction control method.
本発明によれば、小規模から大規模までのトランザクションに対応可能であり、サービスが停止しないような運用を実現することができる。 According to the present invention, it is possible to deal with transactions from a small scale to a large scale, and it is possible to realize an operation that does not stop the service.
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, the same code | symbol is attached | subjected to the same element and the overlapping description is abbreviate | omitted. Further, the following embodiments are exemplifications for explaining the present invention, and are not intended to limit the present invention only to the embodiments. Furthermore, the present invention can be variously modified without departing from the gist thereof.
<クラウド環境>
図1は、本発明によるトランザクション制御システム1の前提となるクラウドコンピューティング環境(クラウド環境)の概略構成を示す図である。同図に示すように、クラウドコンピューティング環境においては、ユーザ端末装置12がネットワークNを介してクラウド10に接続される。
<Cloud environment>
FIG. 1 is a diagram showing a schematic configuration of a cloud computing environment (cloud environment) which is a premise of the
クラウド10は、ソフトウェアやハードウェア、データ保管領域などのコンピューティングリソースの利用を、ネットワークNを通じてサービスとして利用者に提供するシステムの総称であり、一般的には、大規模なデータセンターや、その中で運用されている複数のサーバ装置などを含む。
The
ASPサービスやユーティリティコンピューティング、グリッドコンピューティング、SaaS、PaaS、又はBaaSなどを包含した、より包括的な概念であるともいえる。ユーザ端末装置12の側から見れば、クラウド10は、ネットワークNの向こう側にあり、ユーザ端末装置12に何らかのサービスを提供するコンピュータリソースの総称であるともいえる。本実施形態は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドを含む、あらゆるクラウド環境に適用可能である。
It can be said that this is a more comprehensive concept including ASP service, utility computing, grid computing, SaaS, PaaS, or BaaS. When viewed from the
好適には、クラウド10内のネットワーク上に分散して存在する物理的なディスクや物理的なサーバは、仮想化して論理的に管理される。さらに、仮想化して管理されるリソースのうち、稼動していないものはリソースプールに登録しておき、トランザクション制御システム1は、変動する要求を予め予測し、リソースプールから適切にリソースを割当てる。そして、トランザクション制御システム1は、タスクを割り振って、スケーラブルなサービス提供を保障する。
Preferably, physical disks and physical servers distributed on the network in the
ユーザ端末装置12は、利用者がクラウド10を利用するための端末装置であり、ネットワークNへの接続環境とユーザ端末装置12上で動くブラウザを含む。このようなユーザ端末装置12としては、パーソナルコンピュータ(PC)、携帯情報端末装置(PDA)、タブレット型端末装置、携帯電話機、スマートフォンなどを含む。
The
ネットワークNは、クラウド10とユーザ端末装置12との間でデータ等を送受信するための通信回線である。例えば、インターネット、LAN、専用線、パケット通信網、電話回線、企業内ネットワーク、その他の通信回線、それらの組み合わせ等のいずれであってもよく、有線であるか無線であるかを問わない。
The network N is a communication line for transmitting and receiving data and the like between the
図2は、本発明によるトランザクション制御システム1の前提となる仮想化技術及び分散化技術の概要を示す図である。同図に示すように、物理的なコンピュータ装置20の群は、分散化技術により、コンピュータ装置20の群で機能や処理を分散させながら、あたかも一台のコンピュータ22のように動作する。例えば、コンピュータ装置20の群は、ネットワーク221を通じて、仮想的な1台のハードウェア222の上でオペレーティング・システム(OS)223が動いているように動作する。
FIG. 2 is a diagram showing an outline of the virtualization technology and the decentralized technology which are the premise of the
また、仮想化技術により、一台のコンピュータ22のように動作するコンピュータ装置20の群を、仮想的に複数のコンピュータ(サーバを含む)24として利用することができる。つまり、ハードウェアのソフトウェア化である。この仮想化技術によって、仮想化されたサーバ24をコピーすれば、同じサーバのレプリケーション(複製)を作成できるため、サーバイメージをコピーすることによって、必要なサーバ数を確保することができるようになる。
In addition, a group of
また、サーバ数を減らす場合は、サーバイメージを削除すればよい。仮想化の一例としては、図2に示すように、KVM(Kernel−based Virtual Machine)と呼ばれる仮想化ソフト224上でOS225が動く。そのOS225の上では、Java Virtual Machine(JVM。なお、Javaは登録商標。)のような別の仮想化環境226が動き、その上でミドルウェア227があり、アプリケーション228が動く。
Moreover, what is necessary is just to delete a server image, when reducing the number of servers. As an example of virtualization, as shown in FIG. 2, an
<ハードウェア構成>
図3は、実施形態におけるコンピュータ装置20の概略ハードウェア構成の一例を示すブロック図である。図3に示すように、コンピュータ装置20は、CPU(Central Processing Unit)302と、RAM(Random Access Memory)304と、ROM(Read only Memory)306と、ドライブ装置308と、ネットワークI/F(Interface)310と、入力装置312と、を有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
<Hardware configuration>
FIG. 3 is a block diagram illustrating an example of a schematic hardware configuration of the
CPU302は、コンピュータ装置の中で、各装置の制御やデータの演算、加工を行う制御部である。また、CPU302は、RAM304又はROM306に記憶されたプログラムを実行する演算装置である。
The
RAM304は、例えば主記憶部などである。RAM304は、CPU302が実行する基本ソフトウェアであるOS(Operating System)やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
The
ROM306は、例えばアプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
The
ドライブ装置308は、記録媒体316、例えばCD−ROMやSDカードなどからプログラムやデータを読み出し、記憶装置にインストールしたりダウンロードしたりする。
The
また、記録媒体316に、所定のプログラムを格納し、この記録媒体316に格納されたプログラムはドライブ装置308を介してコンピュータ装置20にインストールされる。インストールされた所定のプログラムは、コンピュータ装置20により実行可能となる。
A predetermined program is stored in the
ネットワークI/F310は、通信機能を有する周辺機器とコンピュータ装置20とのインターフェースである。また、ネットワークI/F310は、例えば、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続される。
The network I /
入力装置312は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード等を有する。
The
以上のように、コンピュータ装置20は、コンピュータの動作や処理を制御するためのCPUなどの処理装置、データの格納や処理の作業領域として機能するメモリや記憶装置、入出力インターフェース、通信インターフェース、及びこれらを結ぶバスを含むことが好ましい。
As described above, the
また、コンピュータ装置20の群は、単一のコンピュータより構成されるものであっても、ネットワーク上に分散した複数のコンピュータより構成されるものであってもよい。各コンピュータは、処理装置がメモリまたは記憶装置などに記憶された所定のプログラムを実行することにより、各種機能実現手段として各コンピュータを機能させる。
The group of
<機能構成>
図4は、実施形態によるトランザクション制御システム1の概略機能構成の一例を示すブロック図である。図4に示すように、トランザクション制御システム1は、ルーティン部402、認証部404、処理部406A、406B、DB408、管理部410等を有する。処理部について、それぞれの区別が必要ない場合は、符号406が用いられる。
<Functional configuration>
FIG. 4 is a block diagram illustrating an example of a schematic functional configuration of the
それぞれの機能は、各コンピュータ装置20に実装されてもよいし、複数の機能が1つのコンピュータ装置20に実装されてもよい。例えば、処理部406A、406Bは、1つのコンピュータ装置20に実装されてもよい。また、各部は、例えばコンピュータ装置20のCPU302やRAM304、ROM306などにより実現されうる。
Each function may be implemented in each
トランザクション制御システム1は、ユーザ端末装置(以下、クライアントとも言う。)12A〜Cのブラウザではなく、所定のアプリケーションからの要求に基づいて動作する。そのため、トランザクション制御システム1は、クライアント12A〜Cとの間において、アプリケーションに必要な情報のやり取りを行う。クライアントについて、それぞれを区別する必要がない場合は、符号12が用いられる。
The
クライアント12は、例えばウェアラブル端末や、パソコンやタブレットやスマートフォンのアプリケーション、又は車載組み込み機器などである。これらのクライアント12は、インストールされたアプリケーションなどからトランザクションを要求する。このとき、クライアント12は、トランザクションのルーティングに関するルーティングキー(Routing Key)をトランザクションに付与して要求する。以下、ルーティングキーは、第2情報とも称す。
The
ルーティング部402は、トランザクションルーター(Transaction Router)としての機能を有する。ルーティング部402は、クライアント12からの要求を受け付ける。このとき、ルーティング部402は、第2情報をトランザクションの要求と合わせて受け付ける。
The
ルーティング部402は、所定のクライアントから第2情報を取得すると、この第2情報と、後述する管理部410により付与された第1情報とに基づいて、トランザクションが割り振られる処理部406を決定し、トランザクションをルーティングする。この制御を行うことで、トランザクション制御システム1は、稼働中の処理部に適切にルーティングすることができ、無停止状態のサービスを提供することが可能になる。
When the
ルーティング部402は、トランザクションの結果を、このトランザクションを要求した所定のクライアントに通知する。
The
ルーティング部402は、機能ごとに対応するキュー(Queue)を有する。このキューには、そのキューに対応する機能を実行する処理部406の群が関連付けられる。この場合、ルーティング部402は、機能を示す第2情報とトランザクションとをクライアント12から取得し、機能に対応するキューにトランザクションを入れる。キューから出されるトランザクションは、そのキューに対応する処理部406にルーティングされる。このときの第2情報は、トランザクションの機能を示す情報であってもよい。
The
ここで、ルーティング部402の割り振り先について具体的に説明する。例えば、ルーティング部402は、単純なクラウド系トランザクションを、直接DB408に割り振る。これにより、セーブデータの保存、検索などの単純なデータアクセスは、ノンプログラミングで実現することができるだけではなく、レイテンシを最小化させることができる。
Here, the allocation destination of the
また、ルーティング部402は、サーバ側ロジックと連携するため、処理部406にトランザクションを割り振る。このとき、クライアント12からは、割り振って欲しい処理部を識別するために、第2情報が指定される。
Further, the
ルーティング部402は、この第2情報を基に、トランザクションを適切な処理部406に割り振る。アクセスの集中が予測される機能の場合には、事前に同じ第2情報で動作する処理部406が複数用意されることで、スループットを上げることができる。
The
さらに、ルーティング部402は、クライアント間通信をサポートする。ルーティング部402は、クライアント間通信に対して、1:Nの同報通信をサポートし、チャットやMMO(Massively Multiplayer Online)などの同期型アプリケーションをサポートする。
Furthermore, the
なお、ルーティング部402は、他のルーティング部と連携することも可能である。これにより、ルーティング部同士を複数組み合わせることで、遠隔地にあるルーティング部同士の連携や、特別な機能を持つ処理部の群やダイレクトDB機能との連携を行うことができる。
Note that the
認証部404は、ユーザ認証を行い、認証については、例えばOAuth2により行われる。また、認証部404は、ソーシャルネットワークなどとの連携を行い、ユーザ登録をすることなく、内部的にPlayerID、端末IDを自動発行するとともにPlayerIDと端末IDとの紐付登録を行うことで、異なるデバイス間でセーブデータの共有を行うことができる。また、認証部404は、なりすまし防止として、例えばX.509証明書を使い、改ざん防止を行う。
The
処理部406は、ワーカー(Worker)とも呼ばれ、クライアント12が要求したトランザクションを処理する。処理部406には、ルーティングに関する第2情報が付与されている。処理部406は、トランザクション制御システム1に登録されれば実現される。この処理部406の作成は、開発者のローカル端末で行うことでき、トランザクション制御システム1に登録することができる。
The processing unit 406 is also called a worker, and processes a transaction requested by the
処理部406が登録された後、処理部406の数と稼働させるインスタンスが指定されると、トランザクション制御システム1と処理部406とが接続され、クライアント12からのトランザクションが流れる。処理部406には、それぞれ第2情報が与えられており、同じ第2情報を持つ処理部406に対して、ルーティング部402は、順番にトランザクションを割り振る。よって、同じソースコードの処理部406だけではなく、異なるソースコードの処理部406であっても、第2情報が同じであれば、順番にトランザクションが割り振られる。
After the processing units 406 are registered, when the number of processing units 406 and the instance to be operated are specified, the
なお、処理部406は、SDK(Software Development Kit)が提供され、SDKには処理部406を実行するためのライブラリやトランザクション制御システム1にデプロイするためのツールが含まれる。処理部406を実行するために必要なモジュール類は、処理部406の実行環境であるコンテナにインストールしておくことで、デプロイ後すぐに処理部406が実行可能となる。
The processing unit 406 is provided with an SDK (Software Development Kit), and the SDK includes a library for executing the processing unit 406 and a tool for deployment in the
処理部406のバージョン管理について、トランザクション制御システムにデプロイされた処理部406は、コンテナは、内部でバージョン管理される。後述するように、このバージョン切り替えは、無停止で実行することができる。 Regarding the version management of the processing unit 406, the container of the processing unit 406 deployed in the transaction control system is subjected to version management. As will be described later, this version switching can be executed without stopping.
処理部406は、それぞれ分離されたコンテナで動作するため、同じインスタンスを共有しつつ相互に隔離された環境で動作する。これにより、処理部406は、必要最低限のインスタンスで動作させることが可能になる。 Since the processing units 406 operate in separate containers, they operate in an environment isolated from each other while sharing the same instance. As a result, the processing unit 406 can be operated with the minimum necessary instances.
DB408は、サービスに関するデータを保持するデータベースである。DB408は、このDBに対するアクセス制御をユーザごとに指定することができる。DB408は、例えばCloud Datastore、Cloud SQL(登録商標)、BigQuery(登録商標)、MongoDB(登録商標)、redis、MySQL(登録商標)などである。
The
管理部410は、処理部406の起動、停止を制御し、処理部406に関する第1情報を付与する。例えば、第1情報とは、バージョンを示すバージョン情報や、クライアントアプリケーションの審査又は本番を示す情報などである。審査とは、例えば、アプリケーション提供側が行う審査であり、市場に提供するに値するか否かの審査である。本番とは、例えば市場にアプリケーションを提供した後の処理である。
The
管理部410は、処理部406のバージョン切り替えが行われる場合、旧バージョンの処理部406に停止指示を出し、これらの処理部406が全て停止したかどうかを確認する。
When version switching of the processing unit 406 is performed, the
管理部410は、トランザクションの割り振り停止を予測した後、旧バージョンの処理部406に関連づけられているキューの状況とルーティングキーとを使って、停止を指示するトランザクションを、キュー経由で旧バージョンの処理部406に投入する。これにより、旧バージョンの処理部406が停止する。
After predicting the stop of transaction allocation, the
次に、エンドノード間の同報通信について説明する。トランザクション制御システム1におけるエンドノードとは、処理部406とクライアント12である。このエンドノード間でPub/Sub型の効率のよい同報通信が行われる。
Next, broadcast communication between end nodes will be described. The end nodes in the
同報通信は、ルーティングキーをベースにグループ化される。そのため、トランザクション制御システム1内で接続されたエンドノード同士で、仮想的に複数のチャネルを設定して通信することができる。
Broadcast communications are grouped based on routing keys. For this reason, end nodes connected within the
ルーティング部402は、管理部410から、第2情報は同じであるがバージョン情報が異なる処理部406への切り替えと、処理部406の異なるバージョン情報が通知された場合、クライアント12からトランザクションとともに第2情報を取得すると、トランザクションを、異なるバージョン情報の処理部406に切り替えてルーティングする。
When the
これにより、バージョン切り替えが行われる際に、無停止状態でのバージョン切り替えが可能となる。 As a result, when version switching is performed, version switching can be performed in a non-stop state.
また、ルーティング部402は、管理部410から、審査を示す第1情報が通知された場合、クライアント12からトランザクションとともに第2情報を取得すると、このトランザクションを、審査に対応する処理部406にルーティングする。
In addition, when the first information indicating examination is notified from the
また、ルーティング部402は、管理部410から、本番を示す第1情報が通知された場合、クライアント12からトランザクションとともに第2情報を取得すると、トランザクションを、本番に対応する処理部406にルーティングする。
In addition, when the
これにより、アプリケーションの審査用のトランザクションを処理する処理部と、実際に運用が開始された後の本番で処理される処理部とを適切に切り分けることができる。よって、アプリケーションが市場に提供された後に審査が必要になった場合でも、本番の処理は実行しつつも、審査の処理を実行することが可能となるので、無停止状態を維持することができる。 As a result, it is possible to appropriately separate a processing unit that processes an application review transaction from a processing unit that is actually processed after the operation is actually started. Therefore, even if the application needs to be reviewed after being provided to the market, it is possible to execute the review process while the actual process is being executed, so that the non-stop state can be maintained. .
さらに、ルーティング部402は、所定の機能におけるトランザクションをクライアント12から要求された場合、この所定の機能に対応するキューに関連付けられた処理部406の群の中から、第1情報及び第2情報に基づいてルーティングする処理部406を決定する。
Further, when the
これにより、機能別の処理部406の群が適切なキューに接続されているので、同じキューに接続された処理部406は、必ずしも同じプログラムである必要がなくなる。これを利用すると、トランザクション制御システム1は、ランダムに動作するアルゴリズムを変える仕組みを提供することも可能になる。
Thereby, since the group of processing units 406 by function is connected to an appropriate queue, the processing units 406 connected to the same queue do not necessarily need to be the same program. By using this, the
<動作>
次に、実施形態におけるトランザクション制御システム1の動作について説明する。
<Operation>
Next, the operation of the
≪トランザクションの割り振り≫
図5は、実施形態におけるトランザクションの割り振り処理の一例を示すシーケンス図である。図5に示すステップS102で、クライアント12は、機能Aのトランザクションをルーティング部402に要求する。ルーティング部402では、機能ごとに個別のキューを有する。
≪Transaction allocation≫
FIG. 5 is a sequence diagram illustrating an example of transaction allocation processing in the embodiment. In step S102 illustrated in FIG. 5, the
ステップS104で、ルーティング部402は、機能Aのキューにトランザクションを入れ、機能Aのキューに関連付けられた機能Aを処理する処理部406Aにトランザクションを割り振り、ルーティングする。
In step S104, the
ステップS106で、処理部406Aは、トランザクションの処理結果をルーティング部402に返す。
In step S106, the
ステップS108で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S <b> 108, the
ステップS110で、クライアント12は、機能Bのトランザクションをルーティング部402に要求する。
In step S <b> 110, the
ステップS112で、ルーティング部402は、機能Bのキューにトランザクションを入れ、機能Bのキューに関連付けられた機能Bを処理する処理部406Bにトランザクションを割り振り、ルーティングする。
In step S112, the
ステップS114で、処理部406Bは、トランザクションの処理結果をルーティング部402に返す。
In step S <b> 114, the processing unit 406 </ b> B returns the transaction processing result to the
ステップS116で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S <b> 116, the
ステップS118で、クライアント12は、機能Bのトランザクションをルーティング部402に要求する。
In step S118, the
ステップS120で、ルーティング部402は、機能Bのキューにトランザクションを入れ、機能Bのキューに関連付けられた機能Bを処理する処理部406B’にトランザクションを割り振り、ルーティングする。このとき、機能Bのキューには複数の処理部406が関連づけられており、ステップS120では、ステップS112とは異なる処理部に割り振られる。異なる処理部に割り振る理由は、負荷分散等を考慮し、順番に各処理部に処理させるためである。
In step S120, the
ステップS114で、処理部406B’は、トランザクションの処理結果をルーティング部402に返す。
In step S <b> 114, the processing unit 406 </ b> B ′ returns the transaction processing result to the
ステップS116で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S <b> 116, the
以上より、ルーティング部402は、最終的な割り振りは、第2情報を使って処理部406の種別をさらに細かく行うことができる。また、ルーティング部402は、処理部406に関する第1情報を用いることで、ユースケースに沿ったクライアントのOS毎やさらに細かいルーティングを行うことができる。
From the above, the
≪バージョン切り替え≫
図6は、実施形態におけるバージョン切り替え処理の一例を示すシーケンス図である。図6に示すステップS202で、クライアント12は、第2情報とともにトランザクションをルーティング部402に要求する。
≪Switch version≫
FIG. 6 is a sequence diagram illustrating an example of the version switching process in the embodiment. In step S202 illustrated in FIG. 6, the
ステップS204で、ルーティング部402は、管理部410から予め通知されている第1情報をもとに、処理部406Aにトランザクションを割り振る。ルーティング部402は、第1情報を第2情報に付与してルーティングしてもよい。ルーティング部402は、処理部406Aに対応する第1情報が管理部410から通知されている。
In step S204, the
ステップS206で、処理部406Aは、トランザクションの処理結果をルーティング部402に返す。
In step S206, the
ステップS208で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S <b> 208, the
ステップS210で、管理部410は、管理者等から指定された個数分新たな処理部406Bを起動させる。このとき、管理部410は、新たな処理部406Bにバージョン情報(v2:第1情報)を付与する。
In step S210, the
ステップS212で、処理部406Bは、起動が完了した旨の通知を管理部410に返す。
In step S212, the
ステップS214で、管理部410は、処理部の切り替えと、新たな処理部406Bに付与されたバージョン情報を、ルーティング部402に通知する。このとき、管理部410は、処理部406Bが使うべきキューを通知する。
In step S214, the
ステップS216で、ルーティング部402は、バージョン切り替えが完了すると、切替完了を管理部410に通知する。同時に、ルーティング部402は、旧バージョンの処理部406Aにトランザクションの割り振りを行わず、新しいバージョンに割当を行う。
In step S216, when the version switching is completed, the
ステップS218で、クライアント12は、従前の第2情報とともにトランザクションをルーティング部402に要求する。
In step S218, the
ステップS220で、ルーティング部402は、従前の第2情報を有するトランザクションについて、(管理部410から通知されたキューにトランザクションを入れ、このキューに関連付けられた処理部406Bにトランザクションを割り振る。このとき、ルーティング部402は、第1情報を第2情報に付与してルーティングしてもよい。
In step S220, for the transaction having the previous second information, the
ステップS222で、処理部406Bは、トランザクションの処理結果をルーティング部402に返す。
In step S222, the
ステップS224で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S224, the
ステップS228で、管理部410は停止指示を処理部406Aに通知する。停止指示を受けた処理部406Aは処理中のトランザクションがあれば処理を終えた後に停止する。
In step S228,
以上の処理により、クライアント12のOSごとや、クライアントプログラムのバージョンごとに割り振る処理部406を変えたり、処理部406のバージョンアップ時にクライアントプログラムを変更することなく、無停止にサーバーロジックの切り替えを行ったりすることができる。
Through the above processing, the server logic is switched without stopping without changing the processing unit 406 allocated for each OS of the
≪審査時の切り替え≫
図7は、実施形態における審査時の切り替え処理の一例を示すシーケンス図である。図7に示すステップS302で、クライアントアプリケーションを審査に出す場合、管理部410は、審査用の処理部406Aのキューと、第2情報と、トランザクションの関連付けに関する情報とを含む第1情報を、ルーティング部402に指示する。
≪Switch at the time of examination≫
FIG. 7 is a sequence diagram illustrating an example of a switching process at the time of examination in the embodiment. In step S302 shown in FIG. 7, when the client application is submitted for examination, the
ステップS304で、ルーティング部402は、審査対応が可能であることを管理部410に通知する。
In step S304, the
ステップS306で、クライアント12は、第2情報とともにトランザクションをルーティング部402に要求する。
In step S306, the
ステップS308で、ルーティング部402は、審査用を示す第1情報と、第2情報と基づきキューにトランザクションを入れ、このキューに関連付けられた処理部406Aにトランザクションを割り振る。
In step S308, the
ステップS310で、処理部406Aは、トランザクションの処理結果をルーティング部402に返す。
In step S <b> 310, the processing unit 406 </ b> A returns the transaction processing result to the
ステップS312で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S312, the
ステップS314で、クライアントアプリケーションを本番の市場に出す場合、管理部410は、本番用の処理部406Bのキューと、トランザクションの関連付けに関する情報とを含む第1情報を、ルーティング部402に指示する。本番のキューを示す情報を第1情報とすれば、ルーティング部402は、第1情報から本番用のキューを把握することができるので、審査用から本番用に適切に切り替えることができる。
When the client application is put on the production market in step S314, the
ステップS316で、ルーティング部402は、本番対応が可能であることを管理部410に通知する。
In step S316, the
ステップS318で、クライアント12は、第2情報とともにトランザクションをルーティング部402に要求する。
In step S318, the
ステップS320で、ルーティング部402は、本番用を示す第1情報と、第2情報と基づくキューにトランザクションを入れ、このキューに関連付けられた処理部406Bにトランザクションを割り振る。
In step S320, the
ステップS322で、処理部406Bは、トランザクションの処理結果をルーティング部402に返す。
In step S322, the
ステップS324で、ルーティング部402は、トランザクションの処理結果をクライアント12に返す。
In step S324, the
以上の処理により、トランザクション制御システム1は、クライアントアプリケーションの審査時には審査用処理部に割り振りを行い、本番切り替え時には切替を指示することで、本番用に適切に切り替えることができる。
Through the above processing, the
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。 The present invention is not limited to the above-described embodiment, and can be implemented in various other forms without departing from the gist of the present invention. For this reason, the said embodiment is only a mere illustration in all points, and is not interpreted limitedly. For example, the above-described processing steps can be executed in any order or in parallel as long as there is no contradiction in the processing contents.
1 トランザクション制御システム
10 クラウド
12 ユーザ端末装置(クライアント)
20 コンピュータ装置
302 CPU
304 RAM
306 ROM
402 ルーティング部
404 認証部
406 処理部
408 DB
410 管理部
1
20
304 RAM
306 ROM
402
410 Management Department
Claims (7)
前記トランザクションを処理する1又は複数の処理部と、
前記処理部を起動し、該処理部に関する第1情報を付与する管理部と、
前記クライアントからトランザクションのルーティングに関する第2情報とともにトランザクションの処理要求を受け付け、前記第2情報及び前記管理部から通知された前記第1情報に基づいて決定した処理部に、前記トランザクションをルーティングするルーティング部と、
を備え、
前記ルーティング部は、
機能ごとにキューを有し、所定の機能を示す第2情報とともにトランザクションをクライアントから受け付けた場合、前記第1情報及び前記第2情報に基づいて、該第2情報が示す所定の機能に対応するキューに関連付けられた前記処理部の群の中から、ルーティングする処理部を決定する、トランザクション制御システム。 A transaction control system having one or more servers and processing a transaction requested by each client,
One or more processing units for processing the transaction;
A management unit that activates the processing unit and assigns first information about the processing unit;
A routing unit that accepts a transaction processing request together with second information related to transaction routing from the client, and routes the transaction to the processing unit determined based on the second information and the first information notified from the management unit When,
Equipped with a,
The routing unit
Each function has a queue, and when a transaction is received from the client together with the second information indicating the predetermined function, it corresponds to the predetermined function indicated by the second information based on the first information and the second information. A transaction control system for determining a processing unit to be routed from the group of processing units associated with a queue .
前記管理部から、前記第2情報は同じであるが前記バージョン情報が異なる処理部への切り替えと、該処理部の異なるバージョン情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、前記異なるバージョン情報の処理部に切り替えて前記トランザクションをルーティングする、請求項2記載のトランザクション制御システム。 The routing unit
When the management unit is notified of switching to a processing unit with the same second information but different version information, and when the different version information of the processing unit is notified, the client acquires the second information together with the transaction. The transaction control system according to claim 2, wherein the transaction is routed by switching to the processing unit of the different version information.
前記管理部から、前記審査を示す第1情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、該トランザクションを前記審査に対応する処理部にルーティングし、
前記管理部から、前記本番を示す第1情報が通知された場合、前記クライアントからトランザクションとともに前記第2情報を取得すると、該トランザクションを前記本番に対応する処理部にルーティングする、請求項4記載のトランザクション制御システム。 The routing unit
When the management unit is notified of the first information indicating the examination, when the second information is acquired from the client together with the transaction, the transaction is routed to a processing unit corresponding to the examination,
5. The first information indicating the production is notified from the management unit, and when the second information is acquired together with a transaction from the client, the transaction is routed to a processing unit corresponding to the production. Transaction control system.
前記トランザクションを処理する1又は複数の処理部が起動された場合、該処理部に関する第1情報を取得する取得ステップと、
前記クライアントからトランザクションとともに処理部へのルーティングに関する第2情報を受け付ける受付ステップと、
受け付けられた前記第2情報と、取得された前記第1情報とに基づいて決定した処理部に、前記トランザクションをルーティングするルーティングステップと、
を有し、
前記ルーティングステップは、
機能ごとにキューを有し、所定の機能を示す第2情報とともにトランザクションをクライアントから受け付けた場合、前記第1情報及び前記第2情報に基づいて、該第2情報が示す所定の機能に対応するキューに関連付けられた前記処理部の群の中から、ルーティングする処理部を決定する、トランザクション制御方法。 In a transaction control system having one or a plurality of servers and processing a transaction requested from each client, a transaction control method performed by a processing device included in the transaction control system,
An acquisition step of acquiring first information regarding the processing unit when one or more processing units for processing the transaction are activated;
A receiving step for receiving second information related to routing from the client to the processing unit together with the transaction;
A routing step for routing the transaction to a processing unit determined based on the received second information and the acquired first information;
I have a,
The routing step includes:
Each function has a queue, and when a transaction is received from the client together with the second information indicating the predetermined function, it corresponds to the predetermined function indicated by the second information based on the first information and the second information. A transaction control method for determining a processing unit to be routed from the group of processing units associated with a queue .
A program for causing a processing device to execute the transaction control method according to claim 6 .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014257514A JP6478618B2 (en) | 2014-12-19 | 2014-12-19 | Transaction control system, transaction control method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014257514A JP6478618B2 (en) | 2014-12-19 | 2014-12-19 | Transaction control system, transaction control method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016118887A JP2016118887A (en) | 2016-06-30 |
JP6478618B2 true JP6478618B2 (en) | 2019-03-06 |
Family
ID=56244323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014257514A Active JP6478618B2 (en) | 2014-12-19 | 2014-12-19 | Transaction control system, transaction control method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6478618B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000315192A (en) * | 1999-04-30 | 2000-11-14 | Ntt Data Corp | Client-server system, method for managing server application and recording medium |
JP4461777B2 (en) * | 2003-11-14 | 2010-05-12 | 日本電気株式会社 | Transaction processing system and method, and program |
JP4957765B2 (en) * | 2009-08-24 | 2012-06-20 | 日本電気株式会社 | Software program execution device, software program execution method, and program |
-
2014
- 2014-12-19 JP JP2014257514A patent/JP6478618B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016118887A (en) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635664B2 (en) | Map-reduce job virtualization | |
CN108737270B (en) | Resource management method and device for server cluster | |
US8863138B2 (en) | Application service performance in cloud computing | |
US20190318240A1 (en) | Training machine learning models in distributed computing systems | |
US10061619B2 (en) | Thread pool management | |
US20190318123A1 (en) | Data processing in a hybrid cluster environment | |
KR102103596B1 (en) | A computer cluster arragement for processing a computation task and method for operation thereof | |
CN108667859A (en) | A kind of method and device for realizing scheduling of resource | |
CN111212116A (en) | High-performance computing cluster creating method and system based on container cloud | |
KR20160087706A (en) | Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform | |
JP2005056391A (en) | Method and system for balancing workload of computing environment | |
CN104428752A (en) | Offloading virtual machine flows to physical queues | |
US11169846B2 (en) | System and method for managing tasks and task workload items between address spaces and logical partitions | |
US20210311798A1 (en) | Dynamic microservices allocation mechanism | |
KR20200080458A (en) | Cloud multi-cluster apparatus | |
KR20210105378A (en) | How the programming platform's user code works and the platform, node, device, medium | |
CN112346871A (en) | Request processing method and micro-service system | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
Zhang et al. | A communication-aware container re-distribution approach for high performance VNFs | |
CN115280288A (en) | Server system and method of managing server system | |
CN114911385A (en) | Secure sharing of multiple applications during a remote session | |
Subalakshmi et al. | Enhanced hybrid approach for load balancing algorithms in cloud computing | |
Takefusa et al. | Virtual cloud service system for building effective inter-cloud applications | |
Luckow et al. | Abstractions for loosely-coupled and ensemble-based simulations on Azure | |
Chang et al. | A multiple parallel download scheme with server throughput and client bandwidth considerations for data grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181019 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6478618 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |