(57)【特許請求の範囲】
【請求項１】
業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む実行要件と、を入力するステップと、
クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成するステップと、
前記実行処理を、前記実行要件に適合する実行環境にて実行するステップと、
を含むジョブ管理方法。
【請求項２】
前記実行環境を作成するステップは、仮想マシンを前記実行環境として前記クラウドシステムに作成する、請求項１のジョブ管理方法。
【請求項３】
前記実行要件と前記実行環境に関する検査を、前記実行環境の作成に先立ち行う検査ステップをさらに含む、請求項２のジョブ管理方法。
【請求項４】
前記検査ステップは、
前記クラウドシステムに既に作成された既存の仮想マシンのスペックが、前記実行要件を包含し、且つ、前記実行処理が前記既存の仮想マシンにて実行される他の処理と共存可能な場合に、前記既存の仮想マシンは前記実行要件に適合する実行環境であると判定する、請求項３のジョブ管理方法。
【請求項５】
前記検査ステップは、
前記既存の仮想マシンのスペックと前記実行要件の間の相違点が、予め定めた相違点である場合に、前記既存の仮想マシンのスペックを変更することにより前記実行要件に適合する実行環境の提供が可能と判定し、
前記既存の仮想マシンのスペックを、前記実行要件に適合するように変更するステップをさらに含む、請求項４のジョブ管理方法。
【請求項６】
前記検査ステップは、
前記実行要件に適合する仮想マシンが存在せず、且つ、前記既存の仮想マシンの変更によっても前記実行要件に適合する実行要件の提供が不可能な場合には、新たな仮想マシンの作成が必要と判定し、
前記実行環境を作成するステップは、
前記実行要件に適合する新たな仮想マシンを前記クラウドシステムに作成する、請求項５のジョブ管理方法。
【請求項７】
前記実行処理の実行に先立ち、前記インストラクションを前記実行環境となる仮想マシンに設定するステップをさらに含む、請求項２乃至６のいずれか一項に記載のジョブ管理方法。
【請求項８】
前記実行処理の実行が完了した後に、前記実行処理が実行された実行環境を削除するステップをさらに含む、請求項１乃至７のいずれか一項に記載のジョブ管理方法。
【請求項９】
業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む実行要件と、を入力する入力部と、
クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成する実行環境管理部と、
前記実行処理を、前記実行要件に適合する実行環境にて実行する実行部と、
を備える、ジョブ管理装置。
【請求項１０】
業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む実行要件と、を入力する処理と、
クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成する処理と、
前記実行処理を、前記実行要件に適合する実行環境にて実行する処理と、
をジョブ管理装置に搭載されたコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ管理方法、ジョブ管理装置及びプログラムに関する。特に、クラウドシステムにて実行されるジョブを対象としたジョブ管理方法、ジョブ管理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、従業員の勤務管理や売り上げの帳票管理等に係る業務が、ネットワーク上のサーバにて処理されることが多くなっている。具体的には、当該サーバが、勤務管理等の業務遂行に必要な処理手続を記載したジョブスクリプトに含まれる単一又は連続的なプログラム群を実行することで、勤務管理等に係るジョブが処理される。なお、ジョブスクリプトは、サーバ上で実行されるＯＳ（Operating System）に応じて、シェルスクリプトやバッチスクリプトと称されることもある。
【０００３】
また、１つの業務を複数のジョブ（処理単位）に分解し、当該複数のジョブに前後関係を設定し、その前後関係がフロー状に定義されたジョブネットワークがサーバにて処理されることもある。
【０００４】
このようなジョブやジョブネットワークを管理するためのジョブ管理装置が存在する。ジョブ管理装置は、ジョブの定義情報を管理し、ジョブネットワークのフロー制御等を行う。なお、ジョブ管理装置は、ジョブやジョブネットワークの管理に特化した装置であることが多く、ジョブの目的に応じて他の装置（サーバ、エージェント）にジョブスクリプト等の必要な情報が転送され、当該他の装置にて実際のジョブが実行されることも多い。
【０００５】
以前から勤務管理等の業務がサーバ上にて行われていたが、業務処理（ジョブの実行）はシステムごと、プロジェクトごとに、プラットフォーム（ハードウェア、ＯＳ等）が独立しているのが通常であった。このような場合、システムの管理者が当該プラットフォーム上で動くアプリケーション、ジョブの実行に必要な環境等を管理する必要がある。しかし、ネットワーク技術、情報処理技術の発展に伴い、システムの集約化が進み、プラットフォームは仮想化され、ジョブの実行に必要なミドルウェアはカタログという形式でテンプレート化されて提供されることが多くなってきた。
【０００６】
このような状況の変化に合わせ、システムやプロジェクトごとの担当者が、プラットフォームやミドルウェアに関する管理を行うのではなく、上記のような集約されたインフラストラクチャ（以下、単にインフラと表記する）に関する管理を特定の管理者（以下、インフラ管理者と表記する）が統括的に行うシステムが運用されることが多くなってきた。インフラ管理者がインフラを統括的に管理する運用形態では、各システムの担当者は、当該システムに割り当てられたインフラ上で任意の業務処理（ジョブ）を実行させることになる。
【０００７】
特許文献１は、特定のジョブリソース要件に応答してソフトウェア環境を動的に構築するグリッドコンピューティングシステムを開示する。また、特許文献２は、実行対象となるジョブの入力データ量と、既に実行されたジョブの入力データ量とリソース使用量の関係と、を用いて実行対象となるジョブのリソース使用量を予測するジョブ管理装置を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００８−５０２９６７号公報
【特許文献２】特開２０１４−１９１３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【００１０】
インフラ管理者がインフラを統括的に管理する上述のシステムでは、各利用者（各プロジェクトの担当者）からの要求に応じて、インフラ管理者が数多くの仮想マシン（ＶＭ；Virtual Machine）を作成する。利用者は、利用を望む仮想マシンの仕様（スペック）を記載した申請書（パラメータシート）を作成し、当該申請書をインフラ管理者に提出する。
【００１１】
インフラ管理者は、当該申請書に従い物理マシン（ＰＭ；Physical Machine）上に仮想マシンを作成し、利用者に払い出す。その際、インフラ管理者によるパラメータ値の誤入力防止とインフラ管理者の負担軽減を目的として、ＩａＣ（Infrastructure as Code）と呼ばれる技術が用いられることがある。具体的には、ＩａＣを用いることで、パラメータシートの内容はコード化され、自動的に仮想マシン及びその環境設定が行われる。
【００１２】
しかし、利用者（プロジェクトの担当者）に仮想マシンが払い出されただけでは、業務処理（ジョブ、ジョブネットワーク）を仮想マシン上で実行することはできない。つまり、ジョブの実行に必要なマシンスペック（例えば、メモリ容量、ディスク容量等）を有する仮想マシンが提供されただけでは、ジョブを実行することができない。具体的には、業務処理には実行要件が存在し、適切なＯＳ、アプリケーション等が仮想マシンにインストールされ、且つ、アプリケーション等の実行に必要なアカウント（実行ユーザ）が正しく設定されていないとジョブを実行させることができない。
【００１３】
そのため、実際のシステム運用では、プロジェクトの担当者は、業務処理に必要な要件をインフラ管理者に連絡し、必要なプラットフォームやアプリケーション等の準備を依頼することになる。上記の依頼によりインフラが整った後、各担当者は、ジョブ実行に必要な業務設計を行い、バッチ処理をプログラムやスクリプトとして対象サーバ（払い出された仮想マシン）に配置し、ジョブのスケジューリングを行っている。
【００１４】
インフラ管理者と各担当者のやり取りを纏めると以下のようになる。
・担当者が、業務処理を設計し、業務処理の実行に必要な要件を決定する。
・担当者は、業務処理の要件をインフラ管理者に連絡する。
・インフラ管理者は、連絡を受けた業務処理の要件に適合するインフラを構築する。
・担当者は、ジョブスクリプトをサーバ上に配置し、テスト（試験的な運用）の後、ジョブを実行させる。
【００１５】
このように、インフラ担当者と各プロジェクトの担当者の間の連携が、ジョブの実行には必要となる（ジョブ実行に必要な作業が分担して行われている）。しかし、担当者間の連携に不都合があると、ジョブが正常に実行されない事態が生じうる。つまり、立場の異なる担当者同士が上手く連携し、同期をとって業務処理に関する設計、環境構築を行わないと、円滑にシステムの運用を開始することができない。
【００１６】
例えば、ＩａＣ技術を利用することで、仮想マシンの払い出しが自動的に行われたとしても、それ以外の作業では担当者間の連携、手動によるパラメータの設定が必要であり、人為的なミスが生じうる。例えば、ジョブの実行に必要なユーザ（実行ユーザ）が仮想マシンに登録されていない、又は、登録されたユーザＩＤ（Identification）と依頼したユーザＩＤが異なるというミスが生じうる。あるいは、ジョブスクリプトが仮想マシンに正しく配置されていないというミスが生じうる。
【００１７】
本発明は、クラウドシステムにおける円滑な業務処理の実行に寄与するジョブ管理方法、ジョブ管理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の第１の視点によれば、業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む要件を含む実行要件と、を入力するステップと、クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成するステップと、前記実行処理を、前記実行要件に適合する実行環境にて実行するステップと、を含む、ジョブ管理方法が提供される。
【００１９】
本発明の第２の視点によれば、業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む実行要件と、を入力する入力部と、クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成する実行環境管理部と、前記実行処理を、前記実行要件に適合する実行環境にて実行する実行部と、を備える、ジョブ管理装置が提供される。
【００２０】
本発明の第３の視点によれば、業務の実行処理を規定するインストラクションに関する情報と、前記実行処理を実行するためのゲストＯＳ、アプリケーション、ミドルウェア、アカウント情報の要件を含む実行要件と、を入力する処理と、クラウドシステムに前記実行要件に適合する実行環境が存在しなければ、前記クラウドシステムに前記実行要件に適合する実行環境を作成する処理と、前記実行処理を、前記実行要件に適合する実行環境にて実行する処理と、をジョブ管理装置に搭載されたコンピュータに実行させる、プログラム、が提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２１】
本発明の各視点によれば、クラウドシステムにおける円滑な業務処理の実行に寄与するジョブ管理方法、ジョブ管理装置及びプログラムが提供される。
【図面の簡単な説明】
【００２２】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係るジョブ実行システムの構成の一例を示す図である。
【図３】ジョブ要件の一例を示す図である。
【図４】第１の実施形態に係るジョブ管理装置の内部構成の一例を示す図である。
【図５】物理マシン管理情報の一例を示す図である。
【図６】仮想マシン管理情報の一例を示す図である。
【図７】第１の実施形態に係る物理マシンの内部構成の一例を示す図である。
【図８】第１の実施形態に係る実行環境検査部の動作の一例を示すフローチャートである。
【図９】ジョブ要件の一例を示す図である。
【図１０】ジョブ要件の一例を示す図である。
【図１１】第１の実施形態に係るジョブ実行システムの動作の一例を示すシーケンス図である。
【図１２】ジョブ実行システムの別の構成の一例を示す図である。
【図１３】ジョブ実行システムの別の構成の一例を示す図である。
【発明を実施するための形態】
【００２３】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００２４】
図１に示すように、一実施形態に係るジョブ管理方法は、第１〜第３のステップを含む。第１のステップは、業務の実行処理を規定するインストラクションに関する情報と、実行処理を実行するための要件を含む実行要件と、を入力するステップである。第２のステップは、クラウドシステムに実行要件に適合する実行環境が存在しなければ、当該クラウドシステムに実行要件に適合する実行環境を作成するステップである。第３のステップは、実行処理を、実行要件に適合する実行環境にて実行するステップである。なお、本願開示において、インストラクションとは、実行環境のプロセッサへのインストラクションと定義する。例えば、上記インストラクションとして、スクリプト又は実行ファイルが該当する。
【００２５】
一実施形態に係るジョブ管理方法は、ジョブのインストラクションに関する情報とその実行要件を含めて入力する。また、インストラクションに関する情報と共に入力された実行要件を満たす実行環境が存在するか否かが判定され、存在しない場合には、実行要件に適合する実行環境がクラウドシステムに作成される。その結果、インフラの事前準備や担当者間の連携が不要となり、必要なジョブが実行される。即ち、クラウドシステムにおける円滑な業務処理の実行が実現される。
【００２６】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００２７】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２８】
図２は、第１の実施形態に係るジョブ実行システムの構成の一例を示す図である。図２を参照すると、ジョブ実行システムには、端末１０と、データセンタ２０と、が含まれる。端末１０とデータセンタ２０は、ネットワークを介して相互に接続されている。
【００２９】
データセンタ２０には、ジョブ管理装置２１と、複数の物理マシン２２−１〜２２−ｎ（ｎは正の整数、以下同じ）と、が含まれる。なお、物理マシン２２−１〜２２−ｎを区別する特段の理由がない場合には、単に「物理マシン２２」と表記する。
【００３０】
データセンタ２０に設置された複数の物理マシン２２は、クラウドシステムにおけるサービス提供インフラを構成する情報処理装置（コンピュータ）である。クラウドシステムには、データセンタ２０の利用者（テナント）ごとに区分して仮想マシンが作成される。
【００３１】
ジョブ管理装置２１は、物理マシン２２の制御、管理を行う装置である。具体的には、ジョブ管理装置２１は、物理マシン２２の仕様（例えば、ハードウェアスペック、利用可能なソフトウェア等）や動作状態に関する管理する。また、ジョブ管理装置２１は、クラウドシステムをなす物理マシン２２に仮想マシンを作成し、データセンタ２０の利用者にジョブの実行環境（仮想マシン）を提供する。
【００３２】
端末１０は、データセンタ２０の利用者が使用する端末である。例えば、データセンタ２０の利用者は、端末１０を操作して、勤務管理等の業務処理を物理マシン２２に作成された仮想マシンに実行させるための要件（以下、ジョブ要件と表記する）をジョブ管理装置２１に入力する。
【００３３】
図３は、ジョブ要件の一例を示す図である。例えば、ジョブ要件は、ジョブ定義情報と、ジョブ実行要件と、から構成される。
【００３４】
ジョブ定義情報は、各テナントに提供される仮想マシンに実行させようとするジョブの概略を規定する情報を含む。例えば、ジョブ定義情報は、データセンタ２０の運営事業者から割り当てられたテナントＩＤ（Identification）と、業務の実行処理を規定するインストラクション（業務処理を実現するジョブの実体；例えば、スクリプトファイル又は実行ファイル）に関する情報と、ジョブ実行に関するスケジュール情報と、を含んで構成される。図３に示す例では、「テナントＡ」に割り当てられた仮想マシンにて、「ＪＯＢ＿Ａ．ｓｈ」というファイル名のスクリプトファイルに記載された処理（プログラム及びその実行順序）が、「毎週火曜日の午前８：００」に実行されることが理解される。
【００３５】
ジョブ実行要件は、ジョブ定義情報により規定されたジョブを実行するための要件に関する情報を含む。例えば、ジョブ実行要件は、ジョブを実行する仮想マシンに要求するスペック（メモリ容量、ディスク容量等）、ジョブを実行する際に必要なソフトウェア（ＯＳ、アプリケーション、ミドルウェア等）、ソフトウェアを実行するアカウント（実行アカウント）等に関する情報を含む。図３に示す例では、２Ｇｂｙｔｅのメモリ容量、１０Ｇｂｙｔｅのディスク容量を有する仮想マシンに、ＯＳとして「ＯＳ＿Ａ」が、アプリケーション（ＡＰ；Application）として「ＡＰ＿Ａ」が、それぞれインストールされ、「ＵＳＥＲ＿Ａ」が実行アカウントとして登録されていることが、ジョブの実行に必要であることが理解される。
【００３６】
図２に示すジョブ管理装置２１は、端末１０からジョブ要件を入力すると、当該ジョブ要件に含まれるジョブ実行要件に適合する実行環境（仮想マシン）を用意する。より具体的には、ジョブ管理装置２１は、ジョブ実行要件に適合する仮想マシンを用意し、当該仮想マシンをジョブの実行環境とする。さらに、ジョブ管理装置２１は、ジョブ定義情報に含まれるスケジュール情報に従い、ジョブの実行制御を行う。
【００３７】
データセンタ２０の利用者（テナント）は、端末１０を操作して、仮想マシンにより実行されたジョブの実行結果を参照する（又は、取得する）。
【００３８】
図４は、ジョブ管理装置２１の内部構成の一例を示す図である。図４を参照すると、ジョブ管理装置２１は、通信制御部２０１と、ジョブ要件処理部２０２と、実行環境検査部２０３と、物理マシン管理部２０４と、ジョブ実行制御部２０５と、ジョブ要件記憶部２１１と、物理マシン管理情報記憶部２１２と、仮想マシン管理情報記憶部２１３と、を含んで構成される。ジョブ管理装置２１を構成する各部は内部バスを介して相互に接続され、ジョブ要件処理部２０２を初めとする制御モジュールはジョブ要件記憶部２１１等の記憶部にアクセス可能に構成されている。
【００３９】
通信制御部２０１は、他の装置（端末１０、物理マシン２２等）との間の通信を制御する手段である。通信制御部２０１は、他の装置からメッセージを受信すると、当該メッセージをジョブ管理装置２１内の各部に振り分ける。あるいは、ジョブ管理装置２１内の各部からメッセージ送信の指示を受けると、他の装置に向けて当該メッセージを転送する。通信制御部２０１は、端末１０からジョブ要件を入力すると、当該入力されたジョブ要件をジョブ要件記憶部２１１に格納すると共に、ジョブ要件処理部２０２にジョブ要件を取得した旨を通知する。
【００４０】
ジョブ要件処理部２０２は、端末１０から取得したジョブ要件を処理する手段である。具体的には、ジョブ要件処理部２０２は、ジョブ要件を取得すると、実行環境検査部２０３に対し、ジョブ要件に記載されたジョブ実行要件と実行環境（仮想マシン）に関する検査を依頼する。ジョブ要件処理部２０２は、実行環境検査部２０３による検査が終了すると、実行環境検査部２０３から通知される検査結果に応じた処理を行う。
【００４１】
より詳細には、ジョブ要件処理部２０２は、実行環境検査部２０３から「ジョブは既存の仮想マシンにて実行可能」という第１の検査結果を取得した場合には、ジョブ実行制御部２０５に対し、ジョブ要件を特定する情報と、当該ジョブ要件に対応するジョブを実行する仮想マシンを特定する情報と、を通知する。
【００４２】
また、ジョブ要件処理部２０２は、実行環境検査部２０３から「ジョブは既存の仮想マシンのスペック変更により実行可能」という第２の検査結果を取得した場合には、物理マシン管理部２０４に対し、仮想マシンのスペック変更（構成変更、再構成）を依頼する。その際、ジョブ要件処理部２０２は、仮想マシンのスペック変更に関する情報を物理マシン管理部２０４に提供する。
【００４３】
さらに、ジョブ要件処理部２０２は、実行環境検査部２０３から「ジョブの実行には仮想マシンの新規作成が必要」という第３の検査結果を取得した場合には、物理マシン管理部２０４に対し、仮想マシンの新規作成を依頼する。その際、ジョブ要件処理部２０２は、新たに作成する仮想マシンに関する情報を物理マシン管理部２０４に提供する。
【００４４】
ジョブ要件処理部２０２は、物理マシン管理部２０４による仮想マシンの変更や新たな仮想マシンの作成が終了すると、ジョブ実行制御部２０５に対し、ジョブ要件を特定する情報と、当該ジョブ要件に対応するジョブを実行する仮想マシンを特定する情報と、を通知する。
【００４５】
また、ジョブ要件処理部２０２は、実行環境検査部２０３から上記第１〜第３の検査結果を取得した場合には、通信制御部２０１を介して、ジョブの実行環境が提供可能である旨を端末１０に通知する。
【００４６】
さらに、ジョブ要件処理部２０２は、実行環境検査部２０３から、「ジョブの実行は不可能」という第４の検査結果を取得した場合には、その旨を、通信制御部２０１を介して端末１０に通知する。
【００４７】
上述のように、実行環境検査部２０３は、ジョブ要件処理部２０２からの依頼（指示）に基づき、ジョブ要件に含まれるジョブ実行要件とその実行環境（仮想マシン）に関する検査を行う。より具体的には、ジョブ要件と、物理マシン管理情報記憶部２１２に格納された物理マシン管理情報と、仮想マシン管理情報記憶部２１３に格納された仮想マシン管理情報と、に基づき、上記第１〜第４の検査結果に対応する検査を行い、その結果をジョブ要件処理部２０２に通知する。なお、実行環境検査部２０３の動作に関するより詳細な説明は後述する。
【００４８】
物理マシン管理部２０４は、データセンタ２０内の物理マシン２２を制御し、管理する手段である（ジョブの実行環境である仮想マシンを管理する手段である）。具体的には、物理マシン管理部２０４は、クラウドシステムにジョブ実行要件に適合する仮想マシンが存在しなければ、物理マシン２２に当該ジョブ実行要件に適合する仮想マシンを、クラウドシステムのテナントごとに区分して作成する。より詳細には、物理マシン管理部２０４は、ジョブ要件処理部２０２からの依頼に基づき、既存の仮想マシンのスペックを変更する、又は、物理マシン２２に新たな仮想マシンを作成する。なお、物理マシン管理部２０４による仮想マシンの変更や新規作成は、実行環境検査部２０３による検査の後に行われる（実行要件と実行環境に関する検査が先に行われる）。さらに、物理マシン管理部２０４は、物理マシン管理情報や仮想マシン管理情報に変更が生じた場合には、これらの情報を記憶する記憶部（物理マシン管理情報記憶部２１２、仮想マシン管理情報記憶部２１３）の内容を更新する。
【００４９】
ジョブ実行制御部２０５は、ジョブ要件に含まれるジョブを、ジョブ要件に含まれるジョブ実行要件に適合する実行環境（仮想マシン）にて実行する手段である。具体的には、ジョブ実行制御部２０５は、ジョブ要件に記載されたジョブ（ジョブプロセス）の起動や停止に関する制御（ジョブ実行制御）を行う。さらに、ジョブ実行制御部２０５は、ジョブ要件のジョブを実行する仮想マシンに、ジョブ定義情報に含まれるインストラクションを設定する。例えば、ジョブ実行制御部２０５は、ジョブの実行に必要なスクリプトファイルを仮想マシンに配布し、ジョブ実行可能状態とする。仮想マシンへのインストラクションの設定が終了すると、ジョブ実行制御部２０５は、ジョブ定義情報に記載されたスケジュール情報に従い、ジョブの実行をインストラクションが設定された仮想マシンに指示する。
【００５０】
ジョブ要件記憶部２１１、物理マシン管理情報記憶部２１２及び仮想マシン管理情報記憶部２１３の各記憶部は、ＨＤＤ（Hard Disk Drive）等の記憶媒体を含んで構成される。
【００５１】
ジョブ要件記憶部２１１は、端末１０から取得したジョブ要件を記憶する。
【００５２】
物理マシン管理情報記憶部２１２は、物理マシン管理情報を一元管理し、当該情報を記憶する。図５は、物理マシン管理情報の一例を示す図である。図５を参照すると、物理マシン管理情報として、各物理マシン２２が有するハードウェアスペック（例えば、利用可能なメモリ容量、ディスク容量）やソフトウェア（利用可能なＯＳ、利用可能なアプリケーション、利用可能なミドルウェア（ＭＷ；MiddleWare））等に関する情報が、登録されている。
【００５３】
仮想マシン管理情報記憶部２１３は、仮想マシン管理情報を一元管理し、当該情報を記憶する。図６は、仮想マシン管理情報の一例を示す図である。図６を参照すると、仮想マシン管理情報として、テナントごとに、各テナントに割り当てられた仮想マシンと、当該仮想マシンが作成されている物理マシンと、仮想マシンのスペックと、仮想マシンにインストールされたソフトウェア（例えば、ゲストＯＳ、実行可能なアプリケーション）と、当該ソフトウェアの実行アカウントに関する情報と、が登録されている。つまり、仮想マシン管理情報により、物理マシン２２に作成された仮想マシンのスペック（ハードウェアに関するスペック、ソフトウェアに関するスペック）が管理される。なお、本願開示において、ソフトウェアを実行する実行アカウントは、ソフトウェアに関するスペックに含まれるものとする。
【００５４】
図７は、物理マシン２２の内部構成の一例を示す図である。図７を参照すると、物理マシン２２は、ハードウェアリソース３０１と、ハイパーバイザー３０２と、を含んで構成される。
【００５５】
物理マシン２２が有するハードウェアリソース３０１には、ＣＰＵ（Central Processing Unit）、ＤＲＡＭ（Dynamic Random Access Memory）等のメモリ、ＨＤＤ（Hard Disk Drive）等の記憶媒体、ＮＩＣ（Network Interface Card）等の通信インターフェイス等が含まれる。
【００５６】
ハイパーバイザー３０２は、物理マシン２２における仮想化環境を構築し、管理する手段である。即ち、ハイパーバイザー３０２により仮想マシンの作成、変更が制御される。ハイパーバイザー３０２が作成する仮想マシンには、ハードウェアリソース３０１を仮想化した仮想ハードウェア３１１が割り当てられる。この仮想ハードウェア３１１には、仮想ＮＩＣが含まれ、仮想マシンと他の装置との通信は、仮想ＮＩＣを介して行われる。仮想マシン上では、ゲストＯＳ３１２が動作し、当該ゲストＯＳ３１２上でアプリケーション３１３やミドルウェア３１４が動作する。
【００５７】
次に、実行環境検査部２０３を中心に第１の実施形態に係るジョブ管理装置２１の動作について説明する。
【００５８】
図８は、第１の実施形態に係る実行環境検査部２０３の動作の一例を示すフローチャートである。
【００５９】
ステップＳ１０１において、実行環境検査部２０３は、端末１０から取得したジョブ実行要件に適合する仮想マシンが既に存在するか否かを判定する。具体的には、実行環境検査部２０３は、物理マシン２２に既に構築された既存の仮想マシンのスペック（ハードウェアスペック、ソフトウェアスペック）が、ジョブ実行要件を包含しているか否かにより、上記判定を行う。ジョブ実行要件に適合する仮想マシンが既に存在する場合（ステップＳ１０１、Ｙｅｓ分岐）には、実行環境検査部２０３は、ステップＳ１０２以降の処理を実行する。ジョブ実行要件の要素と、対応する仮想マシン管理情報の要素と、が少なくとも１つ以上相違する場合（既存の仮想マシンのスペックがジョブ要件に含まれるジョブ実行要件を包含しない場合）には、実行環境検査部２０３は、ジョブ実行要件に適合する仮想マシンは存在しないと判定（ステップＳ１０１、Ｎｏ分岐）し、ステップＳ１０４以降の処理を実行する。
【００６０】
例えば、実行環境検査部２０３は、図９に示すようなジョブ要件を取得したものとする。この場合、実行環境検査部２０３は、仮想マシン管理情報記憶部２１３を参照し、テナントＡに割り当てられた仮想マシンであって、図９に示すジョブ実行要件に適合する仮想マシンが存在するか否かを判定する。
【００６１】
図６を参照すると、物理マシン２２−１に作成された仮想マシンＶＭ１−１のスペックが、上記ジョブ実行要件を包含するので、実行環境検査部２０３はステップＳ１０２に遷移し処理を続ける。
【００６２】
一方、実行環境検査部２０３が、図１０（ａ）や図１０（ｂ）に示すようなジョブ要件を取得した場合には、テナントＡに割り当てられた仮想マシンであって、そのスペックがジョブ実行要件を包含する仮想マシンは存在しないので、ステップＳ１０４に遷移し処理を続ける。図１０（ａ）に例示するジョブ実行要件は、図６の１行目に記載された仮想マシンＶＭ１−１と比較し、実行アカウントが一致しないためである。また、図１０（ｂ）に例示するジョブ実行要件は、図６の１行目に記載された仮想マシンＶＭ１−１と比較し、ＯＳ（ゲストＯＳ）が一致しないためである。
【００６３】
ステップＳ１０２において、実行環境検査部２０３は、ジョブ要件に記載されたジョブ（スクリプトファイル）が、ステップＳ１０１にて選択された仮想マシン（既存の仮想マシン）にて実行可能か否かを判定する。具体的には、実行環境検査部２０３は、ジョブ（スクリプトファイルにより規定される実行処理）が既存の仮想マシンにて実行される他の処理と共存可能か否かにより、上記判定を行う。
【００６４】
なお、実行環境検査部２０３が実行するステップＳ１０２の判定には、種々の技術を用いることができる。例えば、実行環境検査部２０３は、ジョブ要件に記載されたスケジュール情報と、既存の仮想マシンにて実行されるジョブのスケジュール情報と、を比較し、ジョブの実行可否を判定してもよい。ジョブ要件に記載されたジョブの実行タイミングと、既存の仮想マシンにて実行されるジョブの実行タイミングと、が異なる場合（例えば、各ジョブを実行する曜日が異なる場合）には、実行環境検査部２０３は、２つのジョブは同一の仮想マシンにて実行可能と判定する。
【００６５】
あるいは、特許文献２に開示されるように、これから実行しようとするジョブ（ジョブ要件に記載されたジョブ；実行対象のジョブ）の入力データ量と、既に実行されたジョブ（ステップＳ１０１にて選択された仮想マシンにて実行されたジョブ）の入力データ量とリソース使用量との関係を用いて、実行対象のジョブが既存の仮想マシンにて実行可能か否かを判定してもよい。
【００６６】
ジョブが既存の仮想マシンにて実行可能な場合（ステップＳ１０２、Ｙｅｓ分岐）には、実行環境検査部２０３は、要求されたジョブの実行は既存の仮想マシンにより対応可能であると判定する（ステップＳ１０３）。即ち、既存の仮想マシンは、ジョブ実行要件に適合する実行環境であると判定される。この場合、実行環境検査部２０３は、ジョブ実行要件に関する検査の結果に上記第１の検査結果を設定する。
【００６７】
ステップＳ１０４において、実行環境検査部２０３は、既存の仮想マシンにスペック変更を加えることで、要求されたジョブ実行要件に対応可能か否かを判定する。具体的には、実行環境検査部２０３は、既存の仮想マシンのスペックとジョブ実行要件の間の相違点が、予め定めた相違点であるか否かにより、上記判定を行う。
【００６８】
例えば、図１０（ａ）に示すように、ジョブ実行要件と既存の仮想マシンＶＭ１−１の間で、実行アカウントに限り異なる場合には、要求されたジョブ実行要件は既存の仮想マシンに変更を加えることで対応可能と判定される。この場合、既に存在する仮想マシンに実行アカウントを追加することは容易であるためである。あるいは、要求されたジョブ実行要件と既存の仮想マシンの相違点が、既に作成された仮想マシンのメモリ容量がジョブ実行要件のメモリ容量よりも小さいような場合も、既存の仮想マシンのスペックを変更することによりジョブ実行要件に適合する実行環境（仮想マシン）の提供が可能と判定される。既に存在する仮想マシンにメモリ容量を追加することは容易であるためである。
【００６９】
一方、図１０（ｂ）に示すように、ジョブ実行要件のＯＳと、既存の仮想マシンＶＭ１−１にインストールされているＯＳ（ゲストＯＳ）と、が異なる場合には、実行環境検査部２０３は、既存の仮想マシンに対する変更では要求されたジョブ実行要件に対応不可と判定する。ＯＳが異なる場合の対応は困難だからである。
【００７０】
なお、いずれかの要素が一致するときに既存の仮想マシンに対する変更により、要求されたジョブ実行要件が対応可能か否かの基準は、各要素の性質や特等に応じて予め定めておくものとする。
【００７１】
既存の仮想マシンを変更することでジョブ実行要件に対応可能と判定された場合（ステップＳ１０４、Ｙｅｓ分岐）は、実行環境検査部２０３は、既存の仮想マシンのスペック変更が必要と判定する（ステップＳ１０５）。この場合、実行環境検査部２０３は、ジョブ実行要件に関する検査の結果として上記第２の検査結果を設定する。
【００７２】
要求されたジョブ実行要件が既存の仮想マシンにて対応不可な場合（ステップＳ１０２、Ｎｏ分岐）や既存の仮想マシンを変更しても要求されたジョブ実行要件への対応が不可な場合（ステップＳ１０４、Ｎｏ分岐）には、実行環境検査部２０３は、要求されたジョブ実行要件に適合する仮想マシンの作成が可能か否かを判定する（ステップＳ１０６）。換言するならば、実行環境検査部２０３は、ジョブ実行要件に適合する仮想マシンは存在せず、且つ、既存の仮想マシンの変更によってもジョブ実行要件に適合する実行要件の提供が不可能な場合に、仮想マシンの新規作成に関する要否を判定する。具体的には、実行環境検査部２０３は、物理マシン管理情報記憶部２１２を参照し、要求されたジョブ実行要件に適合する仮想マシンの作成が可能な物理マシン２２が存在するか否かを判定する。
【００７３】
例えば、図１０（ｂ）に例示するジョブ要件は、テナントＡに割り当てられた仮想マシンに「ＯＳ＿Ｃ」がインストールされていないことを理由に、仮想マシンを新たなに作成する必要があると判定される。この場合、図５に示す物理マシン管理情報と、図１０（ｂ）に示すジョブ要件と、を参照すると、物理マシン２２−２には「ＯＳ＿Ｃ」がインストール可能であるので、当該ジョブ実行要件に適合する実行環境（仮想マシン）は物理マシン２２−２に作成可能と判定される。
【００７４】
ジョブ実行要件を満たす仮想マシンの作成が可能な物理マシン２２が存在する場合（ステップＳ１０６、Ｙｅｓ分岐）には、実行環境検査部２０３は、要求されたジョブ実行要件に適合する仮想マシンの作成は可能であると判定する（ステップＳ１０７）。この場合、実行環境検査部２０３は、ジョブ実行要件に関する検査の結果として上記第３の検査結果を設定する。
【００７５】
ジョブ実行要件に適合する仮想マシンの作成が可能な物理マシン２２が存在しない場合（ステップＳ１０６、Ｎｏ分岐）には、実行環境検査部２０３は、要求されたジョブ実行要件に適合する仮想マシンの作成は不可能であると判定する（ステップＳ１０８）。この場合、実行環境検査部２０３は、ジョブ実行要件に関する検査の結果として上記第４の検査結果を設定する。
【００７６】
ステップＳ１０９において、実行環境検査部２０３は、上記第１〜第４の検査結果のいずれかと、その詳細をジョブ要件処理部２０２に通知する。
【００７７】
具体的には、実行環境検査部２０３は、第１の検査結果を得た場合には、ジョブを実行する仮想マシンを特定する識別情報（仮想マシンのＩＤ）を検査結果に添えて、ジョブ要件処理部２０２に通知する。
【００７８】
実行環境検査部２０３は、第２の検査結果を得た場合には、検査結果と共に、変更を要する仮想マシンを特定する識別情報と、変更内容（例えば、追加する実行アカウント名や追加が必要なメモリ容量に関する情報）と、をジョブ要件処理部２０２に通知する。
【００７９】
実行環境検査部２０３は、第３の検査結果を得た場合には、検査結果と共に、ジョブ実行要件に適合する仮想マシンの作成が可能な物理マシン２２を特定する識別情報をジョブ要件処理部２０２に通知する。
【００８０】
実行環境検査部２０３は、第４の検査結果を得た場合には、要求されたジョブ実行要件に適合する仮想マシンが用意できない旨をジョブ要件処理部２０２に通知する。
【００８１】
次に、図１１を参照して、第１の実施形態に係るジョブ実行システムの動作を説明する。
【００８２】
ステップＳ０１において、端末１０は、データセンタ２０の利用者によるジョブ要件を入力し、取得したジョブ要件をジョブ管理装置２１に出力する。ジョブ管理装置２１のジョブ要件処理部２０２は、取得したジョブ要件をジョブ要件記憶部２１１に格納すると共に、当該ジョブ要件に含まれるジョブ実行要件と実行環境に関する検査を実行環境検査部２０３に依頼する。
【００８３】
ステップＳ０２において、実行環境検査部２０３は、ジョブ要件、物理マシン管理情報及び仮想マシン管理情報を参照し、ジョブ実行要件及び実行環境に関する検査を行う。その後、実行環境検査部２０３は、検査結果（上述の第１〜第４の検査結果のいずれか）をジョブ要件処理部２０２に通知する。
【００８４】
実行環境検査部２０３による検査結果を取得したジョブ要件処理部２０２は、各検査結果に応じた処理を行う。
【００８５】
具体的には、第１の検査結果（既存の仮想マシンにて対応可能）を取得した場合には、ジョブ要件処理部２０２は、端末１０から入力されたジョブ要件に含まれるジョブを実行する仮想マシンを特定する識別情報をジョブ実行制御部２０５に通知する（ステップＳ０３）。
【００８６】
第２の検査結果（既存の仮想マシンを変更することで対応可能）を取得した場合には、ジョブ要件処理部２０２は、仮想マシンの変更内容を物理マシン管理部２０４に通知し、仮想マシンの変更を依頼する。この場合、物理マシン管理部２０４は、通知された仮想マシンの変更内容に基づき、物理マシン２２（より正確には、ハイパーバイザー３０２）に対して、既存の仮想マシンのスペック変更を指示する（ステップＳ０４）。仮想マシンのスペック変更が終了すると、物理マシン管理部２０４は、その旨をジョブ要件処理部２０２に通知する。その後、ジョブ要件処理部２０２は、ジョブを実行する仮想マシンを特定する識別情報をジョブ実行制御部２０５に通知する。
【００８７】
第３の検査結果（新たな仮想マシンの作成が必要）を取得した場合には、ジョブ要件処理部２０２は、新たに作成する仮想マシンのスペックを物理マシン管理部２０４に通知し、仮想マシンの作成を依頼する。この場合、物理マシン管理部２０４は、通知された仮想マシンのスペックに基づき、物理マシン２２に対して、新たな仮想マシンの作成を指示する（ステップＳ０５）。即ち、物理マシン管理部２０４は、新たに作成する仮想マシンのスペックとしてジョブ要件に含まれるジョブ実行要件を取得し、当該ジョブ実行要件を満たすインフラの作成を行う。具体的には、物理マシン管理部２０４は、仮想マシンを作成し、当該作成された仮想マシンにＯＳ、アプリケーション及びミドルウェアをインストールすると共に、実行アカウントの設定を行う。
【００８８】
仮想マシンの作成が終了すると、物理マシン管理部２０４は、その旨をジョブ要件処理部２０２に通知する。その後、ジョブ要件処理部２０２は、ジョブを実行する仮想マシンを特定する識別情報をジョブ実行制御部２０５に通知する。
【００８９】
ステップＳ０６において、ジョブ要件処理部２０２は、端末１０からのジョブ要件入力に対する応答を行う。具体的には、ジョブ要件処理部２０２は、上記第１〜第３の検査結果を得た場合には、ジョブ要件に含まれるジョブ実行要件を満たす環境の提供が可能である旨（ジョブは実行可能である旨）を端末１０に通知する。
【００９０】
一方、第４の検査結果（ジョブの実行要件を満たす仮想マシンの作成は不可能）を取得した場合には、ジョブ要件処理部２０２は、ジョブ要件に含まれるジョブ実行要件を満たす環境の提供は不可である旨（エラー）を端末１０に通知する。その際、ジョブ要件処理部２０２は、エラーと共に、不足するリソース（メモリ容量、ディスク容量等）やソフトウェアに関する情報を端末１０に通知してもよい。
【００９１】
ジョブを実行する仮想マシンの通知を受けたジョブ実行制御部２０５は、ジョブ要件記憶部２１１を参照し、ジョブ定義情報に含まれるインストラクションを、通知された仮想マシンに設定する（ステップＳ１１）。例えば、ジョブ実行制御部２０５は、仮想マシンの所定位置（所定のフォルダ）にスクリプトファイルを設定するように、仮想マシンに指示する。より詳細には、ジョブ実行制御部２０５は、ジョブ定義情報に記載のスクリプトファイルの実体を仮想マシンに送信し、当該スクリプトファイルを所定の場所に格納するように指示する。
【００９２】
あるいは、ジョブ定義情報に記載のインストラクションに関する情報が、例えば、スクリプトファイルの格納場所を示すパス情報である場合には、ジョブ実行制御部２０５は、当該パス情報を仮想マシンに送信し、当該パス情報に記載された場所からスクリプトファイルの実体を取得することを指示し、所定の場所に格納することを指示する。
【００９３】
その後、ジョブ実行制御部２０５は、予め定めたタイミングや予め定めた時刻に、ジョブ要件記憶部２１１を参照し、スケジュール情報を確認する（ステップＳ１２）。
【００９４】
確認の結果、ジョブの実行が必要と判断した場合には、ジョブ実行制御部２０５は、ジョブの実行を仮想マシンに指示する（ステップＳ１３）。
【００９５】
ジョブの実行に係る指示を受けた仮想マシンは、当該ジョブを実行する（ステップＳ１４）。
【００９６】
その後、データセンタ２０の利用者は、端末１０を操作して、ジョブの実行結果を参照、取得する（ステップＳ１５）。
【００９７】
なお、図１１に示すステップＳ０１〜Ｓ０６に係る処理は、クラウドシステムに実行させるジョブの設計を行うフェーズとインフラ作成を行う構築フェーズに相当する。また、ステップＳ１１〜Ｓ１５に係る処理は、ジョブ実行フェーズに相当する。
【００９８】
以上のように、第１の実施形態に係るジョブ実行システムは、ジョブ（業務処理）の実行要件を含めてジョブ管理装置２１に入力し、ジョブ管理装置２１によりジョブの実行環境が自動的に構築される構成（仕組み）を有するものである。即ち、ジョブ管理装置２１は、端末１０からのジョブ要件を入力する際（ジョブの定義を行う際）、インストラクションに関する情報だけでなく、実行要件を記述する手段を有し、インストラクションに関する情報と実行要件を関連付けて保存する。また、ジョブ管理装置２１は、インストラクションに関する情報と共に入力された実行要件を満たす環境（仮想マシン）が存在するか否か、存在しない場合にはその実行要件に適合するインフラが作成可能か否かを確認、判定する手段を有する。つまり、定義されたジョブが実行可能か否かに関する判定が事前に行われる。また、ジョブ管理装置２１は、ジョブの実行が可能な環境（仮想マシン、インフラ）を作成する手段を有し、当該ジョブを実行する前に当該環境を作成することができる。
【００９９】
ジョブ管理装置２１が有する上記の各手段の働きにより、インフラの事前準備や担当者間の連携が不要となり、プロジェクトの担当者（業務担当者；端末１０の使用者）はジョブの設計、構築を行うことで、必要なジョブが実行される。即ち、インフラ担当者、業務担当者のように役割分担せずとも、一人の管理者が任意のタイミングで必要なインフラ（実行環境）の構築が可能となり、互いの連携や手動作業が不要となり人為的ミスが減少する。また、インフラ情報及びジョブ管理に必要な定義情報を含む情報がコード化されているため、容易に複製（マイグレーション）が可能であり、業務担当者は、検査環境にて試験を行ったシステムをそのまま実際の環境として運用することができる。
【０１００】
なお、第１の実施形態にて説明したジョブ実行システムの構成（図２）は例示であって、システムの構成を限定する趣旨ではない。例えば、ジョブ管理装置２１の各機能が複数の装置により実現されていてもよい。例えば、図１２に示すように、端末１０からのジョブ要件入力を処理する装置（ジョブ管理装置２１ａ）と、データセンタ２０内の物理マシン２２を管理する装置（クラウド管理装置３１）と、を有するシステム構成であってもよい。この場合、ジョブ管理装置２１ａは、端末１０からジョブ要件を入力すると、当該ジョブ要件に含まれるジョブ実行要件に適合する実行環境の提供をクラウド管理装置３１に依頼する。依頼を受けたクラウド管理装置３１は、ジョブ実行要件とデータセンタ２０内の物理マシン２２に作成された仮想マシンに関する検査を行う。クラウド管理装置３１は、既存の仮想マシンにてジョブ実行要件に適合可能、又は、新たな仮想マシンの作成が必要等の検査結果に応じて、ジョブ実行環境（仮想マシン）を用意し、ジョブ管理装置２１ａからの依頼に応答する。ジョブ管理装置２１ａは、データセンタ２０からジョブ実行環境の提供を受けることが可能な場合には、当該実行環境上にてジョブを実行する。このように、ジョブ管理装置２１ａには、第１の実施形態にて説明したジョブ要件処理部２０２やジョブ実行制御部２０５の機能を含ませ、クラウド管理装置３１には、実行環境検査部２０３や物理マシン管理部２０４の機能を含ませることができる。
【０１０１】
あるいは、図１３に示すように、１つのジョブ管理装置２１ｂと、複数のデータセンタ２０−１〜２０−ｍ（ｍは正の整数、以下同じ）と、がジョブ実行システムに含まれていてもよい。即ち、ジョブ実行システムは、複数のデータセンタ２０−１〜２０−ｍによりジョブ実行環境が冗長化された構成であってもよい。この場合、ジョブ管理装置２１ｂは、各データセンタの稼働状況等を考慮して、ジョブ実行環境提供の依頼を行うクラウド管理装置３１を選択することもできる。
【０１０２】
第１の実施形態では、ジョブ実行制御部２０５がスケジュール情報に従いジョブを起動することを説明したが、ジョブの実行が完了した後に当該ジョブの実行環境（仮想マシン）を削除してもよい。具体的には、ジョブ実行制御部２０５は、仮想マシンにてジョブの実行が完了した後、物理マシン管理部２０４に当該ジョブの実行環境（仮想マシン）の削除を依頼してもよい。即ち、クラウド環境下でのオートスケーリングを実現することができる。ジョブは週末や月末等の期間の区切りにて実行されることが多く、これらのタイミングでは物理マシンの負荷が増加する。そこで、対象となる業務処理（ジョブ）を行うためのインスタンス（ジョブ実行要件）を事前に定義しておき、当該ジョブの実行が必要となったタイミングにて新たな仮想マシンを作成し起動する（ジョブの実行完了後には仮想マシンを削除する）。その結果、ジョブの実行環境を提供する物理マシンのリソースを効率的に利用することができる。なお、通常行われるオートスケーリングの場合、必要となるインスタンスの作成は行えるが、ジョブの管理とは連動しておらず、インスタンスとジョブ（アプリケーション）の依存関係を定義することはできない。
【０１０３】
第１の実施形態では、ジョブ実行要件にはアプリケーションやミドルウェアが含まれる場合を説明したが、これらのソフトウェアが不要なジョブも存在する。また、第１の実施形態では、ソフトウェアの種別（名称）がジョブ実行要件に含まれる場合を説明したが、ソフトウェアのバージョンやライセンス等に関する情報がジョブ実行要件に含まれ、物理マシン管理情報や仮想マシン管理情報にてこれらの情報（バージョン、ライセンス等の情報）が管理されていてもよい。つまり、実行環境に要求されるバージョンと、実行環境により提供可能なバージョンと、を考慮して、実行環境の提供可否が判断されてもよい。あるいは、仮想マシンに割り当て可能なライセンスが不足する場合には、当該仮想マシンにてジョブは実行不可能等の判断が行われてもよい。
【０１０４】
第１の実施形態に係るジョブ管理装置２１に含まれるジョブ要件処理部２０２、実行環境検査部２０３、物理マシン管理部２０４及びジョブ実行制御部２０５等の各部は、ジョブ管理装置２１に搭載されたコンピュータに、そのハードウェアを用いて、各処理を実行させるコンピュータプログラムにより実現することもできる。つまり、実行環境検査部２０３等が行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段があればよい。
【０１０５】
第１の実施形態では、１つのジョブがジョブ要件により定義される場合を説明したが、ジョブネットワークに関する詳細がジョブ要件により定義されてもよい。この場合、１つのジョブ要件に複数のジョブに対応したジョブ実行要件と、複数のジョブの実行順序に関する情報と、が含まれることになる。そのような場合には、ジョブ管理装置２１は、ジョブ要件に含まれる個別のジョブ実行要件について、第１の実施形態にて説明した検査及び環境の構築を行えばよい。さらに、ジョブ管理装置２１は、それぞれのジョブに対応する実行環境（仮想マシン）が用意された後に、ジョブ要件に含まれるジョブの実行順序に関する情報に従い、各ジョブを実行（ジョブネットワークの実行制御を行う）すればよい。
【０１０６】
さらに、コンピュータの記憶部に、上述したコンピュータプログラムをインストールすることにより、コンピュータをジョブ管理装置として機能させることができる。さらにまた、上述したコンピュータプログラムをコンピュータに実行させることにより、コンピュータによりジョブ管理方法を実行することができる。また、そのプログラムは、ネットワークを介してダウンロードするか、或いは、プログラムを記憶した記憶媒体を用いて、更新することができる。
【０１０７】
また、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、実施形態で実行される工程の実行順序は、その記載の順番に制限されない。実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
【０１０８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
上述の第１の視点に係るジョブ管理方法のとおりである。
［付記２］
前記実行環境を作成するステップは、仮想マシンを前記実行環境として前記クラウドシステムに作成する、付記１のジョブ管理方法。
［付記３］
前記実行要件と前記実行環境に関する検査を、前記実行環境の作成に先立ち行う検査ステップをさらに含む、付記２のジョブ管理方法。
［付記４］
前記検査ステップは、
前記クラウドシステムに既に作成された既存の仮想マシンのスペックが、前記実行要件を包含し、且つ、前記実行処理が前記既存の仮想マシンにて実行される他の処理と共存可能な場合に、前記既存の仮想マシンは前記実行要件に適合する実行環境であると判定する、付記３のジョブ管理方法。
［付記５］
前記検査ステップは、
前記既存の仮想マシンのスペックと前記実行要件の間の相違点が、予め定めた相違点である場合に、前記既存の仮想マシンのスペックを変更することにより前記実行要件に適合する実行環境の提供が可能と判定し、
前記既存の仮想マシンのスペックを、前記実行要件に適合するように変更するステップをさらに含む、付記３又は４のジョブ管理方法。
［付記６］
前記検査ステップは、
前記実行要件に適合する仮想マシンが存在せず、且つ、前記既存の仮想マシンの変更によっても前記実行要件に適合する実行要件の提供が不可能な場合には、新たな仮想マシンの作成が必要と判定し、
前記実行環境を作成するステップは、
前記実行要件に適合する新たな仮想マシンを前記クラウドシステムに作成する、付記５のジョブ管理方法。
［付記７］
前記実行処理の実行に先立ち、前記インストラクションを前記実行環境となる仮想マシンに設定するステップをさらに含む、付記２乃至６のいずれか一に記載のジョブ管理方法。
［付記８］
前記実行処理の実行が完了した後に、前記実行処理が実行された実行環境を削除するステップをさらに含む、付記１乃至７のいずれか一に記載のジョブ管理方法。
［付記９］
上述の第２の視点に係るジョブ管理装置のとおりである。
［付記１０］
上述の第３の視点に係るプログラムのとおりである。
なお、付記９の形態及び付記１０の形態は、付記１の形態と同様に、付記２の形態〜付記８の形態に展開することが可能である。
【０１０９】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１１０】
１０  端末
２０、２０−１〜２０−ｍ  データセンタ
２１、２１ａ、２１ｂ  ジョブ管理装置
２２、２２−１〜２２−ｎ  物理マシン
３１  クラウド管理装置
２０１  通信制御部
２０２  ジョブ要件処理部
２０３  実行環境検査部
２０４  物理マシン管理部
２０５  ジョブ実行制御部
２１１  ジョブ要件記憶部
２１２  物理マシン管理情報記憶部
２１３  仮想マシン管理情報記憶部
３０１  ハードウェアリソース
３０２  ハイパーバイザー
３１１  仮想ハードウェア
３１２  ゲストＯＳ
３１３  アプリケーション
３１４  ミドルウェア
【図１】
0006668658.tif 000002
【図２】
0006668658.tif 000003
【図３】
0006668658.tif 000004
【図４】
0006668658.tif 000005
【図５】
0006668658.tif 000006
【図６】
0006668658.tif 000007
【図７】
0006668658.tif 000008
【図８】
0006668658.tif 000009
【図９】
0006668658.tif 000010
【図１０】
0006668658.tif 000011
【図１１】
0006668658.tif 000012
【図１２】
0006668658.tif 000013
【図１３】
0006668658.tif 000014