(57)【要約】  依存関係がある複数のソフトウェアコンポーネントが複数の処理装置に分散して配備されるシステムを構築する。  情報システムは、配備装置（１００）と複数の処理装置（２００）とを含む。処理装置（２００）のスケジューラ（２１０）は、配備タスクの終了イベントをもとに、タスク情報（２３１）に実行条件を満たす配備タスクがあるかどうかを判定する。実行条件を満たす配備タスクがある場合、スケジューラ（２１０）は、当該配備タスクを実行し、当該配備タスクの終了イベントを配備装置（１００）に送信する。配備装置（１００）のイベント処理部（１３０）は、イベント情報（１４１）を参照し、配備タスクの終了イベントを、通知先の処理装置（２００）に送信する。
2014171130.tif 000002
【特許請求の範囲】
【請求項１】
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、
配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、
を有する、前記複数の処理装置と、
前記複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、
前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、
を有する前記配備装置と、
を備えた、情報処理システム。
【請求項２】
前記タスク情報は、さらに、前記１以上の配備タスクの識別子の各々対応に、当該配備タスクの優先度を示し、
前記スケジューラ手段は、前記実行条件を満たす配備タスクの内、優先度の高い配備タスクを実行する、
請求項１に記載の情報処理システム。
【請求項３】
前記配備タスクの優先度は、当該配備タスクより後に実行すべき他の配備タスクの総数に基づいて決定される、
請求項２に記載の情報処理システム。
【請求項４】
前記スケジューラ手段は、前記配備装置に送信する配備タスクの終了イベントに、当該配備タスクの実行により生成された付加情報を含めて送信し、前記配備装置から受信した配備タスクの終了イベントに含まれる前記付加情報を用いて、当該配備タスクを前記実行条件に含む配備タスクを編集する、
請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
前記スケジューラ手段は、前記タスク情報の前記実行条件に含まれる配備タスクの識別子を含むイベント購読要求を前記配備装置に送信し、
前記イベント処理手段は、前記イベント情報において、前記イベント購読要求に含まれる配備タスクの識別子に対して、前記イベント購読要求の送信元の処理装置の識別子を設定する、
請求項１乃至４のいずれかに記載の情報処理システム。
【請求項６】
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置の各々において、前記複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶し、
配備装置において、前記複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶し、
前記複数の処理装置の各々において、前記配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信し、
前記配備装置において、前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信する、
配備方法。
【請求項７】
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、
複数の処理装置のいずれかから受信した配備タスクの終了イベントを他の処理装置に送信する配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクの終了時に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、
を備えた、処理装置。
【請求項８】
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、
配備装置から受信した配備タスクの終了イベントをもとに前に実行すべき配備タスクを示した実行条件を満たす配備タスクを実行する前記複数の処理装置のいずれかから、配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、
を備えた、配備装置。
【請求項９】
コンピュータを、
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、
複数の処理装置のいずれかから受信した配備タスクの終了イベントを他の処理装置に送信する配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクの終了時に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、
を含む処理装置として機能させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【請求項１０】
コンピュータを、
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、
配備装置から受信した配備タスクの終了イベントをもとに前に実行すべき配備タスクを示した実行条件を満たす配備タスクを実行する前記複数の処理装置のいずれかから、配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、
を含む配備装置として機能させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＴ（Information Technology）システムを構成するミドルウェア等のソフトウェアコンポーネントを配備する情報処理システム、配備方法、処理装置、及び、配備装置に関する。
【背景技術】
【０００２】
近年、ＩＴシステムを構成するミドルウェアなどのソフトウェアコンポーネントが多様化し、その利用にあたっては広い専門的な知識が必要となっている。同様に、これらのソフトウェアコンポーネントを利用したシステムの構築、設定にも高い専門性が要求され、作業コストの増大に繋がっている。このような状況を解決するため、システムの構築、設定を自動化する手法が考案されている。【０００３】
例えば、特許文献１には、システムを構成する複数のソフトウェアコンポーネント間に依存関係を定義し、依存関係に基づいてソフトウェアコンポーネントの起動順序を制御する技術が記載されている。特許文献１の技術では、複合機（処理装置）が、システムを構成する各ソフトウェアコンポーネントが依存する下位コンポーネントを示す重み付き依存情報をもとに、各ソフトウェアコンポーネントの起動順序を決定する。【０００４】
複数のソフトウェアコンポーネント間に依存関係があるシステムを構築する場合、各ソフトウェアコンポーネントの配備の順序を、依存関係をもとに決定する必要がある。上述の特許文献１に記載された技術を、このようなシステムの構築時における、ソフトウェアコンポーネントの配備に適用することにより、利用者が複雑なワークフローを定義することなく、システムの構築を制御できる。【０００５】
なお、関連技術として、特許文献２には、コンポーネント群を配備候補サーバ群に配備する場合に、各コンポーネントの配備先サーバを決定する技術が開示されている。この技術では、コンポーネント群の実行条件を各配備候補サーバに送信し、各配備候補サーバが各コンポーネントの実行可否を判定する。また、特許文献３には、複数のタスクを組み合わせたジョブフローを複数のタスク処理装置で実行する場合に、候補タスク処理装置の中から、各タスクを実行するタスク処理装置を決定する技術が開示されている。また、非特許文献１には、ＩＴシステムを構築するためのソフトウェアが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０４８４１０号公報
【特許文献２】国際公開第２０１０／０９５５７９号
【特許文献３】特開２００９−０２６０１５号公報
【非特許文献】
【０００７】
【非特許文献１】"Puppet Enterprise: IT Automation Software for System Administrators"、Puppet Labs、［online］、［2013年4月8日検索］、インターネット〈URL：https://puppetlabs.com/puppet/〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
近年のＩＴシステムは、複雑化、大規模化が進み、システムを構成する複数のソフトウェアコンポーネントは、複数の処理装置に分散して配備される。しかしながら、特許文献１に記載の技術は、依存関係がある複数のソフトウェアコンポーネントが１つの処理装置に配備されるシステムに適用されるものであり、複数の処理装置に分散して配備されるシステムには適用できない。【０００９】
本発明の目的は、上述の課題を解決し、依存関係がある複数のソフトウェアコンポーネントが複数の処理装置に分散して配備されるシステムを構築できる、情報処理システム、配備方法、処理装置、及び、配備装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明の一態様における情報処理システムは、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、を有する、前記複数の処理装置と、前記複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、を有する前記配備装置と、を備える。【００１１】
本発明の一態様における配備方法は、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置の各々において、前記複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶し、配備装置において、前記複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶し、前記複数の処理装置の各々において、前記配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信し、前記配備装置において、前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信する。【００１２】
本発明の一態様における処理装置は、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信する配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、を備える。【００１３】
本発明の一態様における配備装置は、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、配備装置から受信した配備タスクの終了イベントをもとに、前記複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信する、前記複数の処理装置のいずれかから、配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、を備える。【００１４】
本発明の一態様におけるコンピュータが読み取り可能な第１の記録媒体は、コンピュータを、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、前記複数の処理装置のいずれかから配備タスクの終了イベントを受信した場合に、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信する配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、を含む処理装置として機能させるプログラムを格納する。【００１５】
本発明の一態様におけるコンピュータが読み取り可能な第２の記録媒体は、コンピュータを、システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、配備装置から受信した配備タスクの終了イベントをもとに、前記複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを前記配備装置に送信する、前記複数の処理装置のいずれかから、配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、を含む配備装置として機能させるプログラムを格納する。
【発明の効果】
【００１６】
本発明の効果は、依存関係のある複数のソフトウェアコンポーネントが複数の処理装置に分散して配備されるようなシステムを構築できることである。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、情報処理システムの構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、システム構成の例を示す図である。
【図４】本発明の第１の実施の形態における、配備タスクの配置例を示す図である。
【図５】本発明の第１の実施の形態における、タスク情報１２１の例を示す図である。
【図６】本発明の第１の実施の形態における、イベント情報１４１の例を示す図である。
【図７】本発明の第１の実施の形態における、タスク情報２３１の例を示す図である。
【図８】本発明の第１の実施の形態における、タスク情報２３１の他の例を示す図である。
【図９】本発明の第１の実施の形態における、タスク情報２３１の他の例を示す図である。
【図１０】本発明の第１の実施の形態における、イベント通知先登録処理を示すフローチャートである。
【図１１】本発明の第１の実施の形態における、配備処理を示すフローチャートである。
【図１２】本発明の第１の実施の形態における、配備タスクの実行例を示す図である。
【図１３】本発明の第２の実施の形態における、情報処理システムの構成を示すブロック図である。
【図１４】本発明の第２の実施の形態における、タスク情報１２１の例を示す図である
【図１５】本発明の第２の実施の形態における、タスク情報２３１の例を示す図である。
【図１６】本発明の第２の実施の形態における、タスク情報２３１の他の例を示す図である。
【図１７】本発明の第２の実施の形態における、タスク情報２３１の他の例を示す図である。
【図１８】本発明の第２の実施の形態における、配備タスクの実行例を示す図である。
【発明を実施するための形態】
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００１９】
はじめに、本発明の第１の実施の形態の構成について説明する。
【００２０】
図２は、本発明の第１の実施の形態における、情報処理システム（以下、配備システムとも言う）の構成を示すブロック図である。
【００２１】
図２を参照すると、配備システムは、配備装置１００、及び、複数の処理装置２００を含む。
【００２２】
配備装置１００は、ＩＴシステムを構成する、複数のソフトウェアコンポーネント（以下、単に、コンポーネントとする）の各々を、複数の処理装置２００のいずれかに配備することにより、システムを構築する。ここで、コンポーネントは、オペレーティングシステム（ＯＳ）、ミドルウェア（ＭＷ）、アプリケーション（ＡＰ）等のプログラムモジュールである。コンポーネントの配備とは、コンポーネントを処理装置２００にインストールし、設定を行うことである。
【００２３】
処理装置２００は、システムを構成する各コンポーネントの処理を実行するコンピュータである。処理装置２００は、各コンポーネントの配備タスクを用いて、各コンポーネントの配備を行う。処理装置２００は、コンピュータ上に構築される仮想マシン（Virtual Machine：ＶＭ）であってもよい。
【００２４】
図３は、本発明の第１の実施の形態における、システム構成の例を示す図である。図３の例では、システムは、コンポーネント「Ｃ１」〜「Ｃ６」から構成され、これらのコンポーネントが、処理装置２００「Ａ」「Ｂ」「Ｃ」に配備される。なお、「」内の符号は、識別子を示す。例えば、コンポーネント「Ｃ１」は、識別子Ｃ１のコンポーネント、処理装置２００「Ａ」は、識別子Ａの処理装置２００を示す。
【００２５】
また、図３において、矢印は依存関係に基づく配備順序を示す。ここで、矢印の先のコンポーネントは、矢印の元のコンポーネントに依存しており、矢印の元のコンポーネントは、矢印の先のコンポーネントより前に配備される必要がある。
【００２６】
図４は、本発明の第１の実施の形態における、配備タスクの配置例を示す図である。図４において、配備タスク「Ｔ１」〜「Ｔ６」はコンポーネント「Ｃ１」〜「Ｃ６」にそれぞれ対応し、コンポーネント「Ｃ１」〜「Ｃ６」が配備される処理装置２００において、対応する配備タスク「Ｔ１」〜「Ｔ６」がそれぞれ実行される。
【００２７】
配備装置１００は、配備制御部１１０、タスク情報記憶部１２０、イベント処理部１３０、及び、イベント情報記憶部１４０を含む。
【００２８】
配備制御部１１０は、処理装置２００へのシステム構築要求、及び、配備タスク情報の送信を行う。
【００２９】
タスク情報記憶部１２０は、タスク情報１２１を記憶する。図５は、本発明の第１の実施の形態における、タスク情報１２１の例を示す図である。図５のタスク情報１２１は、図３のシステム構成、及び、図４の配備タスクの配置に対応する。
【００３０】
タスク情報１２１は、配備タスクの識別子、当該配備タスクを実行すべき処理装置２００の識別子、当該配備タスクのタスク状態、処理内容、及び、実行条件を含む。ここで、処理装置２００の識別子には、処理装置２００のＦＱＤＮ（Fully Qualified Domain Name）を用いてもよい。タスク状態には、当該配備タスクの状態として、当該配備タスクが実行済みかどうか（「実行済み」／「未実行」）が設定される。処理内容には、コンポーネントのインストールや設定を行うためのスクリプト、プログラム等が設定される。実行条件は、当該配備タスクを実行する前に実行すべき他の配備タスク（依存タスク）の識別子を示す。実行条件には、複数の配備タスクの識別子が設定されていてもよい。
【００３１】
タスク情報１２１における、配備タスクの識別子、処理装置２００の識別子、処理内容、及び、実行条件は、管理者等により予め設定される。また、図示しないタスク情報取得部が、配備装置１００の外部の記憶部等からこれらの情報を取得し、タスク情報１２１に設定してもよい。
【００３２】
イベント処理部１３０は、イベント情報１４１をもとに、処理装置２００から受信した配備タスクの終了イベント（以下、単に、イベントとする）を、他の処理装置２００に転送する。
【００３３】
イベント情報記憶部１４０は、イベント情報１４１を記憶する。図６は、本発明の第１の実施の形態における、イベント情報１４１の例を示す図である。
【００３４】
イベント情報１４１は、配備タスクの識別子、及び、当該配備タスクのイベントの通知先を含む。ここで、通知先は、イベントを転送する処理装置２００の識別子を示す。通知先には、処理装置２００のＦＱＤＮを用いてもよい。
【００３５】
処理装置２００は、スケジューラ２１０、配備タスク実行部２２０、及び、タスク情報記憶部２３０を含む。
【００３６】
スケジューラ２１０は、処理装置２００で実行すべき配備タスクの実行順序を決定する。
【００３７】
配備タスク実行部２２０は、スケジューラ２１０からの指示に従って、各配備タスクを実行し、各コンポーネントの配備を行う。
【００３８】
タスク情報記憶部２３０は、タスク情報２３１を記憶する。図７〜９は、本発明の第１の実施の形態における、タスク情報２３１の例を示す図である。図７〜９のタスク情報２３１は、図５のタスク情報１２１に対応し、それぞれ、処理装置２００「Ａ」「Ｂ」「Ｃ」に設定されるタスク情報２３１の例である。
【００３９】
タスク情報２３１は、配備タスクの識別子、当該配備タスクのタスク状態、処理内容、及び、実行条件（依存タスク）、依存タスク状態を含む。依存タスク状態には、実行条件に含まれる依存タスクの各々について、当該依存タスクの状態として、当該依存タスクが実行済みかどうか（「実行済み」／「未実行」）が設定される。
【００４０】
なお、配備装置１００はＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、タスク情報記憶部１２０と、イベント情報記憶部１４０とは、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
【００４１】
次に、本発明の第１の実施の形態の動作について説明する。
【００４２】
ここでは、図３の構成のシステムを、図４の配備タスクを用いて構築する場合を例に説明する。また、タスク情報記憶部１２０には、図５のタスク情報１２１が記憶されていると仮定する。なお、タスク情報記憶部１２０におけるタスク状態には、初期状態として「未実行」が設定される。
【００４３】
はじめに、本発明の第１の実施の形態における、イベント通知先登録処理について説明する。
【００４４】
図１０は、本発明の第１の実施の形態における、イベント通知先登録処理を示すフローチャートである。
【００４５】
配備装置１００の配備制御部１１０は、タスク情報１２１を参照し、配備タスクを実行すべき各処理装置２００へ、システム構築要求を送信する（ステップＳ１０１）。
【００４６】
処理装置２００のスケジューラ２１０は、システム構築要求を受信すると（ステップＳ２０１）、配備制御部１１０に、配備タスク情報要求を送信し、当該処理装置２００が実行すべき配備タスク情報を要求する（ステップＳ２０２）。
【００４７】
配備装置１００の配備制御部１１０は、配備タスク情報要求を受信すると（ステップＳ１０２）、タスク情報１２１を参照し、配備タスク情報を処理装置２００に送信する（ステップＳ１０３）。ここで、配備制御部１１０は、配備タスク情報として、処理装置２００が実行すべき配備タスクの識別子、処理内容、及び、実行条件を送信する。
【００４８】
例えば、配備装置１００は、処理装置２００「Ａ」に、図５のタスク情報１２１から抽出した、配備タスク「Ｔ１」〜「Ｔ３」の配備タスク情報を送信する。同様に、配備装置１００は、処理装置２００「Ｂ」に、配備タスク「Ｔ４」〜「Ｔ６」の配備タスク情報を送信する。また、配備装置１００は、処理装置２００「Ｃ」に、配備タスク「Ｔ７」〜「Ｔ９」の配備タスク情報を送信する。
【００４９】
処理装置２００のスケジューラ２１０は、配備タスク情報を受信すると（ステップＳ２０３）、受信した配備タスク情報を、タスク情報２３１に設定する（ステップＳ２０４）。ここで、タスク情報２３１のタスク状態、及び、依存タスク状態には、初期状態として「未実行」が設定される。
【００５０】
例えば、処理装置２００「Ａ」「Ｂ」「Ｃ」は、それぞれ、図７〜９のように、タスク情報２３１を設定する。
【００５１】
スケジューラ２１０は、タスク情報２３１を参照し、各配備タスクの実行条件として示された配備タスク（依存タスク）の識別子を含むイベント購読要求を、配備装置１００へ送信する（ステップＳ２０５）。
【００５２】
例えば、処理装置２００「Ｂ」は、図８のタスク情報２３１をもとに、配備タスクの識別子「Ｔ１」「Ｔ２」を含むイベント購読要求を、配備装置１００へ送信する。また、処理装置２００「Ｃ」は、図９のタスク情報２３１をもとに、配備タスクの識別子「Ｔ５」「Ｔ６」を含むイベント購読要求を、配備装置１００へ送信する。
【００５３】
配備装置１００のイベント処理部１３０は、イベント購読要求を受信すると（ステップＳ１０４）、イベント情報１４１を設定する（ステップＳ１０５）。ここで、イベント処理部１３０は、イベント購読要求に含まれる配備タスクの識別子、及び、イベント購読要求の送信元の処理装置２００の識別子を、イベント情報１４１の配備タスクの識別子、及び、通知先にそれぞれ設定する。
【００５４】
例えば、配備装置１００は、図６のように、イベント情報１４１を設定する。
【００５５】
なお、ここでは、イベント処理部１３０が、イベント購読要求をもとにイベント情報１４１を設定しているが、イベント処理部１３０が、タスク情報１２１をもとに、イベント情報１４１を生成してもよい。
【００５６】
次に、本発明の第１の実施の形態における、配備処理について説明する。
【００５７】
図１１は、本発明の第１の実施の形態における、配備処理を示すフローチャートである。また、図１２は、本発明の第１の実施の形態における、配備タスクの実行例を示す図である。
【００５８】
スケジューラ２１０は、タスク情報２３１を参照し、タスク状態が「未実行」の配備タスクの内、実行条件を満たす配備タスクがあるかどうか判定する（ステップＳ４０１）。ここで、スケジューラ２１０は、実行条件に含まれる全ての依存タスクの依存タスク状態が「実行済み」の場合、実行条件を満たすと判定する。
【００５９】
実行条件を満たす配備タスクがない場合（ステップＳ４０１／Ｎ）、スケジューラ２１０は、ステップＳ４０１からの処理を繰り返す。
【００６０】
実行条件を満たす配備タスクがある場合（ステップＳ４０１／Ｙ）、スケジューラ２１０は、実行条件を満たす配備タスクを１つ選択する（ステップＳ４０２）。ここで、実行条件を満たす配備タスクが複数ある場合、スケジューラ２１０は、例えば、配備タスクの識別子の順番に、配備タスクを選択する。スケジューラ２１０は、選択した配備タスクの処理内容とともに、当該配備タスクの実行を配備タスク実行部２２０に指示する。
【００６１】
なお、実行条件を満たす配備タスクが複数ある場合、スケジューラ２１０は、処理装置２００の処理能力の範囲内で、複数の配備タスクを選択し、配備タスク実行部２２０に、当該複数の配備タスクを同時に実行させてもよい。
【００６２】
配備タスク実行部２２０は、抽出した配備タスクの処理内容に従って、当該配備タスクを実行する（ステップＳ４０３）。ここで、配備タスク実行部２２０は、処理内容に設定されたスクリプト、コマンド等を実行するために必要なファイルを、図示しない、処理装置２００外のレポジトリ等から取得してもよい。配備タスクが正常に終了した場合、配備タスク実行部２２０は、配備タスクの終了をスケジューラ２１０に通知する。
【００６３】
スケジューラ２１０は、タスク情報２３１における、終了した配備タスクのタスク状態を「実行済み」に更新する（ステップＳ４０４）。
【００６４】
例えば、図１２の時刻ｔ０で、処理装置２００「Ａ」のスケジューラ２１０は、図７のタスク情報２３１において、配備タスク「Ｔ１」「Ｔ２」「Ｔ３」の実行条件に依存タスクが指定されていないため、これらの配備タスクは実行条件を満たすと判定する。処理装置２００「Ａ」のスケジューラ２１０は、配備タスク「Ｔ１」の実行を指示する。処理装置２００「Ａ」の配備タスク実行部２２０は、配備タスク「Ｔ１」を実行し、コンポーネント「Ｃ１」をインストールする。
【００６５】
処理装置２００「Ｂ」のスケジューラ２１０は、図８のタスク情報２３１において、配備タスク「Ｔ６」の実行条件に依存タスクが指定されていないため、配備タスク「Ｔ６」は実行条件を満たすと判定する。処理装置２００「Ｂ」のスケジューラ２１０は、配備タスク「Ｔ６」の実行を指示する。処理装置２００「Ｂ」の配備タスク実行部２２０は、配備タスク「Ｔ６」を実行し、コンポーネント「Ｃ６」をインストールする。
【００６６】
処理装置２００「Ｃ」のスケジューラ２１０は、図９のタスク情報２３１において、配備タスク「Ｔ７」「Ｔ９」の実行条件に依存タスクが指定されていないため、これらの配備タスクは実行条件を満たすと判定する。処理装置２００「Ｃ」のスケジューラ２１０は、配備タスク「Ｔ７」の実行を指示する。処理装置２００「Ｃ」の配備タスク実行部２２０は、配備タスク「Ｔ７」を実行し、コンポーネント「Ｃ７」をインストールする。
【００６７】
なお、配備タスクが正常に終了しなかった場合、スケジューラ２１０は、所定の例外処理を実行してもよい。
【００６８】
スケジューラ２１０は、終了した配備タスクの識別子を含むイベントを配備装置１００に送信する（ステップＳ４０５）。
【００６９】
例えば、時刻ｔ１において、処理装置２００「Ａ」「Ｂ」「Ｃ」のスケジューラ２１０は、それぞれ、配備タスクの識別子「Ｔ１」「Ｔ６」「Ｔ７」を含むイベントを、配備装置１００に送信する。
【００７０】
配備装置１００のイベント処理部１３０は、処理装置２００からイベントを受信すると（ステップＳ３０１）、タスク情報１２１における、イベントで示される配備タスクのタスク状態を「実行済み」に更新する（ステップＳ３０２）。
【００７１】
例えば、イベント処理部１３０は、図５のように、タスク情報１２１における配備タスク「Ｔ１」「Ｔ６」「Ｔ７」のタスク状態を「実行済み」に更新する。
【００７２】
また、イベント処理部１３０は、イベント情報１４１を参照し、イベントに含まれる配備タスクの識別子に対応する通知先の処理装置２００に、当該イベントを送信（転送）する（ステップＳ３０３）。
【００７３】
例えば、イベント処理部１３０は、図６のイベント情報１４１をもとに、配備タスクの識別子「Ｔ１」を含むイベントを処理装置２００「Ｂ」へ送信する。また、イベント処理部１３０は、配備タスクの識別子「Ｔ６」を含むイベントを処理装置２００「Ｃ」へ送信する。
【００７４】
処理装置２００のスケジューラ２１０は、配備装置１００からイベントを受信すると（ステップＳ５０１）、タスク情報２３１における、イベントに含まれる配備タスクの識別子に対応する依存タスクのタスク状態を「実行済み」に更新する（ステップＳ５０２）。
【００７５】
例えば、処理装置２００「Ｂ」のスケジューラ２１０は、図８のように、タスク情報２３１における、依存タスク「Ｔ１」の依存タスク状態を「実行済み」に更新する。また、処理装置２００「Ｃ」のスケジューラ２１０は、図９のように、タスク情報２３１における、依存タスク「Ｔ６」の依存タスク状態を「実行済み」に更新する。
【００７６】
以後、イベント処理部１３０は、タスク情報１２１に含まれる全ての配備タスクのタスク状態が「実行済み」になるまで、ステップＳ３０１〜Ｓ３０３の処理を繰り返す（ステップＳ３０４）。
【００７７】
また、スケジューラ２１０は、タスク情報２３１に含まれる全ての配備タスクのタスク状態が「実行済み」になるまで、ステップＳ４０１〜Ｓ４０５の処理を繰り返す（ステップＳ４０６）。さらに、スケジューラ２１０は、イベントを受信する毎に、ステップＳ５０１、Ｓ５０２の処理を行う。
【００７８】
例えば、図１２の時刻ｔ１において、処理装置２００「Ａ」は、実行条件を満たす配備タスク「Ｔ２」を実行し、コンポーネント「Ｃ２」をインストールする。
【００７９】
処理装置２００「Ｂ」の配備タスク「Ｔ４」は、依存タスク「Ｔ１」の依存タスク状態が「実行済み」であり、実行条件を満たす。処理装置２００「Ｂ」は、配備タスク「Ｔ４」を実行し、コンポーネント「Ｃ４」をインストールする。
【００８０】
処理装置２００「Ｃ」は、実行条件を満たす配備タスク「Ｔ９」を実行し、コンポーネント「Ｃ９」をインストールする。
【００８１】
次に、図１２の時刻ｔ２において、処理装置２００「Ａ」「Ｂ」「Ｃ」のスケジューラ２１０は、それぞれ、配備タスクの識別子「Ｔ２」「Ｔ４」「Ｔ９」を含むイベントを、配備装置１００に送信する。配備装置１００のイベント処理部１３０は、配備タスクの識別子「Ｔ２」を含むイベントを処理装置２００「Ｂ」へ送信する。
【００８２】
次に、処理装置２００「Ａ」は、実行条件を満たす配備タスク「Ｔ３」を実行し、コンポーネント「Ｃ３」をインストールする。
【００８３】
処理装置２００「Ｂ」の配備タスク「Ｔ５」は、依存タスク「Ｔ５」の依存タスク状態が「実行済み」であり、実行条件を満たす。処理装置２００「Ｂ」は、配備タスク「Ｔ５」を実行し、コンポーネント「Ｃ５」をインストールする。
【００８４】
処理装置２００「Ｃ」の配備タスク「Ｔ８」は、依存タスク「Ｔ５」の依存タスク状態が「未実行」であり、実行条件を満たさない。処理装置２００「Ｃ」は、配備タスクを実行しない。
【００８５】
次に、図１２の時刻ｔ３において、処理装置２００「Ａ」「Ｂ」のスケジューラ２１０は、それぞれ、配備タスクの識別子「Ｔ３」「Ｔ５」を含むイベントを、配備装置１００に送信する。配備装置１００のイベント処理部１３０は、配備タスクの識別子「Ｔ５」を含むイベントを処理装置２００「Ｃ」へ送信する。
【００８６】
次に、処理装置２００「Ｃ」の配備タスク「Ｔ８」は、依存タスク「Ｔ５」「Ｔ６」の依存タスク状態が「実行済み」であり、実行条件を満たす。処理装置２００「Ｃ」は、配備タスク「Ｔ８」を実行し、コンポーネント「Ｃ８」をインストールする。
【００８７】
これにより、図３のように、システムを構成するコンポーネント「Ｃ１」〜「Ｃ６」が、処理装置２００「Ａ」「Ｂ」「Ｃ」に配備され、システムの構築が完了する。
【００８８】
以上により、本発明の第１の実施の形態の動作が完了する。
【００８９】
なお、本発明の第１の実施の形態では、図３、図４のように、各コンポーネントに対して１つの配備タスクを用いる場合を例に説明した。しかしながら、各コンポーネントに対して、コンポーネントのインストールを行う配備タスク、コンポーネントの設定を行う配備タスクのように、異なる配備タスクを用いてもよい。この場合、これらの配備タスクを含む複数の配備タスクの間で、依存関係（実行条件）が定義されてもよい。
【００９０】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００９１】
図１を参照すると、情報システムは、配備装置１００と複数の処理装置２００とを含む。
【００９２】
複数の処理装置２００の各々は、タスク情報記憶部２３０とスケジューラ２１０とを含む。
【００９３】
システムの複数のソフトウェアコンポーネントは、複数の処理装置２００に配備される。複数のソフトウェアコンポーネントを配備するための複数の配備タスクは、複数の処理装置２００において実行される。タスク情報記憶部２３０は、複数の配備タスクの内、自処理装置２００で実行すべき１以上の配備タスクの識別子の各々対応に、実行条件を示す、タスク情報２３１を記憶する。実行条件は、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む。
【００９４】
スケジューラ２１０は、配備装置１００から受信した配備タスクの終了イベントをもとに、タスク情報２３１に含まれる１以上の配備タスクに、実行条件を満たす配備タスクがあるかどうかを判定する。スケジューラ２１０は、実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクが終了した場合に、当該配備タスクの終了イベントを配備装置１００に送信する。
【００９５】
配備装置１００は、イベント情報記憶部１４０とイベント処理部１３０とを含む。
【００９６】
イベント情報記憶部１４０は、複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置２００の識別子を示すイベント情報１４１を記憶する。
【００９７】
イベント処理部１３０は、複数の処理装置２００のいずれかから配備タスクの終了イベントを受信した場合に、イベント情報１４１を参照し、当該配備タスクの終了イベントの通知先の処理装置２００に、当該終了イベントを送信する。
【００９８】
本発明の第１の実施の形態によれば、依存関係がある複数のソフトウェアコンポーネントが複数の処理装置に分散して配備されるシステムを構築できる。
【００９９】
その理由は、処理装置２００と配備装置１００が以下のような処理を行うためである。処理装置２００は、配備タスクの終了イベントをもとに、タスク情報２３１に実行条件を満たす配備タスクがあるかどうかを判定する。実行条件を満たす配備タスクがある場合、処理装置２００は、当該配備タスクを実行し、当該配備タスクの終了イベントを配備装置１００に送信する。配備装置１００は、イベント情報１４１を参照し、配備タスクの終了イベントを、通知先の処理装置２００に送信する。
【０１００】
これにより、依存関係がある複数のソフトウェアコンポーネントが複数の処理装置に分散して配備されるシステムを、管理者等がワークフローを定義することなく、構築できる。
【０１０１】
また、これにより、管理者等の作業が削減され、システムの構築に係るコストを低減できる。
【０１０２】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【０１０３】
本発明の第２の実施の形態においては、配備タスクに優先度を付与する点において、本発明の第１の実施の形態と異なる。
【０１０４】
はじめに、本発明の第２の実施の形態の構成について説明する。
【０１０５】
図１３は、本発明の第２の実施の形態における、情報処理システムの構成を示すブロック図である。配備装置１００は、本発明の第１の実施の形態の配備装置１００の構成に加えて、優先度設定部１５０を含む。
【０１０６】
優先度設定部１５０は、タスク情報１２１に設定された配備タスクに優先度を付与する。
【０１０７】
図１４は、本発明の第２の実施の形態における、タスク情報１２１の例を示す図である。タスク情報１２１は、本発明の第１の実施の形態のタスク情報１２１の内容に加えて、優先度を含む。ここでは、優先度の値が大きいほど、配備タスクの優先度が高いと仮定する。
【０１０８】
図１５〜１７は、本発明の第２の実施の形態における、タスク情報２３１の例を示す図である。タスク情報２３１も、本発明の第１の実施の形態のタスク情報２３１の内容に加えて、優先度を含む。
【０１０９】
次に、本発明の第２の実施の形態の動作について説明する。
【０１１０】
はじめに、本発明の第２の実施の形態における、イベント通知先登録処理について説明する。
【０１１１】
図１０におけるステップＳ１０１が実行される前に、優先度設定部１５０は、タスク情報１２１に含まれる各配備タスクに優先度を設定する。
【０１１２】
ここで、配備タスクの優先度には、例えば、配備タスク間の依存関係を辿ることによって得られる、当該配備タスクより後に実行すべき他の配備タスクの総数に１を加算した値を設定する。
【０１１３】
例えば、図１４のタスク情報１２１において、配備タスク「Ｔ１」に依存する配備タスク「Ｔ４」が存在するため、配備タスク「Ｔ１」の優先度は２である。また、配備タスク「Ｔ２」に依存する配備タスク「Ｔ５」が存在し、配備タスク「Ｔ５」に依存する配備タスク「Ｔ８」が存在するため、配備タスク「Ｔ８」の優先度は２である。さらに、配備タスク「Ｔ３」に依存する配備タスクは存在しないため、配備タスク「Ｔ３」の優先度は１である。優先度設定部１５０は、図１４のタスク情報１２１における各タスクの実行条件（依存タスク）をもとに、図１４のように優先度を設定する。
【０１１４】
なお、配備タスクの優先度は、配備タスクの処理内容等、他の情報をもとに設定されてもよい。
【０１１５】
また、図１０におけるステップＳ１０３において、配備制御部１１０は、配備タスク情報として、処理装置２００が実行すべき配備タスクの識別子、処理内容、実行条件に加えて、優先度を送信する。ステップＳ２０４において、スケジューラ２１０は、受信した配備タスク情報を、タスク情報２３１に設定する。
【０１１６】
例えば、処理装置２００「Ａ」「Ｂ」「Ｃ」は、それぞれ、図１５〜１７のように、タスク情報２３１を設定する。
【０１１７】
次に、本発明の第２の実施の形態における、配備処理について説明する。
【０１１８】
図１１におけるステップＳ４０２で、スケジューラ２１０は、タスク情報２３１を参照し、実行条件を満たす配備タスクが複数ある場合、優先度の高い順番に、配備タスクを選択し、当該配備タスクの実行を配備タスク実行部２２０に指示する。
【０１１９】
なお、スケジューラ２１０は、処理装置２００の処理能力の範囲内で、優先度の高い順番に、複数の配備タスクを選択し、配備タスク実行部２２０に、当該複数の配備タスクを同時に実行させてもよい。
【０１２０】
図１８は、本発明の第２の実施の形態における、配備タスクの実行例を示す図である。
【０１２１】
例えば、図１８の時刻ｔ０において、処理装置２００「Ａ」は、図１５のタスク情報２３１をもとに、実行条件を満たす配備タスク「Ｔ１」「Ｔ２」「Ｔ３」の内、優先度の高い配備タスク「Ｔ２」を実行し、コンポーネント「Ｃ２」をインストールする。
【０１２２】
処理装置２００「Ｂ」は、図１６のタスク情報２３１をもとに、実行条件を満たす配備タスク「Ｔ６」を実行し、コンポーネント「Ｃ６」をインストールする。
【０１２３】
処理装置２００「Ｃ」は、図１７のタスク情報２３１をもとに、実行条件を満たす配備タスク「Ｔ７」「Ｔ９」の内、配備タスク「Ｔ７」を実行し、コンポーネント「Ｃ７」をインストールする。
【０１２４】
次に、図１８の時刻ｔ１において、処理装置２００「Ａ」は、実行条件を満たす配備タスク「Ｔ１」「Ｔ３」の内、優先度の高い配備タスク「Ｔ１」を実行し、コンポーネント「Ｃ１」をインストールする。
【０１２５】
処理装置２００「Ｂ」は、実行条件を満たす配備タスク「Ｔ５」を実行し、コンポーネント「Ｃ５」をインストールする。
【０１２６】
処理装置２００「Ｃ」は、実行条件を満たす配備タスク「Ｔ９」を実行し、コンポーネント「Ｃ９」をインストールする。
【０１２７】
次に、図１８の時刻ｔ２において、処理装置２００「Ａ」は、実行条件を満たす配備タスク「Ｔ３」を実行し、コンポーネント「Ｃ３」をインストールする。
【０１２８】
処理装置２００「Ｂ」は、実行条件を満たす配備タスク「Ｔ４」を実行し、コンポーネント「Ｃ４」をインストールする。
【０１２９】
処理装置２００「Ｃ」は、実行条件を満たす配備タスク「Ｔ８」を実行し、コンポーネント「Ｃ８」をインストールする。
【０１３０】
以上により、本発明の第２の実施の形態の動作が完了する。
【０１３１】
本発明の第２の実施の形態によれば、本発明の第１の実施の形態に比べて、システムの構築に要する時間を短縮できる。その理由は、スケジューラ２１０が、実行条件を満たす配備タスクの内、優先度の高い配備タスクから実行を指示するためである。
【０１３２】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
【０１３３】
本発明の第３の実施の形態においては、配備タスクの実行時に、当該配備タスクの依存タスクの実行により生成される付加的な情報を利用する点において、本発明の第１の実施の形態と異なる。
【０１３４】
本発明の第３の実施の形態における情報処理システムの構成は、本発明の第１の実施の形態（図２）と同様となる。
【０１３５】
次に、本発明の第３の実施の形態の動作について説明する。
【０１３６】
本発明の第３の実施の形態における、イベント通知先登録処理は、本発明の第１の実施の形態（図１０）と同様となる。
【０１３７】
次に、本発明の第３の実施の形態における、配備処理について説明する。
【０１３８】
図１１のステップＳ４０２において、スケジューラ２１０は、選択した配備タスクの処理内容を、当該配備タスクの依存タスクにより生成された付加情報を用いて編集する。依存タスクの付加情報は、例えば、依存タスクの実行時に処理装置２００において決定された情報や収集された情報である。付加情報は、後述するように、依存タスクが実行された処理装置２００から、依存タスクに依存する配備タスクを実行する処理装置２００へ、イベントに含めて通知される。
【０１３９】
付加情報と編集処理は、依存タスクの実行により生成された情報と当該情報を用いた配備（インストール、及び、設定）に係る処理であれば、どのようなものでもよい。例えば、コンポーネントに係るファイルに、依存タスクが実行された（依存するコンポーネントが配備された）処理装置２００のＩＰ（Internet Protocol）アドレスを設定する必要があると仮定する。この場合、スケジューラ２１０は、付加情報として、当該ＩＰアドレスを用い、編集処理として、コンポーネントに係るファイルの一部を当該ＩＰアドレスで置換する。
【０１４０】
スケジューラ２１０は、編集した処理内容とともに、配備タスクの実行を配備タスク実行部２２０に指示する。
【０１４１】
ステップＳ４０３において、配備タスク実行部２２０が配備タスクを実行すると、当該配備タスクの付加情報が生成される。付加情報は、例えば、配備タスクの処理内容で指定されたスクリプトやプログラム等に含まれるロジックに従って生成され、スクリプトやプログラムのリターン値や、ログファイルとして出力される。
【０１４２】
ステップＳ４０５において、スケジューラ２１０は、ステップＳ４０３で生成された付加情報を含むイベントを配備装置１００に送信する。
【０１４３】
ステップＳ３０３において、イベント処理部１３０は、イベントに含まれる配備タスクの識別子に対応する通知先の処理装置２００に、ステップＳ４０３で生成された付加情報を含むイベントを送信（転送）する。
【０１４４】
ステップＳ５０１において、スケジューラ２１０は、配備装置１００から依存タスクの付加情報を含むイベントを受信する。依存タスクの付加情報は、上述のステップＳ４０２において用いられる。
【０１４５】
以上により、本発明の第３の実施の形態の動作が完了する。
【０１４６】
本発明の第３の実施の形態によれば、本発明の第１の実施の形態に比べて、より複雑なシステムの構築ができる。その理由は、処理装置２００が以下のような処理を行うためである。処理装置２００は、配備タスクの終了イベントに、配備タスクの実行により生成された付加情報を含めて送信し、受信した配備タスクの終了イベントに含まれる付加情報を用いて、当該配備タスクを実行条件に含む配備タスクを編集する。これにより、配備タスクの実行時にはじめて決定される情報を、当該配備タスクに依存する他の配備タスクのインストールや設定に用いることができる。
【０１４７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４８】
この出願は、２０１３年４月１７日に出願された日本出願特願２０１３−０８６６７９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４９】
１００    配備装置
１１０    配備制御部
１２０    タスク情報記憶部
１２１    タスク情報
１３０    イベント処理部
１４０    イベント情報記憶部
１４１    イベント情報
１５０    優先度設定部
２００    処理装置
２１０    スケジューラ
２２０    配備タスク実行部
２３０    タスク情報記憶部
２３１    タスク情報 
【図１】
2014171130.tif 000003
【図２】
2014171130.tif 000004
【図３】
2014171130.tif 000005
【図４】
2014171130.tif 000006
【図５】
2014171130.tif 000007
【図６】
2014171130.tif 000008
【図７】
2014171130.tif 000009
【図８】
2014171130.tif 000010
【図９】
2014171130.tif 000011
【図１０】
2014171130.tif 000012
【図１１】
2014171130.tif 000013
【図１２】
2014171130.tif 000014
【図１３】
2014171130.tif 000015
【図１４】
2014171130.tif 000016
【図１５】
2014171130.tif 000017
【図１６】
2014171130.tif 000018
【図１７】
2014171130.tif 000019
【図１８】
2014171130.tif 000020
【手続補正書】
【提出日】平成27年9月17日(2015.9.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
コンピュータを、
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの内、自処理装置で実行すべき１以上の配備タスクの識別子の各々対応に、当該配備タスクを実行する前に実行すべき他の配備タスクの識別子を含む実行条件を示すタスク情報を記憶する、タスク情報記憶手段と、
複数の処理装置のいずれかから受信した配備タスクの終了イベントを他の処理装置に送信する配備装置から受信した配備タスクの終了イベントをもとに、前記タスク情報に含まれる１以上の配備タスクに、前記実行条件を満たす配備タスクがあるかどうかを判定し、前記実行条件を満たす配備タスクがある場合に、当該配備タスクを実行し、当該配備タスクの終了時に、当該配備タスクの終了イベントを前記配備装置に送信するスケジューラ手段と、
を含む処理装置として機能させるプログラム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータを、
システムの複数のソフトウェアコンポーネントが配備される複数の処理装置において実行される、前記複数のソフトウェアコンポーネントを配備するための複数の配備タスクの識別子の各々対応に、当該配備タスクの終了イベントの通知先の処理装置の識別子を示すイベント情報を記憶するイベント情報記憶手段と、
配備装置から受信した配備タスクの終了イベントをもとに前に実行すべき配備タスクを示した実行条件を満たす配備タスクを実行する前記複数の処理装置のいずれかから、配備タスクの終了イベントを受信した場合に、前記イベント情報を参照し、当該配備タスクの終了イベントの通知先の処理装置に、当該終了イベントを送信するイベント処理手段と、
を含む配備装置として機能させるプログラム。
【国際調査報告】
2014171130.tif 000021
2014171130.tif 000022
2014171130.tif 000023
2014171130.tif 000024