JP6562744B2 - システム、及び制御方法 - Google Patents

システム、及び制御方法 Download PDF

Info

Publication number
JP6562744B2
JP6562744B2 JP2015140048A JP2015140048A JP6562744B2 JP 6562744 B2 JP6562744 B2 JP 6562744B2 JP 2015140048 A JP2015140048 A JP 2015140048A JP 2015140048 A JP2015140048 A JP 2015140048A JP 6562744 B2 JP6562744 B2 JP 6562744B2
Authority
JP
Japan
Prior art keywords
execution
task
control means
mode
task 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.)
Active
Application number
JP2015140048A
Other languages
English (en)
Other versions
JP2017021667A (ja
Inventor
中澤 紀之
紀之 中澤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2015140048A priority Critical patent/JP6562744B2/ja
Priority to DE102016008158.9A priority patent/DE102016008158A1/de
Priority to US15/208,242 priority patent/US20170017520A1/en
Publication of JP2017021667A publication Critical patent/JP2017021667A/ja
Application granted granted Critical
Publication of JP6562744B2 publication Critical patent/JP6562744B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、スケジューラなどのモジュールが複数存在する場合のタスクの実行制御のための技術に関する。
従来から、コンピュータ上でデータ処理をする際に、スケジューラなどのモジュールがキューを用いて各データ処理に対応する複数のタスクを管理して、処理順などを制御するといった技術が存在する(例えば、特許文献1)。ここで、タスクとは、キューなどで管理される処理の単位で、ジョブとも呼ばれる場合がある。複数のスケジューラなどのタスク実行制御モジュールがタスクを共通のキューに登録し、タスクを順番に処理するといったシステムも存在する。
また、近年、インターネットなどのネットワーク上に、クラウドコンピューティングといわれる仮想化技術を応用した技術を用いてアプリケーションやサービスを提供するシステムが構築される場合がある。このようなシステムにおいて、アプリケーションやサービスを停止することなくバージョンアップなどを行う手法として、ブルー・グリーン・デプロイメントという技術が存在する。
ブルー・グリーン・デプロイメントでは、ブルー環境とグリーン環境と呼ばれる2つの実行環境を用意して、それぞれでアプリケーションやサービスを稼働させてシステムを構築する。ここで、バージョンアップのためにこの技術を用いる場合には、グリーン環境上でバージョンアップ後のアプリケーションやサービスを稼働させる。
ブルー環境に構築されたシステムは、現在、インターネット上で公開されており、システム外部からのリクエストは、ルータ或はDNSなどを介して、ブルー環境に構築されたシステムに転送され、処理される。ブルー・グリーン・デプロイメントでは、ルータなどの設定を変更し、システム外部からのリクエストをグリーン環境上に構築されたシステムに転送させ、リクエストの処理/実行環境を切り替えることで、システムのバージョンアップを実現する。なお、バージョンアップ後であってもそれまで蓄積された処理結果やデータなどを利用できるように、それぞれの環境上のシステムは、データベースなどを共有するように構成される。
特開2009−176146号公報
ここで、ブルー環境とグリーン環境のそれぞれに構築されたシステム内で前述のスケジューラが動作し、それら環境で共有するデータベース内を用いて、複数のタスクに係るデータ処理を実現している場合がある。ここで管理されるタスクとしては、システム外部からのリクエストに対応する処理を定義したタスクや、定期実行する必要がある処理を定義したタスクなどがある。
ここで、例えば、ブルー環境上のシステムで動作するスケジューラは、処理環境の切り替えを考慮せずに、グリーン環境と共通して利用するデータベースを用いてタスクを管理したとする。このような場合、前述したグリーン環境上のシステムで動作するスケジューラが、本来はブルー環境上のシステムで動作するスケジューラが扱うべきタスクをデータベースから取り出して、グリーン環境上のシステムで実行させてしまうといった課題が発生し得る。
そこで、複数環境上のそれぞれで動作する複数の実行制御モジュールが共有するデータベースで管理されるタスクの実行制御を行う場合に、各タスクを実行するモジュールが保証される手法を提供することを目的とする。
上述した課題を解決するために、データベースで管理されたタスク情報に対応するタスクが実行される複数の実行環境を構築できるシステムであって、稼働中の複数の実行環境のそれぞれで動作する手段であって、前記データベースで管理された該手段の識別情報に紐付くタスク情報の中から、所定の条件に合致するタスク情報に対応するタスクの実行を制御する実行制御手段を、有し、前記複数の実行環境のそれぞれで動作する複数の前記実行制御手段において、いずれか1つの実行制御手段には動作モードとして第1のモードが設定され、他の実行制御手段には動作モードとして前記第1のモードとは異なる第2のモードが設定され、前記第2のモードが設定された実行制御手段は、当該手段の識別情報に紐付いていないタスク情報に対応するタスクについては実行制御せず、前記第1のモードが設定された実行制御手段は、稼働中の前記複数の実行環境のそれぞれで動作する複数の実行制御手段の識別情報のいずれにも紐付かないタスク情報も前記データベースから取得して、当該取得されたタスク情報に対応するタスクの実行を制御することを特徴とする。
本発明に依れば、複数環境上のそれぞれで動作する複数の実行制御モジュールが共有するデータベースで管理されるタスクの実行制御を行う場合に、各タスクを実行するモジュールが保証されるようになる。
本発明に係るシステム全体の構成例を示す図。 情報処理装置のハードウェアの構成例を示すブロック図。 各環境103及び107の内部構成の例をより詳細に説明するための図。 仮想マシンの構成例を示す図。 タスク情報の内容の例を示す図。 スケジューラによるタスクの実行制御に係る処理を説明するためのフローチャート。 タスクの実行処理を説明するためのフローチャート。 切替制御部による環境の切替え処理を説明するためのフローチャート。 スケジューラの動作モードが決定される処理を説明するためのフローチャート。 スケジューラによるタスク情報の登録処理を説明するためのフローチャート。
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明に係るシステム全体の構成例を示す図である。
クライアント101は、システムの本番環境(ブルー環境103)により提供されるサービスを利用するユーザが利用する端末である。クライアント101は、ウェブブラウザなどを用いて、システム100にアクセスし、リクエストを送信する。システム100の外部には、該システムの提供するサービスを利用するクライアントが、クライアント101以外にも複数存在してもよい。そのような場合には、複数のクライアントは、それぞれ、システム100に対してリクエストを送信する。
ルータ102は、クライアント101からのシステム100に対するリクエストを受け付けて、該リクエストを適当な実行環境に転送する。現在、システム内では2つの実行環境が稼働中であり、ブルー環境103が本番環境として公開されているので、ルータ102は、クライアント101からのリクエストをブルー環境103に転送する。ここでは、ブルー環境103のようなシステム外部のクライアントにサービスを公開中の実行環境を本番環境と呼んでいる。一方で、システム外部のクライアント101などにサービスを公開していないグリーン環境107のことをテスト環境や予備環境などと呼ぶ場合がある。グリーン環境107は、システム外部のクライアント101などにサービスを公開していないが、内部の構成は通常動作しており、システム管理者などからはアクセスしてシステムを利用することも可能である。また、グリーン環境107は、複数用意しても良い。また、ブルー環境103、グリーン環境107などの各環境は、ユニークな環境識別子を属性情報として有している。この環境識別子は、各環境内に含まれるスケジューラなどの構成から参照可能である。
ブルー環境103は、WEBサーバ104、アプリケーションサーバ105、スケジューラ106により構成されている。WEBサーバ104、アプリケーションサーバ105はそれぞれ複数構築されてもよく、またそれらサーバは1以上のサーバコンピュータ上の仮想マシンで実現されるものとする。
WEBサーバ104は、クライアント101からのリクエストを受信し、必要に応じてアプリケーションサーバ105を呼び出し、クライアント101に該リクエストの処理結果を返信する。アプリケーションサーバ105は、WEBサーバ104やスケジューラからのリクエストを受信し、該リクエストに従う処理を実行し、呼び出し元に処理結果を返す。また、アプリケーションサーバ105は、リクエストの前後などに必要に応じてデータベース111内のデータを操作する。
スケジューラ106は、WEBサーバ104やアプリケーションサーバ105などからの所定のWEB APIを介したリクエストとして、タスク情報を受信し、これをデータベース111に格納する。データベース111ではタスク情報テーブルによりタスク情報が管理される。スケジューラ106は、タスク情報テーブルを定期的に参照し、管理されたタスク情報のスケジュール情報に従って、タスク情報に対応するタスクを実行する。スケジューラ106は、例えば、アプリケーションサーバ105の機能を呼び出すことにより、タスクの実行を行う。
データベース111は、ブルー環境103とグリーン環境107の両方のシステム内のアプリケーションやサービス、スケジューラからアクセス可能となっている。
グリーン環境107の構成は基本的にはブルー環境103と同様の構成となる。差異としては、環境内で動作するアプリケーションやサービスなど(例えば、WEBサーバ108やアプリケーションサーバ109で動作するプログラム)のバージョンが異なる点などである。グリーン環境107においても、スケジューラ106と同様の機能をもつ、スケジューラ110が動作している。
切替制御部112は、クライアント101からのリクエストの処理環境を、ブルー環境103からグリーン環境107へと切り変える等の、環境を切り替える処理を実行する。この切り替えの実行タイミングは、システム100の管理者による指示入力に従い実行されたり、事前に設定されたスケジュールに従い自動で実行されたりする。なお、グリーン環境107内の各構成は、運用テストなどを目的に、一定期間、ブルー環境103と並存して、動作する。このテストの期間は、スケジューラ110による内部的なタスクの実行制御が動作したり、管理者による手動でのリクエストがWEBサーバ108やアプリケーションサーバ109で実行されたりすることになる。十分なテストが完了した場合に、上述のタイミングにより、切替制御部112による環境を切り替える処理が実行される。
図2は、仮想マシンが動作するサーバコンピュータなどを含む情報処理装置のハードウェア構成を示すブロック図である。同図において、情報処理装置は、CPU501、RAM502、ROM503、外部記憶装置507を備える。CPU501は、ROM502や外部記憶装置507に記憶された、或いはネットワークよりダウンロードしたソフトウェアを実行し、システムバス509に接続された各デバイスを総括的に制御する。RAM502は、CPU501の主メモリあるいはワークエリアなどとして機能する。外部記憶装置507はハードディスク(HD)やソリッドステートドライブ(SSD)等からなる。外部記憶装置507は、ブートプログラム、オペレーティングシステム、認証サーバ、認証クライアント等を含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。さらに情報処理装置において、504はキーボードコントローラ(KBDC)であり、キーボードやポインティングデバイスからの入力情報をCPU501に送る。505はビデオコントローラ(VC)であり、LDC等からなる表示装置の表示を制御する。506はディスクコントローラ(DC)であり、外部記憶装置507とのアクセスを制御する。408はネットワークインターフェースコントローラ(NIC:Network Interface Controller)であり、これを介してネットワークに接続される。図4で後述するような仮想マシン(VM)は、ハイパーバイザと呼ばれる仮想化ソフトウェアがエミュレートしている。
図3は、図1で前述した各環境103及び107の内部構成の例をより詳細に説明するための図である。図3では、301、302、303はWEBサーバであり、同じウェブアプリケーションが動作している。304及び305はアプリケーションサーバであり、同じアプリケーションが動作している。
ロードバランサ(LB)306は、クライアント101からのリクエストをWEBサーバ301〜303に振り分けることで負荷分散を行う構成である。また、ロードバランサ(LB)307は、WEBサーバ301〜303やスケジューラ106からのリクエストをアプリケーションサーバ304及び305の何れかに振り分けることで負荷分散を行う。WEBサーバやアプリサーバ、スケジューラは、仮想マシン(Virtual Machine)で実現される。
なお、本図におけるスケジューラは、スケジューラ106、スケジューラ110の何れかである。また、図1におけるWEBサーバ104はLB306とWEBサーバ301、302、303に対応し、アプリケーションサーバ105はLB307とアプリサーバ304、305に対応するものである。
図4は、仮想マシンを供給するサーバとコントローラの構成を示す図である。同図に於いて、401〜405は仮想サーバ、406は仮想サーバ全体を制御するコントローラである。これらのサーバ及びコントローラは、ネットワークを介して相互に接続されている。図では、仮想サーバの内部構造を401内部に示している。同構造は、401から405全ての仮想サーバに共通である。
仮想サーバ内には、複数の仮想マシン408、409、410が動作する。仮想マシンは、ホストコンピュータをエミュレートし、その中で、オペレーティングシステム412や、オペレーティングシステム上で動作するアプリケーション411が動作する。413は通信コントローラをエミュレートする仮想NICであり、仮想スイッチ407及びNIC408を介して、ネットワーク407や仮想スイッチ407に接続された他の仮想NICとデータの送受信を行う。仮想スイッチ407は、スイッチング・ハブをエミュレートするソフトウェアであり、仮想マシン内の仮想NICや仮想サーバ401内のNIC408との通信を制御する。仮想サーバ上で仮想マシンを実現するソフトウェアをハイパーバイザと呼ぶ。コントローラ406は、仮想サーバ内の仮想マシンや仮想スイッチの設定を管理する。例えば、コントローラ406は、負荷に応じてWEBサーバやアプリケーションサーバの数を増減する。また、コントローラ406は仮想マシン408内で動作するアプリケーション412を監視し、アプリケーション412の故障を検知すると、仮想マシン408の停止し起動する。
[本発明におけるタスク情報の説明]
スケジューラ106は、タスク情報をデータベース111内に格納し、タスク情報に従うタスクの実行を制御する。WEBサーバ104やアプリケーションサーバ105は、WEB APIを介して、スケジューラ106に対してタスクの登録や変更を指示できる。
ここで、表1は、データベース111に格納され、管理されるタスク情報の内容(フォーマット)を示している。
Figure 0006562744

「スケジューラID」は、スケジューラの起動時にUUID等からそれぞれが生成したスケジューラのそれぞれのインスタンスを一意に識別する識別情報(文字列)を示す。異なるスケジューラのインスタンスは、異なるスケジューラIDを持つ。例えば、スケジューラ106は、タスク情報の追加時及びタスク情報の変更時に、自身のスケジューラIDをここに設定する。
「タスク名」は、データベース111に格納されたタスク情報を一意に識別するための文字列であり、タスク情報の登録元から指定される。
「実行予定日時」は、本タスク情報に従うタスクを実行すべきスケジュール情報を示す。年月日時などを用いて指定される。ここで、タスク情報が繰り返しタスクを示す場合には、「実行予定日時」はタスクの登録時及び実行時に後述の繰り返し設定から計算される。繰り返しタスクでない場合には、タスク情報の登録元から指定される。
「繰り返し設定」は、タスクを繰り返し実行する場合の繰り返し設定を、JSON形式で表現したものであり、タスク情報の登録元から指定される。この項目には、繰り返す期間の終端を示す終了日時も併せて指定されている場合がある。なお、「繰り返し設定」が空の場合は、「実行予定日時」に指定されたスケジュールで、1回位だけ実行されるタスクである。
図5(a)は、表1の「繰り返し設定」の一例を示す。これは、東京時間の2015年2月4日から2020年2月3日まで、毎年、東京時間で3月と6月と9月と12月の月曜日から金曜日の0時15分、0時45分、12時15分、12時45分にタスクを実行することを意味する。
図5(b)は、表1の「繰り返し設定」の別の例を示す。これは、東京時間の2015年2月4日8時12分から、3分毎にタスクを呼び出すことを意味する。スケジューラ106は、タスク情報にこのような繰り返し設定の指定がある場合、後述の図10などでタスク情報をデータベースに登録する際などに、現在時刻以降で最も近い実行予定日時を計算し、タスクの「実行予定日時」に設定する。
「タスクの種別」は、タスクの実行方式である。例えば、スケジューラは、以下の2種類のタスクの実行方法を提供する。
1.“メッセージキュー(MQ)”:メッセージキューにタスクに対応するメッセージを送信することにより、メッセージキューからメッセージを受信するアプリケーションサーバ105、109にタスクの実行を指示する。
2.“WEB API呼び出し(HTTP)”:アプリケーションサーバ105、109が提供するWEB APIの呼び出しにより、アプリケーションサーバ105、109にタスクの実行を指示する。
「詳細」は、スケジューラがアプリケーションサーバにタスクの実行を指示する際の詳細設定をJSON形式で表現したものである。スケジューラは、「タスクの種別」と「詳細」を利用して、アプリケーションサーバに対してタスクの実行を指示する。
図5(c)は、タスク種別がメッセージキューの場合の、表1の「詳細」の一例を示す。
「aggregate」というメッセージキューに「159d2778−6adc−42af−b493−675b282a7e95」というメッセージを送信することを意味する。例えば、アプリサーバ103は、メッセージキュー「aggregate」からメッセージを定期的に取り出し、メッセージに記載されたID、即ち「159d2778−6adc−42af−b493−675b282a7e95」を持つユーザに関する集計を実施し、その集計結果をデータベースに格納する、といった処理を行う。
図5(d)は、タスク種別がWEB API呼び出しの場合の「詳細」の一例を示す。
“target”は、WEB APIの呼び出し先のアドレス(スキーマ、ホスト、ポート)を各環境(103、107)から取得する際に用いる名前である。アプリケーションサーバのアドレスは各環境で異なるため、スケジューラはアプリサーバのアドレスを各環境から取得する。
“path”は、WEB API呼び出しのURLのパスである。例えば、“target”を指定して各環境から得られるアドレスが「http://192.168.11.30:8080」の場合、上記WEB APIを呼び出すためのURLは、「http://192.168.11.30:8080/send」となる。この例は、このURLに対し、「jp」というデータを平文でPOSTすることを意味している。例えば、上記リクエストを受信したアプリサーバ103は、地域が「jp」である顧客に対して、送信待ちになっているメール送信を行う、といった処理を行う。
図6を用いて、スケジューラ106または110によるタスクの実行制御のための処理を説明する。
図6(a)は、スケジューラ106または110によるタスク起動処理の呼び出し処理を説明するためのフローチャートである。本処理により、タスク起動処理は周期的に呼び出され、実行されることになる。また、本処理では、スケジューラ106または110は複数の条件のそれぞれに合致するタスク情報をデータベース111から取得して実行制御することになる。
S601で、スケジューラ106または110は、所定期間(例えば、1分)が経過したかを判定する。経過した場合にはS602に進み、タスク起動処理を呼び出す。
図6(b)は、スケジューラ106または110によるタスク起動処理を説明するためのフローチャートである。本処理は、前述した通り、S602で呼び出される。
まず、S603にて、スケジューラ106または110は、データベース111のタスク情報テーブルから、自身のスケジューラIDが設定されているタスク情報を参照する。そして、そのタスク情報の中から、1つ目の条件として、現在日時より以前のスケジュール情報(年月日時)が項目「実行予定日時」に指定されたタスク情報を特定して、データベース111から取得する。複数のタスク情報がタスク情報テーブルから取得される場合がある。
S604にて、スケジューラ106または110により、S603で取得されたタスク情報に対応するタスクの実行処理が行われる。タスク情報が複数取得されていた場合には、複数のタスクのそれぞれについて実行処理が行われることになる。タスク実行処理の詳細は、図7で後述する。
S605にて、スケジューラ106または110は、現在の自身のモードを確認する。スケジューラの動作モードは、“主”モードあるいは“副”モードのいずれかを示す値を取る。本番環境におけるスケジューラの動作モードは“主”モードを示す。テスト環境または予備環境におけるスケジューラの動作モードは“副”モードを示す。S605において現在の動作モードが“主”モードを示さない場合には本処理が終了し、現在の動作モードが“主”モードを示す場合にはS606に進む。
S606にて、スケジューラ106または110は、2つ目の条件として、現在日時より所定時間(例えば、3分)前の日時以前のスケジュール情報が項目「実行予定日時」に指定されたタスク情報を特定して、データベース111から取得する。S607にて、スケジューラ106または110により、S606で取得されたタスク情報に対応するタスクの実行処理が行われる。その後、本処理を終了する。
尚、上述のS601の所定期間をX分、S606の所定時間をY分とすると、以下のような関係が成り立つように、任意にXとの値を指定することが可能である。ここで、図6(a)の呼び出し処理を実行してタスク起動処理(図6(b))が開始されるまでに必要となると予想される最大時間をαとする。
(関係式):Y>(2×X)+α
例えば、ブルー環境103が本番環境であった場合には、スケジューラ106がS606の処理を実行することになる。この際に、現在日時から所定時間Y分前の日時の間には、上述の関係式により“副”モードで動作しているスケジューラ110がS603〜S604を実行していることが保証される。
従って、S606で取得されるタスク情報は、スケジューラ106、110のいずれのスケジューラIDとも異なる識別情報が「スケジューラID」に設定されたタスク情報となる。また、ケジューラ106はスケジューラ110が処理すべきタスク情報を間違って取得することもない。
このようなタスク情報が取得されるケースは、図1で示したブルー環境103、グリーン環境107とは異なる過去に利用されていた環境(不図示)がデータベース111に登録したタスク情報を示す。本発明が利用するブルー・グリーン・デプロイメントといった技術により、環境の切り替えを繰り返した場合には、過去に利用されていた環境の動作が停止してしまったスケジューラにより登録されたタスク情報が、データベース111に処理されずに残ってしまう場合がある。このようなタスク情報に関しても、システム100内で実行すべきであるので、停止してしまったスケジューラに代わり、本実施例では現在本番環境のスケジューラ106が、それに対応するタスクの実行制御を行うものとしている。
図7は、図6のS604およびS607での、スケジューラ106または110によるタスクの実行処理の詳細を説明するためのフローチャートである。
S702にて、スケジューラ106または110は、タスク情報のタスク種別を判別する。タスク種別がメッセージキュー(MQ)を示す場合、S703にて、スケジューラ106または110は、タスク情報の項目「詳細」などで指定内容に従い、メッセージキューにメッセージを登録する。一方で、タスク種別がWEB API呼び出し(HTTP)を示す場合、S704にて、スケジューラ106または110は、タスク情報の項目「詳細」などで指定内容に従い、指定されたメソッド、及び本文を含むパケットを作成し、指定URLに対して送信する。S703及びS704の処理によって、アプリケーションサーバなどでで、タスクが実行されることになる。
S705にて、スケジューラ106または110は、タスク情報の項目「繰り返し設定」に指定があるか否かを判断する。「繰り返し設定」に指定がない場合にはS706に進み、「繰り返し設定」に指定がある場合にはS707に進む。
S706にて、スケジューラ106または110は、データベース111内の処理対象であるタスク情報を無効にして、本処理を終了する。ここで、タスク情報を無効にするとは、例えば、データベース111から該タスク情報を削除する、或は、タスク情報の項目「実行予定日時」に対して“9999年”などといった実行されないと想定されるようなスケジュール情報を設定する。これにより、無効になったタスク情報は、前述したS603及びS606などでは取得されなくなる。
S707にて、スケジューラ106または110は、タスク情報の項目「繰り返し設定」の指定内容から、次回の実行タイミング(年月日時)を計算する。次に、S708にて、スケジューラ106または110は、タスク情報の項目「繰り返し設定」で終了日時が指定されている場合に、S707で計算された次回の実行タイミングと、該終了日時とを比較する。S708での比較の結果、次回の実行タイミングが終了日時以後となっている場合にはS706に進み、そうでない場合にはS709に進む。なお、終了日時が設定されていない場合には、本ステップを省略して、S709に進む。
S709にて、スケジューラ106または110は、自身のスケジューラIDとS707で計算された次回の実行タイミングとを用いて、データベース111に格納されている処理対象のタスク情報の「スケジューラID」及び「実行予定日時」で指定される情報を更新する。
表2は、データベース111に格納され、管理されているタスク情報テーブルの具体例である。なお、タスク情報テーブルで管理される内容は、この例に含まれる内容以外の情報が含まれてもよい。
Figure 0006562744

上述のタスク情報テーブルには、少なくとも、3つの異なるスケジューラのインスタンス(「スケジューラID」が、“550e8400”、“8761d91a”、“619c82b9”)に紐付けられたタスク情報が登録されている。また、「タスク名」“check”のタスク情報は、「繰り返し設定」が指定されていない。
例えば、ブルー環境103のスケジューラ106が毎分00秒に図6(b)に示すタスク起動処理を呼び出し、グリーン環境107のスケジューラ110が毎分30秒に図6(b)で示すタスク起動処理を呼び出すとする。また、スケジューラ106とスケジューラ110の「スケジューラID」はそれぞれ、“550e8400”と、“619c82b9”であるとする。一方、「スケジューラID」が“8761d91a”は、ブルー環境103、グリーン環境107のいずれでもない旧環境のスケジューラの識別情報を示すものである。該スケジューラは現在動作していないものとする。
ここで、上述のタスク情報テーブルに含まれるタスク情報に従い行われるタスクの実行制御について、具体的に説明する。
現在時刻が2015年5月12日12時23分30秒になると、スケジューラ110は、図6(b)のS603にて、「タスク名」が“check”のタスク情報を取得することになり、S604でこのタスク情報に対応するタスクを実行する。スケジューラ110は、動作モードが“副”モードを示すため、図6(b)で示す処理をこれで終了する。「タスク名」が“check”のタスク情報は、図7のS706で無効になる。
次に、現在時刻が12時24分00秒になると、スケジューラ106は、図6(b)のS603にて、「タスク名」が“sendmail”のタスク情報を取得することになり、S604でこのタスク情報に対応するタスクを実行する。スケジューラ106が、「タスク名」が“sendmail”のタスク情報に対応するタスクを実行した際には、上述のタスク情報テーブルの対象となるタスク情報について、図7のS709で「実行予定日時」のみが更新されることになる。
スケジューラ106は、動作モードが“主”モードを示すため、次にS606で更なるタスク情報の取得処理を行う。ここでは、「実行予定日時」が2015年5月12日12時21分00秒(現在時刻より3分前)より以前に設定されている「タスク名」が“aggregate”であるタスク情報を取得する。スケジューラ106は、S607で、ここで取得された「スケジューラID」が“8761d91a”に紐づけられた「タスク名」が“aggregate”であるタスク情報に対応するタスクを実行する。スケジューラ106が、「タスク名」が“aggregate”であるタスク情報に対応するタスクを実行した際には、上述のタスク情報テーブルの対象となるタスク情報について、図7のS709で「実行予定日時」と「スケジューラID」とが更新される。とくに、「スケジューラID」については、スケジューラ106を示す識別情報“550e8400”に更新される。
この「スケジューラID」で示す情報の更新により、スケジューラ106は、「タスク名」が“aggregate”であるタスク情報に対応するタスクを、次回からはS604のタイミングで実行できるようになる。
図8は、切替制御部112による環境の切替え処理を説明するためのフローチャートである。本処理では、ブルー環境103からグリーン環境107へと本番環境を切り替える処理について詳しく説明する。なお、本処理はシステム100の管理者による指示入力や、事前に設定されたスケジュールに従い開始されるものである。
S801にて、切替制御部112は、本番環境としてサービスをシステム外部のクライアント101に公開しているブルー環境103内のスケジューラ106を停止する。具体的には、各環境のスケジューラは、処理停止のためのWEB APIを提供しており、切替制御部112はスケジューラ106のこのAPIを呼び出す。スケジューラ停止処理後は、図6で示した周期的に実行される処理などが全て停止する。
S802にて、切替制御部112は、本番環境をグリーン環境107に切り替えるため、ルータ102の設定を変更する。S803にて、切替制御部112は、グリーン環境107内のスケジューラ110の動作モードを“主”に変更する。具体的には、各環境のスケジューラは、動作モードを変更するためのWEB APIを提供しており、切替制御部112はスケジューラ110のこのAPIを呼び出し、動作モードを変更する。
図9を用いて、スケジューラの動作モードが決定される処理を説明する。
図9(a)は、スケジューラの動作モードの設定処理を説明するためのフローチャートである。本処理は、図8のS803にて呼び出され、実行される。なお、ブルー環境103やグリーン環境107等の環境は、それぞれの環境を一意に識別する環境識別子を持ち、環境内で動作するプログラムは前記環境識別子を取得することが可能である。
S901にて、スケジューラ106または110は、自身の動作モードを指定されたモードに変更する。次に、S902にて、スケジューラ106または110は、変更後の動作モードが“主”モードであるか否かを判定する。ここで、“主”モードだった場合にはS903に進み、“主”モードでない場合には本処理を終了する。
S903にて、スケジューラ106または110は、自身が動作している環境を示す環境識別子を取得して、データベース111に書き込んだ後に、本処理を終了する。S903の処理により、現在の本番環境の環境識別子が、データベース111で管理されることになる。
図9(b)は、スケジューラの動作モードの設定処理を説明するためのフローチャートである。この処理は、スケジューラの起動時に実行される。
S905にて、スケジューラ106または110は、データベース111から、環境識別子を取得する。これは、前述のS903で、動作モードが“主”モードであるスケジューラにより、データベース111に対して書き込まれた値である。
S906で、スケジューラ106または110は、自身が動作している環境の環境識別子と、S905で取得した環境識別子とを比較する。比較の結果、両者が一致する場合にはS907に進み、一致しない場合にはS908に進む。
S907で、スケジューラ106または110は、自身の動作モードを“主”に設定する。また、S908で、スケジューラ106または110は、自身の動作モードを“副”に設定する。
本処理に依れば、例えば、動作モードが“主”モードで稼働していたスケジューラ106が、何らかの理由で停止した後に再起動した場合には、再起動後のスケジューラ106の動作モードは“主”モードに設定される。なお、本発明が想定しているシステム100など仮想環境を利用したWEBアプリケーションやサービスの提供では、各仮想マシン内のアプリケーションの稼働状況を監視している。アプリケーションの動作に問題が見つかった場合、監視処理は、アプリケーションが動作する仮想マシンを破棄し、アプリケーションを含む仮想マシンを新規に作成することによりアプリケーションを再配置する。この際、スケジューラ106を識別するスケジューラIDは再起動前のものと異なる。
図10は、スケジューラ106または110が、データベース111にタスクを登録する処理の流れを示すフローチャートである。
S1001にて、スケジューラ106または110は、タスク情報の登録のためのリクエストを受付けて、当該リクエストの中から登録対象となるタスク情報を取り出す。リクエストはWEB APIなどを経由して受け付ける。取り出されるタスク情報の内容は、タスクを一意に識別するためのタスク名、実行予定日時、繰り返し設定、タスク種別、詳細といった各項目に対する情報が含まれる。ここで、タスクが繰り返しタスクでない場合には項目「繰り返し設定」に対する情報は空である。また、タスクが繰り返しタスクの場合には項目「実行予定日時」に対する情報は空である。
S1002にて、スケジューラ106または110は、S1001で取り出されたタスク情報の項目「タスク名」で指定される情報を持つタスク情報が、データベース111に既に存在する(登録済み)か、を検査する。検査の結果、データベース111に未登録の場合にはS1003に進み、データベース111に登録済み場合にはタスク情報を登録せずに本処理を終了する。
S1003にて、スケジューラ106または110は、S1001で取り出されたタスク情報の項目「繰り返し設定」で繰り返し設定が指定されているか否かを判定する。繰り返し設定のある繰り返しタスクであった場合にはS1004に進み、繰り返し設定のないタスクであった場合にはS1005に進む。
S1004にて、スケジューラ106または110は、S1001で取り出されたタスク情報の項目「繰り返し設定」の指定内容から、次回の実行タイミング(年月日時)を計算する。その後、該タスク情報の項目「実行予定日時」に、計算結果である次回の実行タイミングを示すスケジュール情報を設定する。
S1005にて、スケジューラ106または110は、自身を識別するための識別情報を「スケジューラID」として設定したうえで、タスク情報をデータベース111に格納して、本処理を終了する。データベース111に格納されたタスク情報は、前述したタスク情報テーブルで管理されることになる。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。
100 システム
103 ブルー環境
106、110 スケジューラ
107 グリーン環境
111 データベース
112 切替制御部

Claims (10)

  1. データベースで管理されたタスク情報に対応するタスクが実行される複数の実行環境を構築できるシステムであって、
    稼働中の複数の実行環境のそれぞれで動作する手段であって、前記データベースで管理された該手段の識別情報に紐付くタスク情報の中から、所定の条件に合致するタスク情報に対応するタスクの実行を制御する実行制御手段を、有し、
    前記複数の実行環境のそれぞれで動作する複数の前記実行制御手段において、いずれか1つの実行制御手段には動作モードとして第1のモードが設定され、他の実行制御手段には動作モードとして前記第1のモードとは異なる第2のモードが設定され、
    前記第2のモードが設定された実行制御手段は、当該手段の識別情報に紐付いていないタスク情報に対応するタスクについては実行制御せず、
    前記第1のモードが設定された実行制御手段は、稼働中の前記複数の実行環境のそれぞれで動作する複数の実行制御手段の識別情報のいずれにも紐付かないタスク情報も前記データベースから取得して、当該取得されたタスク情報に対応するタスクの実行を制御することを特徴とするシステム。
  2. 前記第1のモードが設定された実行制御手段は、該手段が動作する実行環境を示す環境識別子を前記データベースに格納することを特徴とする請求項1に記載のシステム。
  3. 前記データベースに格納された環境識別子で示される実行環境で実行制御手段が起動された場合に、当該起動された実行制御手段に動作モードとして前記第1のモードが設定され、
    前記データベースに格納された環境識別子で示される実行環境とは異なる実行環境で実行制御手段が起動された場合に、当該起動された実行制御手段に動作モードとして前記第2のモードが設定されることを特徴とする請求項2に記載のシステム。
  4. 前記複数の実行環境のそれぞれで動作する前記実行制御手段は、タスク情報の登録ためのリクエストがあった場合には、該手段の識別情報を前記リクエストに含まれるタスク情報に紐付けて前記データベースに登録することを特徴とする請求項1乃至3のいずれか1項に記載のシステム。
  5. 前記複数の実行環境のそれぞれで動作する前記実行制御手段は、前記リクエストに含まれるタスク情報に繰り返し設定があった場合には、該タスク情報に対応するタスクの次回の実行タイミングを設定した上で、該タスク情報を前記データベースに登録することを特徴とする請求項4に記載のシステム。
  6. 前記第2のモードが設定された実行制御手段の動作モードが前記第1のモードに変更される実行環境の切替え処理が行われた場合に、切替え前に前記第1のモードが設定されていた実行制御手段によるタスクの実行の制御が停止されることを特徴とする請求項1乃至5のいずれか1項に記載のシステム。
  7. 前記第1のモードが設定された実行制御手段は、稼働中の前記複数の実行環境のそれぞれで動作する複数の実行制御手段の識別情報のいずれにも紐付かないタスク情報を前記データベースから取得して、当該取得されたタスク情報に対応するタスクの実行を制御した際には、該タスク情報に自身の識別情報を紐付けて、前記データベースに登録することを特徴とする請求項1乃至6のいずれか1項に記載のシステム。
  8. 前記タスク情報には、タスク種別を示す情報が含まれ、
    該情報に従う実行方式によって前記タスク情報に対応するタスクが実行されることを特徴とする請求項1乃至7のいずれか1項に記載のシステム。
  9. 前記第1のモードが設定された実行制御手段が動作する実行環境は、前記システムの外部のクライアントに対してサービスを公開していることを特徴とする請求項1乃至8の何れか1項に記載のシステム。
  10. データベースで管理されたタスク情報に対応するタスクが実行される複数の実行環境を構築できるシステムにおける制御方法であって、
    稼働中の複数の実行環境のそれぞれで動作する実行制御手段が、前記データベースで管理された該手段の識別情報に紐付くタスク情報の中から、所定の条件に合致するタスク情報に対応するタスクの実行を制御する制御工程を、有し、
    前記複数の実行環境のそれぞれで動作する複数の前記実行制御手段において、いずれか1つの実行制御手段には動作モードとして第1のモードが設定され、他の実行制御手段には動作モードとして前記第1のモードとは異なる第2のモードが設定され、
    前記第2のモードが設定された実行制御手段は、当該手段の識別情報に紐付いていないタスク情報に対応するタスクについては実行制御せず、
    前記第1のモードが設定された実行制御手段により、稼働中の前記複数の実行環境のそれぞれで動作する複数の実行制御手段の識別情報のいずれにも紐付かないタスク情報も前記データベースから取得され、当該取得されたタスク情報に対応するタスクの実行が制御されることを特徴とする制御方法。
JP2015140048A 2015-07-13 2015-07-13 システム、及び制御方法 Active JP6562744B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015140048A JP6562744B2 (ja) 2015-07-13 2015-07-13 システム、及び制御方法
DE102016008158.9A DE102016008158A1 (de) 2015-07-13 2016-07-04 System und steuerverfahren
US15/208,242 US20170017520A1 (en) 2015-07-13 2016-07-12 System and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015140048A JP6562744B2 (ja) 2015-07-13 2015-07-13 システム、及び制御方法

Publications (2)

Publication Number Publication Date
JP2017021667A JP2017021667A (ja) 2017-01-26
JP6562744B2 true JP6562744B2 (ja) 2019-08-21

Family

ID=57630437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015140048A Active JP6562744B2 (ja) 2015-07-13 2015-07-13 システム、及び制御方法

Country Status (3)

Country Link
US (1) US20170017520A1 (ja)
JP (1) JP6562744B2 (ja)
DE (1) DE102016008158A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107871194B (zh) * 2016-09-28 2020-10-16 北京北方华创微电子装备有限公司 一种生产线设备的调度方法和装置
CA3105553A1 (en) * 2021-01-11 2022-07-11 Walmart Apollo, Llc Cloud-based sftp server system
WO2023248282A1 (ja) * 2022-06-20 2023-12-28 日本電信電話株式会社 コンテナ基盤クラスタのアップデート方法、コンテナ基盤クラスタのアップデートシステム、更新管理装置、及びアップデート制御プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04113446A (ja) * 1990-09-04 1992-04-14 Nec Corp ジョブ実行システム自動選択方式
JP2003006170A (ja) * 2001-06-20 2003-01-10 Hitachi Ltd 複数計算機環境でのプログラム実行方法
US7093259B2 (en) * 2001-12-20 2006-08-15 Cadence Design Systems, Inc. Hierarchically structured logging for computer work processing
US7379989B2 (en) * 2003-07-31 2008-05-27 International Business Machines Corporation Method for dual agent processes and dual active server processes
JP4238142B2 (ja) * 2004-01-15 2009-03-11 株式会社日立製作所 プログラムコンポーネントの処理要求キューの構成方法、プログラムコンポーネントの登録方法及び実行制御方法、プログラムコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバ
US8397224B2 (en) * 2004-09-13 2013-03-12 The Mathworks, Inc. Methods and system for executing a program in multiple execution environments
US20070226226A1 (en) * 2006-03-23 2007-09-27 Elta Systems Ltd. Method and system for distributing processing of computerized tasks
WO2008062647A1 (en) * 2006-11-02 2008-05-29 Nec Corporation Multiprocessor system, system configuration method in multiprocessor system, and program thereof
US9645845B2 (en) * 2007-09-27 2017-05-09 Sap Se Triggering job execution in application servers based on asynchronous messages sent by scheduling tasks
JP4992740B2 (ja) 2008-01-25 2012-08-08 富士通株式会社 マルチプロセッサシステム、障害検出方法および障害検出プログラム
JP5323554B2 (ja) * 2009-03-27 2013-10-23 株式会社日立製作所 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
WO2011061742A2 (en) * 2009-11-18 2011-05-26 Yissum Research Development Company Of The Hebrew University Of Jerusalem, Ltd. Communication system and method for managing data transfer through a communication network
US8549536B2 (en) * 2009-11-30 2013-10-01 Autonomy, Inc. Performing a workflow having a set of dependancy-related predefined activities on a plurality of task servers
US9459898B2 (en) * 2011-10-06 2016-10-04 Hitachi, Ltd. Virtual server processing control method, system, and virtual server processing control management server
JP5998577B2 (ja) * 2012-03-29 2016-09-28 日本電気株式会社 クラスタ監視装置、クラスタ監視方法、及びプログラム
JP5882837B2 (ja) * 2012-06-11 2016-03-09 キヤノン株式会社 情報処理システム、画像形成装置、制御方法およびコンピュータプログラム
WO2014171130A1 (ja) * 2013-04-17 2014-10-23 日本電気株式会社 情報処理システム、配備方法、処理装置、及び、配備装置
US9860155B1 (en) * 2013-09-27 2018-01-02 Amazon Technologies, Inc. Code coverage and data analysis
US9853868B2 (en) * 2014-12-05 2017-12-26 Accenture Global Services Limited Type-to-type analysis for cloud computing technical components
US9916233B1 (en) * 2015-03-27 2018-03-13 Amazon Technologies, Inc. Using containers for update deployment

Also Published As

Publication number Publication date
US20170017520A1 (en) 2017-01-19
DE102016008158A1 (de) 2017-01-19
JP2017021667A (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
US11740975B2 (en) System and method for managing blockchain nodes
US11003434B2 (en) Cloud services release orchestration with a reusable deployment pipeline
US9819538B2 (en) Maintaining resource availability during maintenance operations
US9292319B2 (en) Global computing interface
US10114665B2 (en) Communication node upgrade system and method for a communication network
US20160055045A1 (en) Method and arrangement for fault management in infrastructure as a service clouds
CN111277432A (zh) 配置信息更新方法、装置、电子设备及存储介质
CN113590146B (zh) 服务器及容器升级方法
JP2012524919A (ja) ライブレプリケーションのための方法及び装置
US10581966B2 (en) Cloud services integrated backup and restore
US11997015B2 (en) Route updating method and user cluster
KR20160136489A (ko) 클라우드 서비스를 위한 가상화 기반 자원 관리 방법
JP2010205047A (ja) 業務環境生成システム、業務環境生成方法、及び業務環境生成用プログラム
CN104158868B (zh) 一种文件传输方法和管理服务器
CN102523109A (zh) 资源状态更新方法、管理客户端及服务器
JP6562744B2 (ja) システム、及び制御方法
US11803410B2 (en) Asserting initialization status of virtualized system
JP2018063672A (ja) メッセージ実行サーバー、制御方法、およびプログラム
CN115309457B (zh) 应用实例的重启方法、装置、电子设备及可读存储介质
JP2013186755A (ja) 情報処理装置、イメージファイル管理方法およびプログラム
US9483326B2 (en) Non-invasive upgrades of server components in cloud deployments
US11588712B2 (en) Systems including interfaces for communication of run-time configuration information
CN111045778B (zh) 一种虚拟机的创建方法、装置、服务器及存储介质
KR102617686B1 (ko) 클라우드 컴퓨팅 환경에서 클러스터 구성 및 관리 시스템 및 그 방법
JP2021184235A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190531

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: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190723

R151 Written notification of patent or utility model registration

Ref document number: 6562744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151