(57)【特許請求の範囲】
【請求項１】
サービスモジュールが稼働する情報処理装置であって、
受信された要求に従い処理を行う第１サービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否か判定する判定手段と、
前記判定手段により同じ情報処理装置上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定手段により同じ情報処理装置上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定手段と
を有し、
前記判定手段は、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、
前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、
前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークであることを特徴とする情報処理装置。
【請求項２】
前記第１のサービスモジュールは、文書管理サービスを実現するサービスモジュールであり、
前記第２のサービスモジュールは、印刷サービスを実現するサービスモジュールであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１のサービスモジュールは、
前記外部ネットワークを用いて前記第２のサービスモジュールと通信する際、外部接続情報を用いて前記第２のサービスモジュールと通信し、
前記内部ネットワークを用いて前記第２のサービスモジュールと通信する際、内部接続情報を用いて前記第２のサービスモジュールと通信することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記外部接続情報および前記内部接続情報は、ＩＰアドレスおよびポートの情報であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１のサービスモジュールは、前記第２のサービスモジュールからステータス通信を受信したことに応じて、前記第１のサービスモジュールが管理する文書レコードのステータスを更新することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
サービスモジュールが稼働する情報処理装置同士が通信することが可能なシステムにおける制御方法であって、
受信された要求に従い処理を行う第１サービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否か判定する判定工程と、
前記判定工程により同じ情報処理装置上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定工程により同じ情報処理装置上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定工程と
を有し、
前記判定工程では、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、
前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、
前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークであることを特徴とする制御方法。
【請求項７】
前記第１のサービスモジュールは、文書管理サービスを実現するサービスモジュールであり、
前記第２のサービスモジュールは、印刷サービスを実現するサービスモジュールであることを特徴とする請求項６に記載の制御方法。
【請求項８】
前記第１のサービスモジュールは、
前記外部ネットワークを用いて前記第２のサービスモジュールと通信する際、外部接続情報を用いて前記第２のサービスモジュールと通信し、
前記内部ネットワークを用いて前記第２のサービスモジュールと通信する際、内部接続情報を用いて前記第２のサービスモジュールと通信することを特徴とする請求項６に記載の制御方法。
【請求項９】
前記外部接続情報および前記内部接続情報は、ＩＰアドレスおよびポートの情報であることを特徴とする請求項８に記載の制御方法。
【請求項１０】
前記第１のサービスモジュールは、前記第２のサービスモジュールからステータス通信を受信したことに応じて、前記第１のサービスモジュールが管理する文書レコードのステータスを更新することを特徴とする請求項６に記載の制御方法。
【請求項１１】
コンピュータを、
受信された要求に従い処理を行う第１サービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じコンピュータ上で稼働しているか否か判定する判定手段、
前記判定手段により同じコンピュータ上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定手段により同じコンピュータ上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定手段
として機能させ、
前記判定手段は、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、
前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、
前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークであることを特徴とするプログラム。
【請求項１２】
前記第１のサービスモジュールは、文書管理サービスを実現するサービスモジュールであり、
前記第２のサービスモジュールは、印刷サービスを実現するサービスモジュールであることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記第１のサービスモジュールは、
前記外部ネットワークを用いて前記第２のサービスモジュールと通信する際、外部接続情報を用いて前記第２のサービスモジュールと通信し、
前記内部ネットワークを用いて前記第２のサービスモジュールと通信する際、内部接続情報を用いて前記第２のサービスモジュールと通信することを特徴とする請求項１１に記載のプログラム。
【請求項１４】
前記外部接続情報および前記内部接続情報は、ＩＰアドレスおよびポートの情報であることを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記第１のサービスモジュールは、前記第２のサービスモジュールからステータス通信を受信したことに応じて、前記第１のサービスモジュールが管理する文書レコードのステータスを更新することを特徴とする請求項１１に記載のプログラム。
【請求項１６】
サービスモジュールが動作し、互いに通信可能な複数の情報処理装置を含むシステムにおける情報処理装置と通信可能なクライアント装置であって、
要求を送信する送信手段と、
前記要求に対する応答を受信する受信手段と
を有し、
前記情報処理装置は、
外部装置からの要求を受信し、前記要求に応じて処理を行う第１のサービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定する判定手段と、
前記判定手段により同じ情報処理装置上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定手段により同じ情報処理装置上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定手段と
を有し、
前記判定手段は、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、
前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、
前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークである
ことを特徴とするクライアント装置。
【請求項１７】
サービスモジュールが動作し、互いに通信可能な複数の情報処理装置と、前記複数の情報処理装置のいずれかと通信可能なクライアント装置とを含む情報処理システムであって、
要求を送信する送信手段と、
送信された前記要求に従い処理を行う第１サービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否か判定する判定手段と、
前記判定手段により同じ情報処理装置上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定手段により同じ情報処理装置上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定手段と、
前記外部ネットワーク、または内部ネットワークを介して前記第１のサービスモジュールとデータ通信を行った前記第２のサービスモジュールにより処理された前記要求に対応する応答を受信する受信手段と、
を有し、
前記判定手段は、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、
前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、
前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークであることを特徴とする情報処理システム。
【請求項１８】
ネットワーク接続された複数の情報処理装置において稼動するサービスモジュールが協調して動作するシステムにおけるサービスモジュールの間の通信方法であって、
前記システムにおけるサービスモジュールの接続を監視する監視モジュールを備えた監視装置は、前記システムにおけるサービスモジュールが稼動する情報処理装置を一意に識別するための識別情報と、前記サービスモジュールが前記情報処理装置の間の外部ネットワークを使用して通信するための外部接続情報と前記サービスモジュールが前記情報処理装置の内部ネットワークを使用して通信するための内部接続情報とを含む接続情報とを有する接続管理情報を有し、
前記情報処理装置の接続管理情報取得手段が、前記監視モジュールから前記接続管理情報を取得する接続管理情報取得工程と、
前記情報処理装置の接続情報取得手段が、取得した前記接続管理情報から通信先のサービスモジュールの接続情報を取得する接続情報取得工程と、
前記情報処理装置の比較手段が、前記サービスモジュールが稼動する情報処理装置と前記通信先のサービスモジュールが稼動する情報処理装置との前記識別情報を比較する比較工程と、
前記情報処理装置の決定手段が、前記比較工程の結果に基づいて、前記接続管理情報における前記内部接続情報または前記外部接続情報のいずれを用いるかを決定する決定工程と
を有し、
前記決定工程は、
前記比較工程にて、前記識別情報が一致した場合、前記通信先のサービスモジュールと内部ネットワークを使用して通信を行うために前記内部接続情報を用いるとして決定し、
前記比較工程にて、前記識別情報が一致しない場合、前記通信先のサービスモジュールと外部ネットワークを使用して通信を行うために前記外部接続情報を用いるとして決定する
ことを特徴とする通信方法。
【請求項１９】
前記情報処理装置の判定手段が、前記接続管理情報を取得済か否かを判定する判定工程を更に有し、
前記接続管理情報取得工程は、前記判定工程にて前記接続管理情報を取得済でないと判定した場合に、前記監視モジュールから前記接続管理情報を取得することを特徴とする請求項１８に記載の通信方法。
【請求項２０】
前記監視装置の表管理手段が、前記接続管理情報を管理する表管理工程を更に有し、
前記表管理工程は、前記サービスモジュールから前記接続情報を受信して接続管理情報を更新することを特徴とする請求項１８に記載の通信方法。
【請求項２１】
前記接続管理情報において、前記識別情報はホスト識別ＩＤであり、前記外部接続情報および前記内部接続情報はＩＰアドレスおよびポートの情報であることを特徴とする請求項１８に記載の通信方法。
【請求項２２】
前記サービスモジュールは、印刷サービスまたは文書管理サービスのモジュールであることを特徴とする請求項１８に記載の通信方法。
【請求項２３】
ネットワーク接続された複数の情報処理装置において稼動するサービスモジュールが協調して動作するシステムにおけるサービスモジュールの間の通信方法であって、
前記システムにおけるサービスモジュールの接続を監視する監視モジュールを備えた監視装置は、前記システムにおけるサービスモジュールが稼動する情報処理装置を一意に識別するための識別情報と、前記サービスモジュールが前記情報処理装置の間の外部ネットワークを使用して通信するための外部接続情報と前記サービスモジュールが前記情報処理装置の内部ネットワークを使用して通信するための内部接続情報とを含む接続情報とを有する接続管理情報を有し、
前記情報処理装置の接続管理情報取得手段が、前記監視モジュールから前記接続管理情報を取得する接続管理情報取得工程と、
前記情報処理装置の接続情報取得手段が、取得した前記接続管理情報から通信先のサービスモジュールの接続情報を取得する接続情報取得工程と、
前記情報処理装置の比較手段が、前記サービスモジュールが稼動する情報処理装置と前記通信先のサービスモジュールが稼動する情報処理装置との前記識別情報を比較する比較工程と、
前記情報処理装置の決定手段が、前記比較工程の結果に基づいて、前記接続管理情報における前記内部接続情報または前記外部接続情報のいずれを用いるかを決定する決定工程と、
前記情報処理装置の判定手段が、ネットワークにおける前記通信先のサービスモジュールに対し、前記接続情報を用いて接続が成功したか否かを判定する判定工程と、
前記情報処理装置の通知手段が、前記通信先のサービスモジュールとの接続の結果を前記監視モジュールへ通知する通知工程と、
を有し、
前記決定工程は、前記内部接続情報を用いるとして決定しており、かつ前記判定工程が接続を失敗したと判定した場合、前記外部接続情報を用いるとして変更し、
前記通知工程は、前記外部接続情報を使用した接続に成功した場合に、前記通信先サービスモジュールのホストが移動したことを前記監視モジュールに通知する
ことを特徴とする通信方法。
【請求項２４】
前記監視装置の変更手段が、前記通知工程による接続の結果を受信した場合、当該受信した結果に応じて前記接続管理情報を更新する更新工程を更に有し、
前記情報処理装置の対応情報取得手段が、前記接続情報と前記情報処理装置とが対応付けられた対応情報を取得する対応情報取得工程と、
前記情報処理装置の特定手段が、前記対応情報から同じポートに接続された他のサービスモジュール及び、該サービスモジュールの接続情報を特定する特定工程と
を更に有し、
前記通知工程は、特定された前記接続情報を前記監視モジュールへ通知する
ことを特徴とする請求項２３に記載の通信方法。
【請求項２５】
前記監視装置の更新通知手段が、前記更新工程により前記接続情報が更新された場合、前記サービスモジュールの内部接続情報の更新を全てのサービスモジュールに通知する更新通知工程を更に有することを特徴とする請求項２４に記載の通信方法。
【請求項２６】
監視モジュールを備える監視装置と協調して動作するサービスモジュールが稼動する複数の情報処理装置とを有するシステムであって、
前記監視装置は、前記システムにおけるサービスモジュールが稼動する情報処理装置を一意に識別するための識別情報と、前記サービスモジュールが前記情報処理装置の間の外部ネットワークを使用して通信するための外部接続情報と前記サービスモジュールが前記情報処理装置の内部ネットワークを使用して通信するための内部接続情報とを含む接続情報とを有する接続管理情報を有し、
前記情報処理装置は
前記監視モジュールから前記接続管理情報を取得する接続管理情報取得手段と、
取得した前記接続管理情報から通信先のサービスモジュールの接続情報を取得する接続情報取得手段と、
前記サービスモジュールが稼動する情報処理装置と前記通信先のサービスモジュールが稼動する情報処理装置との前記識別情報を比較する比較手段と、
前記比較手段の結果に基づいて、前記接続管理情報における前記内部接続情報または前記外部接続情報のいずれを用いるかを決定する決定手段と
を有し、
前記決定手段は、
前記比較手段にて、前記識別情報が一致した場合、前記通信先のサービスモジュールと内部ネットワークを使用して通信を行うために前記内部接続情報を用いるとして決定し、
前記比較手段にて、前記識別情報が一致しない場合、前記通信先のサービスモジュールと外部ネットワークを使用して通信を行うために前記外部接続情報を用いるとして決定する
ことを特徴とするシステム。
【請求項２７】
コンピュータを、
サービスモジュールが稼働する情報処理装置を一意に識別するための識別情報と、前記サービスモジュールが前記情報処理装置の間の外部ネットワークを使用して通信するための外部接続情報と前記サービスモジュールが前記情報処理装置の内部のネットワークを使用して通信するための内部接続情報とを含む接続情報とを有する接続管理情報を監視モジュールから取得する接続管理情報取得手段、
取得した前記接続管理情報から通信先のサービスモジュールの接続情報を取得する接続情報取得手段、
前記サービスモジュールが稼動する情報処理装置と前記通信先のサービスモジュールが稼動する情報処理装置との前記識別情報を比較する比較手段、
前記比較手段の結果に基づいて、前記接続管理情報における前記内部接続情報または前記外部接続情報のいずれを用いるかを決定する決定手段
として機能させ、
前記決定手段は、
前記比較手段にて、前記識別情報が一致した場合、前記通信先のサービスモジュールと内部ネットワークを使用して通信を行うために前記内部接続情報を用いるとして決定し、
前記比較手段にて、前記識別情報が一致しない場合、前記通信先のサービスモジュールと外部ネットワークを使用して通信を行うために前記外部接続情報を用いるとして決定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続された複数の情報処理装置が協調して動作するシステムにおける情報処理装置間の通信方法に関し、特に、仮想化環境でのサービスモジュール間の通信方法に関する。
【背景技術】
【０００２】
サーバ仮想化技術の発達により、仮想化技術を使用してサーバシステムのインフラを構築する事例が増えている。サーバ仮想化とは、１台の物理サーバ（物理ホスト）を独立した複数台のサーバとして動作させる技術で、１台の物理ホスト上に、それぞれ独立した論理的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を複数稼働させることが可能である。論理的なＯＳのことを仮想マシン（あるいはゲストＯＳ）と呼ぶ。仮想化技術の代表例としては、Ｍｉｃｒｏｓｏｆｔ社のＨｙｐｅｒ−Ｖや、ＶＭｗａｒｅ社のＶＭｗａｒｅ（登録商標）等がある。この仮想化技術はクラウド・コンピューティングで利用されている。
【０００３】
仮想化環境におけるネットワーク構成としては、大きく２つの種類がある。１つは、同一の物理ホスト上で動作する仮想マシン内でのみ通信が可能なネットワークで、これを内部ネットワークと呼ぶ。もう１つは、別の物理ホスト上で動作する仮想マシン間で通信が可能なネットワークで、これを外部ネットワークと呼ぶ。各仮想マシンは１つ以上の仮想的なＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を備えることが可能であり、仮想ＮＩＣに対して内部ネットワーク／外部ネットワークのいずれを使用するかを設定する。
【０００４】
従来、仮想化環境で稼働するシステムでは、仮想マシン上で動作するアプリケーション間の通信に外部ネットワークを使用していた。なぜなら、システム内のアプリケーションやデータベースサーバ、プリントサーバ等が、全て１つの物理ホスト上で稼働するシステムを構築できることは稀なためである。
【０００５】
外部ネットワークでは、仮想ネットワークが物理ホストに備えられた物理ＮＩＣにバインドされ、すべてのネットワークトラフィックが物理ＮＩＣを通してルーティングされる。そのため、外部ネットワークを使用する仮想マシン間の通信は、物理ＮＩＣを介して通信が行われる。外部ネットワークを使用する場合、例えば、企業の基幹業務で使用される大量印刷システムにおいては、各アプリケーション間で大量のデータのやりとりが必須となるため、物理ＮＩＣのリソースを消費してしまう。複数の仮想マシンが物理ＮＩＣを共有するため、同一の物理ホスト上で動作する仮想マシン数が増えるほどその傾向が顕著になる。それにより、大量印刷処理において、通信の遅延が発生する。
【０００６】
具体的な通信遅延の事例としては、同一物理ホスト上の仮想マシン間の大量ファイル転送処理において、内部ネットワークを使用した場合の所要時間が１時間程度であったものが、外部ネットワークを使用することで８時間を要したという例もある。通信の遅延のみでなく、場合によっては通信のタイムアウトにより、一部の処理でエラーとなる可能性もある。
【０００７】
装置間の通信経路に関する従来技術として、２つの通信装置間で複数の通信経路を用いて通信を行う方法がある（特許文献１等）。また、通信経路を使い分ける従来技術として、例えば、サーバの物理ホストに物理ＮＩＣを２枚装着し、クライアントとの通信用に一方のＮＩＣを使用し、サーバ間で共有するデータは他方のＮＩＣに接続されたストレージに配置するものがある（非特許文献１等）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００-２０９２７８号公報
【非特許文献】
【０００９】
【非特許文献１】Oracle Real Application Clusters，［online］，Oracle Corporation，２００７年４月，インターネット，＜ＵＲＬ： http://www.oracle.com/lamg/jp/database/rac_home.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術は、仮想化技術が使用されていない環境での動作を想定したものであり、仮想化環境における外部ネットワークと内部ネットワークの使い分けを実現できない課題がある。特許文献１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）内の端末からＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）へ接続するものであり、仮想化環境においては外部ネットワークのみ使用可能である。非特許文献１は、データを共有するサーバやデータベースサーバが全て同一の物理ホスト上で動作する場合においてのみ、内部ネットワークを使用可能であるが、そうでない場合には外部ネットワークを使用することになる。
【００１１】
外部ネットワークを使用することにより、各アプリケーション間で大量のデータのやりとりが必須となるシステムにおいては、物理ＮＩＣのリソースを消費し、通信の遅延や場合によっては通信エラーが発生する。複数の仮想マシンが物理ＮＩＣを共有するため、同一の物理ホスト上で動作する仮想マシン数が増えるほど、通信遅延や通信エラーが発生する可能性が高くなる。
【００１２】
そのため、同一物理ホスト上の仮想マシン間の通信には内部ネットワークを使用し、別の物理ホスト上で動作する仮想マシン間の通信には外部ネットワークを使用する、といった通信経路の使い分けを行う必要がある。
【課題を解決するための手段】
【００１３】
本発明は、上記課題を解決するために、以下の構成を有する。すなわち、サービスモジュールが稼働する情報処理装置であって、受信された要求に従い処理を行う第１サービスモジュールと、前記第１のサービスモジュールと連携する第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否か判定する判定手段と、前記判定手段により同じ情報処理装置上で稼働していないと判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に外部ネットワークを用いることを決定し、前記判定手段により同じ情報処理装置上で稼働していると判定した場合、前記第１のサービスモジュールと前記第２のサービスモジュールとの間のデータ通信に内部ネットワークを用いることを決定する決定手段とを有し、前記判定手段は、前記第２のサービスモジュールが稼働している情報処理装置のホスト識別ＩＤをサービスモジュールを監視する監視サービスから取得し、取得されたホスト識別ＩＤと、前記第１のサービスを稼働している情報処理装置のホスト識別ＩＤとに基づき、前記第１のサービスモジュールと前記第２のサービスモジュールとが同じ情報処理装置上で稼働しているか否かを判定し、前記外部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介してデータ通信を行うためのネットワークであり、前記内部ネットワークは、前記第１のサービスモジュールと前記第２のサービスモジュールとが物理ＮＩＣを介さずにデータ通信を行うためのネットワークであることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、仮想化環境における外部ネットワークと内部ネットワークの使い分けを実現できる。そして、大量印刷システムのような、各アプリケーション間で大量のデータのやりとりが必須となるシステムにおいても、通信の遅延や通信エラーを抑制することができる。また、外部ネットワークを使用する場合に比べて、処理速度を向上させることも可能となる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係るネットワーク構成を示す図。
【図２】本実施形態に係るハードウェア構成を示す図。
【図３】本実施形態に係るＷｅｂブラウザ、Ｗｅｂサーバのモジュール構成を示す図。
【図４】本実施形態に係る監視サービスモジュールの構成を示す図。
【図５】本実施形態に係る文書管理サービスモジュールの構成を示す図。
【図６】本実施形態に係る印刷サービスモジュールの構成を示す図。
【図７】本実施形態に係る接続管理表の構成の例図。
【図８】本実施形態に係るデータベースのテーブル構成の例図。
【図９】第一の実施形態に係る文書管理サービス処理を示すフローチャートの図。
【図１０】第一の実施形態に係る印刷サービス処理を示すフローチャートの図。
【図１１】第二の実施形態に係るＡＲＰテーブルの例図。
【図１２】第二の実施形態に係る文書管理サービス処理を示すフローチャートの図。
【図１３】第二の実施形態に係る監視サービス処理を示すフローチャートの図。
【図１４】第二の実施形態に係る印刷サービス処理を示すフローチャートの図。
【図１５】第二の実施形態に係る監視サービス処理を示すフローチャートの図。
【発明を実施するための形態】
【００１６】
＜第一の実施形態＞
以下、本発明を実施するための形態について図面を用いて説明する。図１は、本実施形態のシステム構成を示すブロック図である。図１において、ネットワーク１００は各構成要素を接続する。つまり、各構成要素は、ネットワーク１００にてネットワーク接続されている。クライアント１０１はＷｅｂサーバに対してリクエストを発行する。Ｗｅｂサーバ１０２はクライアントからのリクエストを受け付ける。また、監視サーバ１０４は文書サーバ１０６、１０９や印刷サーバ１０７、１１０の状態を監視する。文書サーバ１０６、１０９はＷｅｂサーバ１０２で受け付けたリクエストを処理する。印刷サーバ１０７、１１０は文書サーバ１０６、１０９から文書を受信して印刷処理を行う。
【００１７】
印刷装置１１１は印刷サーバ１０７、１１０から印刷ジョブを受信して印刷出力を行う。ホストコンピュータ１０３、１０５、１０８は、物理的なホストコンピュータを意味する。１台の物理的なホストコンピュータ１０５上に、仮想化技術を使用して論理的なＯＳ（仮想マシン）が２つ作成されており、それぞれの論理的なＯＳ上で文書サーバ１０６と印刷サーバ１０７が動作している。また、上記、各構成要素はネットワーク１００により通信可能に接続されており、通信手段としては、ＨＴＴＰや、ＨＴＴＰ上のＳＯＡＰ等の通信プロトコル、つまりＷｅｂサービスが用いられる他、ＴＣＰ／ＩＰによる相互通信を用いて行われる。本発明では、以降、物理的なホストコンピュータのことを「物理ホスト」と記載する。また、物理ホスト上に作成された論理的なＯＳのことを「仮想マシン」と記載する。なお、本実施形態において、サービスモジュール（もしくは、ソフトウェアモジュール）を単にサービスと記載する。また、本発明の実施形態はクラウド。コンピューティングに適用可能である。
【００１８】
［システム構成］
図２（Ａ）は、図１のクライアント１０１、Ｗｅｂサーバ１０２、監視サーバ１０４、文書サーバ１０６、１０７、あるいは印刷サーバ１０７、１１０のハードウェア構成を示すブロック図である。ＣＰＵ２１は内部バスで接続される各デバイス（後述のＲＯＭ２２、ＲＡＭ２３他）を直接或いは間接的に制御し、本発明を実現するためのプログラムを実行する。ＲＯＭ２２にはＢＩＯＳ等が格納してある。ＲＡＭ（直接記憶装置）２３はＣＰＵ２１のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードするための一時記憶として利用されたりする。ＨＤＤ（ハードディスクドライブ）２４は基本ソフトウェアであるＯＳやソフトウェアモジュールが記憶されているＨＤＤ、もしくはＳＳＤ（ソリッドステートドライブ）などの間接記憶装置である。入力装置２５はキーボードやポインティングデバイスなどである。出力装置２６はディスプレイなどである。Ｉ／Ｆ２７、２８はネットワークインタフェースカード（ＮＩＣ）などであり、該Ｉ／Ｆを介してネットワーク１００に接続される。
【００１９】
これらハードウェアでは、起動すると、ＣＰＵ２１によりＲＯＭ２２内のＢＩＯＳが読み出された後、実行され、ＯＳがＨＤＤ２４からＲＡＭ２３に実行可能にロードされる。ＣＰＵ２１はＯＳの動作に従って後述する各種ソフトウェアモジュールをＨＤＤ２４からＲＡＭ２３に随時、実行可能にロードする。各種ソフトウェアモジュールは上記各デバイスの協調によりＣＰＵ２１によって実行され動作する。また、Ｉ／Ｆ２７、２８はネットワーク１００に接続されており、ＯＳの動作に従ってＣＰＵ２１により制御され、上述した通信手段による通信を実現している。なお、上記の各装置（サーバ）は、一般的な情報処理装置が備える機能を実現できれば良いため、ここに挙げられた機能に限定されるものではない。
【００２０】
図２（Ｂ）は、物理ホスト１０５のハードウェア構成、および、物理ホスト１０５上に作成された仮想マシンで動作する文書サーバ１０６、印刷サーバ１０７のハードウェア構成を示すブロック図である。なお、物理ホスト１０８のハードウェア構成、および、物理ホスト１０８上に作成された仮想マシンで動作する文書サーバ１０９、印刷サーバ１１０のハードウェア構成についても同様である。文書サーバ１０６や印刷サーバ１０７のハードウェア構成は、仮想化技術により作成された仮想的なハードウェア構成である。図２（Ｂ）における、Ｉ／Ｆ２７、２８は、仮想化技術により作成された仮想的なネットワークインタフェースカード（ＮＩＣ）を意味する。以降、この仮想的なＮＩＣのことを「仮想ＮＩＣ」と記載する。仮想的であることを除いて、構成要素は図２（Ａ）と同様であるため、重複する説明は割愛する。図２（Ｂ）において、Ｉ／Ｆ１２０１は物理ホストに装着された物理的なネットワークインタフェースカード（ＮＩＣ）であり、ネットワーク１００に接続されている。以降、物理ホストに装着された物理的なＮＩＣのことを「物理ＮＩＣ」と記載する。
【００２１】
また、図２（Ｂ）において、ネットワーク１２０２は別の物理ホスト上で動作する仮想マシンとの通信が可能な仮想的なネットワークである。以降、別の物理ホスト上で稼働する仮想マシンと通信が可能な仮想ネットワーク（物理ホスト間のネットワーク）を「外部ネットワーク」と記載する。外部ネットワーク１２０２は、物理ＮＩＣ１２０１と接続されており、仮想ＮＩＣ２７から物理ＮＩＣ１２０１を介して、仮想マシン間でデータのやり取りを行う。ネットワーク１２０３は同一の物理ホスト上で動作する仮想マシン内でのみ通信が可能な仮想的なネットワークである。以降、同一の物理ホスト上で動作する仮想マシン内でのみ通信が可能な仮想ネットワーク（物理ホスト内のネットワーク）を「内部ネットワーク」と記載する。内部ネットワーク１２０３は物理ＮＩＣ１２０１と接続されておらず、物理ＮＩＣ１２０１を介することなく仮想ＮＩＣ２８間で直接通信し、仮想マシン間でデータのやり取りを行う。
【００２２】
また、本実施形態において、システム内で提供されるサービスは、印刷サービス、文書管理サービスが挙げられているが、これに限定されるものではなく、必要に応じて他のサービスを追加しても良い。ここでは、仮想ネットワーク上に各種サービスが稼動されている環境を実現できれば、本願発明は適用可能である。
【００２３】
［モジュール構成］
図３は、クライアント１０１、およびＷｅｂサーバ１０２上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図２（Ａ）で示したＨＤＤ２４に記憶されており、前述したようにＣＰＵ２１によってＲＡＭ２３にロードされ実行される。クライアント１０１はユーザインタフェースアプリケーションとしてＷｅｂブラウザ３１を備えている。また、Ｗｅｂサーバ１０２はＷｅｂアプリケーションサーバ３２を備え、該Ｗｅｂアプリケーションサーバ３２には、文書モニタアプリケーション３３がデプロイされている。
【００２４】
この文書モニタアプリケーション３３は、Ｗｅｂアプリケーションサーバ３２上でいわゆるＷｅｂアプリケーションとして構成されており、クライアント１０１はＷｅｂブラウザ３１を介してアクセスする事が出来る。文書モニタアプリケーション３３はＷｅｂブラウザ３１からのリクエストに対してユーザインタフェース情報を返答する。Ｗｅｂブラウザ３１は文書モニタアプリケーション３３から得られたユーザインタフェース情報をレンダリングし表示する。表示されたユーザインタフェース情報には、例えば、文書管理サービスが管理する文書情報一覧や、文書の印刷をリクエストするためのインタフェース等が含まれている。文書モニタアプリケーション３３は、文書管理サービスに対して文書情報一覧の取得や、Ｗｅｂブラウザ３１からリクエストされた文書の印刷をリクエストする。
【００２５】
図４は、監視サーバ１０４上で動作する監視サービスモジュール（監視モジュール）の構成図である。なお各ソフトウェアモジュールは図２（Ａ）で示したＨＤＤ２４に記憶されており、前述したようにＣＰＵ２１によってＲＡＭ２３にロードされ実行される。監視サービス４０は、文書管理サービス５０および、印刷サービス６０の状態を監視し、各サービスの状況によってフェイルオーバー等の処理を実行する。また監視サービス４０は、文書モニタアプリケーション３３や文書管理サービス５０、または印刷サービス６０からのリクエストを受け付け、後述する接続情報を返答する。監視サービス４０は、インタフェース部４０１、制御部４０２、表管理部４０３、および生存監視部４０４にて構成される。インタフェース部４０１は、他のサービスとの通信を処理する。制御部４０２は、受け付けたリクエストに従って、処理を実行する。表管理部４０３は、接続管理表４１に対する処理を実行する。そして、生存監視部４０４は、各サービスの生存状態を定期的に監視するためのトリガである。監視サービス４０はこれら各構成要素の協調により後述する処理を実行する。
【００２６】
また、インタフェース部４０１は文書モニタアプリケーション３３、文書管理サービス５０、および印刷サービス６０と通信する。これら通信は、各ソフトウェアモジュールからの命令をＯＳが受け、ＯＳの動作に従って、図２（Ａ）におけるＣＰＵ２１によりＩ／Ｆ２７、２８を介して実行される。接続管理表４１には文書管理サービス５０や印刷サービス６０と通信するための接続情報が格納されている。各サービスの接続情報は、各サービスをシステムに組み込むキッティング作業時に監視サービス４０に対して通知され、通知された接続情報をもとに監視サービス４０が接続管理表４１を作成し、ＨＤＤ２４に格納する。
【００２７】
図５は、文書サーバ１０６、１０９上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図２（Ａ）で示したＨＤＤ２４に記憶されており、前述したようにＣＰＵ２１によってＲＡＭ２３にロードされ実行される。文書管理サービス５０は文書モニタアプリケーション３３からリクエストを受け付け、文書に対する各種処理を実行する。文書管理サービス５０は、他のサービスとの通信を処理するインタフェース部５０１、受け付けたリクエストに従って処理を実行する制御部５０２、文書データに対する処理を実行する文書データ管理部５０３にて構成される。また、接続管理表キャッシュ５０４は監視サーバ１０４から取得した接続管理表４１をキャッシュする。また、接続管理表キャッシュ５０４は図２（Ａ）で示したＲＡＭ２３に記憶されている。インタフェース部５０１は文書モニタアプリケーション３３、監視サーバ１０４、および印刷サーバ１０７、１１０と通信する。これら通信は、各ソフトウェアモジュールからの命令をＯＳが受け、ＯＳの動作に従って、図２（Ａ）におけるＣＰＵ２１によりＩ／Ｆ２７、２８を介して実行される。
【００２８】
文書管理データベース５１は文書データの情報を格納する。文書管理データベース５１は、図２（Ａ）で示したＨＤＤ２４に記憶されている。制御部５０２は、文書管理サービス５０の各構成部の処理を制御する。インタフェース部５０１は、文書モニタアプリケーション３３から文書の印刷リクエストを受け付けると、制御部５０２は、文書データ管理部５０３から該文書レコードを取得する。また、制御部５０２は、インタフェース部５０１を介して、文書データを印刷サーバ１０７、１１０に送信する。
【００２９】
図６は、印刷サーバ１０７、１１０上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図２（Ａ）で示したＨＤＤ２４に記憶されており、前述したようにＣＰＵ２１によってＲＡＭ２３にロードされ実行される。印刷サービス６０は、文書管理サービス５０から文書を受信して印刷装置１１１に対して印刷処理を行う印刷サービスである。印刷サービス６０は、文書管理サービス５０や監視サービス４０との通信を処理するインタフェース部６０１を備える。この通信は、インタフェース部６０１からの命令をＯＳが受け、ＯＳの動作に従って、図２（Ａ）におけるＣＰＵ２１によりＩ／Ｆ２７、２８を介して実行される。また、印刷サービス６０は受け付けたリクエストを処理する制御部６０２、印刷ジョブの進捗を管理する印刷ジョブ管理部６０３にて構成される。接続管理表キャッシュ６０４は監視サーバ１０４から取得した接続管理表４１をキャッシュし、図２（Ａ）で示したＲＡＭ２３に記憶されている。印刷ジョブデータベース６１は印刷ジョブ情報を格納し、図２（Ａ）で示したＨＤＤ２４に記憶されている。
【００３０】
制御部６０２は、印刷サービス６０の各構成部の処理を制御する。インタフェース部６０１は、文書サーバ１０６、１０９から文書を受信する。また、インタフェース部６０１は、印刷ジョブを印刷装置１１１に送信する。制御部６０２は、文書サーバ１０６、１０９から文書を受信すると印刷ジョブを作成し、インタフェース部６０１を介して印刷ジョブを印刷装置１１１に送信する。また、制御部６０２は印刷装置１１１からの印刷ジョブの経過/結果情報の通知を待ち受ける。制御部６０２が印刷装置１１１からの印刷ジョブの経過/結果情報の通知を受信すると、印刷ジョブ管理部６０３は、印刷ジョブデータベース６１の印刷ジョブテーブルの該印刷ジョブレコードを更新する。また、ステータスを文書サーバ１０６、１０９に通知する。
【００３１】
［接続管理表］
図７は接続管理情報である接続管理表４１のデータ構造を示す図である。接続管理表４１は、サービス情報７００、および、プリンタ情報７１０によって構成される。サービス情報７００は、文書管理サービス５０および印刷サービス６０の情報が格納され管理される。サービス情報７００は、サービスＩＤ７０１、サービス種別７０２、外部通信接続アドレス７０３、外部通信接続ポート７０４、内部通信接続アドレス７０５、内部通信接続ポート７０６、およびホスト識別ＩＤ７０７で構成される。サービスＩＤ７０１は、サービスの識別子である。サービス種別７０２は、サービスの種類を示す。外部通信接続アドレス７０３には、外部ネットワーク通信用の接続アドレスが格納される。外部通信接続ポート７０４には、外部ネットワーク通信用の接続ポート番号が格納される。内部通信接続アドレス７０５には、内部ネットワーク通信用の接続アドレスが格納される。内部通信接続ポート７０６には、内部ネットワーク通信用の接続ポート番号が格納される。ホスト識別ＩＤ７０７は、サービスが稼動する物理ホストを識別するための識別子である。サービス種別７０２は、文書管理サービス５０か、もしくは印刷サービス６０かを区別するための領域である。また、ホスト識別ＩＤ７０７は、たとえばホスト名やＦＱＤＮ、ＭＡＣアドレスといった、サービスが稼働している物理ホストをネットワーク１００内で一意に識別可能な情報が格納される。
【００３２】
プリンタ情報７１０は、印刷サービス６０が管理するプリンタの情報が格納され管理される。プリンタ情報７１０は、サービスＩＤ７１１、登録プリンタ名７１２、プリンタアドレス７１３、該プリンタに接続するためのプリンタポート７１４、ドライバ情報７１５、デバイスモデル７１６から構成される。サービスＩＤ７１１は、該プリンタを管理する印刷サービス６０を識別するための識別子である。プリンタアドレス７１３は、該プリンタの所在を示す。ドライバ情報７１５は、管理されたプリンタを使用して印刷する際に用いられる情報である。デバイスモデル７１６は、管理されたプリンタのモデル名である。また、サービスＩＤ７１１は、サービス情報７００のサービスＩＤとリレーションしている。
【００３３】
［データ構成］
図８（Ａ）は、文書管理サービス５０が管理する文書データベース５１のテーブル構成の例である。文書テーブル８０１は文書および文書を保持するテーブルであり、このテーブルは、複数の文書レコード８０２で構成する。文書識別ＩＤ８０３は、文書をユニークに識別するためのＩＤであり、ドキュメント名８０４は、文書の名称である。プリンタ識別情報８０５は、印刷処理を行う印刷装置１１１を識別する情報である。識別情報としては、画像形成装置のＩＰアドレス、ホスト名等が使用される。ジョブ種類８０６は、保存ジョブの記述言語の種類であり、例えば、ＰＤＬ、ＰＤＦ、帳票記述言語等の種類がある。
【００３４】
ステータス８０７は、文書のステータスであり、例えば、“待機中”、“印刷中”、“正常終了”、“エラー終了”等の状態を表すステータス情報を保持する。受付日時８０８は、文書管理サービス５０に文書が投入され、文書管理サービス５０が文書データベース５１に文書を保存した日時である。ユーザＩＤ８０９は、その文書のオーナーを識別するための情報である。文書データ８１０は、文書管理サービス５０に投入された文書そのものである。
【００３５】
図８（Ｂ）は、印刷サービス６０が管理する印刷ジョブデータベース６１のテーブル構成の例である。印刷ジョブテーブル９０１は印刷ジョブ情報を保持するテーブルであり、このテーブルは、複数の印刷ジョブレコード９０２で構成する。ジョブ識別ＩＤ９０３は、印刷ジョブをユニークに識別するＩＤである。また、その印刷ジョブのドキュメント名９０４と、ジョブの印刷状態を保持しておくステータス９０５がある。
【００３６】
ステータス９０５は、例えば、印刷装置１１１が印刷を開始すると、“印刷中”となり、更に印刷が終了するとその結果を示す、“完了”、“中止”等の状態を表す情報を保持する。受付日時９０７は、印刷リクエストを印刷サービス６０が受けた日時である。ユーザＩＤ９０８は、印刷リクエストを行ったユーザを示す識別情報（ユーザ名、ユーザＩＤ、パスワード等）やＷｅｂサーバ１０２が生成したセッション情報等である。
【００３７】
［文書管理処理フロー］
以下、本発明の各ソフトウェアモジュールにおける処理フローについてフローチャートを用いて説明する。図９は、文書管理サービス５０が、Ｗｅｂサーバ１０２における文書モニタアプリケーション３３からの印刷リクエストを受け付けたときの処理を示すフローチャートである。制御部５０２は、本明細書では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部５０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。なお、本発明では、文書サーバ１０６、１０９にすでに文書が保存されているものとし、Ｗｅｂサーバ１０２における文書モニタアプリケーション３３から特定の文書に対して印刷リクエストを行うことが可能であるものとする。
【００３８】
文書サーバ１０６、１０９に文書を保存する方法としては、様々な方法が考えられるが、例えば、次のような方法がある。文書を作成したアプリケーションから文書保存リクエストを受信した場合に、監視サービス４０がリクエストを一旦受け付け、文書保存リクエストを行ったユーザのユーザ名に基づいて保存先を決定する。そして、決定した文書サーバ１０６、１０９に対して文書を送信するという方法である。また、文書モニタアプリケーション３３から文書を特定する方法としては、ログインしたユーザ名に基づいてアクセスする文書サーバ１０６、１０９を決定して文書情報一覧を取得し、文書を特定する、といった方法が考えられる。しかし、この方法に限定するものではない。
【００３９】
制御部５０２は、Ｓ１００１にて文書モニタアプリケーション３３から印刷リクエストを受け付ける。次に、制御部５０２は、Ｓ１００２にて、監視サービス４０より、接続管理表４１が取得済みかを判定し、未取得の場合はＳ１００３にて監視サービス４０より接続管理表４１を取得して接続管理表キャッシュ５０４に記憶する。これにより、接続管理情報取得を実現する。
【００４０】
次に、制御部５０２は、Ｓ１００４にて、印刷リクエストにおいて通信先サービスとして印刷先に指定されたプリンタ名に基づき、接続管理表キャッシュ５０４のプリンタ情報７１０から該プリンタを管理している印刷サービス６０のサービスＩＤを取得する。通信先サービスとして特定したサービスＩＤとサービス情報７００より、プリンタを管理している印刷サービス６０を特定する。より具体的には、プリンタ名からプリンタ情報７１０のサービスＩＤ７１１を特定し、サービスＩＤにてリレーションされているサービス情報７００の情報を取得する。取得される情報として、外部通信接続アドレス７０３、外部通信接続ポート７０４、内部通信接続アドレス７０５、内部通信接続ポート７０６、ホスト識別ＩＤ７０７が挙げられる。また、制御部５０２は接続管理表キャッシュ５０４のサービス情報７００から自文書管理サービス５０の内部通信接続アドレス７０５、内部通信接続ポート７０６、ホスト識別ＩＤ７０７を取得する。これにより接続情報取得を実現する。また、ここで取得した情報をまとめて、接続情報と呼ぶ。
【００４１】
次に、制御部５０２は、Ｓ１００５にて自文書管理サービス５０の内部通信接続アドレス７０５と通信先サービスとして特定した印刷サービス６０の内部通信接続アドレス７０５が登録されているかを判定する。制御部５０２は、内部通信接続アドレス７０５がともに登録されていた場合に、Ｓ１００６にて自文書管理サービス５０のホスト識別ＩＤ７０７と該特定した印刷サービス６０（通信先サービスモジュール）のホスト識別ＩＤ７０７とを比較し、一致するか否かを判定する。Ｓ１００５にて内部通信接続アドレス７０５が登録されていないと判定された場合には、Ｓ１００７へ進む。
【００４２】
Ｓ１００６にて、ホスト識別ＩＤ７０７が一致しなかった場合、Ｓ１００７にて、制御部５０２は、送信元として自文書管理サービス５０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。また、制御部５０２は、送信先として該印刷サービス６０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。Ｓ１００６にて、ホスト識別ＩＤ７０７が一致した場合、Ｓ１００８にて、制御部５０２は、送信元として自文書管理サービス５０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。また、制御部５０２は、送信先として該印刷サービス６０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。
【００４３】
Ｓ１００７またはＳ１００８の処理の後、制御部５０２は、Ｓ１００９にて該印刷サービス６０へ文書を送信する。続いて、制御部５０２は、Ｓ１０１０にて、印刷サービスから通知を受信したか否かを判定する。Ｓ１０１０にて、該印刷サービス６０からステータス通信を受信した場合、Ｓ１０１１にて、文書データベース５１の該文書レコードのステータスを更新する。そして、Ｓ１０１２にて、通知されたステータスが“印刷済”あるいは“キャンセル完了”であるか否かを判定する。Ｓ１０１２にて“印刷済”あるいは“キャンセル完了”であると判定された場合、本処理フローを終了する。Ｓ１０１２にて、“印刷済”あるいは“キャンセル完了”でないと判定された場合は、Ｓ１０１０に戻り、通知の受信を待つ。以上の処理により、文書管理サービス５０は、印刷処理を実行する。
【００４４】
［印刷サービス処理］
図１０は、印刷サービス６０が、文書管理サービス５０から印刷リクエストを受け付けたときの処理を示すフローチャートである。制御部６０２は、本実施形態では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部６０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。
【００４５】
制御部５０２は、Ｓ１１０１において、文書管理サービス５０から印刷リクエストを受信すると、Ｓ１１０２にて送信元アドレスおよびポートをＲＡＭ２３に記憶する。次に、制御部５０２は、Ｓ１１０３にて印刷処理を実行する。印刷処理については、一般的な処理であるため、ここでは説明を割愛する。続いて、Ｓ１１０４において、印刷ジョブのステータスに変更があったか否かを判定する。Ｓ１１０４にて印刷ジョブのステータスに変更があったと判定された場合、Ｓ１１０５にて制御部６０２は、該印刷ジョブレコードのジョブ識別ＩＤ９０３、ドキュメント名９０４、変更後のステータス９０５を更新する。
【００４６】
次に、Ｓ１１０６にて制御部６０２は、変更後のステータスを判定する。Ｓ１１０６において、ステータスが“印刷中”あるいは“キャンセル完了”あるいは“印刷済”と判定された場合（Ｓ１１０７、Ｓ１１０８、Ｓ１１０９）、Ｓ１１１０へ進む。Ｓ１１０６にて、ステータスが“印刷中”、“キャンセル完了”、“印刷済”のいずれでもないと判定された場合、Ｓ１１０４へ戻る。制御部６０２は、Ｓ１１１０において監視サービス４０より接続管理表４１が取得済みかを判定する。未取得である場合、制御部６０２は、Ｓ１１１１にて監視サービス４０より接続管理表４１を取得して接続管理表キャッシュ６０４に記憶する。次に、Ｓ１１１２において、制御部６０２は、Ｓ１１０２でＲＡＭ２３に記憶した送信元アドレスおよびポートに基づいて、接続管理表キャッシュ６０４のサービス情報７００から送信元文書管理サービス５０を特定する。次に、制御部６０２は、該文書管理サービス５０の外部通信接続アドレス７０３、外部通信接続ポート７０４、内部通信接続アドレス７０５、内部通信接続ポート７０６、ホスト識別ＩＤ７０７を取得する。また、制御部６０２は接続管理表キャッシュ６０４のサービス情報７００から自印刷サービス６０の内部通信接続アドレス７０５、内部通信接続ポート７０６、ホスト識別ＩＤ７０７を取得する。
【００４７】
次に、制御部６０２は、Ｓ１１１３にて自印刷サービス６０の内部通信接続アドレス７０５と該特定した文書管理サービス５０の内部通信接続アドレス７０５が登録されているか否かを判定する。制御部６０２は、内部通信接続アドレス７０５がともに登録されていた場合、Ｓ１１１４にて自印刷サービス６０のホスト識別ＩＤ７０７と特定文書管理サービス５０（通信先サービスモジュール）のホスト識別ＩＤ７０７とを比較し、一致するか否かを判定する。Ｓ１１１３にて内部通信接続アドレス７０５が登録されていないと判定された場合は、Ｓ１１１５へ進む。
【００４８】
Ｓ１１１４にて、ホスト識別ＩＤ７０７が一致しなかった場合、Ｓ１１１５にて制御部６０２は、送信元として自印刷サービス６０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。また、制御部６０２は、送信先として特定文書管理サービス５０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。Ｓ１１１４にて、ホスト識別ＩＤ７０７が一致した場合、Ｓ１１１６にて制御部６０２は、送信元として自印刷サービス６０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。また、制御部６０２は、送信先として該特定文書管理サービス５０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。
【００４９】
そして、Ｓ１１１５もしくはＳ１１１６の処理後、Ｓ１１１７において、制御部６０２はＳ１１０７、Ｓ１１０８、Ｓ１１０９において判定されたステータスを、特定文書管理サービス５０に対して通知する。以上の処理により、印刷サービス６０は、文書管理サービス５０から印刷リクエスト受信時の印刷処理を実行する。
【００５０】
以上により、仮想化環境における外部ネットワークと内部ネットワークの使い分けを実現できる。そして、大量印刷システムのような、各アプリケーション間で大量のデータのやりとりが必須となるシステムにおいても、通信の遅延や通信エラーを抑制することができる。また、外部ネットワークを使用する場合に比べて、処理速度を向上させることも可能となる。
【００５１】
＜第二の実施形態＞
第一の実施形態では、仮想マシンが稼動する物理ホストは固定であった。仮想化技術における重要な機能として、仮想マシンを停止させることなくサービスを継続したまま仮想マシンが稼動する物理ホストを移動させる機能がある。この機能を「ライブマイグレーション」と呼ぶ。ライブマイグレーションによりシステムの可用性を高めることが可能となる。サービス間の通信に内部ネットワークを使用している状況において、ライブマイグレーションによりある一方の仮想マシンがホストを移動した場合に、サービス間で通信ができなくなってしまう。本実施形態では、ライブマイグレーションが行われた場合でもサービス間で通信を行うことを可能とし、移動先物理ホスト上の仮想マシンとの通信には内部ネットワークを使用できるようにする。
【００５２】
［文書管理サービス処理］
図１２は、文書管理サービス５０がＷｅｂサーバ１０２における文書モニタアプリケーション３３からの印刷リクエストを受け付けたときの処理を示すフローチャートである。制御部５０２は、本実施形態では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部５０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。ここでの説明は第一の実施形態の図９とほぼ同様なため、異なる部分のみを以下、説明する。
【００５３】
Ｓ１４０８（図９のＳ１００８に相当）において、制御部５０２は、送信元として自文書管理サービス５０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。また、制御部５０２は、送信先として該印刷サービス６０の内部通信接続アドレス７０５、内部通信接続ポート７０６を使用するよう決定する。次に、制御部５０２は、該印刷サービス６０に対して接続する。
【００５４】
続いて、制御部５０２は、Ｓ１４１３において、該印刷サービス６０に対して接続に成功したか否かを判定する。接続に成功したと判定された場合、Ｓ１４０９へ進む。接続に失敗したと判定された場合、Ｓ１４１４において、制御部５０２は、送信元として自文書管理サービス５０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。また、制御部５０２は、送信先として該印刷サービス６０の外部通信接続アドレス７０３、外部通信接続ポート７０４を使用するよう決定する。次に、制御部５０２は、該印刷サービス６０に対して接続する。
【００５５】
次に、制御部５０２は、Ｓ１４１５において、Ｓ１４１４にて決定した情報を用いて、該印刷サービス６０に対して接続に成功したかどうかを判定する。接続に失敗したと判定された場合、制御部５０２は、Ｓ１４１６において、該印刷サービス６０が復旧するまで待機する。Ｓ１４１５において接続に失敗する場合、該印刷サービス６０が何らかの原因により停止していることを意味しており、フェイルオーバーが実行されることによりいずれ該印刷サービス６０が復旧する。例えば、監視サービス４０がフェイルオーバーを行うようにしてもよい。
【００５６】
Ｓ１４１５において、接続に成功したと判定された場合、Ｓ１４１７にて制御部５０２は、該印刷サービス６０が物理ホストを移動したことを該印刷サービス６０のサービスＩＤ７０１とともに監視サービス４０に通知する。そして、Ｓ１４０９（図９のＳ１００９に相当）へ進む。なお、本実施実施形態では、Ｓ１４１６において、該印刷サービス６０が復旧するまで待機するようにしたが、エラーとして処理を終了するようにしてもよい。また、このとき、Ｓ１４１４にて決定した外部接続情報をＳ１４０８の内部接続情報の状態に戻しても良い。
【００５７】
［監視サービス処理］
図１３は、監視サービス４０が、文書管理サービス５０から印刷サービス６０の物理ホスト移動通知を受け付けたときの処理を示すフローチャートである。制御部４０２は、本実施形態では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部４０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。
【００５８】
Ｓ１５０１において、制御部４０２は、印刷サービス６０の物理ホストが移動したことの通知を受け付ける。そして、制御部４０２は、Ｓ１５０２において、通知時に送られてきたサービスＩＤ７０１に基づいて、接続管理表４１のサービス情報７００から該印刷サービス６０を特定する。続いて、制御部４０２は、該印刷サービス６０の内部通信接続アドレス７０５、内部通信接続ポート７０６、ホスト識別ＩＤ７０７を消去して接続管理表４１を更新する。そして、制御部４０２は、Ｓ１５０３において、全サービスに対して、該印刷サービス６０のサービスＩＤ７０１とともに、該印刷サービス６０の内部通信接続アドレス７０５、ホスト識別ＩＤ７０７を通知し、接続情報の更新を指示する。
【００５９】
［印刷サービス処理］
図１４は、印刷サービス６０が、監視サービス４０から内部接続情報の更新指示を受け付けたときの処理を示すフローチャートである。制御部６０２は、本実施形態では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部６０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。
【００６０】
制御部６０２は、Ｓ１６０１において、内部接続情報の更新指示を受け付ける。そして、Ｓ１６０２にてサービスＩＤ７０１に基づいて自身に対する指示かどうかを判定する。Ｓ１６０２にて自身に対する指示で無いと判定された場合、Ｓ１６０１へ戻り、次の指示を受信するまで待つ。自身に対する指示であると判定された場合、制御部６０２は、Ｓ１６０３において、ネットワーク１００に接続されたルータ／スイッチングハブ等からＡＲＰテーブルを取得する。ほとんどのルータ／スイッチングハブ等のネットワーク機器は、ＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）を保持している。また、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を用いてネットワーク機器が保持する情報を取得できる。本実施形態では、ＡＲＰテーブルは標準ＭＩＢ（ＭＩＢ−２）の管理対象オブジェクトｉｐＮｅｔＴｏＭｅｄｉａＴａｂｌｅから取得する。図１１は、取得したＡＲＰテーブルの例である。図１１では、ポート１に対して２つのＩＰアドレスから接続されており、ポート２には１つのＩＰアドレスから接続されている。しかし、これに限定されるものではなく、他の仕様を用いても良い。また、ＡＲＰテーブルに限らず、ポート情報、ＭＡＣアドレス、ＩＰアドレス等の情報が対応付けられた対応情報が取得できれば、ネットワーク機器以外から取得しても構わない。これにより、対応情報取得を実現する。
【００６１】
Ｓ１６０４において、制御部６０２は、取得したＡＲＰテーブルから、自身の外部通信接続アドレス７０３を検索し、自身の外部通信接続アドレス７０３と同じポートに接続されているＩＰアドレスを取得する。Ｓ１６０５において、制御部６０２は、自身の外部通信接続アドレス７０３と同じポートに接続されているＩＰアドレスが存在するかを判定する。Ｓ１６０５にて、同じポートに接続されているＩＰアドレスが存在すると判定された場合、Ｓ１６０６へ進む。Ｓ１６０５にて同じポートに接続されているＩＰアドレスが存在しないと判定された場合、本処理フローを終了する。Ｓ１６０６において、制御部６０２は、接続管理表キャッシュ６０４から該ＩＰアドレスを有するサービスを特定し、該サービスの接続情報を取得する。
【００６２】
続いて、Ｓ１６０７において、制御部６０２は、Ｓ１６０６において取得した接続情報に内部通信接続アドレス７０５が登録されているか否かを判定する。Ｓ１６０７において、内部通信接続アドレス７０５が登録されていると判定された場合、制御部６０２は、Ｓ１６０８にて該内部通信接続アドレス７０５と同一セグメントのＩＰアドレスを算出し、自身の仮想ＮＩＣに対して該ＩＰアドレスを設定する。例えば、取得した内部通信接続アドレス７０５が「１９２．１６８．０．１００」であった場合、「１９２．１６８．０．１０１」を算出する。Ｓ１６０７にて、内部通信接続アドレス７０５が登録されていないと判定された場合、本処理フローを終了する。
【００６３】
続いて、Ｓ１６０９において、制御部６０２は、Ｓ１６０８にて算出したＩＰアドレスが他の仮想マシンで使用されているか否かを判定する。算出したＩＰアドレスが使用済みであると判定された場合、Ｓ１６０８へ戻り、別のＩＰアドレスを算出する。算出したＩＰアドレスが他の仮想マシンで使用されていないと判定された場合、制御部６０２は、Ｓ１６１０にて、該ＩＰアドレスおよびＳ１６０６で取得したホスト識別ＩＤ７０７を、自身の内部通信接続アドレス７０５およびホスト識別ＩＤ７０７として決定する。制御部６０２は、接続管理表キャッシュ６０４を更新する。Ｓ１６１０の後、制御部６０２は、Ｓ１６１１において自身の内部通信接続アドレス７０５および自身のホスト識別ＩＤ７０７を、自身のサービスＩＤ７０１とともに監視サービス４０に通知する。
【００６４】
［監視サービス処理］
図１５は、監視サービス４０が、印刷サービス６０から内部接続情報決定通知を受け付けたときの処理を示すフローチャートである。制御部４０２は、本実施形態では、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ等からなり、フローチャートで示す手順が制御部４０２のＲＡＭ、ＲＯＭ、ＨＤＤのいずれかの記憶手段に記憶され、ＣＰＵ２１により実行される。
【００６５】
制御部４０２は、Ｓ１７０１において、印刷サービス６０から内部接続情報決定通知を受け付ける。その後、制御部４０２は、Ｓ１７０２において、通知時に送られてきたサービスＩＤ７０１に基づいて、接続管理表４１のサービス情報７００から印刷サービス６０を特定する。そして、制御部４０２は、通知時に送られてきた内部通信接続アドレス７０５、ホスト識別ＩＤ７０７を使用して接続管理表４１を更新する。Ｓ１７０２の後、制御部４０２は、Ｓ１７０３において、全サービスに対して、該印刷サービス６０のサービスＩＤ７０１とともに、該印刷サービス６０を通知し、内部接続情報の更新を指示する。これにより、更新通知を実現する。
【００６６】
以上により、第一の実施形態の効果に加え、ライブマイグレーションによって仮想マシンが移動した場合でも、サービス間で通信を継続することが可能となる。そして、移動先の物理ホスト上で動作しているサービスと通信を行う場合には内部ネットワークを使用することが可能となる。また、ライブマイグレーションを使用してシステムの可用性を高めることを可能としつつ、可能な限り物理ＮＩＣのリソースを消費せずにサービス間の通信を行うことが可能である。
【００６７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005524606.tif 000002
【図２】
0005524606.tif 000003
【図３】
0005524606.tif 000004
【図４】
0005524606.tif 000005
【図５】
0005524606.tif 000006
【図６】
0005524606.tif 000007
【図７】
0005524606.tif 000008
【図８】
0005524606.tif 000009
【図９】
0005524606.tif 000010
【図１０】
0005524606.tif 000011
【図１１】
0005524606.tif 000012
【図１２】
0005524606.tif 000013
【図１３】
0005524606.tif 000014
【図１４】
0005524606.tif 000015
【図１５】
0005524606.tif 000016