JP5653151B2 - クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション - Google Patents

クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション Download PDF

Info

Publication number
JP5653151B2
JP5653151B2 JP2010208800A JP2010208800A JP5653151B2 JP 5653151 B2 JP5653151 B2 JP 5653151B2 JP 2010208800 A JP2010208800 A JP 2010208800A JP 2010208800 A JP2010208800 A JP 2010208800A JP 5653151 B2 JP5653151 B2 JP 5653151B2
Authority
JP
Japan
Prior art keywords
application
message
unit
processing
cloud computing
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.)
Expired - Fee Related
Application number
JP2010208800A
Other languages
English (en)
Other versions
JP2012064070A (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 JP2010208800A priority Critical patent/JP5653151B2/ja
Priority to US13/227,821 priority patent/US9075656B2/en
Publication of JP2012064070A publication Critical patent/JP2012064070A/ja
Application granted granted Critical
Publication of JP5653151B2 publication Critical patent/JP5653151B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーションに関する。
近年、インターネット上のサーバにて動作する各種アプリケーションを利用可能な、クラウドコンピューティングシステムと呼ばれる技術が提案されている。クラウドコンピューティングシステムにおいて、クラウドサービスベンダーは、インターネット上に、仮想的なコンピュータ(Virtual Machine :VM)、ストレージを提供し、これらを用いた種々のサービスを提供することができる。アプリケーション開発者は、クラウドサービスベンダーに利用料を支払い、クラウドコンピューティングシステムが提供するサービスを使用することで、クラウドアプリケーションの開発が可能となる。
クラウドコンピューティングシステムを利用したアプリケーションでは、使用するVMの数を増やすことで、アプリケーションの性能の向上が可能となる。しかし、一般的に、クラウドサービスの利用料はVMの数によって大きく異なる。従って、アプリケーションへの負荷やトランザクションの多寡に応じて、VMの数を動的に増減させ、適切な数のVMを用いてサービスを提供することが、パフォーマンスとコストの両面において非常に重要である。
特許文献1は、縮退可能サーバを検出するシステムを提案している。このシステムは、複数のサーバが並列的に処理を行っている状況で、各サーバの処理の負荷を計測する。システムは、計測の結果、負荷が低い場合、各サーバの処理の依存関係から、処理を停止することが可能なサーバを検出し、停止可能ならば停止する。
特開2008−234356号公報
ここで、システム上で動作するアプリケーションが含むVMを削除する場合に、アプリケーションに対して、削除するVMの個数は指定できるが、削除対象のVMを個別に指定することができないクラウドコンピューティングシステムを想定する。このようなクラウドコンピューティングシステムでは、例えば処理を行っていないVMを削除対象として削除しようとしても、アプリケーションに対して、VMの個数を指定した削除命令しか発行できないので、削除対象のVM以外のVMが削除される可能性がある。例えば、削除されるアプリケーションに、何らかの処理を実行中のVMが含まれている場合には、この処理を実行中のVMが処理途中で削除されてしまう。このような場合には、再処理が必要となるため、システム全体のパフォーマンスが大幅に低下するといった問題がある。
本発明は、処理を実行しているVMを含むアプリケーションを削除せずに、当該アプリケーション以外のアプリケーションが含むVMを削除するクラウドコンピューティングシステムの提供を目的とする。
本発明の一実施形態のクラウドコンピューティングシステムは、情報処理装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部とを有するクラウドコンピューティングシステムであって、少なくとも前記バックエンド処理部を備える処理実行部を含み、該処理実行部を用いて、前記記憶手段から取得されたメッセージに基づく処理を実行する1個以上のアプリケーションと、前記メッセージに基づく処理を実行している前記処理実行部を含む前記アプリケーションを削除せずに、当該メッセージに基づく処理を実行していない前記処理実行部のみを含むアプリケーションに含まれる該処理実行部を削除する削除部とを備える。
本発明のクラウドコンピューティングシステムによれば、VMのスケールイン(削除)を行う際に、処理を実行しているVMを含むアプリケーションを削除せずに、当該アプリケーション以外のアプリケーションが含むVMを削除することができる。具体的には、処理を実行していないVMのみを含むアプリケーションを容易に検出し、該アプリケーションが含むVMを削除することができる。従って、処理を実行中のVMが削除されないので、再処理の発生を防止できる。その結果、システム全体としてのパフォーマンスが向上する。
本実施形態のシステムの全体構成を示す図である。 アプリケーションサーバと画像形成装置のハードウェア構成例である。 本実施形態のシステムの機能ブロック図の例である。 アプリケーションサーバのプラットフォームシステムの例である。 クラウドコンピューティングシステムの構築例を示す図である。 ジョブキュー、メッセージキューに格納されるメッセージの例と、アプリケーション管理テーブルの例を示す図である。 必須アプリケーションの処理の例を説明するフローチャートである。 追加アプリケーションの処理を説明するフローチャートである。 管理アプリケーションの処理を説明するフローチャートである。
以下に、本実施形態を添付の図面に基づいて説明する。まず、本実施形態で使用される用語の一般的な定義について説明する。ポーリングとは、クライアントがホストに要求をした処理の経過や完了を確認するために、クライアントが一定間隔でホストに処理の経過状況を問い合わせる処理である。スケールインとは、クラウドコンピューティングシステム上で動作するアプリケーション(クラウドアプリケーション)に含まれるVM(Virtual Machine )を削減することを意味する。VMは、仮想化技術によって物理的なサーバを論理的なコンピュータに分割し、分割された中で独立したオペレーティングシステムをもって動作する論理的なコンピュータである。この論理的なコンピュータの単位をインスタンスという。
クラウドコンピューティングシステムにおいては、VM数に応じてコストが発生するため、処理量が少ない場合には、スケールインを行うことで、コストを抑えることが重要となる。また、スケールアウトとは、クラウドアプリケーションに含まれるVMの数を増加させることを意味する。一般にクラウドコンピューティングシステムにおいては、VM数を増やすことで、容易にパフォーマンスの向上を図ることができる。
図1は、本実施形態のシステムの全体構成を示す図である。図1に示すシステムは、アプリケーションサーバ群1、ストレージサーバ2、PC(Personal Computer )3、画像形成装置4を備える。アプリケーションサーバ群1乃至画像形成装置4は、互いにネットワーク5を介して接続されている。ネットワーク5の回線は、有線、無線を問わない。
PC3、画像形成装置4は、アプリケーションサーバ群1に対してジョブの実行依頼を行い、アプリケーションサーバ群1によるジョブの実行結果を受け取り、受け取ったジョブの実行結果に対して各種処理を実行する情報処理装置である。例えば、PC3は、アプリケーションサーバ群1に対して、アプリケーションサーバ群1が保持している情報の取得要求を行い、この取得要求に応答したアプリケーションサーバ群1から情報を受信し、受信した情報を画面表示する。また、例えば、画像形成装置4は、アプリケーションサーバ群1に対して印刷要求を行い、この印刷要求に応答したアプリケーションサーバ群1から印刷データを受信し、受信した印刷データを印刷処理する。PC3と画像形成装置4とは、外部からのアクセスが制限されたローカルエリアに配置されており、ネットワーク5からファイアウォールで遮断されている。
アプリケーションサーバ群1は、複数のアプリケーションサーバ10を備える。アプリケーションサーバ群1は、PC3または画像形成装置4からジョブの処理依頼を受け取り、このジョブの処理を実行して実行結果を依頼元に返す。例えば、アプリケーションサーバ群1は、画像形成装置4から印刷要求を受け取り、所定の記憶部に保存されているコンテンツに対して印刷要求に応じた処理を実行して印刷データを生成し、生成した印刷データを画像形成装置4に送信する。
アプリケーションサーバ群1は、クラウドに設けられているクラウドコンピューティングシステムである。クラウドとは、クラウドコンピューティング環境におけるサーバ群が配置される領域のことである。クラウドコンピューティング環境においては、ユーザはコンピュータ処理をネットワーク経由でサービスとして利用する。クラウドに設けられたアプリケーションサーバ群1から発する要求によりファイアウォール内部にアクセスすることはできない。従って、アプリケーションサーバ群1は、画像形成装置4からの要求の応答を返すことによって、画像形成装置4に対して通信を行う。本実施形態のクラウドコンピューティングシステムの制御方法は、図1に示すアプリケーションサーバ群1によって実現される。また、本実施形態のコンピュータプログラムは、このクラウドコンピューティングシステムの制御方法をコンピュータに実行させる。
図2は、アプリケーションサーバと画像形成装置のハードウェア構成例である。図2(A)は、図1中のアプリケーションサーバ群1に含まれる各々のアプリケーションサーバ10のハードウェア構成例を示す。
アプリケーションサーバ10は、CPU11、直接記憶部12、間接記憶部13、ネットワークインタフェース14を有する。CPU(Central Processing Unit )11は、所定のプログラムを実行し、アプリケーションサーバ10の各種制御を指示する処理部である。直接記憶部12は、CPU11がプログラムを実行する際に使用するワークメモリである。このプログラムは直接記憶部12にロードされる。直接記憶部12は、RAM(Random Access Memory)を備える。間接記憶部13には、アプリケーションプログラム、OS(Operating System)を含む各種プログラムが記憶されている。間接記憶部13に記憶されている各種プログラムは、CPU11がプログラムを実行する際に直接記憶部12へ移動する。間接記憶部13は、ROM(Read Only Memory)またはHDD(Hard Disc Drive )を備える。なお、CPU11がマルチプロセッサであってもよい。ネットワークインタフェース14は、ネットワーク5(図1)に接続されており、アプリケーションサーバ10とネットワーク5に接続されている他の装置との通信を媒介する。なお、ストレージサーバ2、PC3のハードウェア構成は、図2(A)に示すアプリケーションサーバ10のハードウェア構成と同様である。
図2(B)は、画像形成装置4のハードウェア構成の例を示す。画像形成装置4は、画像処理ユニット41と印刷ユニット42とを備える。画像処理ユニット41は、アプリケーションサーバ10から印刷データを取得し、この印刷データに対して所定の画像処理を実行する。印刷ユニット42は、画像処理ユニット41によって画像処理された印刷データを印刷する。
画像処理ユニット41は、CPU51、直接記憶部52、間接記憶部53、ユーザインタフェース54、ネットワークインタフェース35を備える。CPU51は、所定のプログラムを実行し、画像処理ユニット41の各種制御を指示するユニットである。直接記憶部52は、CPU51がプログラムを実行する際に使用するワークメモリである。このプログラムは直接記憶部52にロードされる。直接記憶部52は、RAMにより実現される。間接記憶部53には、アプリケーションプログラムを含む各種プログラムが記憶されている。間接記憶部53に記憶されている各種プログラムは、CPU51がプログラムを実行する際に直接記憶部52へ移動する。間接記憶部53は、SSD(Solid State Drive )またはHDDにより実現される。CPU51がマルチプロセッサであってもよい。ユーザインタフェース54は、ユーザからの入力を受け付ける機能を持つ。ユーザインタフェース54は、タッチパネルや、マウス、キーボードなどの機器を介してユーザからの入力を受け付ける。ネットワークインタフェース55は、ネットワーク5に接続されており、ネットワーク5に接続されている他の装置との通信を媒介する。
図3は、本実施形態のシステムの機能ブロック図の例である。アプリケーションサーバ群1が含むアプリケーションサーバ10は、フロントエンド処理部101とバックエンド処理部102とを備える。フロントエンド処理部101は、PC3、画像形成装置4等の情報処理装置からジョブの処理依頼を受信したことに応じて、ジョブに対応するメッセージを記憶手段(キューサービス22)に格納する要求受信部として機能する。フロントエンド処理部101は、要求受信プログラムを実行することにより実現される。フロントエンド処理部101は、一般的なWebサーバと同等の機能を持ち、同期処理を行うことが可能である。フロントエンド処理部101は、キューサービス22を介して、バックエンド処理部102に対して処理内容すなわちジョブに対応するメッセージを伝える役割を持つ。
バックエンド処理部102は、キューサービス22に対し、メッセージの取得要求を定期的に行い、キューサービス22からメッセージを取得した場合は、該取得したメッセージに基づく処理(メッセージに記載された処理)を行う。例えば、バックエンド処理部102は、ネットワーク5を介して、処理の実行結果を該処理の依頼元(PC3または画像形成装置4)に返す。バックエンド処理部102は、バックエンド処理プログラムを実行することにより実現される。アプリケーションサーバ10のCPU11(図2(A))が、バックエンド処理プログラムを実行する。キューサービス22を介してフロントエンド処理部101からバックエンド処理部102に対してメッセージの受け渡しがなされることにより、フロントエンド処理部101とバックエンド処理部102とが非同期で作業を行うことができる。
ストレージサーバ2は、ブロブ21、キューサービス22、テーブル23を備える。ブロブ21は、バックエンド処理部102による処理の実行結果を含む各種データを保存する。ブロブ21は、図2(A)の間接記憶部13によって実現される。キューサービス22は、フロントエンド処理部101の指示に従って、ジョブに対応するメッセージを格納する。キューサービス22は、図2(A)の間接記憶部13に保存されているキュープログラムが、直接記憶部12にロードされて、CPU11により実行されることで実現される。テーブル23は、フロントエンド処理部101、バックエンド処理部102の処理の状態を含む情報を保持するストレージを提供する。テーブル23は、公知のデータベースサービスが持つ機能と同じ機能を持つ。
PC3は、ネットワーク通信部31、ユーザインタフェース32、ウェブブラウザ33を備える。ネットワーク通信部31は、ネットワーク5を介して外部装置と情報を送受信する。例えば、ネットワーク通信部31は、PC3上で動作するアプリケーションの指示に従って、ジョブの処理依頼をネットワーク5を介してアプリケーションサーバ10に対して送信する。また、例えば、ネットワーク通信部31は、アプリケーションサーバ10によるジョブの実行結果を、ネットワーク5を介してアプリケーションサーバ10から受信する。ユーザインタフェース32は、ユーザが、PC3が提供する各種アプリケーションを使用するためのインタフェースである。PC3は、ユーザインタフェース32を介して入力されるユーザ操作に従って、各種アプリケーションを実行する。PC3上で動作するアプリケーションの1つであるウェブブラウザ33は、ネットワーク通信部31がネットワーク5を介して送受信する各種情報を表示する。ウェブブラウザ33は、図2(A)の間接記憶部13に保存されているプログラムが、直接記憶部12にロードされ、CPU11により実行されることで実現される。
画像形成装置4は、印刷処理部61、印刷要求送信部62、ユーザインタフェース63、ウェブブラウザ64を備える。印刷要求送信部62は、アプリケーションサーバ10に対して、印刷データの生成と送信に関するジョブの処理依頼を印刷要求として送信する。上記印刷要求は、ユーザインタフェース63が設定した印刷設定に関する情報を含む。印刷要求送信部62は、アプリケーションサーバ10のフロントエンド処理部101から、フロントエンド処理部101が生成した印刷データを受信する。印刷処理部61は、印刷データの印刷処理を行う。印刷データは、例えば、PDL(Page Description Language )、PDF(Portable Document Format)、ラスタイメージ等である。ユーザインタフェース63は、図2(B)中のユーザインタフェース54に対応する。ユーザインタフェース63は、ユーザが、画像形成装置4によって提供される各種アプリケーションを使用するためのインタフェースである。画像形成装置4は、ユーザインタフェース63を介して入力されるユーザ操作に従って、各種アプリケーションを実行する。ウェブブラウザ64は、ネットワーク5を介して接続されている所定のデバイス内に保存されているデータや情報を表示する機能を持つ。ウェブブラウザ64は、図2(B)の間接記憶部53に保存されているプログラムが、直接記憶部52にロードされ、CPU51により実行されることで実現される。また、ウェブブラウザ64は、ネットワーク上に存在する、ドキュメントや画像といった種々のコンテンツを表示することができる。ユーザは、ユーザインタフェース63を用いて、コンテンツを選択し、印刷指示等を行うことができる。
図4は、アプリケーションサーバのプラットフォームシステムの例を示す図である。図4に示すプラットフォームシステムは、図3に示すアプリケーションサーバ10の機能を実現する。このプラットフォームシステムの利用者は、アプリケーションサーバ10が備える物理ハードウェア・リソースをコンピューティングリソースとして使用することができる。
図4に示すプラットフォームシステムは、ロードバランサー401、VM402、403、ストレージサービス404、ファブリックコントローラ405を備える。VM402、403は、所定の処理を実行する処理実行部である。VM402、403の各々は、プラットフォームシステムの内部に複数設けられている。
VM402は、フロントエンド処理部4021、エージェント4022を備える。フロントエンド処理部4021は、図3中のフロントエンド処理部101に対応する。フロントエンド処理部4021は、ロードバランサー401を介してユーザからの処理依頼を受信する。フロントエンド処理部4021は、外部ネットワークからの要求を受け付ける機能を有する。また、フロントエンド処理部4021は、後述するキュー4042を介してバックエンド処理部4031への処理依頼を送信する機能を有する。また、フロントエンド処理部4021は、エージェント4022を介してファブリックコントローラ505にアクセスする。フロントエンド処理部4021の高い可用性を確保するために、外部ネットワークからの要求(例えばHTTPによる通信)は、VM402の外部にあるロードバランサー401を通じて行われる。ロードバランサー401は、外部ネットワークからの要求を一元的に管理し、同等な要求受信機能を有する複数のVMに対し、選択的に要求を転送する。
エージェント4022は、VM402の使用状況、フロントエンド処理部4021の稼動状態、VM402のリソースの使用状況、およびフロントエンド処理部4021のエラー情報を含む各種情報を収集する。エージェント4022は、収集した各種情報をファブリックコントローラ405に定期的に送信する。
フロントエンド処理部4021、バックエンド処理部4031は、ファブリックコントローラ405によって管理されている。これにより、各インスタンスの拡張性と可用性が保証される。例えば、フロントエンド処理部4021、またはバックエンド処理部4031において、ある特定のインスタンスがサーバの故障によって停止した場合を想定する。この場合、ファブリックコントローラ405は、エージェント4022またはエージェント4032から定期通知を受け取れなくなる。定期通知を受け取らなくなったファブリックコントローラ405は、新しいインスタンスに処理が委譲されるようにVMに対して指示を出す。その結果、処理を実行しているインスタンス数が一定に保たれるため、処理の遅延を抑えることができる。
VM403は、バックエンド処理部4031、エージェント4032で構成される。バックエンド処理部4031は、図3中のバックエンド処理部102に対応する。バックエンド処置部4031は、キュー4042を介してフロントエンド処理部4021からの処理依頼を受信し、処理を行う。バックエンド処理部4031は、エージェント4032を介してファブリックコントローラ405にアクセスする。
フロントエンド処理部4021とバックエンド処理部4031は、スケールインまたはスケールアウトすることが可能である。フロントエンド処理部4021、バックエンド処理部4031がスケールインすると、VM402、403が減少する。すなわち、フロントエンド処理部4021、バックエンド処理部4031のインスタンスが減少する。フロントエンド処理部4021、バックエンド処理部4031がスケールアウトすると、VM402、403が増加する。すなわち、フロントエンド処理部4021、バックエンド処理部4031のインスタンスが増加する。フロントエンド処理部4021のスケールアウトを行うことで、ユーザ数の増加などによりトラフィックが増加した場合でも、負荷を分散させることができる。また、バックエンド処理部4031のスケールアウトを行うことで、バックエンド処理部1つ当たりのデータ処理量が減少する。これにより、ユーザからの処理依頼に対する結果をより早く返すことができる。
本実施形態のクラウドコンピューティングシステムは、実際にスケールイン、スケールアウトを行う場合には、システム上で動作するアプリケーションに対して、増減させるVMの個数を指定して、スケールアウトまたはスケールインの命令を発行する。すなわち、本実施形態のクラウドコンピューティングは、スケールインの命令を発行する際に、実際に停止させるVMを一意に指定することができない。従って、本実施形態のクラウドコンピューティングシステムは、スケールインの命令を発行した場合に処理を行っているVMが削除されないように、処理を実行していないVMのみを含むアプリケーションを検出し、該アプリケーションが含むVMを削除する。
ストレージサービス404は、ブロブ4041、複数のキュー4042、複数のテーブル4043を備える。ブロブ4041は、データ保存に利用されるストレージを提供する。ブロブ4041にはメタデータを関連付けることができる。メタデータは名前と値のペアであらわされ、メタデータはデータとは別に取得、設定することができる。キュー4042は、フロントエンド処理部4021とバックエンド処理部4031とが非同期でデータ通信できるようにする。フロントエンド処理部4021とバックエンド処理部4031は、キュー4042に対し各種指示を出すことで、非同期でデータ通信する。フロントエンド処理部4021がキュー4042に対して行う指示とは、メッセージの追加指示である。バックエンド処理部4031がキュー4042に対して行う指示とは、メッセージの取得指示、メッセージの削除指示である。
フロントエンド処理部4021とバックエンド処理部4031が非同期でデータ通信する一連の動作について説明する。フロントエンド処理部4021は、ユーザからの処理依頼に応じたメッセージを作成し、メッセージをキューに追加するようにキュー4042に追加指示を送信する。追加指示を受信したキュー4042は、キューにメッセージを追加する。バックエンド処理部4031は、メッセージを取得するために、キュー4042にメッセージの取得指示を出す。メッセージの取得指示を受けたキュー4042は、メッセージと、メッセージ毎に固有に割り振られたメッセージIDと、受取IDとを取得指示に対するレスポンスとしてバックエンド処理部4031に返す。メッセージIDは、メッセージを一意に定めるためにメッセージごとに割り振られた固有の情報である。受取IDは、処理が終了したバックエンド処理部4031がメッセージを削除指示する際に使用するIDである。メッセージと、メッセージIDと、受取IDとは、関連付けされて保存される。
バックエンド処理部4031は、処理依頼を完了すると、受取IDに対応するメッセージの削除指示をキュー4042に対して行う。削除指示を受けたキュー4042は、バックエンド処理部4031が指示した受取IDに対応するメッセージをキューから削除する。これにより、削除指示を出したバックエンド処理部4031以外のバックエンド処理部4031が同じメッセージを処理するという冗長な処理を防ぐことができる。
次に、キュー5042に追加されているメッセージを不可視、または可視にする機能について詳細に説明する。不可視機能は、バックエンド処理部4031がキューからメッセージを取得した際に、他のバックエンド処理部4031が同一のメッセージを取得しないように、他のバックエンド処理部4031がメッセージを取得できない状態(不可視状態)にする機能である。ここで、再度メッセージが取得可能な状態(可視状態)になるまでの時間を不可視時間と呼ぶ。フロントエンド処理部4021がキューを作成する際に任意の時間を不可視時間として設定できる。不可視時間中にバックエンド処理部4031の処理が終了しない場合、可視状態になり、バックエンド処理部4031がメッセージを再取得し処理する。また、バックエンド処理部4031が、処理中に何らかの理由でクラッシュし、処理の継続が不可能になった場合でも、不可視時間の間は再処理を行うことができない。また、処理時間が不可視時間を超過した場合には、処理が完了していないメッセージが可視状態になり、他のバックエンド処理部4031により処理が開始する。
テーブル4043は、ストレージサービス404上に複数設けられる。各々のテーブル4043が一意の名前を持つ。本実施形態では、テーブル4043が、アプリケーション管理テーブル508(図5を参照)を備える。プラットフォーム利用者は、各々のテーブルの名前に基づいて、テーブルにアクセスすることができる。テーブル4043は、主にサービスの状態を保持するために用いられる。テーブル4043は、エンティティと呼ばれる基本的なデータ項目から構成される。エンティティは一連のプロパティで構成される。プロパティはエンティティ内の1つの値を表す。本実施形態では、テーブルを表形式で表現する。表の行をエンティティ、列をプロパティと呼ぶ。
図5は、本実施形態のクラウドコンピューティングシステムの構築例を示す図である。図5に示すクラウドコンピューティングシステムは、フロントエンドアプリケーション501、ジョブキュー502、必須アプリケーション503を備える。また、このクラウドコンピューティングシステムは、追加アプリケーション504、505、メッセージキュー506、管理アプリケーション507、アプリケーション管理テーブル508を備える。図5中の各々のアプリケーションは、図4に示すプラットフォームシステムを備え、クラウドコンピューティングシステム上で動作する。
本実施形態のクラウドコンピューティングシステムは、依頼された処理の実行に必要なVMを全て含んだ1つのアプリケーションがクラウド上に配置された構成を採らない。本実施形態のクラウドコンピューティングシステムは、上記アプリケーションが分割された複数のアプリケーション(必須アプリケーション503、追加アプリケーション504,505)を備える。
各々のアプリケーションが動作するためには、少なくとも一つの起動しているVMが必要である。フロントエンドアプリケーション501は、図4中のフロントエンド処理部4021を備えるVMを含む。フロントエンドアプリケーション501は、PC3または画像形成装置4からのジョブの実行依頼を受け付け、ジョブに対応するメッセージをジョブキュー502に格納する。このジョブキュー502は、図4中のキュー4042に対応する。
図5に示すアプリケーションのうち、必須アプリケーション503、追加アプリケーション504、505は、少なくともバックエンド処理部4031を備えるVMを含む。必須アプリケーション503、追加アプリケーション504、505は、該VMを用いて、ジョブキュー502から取得されたメッセージに基づく処理を実行する。必須アプリケーション503は、常時起動させておくVMのみを含むアプリケーション(第1のアプリケーション)である。必須アプリケーション503は、スケールインの対象とならない。追加アプリケーション505、504は、スケールインの対象となり得るアプリケーション(第2のアプリケーション)である。本実施形態では、追加アプリケーションのうち、処理を行っていないVMのみを含む追加アプリケーションがスケールインの対象となる。このために、本実施形態のクラウドコンピューティングシステムは、処理を行っていないVMのみを含むアプリケーションが発生し易いようにする。これについては、後述する。
ここで、本実施形態のクラウドコンピューティングシステムが、必須アプリケーション503を備える一方で、スケールインの対象となり得るアプリケーションとして追加アプリケーション504、505を備える理由について説明する。依頼された処理すなわちメッセージに基づく処理を実行するために必要なアプリケーションを細かく分割し、各々のアプリケーションに含まれるVMを少なくしたシステムでは、細かいスケールインが可能となる。しかし、前述したように、各アプリケーションには少なくとも1つのVMが必要となるので、常にアプリケーション数以上のVMが起動しておかなければならず、無駄なコストが発生する。
例えば、稼働状況に応じて、10個〜30個のVMが必要となるアプリケーションを想定する。必須アプリケーション503を用意せず、例えばVMを1つ含んだアプリケーションを15個配置し、適宜、各アプリケーションに対して、スケールイン/スケールアウトを行う場合を想定する。その場合、アプリケーション数以上のVMは常に起動しておかなければならないため、最少でも15個のVMが起動していることになる。しかし、実際に依頼された処理を実行するためには10個のVMだけで、十分である場合もあるので、その場合には5個VMが無駄になる。一方、例えば、5個のVMを含んだ必須アプリケーションを1つと、2個のVMを含んだ追加アプリケーションを5個用意すると、起動するVMの最小の個数は10個となるため、無駄なコストが省けることになる。そこで、本実施形態のクラウドコンピューティングシステムは、常に起動しておくVMのみを含む必須アプリケーションを用意し、必須アプリケーションとは別に、スケールインの対象となり得るアプリケーションとして、追加アプリケーションを用意する。必須アプリケーションが含むVMの数、および、追加アプリケーションの数は、構築するシステムの規模に応じて変化させることができる。
本実施形態において、必須アプリケーション503が含むVMの数は、追加アプリケーションが含むVMの数より多い。また、必須アプリケーション503が含むVMは、追加アプリケーションが含むVMに優先して、メッセージに基づく処理を実行する。すなわち、追加アプリケーションが含むVMは、必須アプリケーション503が含む全てのVMが処理を実行していない状態においては、自身の処理を実行しないように動作する。これにより、処理を行っていないVMのみを含む追加アプリケーションが発生し易くなる。
処理を行っていないVMのみを含む追加アプリケーションが発生し易くなるようにする仕組みについて、さらに説明する。後述するように、アプリケーション管理テーブル508は、各々のアプリケーションおよびVMに対応づけられる、メッセージに基づく処理の実行に関する優先度を含む。本実施形態においては、アプリケーション管理テーブル508において、必須アプリケーション503に最も高い優先度が設定される。追加アプリケーションが含むVMは、アプリケーション管理テーブル508を参照し、メッセージに基づく処理の実行に関する優先度が自身の優先度より高いアプリケーションが含む全てのVMが処理を行っている状態でない場合には、自身の処理を実行しない。これにより、処理を行っていないVMのみを含む追加アプリケーションが発生し易くなる。
管理アプリケーション507は、アプリケーション管理テーブル508において管理されている各々のアプリケーションの動作状態を監視する。管理アプリケーション507は、処理を行っていないVMのみを含む追加アプリケーションを検出し、検出した追加アプリケーションが含むVMを削除する削除部として機能する。すなわち、管理アプリケーション507は、処理を実行しているVMを含むアプリケーションを削除せずに、当該アプリケーション以外のアプリケーションが含むVMを削除する。
ジョブキュー502は、PC3や画像形成装置4からフロントエンドアプリケーション501に依頼された処理内容を、必須アプリケーション503、追加アプリケーション504、505に渡すために用いられるキューである。メッセージキュー506は、管理アプリケーション507と必須アプリケーション503との間の通信用に用いられるキューである。アプリケーション管理テーブルは、各々のアプリケーションの動作状態を管理するテーブルである。
図6は、ジョブキュー、メッセージキューに格納されるメッセージの例と、アプリケーション管理テーブルの例を示す図である。図6(A)は、ジョブキュー502に格納されるメッセージの例を示す。このメッセージは、画像処理のジョブに対応するメッセージである。このメッセージは、処理の内容としてOCR、処理対象としてファイルへのパス、ファイルが存在する外部ストレージにアクセスするためのアカウントやパスワード、画像処理を行ったファイルの保存先の情報を含む。なお、OCRは、Optical Character Recognitionの略称である。
図6(B)は、メッセージキュー506に格納されるメッセージの例を示す。必須アプリケーション503に含まれるVMが、ジョブキューをポーリングした際に、メッセージが格納されていない(処理がない)場合に、図6(B)に示すフォーマットのメッセージをメッセージキュー506に格納する。このメッセージは、ポーリングをしたVMのIDと、ポーリングをした時刻とを含む。
図6(C)は、アプリケーション管理テーブル508の例を示す。アプリケーション管理テーブル508は、必須アプリケーション、追加アプリケーションが含むVMの動作状況と、各々のアプリケーションおよびVMに対応付けられた優先度とを管理情報として管理する管理部として機能する。上記優先度は、各々のVMによる、メッセージに基づく処理の実行に関する優先度、すなわち、画像形成装置4等から依頼されたジョブの実行に関する優先度である。優先度が高いVM、アプリケーションほど、メッセージに基づく処理を先に実行する。
具体的には、アプリケーション管理テーブル508は、アプリID、VMID、Status、Priorityといったデータ項目を有する。アプリIDは、アプリケーションを一意に識別する識別情報である。VMIDは、アプリケーションに含まれるVMを一意に識別する識別情報である。Statusは、VMの動作状況を示す。Statusに設定される「Working」は、VMが何らかの処理を行っていることを意味する。各VMは、処理を開始する前に、アプリケーション管理テーブル701を確認し、自身のVMIDに対応するエンティティのStatusの値を変更する。「Not Working」は、VMが処理を行っていない状態を表す。各VMは、処理を終了した後に、アプリケーション管理テーブル508における、自身のVMIDを持つエンティティのStatusの値を変更する。
管理アプリケーション507は、全てのVMのStatusがNot Workingであるアプリケーションに対して、スケールインの命令を行う。「Reducing」は、スケールインの命令が発行されている状態であることを表す。一般に、クラウドコンピューティングシステムにおいては、スケールインの命令を発行された直後に、VMが停止するのではなく、一定時間を経た後に、VMが動作を停止する。そのため、スケールインの命令を発行された後においても、VMが処理を開始する可能性がある。そこで、管理アプリケーション507は、スケールインの命令を発行する前に、アプリケーション管理テーブル508において、命令の発行先のアプリケーションに含まれる全てのVMに対応するStatusをReducingに変更する。これにより、StatusがReducingであるVMが処理を開始しないように制御される。
Priorityは、メッセージに基づく処理の実行に関する優先度を示す。Priorityに格納された値が小さいほど、優先度が高い。本実施形態では、必須アプリケーション503が含むVMに対して、追加アプリケーションが含むVMよりも高い優先度が設定される。これにより、追加アプリケーションが含むVMが、必須アプリケーション503が含む全てのVMが処理を実行中の状態である場合にのみ処理を実行するので、処理を行っていないVMのみを含む追加アプリケーションが発生し易くなる。
図7は、必須アプリケーションの処理の例を説明するフローチャートである。図7を参照して説明する処理は、アプリケーションに含まれるVMの処理であり、同一アプリケーションに含まれるVMは、同様の処理を行う(図8に示すフローチャートの処理においても同様である)。なお、この例では、処理対象のジョブは、画像処理に対応するジョブであるものとする。
まず、必須アプリケーション503が含むVMが、起動時に、アプリケーション管理テーブル508に対して、自身のエンティティを追加する(ステップS1)。VMは、アプリケーション管理テーブル508において、StatusとしてNot Working 、Priorityとして1を設定する。
次に、VMが、ジョブキュー502をポーリングし、ジョブキュー502内に画像処理に対応するジョブのメッセージがあるかを判断する(ステップS2)。ジョブキュー502内に画像処理に対応するジョブのメッセージがない場合は、ステップS3に進む。そして、VMは、メッセージキュー506に、現在時刻を記載したメッセージを格納し(ステップS3)、ステップS2に戻る。
ジョブキュー502内に画像処理に対応するジョブのメッセージがある場合、VMが、このジョブに対応するメッセージを取得する(ステップS4)。続いて、VMが、アプリケーション管理テーブル508において、自身のVMのVMIDに対応するエンティティのStatusをWorkingに設定する(ステップS5)。
次に、VMが、ジョブキュー502から取得したメッセージに記載されている情報に従って、画像処理の対象のデータを取得する(ステップS6)。続いて、VMが、ジョブキュー502から取得したメッセージに記載されている情報に従って、上記画像処理の対象のデータに対して画像処理を実行する(ステップS7)。VMが、ステップS7における画像処理の実行結果を、ブロブ4041等のストレージに保存する(ステップS8)。そして、VMが、アプリケーション管理テーブル508において、自身のVMのVMIDに対応するエンティティのStatusをNot Workingに設定して(ステップS9)、ステップS2に戻る。
図8は、追加アプリケーションの処理を説明するフローチャートである。この例では、図5に示す追加アプリケーション504が含むVMの処理について説明する。追加アプリケーション504が含むVMが、起動時に、アプリケーション管理テーブル508に対して、自身のエンティティを追加する(ステップS11)。VMは、アプリケーション管理テーブル508において、StatusとしてNot Workingを設定する。また、VMは、自身のPriorityを設定する。VMが設定するPriorityの値は、既にアプリケーション管理テーブル508に設定済みの他のアプリケーションのPriorityの値のうち最も大きい値よりも1だけ大きい値である。
次に、VMが、アプリケーション管理テーブル508において、自身のVMのVMIDに対応するエンティティのStatusがReducingであるかを判断する(ステップS12)。StatusがReducingである場合は、ステップS12に進む。StatusがReducingでない場合は、ステップS13に進む。
次に、VMが、アプリケーション管理テーブル508を参照して、自身の優先度よりも高い優先度を持つアプリケーションに含まれる全てのVMのStatusがWorkingであるかを判断する(ステップS13)。自身の優先度よりも高い優先度を持つアプリケーションに含まれるVMのうち、StatusがWorkingでないVMがある場合は、ステップS12に戻る。自身の優先度よりも高い優先度を持つアプリケーションに含まれる全てのVMのStatusがWorkingである場合は、ステップS14に進む。
次に、VMが、ジョブキュー502をポーリングし、ジョブキュー502内に画像処理に対応するジョブのメッセージがあるかを判断する(ステップS14)。ジョブキュー502内に画像処理に対応するジョブのメッセージがない場合はステップS12に戻る。ジョブキュー502内に画像処理に対応するジョブのメッセージがある場合、VMが、このジョブのメッセージを取得する(ステップS15)。続いて、VMが、アプリケーション管理テーブル508において、自身のVMIDに対応するエンティティのStatusをWorkingに変更する(ステップS16)。
次に、VMが、ジョブキュー502から取得したメッセージに記載されている情報に従って、画像処理の対象のデータを取得し、このデータに対して画像処理を実行する(ステップS17)。ステップS17において、VMは、更に、画像処理の実行結果をブロブ4041等のストレージに格納する。そして、VMが、アプリケーション管理テーブル508において、自身のVMIDに対応するエンティティのStatusをNot Workingに変更して(ステップS18)、ステップS12に戻る。
図8を参照して説明したように、追加アプリケーション504が含む各々のVMは、アプリケーション管理テーブル508が管理するVMの動作状況と優先度とを参照して、以下の処理を行う。VMは、自身に対応する優先度より高い優先度を持つアプリケーションが含む全てのVMが処理を実行中であるかを判断する(ステップS13を参照)。VMは、自身に対応する優先度より高い優先度を持つアプリケーションが含む全てのVMが処理を実行中である場合にのみ、処理を実行する(ステップS13でYes,ステップS14乃至S17)。すなわち、VMは、自身の優先度より高い優先度を持つアプリケーションに含まれるVMに、処理を行っていないVMがある場合は、処理を実行しない(ステップS13でNo)。これにより、処理を行っていないVMのみを含む追加アプリケーションが発生し易くなる。
図9は、管理アプリケーションの処理を説明するフローチャートである。管理アプリケーション507が、メッセージキュー506をポーリングし、メッセージキュー506にメッセージがあるかを判断する(ステップS21)。メッセージキュー506にメッセージがない場合は、ステップS21に戻る。メッセージキュー506にメッセージがある場合は、管理アプリケーション507が、メッセージキュー506からメッセージを取得して保存する(ステップS22)。本実施形態では、メッセージの保存先として、管理アプリケーション507が含むVMが持つローカルな領域を想定している。管理アプリケーション507が、図4に示すテーブル4043やブロブ4041などにメッセージを保存してもよい。
次に、管理アプリケーション507が、必須アプリケーション503が含むVMがジョブキュー502からメッセージを取得できなかった回数が閾値以上である場合に、VMのスケールインをすると判断する。具体的には、管理アプリケーション507は、以下の処理を行って、所定時間の間に、所定数以上の個数のメッセージがメッセージキュー506に格納されたかを判断する。そして、管理アプリケーション507は、所定時間の間に、所定数以上の個数のメッセージがメッセージキュー506に格納された場合に、VMのスケールインを行うと判断する。
すなわち、管理アプリケーション507が、上記ステップS22において保存したメッセージのうち、所定時間以上保存されているメッセージがあるかを判断する(ステップS23)。所定時間以上保存されているメッセージがある場合、管理アプリケーション507は、所定時間以上保存されているメッセージを削除する(ステップS24)。
所定時間以上保存されているメッセージがない場合、管理アプリケーション507は、保存されているメッセージの数をカウントする(ステップS25)。続いて、管理アプリケーション507は、カウントしたメッセージの数が、予め決められた閾値以上であるかを判断する(ステップS26)。カウントしたメッセージの数が閾値以上でない場合は、ステップS21に戻る。カウントしたメッセージの数が閾値以上である場合は、そのメッセージに対応するVMの数(メッセージに記載されているVMIDの数)を算出して、ステップS27に進む。
管理アプリケーション507が、アプリケーション管理テーブル508が管理する管理情報を参照して、優先度が最も低いアプリケーションが含む全てのVMに対応するエンティティを取得する(ステップS27)。すなわち、管理アプリケーション507は、Priorityの値が最も大きい追加アプリケーションが含む全てのVMの動作状況を取得する。
次に、管理アプリケーション507が、取得した全てのエンティティのStatusがNot Workingであるかを判断する(ステップS28)。すなわち、管理アプリケーション507は、上記取得した全てのVMの動作状況に基づいて、追加アプリケーションが処理を実行していないVMのみを含むかを判断する。
取得したエンティティのうち、StatusがNot Workingでないエンティティがある場合は、管理アプリケーション507が、以下の処理を実行する。管理アプリケーション507は、ステップS27において取得したエンティティが含む優先度より高い優先度を含むエンティティがあるかを判断する(ステップS29)。ステップS27において取得したエンティティが含む優先度より高い優先度を含むエンティティがない場合は、ステップS21に戻る。ステップS27において取得したエンティティが含む優先度より高い優先度を含むエンティティがある場合は、管理アプリケーション507が、そのエンティティを取得し(ステップS30)、ステップS28に戻る。
取得した全てのエンティティのStatusがNot Workingである場合、管理アプリケーション507は、このエンティティのStatusをReducingに変更する(ステップS31)。続いて、管理アプリケーション507が、StatusをReducingに変更したエンティティが含むアプリIDに対応する追加アプリケーションに対して、スケールインの命令を発行する(ステップS32)。具体的には、管理アプリケーション507は、この追加アプリケーションに対して、上記ステップS26において算出された、カウントしたメッセージに対応するVMの数だけ、VMを削除することを指示する。スケールインの命令を受けた追加アプリケーションは、指示された個数分のVMを削除する。
次に、管理アプリケーション507は、アプリケーション管理テーブル508から、追加アプリケーションに対して削除を指示したVMの個数分だけ、該追加アプリケーションのアプリIDを含むエンティティを削除する(ステップS34)。そして、管理アプリケーション507が、ステップS34において削除したエンティティが含んでいたアプリIDと同じアプリIDを含むエンティティのStatusをNot Workingに変更し(ステップS34)、ステップS21に戻る。
本実施形態のクラウドコンピューティングシステムによれば、処理を実行していないVMのみをスケールインすることができる。従って、処理を実行中のVMが削除されないので、再処理の発生を防止できる。その結果、システム全体としてのパフォーマンスが向上する。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
1 アプリケーションサーバ群
2 ストレージサーバ
3 PC
4 画像形成装置
5 ネットワーク

Claims (8)

  1. 情報処理装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、
    前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部とを有するクラウドコンピューティングシステムであって、
    なくとも前記バックエンド処理部を備える処理実行部を含み、該処理実行部を用いて、前記記憶手段から取得されたメッセージに基づく処理を実行する1個以上のアプリケーションと、
    前記メッセージに基づく処理を実行している前記処理実行部を含む前記アプリケーションを削除せずに、当該メッセージに基づく処理を実行していない前記処理実行部のみを含むアプリケーションに含まれる当該処理実行部を削除する削除部とを備える
    ことを特徴とするクラウドコンピューティングシステム。
  2. 前記削除部は、前記メッセージに基づく処理を実行していない前記処理実行部のみを含む前記アプリケーションを検出し、該アプリケーションが含む前記処理実行部を削除する
    ことを特徴とする請求項1に記載のクラウドコンピューティングシステム。
  3. 前記アプリケーションが、常時起動させておく処理実行部のみを含む第1のアプリケーションと、該第1のアプリケーションとは異なる第2のアプリケーションとを含み、
    前記第1のアプリケーションが含む前記処理実行部の数は、前記第2のアプリケーションが含む前記処理実行部の数より多く、
    前記第1のアプリケーションが含む前記処理実行部は、前記第2のアプリケーションが含む前記処理実行部に優先して前記メッセージに基づく処理を実行し、
    前記削除部は、前記メッセージに基づく処理を実行していない前記処理実行部のみを含む前記第2のアプリケーションを検出し、該第2のアプリケーションが含む前記処理実行部を削除する
    ことを特徴とする請求項2に記載のクラウドコンピューティングシステム。
  4. 前記第1、第2のアプリケーションが含む前記処理実行部の動作状況と、各々のアプリケーションおよび処理実行部に対応付けられ、各々の処理実行部による前記メッセージに基づく処理の実行に関する優先度とを管理情報として管理する管理部を備え、
    前記削除部は、前記管理部が管理する管理情報を参照して、前記メッセージに基づく処理を実行していない処理実行部のみを含む前記第2のアプリケーションを検出する
    ことを特徴とする請求項3に記載のクラウドコンピューティングシステム。
  5. 前記削除部は、
    前記第1のアプリケーションが含む前記処理実行部が前記記憶手段から前記メッセージを取得できなかった回数が所定の閾値以上である場合に、前記管理部が管理する管理情報を参照して、対応する前記優先度が最も低い前記第2のアプリケーションが含む全ての処理実行部の動作状況を取得し、
    前記取得した前記全ての処理実行部の動作状況に基づいて、前記第2のアプリケーションが前記メッセージに基づく処理を実行していない処理実行部のみを含むかを判断し、該第2のアプリケーションが前記メッセージに基づく処理を実行していない処理実行部のみを含む場合に、該第2のアプリケーションに対して、該第2のアプリケーションが含む処理実行部の削除を指示する
    ことを特徴とする請求項4に記載のクラウドコンピューティングシステム。
  6. 前記第2のアプリケーションが含む各々の処理実行部は、前記管理部が管理する前記処理実行部の動作状況と前記優先度とを参照して、自身に対応する優先度より高い優先度を持つアプリケーションが含む全ての処理実行部が前記メッセージに基づく処理を実行中であるかを判断し、自身に対応する優先度より高い優先度を持つアプリケーションが含む全ての処理実行部が前記メッセージに基づく処理を実行中である場合にのみ、前記メッセージに基づく処理を実行する
    ことを特徴とする請求項4または請求項5に記載のクラウドコンピューティングシステム。
  7. 情報処理装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部とを有するクラウドコンピューティングシステムの制御方法であって、
    前記クラウドコンピューティングシステムは、少なくとも前記バックエンド処理部を備える処理実行部を含み、該処理実行部を用いて、前記記憶手段から取得されたメッセージに基づく処理を実行する1個以上のアプリケーションと、前記アプリケーションに含まれる処理実行部を削除する削除部と、を含み、
    前記削除部が、前記メッセージに基づく処理を実行している前記処理実行部を含む前記アプリケーションを削除せずに、当該メッセージに基づく処理を実行していない前記処理実行部のみを含むアプリケーションに含まれる当該処理実行部を削除する工程を有する
    ことを特徴とするクラウドコンピューティングシステムの制御方法。
  8. 情報処理装置からジョブの処理依頼を受信したことに応じて、前記ジョブに対応するメッセージを記憶手段に格納する、要求受信プログラムを実行することにより実現される要求受信部と、前記記憶手段に対し前記メッセージの取得要求を定期的に行い、前記記憶手段から前記メッセージを取得した場合は、該取得したメッセージに基づく処理を行う、バックエンド処理プログラムを実行することにより実現されるバックエンド処理部とを有するクラウドコンピューティングシステム上で動作する管理アプリケーションであって、
    前記クラウドコンピューティングシステムは、少なくとも前記バックエンド処理部を備える処理実行部を含み、該処理実行部を用いて、前記記憶手段から取得されたメッセージに基づく処理を実行する1個以上のアプリケーションを含み、
    前記管理アプリケーションが、前記メッセージに基づく処理を実行している前記処理実行部を含む前記アプリケーションを削除せずに、当該メッセージに基づく処理を実行していない前記処理実行部のみを含むアプリケーションに含まれる当該処理実行部を削除する
    ことを特徴とする管理アプリケーション。
JP2010208800A 2010-09-17 2010-09-17 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション Expired - Fee Related JP5653151B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010208800A JP5653151B2 (ja) 2010-09-17 2010-09-17 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US13/227,821 US9075656B2 (en) 2010-09-17 2011-09-08 Cloud computing system and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010208800A JP5653151B2 (ja) 2010-09-17 2010-09-17 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション

Publications (2)

Publication Number Publication Date
JP2012064070A JP2012064070A (ja) 2012-03-29
JP5653151B2 true JP5653151B2 (ja) 2015-01-14

Family

ID=45818914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010208800A Expired - Fee Related JP5653151B2 (ja) 2010-09-17 2010-09-17 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション

Country Status (2)

Country Link
US (1) US9075656B2 (ja)
JP (1) JP5653151B2 (ja)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5623139B2 (ja) * 2010-06-02 2014-11-12 キヤノン株式会社 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US8924501B2 (en) 2011-11-30 2014-12-30 Red Hat Israel, Ltd. Application-driven shared device queue polling
US9009702B2 (en) * 2011-11-30 2015-04-14 Red Hat Israel, Ltd. Application-driven shared device queue polling in a virtualized computing environment
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
JP5910280B2 (ja) * 2012-04-20 2016-04-27 株式会社リコー 画像形成装置及びジョブ管理方法
US9600316B2 (en) * 2012-10-17 2017-03-21 Microsoft Technology Licensing, Llc Augmented allocation of virtual machines for application
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US9130979B2 (en) * 2012-12-11 2015-09-08 Microsoft Technology Licensing, Llc Systems and methods for using virtual machines to sequence native applications into virtual packages and for reimaging virtual machines
CN105103486B (zh) * 2013-01-19 2018-06-12 特龙德尔公司 数控制造***中的安全流化方法及安全数控制造***
CN103701920A (zh) * 2013-12-31 2014-04-02 曙光云计算技术有限公司 云环境下配置虚拟应用服务器的方法
JP6331455B2 (ja) * 2014-02-20 2018-05-30 キヤノンマーケティングジャパン株式会社 情報処理システム、及びその制御方法、並びに情報処理サーバ、その制御方法、及びプログラム
US9722945B2 (en) * 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources
US10097410B2 (en) * 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
JP6771874B2 (ja) * 2015-09-16 2020-10-21 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
JP2017111581A (ja) * 2015-12-15 2017-06-22 キヤノン株式会社 情報処理システム、制御方法
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10250440B2 (en) 2016-11-29 2019-04-02 International Business Machines Corporation Managing a generation and delivery of digital identity documents
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
CN108920281A (zh) * 2018-07-20 2018-11-30 深圳码隆科技有限公司 大规模图片处理方法及***
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
CN109766174B (zh) * 2018-12-24 2021-04-16 杭州数梦工场科技有限公司 资源调度方法、资源调度装置和计算机可读存储介质
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013A (en) * 1853-09-13 Revolving- mandrel for lining- cylinders with metal
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
KR100607141B1 (ko) * 2004-05-12 2006-08-01 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 시스템
US7818746B2 (en) * 2005-03-30 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for benchmarking using a multi-threaded load generator
US8296759B1 (en) * 2006-03-31 2012-10-23 Vmware, Inc. Offloading operations to a replicate virtual machine
US7844839B2 (en) * 2006-12-07 2010-11-30 Juniper Networks, Inc. Distribution of network communications based on server power consumption
JP2008234356A (ja) 2007-03-20 2008-10-02 Toshiba Corp サーバ検出システム及びプログラム
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US20090320021A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies
JP4772854B2 (ja) * 2008-12-02 2011-09-14 株式会社日立製作所 計算機システムの構成管理方法、計算機システム及び構成管理プログラム
US8291414B2 (en) * 2008-12-11 2012-10-16 International Business Machines Corporation Shared resource service provisioning using a virtual machine manager
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8572612B2 (en) * 2010-04-14 2013-10-29 International Business Machines Corporation Autonomic scaling of virtual machines in a cloud computing environment
JP5623139B2 (ja) 2010-06-02 2014-11-12 キヤノン株式会社 クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US8656387B2 (en) * 2010-06-17 2014-02-18 Gridcentric Inc. Method and system for workload distributing and processing across a network of replicated virtual machines

Also Published As

Publication number Publication date
US20120072914A1 (en) 2012-03-22
JP2012064070A (ja) 2012-03-29
US9075656B2 (en) 2015-07-07

Similar Documents

Publication Publication Date Title
JP5653151B2 (ja) クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
JP5623139B2 (ja) クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
US8970876B2 (en) Printing system, cloud computing system, printing system control method, and storage medium
US8736882B2 (en) Printing system, service processing method, and storage medium
JP5256744B2 (ja) 資源割当てシステム、資源割当て方法及びプログラム
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
US8836974B2 (en) Image processing system and control method for managing a job related to image processing in a distributed environment
WO2012032658A1 (ja) 計算機システムに対する処理のタスクでありユーザ操作に基づくタスクを管理するシステム、及び、その種のタスクに関する情報を表示する方法
WO2012056596A1 (ja) 計算機システム及び処理制御方法
JP2008226181A (ja) 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法
CN112000455B (zh) 一种多线程任务处理方法、装置及电子设备
US20150062647A1 (en) Information processing system, print system, and method and computer-readable storage medium for controlling information processing system
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
JP6176161B2 (ja) 印刷制御装置及びプログラム
US10303404B2 (en) Method for operating a print server for digital high-capacity printing systems
US20180173473A1 (en) Method for operating a print server for digital high-capacity printing systems
JP5939620B2 (ja) コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム
JP6885441B2 (ja) ライセンス管理装置、ライセンス管理方法、及び、ライセンス管理プログラム
US11487587B2 (en) Information processing system and method for controlling information processing system
JP7030412B2 (ja) 情報処理システム、及び制御方法
JP2017037469A (ja) 情報処理システム、優先処理方法、情報処理装置及びプログラム
JP2015141535A (ja) システム、システムの制御方法およびコンピュータプログラム
JP2020184241A (ja) 情報処理装置、情報処理装置の制御方法、及び印刷拡張アプリケーション
JP2015072716A (ja) 情報処理システム、情報処理システム制御方法、およびそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140925

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141118

R151 Written notification of patent or utility model registration

Ref document number: 5653151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees