(57)【要約】      （修正有）【課題】プロセッサのアーキテクチャに応じたソフトウェアのアップデートを容易にする情報処理装置及び情報処理システムを提供する。【解決手段】アップデートシステム１００において、複数のコンピュータ２−２〜２−８とバスを介して接続された情報処理装置２−１であって、入力部と、取得部と、転送部と、実行部とを備える。入力部は、コンピュータ２−２〜２−８の構成を示す構成情報ごとに、コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。取得部は、アップデートさせるコンピュータ２−２〜２−８の構成情報を取得する。転送部は、取得部が取得した構成情報により特定されるアップデータを、バス３，４を介してコンピュータ２−２〜２−８に転送する。実行部は、転送部に転送させることによってコンピュータ２−２〜２−８のアップデートを実行する。【選択図】図１
2020140476.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータとバスを介して接続された情報処理装置であって、
前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける入力部と、
アップデートさせる前記コンピュータの前記構成情報を取得する取得部と、
前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する転送部と、
前記転送部に転送させることによって当該コンピュータのアップデートを実行する実行部と、
を備える情報処理装置。
【請求項２】
第１バス及び第２バスを含む複数の前記バスを介して前記コンピュータと接続された前記情報処理装置であって、
前記実行部は、前記第１バスを介して前記アップデータを転送することができない場合に、前記第２バスを介して前記アップデータを転送させることでアップデートを実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記実行部は、前記バスを介して、アップデートの適用対象の前記コンピュータに前記アップデータを転送させることができない場合に、アップデートの適用対象ではない前記コンピュータを介して、アップデートの適用対象の前記コンピュータに前記アップデータを転送させる、
請求項１に記載の情報処理装置。
【請求項４】
前記実行部は、前記コンピュータのアップデートが失敗した場合に、アップデートの適用対象の前記コンピュータをアップデート前に戻す、
請求項１から請求項３の何れか一項に記載の情報処理装置。
【請求項５】
前記実行部は、アップデートを適用する複数の前記コンピュータのうち、一部の前記コンピュータでアップデートに失敗した場合に、アップデートに失敗した前記コンピュータと他の前記コンピュータとの依存関係に基づいて、前記コンピュータをアップデート前に戻す、
請求項４に記載の情報処理装置。
【請求項６】
バスを介して情報処理装置と複数のコンピュータとが接続された情報処理システムであって、
前記情報処理装置は、
前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける入力部と、
アップデートさせる前記コンピュータの前記構成情報を取得する取得部と、
前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する転送部と、
前記転送部に転送させることによって当該コンピュータのアップデートを実行する実行部と、を備え、
前記コンピュータは、
前記バスを介して前記アップデータを受信する受信部を備える、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理システムに関する。
【背景技術】
【０００２】
従来、複数のプロセッサを有する分散型コンピュータが知られている。分散型コンピュータでは、各プロセッサに処理を分散させることで処理の高速化を図っている。分散型コンピュータは、アーキテクチャの異なるプロセッサを備えている場合がある。
【０００３】
このような分散型コンピュータでソフトウェアのアップデートを実施する場合には、アーキテクチャ毎に、アップデートに使用するアップデータを準備して、其々の各プロセッサに対してアップデートを実行する必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５８１８号公報
【特許文献２】特開２００９−０５３７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、プロセッサアーキテクチャ毎に運用管理を実施するためには、煩雑な作業を行わなければならなかった。
【０００６】
本発明は、上記に鑑みてなされたものであって、プロセッサのアーキテクチャに応じたソフトウェアのアップデートを容易にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理装置は、複数のコンピュータとバスを介して接続された情報処理装置であって、入力部と、取得部と、転送部と、実行部とを備える。前記入力部は、前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。前記取得部は、アップデートさせる前記コンピュータの前記構成情報を取得する。前記転送部は、前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する。前記実行部は、前記転送部に転送させることによって当該コンピュータのアップデートを実行する。
【０００８】
本発明の第２態様に係る情報処理システムは、バスを介して情報処理装置と複数のコンピュータとが接続された情報処理システムである。前記情報処理装置は、入力部と、取得部と、転送部と、実行部とを備える。前記入力部は、前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。前記取得部は、アップデートさせる前記コンピュータの前記構成情報を取得する。前記転送部は、前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する。前記実行部は、前記転送部に転送させることによって当該コンピュータのアップデートを実行する。前記コンピュータは、前記バスを介して前記アップデータを受信する受信部を備える。
【発明の効果】
【０００９】
本発明にかかる情報処理装置及び情報処理システムは、プロセッサのアーキテクチャに応じたソフトウェアのアップデートを容易にすることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例にかかるアップデートシステムの実施例の構成の一例を示すブロック図である。
【図２】図２は、実施例にかかる分散型コンピュータの全体構成の一例を示す図である。
【図３】図３は、実施例にかかるノードのハードウェア構成の一例を示すブロック図である。
【図４】図４は、実施例にかかる構成一覧情報のデータ構成の一例を示す図である。
【図５】図５は、実施例にかかるノードの機能構成の一例を示すブロック図である。
【図６】図６は、実施例にかかる管理ノードが実行する決定処理の一例を示すフローチャートである。
【図７】図７は、実施例にかかる管理ノードが実行する転送処理の一例を示すフローチャートである。
【図８】図８は、実施例にかかる被管理ノードが実行するアップデート処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる情報処理装置及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、実施例にかかるアップデートシステム１００の実施例の構成の一例を示すブロック図である。図１に示すアップデートシステム１００は、例えば、分散型コンピュータ１の被管理ノード２−２〜２−８のソフトウェアを、被管理ノード２−２〜２−８のアーキテクチャに応じてアップデートするシステムである。
【００１３】
分散型コンピュータ１は、バスを介して管理ノード２−１と複数の被管理ノード２−２〜２−８とが接続された情報処理システムである。管理ノード２−１は、複数の被管理ノード２−２〜２−８とバスを介して接続された情報処理装置である。さらに、管理ノード２−１は、複数のバスを介して被管理ノード２−２〜２−８と接続されている。管理ノード２−１は、利用者端末２００等から各種処理の実行要求を受け付けた場合に被管理ノード２−２〜２−８に各種処理の実行を要求する。被管理ノード２−２〜２−８は、管理ノード２−１から実行要求に応じて、各種処理を実行するコンピュータである。
【００１４】
管理ノード２−１と、複数の被管理ノード２−２〜２−８とは、例えばＰＣＩｅ（Peripheral  Component  Interconnect  Express；登録商標）等を用いた仮想ＬＡＮ（Local  Area  Network）により形成された第１バス３を介して通信可能に接続されている。さらに、管理ノード２−１と、複数の被管理ノード２−２〜２−８とは、例えばＲＳ−２３２Ｃ（Recommended  Standard  -  232  C）インタフェース等を有するコンソール接続により形成された第２バス４を介して通信可能に接続されている。本実施例では、分散型コンピュータ１が被管理ノード２−２〜２−８を７個備えている場合を例に説明するが、被管理ノード２−２〜２−８は、２個以上であればよく、７個に限定しない。また、第１バス３は、ＰＣＩｅを用いた仮想ＬＡＮに限らず、ＵＳＢ（Universal  Serial  Bus）等の他の通信により形成されていてもよい。
【００１５】
アップデートシステム１００は、分散型コンピュータ１と、利用者端末２００と、アップデータ提供サーバ３００とを備えている。
【００１６】
利用者端末２００は、分散型コンピュータ１を利用する利用者の操作を受け付ける端末である。例えば、利用者端末２００は、パーソナルコンピュータ等により実現される。
【００１７】
アップデータ提供サーバ３００は、分散型コンピュータ１のアップデートに使用するパッケージソフトウェアを提供するサーバ装置である。例えば、アップデータ提供サーバ３００は、パーソナルコンピュータ等により実現される。
【００１８】
ここで、パッケージソフトウェアには、被管理ノード２−２〜２−８の構成を示す構成情報ごとに、被管理ノード２−２〜２−８をアップデートさせるデータであるアップデータを有している。また、パッケージソフトウェアには、アップデートを実行するアップデートプログラムが含まれていてもよい。
【００１９】
このようなアップデートシステム１００の分散型コンピュータ１において、管理ノード２−１は、被管理ノード２−２〜２−８をアップデートする場合に、アップデータ提供サーバ３００からパッケージソフトウェアを受信する。管理ノード２−１は、アップデートの適用対象の被管理ノード２−２〜２−８のアーキテクチャに応じて、パッケージソフトウェアからアップデータを特定する。そして、管理ノード２−１は、対象の被管理ノード２−２〜２−８にアップデータを送信して、アップデートを実行する。さらに、管理ノード２−１は、被管理ノード２−２〜２−８と通信を行うことができない場合には、通信経路を変更してアップデートを実行する。
【００２０】
図２は、実施例にかかる分散型コンピュータ１の全体構成の一例を示す図である。図２に示すように、実施例にかかる分散型コンピュータ１は、管理ノード２−１と、複数の被管理ノード２−２〜２−８と、ＰＣＩｅブリッジコントローラ３０と、コンソールコントローラ４０とを備えている。
【００２１】
管理ノード２−１と、複数の被管理ノード２−２〜２−８とは、ＰＣＩｅブリッジコントローラ３０を介して、通信可能に接続されている。管理ノード２−１及び複数の被管理ノード２−２〜２−８は、例えば、ＰＣＩｅブリッジコントローラ３０が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。また、管理ノード２−１と、複数の被管理ノード２−２〜２−８とは、コンソールコントローラ４０を介して通信可能に接続されている。以下の説明では、管理ノード２−１と、複数の被管理ノード２−２〜２−８とを区別する必要がなく、任意のノードを示す場合には、ノード２と記載する。
【００２２】
管理ノード２−１は、被管理ノード２−２〜２−８を管理して、被管理ノード２−２〜２−８に各種処理を実行させる。また、管理ノード２−１は、被管理ノード２−２〜２−８のソフトウェアのアップデートを管理する。
【００２３】
被管理ノード２−２〜２−８は、管理ノード２−１の要求に基づいて、例えばＡＩ（Artificial  Intelligence）推論処理や画像処理等を実行する。また、被管理ノード２−２〜２−８は、管理ノード２−１の要求に応じて、ソフトウェアのアップデートを実行する。
【００２４】
また、ノード２は、プロセッサ２１−１〜２１−８を備える。また、プロセッサ２１−１〜２１−８は、それぞれアーキテクチャが異なっている。なお、プロセッサ２１−１〜２１−８は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ２１−１〜２１−８を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ２１と記載する。
【００２５】
また、プロセッサ２１がホスト側として動作可能なＲＣ（Root  Complex）となり、ＰＣＩｅブリッジコントローラ３０に搭載されているデバイスがＥＰ（End  Point）となり、ホストとデバイスとの間でのデータ転送が行なわれる。
【００２６】
また、ＰＣＩｅブリッジコントローラ３０は、内部に設けられた第１バス３を制御して、ＥＰ間のデータ転送を実行する。すなわち、ＰＣＩｅブリッジコントローラ３０は、ノード２間の通信を実行する。
【００２７】
また、ノード２は、コンソールコントローラ４０に接続されている。コンソールコントローラ４０は、第２バス４を制御して、ノード２間のデータ転送を実行する。
【００２８】
図３は、実施例にかかるノード２のハードウェア構成の一例を示すブロック図である。
【００２９】
ノード２は、各種演算処理を実行するプロセッサ２１と、各種情報を一時記憶するメモリ２２と、各種情報を記憶するストレージ２３と、第１インタフェース２４と、第２インタフェース２５と、ＵＳＢポート２６とを備える。そして、各部は、バス２７に接続される。
【００３０】
プロセッサ２１は、ノード２全体を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００３１】
メモリ２２はＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ２２のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２２上のソフトウェアプログラムは、プロセッサ２１に適宜読み込まれて実行される。また、メモリ２２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３２】
ストレージ２３は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。ストレージ２３には各種ソフトウェアプログラムが記憶される。また、ストレージ２３は、構成一覧情報などの各種データを記憶する。
【００３３】
ノード２においては、プロセッサ２１がメモリ２２やストレージ２３に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００３４】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ２２やストレージ２３に記憶されている必要はない。例えば、ノード２が読み取り可能な記憶媒体に記憶されたプログラムを、ノード２が読み出して実行するようにしてもよい。ノード２が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの情報処理プログラムを記憶させておき、ノード２がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【００３５】
第１インタフェース２４は、第１バス３と接続するインタフェースである。
【００３６】
第２インタフェース２５は、第２バス４と接続するインタフェースである。
【００３７】
ＵＳＢポート２６は、ＵＳＢインタフェースである。
【００３８】
ここで、図４は、実施例にかかる構成一覧情報のデータ構成の一例を示す図である。構成一覧情報は、被管理ノード２−２〜２−８のそれぞれの構成を示す構成情報を有している。構成情報には、ＯＳ（Operating  System）情報と、ハードウェア情報と、プロセッサ情報とが含まれる。
【００３９】
ＯＳ情報は、被管理ノード２−２〜２−８のＯＳに関する情報である。ＯＳ情報には、例えばノードＩＤ、ホスト名、ＯＳ名、ＯＳバージョン、適用パッケージ名、ＩＰ（Internet  Protocol）アドレス、仮想ＬＡＮドライバ稼働状態、公開鍵、秘密鍵、及び適用パッケージバージョンが含まれる。なお、ＯＳ情報は、これら全ての情報を有していなくてもよい。また、ＯＳ情報は、これら以外の情報を有していてもよい。
【００４０】
ハードウェア情報は、被管理ノード２−２〜２−８のハードウェアに関する情報である。ハードウェア情報には、例えばＵＳＢポート稼働状態、スロット挿抜状況、スロットＩＤ、ＭＡＣ（Media  Access  Control）アドレス、及びスロット電源投入状態が含まれる。なお、ハードウェア情報は、これら全ての情報を有していなくてもよい。また、ハードウェア情報は、これら以外の情報を有していてもよい。
【００４１】
プロセッサ情報は、被管理ノード２−２〜２−８のプロセッサ２１に関する情報である。プロセッサ情報には、プロセッサアーキテクチャ名、及びプロセッサ名が含まれる。なお、プロセッサ情報は、これら全ての情報を有していなくてもよい。また、プロセッサ情報は、これら以外の情報を有していてもよい。
【００４２】
ここで、図５は、実施例にかかるノード２の機能構成の一例を示すブロック図である。図５は、管理ノード２−１及び被管理ノード２−２〜２−８ごとの構成を示している。ハードウェアについて、管理ノード２−１及び被管理ノード２−２〜２−８は、それぞれ異なるハードウェアを備えている。また、プロセッサ２１について、管理ノード２−１及び被管理ノード２−２〜２−８は、それぞれ異なるメーカから提供されたプロセッサ２１を備えている。すなわち、管理ノード２−１及び被管理ノード２−２〜２−８は、それぞれ異なるアーキテクチャのプロセッサ２１を備えている。なお、一部のノード２において共通のアーキテクチャのプロセッサ２１を備えていてもよい。例えば、被管理ノードＡ２−２及び被管理ノードＢ２−３は、共通のアーキテクチャのプロセッサ２１を備えていてもよい。
【００４３】
また、ＯＳについて、管理ノード２−１及び被管理ノード２−２〜２−８は、それぞれＯＳがインストールされている。例えば、管理ノード２−１には、Ｗｉｎｄｏｗｓ（登録商標）がインストールされている。また、被管理ノードＡ２−２には、Ｌｉｎｕｘ（登録商標）がインストールされている。また、被管理ノードＧ２−８には、ＢＳＤ（Berkeley  Software  Distribution）がインストールされている。なお、図５に示されているＯＳは一例であって任意のＯＳに変更してもよい。
【００４４】
また、ソフトウェアについて、管理ノード２−１には、ユーザアプリケーション、ミドルウェア、ＤＢ（Data  Base）、及びデバイスドライバがインストールされている。また、被管理ノード２−２〜２−８には、ユーザアプリケーション、ミドルウェア、及びデバイスドライバがインストールされている。
【００４５】
また、ソフトウェア管理機能について、管理ノード２−１は、ソフトウェア管理機能、ノード構成管理機能、及びノード検知機能を備えている。
【００４６】
ソフトウェア管理機能部は、入力部２１１、通信部２１２、転送部２１３、及び実行部２１４を備えている。
【００４７】
入力部２１１は、入力部の一例である。入力部２１１は、被管理ノード２−２〜２−８の構成を示す構成情報ごとに、被管理ノード２−２〜２−８をアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。更に詳しくは、入力部２１１は、アップデータ提供サーバ３００からパッケージソフトウェアを受信する。なお、入力部２１１は、アップデータ提供サーバ３００以外の装置からパッケージソフトウェアを受信してもよい。また、入力部２１１は、記憶媒体から読み取ることで、パッケージソフトウェアの入力を受け付けてもよい。
【００４８】
通信部２１２は、通信経路、及び被管理ノード２−２〜２−８を検出する。そして、通信部２１２は、検出した被管理ノード２−２〜２−８との通信を制御する。更に詳しくは、通信部２１２は、第１通信経路を検出する。第１通信経路は、第１バス３を介して被管理ノード２−２〜２−８と通信する通信経路である。
【００４９】
また、通信部２１２は、第１通信経路を検出することができない場合に、第２通信経路を検出する。第２通信経路は、第１バス３を用いて他の被管理ノード２−２〜２−８を介して被管理ノード２−２〜２−８と通信する通信経路である。
【００５０】
また、通信部２１２は、第２通信経路を検出することができない場合に、第３通信経路を検出する。第３通信経路は、第２バス４を介して被管理ノード２−２〜２−８と通信する通信経路である。
【００５１】
転送部２１３は、転送部の一例である。転送部２１３は、第１バス３又は第２バス４を介してアップデータ及びアップデートプログラムを被管理ノード２−２〜２−８に転送する。更に詳しくは、転送部２１３は、被管理ノード２−２〜２−８を認証した上で、アップデータ及びアップデートプログラムを暗号化して送信する。転送部２１３は、例えばＳＳＬ（Secure  Sockets  Layer）証明書方式や、ＩＤ及びパスワードを用いた認証方式により被管理ノード２−２〜２−８を認証する。また、転送部２１３は、例えばＳＦＴＰ（SSH  File  Transfer  Protocol）やＳＣＰ（Secure  Copy  Protocol）等のプロトコルを用いて暗号化して送信する。
【００５２】
実行部２１４は、実行部の一例である。実行部２１４は、検出部２２１が取得した構成情報により特定されるアップデータを、第１バス３又は第２バス４を介して転送部２１３に被管理ノード２−２〜２−８へ転送させることで、被管理ノード２−２〜２−８のアップデートを実行する。更に詳しくは、実行部２１４は、アップデータ及びアップデートプログラムを、通信部２１２が決定した通信経路の第１バス３又は第２バス４を介して、転送部２１３に転送させる。
【００５３】
例えば、実行部２１４は、通信部２１２が第１通信経を介してアップデータ等を転送することができないとして第２通信経路の使用を決定した場合に、第２通信経路を使用して転送部２１３に転送させる。すなわち、実行部２１４は、第１バス３を介してアップデートの適用対象の被管理ノード２−２〜２−８にアップデータを転送することができない場合に、適用対象ではない被管理ノード２−２〜２−８を介して、適用対象の被管理ノード２−２〜２−８にアップデータを転送する。
【００５４】
例えば、実行部２１４は、通信部２１２が第１通信経路及び第２通信経路を介してアップデータ等を転送することができないとして第３通信経路の使用を決定した場合に、第２バス４から介して、転送部２１３に転送させる。すなわち、実行部２１４は、第１バス３を介してアップデータを転送することができない場合に、第２バス４を介してアップデータを転送させることでアップデートを実行する。
【００５５】
ここで、アップデートプログラムには、前処理プログラムと、インストールプログラムと、後処理プログラムと、ロールバックプログラムとが含まれている。前処理プログラムは、アップデートの事前に実行させるプログラムである。例えば、前処理プログラムは、被管理ノード２−２〜２−８の状態を取得するスナップショットや、被管理ノード２−２〜２−８が記憶しているデータを退避させる処理を実行するプログラムである。インストールプログラムは、アップデータにより被管理ノード２−２〜２−８をアップデートするプログラムである。後処理プログラムは、アップデートの事後に実行させるプログラムである。例えば、後処理プログラムは、不要なデータの削除や、アップデートが正常に実行されてか否かを検証する検証処理を実行するプログラムである。検証処理では、他の被管理ノード２−２〜２−８とデータ通信を行うことでアップデートが正常に実行されてか否かを検証する。なお、検証処理は、これに限らず、他の方法によりアップデートが正常に実行されてか否かを検証してもよい。ロールバックプログラムは、後処理プログラムでアップデートに失敗したと判定された場合に、アップデート前の状態に戻すロールバックを実行するプログラムである。
【００５６】
また、実行部２１４は、被管理ノード２−２〜２−８をアップデートした場合に、アップデートの適用対象の全ての被管理ノード２−２〜２−８で成功に失敗したか否かを判定する。ここで、分散型コンピュータ１は、複数の被管理ノード２−２〜２−８を備えている。そして、分散型コンピュータ１は、複数の被管理ノード２−２〜２−８を協働させることで一つの機能として動作させる場合がある。このような場合、被管理ノード２−２〜２−８は、他の被管理ノード２−２〜２−８と協働で一つの実行結果を出力する依存関係を有している。
【００５７】
依存関係を有している場合、アップデートの適用対象の被管理ノード２−２〜２−８のうち、一部の被管理ノード２−２〜２−８でアップデートに失敗すると、アップデートに成功したか否かで被管理ノード２−２〜２−８の有している機能等で差異が生じてしまう。そのため、被管理ノード２−２〜２−８は、他の被管理ノード２−２〜２−８と協働して処理を実行することができなくなってしまう。
【００５８】
そこで、実行部２１４は、被管理ノード２−２〜２−８のアップデートが失敗した場合に、アップデートの適用対象の被管理ノード２−２〜２−８をアップデート前に戻す。更に詳しくは、実行部２１４は、アップデートの適用対象の被管理ノード２−２〜２−８のうち、アップデートに失敗した被管理ノード２−２〜２−８がある場合に、アップデートに成功した被管理ノード２−２〜２−８に対しても、ロールバックによりアップデート前の状態に戻す。
【００５９】
一方、依存関係が無い場合、被管理ノード２−２〜２−８の有している機能等で差異が生じても障害は発生しない。そこで、実行部２１４は、アップデートを適用する複数の被管理ノード２−２〜２−８のうち、一部の被管理ノード２−２〜２−８でアップデートに失敗した場合に、アップデートに失敗した被管理ノード２−２〜２−８と他の被管理ノード２−２〜２−８との依存関係に基づいて、アップデート前に戻すか否かを判定してもよい。そして、実行部２１４は、判定結果に応じて、アップデート前に戻すロールバックを実行する。
【００６０】
ノード検出機能部は、検出部２２１を備えている。
【００６１】
検出部２２１は、取得部の一例である。被管理ノード２−２〜２−８の構成を示す構成情報を取得する。更に詳しくは、検出部２２１は、通信経路から被管理ノード２−２〜２−８を検出する。検出部２２１は、決定された通信経路を使って、被管理ノード２−２〜２−８が活性化しているか、電源が投入されているか等を確認する。例えば、検出部２２１は、被管理ノード２−２〜２−８の稼働状況を判別するため、ＭＡＣアドレスの一覧から全ての被管理ノード２−２〜２−８に対して疎通確認を行い、被管理ノード２−２〜２−８が存在するかを確認する。
【００６２】
そして、検出部２２１は、検出した被管理ノード２−２〜２−８からＯＳ情報、ハードウェア情報、又はプロセッサ情報を取得する。すなわち、検出部２２１は、アップデート対象の被管理ノード２−２〜２−８の構成情報を取得する。そして、検出部２２１は、ＯＳ情報、ハードウェア情報、又はプロセッサ情報を取得した場合に、構成情報管理部２３１に引き渡す。
【００６３】
ノード構成管理機能部は、構成情報管理部２３１、及び分析部２３２を備えている。
【００６４】
構成情報管理部２３１は、被管理ノード２−２〜２−８の構成を示す構成情報を管理する。更に詳しくは、構成情報管理部２３１は、被管理ノード２−２〜２−８から検出部２２１が構成情報を取得した場合に、被管理ノード２−２〜２−８ごとに構成一覧情報に記憶させる。
【００６５】
分析部２３２は、検出部２２１が取得した構成情報と、パッケージソフトウェアの構成情報とを比較することで、被管理ノード２−２〜２−８の構成に応じたアップデータを特定する。ここで、分析部２３２は、検出部２２１が取得した構成情報と、パッケージソフトウェアの構成情報とが完全に一致している場合に限らず、一部に相違がある場合であっても、被管理ノード２−２〜２−８の構成に応じたアップデータとして特定してもよい。例えば、構成情報に含まれるプロセッサ名において、一方は正式名称であるが、他方が名称の一部が省略されている場合等にはアップデータとして特定してもよい。
【００６６】
また、ソフトウェア管理機能について、被管理ノード２−２〜２−８は、アップデート部を備えている。アップデート部は、通信部２４１、及び実行部２４２を備えている。
【００６７】
通信部２４１は、受信部の一例である。通信部２４１は、第１バス３又は第２バス４を介して、アップデータ、及びアップデートプログラムを管理ノード２−１から受信する。また、通信部２４１は、アップデートが成功したか否かが示された実行結果を管理ノード２−１に送信する。
【００６８】
実行部２４２は、アップデートを実行する。更に詳しくは、実行部２４２は、通信部２４１が受信したアップデータ、及びアップデートプログラムに基づいて、アップデートを実行する。さらに、実行部２４２は、アップデートが成功したか否かの検証を実行する。
【００６９】
次に、管理ノード２−１が、被管理ノード２−２〜２−８をアップデートさせるアップデータを被管理ノード２−２〜２−８に送信する通信経路を決定する決定処理について説明する。ここで、図６は、実施例にかかる管理ノード２−１が実行する決定処理の一例を示すフローチャートである。
【００７０】
実行部２１４は、被管理ノード２−２〜２−８のアップデートを指示する操作を受け付ける（ステップＳ１１）。なお、実行部２１４は、被管理ノード２−２〜２−８の構成情報の取得を指示する操作を受け付けてもよい。構成情報の取得指示の場合には、実行部２１４は、被管理ノード２−２〜２−８のアップデートは実行しない。そして、実行部２１４は、取得した構成情報を出力する。
【００７１】
通信部２１２は、通信可能な通信経路を検出する（ステップＳ１２）。すなわち、通信部２１２は、第１通信経路と、第２通信経路と、第３通信経路とを検出する。
【００７２】
検出部２２１は、第１通信経路を介して通信可能な被管理ノード２−２〜２−８を検出する（ステップＳ１３）。
【００７３】
検出部２２１は、アップデートの適用対象の被管理ノード２−２〜２−８のうち、検出されていない被管理ノード２−２〜２−８が有るか否かを判定する（ステップＳ１４）。検出されていない被管理ノード２−２〜２−８が無い場合に（ステップＳ１４；Ｎｏ）、管理ノード２−１は、ステップＳ１８に移行する。
【００７４】
検出されていない被管理ノード２−２〜２−８が有る場合に（ステップＳ１４；Ｙｅｓ）、検出部２２１は、第２通信経路を介して通信可能な被管理ノード２−２〜２−８を検出する（ステップＳ１５）。
【００７５】
検出部２２１は、アップデートの適用対象の被管理ノード２−２〜２−８のうち、検出されていない被管理ノード２−２〜２−８が有るか否かを判定する（ステップＳ１６）。検出されていない被管理ノード２−２〜２−８が無い場合に（ステップＳ１６；Ｎｏ）、管理ノード２−１は、ステップＳ１８に移行する。
【００７６】
検出されていない被管理ノード２−２〜２−８が有る場合に（ステップＳ１６；Ｙｅｓ）、検出部２２１は、第３通信経路を介して通信可能な被管理ノード２−２〜２−８を検出する（ステップＳ１７）。
【００７７】
通信部２１２は、被管理ノード２−２〜２−８を検出したそれぞれの通信経路でアップデータを送信することを決定する（ステップＳ１８）。
【００７８】
以上により、管理ノード２−１は、通信経路の決定処理を終了する。
【００７９】
次に、管理ノード２−１が、アップデータを転送する転送処理について説明する。ここで、図７は、実施例にかかる管理ノード２−１が実行する転送処理の一例を示すフローチャートである。
【００８０】
検出部２２１は、被管理ノード２−２〜２−８のそれぞれから構成情報を取得する（ステップＳ２１）。すなわち、検出部２２１は、ＯＳ情報、ハードウェア情報、及びプロセッサ情報を取得する。
【００８１】
分析部２３２は、被管理ノード２−２〜２−８から取得した構成情報と、パッケージソフトウェアに示された各アップデータの適用対象が示された構成情報とに基づいて、被管理ノード２−２〜２−８の構成に応じたアップデータを特定する（ステップＳ２２）。
【００８２】
転送部２１３は、アップデータ及びアップデートプログラムを、通信部２１２に被管理ノード２−２〜２−８へ送信させる（ステップＳ２３）。
【００８３】
被管理ノード２−２〜２−８は、アップデータ及びアップデートプログラムに基づいて、アップデート処理を実行する（ステップＳ２４）。なお、アップデート処理は、図８で詳細に説明する。
【００８４】
通信部２１２は、アップデート処理の実行結果を受信する（ステップＳ２５）。
【００８５】
実行部２１４は、アップデートの適用対象の全ての被管理ノード２−２〜２−８に対してアップデート処理を実行したか否かを判定する（ステップＳ２６）。未だアップデート処理を実行していない被管理ノード２−２〜２−８が有る場合に（ステップＳ２６；Ｎｏ）、管理ノード２−１は、ステップＳ２２に移行して、未だアップデート処理を実行していない被管理ノード２−２〜２−８に対してアップデート処理を実行する。
【００８６】
全ての被管理ノード２−２〜２−８にアップデート処理を実行した場合に（ステップＳ２６；Ｙｅｓ）、実行部２１４は、被管理ノード２−２〜２−８から受信した実行結果に基づいて、アップデートに失敗した被管理ノード２−２〜２−８が有るか否かを判定する（ステップＳ２７）。
【００８７】
アップデートに失敗した被管理ノード２−２〜２−８が無い場合に（ステップＳ２７；Ｎｏ）、管理ノード２−１は、転送処理を終了する。
【００８８】
アップデートに失敗した被管理ノード２−２〜２−８が有る場合に（ステップＳ２７；Ｙｅｓ）、実行部２１４は、ロールバックを実行する（ステップＳ２８）。すなわち、実行部２１４は、ロールバックによりアップデートの適用対象の被管理ノード２−２〜２−８をアップデート前の状態に戻す。この時、実行部２１４は、被管理ノード２−２〜２−８間の依存関係に基づいて、アップデート前に戻すか否かを判定してもよい。この場合には、実行部２１４は、判定結果に基づいて、アップデート前に戻す。
【００８９】
以上により、管理ノード２−１は、転送処理を終了する。上記転送処理では、管理ノード２−１は、順次アップデートを実行している。しかしながら、管理ノード２−１は、時分割等でアップデータ及びアップデートプログラムを送信することでパラレル処理にてアップデートを実行してもよい。
【００９０】
次に、被管理ノード２−２〜２−８が、アップデートプログラムに基づいて、アップデータでアップデートを実行するアップデート処理について説明する。ここで、図８は、実施例にかかる被管理ノード２−２〜２−８が実行するアップデート処理の一例を示すフローチャートである。
【００９１】
通信部２４１は、アップデータ及びアップデートプログラムを受信する（ステップＳ３１）。
【００９２】
実行部２４２は、アップデートプログラムに基づいて、前処理を実行する（ステップＳ３２）。
【００９３】
実行部２４２は、アップデートプログラムに基づいて、アップデータでアップデートを実行するインストール処理を実行する（ステップＳ３３）。
【００９４】
実行部２４２は、アップデートプログラムに基づいて、後処理を実行する（ステップＳ３４）。
【００９５】
実行部２４２は、インストールに失敗したか否かを判定する（ステップＳ３５）。インストールに成功した場合に（ステップＳ３５；Ｎｏ）、通信部２４１は、アップデートに成功したことを示す実行結果を管理ノード２−１に送信する（ステップＳ３６）。
【００９６】
インストールに失敗した場合に（ステップＳ３６；Ｙｅｓ）、実行部２４２は、インストール前の状態に戻すロールバックを実行する（ステップＳ３７）。通信部２４１は、アップデートに失敗したことを示す実行結果を管理ノード２−１に送信する（ステップＳ３８）。
【００９７】
以上により、被管理ノード２−２〜２−８は、アップデート処理を終了する。
【００９８】
以上の説明のように、本実施例によれば、管理ノード２−１は、被管理ノード２−２〜２−８の構成を示す構成情報を取得する。また、管理ノード２−１は、被管理ノード２−２〜２−８のアップデートに際して、アップデータの適用対象の構成を示す構成情報ごとに、アップデートさせるアップデータを有するパッケージソフトウェアの入力を受け付ける。また、管理ノード２−１は、パッケージソフトウェアに含まれる一以上のアップデータから、取得した構成情報によりアップデータを特定する。そして、管理ノード２−１は、特定したアップデータを被管理ノード２−２〜２−８に転送することでアップデートを実行する。このように、プロセッサアーキテクチャ毎に運用管理を実施しなくても、管理ノード２−１は、被管理ノード２−２〜２−８のプロセッサアーキテクチャに応じたアップデータでアップデートを実行することができる。よって、管理ノード２−１は、プロセッサ２１のアーキテクチャに応じたソフトウェアのアップデートを容易にすることができる。
【００９９】
また、本実施例にかかる管理ノード２−１は、第１バス３及び第２バス４を含む複数のバスを介して被管理ノード２−２〜２−８と接続された管理ノード２−１である。そして、管理ノード２−１の実行部２１４は、第１バス３を介してアップデータを転送することができない場合に、第２バス４を介してアップデータを転送させることでアップデートを実行する。これにより、管理ノード２−１は、第１バス３が通信不可の場合であっても、被管理ノード２−２〜２−８のアップデートを実行することができる。
【０１００】
管理ノード２−１の実行部２１４は、バスを介して適用対象の被管理ノード２−２〜２−８にアップデータを転送することができない場合に、適用対象ではない被管理ノード２−２〜２−８を介して、適用対象の被管理ノード２−２〜２−８にアップデータを転送する。これにより、管理ノード２−１は、アップデートの適用対象の被管理ノード２−２〜２−８と直接通信を行うことができなくても、被管理ノード２−２〜２−８のアップデートを実行することができる。
【０１０１】
管理ノード２−１の実行部２１４は、被管理ノード２−２〜２−８のアップデートが失敗した場合に、アップデートの適用対象の被管理ノード２−２〜２−８をアップデート前に戻す。これにより、管理ノード２−１は、被管理ノード２−２〜２−８のアップデートが失敗した場合に、複数の被管理ノード２−２〜２−８による協働処理ができなくなってしまうことを防止することができる。
【０１０２】
管理ノード２−１の実行部２１４は、アップデートを適用する複数の被管理ノード２−２〜２−８のうち、一部の被管理ノード２−２〜２−８でアップデートに失敗した場合に、アップデートに失敗した被管理ノード２−２〜２−８と他の被管理ノード２−２〜２−８との依存関係に基づいて、被管理ノード２−２〜２−８をアップデート前に戻す。これにより、管理ノード２−１は、被管理ノード２−２〜２−８のアップデートが失敗した場合に、ロールバックによりアップデート前に戻されてしまう範囲を狭めることができる。
【０１０３】
また、本実施例にかかる分散型コンピュータ１は、バスを介して管理ノード２−１と複数の被管理ノード２−２〜２−８とが接続されている。管理ノード２−１は、入力部２１１と、検出部２２１と、実行部２１４とを備える。入力部２１１は、被管理ノード２−２〜２−８の構成を示す構成情報ごとに、被管理ノード２−２〜２−８をアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。実行部２１４は、検出部２２１が取得した構成情報により特定されるアップデータを、第１バス３又は第２バス４を介して転送部２１３に被管理ノード２−２〜２−８へ転送させることで、被管理ノード２−２〜２−８のアップデートを実行する。被管理ノード２−２〜２−８は、バスを介してアップデータを受信する通信部２４１を備える。このように、プロセッサアーキテクチャ毎に運用管理を実施しなくても、分散型コンピュータ１は、被管理ノード２−２〜２−８のプロセッサアーキテクチャに応じたアップデータでアップデートを実行することができる。よって、分散型コンピュータ１は、プロセッサ２１のアーキテクチャに応じたソフトウェアのアップデートを容易にすることができる。
【０１０４】
上述の実施形態では、各部のバス（例えば、拡張バス）又はＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステム又は１つの装置）で高速にデータを転送できる汎用のバスであってもよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【０１０５】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１又は複数のポートを有するルート・コンプレックス、Ｉ／Ｏデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【０１０６】
１  分散型コンピュータ
２  ノード
２−１  管理ノード
２−２〜２−８  被管理ノード
３  第１バス
４  第２バス
３０  ＰＣＩｅブリッジコントローラ
４０  コンソールコントローラ
２１１  入力部
２１２、２４１  通信部
２１３  転送部
２１４、２４２  実行部
２２１  検出部
２３１  構成情報管理部
２３２  分析部
【図１】
2020140476.tif 000003
【図２】
2020140476.tif 000004
【図３】
2020140476.tif 000005
【図４】
2020140476.tif 000006
【図５】
2020140476.tif 000007
【図６】
2020140476.tif 000008
【図７】
2020140476.tif 000009
【図８】
2020140476.tif 000010
【手続補正書】
【提出日】令和2年4月30日(2020.4.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のコンピュータのそれぞれと、複数のバスを介して接続された情報処理装置であって、
前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける入力部と、
前記複数のバスのいずれか１つにおいて前記複数のコンピュータを検出するまで、コンピュータを検出する検出部と、
前記検出部が検出した前記複数のコンピュータをアップデートさせる前記構成情報を、当該複数のコンピュータのそれぞれから取得する取得部と、
前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する転送部と、
前記転送部に転送させることによって当該コンピュータのアップデートを実行する実行部と、
を備える情報処理装置。
【請求項２】
前記実行部は、前記バスを介して、アップデートの適用対象の前記コンピュータに前記アップデータを転送させることができない場合に、アップデートの適用対象ではない前記コンピュータを介して、アップデートの適用対象の前記コンピュータに前記アップデータを転送させる、
請求項１に記載の情報処理装置。
【請求項３】
前記実行部は、前記コンピュータのアップデートが失敗した場合に、アップデートの適用対象の前記コンピュータをアップデート前に戻す、
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記実行部は、アップデートを適用する複数の前記コンピュータのうち、一部の前記コンピュータでアップデートに失敗した場合に、アップデートに失敗した前記コンピュータと他の前記コンピュータとの依存関係に基づいて、前記コンピュータをアップデート前に戻す、
請求項３に記載の情報処理装置。
【請求項５】
複数のバスを介して情報処理装置と複数のコンピュータのそれぞれとが接続された情報処理システムであって、
前記情報処理装置は、
前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける入力部と、
前記複数のバスのいずれか１つにおいて前記複数のコンピュータを検出するまで、コンピュータを検出する検出部と、
前記検出部が検出した前記複数のコンピュータをアップデートさせる前記構成情報を、当該複数のコンピュータのそれぞれから取得する取得部と、
前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する転送部と、
前記転送部に転送させることによって当該コンピュータのアップデートを実行する実行部と、を備え、
前記コンピュータは、
前記バスを介して前記アップデータを受信する受信部を備える、
情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の第１態様に係る情報処理装置は、複数のコンピュータのそれぞれと、複数のバスを介して接続された情報処理装置であって、入力部と、検出部と、取得部と、転送部と、実行部とを備える。前記入力部は、前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。前記検出部は、前記複数のバスのいずれか１つにおいて前記複数のコンピュータを検出するまで、コンピュータを検出する。前記取得部は、前記検出部が検出した前記複数のコンピュータをアップデートさせる前記構成情報を、当該複数のコンピュータのそれぞれから取得する。前記転送部は、前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する。前記実行部は、前記転送部に転送させることによって当該コンピュータのアップデートを実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の第２態様に係る情報処理システムは、複数のバスを介して情報処理装置と複数のコンピュータのそれぞれとが接続された情報処理システムである。前記情報処理装置は、入力部と、検出部と、取得部と、転送部と、実行部とを備える。前記入力部は、前記コンピュータの構成を示す構成情報ごとに、当該コンピュータをアップデートさせるデータであるアップデータを有するパッケージソフトウェアの入力を受け付ける。前記検出部は、前記複数のバスのいずれか１つにおいて前記複数のコンピュータを検出するまで、コンピュータを検出する。前記取得部は、前記検出部が検出した前記複数のコンピュータをアップデートさせる前記構成情報を、当該複数のコンピュータのそれぞれから取得する。前記転送部は、前記取得部が取得した前記構成情報により特定される前記アップデータを、前記バスを介して前記コンピュータに転送する。前記実行部は、前記転送部に転送させることによって当該コンピュータのアップデートを実行する。前記コンピュータは、前記バスを介して前記アップデータを受信する受信部を備える。