(57)【特許請求の範囲】
【請求項１】
構成管理コンピューターとともに分散アプリケーションシステムを構成する複数の情報処理装置のそれぞれにおいて実行される分散アプリケーションプログラムであって、
前記複数の情報処理装置には、複数のアプリケーションが分散してインストールされ、
前記分散アプリケーションプログラムは、前記情報処理装置に、
当該情報処理装置にインストールされているアプリケーションの情報であるサーバー構成情報を前記構成管理コンピューターに送信するステップと、
前記構成管理コンピューターから、他の各前記情報処理装置のサーバー構成情報を受信するステップとを実行させ、
前記サーバー構成情報を前記構成管理コンピューターに送信するステップは、
当該情報処理装置において特定のアプリケーションが処理を実行中である場合または当該情報処理装置が特定の状態にある場合には、当該情報処理装置にインストールされているアプリケーションのうち他の情報処理装置の前記サーバー構成情報に含まれるアプリケーションを除外して前記サーバー構成情報を生成して送信し、
前記分散アプリケーションプログラムは、前記情報処理装置に、
他の情報処理装置の前記サーバー構成情報に基づいて、前記複数の情報処理装置のうち処理を分散させる情報処理装置を決定するステップをさらに実行させる、分散アプリケーションプログラム。
【請求項２】
前記特定のアプリケーションは、印刷装置の印刷カウンターの情報を管理するアプリケーションである、請求項１に記載の分散アプリケーションプログラム。
【請求項３】
前記特定の状態は、当該情報処理装置の処理負荷が一定以上となった状態である、請求項１または請求項２に記載の分散アプリケーションプログラム。
【請求項４】
前記サーバー構成情報を前記構成管理コンピューターに送信するステップは、
当該情報処理装置におけるアプリケーションの処理の開始に対応するタイミングで、前記サーバー構成情報を送信し、
前記構成管理コンピューターは、
少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１〜請求項３のいずれかに記載の分散アプリケーションプログラム。
【請求項５】
前記サーバー構成情報を前記構成管理コンピューターに送信するステップは、
当該情報処理装置におけるアプリケーションの処理の終了に対応するタイミングで、前記サーバー構成情報を送信し、
前記構成管理コンピューターは、
少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１〜請求項４のいずれかに記載の分散アプリケーションプログラム。
【請求項６】
前記サーバー構成情報を前記構成管理コンピューターに送信するステップは、
所定時間ごとに、前記サーバー構成情報を送信し、
前記構成管理コンピューターは、
少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１〜請求項５のいずれかに記載の分散アプリケーションプログラム。
【請求項７】
前記構成管理コンピューターは、前記所定時間以上前記サーバー構成情報を受信しない
前記情報処理装置を前記分散アプリケーションシステムから除外するための情報を各前記情報処理装置に送信する、請求項６に記載の分散アプリケーションプログラム。
【請求項８】
前記分散アプリケーションプログラムは、前記情報処理装置に、
アプリケーションのインストール時に、当該アプリケーションが前記特定のアプリケーションであることを特定するための情報を取得するステップをさらに実行させる、請求項１〜請求項７のいずれかに記載の分散アプリケーションプログラム。
【請求項９】
前記サーバー構成情報は、各前記情報処理装置のネットワーク上のアドレス、インストールされているアプリケーションを特定するための情報、および、当該情報が送信された時刻を含む、請求項１〜請求項８のいずれかに記載の分散アプリケーションプログラム。
【請求項１０】
ネットワーク上の複数の情報処理装置によって構成される分散アプリケーションシステムであって、
前記複数の情報処理装置には、複数のアプリケーションが分散してインストールされ、
各前記情報処理装置は、自機にインストールされているアプリケーションの情報であるサーバー構成情報を送信し、
各前記情報処理装置から通知されるサーバー構成情報を受信し、各前記情報処理装置に配信する構成管理コンピューターを備え、
各前記情報処理装置は、自機において特定のアプリケーションが処理を実行中である場合または自機が特定の状態にある場合は、自機にインストールされているアプリケーションのうち前記構成管理コンピューターから配信された他の情報処理装置の前記サーバー構成情報に含まれるアプリケーションを除外して前記サーバー構成情報を生成し、送信し、
各前記情報処理装置は、前記構成管理コンピューターから配信された前記サーバー構成情報に基づいて、前記複数の情報処理装置のうち処理を分散させる情報処理装置を決定する、分散アプリケーションシステム。
【請求項１１】
前記特定のアプリケーションは、印刷装置の印刷カウンターの情報を管理するアプリケーションである、請求項１０に記載の分散アプリケーションシステム。
【請求項１２】
前記特定の状態は、自機の処理負荷が一定以上となった状態である、請求項１０または請求項１１に記載の分散アプリケーションシステム。
【請求項１３】
各前記情報処理装置は、自機におけるアプリケーションの処理の開始に対応するタイミングで、前記サーバー構成情報を送信し、
前記構成管理コンピューターは、少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１０〜請求項１２のいずれかに記載の分散アプリケーションシステム。
【請求項１４】
各前記情報処理装置は、自機におけるアプリケーションの処理の終了に対応するタイミングで、前記サーバー構成情報を送信し、
前記構成管理コンピューターは、少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１０〜請求項１３のいずれかに記載の分散アプリケーションシステム。
【請求項１５】
各前記情報処理装置は、所定時間ごとに前記サーバー構成情報を送信し、
前記構成管理コンピューターは、少なくとも１の前記情報処理装置から前記サーバー構成情報を受信したことに応じて、各前記情報処理装置に前記サーバー構成情報を配信する、請求項１０〜請求項１４のいずれかに記載の分散アプリケーションシステム。
【請求項１６】
前記構成管理コンピューターは、前記所定時間以上前記サーバー構成情報を受信しない前記情報処理装置を前記分散アプリケーションシステムから除外するための情報を各前記情報処理装置に送信する、請求項１５に記載の分散アプリケーションシステム。
【請求項１７】
前記情報処理装置は、アプリケーションのインストール時に、当該アプリケーションが前記特定のアプリケーションであることを特定するための情報を取得する、請求項１０〜請求項１６のいずれかに記載の分散アプリケーションシステム。
【請求項１８】
前記サーバー構成情報は、各前記情報処理装置のネットワーク上のアドレス、インストールされているアプリケーションを特定するための情報、および、当該情報が送信された時刻を含む、請求項１０〜請求項１７のいずれかに記載の分散アプリケーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散アプリケーションシステムに関し、特に、ネットワーク上の複数のサーバーに分散される複数のアプリケーションで構成される分散アプリケーションプログラムおよび分散アプリケーションシステムに関する。
【背景技術】
【０００２】
従来から、ネットワーク上の複数のサーバーに複数のアプリケーションを分散して配置することによって構成されるアプリケーションシステムについて、従来から種々の技術が開示されてきている。
【０００３】
たとえば特許文献１（特開２００３−２８１００７号公報）に開示されたＷｅｂシステムでは、動的構成制御装置が、ルールに基づいてサーバーにサービスを振り向け、各サーバーの稼動状況を監視し、そして、サービス構成を判定する。なお、当該システムにおけるサービス構成の割り当てでは、サーバーにサービス資源が供給されると、当該サーバーがサービス構成を変更してサービスが起動され、これに続いて、ルールが変更されて、システム構成が変更される。なお、サービス構成の縮退が行なわれる場合には、サーバーへの指示に応じて、サーバーがサービスを解放する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８１００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記したようなシステムでは、動的構成制御装置が監視目的で通信する情報処理装置（サーバー）の数が多くなった場合、動的構成制御装置の処理量が膨大になるため、当該装置のパフォーマンスが低下し、ひいてはシステム全体のパフォーマンスが低下するおそれがあった。
【０００６】
本発明は係る実情に鑑み考え出されたものであり、その目的は、システムを構成するサーバーの数が増加した場合であってもパフォーマンスが低下しない分散アプリケーションシステムを提供することである。
【課題を解決するための手段】
【０００７】
本発明に従った分散アプリケーションプログラムは、構成管理コンピューターとともに分散アプリケーションシステムを構成する複数の情報処理装置のそれぞれにおいて実行される分散アプリケーションプログラムであって、複数の情報処理装置には、複数のアプリケーションが分散してインストールされ、分散アプリケーションプログラムは、情報処理装置に、当該情報処理装置にインストールされているアプリケーションの情報であるサーバー構成情報を構成管理コンピューターに送信するステップと、構成管理コンピューターから、他の各情報処理装置のサーバー構成情報を受信するステップとを実行させ、サーバー構成情報を構成管理コンピューターに送信するステップは、当該情報処理装置において特定のアプリケーションが処理を実行中である場合または当該情報処理装置が特定の状態にある場合には、当該情報処理装置にインストールされているアプリケーションのうち他の情報処理装置のサーバー構成情報に含まれるアプリケーションを除外してサーバー構成情報を生成して送信し、分散アプリケーションプログラムは、情報処理装置に、他の情報処理装置のサーバー構成情報に基づいて、複数の情報処理装置のうち処理を分散させる情報処理装置を決定するステップをさらに実行させる。
【０００８】
好ましくは、特定のアプリケーションは、印刷装置の印刷カウンターの情報を管理するアプリケーションである。
【０００９】
好ましくは、特定の状態は、当該情報処理装置の処理負荷が一定以上となった状態である。
【００１０】
好ましくは、サーバー構成情報を構成管理コンピューターに送信するステップは、当該情報処理装置におけるアプリケーションの処理の開始に対応するタイミングで、サーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００１１】
好ましくは、サーバー構成情報を構成管理コンピューターに送信するステップは、当該情報処理装置におけるアプリケーションの処理の終了に対応するタイミングで、サーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００１２】
好ましくは、サーバー構成情報を構成管理コンピューターに送信するステップは、所定時間ごとに、サーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００１３】
好ましくは、構成管理コンピューターは、所定時間以上サーバー構成情報を受信しない情報処理装置を分散アプリケーションシステムから除外するための情報を各情報処理装置に送信する。
【００１４】
好ましくは、分散アプリケーションプログラムは、情報処理装置に、アプリケーションのインストール時に、当該アプリケーションが特定のアプリケーションであることを特定するための情報を取得するステップをさらに実行させる。
【００１５】
好ましくは、サーバー構成情報は、各情報処理装置のネットワーク上のアドレス、インストールされているアプリケーションを特定するための情報、および、当該情報が送信された時刻を含む。
【００１６】
本発明に従った分散アプリケーションシステムは、ネットワーク上の複数の情報処理装置によって構成される分散アプリケーションシステムであって、複数の情報処理装置には、複数のアプリケーションが分散してインストールされ、各情報処理装置は、自機にインストールされているアプリケーションの情報であるサーバー構成情報を送信し、各情報処理装置から通知されるサーバー構成情報を受信し、各情報処理装置に配信する構成管理コンピューターを備え、各情報処理装置は、自機において特定のアプリケーションが処理を実行中である場合または自機が特定の状態にある場合は、自機にインストールされているアプリケーションのうち構成管理コンピューターから配信された他の情報処理装置のサーバー構成情報に含まれるアプリケーションを除外してサーバー構成情報を生成し、送信し、各情報処理装置は、構成管理コンピューターから配信されたサーバー構成情報に基づいて、複数の情報処理装置のうち処理を分散させる情報処理装置を決定する。
【００１７】
好ましくは、特定のアプリケーションは、印刷装置の印刷カウンターの情報を管理するアプリケーションである。
【００１８】
好ましくは、特定の状態は、自機の処理負荷が一定以上となった状態である。
好ましくは、各情報処理装置は、自機におけるアプリケーションの処理の開始に対応するタイミングで、サーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００１９】
好ましくは、各情報処理装置は、自機におけるアプリケーションの処理の終了に対応するタイミングで、サーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００２０】
好ましくは、各情報処理装置は、所定時間ごとにサーバー構成情報を送信し、構成管理コンピューターは、少なくとも１の情報処理装置からサーバー構成情報を受信したことに応じて、各情報処理装置にサーバー構成情報を配信する。
【００２１】
好ましくは、構成管理コンピューターは、所定時間以上サーバー構成情報を受信しない情報処理装置を分散アプリケーションシステムから除外するための情報を各情報処理装置に送信する。
【００２２】
好ましくは、情報処理装置は、アプリケーションのインストール時に、当該アプリケーションが特定のアプリケーションであることを特定するための情報を取得する。
【００２３】
好ましくは、サーバー構成情報は、各情報処理装置のネットワーク上のアドレス、インストールされているアプリケーションを特定するための情報、および、当該情報が送信された時刻を含む。
【発明の効果】
【００２４】
本発明によれば、分散アプリケーションシステムを構成する各情報処理装置は、サーバー構成情報を送信する。構成管理コンピューターは、各情報処理装置から受信したサーバー構成情報を、各情報処理装置に配信する。なお、当該サーバー構成情報では、当該情報処理装置において特定のアプリケーションが処理を実行中である場合または自機が特定の状態にある場合には、他の情報処理装置にインストールされているアプリケーションの情報が除外される。そして、各情報処理装置は、構成管理コンピューターから配信されたサーバー構成情報に基づいて、分散アプリケーションシステムを構成する複数の情報処理装置のうち処理を分散させる情報処理装置を決定する。
【００２５】
これにより、システムにおいて各情報処理装置が、処理を分散させる情報処理装置を決定するため、特許文献１の動的構成制御装置のように、システムにおいて、各情報処理装置を管理し、処理の分散を調整するような装置が不要となる。これにより、システムを構成する情報処理装置の数が増加した場合であっても、このような装置のパフォーマンスの低下によってシステム全体のパフォーマンスが低下することを回避できる。
【００２６】
なお、構成管理コンピューターが実行する処理は、各情報処理装置から送信されるサーバー構成情報の受信、および、当該サーバー構成情報の各情報処理装置への配信であって、特許文献１の動的構成制御装置において実行されていた処理の分散のような複雑な処理ではない。したがって、システムを構成する情報処理装置の数が増大しても、構成管理サーバーのパフォーマンスの低下によるシステムのパフォーマンスの低下は想定されない。
【００２７】
また、本発明の分散アプリケーションシステムでは、複数の情報処理装置においてあるアプリケーションが重複してインストールされている場合、特定のアプリケーションの処理の実行中でなくかつ特定の状態にない情報処理装置が優先して、当該アプリケーションの処理を割り当てられる。これにより、システムのパフォーマンスを向上させることができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態に係る分散アプリケーションシステムの構成の概要を模式的に示す図である。
【図２】構成管理サーバーのハードウェア構成の一例を示す図である。
【図３】アプリケーションサーバーのハードウェア構成の一例を示す図である。
【図４】アプリケーションサーバーの構成管理サーバーへの構成情報の送信を説明するための図である。
【図５】構成管理サーバーによる、構成情報の受信に応じた、アプリケーションサーバーへの構成情報の送信を説明するための図である。
【図６】分散アプリケーションシステムの構成の第１の具体例を示す図である。
【図７】分散アプリケーションシステムの構成の第２の具体例を示す図である。
【図８】アプリケーションサーバーでの構成情報の生成における一部のアプリケーションの除外を説明するための図である。
【図９】アプリケーションサーバーでの構成情報の生成における一部のアプリケーションの除外を説明するための図である。
【図１０】アプリケーションサーバーでの構成情報の生成における一部のアプリケーションの除外を説明するための図である。
【図１１】アプリケーションサーバーでの構成情報の生成における一部のアプリケーションの除外を説明するための図である。
【図１２】アプリケーションサーバーでの構成情報の生成における一部のアプリケーションの除外を説明するための図である。
【図１３】プレゼンテーション層からビジネスロジック層への処理の指示の一態様を説明するための図である。
【図１４】アプリケーションサーバーから所定時間構成情報の受信がなかったときに構成管理サーバーから送信される構成情報の内容を説明するための図である。
【発明を実施するための形態】
【００２９】
以下、本発明の一実施の形態に係る分散アプリケーションシステムについて、図面を参照して説明する。なお、各図において、同様の作用および機能を奏する構成要素については、同じ符号を付し、その説明は繰返さない。
【００３０】
＜システムの概要＞
図１は、本発明の一実施の形態に係る分散アプリケーションシステムの構成の概要を模式的に示す図である。
【００３１】
図１を参照して、分散アプリケーションシステム１００は、サービスを実現する複数のアプリケーションサーバー１Ａ〜１Ｃを含む。また、分散アプリケーションシステム１００は、これらのサーバーからそれぞれの構成情報を受信し、また、各サーバーに配信する構成管理サーバー９００を含む。本明細書では、アプリケーションサーバー１を、構成管理サーバー９００と区別して扱い、また、便宜上単に「サーバー１Ａ」等とも記述する場合がある。なお、本明細書では、アプリケーションサーバー１は、サーバー１Ａ〜１Ｊを総称する名称として使用される場合も有り得る。また、本明細書では、「サーバー」という文言は、サーバーとして機能するコンピューター（情報処理装置）等のハードウェア資源を意味する。
【００３２】
本明細書において、構成情報とは、各アプリケーションサーバーが自機にインストールされているアプリケーションの種類を分散アプリケーションシステム１００を構成する他のアプリケーションサーバーに通知するための情報であり、少なくとも、各アプリケーションサーバーについての、ＩＰ（Internet  Protocol）アドレス等のネットワーク上のアドレスを特定する情報、インストールされているアプリケーションを特定する情報、および、各アプリケーションサーバーが当該構成情報を構成管理サーバー９００に送信した時刻とを含む。
【００３３】
ロードバランサー（以下、適宜「ＬＢ」と略す）５００は、分散アプリケーションシステム１００の外部からは、仮想的な１台のサーバーに見えるように構成されている。そして、クライアントＰＣ（パーソナルコンピューター）１０００は、当該仮想的なサーバーに要求を送る。これに応じて、ロードバランサー５００は、上記複数のアプリケーションサーバーのうち適切なものを選んで、クライアントからの要求をそのサーバーに転送する。
【００３４】
構成管理サーバー９００は、分散アプリケーションシステム１００に含まれる複数のアプリケーションサーバーのうち、それぞれから受信した構成情報を、それ以外のすべてのアプリケーションサーバーに送信する。
【００３５】
＜構成管理サーバーのハードウェア構成＞
図２は、構成管理サーバー９００のハードウェア構成の一例を示す図である。
【００３６】
図２を参照して、構成管理サーバー９００は、構成管理サーバー９００全体を制御するための演算装置であるＣＰＵ（Central  Processing  Unit）９１０と、ＣＰＵ９１０で実行されるプログラムなどを記憶するためのＲＯＭ（Read  Only  Memory）９１１と、ＣＰＵ９１０でプログラムを実行する際の作業領域として機能するためのＲＡＭ（Random  Access  Memory）９１２と、液晶ディスプレイ等の表示装置によって実現される表示部９１４と、構成管理サーバー９００に対する操作入力を受付けるための操作部９１５と、ＣＰＵ９１０によって実行されるプログラム等を保存するための記憶装置９１６と、記憶媒体にアクセスしてそこからファイルを読み出したり書き込んだりするためのメディアコントローラー９１７と、ＬＡＮ（Local  Area  Network）等のネットワークを介した通信の制御のためにモデム等により構成される通信装置９１８とを含む。
【００３７】
操作部９１５は、たとえばキーボードやマウスなどの入力装置によって実現される。なお、操作部９１５は、タッチセンサーによって実現され、表示部９１４と一体的に、タッチパネルとして実現される場合も有り得る。
【００３８】
本実施の形態では、たとえば、ＣＰＵ９１０が適切なプログラムを実行することにより、本明細書に記載された構成管理サーバー９００の機能の少なくとも一部が実現される。
【００３９】
ＣＰＵ９１０が実行するプログラムは、上記記憶媒体に記憶されていても良い。記憶媒体としては、ＣＤ−ＲＯＭ（Compact  Disc  -  Read  Only  Memory）、ＤＶＤ−ＲＯＭ（Digital  Versatile  Disk  -  Read  Only  Memory）、ＵＳＢ（Universal  Serial  Bus）メモリー、メモリーカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリーカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。また、ＣＰＵ９１０によって実行されるプログラムは、ネットワークを介して記憶装置９１６にインストールされる場合も有り得る。
【００４０】
＜アプリケーションサーバーのハードウェア構成＞
図３は、アプリケーションサーバー（図１のサーバー１Ａ等）のハードウェア構成の一例を示す図である。
【００４１】
本実施の形態では、アプリケーションサーバーの一例として、コンピューターを挙げて説明を行なう。
【００４２】
図３を参照して、アプリケーションサーバー１は、当該アプリケーションサーバー１の動作を全体的に制御するＣＰＵ１０と、ＣＰＵ１０のワークエリアとなるＲＡＭ１２を含む。
【００４３】
アプリケーションサーバー１は、さらに、ＨＤＤ（Hard  Disc  Drive）２０を含む。ＨＤＤ２０には、アプリケーションサーバー１の機能についての設定内容等の種々のデータ、および、ＣＰＵ１０が実行するプログラムが記憶される。
【００４４】
アプリケーションサーバー１は、さらに、公衆電話回線やＬＡＮ等の通信回線を介して外部機器と画像データ等のデータの送受信を行なう通信装置１８を備える。通信装置１８は、公衆電話回線を介してファクシミリデータの送受信を行なうほか、ＬＡＮやインターネット等のネットワークを介し当該ネットワークに接続された外部機器との間で電子メールシステムやファイル転送システムを利用したデータの送受信を行なう。アプリケーションサーバー１が行なう通信は、有線でも良いし、無線であっても良い。
【００４５】
アプリケーションサーバー１は、また、プログラム等の種々の情報を記憶するＲＯＭ１１、アプリケーションサーバー１に対して情報を入力するためのキーボード等からなる操作部１５、記憶媒体にアクセスしてそこからファイルを読み出したり書き込んだりするためのメディアコントローラー１７、および、情報を表示する液晶ディスプレイ等からなる表示部１４を含む。アプリケーションサーバー１において、表示部１４と操作部１５は、一体的に構成されたタッチパネルとして実現されても良い。
【００４６】
ＣＰＵ１０が実行するプログラムは、メディアコントローラー１７を介してＣＰＵ１０と通信可能な記憶媒体に記憶されていても良い。記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー、メモリーカード、ＦＤ、ハードディスク、磁気テープ、カセットテープ、ＭＯ、ＭＤ、ＩＣカード（メモリーカードを除く）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの、不揮発的にプログラムを格納する媒体が挙げられる。また、ＣＰＵ１０によって実行されるプログラムは、ネットワークを介してＨＤＤ２０にインストールされる場合や、ＣＰＵ１０がネットワークを介して通信可能な記憶装置に格納されている場合も有り得る。
【００４７】
＜構成情報の送受信＞
上記したように、本実施の形態の分散アプリケーションシステム１００では、各アプリケーションサーバー１から構成管理サーバー９００に構成情報が送信される。構成管理サーバー９００は、各アプリケーションサーバー１から受信した構成情報を、他のすべてのアプリケーションサーバー１に送信する。
【００４８】
図４および図５に、分散アプリケーションシステム１００における構成情報の送受信の具体例を示す。
【００４９】
図４は、アプリケーションサーバー１Ａ〜１Ｃのうち、アプリケーションサーバー１Ｃが構成管理サーバー９００に自機の構成情報を送信した状態を示している。アプリケーションサーバー１Ｃが送信した構成情報６０１は、「サーバーＣ」「１０．１２．１．３」「アプリケーションＡ」「２０１１１０１１；１０：５１：２７」という４つの情報を含む。「サーバーＣ」は、自機、つまりアプリケーションサーバー１Ｃを特定する情報である。「１０．１２．１．３」は、アプリケーションサーバー１Ｃの、複数のアプリケーションサーバー１が属するネットワーク（たとえば、ＬＡＮ）におけるＩＰアドレスである。「アプリケーションＡ」は、アプリケーションサーバー１Ｃにインストールされたアプリケーションを特定する情報である。「２０１１１０１１；１０：５１：２７」は、アプリケーションサーバー１Ｃが構成管理サーバー９００に構成情報６０１を送信した時刻を示す情報である。なお、「２０１１１０１１；１０：５１：２７」は、２０１１年１０月１１日１０時５１分２７秒を意味する。
【００５０】
図５は、構成管理サーバー９００が、アプリケーションサーバー１Ｃからの構成情報６０１の受信に応じて、他のアプリケーションサーバー１に構成情報を送信（配信）する状態を示す図である。
【００５１】
図５では、構成管理サーバー９００は、アプリケーションサーバー１Ｃから受信した構成情報６０１に含まれる情報を少なくとも含む構成情報６０２を、分散アプリケーションシステム１００に含まれる他のすべてのアプリケーションサーバー１（アプリケーションサーバー１Ａ、１Ｂ）に送信する。これにより、アプリケーションサーバー１Ｃの構成情報が、アプリケーションサーバー１Ａおよびアプリケーションサーバー１Ｂにおいて共有される。
【００５２】
なお、構成管理サーバー９００は、ブロードキャストで、分散アプリケーションシステム１００に含まれるアプリケーションサーバー１に向けて構成情報６０２を配信しても良い。
【００５３】
本実施の形態では、構成管理サーバー９００が、１台のアプリケーションサーバー１から受信した構成情報を他のすべてのアプリケーションサーバー１に送信することにより、分散アプリケーションシステム１００では、すべてのアプリケーションサーバー１において、他のすべてのアプリケーションサーバー１にインストールされているアプリケーションの種類を特定する情報が格納される。
【００５４】
＜分散アプリケーションシステムの構成の具体例（１）＞
図６は、分散アプリケーションシステム１００の構成の第１の具体例を示す図である。図６には、階層型分散方式の分散アプリケーションシステムが示されている。
【００５５】
図６の分散アプリケーションシステム１００では、各アプリケーションは、プレゼンテーション層、ビジネスロジック層、データアクセス層として、それぞれが各サーバーに分散されてインストールされる。
【００５６】
図６では、アプリケーションサーバー１Ａ，１Ｂ，１Ｃがプレゼンテーション層を構成し、アプリケーションサーバー１Ｄ，１Ｅ，１Ｆがビジネスロジック層を構成し、アプリケーションサーバー１Ｇ，１Ｈ，１Ｊがデータアクセス層を構成する。
【００５７】
プレゼンテーション層は、ユーザーインターフェースを処理する。ビジネスロジック層は、実際の業務処理を実行する。データアクセス層は、データベース処理を実行する。
【００５８】
プレゼンテーション層のアプリケーションサーバー１には、基本的に、全てのアプリケーション（図６の例では、アプリケーション１〜５）のプレゼンテーション層がインストールされる。
【００５９】
一方、ビジネスロジック層とデータアクセス層のアプリケーションサーバー１にインストールされるアプリケーションの配置は、分散アプリケーションシステム１００を構成するサーバーの数や各サーバーの性能に応じて設定される。ただし、ビジネスロジック層とデータアクセス層のアプリケーションサーバー１には、ブレゼンテーション層のアプリケーションサーバー１にインストールされているアプリケーションの実行環境の最低１つは、インストールされる。図６の例では、ビジネスロジック層とデータアクセス層のすべてのアプリケーションサーバー１に、すべてのアプリケーションがインストールされている。
【００６０】
各アプリケーションサーバー１には、分散アプリケーションシステム１００において分散してインストールされる各アプリケーションを統制するフラットフォームアプリケーションが事前にインストールされる。このプラットフォームアプリケーションが、各アプリケーションの構成情報等を処理する。
【００６１】
＜分散アプリケーションシステムの構成の具体例（２）＞
図７は、分散アプリケーションシステム１００の構成の第２の具体例を示す図である。図７には、階層型分散方式の分散アプリケーションシステムが示されている。
【００６２】
図７の分散アプリケーションシステム１００では、アプリケーションサーバー１Ａ，１Ｂがプレゼンテーション層を構成し、アプリケーションサーバー１Ｄ，１Ｅがビジネスロジック層を構成し、アプリケーションサーバー１Ｇ，１Ｈがデータアクセス層を構成する。
【００６３】
アプリケーションサーバー１Ａ，１Ｂには、アプリケーション１〜５のプレゼンテーション層がインストールされている。
【００６４】
アプリケーションサーバー１Ｄには、アプリケーション１，２，４，５のビジネスロジック層がインストールされている。アプリケーションサーバー１Ｅには、アプリケーション３，５のビジネスロジック層がインストールされている。
【００６５】
アプリケーションサーバー１Ｇには、アプリケーション１〜３のデータアクセス層がインストールされている。アプリケーションサーバー１Ｈには、アプリケーション４，５のデータアクセス層がインストールされている。
【００６６】
プレゼンテーション層のアプリケーションサーバー１は、自機が実行したアプリケーションのビジネスロジック層の処理を実行させるアプリケーションサーバー１を、当該アプリケーションのビジネスロジック層をインストールされたアプリケーションサーバー１の中から選択する。
【００６７】
たとえば、図８に示すように、ユーザーＡのクライアントＰＣ１０００ＡとユーザーＢのクライアントＰＣ１０００Ｂから要求を受け得る分散アプリケーションシステム１００において、クライアントＰＣ１０００Ａから処理［１］の要求があった場合について説明する。処理［１］の要求に応じて、ＬＢ５００は、アプリケーションサーバー１Ａにアプリケーション３を実行させる。プレゼンテーション層のアプリケーションサーバー１Ａは、ビジネスロジック層のアプリケーションサーバー１のうち、アプリケーション３がインストールされているアプリケーションサーバー１Ｅに、アプリケーション３の実行を指示する。
【００６８】
ここで、アプリケーション３のビジネスロジック層の処理が、比較重いまたは一定のパフォーマンスを維持された環境で実行されることを必要とされる等、当該アプリケーションを実行中のアプリケーションサーバー１では他のアプリケーションが並行して実行されることを回避することが好ましいとされる場合がある。
【００６９】
このような状態で、図９に示すように、クライアントＰＣ１０００Ｂからの処理［２］の要求に応じてＬＢ５００がアプリケーションサーバー１Ｂにアプリケーション５を実行させた場合、当該アプリケーション５のビジネスロジック層の処理は、アプリケーションサーバー１Ｅではなくアプリケーションサーバー１Ｄに実行させることが好ましい。ただし、アプリケーションサーバー１Ｅが、構成情報として、自機にアプリケーション５がインストールされていることを構成管理サーバー９００に通知した場合、アプリケーションサーバー１Ｂは、アプリケーションサーバー１Ｅに、処理［２］のビジネスロジック層の処理を指示する場合、つまり、アプリケーション３の実行を指示する場合が有り得る。
【００７０】
そこで、本実施の形態の分散アプリケーションシステム１００では、アプリケーションサーバー１は、他のアプリケーションと同時に実行することが好ましくないアプリケーションの実行中には、同じ層の他のアプリケーションサーバー１にインストールされていることを示す構成情報を取得したアプリケーションを除外して構成情報を生成する。このように、インストールされているアプリケーションの一部が除外された構成情報の生成について、図１０〜図１２を参照して説明する。
【００７１】
まず、図８および図９を参照して説明した状況では、アプリケーションサーバー１Ｅには、事前に、アプリケーションサーバー１Ｄの構成情報が送信されている。具体的には、図１０に示されるように、アプリケーションサーバー１Ｄから構成管理サーバー９００に、アプリケーションサーバー１Ｄの構成情報６０３が送信される。これに応じて、図１１に示されるように、構成管理サーバー９００から、アプリケーションサーバー１Ｅを含むすべてのアプリケーションサーバー１に、少なくとも構成情報６０３に含まれる情報を含む構成情報６０４が送信される。これにより、アプリケーションサーバー１Ｅには、アプリケーション５がアプリケーションサーバー１Ｄにもインストールされていることを示す情報が格納される。
【００７２】
そこで、アプリケーション３を実行中のアプリケーションサーバー１Ｅは、自機にインストールされているアプリケーション３とアプリケーション５のうち、アプリケーション５以外を、つまり、アプリケーション３のみを、自機にインストールされていることを示す構成情報を生成し、図１２に示されるように、当該構成情報（構成情報６０５）を構成管理サーバー９００に送信する。これに応じて、各アプリケーションサーバー１に、構成情報６０５に含まれる情報を含む構成情報が送信される。これにより、アプリケーションサーバー１Ｅ以外のアプリケーションサーバー１では、アプリケーションサーバー１Ｅにはアプリケーション３のみがインストールされていることを示す情報が格納される。
【００７３】
なお、アプリケーションサーバー１Ｂにも図１１の構成情報６０４が送信されている。このため、アプリケーションサーバー１Ｂには、アプリケーションサーバー１Ｅにはアプリケーション３のみがインストールされていることを示す情報と、アプリケーションサーバー１Ｄにはアプリケーション１，２，４，５がインストールされていることを示す情報とが格納される。
【００７４】
したがって、要求［２］に応じてアプリケーション５のプレゼンテーション層の処理を実行するアプリケーションサーバー１Ｂは、図１３に示されるように、アプリケーションサーバー１Ｅではなくアプリケーションサーバー１Ｄに、アプリケーション５のビジネス層の処理の実行を指示する。
【００７５】
＜変形例等＞
以上説明した本実施の形態において、アプリケーション３のビジネス層は、他のアプリケーションとの重被して起動を回避させることが好ましいとされるアプリケーション（特定のアプリケーション）の一例である。アプリケーションサーバー１Ｅは、当該アプリケーションが特定のアプリケーションであることを示す情報を、たとえば、当該アプリケーションが自機にインストールされるときに取得する。つまり、アプリケーションを提供する側は、各アプリケーションのプログラムを、当該アプリケーションが上記した「特定のアプリケーション」であるか否かの情報とともに提供する。これにより、各アプリケーションサーバー１のＣＰＵ１０は、アプリケーションのインストール時に、当該アプリケーションが特定のアプリケーションであることを特定する情報を取得する。
【００７６】
なお、アプリケーションを提供する者がネットワーク上に公開されているホームページ等において特定のアプリケーションを特定する情報を提供し、各アプリケーションサーバー１のＣＰＵ１０が、当該ホームページにアクセスして、上記した情報を取得しても良い。
【００７７】
このような「特定のアプリケーション」の一例としては、アプリケーションサーバー１が通信可能な複合機等の印刷装置のカウンター情報を集積管理するアプリケーションが挙げられる。
【００７８】
アプリケーションサーバー１が接続される印刷装置では、当該印刷装置において実行された印刷処理についての履歴情報（以下、適宜「印刷履歴情報」という）が蓄積される。そして、アプリケーションサーバー１と通信可能な印刷装置は、たとえば一定時間ごとに、アプリケーションサーバー１に、自機の印刷履歴情報を送信する。つまり、アプリケーションサーバー１が複数の印刷装置と通信可能な場合、アプリケーションサーバー１には、一定時間ごとに、複数の印刷装置から、各装置の印刷履歴情報が送信される場合が有り得る。アプリケーションサーバー１では、ＣＰＵ１０は、各装置の印刷履歴情報を適宜処理することにより、各装置での印刷枚数等の情報を取得する。
【００７９】
上記の「カウンター情報を集積管理するアプリケーション」は、ＣＰＵ１０に、上述の各印刷装置の印刷履歴情報からの印刷枚数等の取得を含む処理を実行させるアプリケーションである。この処理に関し、各印刷装置からアプリケーションサーバー１への印刷履歴情報の送信は、ＣＰＵ１０から各印刷装置への要求に応じてなされても良いし、各印刷装置がこのような要求無しで一定時間ごとにアプリケーションサーバー１に行なわれても良い。
【００８０】
このような処理では、ＣＰＵ１０は、一定時間ごとに、複数台（たとえば、数十台程度。場合によっては、数千台、数万台の場合も有り得る）の印刷履歴情報を処理する。したがって、このような処理を含むアプリケーションが実行されている場合、当該アプリケーションサーバー１において処理負荷が増大すると考えられる。そして、本実施の形態では、アプリケーションサーバー１において、このような処理負荷が大きいアプリケーション実行中には、当該アプリケーションサーバー１において極力他のアプリケーションが重複して起動されないようにすることができる。
【００８１】
また、同じ層のアプリケーションサーバー１にもインストールされているアプリケーションを構成情報の生成の際に除外するのは、上記した特定のアプリケーションが起動しているときだけでなく、アプリケーションサーバー１の処理負荷が所定以上になったときであっても良い。アプリケーションサーバー１では、ＣＰＵ１０のパフォーマンス（使用率）が所定値以上となったことを条件として、インストールされているアプリケーションが一部除外された構成情報が生成され、構成管理サーバー９００に送信されても良い。
【００８２】
また、上記のように取得された、特定のアプリケーションについての情報は、対応するアプリケーションと関連付けられて、たとえばＨＤＤ２０に格納される。
【００８３】
アプリケーションサーバー１ＥのＣＰＵ１０は、自機においてアプリケーションが起動された場合、ＨＤＤ２０に格納された情報をチェックすることにより、起動されたアプリケーションが上記した特定のアプリケーションであるか否かを判断する。そして、特定のアプリケーションである場合には、自機にインストールされているアプリケーションの中で、同じ階層にある他のアプリケーションサーバー１の少なくとも１台にインストールされているアプリケーションを除外して構成情報を生成し、構成管理サーバー９００に送信する。
【００８４】
アプリケーションサーバー１において構成情報が生成および送信されるタイミングとしては、たとえば、所定時間ごとが挙げられる。
【００８５】
なお、所定時間ごとの生成および送信に加えて、または、所定時間ごとの生成および送信に代えて、アプリケーションの起動時および／または終了時とされても良い。
【００８６】
この場合、構成管理サーバー９００は、所定時間以上構成情報を受信しないアプリケーションサーバー１がある場合、その旨を、他のアプリケーションサーバー１に通知しても良い。具体的には、たとえば、構成管理サーバー９００は、アプリケーションサーバー１Ｄから所定時間以上継続して当該アプリケーションサーバー１Ｄの構成情報を受信しない場合には、図１４に示されるように、各アプリケーションサーバー１Ｄに対して、構成情報６０６を送信しても良い。構成情報６０６は、構成情報の受信がなかったアプリケーションサーバー１を特定する情報（構成情報６０６中の「サーバー１Ｄ」）、当該アプリケーションサーバー１のＩＰアドレス（構成情報６０６中の「１０．１２．１．３」）、所定時間以上構成情報の受信がなかったことを示す情報（構成情報６０６中の「通知なし」）、および、構成管理サーバー９００が当該構成情報６０６を送信した時刻（構成情報６０６中の「２０１１１０１１；１１：０１：０１」）を含む。
【００８７】
構成情報６０６のような構成情報を受信した各アプリケーションサーバー１では、構成情報６０６に記載されたアプリケーションサーバー１についての情報が更新される。具体的には、構成情報６０６に記載されたアプリケーションサーバー１にはいずれのアプリケーションもインストールされていないように、または、構成情報６０６に記載されたアプリケーションサーバー１を分散アプリケーションシステム１００から除外するように、各アプリケーションサーバー１において格納されている情報が更新される。これにより、各アプリケーションサーバー１では、構成情報６０６に記載されたアプリケーションサーバー１が、処理実行の指示対象から除外される。
【００８８】
また、本実施の形態において、階層型分散方式の分散アプリケーションシステムにおいて、最上位層であるプレゼンテーション層のアプリケーションサーバー１は、クライアントＰＣから処理の要求があったときに、構成管理サーバー９００に、その次の層であるビジネスロジック層のアプリケーションサーバー１に対して構成情報の送信を依頼させても良い。構成管理サーバー９００からの依頼に応じて、ビジネスロジック層の各アプリケーションサーバー１は、自機の最新状態に基づいて構成情報を生成し、構成管理サーバー９００に送信する。これに応じて、構成管理サーバー９００は、受信した各アプリケーションサーバー１の構成情報を、プレゼンテーション層を含めたすべてのアプリケーションサーバー１に、または、構成管理サーバー９００に上記依頼をさせたアプリケーションサーバー１に、送信する。これにより、クライアントＰＣから処理の依頼を受けたプレゼンテーション層のアプリケーションサーバー１は、最新のビジネスロジック層の状態に基づいて、ビジネスロジック層の処理の実行を指示することができる。
【００８９】
今回開示された各実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【００９０】
１，１Ａ〜１Ｈ，１Ｊ  アプリケーションサーバー、１０，９１０  ＣＰＵ、１００  分散アプリケーションシステム、５００  ロードバランサー（ＬＢ）、６０１〜６０６  構成情報、９００  構成管理サーバー。
【図１】
0005799787.tif 000002
【図２】
0005799787.tif 000003
【図３】
0005799787.tif 000004
【図４】
0005799787.tif 000005
【図５】
0005799787.tif 000006
【図６】
0005799787.tif 000007
【図７】
0005799787.tif 000008
【図８】
0005799787.tif 000009
【図９】
0005799787.tif 000010
【図１０】
0005799787.tif 000011
【図１１】
0005799787.tif 000012
【図１２】
0005799787.tif 000013
【図１３】
0005799787.tif 000014
【図１４】
0005799787.tif 000015