JP2017004050A - キュー管理方法、キュー管理プログラム及びキュー管理装置 - Google Patents
キュー管理方法、キュー管理プログラム及びキュー管理装置 Download PDFInfo
- Publication number
- JP2017004050A JP2017004050A JP2015114077A JP2015114077A JP2017004050A JP 2017004050 A JP2017004050 A JP 2017004050A JP 2015114077 A JP2015114077 A JP 2015114077A JP 2015114077 A JP2015114077 A JP 2015114077A JP 2017004050 A JP2017004050 A JP 2017004050A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- message
- specific
- virtual machine
- identification information
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】メッセージキューを受け付けつつキューの管理の移行を行うキュー管理方法、キュー管理プログラム及びキュー管理装置を提供する。
【解決手段】第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、第2の仮想マシンに第1のキューと第2のキューとを生成させ、第1の仮想マシンの特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から第1のキューにキューイングさせ、特定のキュー識別情報を含む受信メッセージを、第2のキューにキューイングさせ、特定のメッセージの参照または操作の指示に応じて、第1のキュー、特定のキュー、第2のキューの順に特定のメッセージの参照または操作を行う。
【選択図】図7
【解決手段】第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、第2の仮想マシンに第1のキューと第2のキューとを生成させ、第1の仮想マシンの特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から第1のキューにキューイングさせ、特定のキュー識別情報を含む受信メッセージを、第2のキューにキューイングさせ、特定のメッセージの参照または操作の指示に応じて、第1のキュー、特定のキュー、第2のキューの順に特定のメッセージの参照または操作を行う。
【選択図】図7
Description
本発明は、キュー管理方法、キュー管理プログラム及びキュー管理装置に関する。
利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、利用者に対して各種サービスの提供を行うために、例えば、用途に応じた業務システムを構築して稼働させる。
上記のような業務システムには、例えば、複数のアプリケーション間で送受信される処理の実行要求(メッセージ)を管理するメッセージキューシステムが含まれる。具体的に、メッセージキューシステムは、例えば、あるアプリケーションが他のアプリケーションに対して送信したメッセージの一時的な格納を行う。これにより、メッセージキューシステムと連携する各アプリケーションは、メッセージの送受信を行う際に、アプリケーション間で同期する必要がなくなる。そのため、メッセージキューシステムは、メッセージの送受信を行う各アプリケーションの処理効率を高めることが可能になる(例えば、特許文献1、2参照)。
上記のようなメッセージキューシステムは、例えば、物理マシンに生成された仮想マシン(VM:Virtual Machine)上に構築される場合がある。この場合、事業者は、例えば、メッセージの処理量や管理する必要があるキュー(メッセージを格納する領域)の数等によって、メッセージキューシステムが動作する仮想マシンの数を増減させる。これにより、事業者は、仮想マシンを生成するために必要な物理マシンのリソースを効率的に使用することが可能になる。
ここで、例えば、仮想マシンの削除が行われる場合、事業者は、削除される仮想マシンに生成されたキューを、他の仮想マシンに移行する必要がある。また、例えば、新たな仮想マシンが作成された場合、事業者は、既存の仮想マシンの処理負担を軽減させるために、既存の仮想マシンに生成されたキューを、他の仮想マシンに移行する場合がある。
このような場合、事業者は、メッセージキューシステムによって利用者に提供しているサービスを停止した上で、メッセージの移行を行う。これにより、事業者は、キューの管理の移行に伴って、移行対象のキューに格納されているメッセージの処理順序が入れ替わる等の影響を防止することが可能になる。
しかしながら、利用者によるメッセージキューシステムの利用形態によっては、メッセージキューサービスの停止を行うことができない場合がある。そのため、事業者は、この場合、メッセージキューシステムが構築された仮想マシンの数の増減を行うことができない。
そこで、一つの側面では、メッセージキューを受け付けつつキューの管理の移行を行うことを目的とする。
実施の形態の一つの態様によれば、受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う。
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う。
一つの側面によれば、メッセージキューを受け付けつつキューの管理の移行を行う。
[メッセージキューシステムの構成]
図1は、メッセージキューシステム10(以下、情報処理システム10とも呼ぶ)の全体構成を示す図である。図1に示すメッセージキューシステム10は、情報処理装置1(以下、コンピュータ1とも呼ぶ)と、仮想マシン3が生成される物理マシン2と、利用者端末11と、仮想マシン3の管理を行う管理装置12とを有する。仮想マシン3には、インターネットやイントラネット等のネットワークNWを介して、利用者端末11a、利用者端末11b及び利用者端末11c(以下、これらをまとめて利用者端末11とも呼ぶ)からアクセス可能である。
図1は、メッセージキューシステム10(以下、情報処理システム10とも呼ぶ)の全体構成を示す図である。図1に示すメッセージキューシステム10は、情報処理装置1(以下、コンピュータ1とも呼ぶ)と、仮想マシン3が生成される物理マシン2と、利用者端末11と、仮想マシン3の管理を行う管理装置12とを有する。仮想マシン3には、インターネットやイントラネット等のネットワークNWを介して、利用者端末11a、利用者端末11b及び利用者端末11c(以下、これらをまとめて利用者端末11とも呼ぶ)からアクセス可能である。
物理マシン2は、図1の例においては複数の物理マシンから構成されており、各物理マシンは、CPU(Central Processing Unit)やメモリ等の物理リソースを有する。そして、各物理マシン2の物理リソースは、複数の仮想マシン3に割り当てられる。
管理装置12は、仮想マシン3とアクセス可能であり、各仮想マシン3の管理を行う。具体的に、管理装置12は、仮想マシン3の処理負荷を監視する。そして、管理装置12は、例えば、処理負荷が所定の上限閾値を上回る仮想マシン3が存在する場合、新たな仮想マシン3を物理マシン2に生成する。一方、管理装置12は、例えば、処理負荷が所定の下限閾値を下回る仮想マシン3が存在する場合、物理マシン2に生成されている仮想マシン3の一部を削除する。なお、管理装置12は、物理マシン2と異なる物理マシンに構築されるものであってもよく、物理マシン2に生成された仮想マシン3に構築されるものであってもよい。
仮想マシン3は、例えば、そのインフラをネットワーク経由で利用者に提供するためのもの(以下、クラウドサービスとも呼ぶ)である。クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン3やネットワーク等のインフラストラクチャそのものをネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末11からクラウドサービスポータルサイトにアクセスして、仮想マシンに必要な仕様、例えばCPUのクロック周波数、メモリの容量(GB)、ハードディスクの容量(MB/sec、IOPS)、及びネットワークの通信帯域幅(Gbps)を選択し、それらについてクラウド利用契約を締結する。また、利用者端末11は、例えば、仮想マシン3の稼働状態を監視や、仮想マシン3に対する操作等を可能にする。
そして、仮想マシン3には、例えば、利用者に対してサービスを提供するための業務システム(以下、単に業務システムとも呼ぶ)が構築される。これにより、事業者は、利用者に対して各種サービスの提供を行うことが可能になる。
仮想化ソフトウエア4は、管理装置12からの指示に応じて、物理マシン2の物理リソースを割り当てることにより、仮想マシン3を動作させる基盤ソフトウエアである。仮想化ソフトウエア4は、例えば、物理マシン2で動作する。
情報処理装置1は、仮想マシン3に生成されたキュー(図示しない)を管理する。そして、情報処理装置1は、利用者端末11から受信したAPI(Application Programming Interface)に基づき、キューに対して操作を行う。具体的に、情報処理装置1は、キューの作成及び削除や、キューに対する新たなメッセージの追加等を行う。以下、メッセージキューシステムの動作について説明を行う。
[メッセージキューシステムの動作]
図2及び図3は、メッセージキューシステム10の動作について説明する図である。図2及び図3に示すメッセージキューシステム10において、物理マシン2には、仮想マシン3Aと仮想マシン3Bとが生成されている。そして、仮想マシン3Aには、キュー31Aが設けられ、仮想マシン3Bには、キュー31Bが設けられている。以下、キュー31Aは、利用者端末11c(例えば、利用者端末11cで動作するアプリケーション)が利用者端末11a(例えば、利用者端末11aで動作するアプリケーション)に処理の実行を要求するためのメッセージを格納するキューであるものとして説明を行う。
図2及び図3は、メッセージキューシステム10の動作について説明する図である。図2及び図3に示すメッセージキューシステム10において、物理マシン2には、仮想マシン3Aと仮想マシン3Bとが生成されている。そして、仮想マシン3Aには、キュー31Aが設けられ、仮想マシン3Bには、キュー31Bが設けられている。以下、キュー31Aは、利用者端末11c(例えば、利用者端末11cで動作するアプリケーション)が利用者端末11a(例えば、利用者端末11aで動作するアプリケーション)に処理の実行を要求するためのメッセージを格納するキューであるものとして説明を行う。
具体的に、図2に示すように、情報処理装置1は、利用者端末11cから、利用者端末11aに処理の実行を要求するためのAPIを受信した場合、受信したAPIに含まれるメッセージをキュー31Aの最後尾に格納する。そして、情報処理装置1は、図3に示すように、利用者端末11aから、キュー31Aに格納されたメッセージを取得するためのAPIを受信した場合、キュー31Aの先頭に格納されたメッセージを取得して利用者端末11aに送信(返信)する。そして、利用者端末11aは、受信したメッセージに対応する処理の実行を行う。
すなわち、図2及び図3に示すメッセージキューシステム10では、キューに先に格納されたメッセージから順に処理を行う。これにより、各利用者端末11は、例えば、他の利用者端末11と同期することなくメッセージの送受信を行うことが可能になる。
次に、キューの管理の移行を行う場合の動作について説明を行う。図4は、キューの管理の移行を行う場合の動作を説明する図である。
図4に示す例において、情報処理装置1は、仮想マシン3Aのキュー31Aに含まれるメッセージを、仮想マシン3Bのキュー31Bに移行する。これにより、情報処理装置1は、例えば、キュー31Aにメッセージ(処理が行われていないメッセージ)が残っている場合であっても、仮想マシン3Aの削除を行うことが可能になる。
上記のような場合において、情報処理装置1は、例えば、利用者に対するサービスの提供を停止した上で、キューに含まれるメッセージの移行を行う。これにより、情報処理装置1は、移行対象のキューに含まれるメッセージの処理順序等に影響を与えることを防止することが可能になる。
しかしながら、利用者によるメッセージキューシステム10の利用形態によっては、メッセージキューサービスを停止させることができない場合がある。そのため、事業者は、メッセージキューシステム10が構築された仮想マシン3の数の増減を行うことができない場合がある。
そこで、本実施の形態では、情報処理装置1は、特定のキューの管理を第1仮想マシンから第2仮想マシンに移行する際に、第1のキューと第2のキューとを生成する。その後、情報処理装置1は、特定のキューに含まれるメッセージを先頭から順に第1のキューに移行する。また、情報処理装置1は、特定のキューに対するメッセージを第2のキューに格納する。そして、メッセージの参照または操作の指示に応じて、情報処理装置1は、第1のキュー、特定のキュー、第2のキューの順にメッセージを参照または操作する。
すなわち、情報処理装置1は、特定のキューに含まれるメッセージの移行中に発生したメッセージを、メッセージの移行が行われている特定のキュー及び第1のキューとは異なるキューである第2のキューに格納する。そのため、情報処理装置1は、キューの管理の移行を開始する前に特定のキューに格納されたメッセージと、キューの管理の移行中の発生したメッセージとを分けた形で管理することが可能になる。
これにより、情報処理装置1は、メッセージの処理順序等に影響が及ぶことを防止するためのサービスの停止を行うことなく、特定のキューの管理の移行を行うことが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
次に、情報処理装置1のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体(ストレージ)104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、記憶媒体104内のプログラム格納領域(図示しない)に、仮想マシン3に生成されたキューを管理する処理(以下、キュー管理処理とも呼ぶ)を行うためのプログラム110を記憶する。
CPU101は、図5に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働してキュー管理処理を行う。
記憶媒体104は、例えば、キュー管理処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。
外部インターフェース103は、物理マシン2(物理マシン2に生成された仮想マシン3)と通信を行う。また、外部インターフェース103は、ネットワークNWを介して、利用者端末11と通信を行う。
[情報処理装置のソフトウエア構成]
次に、情報処理装置1のソフトウエア構成について説明する。図6は、図5の情報処理装置1の機能ブロック図である。CPU101は、プログラム110と協働することにより、API受信部111と、キュー操作部112と、操作結果送信部113と、移行時キュー操作部114(以下、単にキュー操作部114またはキュー生成部114とも呼ぶ)として動作する。また、CPU101は、プログラム110と協働することにより、キュー移行部115と、状態情報管理部116と、キュー移行停止部117と、キュー識別情報管理部118として動作する。さらに、情報格納領域130には、キュー識別情報131(以下、単に識別情報131とも呼ぶ)と、状態情報132とが記憶されている。
次に、情報処理装置1のソフトウエア構成について説明する。図6は、図5の情報処理装置1の機能ブロック図である。CPU101は、プログラム110と協働することにより、API受信部111と、キュー操作部112と、操作結果送信部113と、移行時キュー操作部114(以下、単にキュー操作部114またはキュー生成部114とも呼ぶ)として動作する。また、CPU101は、プログラム110と協働することにより、キュー移行部115と、状態情報管理部116と、キュー移行停止部117と、キュー識別情報管理部118として動作する。さらに、情報格納領域130には、キュー識別情報131(以下、単に識別情報131とも呼ぶ)と、状態情報132とが記憶されている。
API受信部111は、例えば、利用者が利用者端末11を介して送信したAPIを受信する。このAPIは、例えば、仮想マシン3に生成されたキューに対するメッセージの追加や、仮想マシン3に生成されたキューに格納されているメッセージの参照や操作(メッセージを処理するための取得を含む)を情報処理装置1に指示するためのものである。また、このAPIは、例えば、仮想マシン3における新たなキューの生成や、既に仮想マシン3に生成されているキューの削除を情報処理装置1に指示するためのものである。
キュー操作部112は、例えば、API受信部111がメッセージの追加を目的とするAPIを受信した場合に、受信したAPIに含まれるメッセージ(以下、受信メッセージとも呼ぶ)をキューに格納する。具体的に、キュー操作部112は、この場合、受信メッセージに含まれるキュー識別情報131に基づいて、それぞれキューを管理する複数の仮想マシン3のうち、受信メッセージに含まれるキュー識別情報131に対応するキューを特定する。そして、キュー操作部112は、受信メッセージを特定したキューに格納する。なお、キュー識別情報131は、仮想マシン3に生成された各キューを識別するための情報である。そして、受信メッセージに含まれている可能性があるキュー識別情報131は、例えば、予め情報格納領域130に記憶されているものであってよい。
また、キュー操作部112は、例えば、API受信部111がメッセージの参照または操作を目的とするAPIを受信した場合に、受信したAPIに含まれる情報が示すメッセージの参照またはメッセージに対する操作を行う。さらに、キュー操作部112は、例えば、API受信部111がキューの生成を目的とするAPIを受信した場合に、新たなキューの作成を行う。また、キュー操作部112は、例えば、API受信部111がキューの削除を目的とするAPIを受信した場合に、削除対象のキューの削除を行う。
操作結果送信部113は、キュー操作部112によって行われた操作等に対する結果を送信する。具体的に、操作結果送信部113は、APIを送信した利用者端末11に対し、APIに含まれる情報に対応して行われた操作の結果や、APIに含まれる内容に基づいて取得したメッセージの送信を行う。
移行時キュー操作部114は、例えば、仮想マシン3に生成されたキューの管理の移行が行われている際に、キュー操作部112に代わってキューの操作等を行う。
また、キュー移行部115は、例えば、キューの管理の移行を行う。キュー移行部115は、例えば、キューに格納されたメッセージの移行を行う。
具体的に、移行時キュー操作部114は、仮想マシン3(以下、第1の仮想マシン3Aとも呼ぶ)で管理され、特定のキュー識別情報131に対応する特定のキューの管理を、他の仮想マシン3(以下、第2の仮想マシン3Bとも呼ぶ)に移行させる際に、第2の仮想マシンに第1のキューと第2のキューを生成する。そして、キュー移行部115は、特定のキューに格納されている特定のメッセージを、特定のキューの先頭側から第1のキューに格納する。
一方、キュー移行部115が特定のキューの管理を移行する間に、API受信部111が特定のキューに対応するキュー識別情報131を含むメッセージを追加するためのAPIを受信した場合、移行時キュー操作部114は、受信メッセージを第2のキューに格納する。
さらに、キュー移行部115が特定のキューの管理を移行する間に、API受信部111がメッセージの参照または操作を指示するためのAPIを受信した場合、移行時キュー操作部114は、第1のキュー、特定のキュー、第2のキューの順にメッセージの参照または操作を行う。
また、移行時キュー操作部114は、例えば、キュー移行部115によるキューの管理の移行が完了した後、特定のキュー及び第2のキューの削除を行う。移行時キュー操作部114によるキューの生成及び削除の具体例については後述する。また、キュー移行部115によるキューに管理の移行の具体例については後述する。
なお、以下、キュー操作部112は、例えば、状態情報132がキューの管理の移行が行われていないことを示す場合に動作するものとして説明を行う。また、以下、移行時キュー操作部114は、例えば、状態情報132がキューの管理の移行が行われていることを示す場合に動作するものとして説明を行う。
状態情報管理部116は、状態情報132の更新を行う。状態情報132は、キュー移行部115によるキューの管理の移行が行われているか否かを示す情報を含む。状態情報132の具体例については後述する。
キュー移行停止部117は、キュー移行部115によるキューの管理の移行が行われている間に、API受信部111がメッセージの参照または操作を指示するためのAPIを受信した場合、キュー移行部115によるキューの管理の移行を停止(中止)する。キュー移行停止部117がキューの管理の移行の停止する場合の具体例については後述する。
キュー識別情報管理部118は、キュー識別情報131の管理を行う。具体的に、例えば、キュー操作部112が行ったキューの生成または削除に応じて、キュー識別情報131に含まれる情報のうち、生成または削除されたキューに関する情報の追加または削除を行う。
なお、以下、上記の各部が同一の情報処理装置1で動作する場合について説明を行うが、それぞれ異なる情報処理装置1において動作するものであってもよい。また、キュー移行部115は、特定のキューの管理を移行する間に、特定のキューに対応するキュー識別情報131を含むメッセージを追加するためのAPIが発生した場合、移行時キュー操作部114に代わって受信メッセージを第2のキューに格納するものであってもよい。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図7から図9は、第1の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。また、図10から図14は、第1の実施の形態におけるキュー管理処理の概略を説明する図である。図10から図14を参照しながら、図7から図9のキュー管理処理について説明を行う。
次に、第1の実施の形態の概略について説明する。図7から図9は、第1の実施の形態におけるキュー管理処理の概略を説明するフローチャート図である。また、図10から図14は、第1の実施の形態におけるキュー管理処理の概略を説明する図である。図10から図14を参照しながら、図7から図9のキュー管理処理について説明を行う。
[メッセージ移行処理の概略]
初めに、第1の実施の形態におけるキュー管理処理のうち、メッセージの移行を行う処理(以下、メッセージ移行処理とも呼ぶ)について説明を行う。図7は、第1の実施の形態におけるメッセージ移行処理の概略を説明するフローチャート図である。
初めに、第1の実施の形態におけるキュー管理処理のうち、メッセージの移行を行う処理(以下、メッセージ移行処理とも呼ぶ)について説明を行う。図7は、第1の実施の形態におけるメッセージ移行処理の概略を説明するフローチャート図である。
情報処理装置1は、図7に示すように、キュー移行タイミングまで待機する(S1のNO)。キュー移行タイミングは、例えば、キューを管理する仮想マシン3の負荷が所定の閾値を超えたことに起因して、第1の仮想マシン3Aが管理する特定のキューを第2の仮想マシン3Bに移行する必要が生じたタイミングであってよい。また、キュー移行タイミングは、例えば、特定のキューを管理する第1の仮想マシン3Aが削除される前に、特定のキューを第2の仮想マシン3Bに移行する必要が生じたタイミングであってよい。
その後、キュー移行タイミングになった場合(S1のYES)、情報処理装置1は、第1の仮想マシン3Aが管理する特定のキューの管理を移行する第2の仮想マシン3Bに、第1のキューと第2のキューとを生成させる(S2)。以下、S2の処理の概略の具体例を説明する。
図10及び図11は、S2の処理の概略の具体例を説明する図である。図10は、S2の処理が行われる前のメッセージキューシステム10を説明する図である。図10に示すメッセージキューシステム10において、物理マシン2には、仮想マシン3Aと仮想マシン3Bとが生成されている。また、仮想マシン3Aには、キュー31Aが生成され、仮想マシン3Bには、キュー31Bが生成されている。
そして、図11は、S2の処理が行われた後のメッセージキューシステム10を説明する図である。情報処理装置1は、図11に示すように、キュー31Aに格納されたメッセージの移行を行う前に、メッセージの移行先の仮想マシンである仮想マシン3Bに、第1のキュー33B及び第2のキュー34Bを生成する(S2)。これにより、情報処理装置1は、後述するように、キュー31Aの管理の移行を行う前に受信したメッセージと、キュー31Aの管理の移行を行う間に受信したメッセージとを分ける形で管理することが可能になる。
図7に戻り、情報処理装置1は、特定のキューの格納済の特定のメッセージを、キューの先頭側に格納されているメッセージから順に、第1のキューに格納する(S3)。以下、S3の処理の概略の具体例を説明する。
図12は、S3の処理の概略の具体例を説明する図である。具体的に、図12は、S3の処理が行われた後のメッセージキューシステム10を説明する図である。図12に示すように、情報処理装置1は、キュー31Aに格納されているメッセージを、S2で生成したキューのうち、第1のキュー33Bのみに移行する。ここで、情報処理装置1は、キュー31Aに格納されているメッセージを、キュー31Aに格納された順(処理順序が早い順)に、第1のキュー33Bへの格納を行う。これにより、情報処理装置1は、第1のキュー33Bへのメッセージの移行後においても、キュー31Aに対して行われたメッセージの格納順序に関する情報を維持することが可能になる。
[メッセージ追加処理の概略]
次に、第1の実施の形態におけるキュー管理処理のうち、メッセージの追加を行う処理(以下、メッセージ追加処理とも呼ぶ)について説明を行う。図8は、第1の実施の形態におけるメッセージ追加処理の概略を説明するフローチャート図である。
次に、第1の実施の形態におけるキュー管理処理のうち、メッセージの追加を行う処理(以下、メッセージ追加処理とも呼ぶ)について説明を行う。図8は、第1の実施の形態におけるメッセージ追加処理の概略を説明するフローチャート図である。
情報処理装置1は、図8に示すように、図7で説明したS3の処理が行われている間に、特定のキュー識別情報131を含むメッセージを受信するまで待機する(S11のNO)。そして、特定のキュー識別情報131を含むメッセージを受信した場合(S11のYES)、情報処理装置1は、特定のキュー識別情報131を含む受信メッセージを、第2のキューに格納する(S12)。
すなわち、情報処理装置1は、特定のキューの管理の移行中に、特定のキューに追加すべきメッセージを受信した場合、特定のキューではなく第2のキューに受信メッセージを格納する。これにより、情報処理装置1は、特定のキューの管理の移行前に発生したメッセージと、特定のキューの管理の移行中に発生したメッセージとを分ける形で管理することが可能になる。そのため、情報処理装置1は、特定のキューの管理の移行によって、メッセージの処理順序に影響が及ぶことを防止することが可能になる。以下、S12の処理の概略の具体例を説明する。
図13は、S12の処理の概略の具体例を説明する図である。具体的に、図13は、S12の処理が行われた後のメッセージキューシステム10を説明する図である。図13に示すように、情報処理装置1は、キュー31Aに含まれるメッセージを第1のキュー33Bに移行している間に、キュー31Aに対するメッセージを受信した場合、受信メッセージを第2のキュー34Bに格納する。これにより、情報処理装置1は、キュー31Aの管理の移行前に発生したメッセージを第1のキュー33Bに格納し、キュー31Aの管理の移行中に発生したメッセージを第2のキュー34Bに格納することが可能になる。
[メッセージ参照処理の概略]
次に、第1の実施の形態におけるキュー管理処理のうち、メッセージの参照またはメッセージに対する操作を行う処理(以下、メッセージ参照処理とも呼ぶ)について説明を行う。図9は、第1の実施の形態におけるメッセージ参照処理の概略を説明するフローチャート図である。
次に、第1の実施の形態におけるキュー管理処理のうち、メッセージの参照またはメッセージに対する操作を行う処理(以下、メッセージ参照処理とも呼ぶ)について説明を行う。図9は、第1の実施の形態におけるメッセージ参照処理の概略を説明するフローチャート図である。
情報処理装置1は、図9に示すように、図7で説明したS3の処理が行われている間に、特定のキューに格納された特定のメッセージの参照または操作の指示を受信するまで待機する(S21のNO)。そして、特定のキューに格納された特定のメッセージの参照または操作の指示を受信した場合(S21のYES)、情報処理装置1は、第1のキュー、特定のキュー、第2のキューの順に、特定のメッセージの参照または操作を行う(S22)。
すなわち、S3の処理の実行中において、特定のメッセージは、第1のキュー(移行先のキュー)または特定のキュー(移行元のキュー)のいずれかに格納されている。そして、情報処理装置1は、S3の処理において、特定のキューに先に格納された特定のメッセージから順に移行を行う。さらに、S3の処理の実行中において、特定のキューに格納されたメッセージの移行中に発生したメッセージは、第2のキューに格納される。そのため、S3の処理の実行中において、第1のキューに格納されているメッセージと、特定のキューに格納されているメッセージと、第2のキューに格納されているメッセージとは、それぞれ処理順序が連続する関係を有していることになる。
したがって、情報処理装置1は、S22の処理において、第1のキュー、特定のキュー、第2のキューの順に特定のメッセージの参照または操作を行うことにより、特定のメッセージの移行が行われていない場合と同様の処理を行うことが可能になる。以下、S22の処理の概略の具体例を説明する。
図14は、S32の処理の概略の具体例を説明する図である。具体的に、図14は、S22の処理が行われた後のメッセージキューシステム10を説明する図である。図14に示すように、情報処理装置1は、キュー31Aに含まれるメッセージを第1のキュー33Bに移行している間に、移行対象のメッセージに対して参照または操作を行う場合、初めに、第1のキュー33Bに含まれるメッセージに対して参照または操作を行う。次に、情報処理装置1は、この場合、移行対象のメッセージの移行元であるキュー31Aに含まれるメッセージに対して参照または操作を行い、その後、第2のキューに含まれるメッセージに対して参照または操作を行う。
これにより、情報処理装置1は、利用者に対して意識させることなく、仮想マシン3Aと仮想マシン3Bとの間におけるキューの管理の移行を行うことが可能になる。
このように、情報処理装置1は、第1の仮想マシン3Aで管理され、特定のキュー識別情報131に対応する特定のキュー31Aの管理を第2の仮想マシン3Bに移行させる際に、第2の仮想マシン3Bに第1のキュー33Bと第2のキュー34Bとを生成させる。そして、情報処理装置1は、第1の仮想マシン3Aの特定のキュー31Aに格納済の特定のメッセージを、キューの先頭側から第1のキュー33Bに格納させ、特定のキュー識別情報131を含む受信メッセージを、第2のキュー34Bに格納させる。
その後、情報処理装置1は、特定のメッセージの参照または操作の指示に応じて、第1のキュー33B、特定のキュー31A、第2のキュー34Bの順に特定のメッセージの参照または操作を行う。
これにより、情報処理装置1は、メッセージキューシステム10によるサービスの停止を行うことなく、特定のキュー31Aの管理の移行を行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図15から図22は、第1の実施の形態におけるキュー管理処理の詳細を説明するフローチャート図である。また、図23から図30は、第1の実施の形態におけるキュー管理処理の詳細を説明する図である。図23から図30を参照しながら、図15から図22のキュー管理処理を説明する。なお、以下、図1で説明した物理マシン2に、仮想マシン3A、仮想マシン3B、仮想マシン3C及び仮想マシン3Dが生成されているものとして説明を行う。
次に、第1の実施の形態の詳細について説明する。図15から図22は、第1の実施の形態におけるキュー管理処理の詳細を説明するフローチャート図である。また、図23から図30は、第1の実施の形態におけるキュー管理処理の詳細を説明する図である。図23から図30を参照しながら、図15から図22のキュー管理処理を説明する。なお、以下、図1で説明した物理マシン2に、仮想マシン3A、仮想マシン3B、仮想マシン3C及び仮想マシン3Dが生成されているものとして説明を行う。
[メッセージ移行処理の詳細]
初めに、メッセージ移行処理の詳細について説明を行う。図15は、第1の実施の形態におけるメッセージ移行処理の詳細を説明するフローチャート図である。
初めに、メッセージ移行処理の詳細について説明を行う。図15は、第1の実施の形態におけるメッセージ移行処理の詳細を説明するフローチャート図である。
情報処理装置1の移行時キュー操作部114は、図15に示すように、キュー移行タイミングまで待機する(S31のNO)。その後、キュー移行タイミングになった場合(S31のYES)、移行時キュー操作部114は、第1の仮想マシン3Aが管理する特定のキュー31Aの管理を移行する第2の仮想マシン3Bに、第1のキュー33Bと第2のキュー34Bとを生成させる(S32)。これにより、移行時キュー操作部114は、キュー31Aの管理の移行を行う前に受信したメッセージと、キュー31Aの管理の移行を行う間に受信したメッセージとを分ける形で管理することが可能になる。
そして、この場合、情報処理装置1のキュー識別情報管理部118は、例えば、第1のキュー33B及び第2のキュー34Bが生成されたことに伴って、キュー識別情報131の更新を行う。以下、キュー識別情報131の具体例を説明する。
図23及び図24は、キュー識別情報131を説明する図である。具体的に、図23は、S32の処理が実行される前のキュー識別情報131を説明する図である。また、図24は、S32の処理が実行された後のキュー識別情報131を説明する図である。
図23に示すキュー識別情報131は、キュー識別情報131に含まれる各情報を識別する「ID」と、各仮想マシン3に生成されたキューを識別する「識別情報」と、各キューの属性を示す「属性」とを項目として有する。「識別情報」には、API受信部111が受信するメッセージに含まれるキュー識別情報131と同じ情報が設定されている。また、「属性」には、通常のキューを示す「通常」と、メッセージの移行が行われる際に一時的に生成されるキューを示す「一時」とが設定される。また、「属性」には、メッセージの移行が行われる際にメッセージの移行先となるキューを示す「新規」が設定される。
なお、以下、「属性」に「通常」が設定されたキュー(図11等におけるキュー31Aに対応するキュー)を通常キューとも呼ぶ。また、以下、「属性」に「一時」が設定されたキュー(図11等における第1のキュー33Bに対応するキュー)を一時キューとも呼び、「属性」に「新規」が設定されたキュー(図11等における第2のキュー34Bに対応するキュー)を新規キューとも呼ぶ。
さらに、図23に示すキュー識別情報131は、各キューが生成された仮想マシン3を識別する「仮想マシン」と、「属性」に「一時」または「新規」が設定されている場合に、対応する通常キューの「識別情報」を設定する「対応キューの識別情報」とを項目として有する。
具体的に、図23に示すキュー識別情報131において、「ID」が「1」である情報には、「識別情報」として「Q001」が設定され、「属性」に「通常」が設定され、「仮想マシン」に仮想マシン3Aを示す「3A」が設定されている。また、図23に示すキュー識別情報131において、「ID」が「1」である情報には、「対応キューの識別情報」としてブランクが設定されている。すなわち、「ID」が「1」である情報は、通常キューに関する情報であるため、「ID」が「1」である情報の「対応キューの識別情報」には、ブランクが設定される。図23の他の情報については説明を省略する。
次に、S32の処理が実行された後のキュー識別情報131について説明を行う。図24に示すキュー識別情報131は、図23に示すキュー識別情報131と比較して、「ID」が「8」及び「9」である情報が追加されている(図24の下線部分)。すなわち、「ID」が「8」である情報及び「ID」が「9」である情報は、それぞれ「識別情報」が「Q001」である通常キューに対応する一時キュー及び新規キューについての情報である。なお、以下、図23のキュー識別情報131における「ID」が「1」であるキューの管理が、仮想マシン3Aから仮想マシン3Bに移行する場合について説明を行う。
具体的に、図24に示すキュー識別情報131において、「ID」が「8」である情報には、「識別情報」として「Q101」が設定され、「属性」に「一時」が設定され、「仮想マシン」に仮想マシン3Bを示す「3B」が設定されている。また、図24に示すキュー識別情報131において、「ID」が「8」である情報には、「対応キューの識別情報」として「Q001」が設定されている。そして、図24に示すキュー識別情報131において、「ID」が「9」である情報には、「識別情報」として「Q201」が設定され、「属性」に「新規」が設定され、「仮想マシン」に「3B」が設定されている。また、図24に示すキュー識別情報131において、「ID」が「8」である情報には、「対応キューの識別情報」として「Q001」が設定されている。
図15に戻り、情報処理装置1の状態情報管理部116は、情報格納領域130に記憶された状態情報132を「実施」に変更する(S33)。以下、状態情報132の具体例を説明する。
図25及び図26は、状態情報132の具体例を説明する図である。具体的に、図25は、S33の処理が実行される前の状態情報132を説明する図である。また、図26は、S33の処理が実行された後の状態情報132を説明する図である。
図25に示す状態情報132は、状態情報132に含まれる各情報を識別する「ID」と、各仮想マシン3に生成されたキューを識別する「識別情報」と、各キューの状態を示す「状態」とを項目として有する。「状態」には、例えば、対応するキューの移動が行われていない状態を示す「定常」、対応するキューの移動が行われている状態を示す「実施」、または対応するキューの移動が完了したことを示す「完了」が設定される。
具体的に、図25に示す状態情報132において、「ID」が「1」である情報には、「識別情報」として「Q001」が設定され、「状態」として「定常」が設定されている。また、図25に示す状態情報132において、「ID」が「2」である情報には、「識別情報」として「Q002」が設定され、「状態」として「実施」が設定されている。図25の他の情報については説明を省略する。
次に、S33の処理が実行された後の状態情報132について説明する。図26に示す状態情報132は、図25に示す状態情報132と比較して、「ID」が「1」である情報の「状態」が「定常」から「実施」に更新されている(図26の下線部分)。すなわち、状態情報管理部116は、特定のキュー31Aに格納されたメッセージを第1のキュー33Bに移行する前に、特定のキュー31Aに対応する情報の「状態」を「定常」から「実施」に更新する。
図15に戻り、情報処理装置1のキュー移行部115は、特定のキュー34Aの格納済の特定のメッセージを、キューの先頭側に格納されているメッセージから順に、第1のキューに格納する(S34のYES、S35)。これにより、キュー移行部115は、第1のキュー33Bに対するメッセージの移行後においても、特定のキュー31Aに対して行われたメッセージの格納順序に関する情報を維持することが可能になる。
その後、移行時キュー操作部114は、特定のキュー31Aを削除する(S36)。そして、この場合、情報処理装置1のキュー識別情報管理部118は、例えば、キュー識別情報131に含まれる情報にうち、特定のキュー31Aの削除に伴う情報について更新を行う。以下、S36の処理が実行された後のキュー識別情報131について説明を行う。
図27は、S36の処理が実行された後のキュー識別情報131を説明する図である。図27に示すキュー識別情報131は、図24に示すキュー識別情報131と比較して、「ID」が「1」である情報が削除されている。すなわち、キュー識別情報管理部118は、S36の処理が実行された場合、キュー識別情報131のうち、特定のキュー31Aに対応する情報である「ID」が「1」である情報の削除を行う。
図15に戻り、情報処理装置1のキュー識別情報管理部118は、キュー識別情報131のうち、第2のキュー34Bに関する情報を、特定のキュー31Aに関する情報として更新する(S37)。これにより、キュー識別情報管理部118は、情報格納領域130に記憶されたキュー識別情報131上、S36において削除された特定のキュー31Aが行っていたキューの管理を、第2のキュー34Bに移行させることが可能になる。そのため、第2のキュー34Bは、削除された特定のキュー31Aに代わって、「識別情報」が「Q001」であるキューとして機能することが可能になる。以下、S37の処理が実行された後のキュー識別情報131について説明を行う。
図28は、S37の処理が実行された後のキュー識別情報131を説明する図である。図27に示すキュー識別情報131は、図27に示すキュー識別情報131と比較して、「ID」が「9」である情報が更新されている(図28の下線部分)。具体的に、図28に示すキュー識別情報131において、「ID」が「9」である情報には、「識別情報」として「Q001」が設定され、「属性」に「通常」が設定され、「仮想マシン」に「3B」が設定されている。また、図28に示すキュー識別情報131において、「ID」が「9」である情報には、「対応キューの識別情報」としてブランクが設定されている。
なお、図28に示すキュー識別情報131において、S37の処理で削除された一時キーである「ID」が「8」である情報が残っている。そして、S37の処理が完了した後において、一時キーには、S37の処理で削除された通常キューから移行されたメッセージが格納されている場合がある。そのため、情報処理装置1は、メッセージの移行の完了後において、新たな通常キューに対して参照または操作を行う場合、後述するように、新たな通常キューに対して参照または操作を行う前に、一時キューに対して参照または操作を行う必要がある。S37の処理が完了した後において一時キーに対して参照または操作を行う場合の具体例については後述する。
図15に戻り、状態情報管理部116は、情報格納領域130に記憶された状態情報132を「完了」に変更する(S38)。以下、S38の処理が実行された後の状態情報132について説明を行う。
図29は、S38の処理が実行された後の状態情報132を説明する図である。図29の下線部分に示すように、状態情報管理部116は、S38の処理が実行された後、状態情報132における「識別情報」が「Q001」である情報(管理の移行を行った特定のキュー31Aに対応する情報)の「状態」を「完了」に更新する。
[メッセージ追加処理の詳細]
次に、メッセージ追加処理の詳細について説明を行う。図16は、第1の実施の形態におけるメッセージ追加処理の詳細を説明するフローチャート図である。
次に、メッセージ追加処理の詳細について説明を行う。図16は、第1の実施の形態におけるメッセージ追加処理の詳細を説明するフローチャート図である。
初めに、情報処理装置1のAPI受信部111は、図16に示すように、キューに対するメッセージの追加を目的とするAPI(以下、メッセージ追加APIとも呼ぶ)を受信するまで待機する(S41のNO)。その後、メッセージ追加APIを受信した場合(S41のYES)、キュー操作部112は、情報格納領域130に格納されている状態情報132を参照する(S42)。
その結果、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「定常」を示している場合(S42のYES)、キュー操作部112は、情報格納領域130に格納されているキュー識別情報131を参照する。そして、キュー操作部112は、S41で受信したAPIに含まれるキュー識別情報131で識別されるキュー(通常キュー)に、受信したAPIに含まれるメッセージを格納する(S43)。
すなわち、状態情報132が「定常」である場合、情報処理装置1では、メッセージの移行が行われていない状態であると判定する。そのため、キュー操作部112は、この場合、受信したAPIに含まれるキュー識別情報131が示す通常キューに、受信メッセージを格納する。
一方、受信したAPIに対応するキューの「状態」が「定常」以外を示している場合(S42のNO)、キュー操作部112は、受信したAPIに対応するキューが移行元の仮想マシン3に存在するか否かを判定する(S45)。その結果、受信したAPIに対応するキューが移行元の仮想マシン3に存在しない場合(S45のNO)、キュー操作部112は、情報格納領域130に格納されているキュー識別情報131を参照する。そして、キュー操作部112は、S41で受信したAPIに含まれるキュー識別情報131で識別される通常キューに、その受信メッセージを格納する(S43)。また、受信したAPIに対応するキューが移行元の仮想マシン3に存在する場合(S45のYES)、移行時キュー操作部114は、情報格納領域130に格納されているキュー識別情報131を参照する。そして、移行時キュー操作部114は、S41で受信したAPIに含まれるキュー識別情報131で識別される通常キューに対応する新規キューに、その受信メッセージを格納する(S46)。
すなわち、S45の処理において、受信したAPIに対応する通常キューが移行元の仮想マシン3に存在しない場合、通常キューから一時キューへのメッセージの移行が完了した後、その通常キューが既に削除されていることを示す(図15のS36)。そして、この場合、通常キューに対応する新規キューが、削除された通常キューに代わって新たな通常キューとして機能していることになる(図15のS37)。そのため、キュー操作部112は、この場合、キューの管理の移行が行われていない場合と同様に、受信したAPIに含まれるキュー識別情報131で識別される通常キューに、受信したAPIに含まれるメッセージを格納する。
一方、S45の処理において、受信したAPIに対応する通常キューが移行元の仮想マシン3に存在する場合、通常キューから一時キューへのメッセージの移行が完了していない可能性がある。この場合、キュー操作部112(移行時キュー操作部114)が受信メッセージを通常キューに格納した場合、通常キューに格納されているメッセージの処理順序に影響を与えてしまう場合がある。そのため、移行時キュー操作部114は、この場合、受信したAPIに含まれるキュー識別情報131で識別される通常キューに対応する新規キューに、受信したAPIに含まれるメッセージを格納する。
その後、情報処理装置1の操作結果送信部113は、API受信部111が受信したメッセージ追加APIの実行結果を、そのメッセージ追加APIを送信した送信元(利用者端末11)に送信する(S44)。なお、API受信部111が受信したメッセージ追加APIに対応する処理が失敗した場合、操作結果送信部113は、S44の処理において、その旨を送信元に送信するものであってよい。
[メッセージ参照処理の詳細]
次に、メッセージ参照処理の詳細について説明を行う。図17から図20は、第1の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
次に、メッセージ参照処理の詳細について説明を行う。図17から図20は、第1の実施の形態におけるメッセージ参照処理の詳細を説明するフローチャート図である。
初めに、情報処理装置1のAPI受信部111は、図17に示すように、キューに格納されたメッセージの参照または操作を目的とするAPI(以下、メッセージ参照APIとも呼ぶ)を受信するまで待機する(S51のNO)。その後、メッセージ参照APIを受信した場合(S51のYES)、キュー操作部112は、情報格納領域130に格納されている状態情報132を参照する(S52)。
[キューの「状態」が「定常」を示している場合の処理]
初めに、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「定常」を示している場合について説明を行う。受信メッセージに含まれるキュー識別情報131で識別されるキューの「状態」が「定常」を示している場合(S52のYES)、キュー操作部112は、情報格納領域130に格納されているキュー識別情報131を参照する。そして、キュー操作部112は、S51で受信したAPIに含まれるキュー識別情報131で識別されるキュー(通常キュー)を特定し、メッセージ参照APIの内容に基づいてメッセージの参照または操作を行う(S53)。
初めに、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「定常」を示している場合について説明を行う。受信メッセージに含まれるキュー識別情報131で識別されるキューの「状態」が「定常」を示している場合(S52のYES)、キュー操作部112は、情報格納領域130に格納されているキュー識別情報131を参照する。そして、キュー操作部112は、S51で受信したAPIに含まれるキュー識別情報131で識別されるキュー(通常キュー)を特定し、メッセージ参照APIの内容に基づいてメッセージの参照または操作を行う(S53)。
すなわち、状態情報132が「定常」である場合、情報処理装置1では、メッセージの移行が行われていない状態であると判定する。そのため、キュー操作部112は、S51で受信したAPIに含まれるキュー識別情報131で識別されるキューに対して、メッセージ参照APIの内容に基づくメッセージの参照または操作を行う。
その後、情報処理装置1の操作結果送信部113は、API受信部111が受信したメッセージ参照APIの実行結果を、そのメッセージ追加APIを送信した送信元(利用者端末11)に送信する(S54)。なお、API受信部111が受信したメッセージ参照APIに対応する処理が失敗した場合、操作結果送信部113は、S54の処理において、その旨を送信元に送信するものであってよい。
[キューの「状態」が「実施」を示している場合の処理]
次に、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「実施」を示している場合について説明を行う。受信したAPIに対応するキューの状態が「実施」を示している場合(S52のNO、S55のYES)、情報処理装置1のキュー移行停止部117は、図18に示すように、メッセージの移行を停止するように、キュー移行部115に指示する(S61)。
次に、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「実施」を示している場合について説明を行う。受信したAPIに対応するキューの状態が「実施」を示している場合(S52のNO、S55のYES)、情報処理装置1のキュー移行停止部117は、図18に示すように、メッセージの移行を停止するように、キュー移行部115に指示する(S61)。
すなわち、受信したAPIに対応するキューの状態が「実施」を示している場合、キュー移行停止部117は、受信したAPIに対応するキューが特定のキュー31A(キュー移行部115が管理の移行を行っている通常キュー)であるものと判定する。そのため、この場合、移行時キュー操作部114は、特定のキュー31A、第1のキュー33B及び第2のキュー34Bの全てを対象として、メッセージの参照または操作を行う必要がある。
ここで、移行時キュー操作部114によるメッセージの参照または操作と、キュー移行部115によるメッセージの移行とが同時に行われると、メッセージの移行のタイミングによっては、移行時キュー操作部114による処理が行われないメッセージが発生する。具体的に、移行時キュー操作部114による処理がまだ行われていないキューから、既に処理が行われたキューに対してメッセージが移行した場合、移行時キュー操作部114による処理が行われないメッセージが発生する。
そこで、キュー移行停止部117は、メッセージ参照APIが発生した場合、キュー移行部115に対してキューの移行の停止を指示する。これにより、キュー移行停止部117は、移行時キュー操作部114による処理が行われないメッセージの発生を防止することが可能になる。
その後、移行時キュー操作部114は、第1のキュー33Bに参照または操作を行う対象のメッセージ(以下、対象メッセージとも呼ぶ)が存在するか否かを判定する(S62)。その結果、第1のキュー33Bに対象メッセージが存在する場合(S62のYES)、移行時キュー操作部114は、第1のキュー33Bに格納されたメッセージに対して参照または操作を行う(S63)。
次に、第1のキュー33Bに対象メッセージが存在しない場合(S62のNO)、移行時キュー操作部114は、図19に示すように、特定のキュー31Aに対象メッセージが存在するか否かを判定する(S71)。その結果、特定のキュー31Aに対象メッセージが存在する場合(S71のYES)、移行時キュー操作部114は、特定のキュー31Aに格納されたメッセージに対して参照または操作を行う(S72)。一方、特定のキュー31Aに対象メッセージが存在しない場合(S71のNO)、移行時キュー操作部114は、特定のキュー31Aに格納されたメッセージに対する参照または操作を行わない。
続いて、移行時キュー操作部114は、第2のキュー34Bに対象メッセージが存在するか否かを判定する(S73)。その結果、第2のキュー34Bに対象メッセージが存在する場合(S73のYES)、移行時キュー操作部114は、第2のキュー34Bに格納されたメッセージに対して参照または操作を行う(S74)。一方、第2のキュー34Bに対象メッセージが存在しない場合(S73のNO)、移行時キュー操作部114は、第2のキュー34Bに格納されたメッセージに対する参照または操作を行わない。
すなわち、キュー移行部115によるキューの管理の移行中において、第1のキューに格納されているメッセージと、特定のキューに格納されているメッセージと、第2のキューに格納されているメッセージとは、それぞれ処理順序が連続する関係を有している。そのため、移行時キュー操作部114は、図18及び図19に示すように、第1のキュー、特定のキュー、第2のキューの順に、メッセージ操作APIの内容に基づくメッセージの参照または操作を行う。これにより、移行時キュー操作部114は、メッセージの移行に伴って、メッセージの処理順序等に影響が及ぶことを防止することが可能になる。そのため、利用者は、メッセージの移行が行われていない場合と同様に、メッセージの参照または操作を行うことが可能になる。
そして、キュー移行停止部117は、メッセージに対して参照または操作を行った場合(S図18のS63、S72またはS74)、キューの管理の移行を再開するように、キュー移行部115に指示を行う(S75)。また、キュー移行停止部117は、メッセージに対する参照または操作に失敗した場合も同様に(S73のNO)、キューの管理の移行を再開するように、キュー移行部115に指示を行う(S75)。その後、操作結果送信部113は、API受信部111が受信したメッセージ参照APIに対する実行結果を、そのメッセージ参照APIの送信元(利用者端末11)に送信する(図17のS54)。
[キューの「状態」が「完了」を示している場合の処理]
次に、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「完了」を示している場合について説明を行う。
次に、受信したAPIに含まれるキュー識別情報131で識別されるキューの「状態」が「完了」を示している場合について説明を行う。
この場合、移行時キュー操作部114は、図20に示すように、対象メッセージに対応する第1のキュー33Bが存在するか否かを判定する(S81)。そして、第1のキュー33Bが存在すると判定した場合(S81のYES)、移行時キュー操作部114は、第1のキュー33Bに格納された対象メッセージに対して参照または操作を行う(S82)。
すなわち、第1のキュー33Bは、後述するように、第1のキュー33Bにメッセージが存在しなくなった際に削除される。そのため、対象メッセージに対応する第1のキュー33Bが存在する場合(S81のYES)、第1のキュー33Bには、メッセージが必ず存在することになる。したがって、対象メッセージに対応する第1のキュー33Bが存在する場合(S81のYES)、移行時キュー操作部114は、第1のキュー33Bに格納された対象メッセージに対して参照または操作を行う(S82)。
なお、受信したAPIに対応するキューの状態が「完了」を示している場合、特定のキュー31Aは既に削除されており(図15のS36)、第2のキュー34Bが特定のキュー31Aの代わりに通常キューとして機能している状態である。以下、通常キューとして機能する第2のキュー34Bを移行済キュー34Bとも呼ぶ。
一方、第1のキュー33Bが存在しないと判定した場合(S81のNO)、キュー操作部112は、受信したAPIに含まれるキュー識別情報131で識別されるキュー(移行済キュー34B)に対して、メッセージの参照または操作を行う(図17のS53、S54)。すなわち、第1のキュー33Bが存在しないと判定した場合、特定のキュー31A及び第1のキュー33Bが既に削除され、移行済キュー34Bのみが存在している状態である。そのため、キュー操作部112は、この場合、キューの管理の移行が行われていない場合と同様に、メッセージの参照または操作を行う。
その後、移行時キュー操作部114は、対象メッセージに対応する第1のキューにメッセージが存在しているか否かを判定する(S83)。そして、対象メッセージに対応する第1のキューにメッセージが存在していないと判定した場合(S83のNO)、移行時キュー操作部114は、対象メッセージに対応する第1のキューを削除する(S84)。すなわち、この場合、移行時キュー操作部114は、第1のキューに格納されたメッセージが全て仮想マシン3Aによって実行されたものと判定し、対象メッセージに対応する第1のキューを削除する。
一方、対象メッセージに対応する第1のキューにメッセージが存在すると判定した場合(S83のYES)、移行時キュー操作部114は、対象メッセージに対応する第1のキューの削除を行わない。以下、S84の処理が実行された後のキュー識別情報131について説明を行う。
図30は、S84の処理が実行された後のキュー識別情報131を説明する図である。図30に示すキュー識別情報131は、図28に示すキュー識別情報131と比較して、「ID」が「8」である情報が削除されている。これにより、状態情報管理部116は、状態情報132の管理上においても、特定のキュー31Aの管理の移行を完了させることが可能になる。
図20に戻り、メッセージの移行に伴って生成された第1のキュー33Bが削除されている場合(S85のYES)、状態情報管理部116は、情報格納領域130に記憶された状態情報132のうち、メッセージの移行が行われたキューに対応する情報を「定常」に変更する(S86)。すなわち、この場合、状態情報管理部116は、特定のキュー31Aの管理の移行が完全に完了したものと判定する。
一方、メッセージの移行に伴って生成された第1のキューの全てが削除されていない場合(S85のNO)、状態情報管理部116は、情報格納領域130に記憶された状態情報132に含まれる情報の更新を行わない。
そして、操作結果送信部113は、API受信部111が受信したメッセージ参照APIに対する実行結果を、そのメッセージ参照APIの送信元(利用者端末11)に送信する(図17のS54)。
[API受信部がキュー追加APIを受信した場合の処理]
次に、API受信部111がキューの追加を目的とするAPI(以下、キュー追加APIとも呼ぶ)を受信した場合の処理(以下、キュー追加処理とも呼ぶ)について説明を行う。図21は、第1の実施の形態におけるキュー追加処理の詳細を説明するフローチャート図である。
次に、API受信部111がキューの追加を目的とするAPI(以下、キュー追加APIとも呼ぶ)を受信した場合の処理(以下、キュー追加処理とも呼ぶ)について説明を行う。図21は、第1の実施の形態におけるキュー追加処理の詳細を説明するフローチャート図である。
初めに、API受信部111は、図21に示すように、キュー追加APIを受信するまで待機する(S101のNO)。その後、キュー追加APIを受信した場合(S101のYES)、キュー操作部112は、情報格納領域130に格納されている状態情報132を参照する(S102)。
そして、状態情報132に含まれる「状態」に設定された情報が全て「定常」である場合(S102のYES)、移行時キュー操作部114は、仮想マシン3のいずれかに新たなキューを生成する(S103)。一方、状態情報132に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合(S102のNO)、移行時キュー操作部114は、例えば、管理の移行が行われているキュー(特定のキュー31A)が生成されている仮想マシン3以外の仮想マシン3のいずれかに新たなキューを生成する(S104)。
すなわち、キューの管理の移行は、移行元の仮想マシン3の負荷が所定の閾値を超えた場合や、移行元の仮想マシン3を削除する予定がある場合等に行われるものである。そのため、移行時キュー操作部114は、キューの管理の移行が行われている場合に、その移行元の仮想マシン3には、新たなキューの生成を行わないものであってよい。
その後、操作結果送信部113は、API受信部111が受信したキュー追加APIの実行結果を、そのキュー追加APIを送信した送信元(利用者端末11)に送信する(S105)。
[API受信部がキュー削除APIを受信した場合の処理]
次に、API受信部111がキューの削除を目的とするAPI(以下、キュー削除APIとも呼ぶ)を受信した場合の処理(以下、キュー削除処理とも呼ぶ)について説明を行う。図22は、第1の実施の形態におけるキュー削除処理の詳細を説明するフローチャート図である。
次に、API受信部111がキューの削除を目的とするAPI(以下、キュー削除APIとも呼ぶ)を受信した場合の処理(以下、キュー削除処理とも呼ぶ)について説明を行う。図22は、第1の実施の形態におけるキュー削除処理の詳細を説明するフローチャート図である。
初めに、API受信部111は、図22に示すように、キュー削除APIを受信するまで待機する(S111のNO)。その後、キュー削除APIを受信した場合(S111のYES)、キュー操作部112は、情報格納領域130に格納されている状態情報132を参照する(S112)。
そして、状態情報132に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合(S112のNO)、移行時キュー操作部114は、対象キューに対応する第1のキューが存在するか否かを判定する(S114)。その結果、対象キューに対応する第1のキューが存在する場合(S114のYES)、移行時キュー操作部114は、その第1のキューを削除する(S115)。一方、対象キューに対応する第1のキューが存在しない場合(S114のNO)、移行時キュー操作部114は、S115の処理を行わない。
さらに、状態情報132に含まれる「状態」に設定された情報に、「定常」でないものが存在する場合(S112のNO)、移行時キュー操作部114は、対象キューに対応する第2のキューが存在するか否かを判定する(S116)。その結果、対象キューに対応する第2のキューが存在する場合(S116のYES)、移行時キュー操作部114は、その第2のキューを削除する(S117)。一方、対象キューに対応する第1のキューが存在しない場合(S116のNO)、移行時キュー操作部114は、S117の処理を行わない。
そして、移行時キュー操作部114は、削除対象のキューの削除を行う(S113)。また、移行時キュー操作部114は、状態情報132に含まれる「状態」に設定された情報が全て「定常」である場合も同様に、削除対象のキューの削除を行う(S112のYES、S113)。すなわち、状態情報132に「状態」が「定常」でない情報が含まれている場合、いずれかのキューにおいてメッセージの移行が行われていることになる。そして、この場合、削除対象のキューに対応する第1のキュー及び第2のキューが作成されている可能性がある。そのため、移行時キュー操作部114は、この場合、削除対象のキューに加え、第1のキュー及び第2のキューの削除を行う。
その後、操作結果送信部113は、API受信部111が受信したキュー削除APIの実行結果を、そのキュー削除APIを送信した送信元(利用者端末11)に送信する(S118)。
このように、情報処理装置1は、第1の仮想マシン3Aで管理され、特定のキュー識別情報131に対応する特定のキュー31Aの管理を第2の仮想マシン3Bに移行させる際に、第2の仮想マシン3Bに第1のキュー33Bと第2のキュー34Bとを生成させる。そして、情報処理装置1は、第1の仮想マシン3Aの特定のキュー31Aに格納済の特定のメッセージを、キューの先頭側から第1のキュー33Bに格納させ、特定のキュー識別情報131を含む受信メッセージを、第2のキュー34Bに格納させる。
その後、情報処理装置1は、特定のメッセージの参照または操作の指示に応じて、第1のキュー33B、特定のキュー31A、第2のキュー34Bの順に特定のメッセージの参照または操作を行う。
これにより、情報処理装置1は、メッセージキューシステム10によるサービスの停止を行うことなく、特定のキュー31Aの管理の移行を行うことが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
(付記2)
付記1において、
前記第1のキューまたは第2のキューにキューイングする工程では、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う工程では、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
付記1において、
前記第1のキューまたは第2のキューにキューイングする工程では、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う工程では、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
(付記3)
付記2において、
前記特定のメッセージの参照または操作を行う工程では、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
付記2において、
前記特定のメッセージの参照または操作を行う工程では、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。
(付記4)
付記1において、
前記特定のメッセージの参照または操作を行う工程では、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理方法。
付記1において、
前記特定のメッセージの参照または操作を行う工程では、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理方法。
(付記5)
付記1において、さらに、
新たなキューの作成の指示に応じて、前記複数の仮想マシンのうち、前記第1仮想マシン以外の仮想マシンに前記新たなキューの作成を行う、
ことを特徴とするキュー管理方法。
付記1において、さらに、
新たなキューの作成の指示に応じて、前記複数の仮想マシンのうち、前記第1仮想マシン以外の仮想マシンに前記新たなキューの作成を行う、
ことを特徴とするキュー管理方法。
(付記6)
付記1において、さらに、
前記特定のキューの削除の指示に応じて、前記特定のキュー、前記第1のキュー及び前記第2のキューの削除を行う、
ことを特徴とするキュー管理方法。
付記1において、さらに、
前記特定のキューの削除の指示に応じて、前記特定のキュー、前記第1のキュー及び前記第2のキューの削除を行う、
ことを特徴とするキュー管理方法。
(付記7)
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理プログラムにおいて、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
処理をコンピュータで実行させることを特徴とするキュー管理プログラム。
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理プログラムにおいて、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
処理をコンピュータで実行させることを特徴とするキュー管理プログラム。
(付記8)
付記7において、
前記第1のキューまたは第2のキューにキューイングする処理では、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う処理では、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
付記7において、
前記第1のキューまたは第2のキューにキューイングする処理では、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う処理では、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
(付記9)
付記8において、
前記特定のメッセージの参照または操作を行う処理では、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
付記8において、
前記特定のメッセージの参照または操作を行う処理では、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理プログラム。
(付記10)
付記7において、
前記特定のメッセージの参照または操作を行う処理では、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理プログラム。
付記7において、
前記特定のメッセージの参照または操作を行う処理では、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理プログラム。
(付記11)
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理装置において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させるキュー生成部と、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせるキュー移行部と、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行うキュー操作部と、を有する、
ことを特徴とするキュー管理装置。
受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理装置において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させるキュー生成部と、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせるキュー移行部と、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行うキュー操作部と、を有する、
ことを特徴とするキュー管理装置。
(付記12)
付記11において、
前記キュー移行部は、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記キュー操作部は、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
付記11において、
前記キュー移行部は、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記キュー操作部は、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
(付記13)
付記12において、
前記キュー操作部は、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
付記12において、
前記キュー操作部は、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理装置。
(付記14)
付記11において、
前記キュー操作部は、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理装置。
付記11において、
前記キュー操作部は、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理装置。
1:情報処理装置 2:物理マシン
3:仮想マシン 4:仮想化ソフトウエア
11:作業者端末 NW:ネットワーク
3:仮想マシン 4:仮想化ソフトウエア
11:作業者端末 NW:ネットワーク
Claims (6)
- 受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理方法において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。 - 請求項1において、
前記第1のキューまたは第2のキューにキューイングする工程では、前記特定のメッセージの前記第1のキューへの移行が完了した場合、前記特定のキューを削除し、
前記参照または操作を行う工程では、前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。 - 請求項2において、
前記特定のメッセージの参照または操作を行う工程では、
前記第1のキューにキューイングされたメッセージが無くなった場合、前記第1のキューを削除し、
前記特定のメッセージの参照または操作の指示に応じて、前記第2のキューに対して前記特定のメッセージの参照または操作を行う、
ことを特徴とするキュー管理方法。 - 請求項1において、
前記特定のメッセージの参照または操作を行う工程では、前記特定のメッセージの前記第1のキューへの移行が完了していない場合、前記特定のメッセージの前記第1のキューへのキューイングを中止する、
ことを特徴とするキュー管理方法。 - 受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理プログラムにおいて、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させ、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせ、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行う、
処理をコンピュータで実行させることを特徴とするキュー管理プログラム。 - 受信メッセージに含まれるキュー識別情報に基づいて、該受信メッセージを、それぞれキューを管理する複数の仮想マシンのうち、前記キュー識別情報に対応するキューを管理する仮想マシンにキューイングさせるキュー管理装置において、
第1の仮想マシンで管理され、特定のキュー識別情報に対応する特定のキューの管理を第2の仮想マシンに移行させる際に、前記第2の仮想マシンに第1のキューと第2のキューとを生成させるキュー生成部と、
前記第1の仮想マシンの前記特定のキューにキューイング済みの特定のメッセージを、キューの先頭側から前記第1のキューにキューイングさせ、前記特定のキュー識別情報を含む受信メッセージを、前記第2のキューにキューイングさせるキュー移行部と、
前記特定のメッセージの参照または操作の指示に応じて、前記第1のキュー、前記特定のキュー、前記第2のキューの順に前記特定のメッセージの参照または操作を行うキュー操作部と、を有する、
ことを特徴とするキュー管理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015114077A JP2017004050A (ja) | 2015-06-04 | 2015-06-04 | キュー管理方法、キュー管理プログラム及びキュー管理装置 |
US15/168,710 US20160357588A1 (en) | 2015-06-04 | 2016-05-31 | Queue management method, non-transitory computer-readable recording medium and queue management device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015114077A JP2017004050A (ja) | 2015-06-04 | 2015-06-04 | キュー管理方法、キュー管理プログラム及びキュー管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017004050A true JP2017004050A (ja) | 2017-01-05 |
Family
ID=57451736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015114077A Withdrawn JP2017004050A (ja) | 2015-06-04 | 2015-06-04 | キュー管理方法、キュー管理プログラム及びキュー管理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160357588A1 (ja) |
JP (1) | JP2017004050A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018120374A (ja) * | 2017-01-24 | 2018-08-02 | キヤノン株式会社 | 情報処理システム、及び制御方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656725B (zh) * | 2018-11-09 | 2019-12-27 | 北京字节跳动网络技术有限公司 | 消息消费者切换方法、装置、存储介质及电子设备 |
-
2015
- 2015-06-04 JP JP2015114077A patent/JP2017004050A/ja not_active Withdrawn
-
2016
- 2016-05-31 US US15/168,710 patent/US20160357588A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018120374A (ja) * | 2017-01-24 | 2018-08-02 | キヤノン株式会社 | 情報処理システム、及び制御方法 |
US10896076B2 (en) | 2017-01-24 | 2021-01-19 | Canon Kabushiki Kaisha | Information processing system and control method for executing a process based on a message acquired from a queue |
JP7030412B2 (ja) | 2017-01-24 | 2022-03-07 | キヤノン株式会社 | 情報処理システム、及び制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160357588A1 (en) | 2016-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9348662B2 (en) | Network system and communication control method | |
KR102499219B1 (ko) | 동적 네트워크 인터페이스를 사용하는 상호운용가능 클라우드 기반 미디어 처리 | |
CN105099761A (zh) | 一种集中管理客户端的配置信息的方法和系统 | |
US11687373B2 (en) | Flexible computing | |
WO2015196815A1 (zh) | Ip硬盘与存储系统,及其数据操作方法 | |
JP2016103144A (ja) | 仮想マシン配備方法、仮想マシン配備プログラム及び仮想マシン配備システム | |
JP5352367B2 (ja) | 仮想マシン起動端末および仮想マシン起動プログラム | |
JP6582445B2 (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
CN105471700A (zh) | 一种消息处理的方法、装置和系统 | |
JP4815547B2 (ja) | データ同期システム、データ同期方法、及び同期管理サーバ | |
CN107302849B (zh) | 一种光路径的分配方法及装置 | |
JP2017004050A (ja) | キュー管理方法、キュー管理プログラム及びキュー管理装置 | |
JP2017503422A (ja) | ネットワーク要素データアクセス方法および装置、およびネットワーク管理システム | |
US20210194790A1 (en) | Communication device and communication method | |
JP6063882B2 (ja) | 仮想マシン配置システム及び方法 | |
US20190059103A1 (en) | Control device and communication system | |
US9996372B2 (en) | Information processing apparatus, information processing system and program | |
JP2019022078A (ja) | 仮想サーバ編成方法および仮想サーバ編成システム | |
JP2019022057A (ja) | 仮想サーバ構成変更方法および仮想サーバ構成変更システム | |
JP2017058734A (ja) | 仮想マシン管理方法、仮想マシン管理装置及び仮想マシン管理プログラム | |
CN103561134B (zh) | 一种报文转发方法及系统 | |
JP7434893B2 (ja) | 情報処理管理装置および情報処理管理方法 | |
JP6357256B1 (ja) | 中継装置及びプログラム | |
JP6617087B2 (ja) | 分散処理システム、分散処理方法および分散処理プログラム | |
US9836319B2 (en) | Information sharing program, information sharing system and information sharing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181107 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20181212 |