(57)【要約】【課題】サーバに処理を効率的に割り当てることができる要求分散プログラム、要求分散方法および情報処理装置を提供する。【解決手段】受信部５０は、サーバにより実行される機能に係る要求を受信する。ハードウェア特定部５１は、機能と当該機能の実行に用いるハードウェアとを対応付けた機能情報４０に基づいて、受信された要求に対応するハードウェアを特定する。選択部５３は、サーバと当該サーバが有するハードウェアとを対応付けたサーバ情報４１に基づいて、複数のサーバのなかから、特定されたハードウェアを有するサーバを選択する。【選択図】図２
2015132887.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
サーバにより実行される機能に係る要求を受信し、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する、
処理を実行させることを特徴とする要求分散プログラム。
【請求項２】
前記第１の情報は、前記複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアとを対応付けた第２の情報、および、サーバと当該サーバが有するハードウェアとを対応付けた第３の情報とを有し、
前記特定する処理は、前記第２の情報に基づいて、前記受信した要求の機能が必要とするハードウェアを特定し、
前記第３の情報に基づいて、複数のサーバのなかから、特定したハードウェアを有するサーバを選択する処理をさらに実行する
ことを特徴とする請求項１に記載の要求分散プログラム。
【請求項３】
コンピュータに、
要求の要求元と、当該要求元からの直近の要求を処理したサーバとを対応付けた第４の情報に基づいて、前記受信した要求の要求元に対応するサーバを特定する処理をさらに実行させ、
前記選択する処理は、特定したサーバが特定したハードウェアを有する場合、当該特定したサーバを選択し、特定したサーバが特定したハードウェアを有さない場合、特定したハードウェアを有する他のサーバを選択する
ことを特徴とする請求項２に記載の要求分散プログラム。
【請求項４】
コンピュータに、
特定したサーバが特定したハードウェアを有さない場合、当該特定したサーバにおいて、前記受信した要求に応じた処理を行う処理環境を前記他のサーバへ移行させ、
受信した要求を前記他のサーバへ送信する
処理をさらに実行させることを特徴とする請求項３に記載の要求分散プログラム。
【請求項５】
選択したサーバで各要求元からの要求の処理を実行する実行数が所定の閾値を超えた場合、前記受信した要求以外の他の要求の処理を行う処理環境を、当該選択したサーバと異なるサーバへ移行させる処理をさらに実行させることを特徴とする請求項２〜４の何れか１つに記載の要求分散プログラム。
【請求項６】
前記受信する処理は、３Ｄ表示および解析を含むＣＡＤの機能の要求を受信し、
前記ハードウェアを特定する処理は、機能毎に、３Ｄ表示の実行に用いるハードウェアとしてＧＰＵと解析の実行に用いるハードウェアとしてＧＰＧＰＵが対応付けられた前記第２の情報に基づいて、要求に対応するハードウェアを特定し、
前記サーバを選択する処理は、サーバ毎に、ＧＰＵとＧＰＧＰＵの有無が対応付けられた前記第３の情報に基づいて、３Ｄ表示の要求にはＧＰＵを有するサーバを選択し、解析の要求にはＧＰＧＰＵを有するサーバを選択する
ことを特徴とする請求項２〜５の何れか１つに記載の要求分散プログラム。
【請求項７】
コンピュータが、
サーバにより実行される機能に係る要求を受信し、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する
処理を実行することを特徴とする要求分散方法。
【請求項８】
サーバにより実行される機能に係る要求を受信する受信部と、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する特定部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要求分散プログラム、要求分散方法および情報処理装置に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングにより様々なサービスが提供されている。例えば、クラウドコンピューティングにより回路設計を支援する設計支援サービスが提供されている。この設計支援サービスでは、例えば、サーバ上でＣＡＤ（Computer  Aided  Design）プログラムを動作させる。設計支援サービスでは、ネットワークを介してクライアントから操作を受け付ける。そして、設計支援サービスでは、受け付けた操作に応じてサーバ上で生成した画像情報をクライアントへ送信してクライアントに画像を表示させる。これにより、設計支援サービスは、あたかもクライアント上でＣＡＤを実行する場合と同等の設計環境を設計者に提供できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−４３０３号公報
【特許文献２】特表２００５−５１３５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、クラウドコンピューティングでは、サービスの提供に使用するサーバを全て高性能なサーバで揃えた場合、システムの構築にかかる費用が高くなる。また、サービスが提供する機能には、高性能なサーバではなく、例えば、旧型のサーバなどの性能の低い低性能なサーバでも十分に処理性能が足りる機能もある。例えば、設計支援サービスでは、設計で使用するＣＡＤの機能によっては低性能なサーバでも性能が十分に足りる場合がある。このため、サービスの提供に使用されるサーバには、高性能なサーバと低性能なサーバとが混在する場合がある。
【０００５】
しかしながら、サービスの提供に使用されるサーバに、高性能なサーバと低性能なサーバとが混在する場合、サーバに処理を効率的に割り当てられない場合がある。
【０００６】
ここで、図１を使って設計支援サービスのポータルについて説明する。図１には、設計支援サービスを提供するシステム１０の一例が示されている。設計者は、クライアント１２を用いてシステム１０のポータルである要求分散装置２０にアクセスして設計支援サービスにログインを行い、回路設計に使用するサーバ（アプリサーバ２１）を選択する。要求分散装置２０は、選択されたサーバに設計環境を構築する。この場合、低性能なサーバが選択されると、ＣＡＤの機能によっては、処理時間が長くなり、設計作業に支障をきたす場合がある。このような場合、設計者は、設計作業を一旦終了させ、機能を快適に実行できるサーバを再度選択して、設計作業を行う。
【０００７】
各設計者が、設計作業の中断を嫌って、ＣＡＤの全ての機能を快適に実行できる高性能なサーバを選択すると、高性能なサーバに利用が集中してしまい、低性能なサーバの利用効率が悪くなる。また、高性能なサーバに利用が集中すると、高性能なサーバでしか快適に実行できない機能を使用する設計者が、高性能なサーバを使用できない場合がある。
【０００８】
一側面では、サーバに処理を効率的に割り当てることができる要求分散プログラム、要求分散方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面によれば、要求分散プログラムは、コンピュータに、サーバにより実行される機能に係る要求を受信する処理を実行させる。要求分散プログラムは、コンピュータに、第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する処理を実行させる。第１の情報は、サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けている。
【発明の効果】
【００１０】
本発明の一側面によれば、サーバに処理を効率的に割り当てることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、システム全体の概略構成の一例を示す図である。
【図２】図２は、要求分散装置の機能的な構成の一例を示す図である。
【図３】図３は、機能情報のデータ構成の一例を示す図である。
【図４】図４は、サーバ情報のデータ構成の一例を示す図である。
【図５】図５は、要求元情報のデータ構成の一例を示す図である。
【図６】図６は、システムの全体的な動作の一例を示したシーケンス図である。
【図７】図７は、システムの詳細な動作の一例を示したシーケンス図である。
【図８】図８は、アプリサーバを切り替えるか否か判定する処理の流れを説明するための説明図である。
【図９】図９は、切り替え先のアプリサーバを選択する処理の流れを説明するための説明図である。
【図１０】図１０は、サーバ情報を更新する処理の流れを説明するための説明図である。
【図１１】図１１は、要求元情報を更新する処理の流れを説明するための説明図である。
【図１２】図１２は、複数のクライアントにより回路設計が行われた際のシステムの全体的な動作の一例を示したシーケンス図である。
【図１３】図１３は、複数のクライアントにより回路設計が行われた際のシステムの詳細な動作の一例を示したシーケンス図である。
【図１４】図１４は、サーバ情報を更新する処理の流れを説明するための説明図である。
【図１５】図１５は、アプリサーバの何れかの設計環境の移行を行うか否か判定する処理の流れを説明するための説明図である。
【図１６】図１６は、設計環境が移行可能であるか判定する処理の流れを説明するための説明図である。
【図１７】図１７は、サーバ情報を更新する処理の流れを説明するための説明図である。
【図１８】図１８は、要求分散処理の手順の一例を示すフローチャートである。
【図１９】図１９は、要求分散プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明に係る要求分散プログラム、要求分散方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システムの構成］
実施例１に係るシステム１０について説明する。図１は、システム全体の概略構成の一例を示す図である。システム１０は、クラウドコンピューティングによりサービスを提供する。なお、以下では、システム１０が、サービスとして設計支援サービスを提供する場合を例に説明する。システム１０は、ネットワーク１１を介してクライアント１２と通信可能に接続され、クライアント１２と各種の情報を交換することが可能とされている。かかるネットワーク１１の一態様としては、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の通信網が挙げられる。
【００１４】
クライアント１２は、設計者が回路設計に用いるコンピュータである。例えば、クライアント１２は、デスクトップ型ＰＣ（パーソナルコンピュータ）、ノート型ＰＣなどである。設計者は、クライアント１２を使用してシステム１０に対して回路設計に関する各種の要求を送信し、システム１０が提供する設計環境を用いて回路設計を行う。なお、図１の例では、クライアント１２を１台とした場合を例示したが、これに限定されず、クライアント１２を任意の数とすることができる。
【００１５】
システム１０は、回路設計を行うための設計環境を提供する。システム１０は、ネットワーク１１を介してクライアント１２から回路設計に関する各種の要求を受け付ける。システム１０は、要求を受け付けると、受け付けた要求に応じて処理を実行する。そして、システム１０は、処理の実行結果の画像情報をクライアント１２へ送信してクライアント１２で画像を表示させる。システム１０は、図１に示すように、要求分散装置２０と、アプリサーバ２１と、ファイルサーバ２２とを有する。要求分散装置２０とアプリサーバ２１とファイルサーバ２２は、不図示のネットワークを介して通信可能に接続され、各種の情報を交換することが可能とされている。かかるネットワークの一態様としては、有線または無線を問わず、ＬＡＮやＶＰＮなどの通信網が挙げられる。なお、図１の例では、アプリサーバ２１を３台とした場合を例示したが、これに限定されず、アプリサーバ２１を任意の数とすることができる。また、図１の例では、要求分散装置２０およびファイルサーバ２２をそれぞれ１台とした場合を例示したが、これに限定されず、要求分散装置２０およびファイルサーバ２２をそれぞれ複数のサーバコンピュータによって構成してもよい。
【００１６】
要求分散装置２０は、クライアント１２からの要求を受け付けるポータルとして機能するコンピュータであり、情報処理装置の一例である。例えば、要求分散装置２０は、データセンタや各企業に設けられたサーバコンピュータである。要求分散装置２０は、クライアント１２から受け付けた要求をアプリサーバ２１に中継する。また、要求分散装置２０は、アプリサーバ２１による処理結果の情報をクライアント１２へ中継する。
【００１７】
アプリサーバ２１は、設計環境を提供するコンピュータである。例えば、アプリサーバ２１は、データセンタや各企業に設けられたサーバコンピュータである。アプリサーバ２１は、ＣＡＤプログラムを動作させ、要求分散装置２０を介してクライアント１２から受信される要求に応じて処理を実行する。そして、アプリサーバ２１は、処理を実行した結果の画像情報など、処理結果の情報を生成し、要求元のクライアントへ送信する。
【００１８】
ファイルサーバ２２は、回路設計に用いる各種のデータを記憶するコンピュータである。例えば、ファイルサーバ２２は、データセンタや各企業に設けられたサーバコンピュータである。ファイルサーバ２２は、設計データや各種の設定情報など各種のデータを記憶し、アプリサーバ２１からの要求に応じて各種のデータを提供する。
【００１９】
［要求分散装置の構成］
次に、実施例１に係る要求分散装置について説明する。図２は、要求分散装置の機能的な構成の一例を示す図である。図２に示すように、要求分散装置２０は、通信Ｉ／Ｆ部３０と、記憶部３１と、制御部３２とを有する。
【００２０】
通信Ｉ／Ｆ部３０は、他の装置との間で通信制御を行うインタフェースである。通信Ｉ／Ｆ部３０は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信Ｉ／Ｆ部３０は、クライアント１２からＣＡＤの各種の機能に係る要求を受信し、受信した要求をアプリサーバ２１へ送信する。また、通信Ｉ／Ｆ部３０は、要求に応じた処理の実行結果の画像情報をアプリサーバ２１から受信し、受信した画像情報を、要求を送信した要求元のクライアント１２へ送信する。通信Ｉ／Ｆ部３０としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。
【００２１】
記憶部３１は、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部３１は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであってもよい。
【００２２】
記憶部３１は、制御部３２で実行されるＯＳ（Operating  System）や受信される要求を処理する各種プログラムを記憶する。さらに、記憶部３１は、制御部３２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部３１は、機能情報４０と、サーバ情報４１と、要求元情報４２とを記憶する。
【００２３】
機能情報４０は、ＣＡＤの各種の機能と当該機能の実行に用いるハードウェアとを対応付けた情報である。例えば、機能情報４０には、ＣＡＤの各種の機能毎に、当該機能の実行に適するハードウェアに関する情報が記憶されている。
【００２４】
図３は、機能情報のデータ構成の一例を示す図であり、第２の情報の一例である。機能情報４０は、ＣＡＤ機能、補助、ＴＡＴ許容値などの項目が対応付けられたテーブルを採用できる。ＣＡＤ機能の項目は、設計支援サービスにおいて使用可能なＣＡＤの機能を記憶する領域である。補助の項目は、ＣＡＤの機能の実行に用いるハードウェアに関する情報を記憶する領域である。本実施例では、補助の項目は、ＧＰＵと、ＧＰＧＰＵとの項目に分かれている。ＧＰＵの項目は、ＧＰＵ（Graphics  Processing  Unit）をＣＡＤの機能の実行に用いるか否かを記憶する領域である。ＧＰＧＰＵの項目は、ＧＰＧＰＵ（General-Purpose  computing  on  Graphics  Processing  Units）をＣＡＤの機能の実行に用いるか否かを記憶する領域である。ＧＰＵおよびＧＰＧＰＵの項目には、ＣＡＤの機能の実行に用いる場合、「○」が設定され、ＣＡＤの機能の実行に用いなくてもよい場合、「×」が設定される。ＴＡＴ許容値の項目は、機能の処理において性能として許容とするターンアラウンドタイム（ＴＡＴ）を記憶する領域である。ＴＡＴとは、クライアント１２から要求を受信してから当該要求に対する応答を当該クライアント１２へ返すまでの時間である。
【００２５】
図３の例では、３Ｄ（three  dimensions）表示の機能は、ＧＰＵを使用し、ＧＰＧＰＵを使用せず、許容される最大のターンアラウンドタイムが「２」であることを示す。また、解析１の機能は、ＧＰＵを使用せず、ＧＰＧＰＵを使用し、許容される最大のターンアラウンドタイムが「６０」であることを示す。また、編集１は、ＧＰＵおよびＧＰＧＰＵを使用せず、許容される最大のターンアラウンドタイムが「１」であることを示す。
【００２６】
ここで、ＧＰＵは、３Ｄグラフィックスの表示の計算処理を行う半導体チップである。ＧＰＵを備えたサーバは、３Ｄ表示にＧＰＵを使用できるため、短い処理時間で３Ｄ表示が可能である。このため、３Ｄ表示は、ＧＰＵを備えたアプリサーバ２１で処理することが好ましい。また、ＧＰＧＰＵは、ＧＰＵの演算機能を画像処理以外の用途に使用できる機能を備えたものである。ＧＰＧＰＵの機能を有するＧＰＵを備えたサーバは、比較的単純な計算を並列に高速で実行できるため、解析処理等を短い処理時間で実行できる。このため、解析は、ＧＰＧＰＵを備えたアプリサーバ２１で処理することが好ましい。
【００２７】
図２に戻り、サーバ情報４１は、アプリサーバ２１と当該アプリサーバ２１が有するハードウェアとを対応付けた情報である。例えば、サーバ情報４１には、アプリサーバ２１毎に、アプリサーバ２１が備えたハードウェアに関する情報や、性能に関する情報が記憶されている。
【００２８】
図４は、サーバ情報のデータ構成の一例を示す図であり、第３の情報の一例である。サーバ情報４１は、アプリサーバ、性能ランク、メモリ、最大実行数、補助、実行数、補助使用状況、性能比、ＧＰＵ性能比、ＧＰＧＰＵ性能比などの項目が対応付けられたテーブルを採用できる。アプリサーバの項目は、アプリサーバ２１を識別する識別情報を記憶する領域である。この識別情報は、アプリサーバ２１を識別できればいずれでもよく、例えば、ホスト名でもよく、ＩＰアドレスでもよい。本実施例では、アプリサーバ２１を３台とした場合を例にして説明する。以下では、３台のアプリサーバ２１を区別する場合、アプリサーバ２１Ａ、２１Ｂ、２１Ｃと表記する。また、各アプリサーバ２１を識別しやすくするため、各アプリサーバ２１の識別情報にそれぞれの表記を用いる。性能ランクの項目は、アプリサーバ２１の性能に関する情報を記憶する領域である。本実施例では、性能に関する情報として、アプリサーバ２１の性能を高、中、低の３段階にランク分けしたランクの情報を用いている。メモリの項目は、アプリサーバ２１に搭載されたＲＡＭの容量を記憶する領域である。最大実行数の項目は、アプリサーバ２１において要求の処理を同時期に実行可能な最大の実行数を記憶する領域である。この最大実行数の値が、アプリサーバ２１での要求の処理が上限であるかを判定する際の閾値となる。補助の項目は、アプリサーバ２１がＣＡＤの機能の実行に適するハードウェアを有するか否かを記憶する領域である。本実施例では、補助の項目は、ＧＰＵと、ＧＰＧＰＵの項目に分かれている。ＧＰＵの項目は、アプリサーバ２１がＧＰＵを有するか否かを記憶する領域である。ＧＰＧＰＵの項目は、アプリサーバ２１がＧＰＧＰＵ機能を有するＧＰＵを有するか否かを記憶する領域である。ＧＰＵおよびＧＰＧＰＵの項目には、該当するハードウェアを有する場合、「○」が設定され、該当するハードウェアを有さない場合、「×」が設定される。実行数の項目は、アプリサーバ２１において同時期に要求の処理を実行中の実行数を記憶する領域である。補助使用状況の項目は、補助の項目のハードウェアが使用されているか否かを記憶する領域である。本実施例では、補助使用状況の項目は、補助の項目に対応して、ＧＰＵと、ＧＰＧＰＵの項目に分かれている。ＧＰＵの項目は、アプリサーバ２１において、ＧＰＵが使用されているか否かを記憶する領域である。ＧＰＧＰＵの項目は、アプリサーバ２１において、ＧＰＧＰＵが使用されているか否かを記憶する領域である。性能比の項目は、各アプリサーバ２１の処理性能を記憶する領域である。ＧＰＵ性能比の項目は、各アプリサーバ２１のＧＰＵの処理性能を記憶する領域である。ＧＰＧＰＵ性能比の項目は、各アプリサーバ２１のＧＰＧＰＵの処理性能を記憶する領域である。ＧＰＵ性能比の項目およびＧＰＧＰＵ性能比の項目は、該当するハードウェアが無い場合、「−」が設定され、性能比が省略されている。
【００２９】
図４の例では、アプリサーバ２１Ａは、性能ランクが「低」であり、搭載されたＲＡＭの容量が「８ＧＢ」であり、要求の処理を同時期に実行可能な最大の実行数が「４」であり、ＧＰＵおよびＧＰＧＰＵを共に有さないことを示す。また、アプリサーバ２１Ａは、実行される要求を処理中の実行数が「２」であり、ＧＰＵおよびＧＰＧＰＵが共に使用されておらず、性能比が「２」であり、ＧＰＵ性能比が「−」と省略され、ＧＰＧＰＵ性能比が「−」と省略されていることを示す。アプリサーバ２１Ｂは、性能ランクが「高」であり、搭載されたＲＡＭの容量が「３２ＧＢ」であり、要求の処理を同時期に実行可能な最大の実行数が「８」であり、ＧＰＵおよびＧＰＧＰＵを共に有することを示す。また、アプリサーバ２１Ｂは、実行される要求を処理中の実行数が「０」であり、ＧＰＵおよびＧＰＧＰＵが共に使用されておらず、性能比が「８」であり、ＧＰＵ性能比が「８０」であり、ＧＰＧＰＵ性能比が「８０」であることを示す。また、アプリサーバ２１Ｃは、性能ランクが「中」であり、搭載されたＲＡＭの容量が「１６ＧＢ」であり、要求の処理を同時期に実行可能な最大の実行数が「４」であり、ＧＰＧＰＵを有することを示す。また、アプリサーバ２１Ｃは、実行される要求を処理中の実行数が「１」であり、ＧＰＧＰＵが使用されており、性能比が「−」と省略され、ＧＰＵ性能比が「４」であり、ＧＰＧＰＵ性能比が「６０」であることを示す。
【００３０】
図２に戻り、要求元情報４２は、要求の要求元とアプリサーバ２１とを対応付けた情報である。例えば、要求元情報４２には、要求の要求元毎に、要求元からの要求の処理を行う設計環境を有するアプリサーバ２１や、実行されている機能に関する情報が記憶されている。
【００３１】
図５は、要求元情報のデータ構成の一例を示す図であり、第４の情報の一例である。要求元情報４２は、要求元クライアント、要求元プロセスＩＤ、アプリサーバ、アプリサーバプロセスＩＤ、使用中ＣＡＤ機能、ＴＡＴなどの項目が対応付けられたテーブルを採用できる。要求元クライアントの項目は、ＣＡＤの機能の要求を送信したクライアント１２を識別する識別情報を記憶する領域である。この識別情報は、クライアント１２を識別できればいずれでもよく、例えば、ホスト名でもよく、ＩＰアドレスでもよい。本実施例では、クライアント１２を３台とした場合を例にして説明する。以下では、３台のクライアント１２を区別する場合、クライアント１２Ａ、１２Ｂ、１２Ｃと表記する。また、各クライアント１２を識別しやすくするため、各クライアント１２の識別情報にそれぞれの表記を用いる。要求元プロセスＩＤの項目は、ＣＡＤの機能の要求を送信したクライアント１２においてＣＡＤの機能を要求したプロセスのＩＤを記憶する領域である。アプリサーバの項目は、初期の接続先とされたアプリサーバ２１、または、クライアント１２から要求されたＣＡＤの機能を直近に処理したアプリサーバ２１を識別する情報を記憶する領域である。アプリサーバプロセスＩＤの項目は、クライアント１２から要求されたＣＡＤの機能を直近に処理したアプリサーバ２１において、ＣＡＤの機能を直近に処理したプロセスのＩＤを記憶する領域である。使用中ＣＡＤ機能の項目は、クライアント１２から要求されてアプリサーバ２１において直近に処理したＣＡＤの機能を記憶する領域である。
【００３２】
図５の例では、クライアント１２ＡのプロセスＩＤ「ＸＸＸＸ」のプロセスは、「編集１」の機能を要求し、アプリサーバ２１ＡのプロセスＩＤ「ＸＸＸＸ」により処理され、ターンアラウンドタイムが「０．５」であることを示す。また、クライアント１２ＢのプロセスＩＤ「ＸＸＸＸ」は、「編集Ｍ」の機能を要求し、アプリサーバ２１ＡのプロセスＩＤ「ＸＸＸＸ」により処理され、ターンアラウンドタイムが「１」であることを示す。また、クライアント１２ＣのプロセスＩＤ「ＸＸＸＸ」は、「解析１」の機能を要求し、アプリサーバ２１ＣのプロセスＩＤ「ＸＸＸＸ」により処理され、ターンアラウンドタイムが「１」であることを示す。
【００３３】
図２に戻り、制御部３２は、要求分散装置２０を制御するデバイスである。制御部３２としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部３２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部３２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部３２は、受信部５０と、ハードウェア特定部５１と、サーバ特定部５２と、選択部５３と、移行部５４と、送信部５５とを有する。
【００３４】
受信部５０は、各種の要求を受信する処理部である。例えば、受信部５０は、クライアント１２から送信されたＣＡＤの各種の機能に係る要求を受信する。受信部５０は、受信された要求から要求元を特定する。一例として、受信部５０は、受信された要求のパケットのデータに含まれるＩＰアドレス、ポート番号から要求元のクライアント１２およびプロセスを特定する。なお、受信された要求のデータに要求元のクライアント１２およびプロセスを示す識別情報が含まれる場合、受信部５０は、当該識別情報から要求元のクライアント１２およびプロセスを特定してもよい。
【００３５】
ハードウェア特定部５１は、要求された機能の実行に用いるハードウェアを特定する処理部である。例えば、ハードウェア特定部５１は、受信部５０がＣＡＤの機能に係る要求を受信した場合、機能情報４０に基づいて、受信したＣＡＤの機能の実行に用いるハードウェアを特定する。一例として、ハードウェア特定部５１は、機能情報４０から、受信したＣＡＤの機能に対応するレコードのＧＰＵおよびＧＰＧＰＵの項目のデータを読み出し、受信したＣＡＤの機能の実行にＧＰＵおよびＧＰＧＰＵを用いるか否かを特定する。
【００３６】
サーバ特定部５２は、クライアント１２からの要求を処理するアプリサーバ２１を特定する処理部である。例えば、サーバ特定部５２は、要求元情報４２に基づき、要求を送信したクライアント１２からの要求を処理するアプリサーバ２１を特定する。一例として、サーバ特定部５２は、要求元情報４２から、要求を送信したクライアント１２に対応するレコードを読み出し、アプリサーバの項目からクライアント１２の要求を処理するアプリサーバ２１を特定する。
【００３７】
選択部５３は、要求された機能を実行させるアプリサーバ２１を選択する処理部である。例えば、選択部５３は、サーバ情報４１に基づいて、サーバ特定部５２により特定されたアプリサーバ２１が、ハードウェア特定部５１により特定されたハードウェアを有するか否かを判定する。一例として、選択部５３は、サーバ情報４１から、サーバ特定部５２により特定されたアプリサーバ２１のレコードを読み出し、補助の項目のＧＰＵとＧＰＧＰＵの項目のデータから要求されたＣＡＤの機能の実行に用いるハードウェアを有するか否かを判定する。また、選択部５３は、補助使用状況の項目のＧＰＵと、ＧＰＧＰＵの項目のデータから要求されたＣＡＤの機能の実行に用いるハードウェアが使用中であるか否かを判定する。
【００３８】
選択部５３は、サーバ特定部５２により特定されたアプリサーバ２１が、要求されたＣＡＤの機能の実行に用いるハードウェアを有し、かつ、ハードウェアが使用中ではない場合、当該アプリサーバ２１を当該ＣＡＤの機能を実行させるアプリサーバ２１と選択する。
【００３９】
一方、選択部５３は、サーバ特定部５２により特定されたアプリサーバ２１が、要求されたＣＡＤの機能の実行に用いるハードウェアを有さない場合、または、該ハードウェアが使用中である場合、他のアプリサーバ２１を選択する。例えば、選択部５３は、複数のアプリサーバ２１のなかから、ハードウェア特定部５１により特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を選択する。一例として、選択部５３は、サーバ情報４１に記憶された複数のアプリサーバ２１から、ハードウェア特定部５１により特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を抽出する。そして、選択部５３は、抽出されたアプリサーバ２１のなかから、要求されたＣＡＤの機能を実行させるアプリサーバ２１を選択する。なお、選択部５３は、要求の処理の実行数が最大実行数を超えていないアプリサーバ２１を選択する。また、選択部５３は、アプリサーバ２１が複数抽出された場合、要求されたＣＡＤの機能を実行する場合の処理性能が最もよいアプリサーバ２１を選択する。
【００４０】
ここで、サーバ特定部５２により特定されたアプリサーバ２１が、要求されたＣＡＤの機能の実行に用いるハードウェアを有さない場合、当該アプリサーバ２１は、要求されたＣＡＤの機能の実行に適さないアプリサーバ２１である。このため、選択部５３は、ハードウェア特定部５１により特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではない他のアプリサーバ２１を選択する。
【００４１】
移行部５４は、クライアント１２からの要求を処理するアプリサーバ２１を移行させる処理部である。例えば、移行部５４は、サーバ特定部５２により特定されたアプリサーバ２１が、要求されたＣＡＤの機能の実行に用いるハードウェアを有さない場合、特定されたアプリサーバ２１の設計環境を、選択部５３により選択された他のアプリサーバ２１に移行させる。
【００４２】
また、移行部５４は、選択部５３により選択されたアプリサーバ２１での処理の実行数が最大実行数を超えていた場合、いずれかの要求を処理する処理環境を他のアプリサーバ２１へ移行させる。この処理環境とは、アプリサーバ２１が要求された処理の実行に必要な情報やソフトウェアを言う。この処理環境を他のアプリサーバ２１に移行させて動作させることにより、他のアプリサーバ２１は、要求された処理が実行可能な状態となる。
【００４３】
送信部５５は、受信部５０により受信された要求をアプリサーバ２１へ送信する処理部である。例えば、送信部５５は、受信部５０により受信されたＣＡＤの機能に係る要求を、選択部５３により選択されたアプリサーバ２１へ送信する。これにより、ＣＡＤの機能に係る要求は、当該ＣＡＤの機能の実行に用いるハードウェアを有するアプリサーバ２１へ送信される。
【００４４】
［システムの動作］
次に、本実施例に係るシステム１０の処理動作について説明する。最初に、本実施例に係るシステム１０により、回路設計を行う際の全体的な動作について説明する。図６は、システムの全体的な動作の一例を示したシーケンス図である。
【００４５】
設計者は、クライアント１２を使用して要求分散装置２０にアクセスし、接続を要求する（Ｓ１０）。要求分散装置２０は、例えば、ログイン画面を表示させてユーザＩＤやパスワードなどを入力させ、ユーザの認証を行う。要求分散装置２０は、ユーザを認証できた場合、認証が許可された旨を通知し（Ｓ１１）、設計支援サービスを利用可能とする。
【００４６】
設計者は、クライアント１２を使用して、回路設計に用いる各種の情報を要求分散装置２０へ送信する（Ｓ１２）。例えば、設計者は、設計中の設計データなどを要求分散装置２０へ送信する。要求分散装置２０は、受信した各種の情報を設計者に関連づけてファイルサーバ２２に格納する（Ｓ１３）。また、要求分散装置２０は、回路設計に用いるアプリサーバ２１を決定する。この回路設計に用いるアプリサーバ２１は、設計者が指定してもよい。また、回路設計に用いるアプリサーバ２１は、要求分散装置２０が所定の規則に従い自動で決定してもよい。例えば、要求分散装置２０は、ランダムに回路設計に用いるアプリサーバ２１を決定してもよい。また、要求分散装置２０は、最大実行数から処理を実行中の実行数を除算した値の最も大きいアプリサーバ２１を回路設計に用いるアプリサーバ２１と決定してもよい。また、要求分散装置２０は、予め定められた順に回路設計に用いるアプリサーバ２１を決定してもよい。要求元情報４２のアプリサーバの項目には、この決定したアプリサーバ２１を識別する情報が初期の接続先として格納される。要求分散装置２０は、決定したアプリサーバ２１に対して、ＣＡＤプログラムの起動および設計者のデータの読み込みを指示する（Ｓ１４）。
【００４７】
アプリサーバ２１は、要求分散装置２０からの指示に応じてＣＡＤプログラムを起動し、設計者のデータをファイルサーバ２２から読み込む（Ｓ１５）。これにより、アプリサーバ２１には、設計者が回路設計を行うための設計環境が構築される。アプリサーバ２１は、設計環境が構築され、起動が完了すると、要求分散装置２０へ起動完了を通知する（Ｓ１６）。また、アプリサーバ２１は、設計環境の画像情報を生成して要求分散装置２０へ送信する。
【００４８】
要求分散装置２０は、アプリサーバ２１から起動完了が通知されると、クライアント１２へ準備完了を通知し（Ｓ１７）、アプリサーバ２１から受信される画像情報をクライアント１２へ送信する。これにより、クライアント１２には、設計環境の画面が表示される。
【００４９】
設計者は、クライアント１２を使用して、回路設計に関する各種の操作を行う。クライアント１２は、受け付けた操作に応じてＣＡＤの機能に係る各種の要求を要求分散装置２０へ送信する（Ｓ１８）。
【００５０】
要求分散装置２０は、クライアント１２から要求を受け付けると、当該クライアント１２の設計環境が構築されたアプリサーバ２１へ要求を送信する（Ｓ１９）。アプリサーバ２１は、受信した要求に応じて処理を行い、ファイルサーバ２２に記憶された設計者のデータを更新する（Ｓ２０）。そして、アプリサーバ２１は、処理の結果の画像情報などの処理結果の情報を生成して要求分散装置２０へ送信する（Ｓ２１）。要求分散装置２０は、アプリサーバ２１から受信した画像情報などの処理結果の情報を、要求を送信したクライアント１２へ送信する（Ｓ２２）。これにより、クライアント１２には、要求された機能が実行された結果の画面が表示される。
【００５１】
設計者が、クライアント１２を使用して回路設計に関する各種の操作を行う毎に、上述のＳ１８〜Ｓ２２を繰り返す。
【００５２】
設計者は、回路設計を終了する場合、クライアント１２に対して回路設計の終了を指示する操作を行う。クライアント１２は、終了指示を要求分散装置２０へ送信する（Ｓ２３）。
【００５３】
要求分散装置２０は、クライアント１２から終了指示を受け付けると、当該クライアント１２の設計環境が構築されたアプリサーバ２１へ終了指示を送信する（Ｓ２４）。アプリサーバ２１は、終了指示を受け付けると、ファイルサーバ２２に設計者のデータを格納する（Ｓ２５）。アプリサーバ２１は、データの格納が完了すると、ＣＡＤプログラムを終了させて設計環境を解放し、処理が終了した旨の応答を要求分散装置２０へ送信する（Ｓ２６）。要求分散装置２０は、アプリサーバ２１から処理が終了した旨の応答を受信すると、処理が終了した旨の応答をクライアント１２へ送信する（Ｓ２７）。クライアント１２は、要求分散装置２０から処理が終了した旨の応答を受信すると、切断要求を要求分散装置２０へ送信し（Ｓ２８）、要求分散装置２０から切断要求に対する応答が得られると（Ｓ２９）、処理を終了する。
【００５４】
次に、クライアント１２で回路設計に関する操作が行われた際の詳細な動作について説明する。図７は、システムの詳細な動作の一例を示したシーケンス図である。なお。図７は、図６のＳ１８〜Ｓ２２の間の処理動作をより詳細に示したものである。
【００５５】
設計者は、クライアント１２を使用して、回路設計に関する各種の操作を行う。クライアント１２は、受け付けた操作に応じてＣＡＤの機能に係る各種の要求を要求分散装置２０へ送信する（Ｓ５０）。
【００５６】
要求分散装置２０では、クライアント１２の設計環境を有するアプリサーバ２１が、要求された機能の実行に用いるハードウェアを有するか否かにより、アプリサーバ２１を切り替えるか否か判定する（Ｓ５１）。
【００５７】
図８は、アプリサーバを切り替えるか否か判定する処理の流れを説明するための説明図である。例えば、クライアント１２ＡからＣＡＤの機能に係る要求として３Ｄ表示の要求を受け付けた場合、ハードウェア特定部５１は、機能情報４０から３Ｄ表示の機能の実行に用いるハードウェアがＧＰＵであると特定する（図８（１−１））。また、サーバ特定部５２は、要求元情報４２から、クライアント１２Ａの設計環境を有するアプリサーバ２１をアプリサーバ２１Ａと特定する（図８（１−２））。選択部５３は、サーバ情報４１から、アプリサーバ２１Ａのレコードを読み出し、補助の項目のＧＰＵの項目のデータからＧＰＵを有するか判定する。また、選択部５３は、補助使用状況の項目のＧＰＵの項目のデータからＧＰＵが使用中であるか判定する（図８（１−３））。
【００５８】
選択部５３は、アプリサーバ２１ＡがＧＰＵを有し、かつ、ＧＰＵが使用中ではない場合、アプリサーバ２１Ａを要求されたＣＡＤの機能を実行させるアプリサーバ２１と選択する。
【００５９】
一方、選択部５３は、アプリサーバ２１ＡがＧＰＵを有さない場合、または、ＧＰＵが使用中である場合、アプリサーバ２１の切り替えを行うと判定する。図８の例では、機能情報４０のＧＰＵの項目が「○」であるが、サーバ情報４１の補助の項目のＧＰＵの項目が「×」であり、アプリサーバ２１ＡはＧＰＵを有さない。このため、図８の例では、アプリサーバ２１の切り替えを行うと判定される。
【００６０】
選択部５３は、切り替えを行うと判定した場合、複数のアプリサーバ２１のなかから、ハードウェア特定部５１により特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を選択する。
【００６１】
図９は、切り替え先のアプリサーバを選択する処理の流れを説明するための説明図である。例えば、選択部５３は、サーバ情報４１に記憶された複数のアプリサーバ２１から、ハードウェア特定部５１により特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を抽出する。そして、選択部５３は、要求の処理の実行数が最大実行数を超えていないアプリサーバ２１を選択する。図９の例では、アプリサーバ２１Ｂは、ＧＰＵを有し、ＧＰＵが使用中ではなく、実行数が最大実行数を超えていないため、選択される（図９（１−４））。
【００６２】
選択部５３は、選択したアプリサーバ２１で要求されたＣＡＤの機能を実行させるため、サーバ情報４１の実行数および補助使用状況の項目を更新する。例えば、選択部５３は、サーバ情報４１の選択したアプリサーバ２１のレコードの実行数の項目の値に１を加算した値に更新する。また、選択部５３は、サーバ情報４１の選択したアプリサーバ２１のレコードの補助使用状況の項目のＧＰＵの項目を使用中であることを示す「○」に更新する（図９（１−５））。
【００６３】
図７に戻り、移行部５４は、アプリサーバ２１の切り替えを行うと判定された場合、サーバ特定部５２により特定されたアプリサーバ２１の設計環境を、選択部５３により選択されたアプリサーバ２１に移行させる。図７の例では、移行部５４は、アプリサーバ２１Ａからアプリサーバ２１Ｂへ設計環境を移行させる。例えば、移行部５４は、アプリサーバ２１Ａへ記憶指示を送信する（Ｓ５２）。アプリサーバ２１Ａは、記憶指示を受け付けると設計環境に関する各種の情報をファイルサーバ２２に記憶させる（Ｓ５３）。
【００６４】
移行部５４は、アプリサーバ２１ＢへＣＡＤプログラムの起動および移行する設計環境に関する各種の情報の読み込みを指示する（Ｓ５４）。アプリサーバ２１Ｂは、要求分散装置２０からの指示に応じてＣＡＤプログラムを起動し、設計環境に関する各種の情報をファイルサーバ２２から読み込む（Ｓ５５）。これにより、アプリサーバ２１Ａからアプリサーバ２１Ｂへ、設計環境が移行する。アプリサーバ２１Ｂは、設計環境が構築され、起動が完了すると、要求分散装置２０へ起動完了を通知する（Ｓ５６）。移行部５４は、移行先のアプリサーバ２１Ｂから起動完了が通知されると、移行元のアプリサーバ２１Ａへ終了指示を送信する（Ｓ５７）。アプリサーバ２１Ａは、終了指示を受け付けると、ＣＡＤプログラムを終了させて設計環境を解放し、処理が終了した旨の応答を要求分散装置２０へ送信する（Ｓ５８）。
【００６５】
移行部５４は、アプリサーバ２１Ａが終了したことから、サーバ情報４１を更新する（Ｓ５９）。
【００６６】
図１０は、サーバ情報を更新する処理の流れを説明するための説明図である。例えば、選択部５３は、サーバ情報４１の、アプリサーバ２１Ａのレコードの実行数の項目の値を１を減算した値に更新する（図１０（１−６））。また、選択部５３は、要求元情報４２のクライアント１２Ａのアプリサーバの項目をアプリサーバ２１Ｂに更新する（図１０（１−７））。
【００６７】
図７に戻り、送信部５５は、受信部５０により受信されたＣＡＤの機能に係る要求を、選択部５３により選択されたアプリサーバ２１へ送信する（Ｓ６０）。図７の例では、送信部５５は、アプリサーバ２１ＢへＣＡＤの機能に係る要求を送信する。アプリサーバ２１Ｂでは、受信した要求に応じて処理を行い、ファイルサーバ２２に記憶された設計者のデータを更新する（Ｓ６１）。そして、アプリサーバ２１Ｂは、処理の結果の画像情報などの処理結果の情報を生成して要求分散装置２０へ送信する（Ｓ６２）。
【００６８】
送信部５５は、アプリサーバ２１での要求された処理が終了したことから、要求元情報４２を更新する（Ｓ６３）。
【００６９】
図１１は、要求元情報を更新する処理の流れを説明するための説明図である。例えば、送信部５５は、要求元情報４２のクライアント１２Ａのレコードの使用中ＣＡＤ機能の項目を要求された３Ｄ表示に更新する。また、送信部５５は、ＴＡＴの項目を、要求を受信してから当該要求に対する応答を返すまでの時間に更新する。
【００７０】
図７に戻り、要求分散装置２０は、アプリサーバ２１から受信した画像情報などの処理結果の情報を、要求を送信したクライアント１２へ送信する（Ｓ６４）。
【００７１】
次に、複数のクライアント１２により回路設計が行われた際の処理動作について説明する。図１２は、複数のクライアントにより回路設計が行われた際のシステムの全体的な動作の一例を示したシーケンス図である。なお。図１２の例では、クライアント１２Ａ、１２Ｂにより回路設計に関する操作が行われた際を例にして説明する。また、図１２の例では、クライアント１２Ａ、１２Ｂの要求に対する処理を行うスレッドを区別できるようにパターンを分けて示している。
【００７２】
クライアント１２Ａ、１２Ｂは、それぞれ設計者から回路設計に関する各種の操作を受け付ける。クライアント１２Ａ、１２Ｂは、受け付けた操作に応じてＣＡＤの機能に係る各種の要求を要求分散装置２０へ送信する。例えば、クライアント１２Ａは、受け付けた操作に応じて要求を要求分散装置２０へ送信する（Ｓ７０）。クライアント１２Ｂは、受け付けた操作に応じて要求を要求分散装置２０へ送信する（Ｓ７１）。
【００７３】
要求分散装置２０は、クライアント１２から要求を受け付けると、当該クライアント１２の設計環境が構築されたアプリサーバ２１へ要求を送信する。例えば、要求分散装置２０は、クライアント１２Ａから要求を受け付けると、アプリサーバ２１Ａへ要求を送信する（Ｓ７２）。また、要求分散装置２０は、クライアント１２Ｂから要求を受け付けると、アプリサーバ２１Ｂへ要求を送信する（Ｓ７３）。
【００７４】
アプリサーバ２１Ａは、クライアント１２Ａからの要求に応じて処理を行い、ファイルサーバ２２に記憶された設計者のデータを更新する（Ｓ７４）。そして、アプリサーバ２１Ａは、処理の結果の画像情報などの処理結果の情報を生成して要求分散装置２０へ送信する（Ｓ７５）。アプリサーバ２１Ｂは、クライアント１２Ｂからの要求に応じて処理を行い、ファイルサーバ２２に記憶された設計者のデータを更新する（Ｓ７６）。そして、アプリサーバ２１Ｂは、処理の結果の画像情報などの処理結果の情報を生成して要求分散装置２０へ送信する（Ｓ７７）。
【００７５】
要求分散装置２０は、アプリサーバ２１Ａから受信した画像情報などの処理結果の情報を、要求を送信したクライアント１２Ａへ送信する（Ｓ７８）。また、要求分散装置２０は、アプリサーバ２１Ｂから受信した画像情報などの処理結果の情報を、要求を送信したクライアント１２Ｂへ送信する（Ｓ７９）。
【００７６】
次に、複数のクライアント１２により回路設計が行われた際のシステムの詳細な動作について説明する。図１３は、複数のクライアントにより回路設計が行われた際のシステムの詳細な動作の一例を示したシーケンス図である。なお、図７に示した処理と同様の処理については、同じ符号を付して一部説明を省略する。
【００７７】
設計者は、クライアント１２Ａを使用して、回路設計に関する各種の操作を行う。クライアント１２Ａは、受け付けた操作に応じてＣＡＤの機能に係る各種の要求を要求分散装置２０へ送信する（Ｓ５０）。
【００７８】
要求分散装置２０では、クライアント１２Ａの要求を処理する設計環境を有するアプリサーバ２１Ａが、要求された機能の実行に用いるハードウェアを有するか否かにより、アプリサーバ２１Ａを切り替えるか否か判定する（Ｓ５１）。ここでは、選択部５３により、切り替えを行うと判定され、切り替え先としてアプリサーバ２１Ｂを選択されたものとする。選択部５３は、選択したアプリサーバ２１Ｂで要求されたＣＡＤの機能を実行させるため、サーバ情報４１の実行数および補助使用状況の項目を更新する。
【００７９】
図１４は、サーバ情報を更新する処理の流れを説明するための説明図である。例えば、選択部５３は、アプリサーバ２１Ｂのレコードの実行数の項目の値に１を加算した値に更新する。また、選択部５３は、サーバ情報４１の選択したアプリサーバ２１Ｂのレコードの補助使用状況の項目のＧＰＵの項目を使用中であることを示す「○」に更新する（図１４（２−１））。
【００８０】
図１３に戻り、移行部５４は、設計環境の移行が行うべきアプリサーバ２１があるか否か判定する（Ｓ８０）。例えば、移行部５４は、アプリサーバ２１に処理の実行数が最大実行数を超えているものがあるか判定する。移行部５４は、選択部５３により選択されたアプリサーバ２１での処理の実行数が最大実行数を超えているものがある場合、設計環境の移行が行うべきアプリサーバ２１があると判定し、いずれかの要求を処理する処理環境を異なるアプリサーバ２１へ移行させる。
【００８１】
図１５は、アプリサーバの何れかの設計環境の移行を行うか否か判定する処理の流れを説明するための説明図である。アプリサーバ２１Ｂは、サーバ情報４１の実行数の項目の値が最大実行数の項目の値よりも大きくなっている。この場合、移行部５４は、アプリサーバ２１Ｂを設計環境の移行を行うべきアプリサーバ２１と判定する（図１５（２−２））。
【００８２】
図１３に戻り、移行部５４は、クライアント１２Ａからの要求の受け付けを停止する（Ｓ８１）。
【００８３】
移行部５４は、アプリサーバ２１Ｂが設計環境を提供しているクライアント１２を全て抽出する。例えば、移行部５４は、要求元情報４２から移行を行うべきアプリサーバ２１のレコードを全て抽出する。例えば、図１５の例では、要求元情報４２からアプリサーバの項目がアプリサーバ２１Ｂのレコードを抽出する（図１５（２−３））。移行部５４は、抽出したレコードをＴＡＴの小さい順にソートする。
【００８４】
移行部５４は、ＴＡＴの小さい順にレコードを選択し、設計環境が移行可能なアプリサーバ２１を特定する（Ｓ８２）。
【００８５】
図１６は、設計環境が移行可能であるか判定する処理の流れを説明するための説明図である。移行部５４は、選択したレコードの使用中ＣＡＤ機能の項目を参照し、要求されたＣＡＤの機能を特定する。例えば、図１６（２−４）に示すレコードを選択した場合、移行部５４は、編集１が要求されたＣＡＤの機能と特定する。
【００８６】
移行部５４は、特定されたＣＡＤの機能を実行可能な他のアプリサーバ２１を検索する。例えば、移行部５４は、機能情報４０から、特定されたＣＡＤの機能の実行に用いるハードウェアを特定する。例えば、特定されたＣＡＤの機能が編集１である場合、移行部５４は、編集１の機能の実行に用いるハードウェアが特にないことを特定する（図１６（２−５））。移行部５４は、サーバ情報４１から、特定されたＣＡＤの機能の実行に用いるハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を検索する。例えば、編集１の機能の実行に用いるハードウェアが特にないため、移行部５４は、例えば、アプリサーバ２１Ｃが検索される（図１６（２−６））。
【００８７】
移行部５４は、サーバ情報４１から、検索されたアプリサーバ２１の要求の処理の実行数が最大実行数未満であるか判定する。実行数が最大実行数未満である場合、移行部５４は、特定されたＣＡＤの機能を検索されたアプリサーバ２１で実行した際の性能を予測する。例えば、移行部５４は、設計環境の移行を行うべき移行元のアプリサーバ２１の性能比を、検索された移行先のアプリサーバ２１の性能比で除算し、除算により得られた値に特定されたＣＡＤの機能のＴＡＴを乗算する演算を行う。移行部５４は、この演算結果の値が、機能情報４０に記憶された、特定されたＣＡＤの機能のＴＡＴ許容値の項目の値以内であれば、設計環境が移行可能なアプリサーバ２１であると特定する。例えば、移行部５４は、アプリサーバ２１Ｂからアプリサーバ２１Ｃに移行する場合、図１６に示すアプリサーバ２１Ｂの性能比「８」をアプリサーバ２１Ｃの性能比「４」で除算する。そして、移行部５４は、除算により得られた値「０．５」に、要求元情報４２に記憶された編集１の機能を処理した際のＴＡＴ「０．１」を乗算する演算を行う。この演算結果の値「０．２」は、機能情報４０に記憶された編集１の機能のＴＡＴ許容値の項目の値「１」以内である。このため、アプリサーバ２１Ｃは、設計環境が移行可能なアプリサーバ２１と特定される。なお、移行部５４は、移行させるＣＡＤの機能の実行に用いるハードウェアにＧＰＵがある場合、ＧＰＵ性能比を用いて性能を予測する。また、移行部５４は、移行させるＣＡＤの機能の実行に用いるハードウェアにＧＰＧＰＵがある場合、ＧＰＧＰＵ性能比を用いて性能を予測する。
【００８８】
図１３に戻り、移行部５４は、特定されたＣＡＤの機能を設計環境が移行可能なアプリサーバ２１へ移行させる。例えば、移行部５４は、クライアント１２Ｂの設計環境をアプリサーバ２１Ｂからアプリサーバ２１Ｃへ移行させる。例えば、移行部５４は、アプリサーバ２１Ｂへ記憶指示を送信する（Ｓ８３）。アプリサーバ２１Ｂは、記憶指示を受け付けると設計環境に関する各種の情報をファイルサーバ２２に記憶させる（Ｓ８４）。
【００８９】
移行部５４は、アプリサーバ２１ＣへＣＡＤプログラムの起動および移行する設計環境に関する各種の情報の読み込みを指示する（Ｓ８５）。アプリサーバ２１Ｃは、指示に応じてＣＡＤプログラムを起動し、移行する設計環境に関する各種の情報をファイルサーバ２２から読み込む（Ｓ８６）。これにより、アプリサーバ２１Ｂからアプリサーバ２１Ｃへ、設計環境が移行する。アプリサーバ２１Ｃは、設計環境が構築され、起動が完了すると、要求分散装置２０へ起動完了を通知する（Ｓ８７）。移行部５４は、移行先のアプリサーバ２１Ｃから起動完了が通知されると、移行元のアプリサーバ２１Ｂへ終了指示を送信する（Ｓ８８）。アプリサーバ２１Ｂは、終了指示を受け付けると、設計環境を解放し、処理が終了した旨の応答を要求分散装置２０へ送信する（Ｓ８９）。
【００９０】
そして、移行部５４は、クライアント１２Ａからの要求の受け付けを再開する（Ｓ９０）。また、移行部５４は、サーバ情報４１を更新する。
【００９１】
図１７は、サーバ情報を更新する処理の流れを説明するための説明図である。例えば、移行部５４は、サーバ情報４１の、アプリサーバ２１Ｂのレコードの実行数の項目の値を１を減算した値に更新する（図１７（２−７））。また、移行部５４は、サーバ情報４１の、アプリサーバ２１Ｃのレコードの実行数の項目の値を１を加算した値に更新する（図１７（２−８））。さらに、移行部５４は、要求元情報４２のクライアント１２のアプリサーバの項目をアプリサーバ２１Ｃに更新する。
【００９２】
その後、移行部５４は、図７に示した上述のＳ５２〜Ｓ６３と同様の処理により、アプリサーバ２１Ａからアプリサーバ２１Ｂへ設計環境を移行させる。
【００９３】
［処理の流れ］
次に、本実施例に係る要求分散装置２０が実行する、要求を分散させる要求分散処理の流れについて説明する。図１８は、要求分散処理の手順の一例を示すフローチャートである。この要求分散処理は、所定のタイミング、例えば、要求分散装置２０が起動したタイミングや、要求分散装置２０の起動後、最初に要求を受信したタイミング、管理端末等から実行が指示されたタイミングで実行される。
【００９４】
図１８に示すように、受信部５０は、クライアント１２からＣＡＤの各種の機能に係る要求を受信したか否かを判定する（Ｓ１００）。要求を受信していない場合（Ｓ１００否定）、受信部５０は、処理終了が指示されたか否かを判定する（Ｓ１０１）。処理終了が指示されていない場合（Ｓ１０１否定）、Ｓ１００へ移行する。一方、処理終了が指示されている場合（Ｓ１０１肯定）、処理を終了する。
【００９５】
一方、要求を受信した場合（Ｓ１００肯定）、ハードウェア特定部５１は、機能情報４０から、受信したＣＡＤの機能に対応するレコードを読み出し、要求された機能の実行に用いるハードウェアを特定する（Ｓ１０２）。また、サーバ特定部５２は、要求元情報４２から、要求を送信したクライアント１２に対応するレコードを読み出し、要求を処理するアプリサーバ２１を特定する（Ｓ１０３）。
【００９６】
選択部５３は、サーバ情報４１に基づき、特定されたアプリサーバ２１が特定されたハードウェアを有するか否かを判定する（Ｓ１０４）。特定されたハードウェアを有する場合（Ｓ１０４肯定）、選択部５３は、特定されたアプリサーバ２１を要求されたＣＡＤの機能を実行させるアプリサーバ２１と選択し（Ｓ１０５）、後述のＳ１０７へ移行する。
【００９７】
一方、特定されたハードウェアを有さない場合（Ｓ１０４否定）、選択部５３は、特定されたハードウェアを有し、かつ、当該ハードウェアが使用中ではないアプリサーバ２１を、要求されたＣＡＤの機能を実行させるアプリサーバ２１として選択する（Ｓ１０６）。移行部５４は、特定されたハードウェアを有するアプリサーバ２１が選択できたか否かを判定する（Ｓ１０７）。アプリサーバ２１を選択できない場合（Ｓ１０７否定）、移行部５４は、要求されたＣＡＤの機能の実行に適したアプリサーバ２１がなく、要求の処理を実行できない旨を要求元のクライアント１２へ送信し（Ｓ１０８）、上述のＳ１００へ移行する。
【００９８】
一方、アプリサーバ２１を選択できた場合（Ｓ１０５またはＳ１０７肯定）、移行部５４は、アプリサーバ２１の切り替えが不要であるか否かを判定する（Ｓ１０９）。例えば、移行部５４は、選択されたアプリサーバ２１が要求を送信したクライアント１２の設計環境を有するアプリサーバ２１である場合、切り替えが不要であると判定する。切り替えが不要である場合（Ｓ１０９肯定）、後述のＳ１１７の処理へ移行する。
【００９９】
一方、切り替えが不要ではない場合（Ｓ１０９否定）、移行部５４は、選択されたアプリサーバ２１での要求の実行数が最大実行数よりも大きいか否か判定する（Ｓ１１０）。実行数が最大実行数以下の場合（Ｓ１１０否定）、後述のＳ１１６の処理へ移行する。
【０１００】
一方、実行数が最大実行数よりも大きい場合（Ｓ１１０肯定）、移行部５４は、設計環境が移行可能なアプリサーバ２１の特定を行う（Ｓ１１１）。移行部５４は、設計環境が移行可能なアプリサーバ２１が特定されたか否かを判定する（Ｓ１１２）。設計環境が移行可能なアプリサーバ２１が特定されない場合（Ｓ１１２否定）、上述のＳ１０８へ移行する。
【０１０１】
一方、設計環境が移行可能なアプリサーバ２１が特定された場合（Ｓ１１２肯定）、移行部５４は、要求の受け付けを一時停止する（Ｓ１１３）。そして、移行部５４は、設計環境が移行可能なアプリサーバ２１の設計環境を選択されたアプリサーバ２１へ移行する（Ｓ１１４）。その後、移行部５４は、要求の受け付けを再開する（Ｓ１１５）。
【０１０２】
移行部５４は、特定されたアプリサーバ２１の設計環境を、選択したアプリサーバ２１へ移行させる（Ｓ１１６）。そして、送信部５５は、選択されたアプリサーバ２１へ受信された要求を送信する（Ｓ１１７）。そして、送信部５５は、アプリサーバ２１から要求に対する応答の画像情報を受信すると、画像情報を要求元のクライアント１２へ送信し（Ｓ１１８）、上述のＳ１００へ移行する。
【０１０３】
［効果］
上述してきたように、本実施例に係る要求分散装置２０は、アプリサーバ２１により実行される機能に係る要求を受信する。要求分散装置２０は、複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアとを対応付けた機能情報４０に基づいて、受信した要求が必要とするハードウェアを特定する。要求分散装置２０は、アプリサーバ２１と当該アプリサーバ２１が有するハードウェアとを対応付けたサーバ情報４１に基づいて、複数のアプリサーバ２１のなかから、特定したハードウェアを有するアプリサーバ２１を選択する。要求分散装置２０は、このように受信した要求に対してアプリサーバ２１を選択することにより、アプリサーバ２１に処理を効率的に割り当てることができる。
【０１０４】
また、本実施例に係る要求分散装置２０は、要求の要求元であるクライアント１２と、当該クライアント１２からの直近の要求を処理したアプリサーバ２１とを対応付けた要求元情報４２に基づいて、受信した要求の要求元に対応するアプリサーバ２１を特定する。そして、要求分散装置２０は、特定したアプリサーバ２１が特定したハードウェアを有する場合、当該特定したアプリサーバ２１を選択する。要求分散装置２０は、特定したアプリサーバ２１が特定したハードウェアを有さない場合、特定したハードウェアを有する他のアプリサーバ２１を選択する。これにより、要求分散装置２０は、要求元に対応するアプリサーバ２１が要求の機能の実行に用いるハードウェアを有する場合、同じアプリサーバ２１で要求を処理させることができる。また、要求分散装置２０は、アプリサーバ２１が要求の機能の実行に用いるハードウェアを有さない場合、受信した要求の処理に適したアプリサーバ２１を割り当てることができる。
【０１０５】
また、本実施例に係る要求分散装置２０は、特定したアプリサーバ２１が特定したハードウェアを有さない場合、当該特定したアプリサーバ２１において、受信した要求に応じた処理を行う処理環境を他のアプリサーバ２１へ移行させる。これにより、要求分散装置２０は、他のアプリサーバ２１において同じ処理環境を用いて要求を処理させることができる。
【０１０６】
また、本実施例に係る要求分散装置２０は、選択したアプリサーバ２１で各要求元からの要求の処理を実行する実行数が所定の閾値を超えた場合、受信した要求以外の他の要求の処理を行う処理環境を異なるアプリサーバ２１へ移行させる。これにより、要求分散装置２０は、選択したアプリサーバ２１の処理の負荷を低下させることができる。
【０１０７】
また、本実施例に係る要求分散装置２０は、いずれかの要求のうち、移行先のアプリサーバ２１での処理時間が当該要求で許容される時間内となる要求に対応する処理環境を異なるアプリサーバ２１へ移行させる。これにより、要求分散装置２０は、移行先のアプリサーバ２１で処理環境を移行させた要求の処理時間が許容される時間よりも遅くなることを抑制できる。
【０１０８】
また、本実施例に係る要求分散装置２０は、３Ｄ表示および解析を含むＣＡＤの機能の要求を受信し、３Ｄ表示の要求にはＧＰＵを有するアプリサーバ２１を選択し、解析の要求にはＧＰＧＰＵを有するアプリサーバ２１を選択する。これにより、要求分散装置２０は、ＣＡＤの機能を快適に実行できるアプリサーバ２１を割り当てることができる。
【実施例２】
【０１０９】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１１０】
例えば、上記の実施例では、クラウドコンピューティングにより回路設計を行うシステムに適用した場合について説明したが、開示の装置はこれに限定されない。要求される機能毎に実行に用いるハードウェアが定まっており、ハードウェアの異なるサーバが混在して使用され、受信した要求をサーバに振り分けているシステムであれば、何れであってもよい。
【０１１１】
また、上記の実施例では、機能情報４０およびサーバ情報４１に基づいて、受信した要求の機能が必要とするハードウェアを有するアプリサーバ２１を特定する場合について説明したが、開示の装置はこれに限定されない。例えば、機能情報４０およびサーバ情報４１の情報をまとめてもよい。例えば、アプリサーバ２１により実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するアプリサーバ２１とをそれぞれ対応付けたテーブルを記憶部２１に記憶させてもよい。このテーブルは、第１の情報の一例である。この場合、ハードウェア特定部５１は、このテーブルに基づいて、受信した要求の機能を実行するアプリサーバ２１を特定してもよい。これにより、受信した要求に対してアプリサーバ２１が選択されるため、アプリサーバ２１に処理を効率的に割り当てることができる。
【０１１２】
また、上記の実施例では、サーバにおいて要求された処理を実行する実行数が最大実行数を超えた場合に、当該サーバで動作するＣＡＤの処理環境の移行させる場合について説明したが、開示の装置はこれに限定されない。例えば、要求分散装置２０は、クライアント１２から要求を受信してから当該要求に対する応答を返すまでのターンアラウンドタイムが許容時間よりも大きくなった要求の処理環境を、ターンアラウンドタイムが許容時間以下となるサーバへ移行させてもよい。これにより、要求分散装置２０は、例えば、データ量が多く、画面表示のイメージの作成に時間がかかるような場合、ＣＡＤの処理環境を実行中のサーバをより高性能なサーバに自動的に切り替えることができる。これにより、要求分散装置２０は、クライアントへの待ち時間が許容時間よりも長くなることを抑制できる。
【０１１３】
また、要求分散装置２０は、保守作業などで処理環境を全て移行させるサーバの指定を受付可能とし、サーバが指定された場合、指定されたサーバで動作する要求の処理環境を全て他のサーバへ移行させる処理を行うものとしてもよい。これにより、要求分散装置２０は、設計者がサーバを使用していても、作業を中断させることなく、サーバの保守を行わせることができる。
【０１１４】
また、上記の実施例では、要求された処理に対して、サーバが要求された機能の実行に用いるハードウェアを有さない場合に、サーバを切り替える場合について説明したが、開示の装置はこれに限定されない。例えば、要求分散装置２０は、要求された機能に対してハードが過剰である場合、より低いハードウェアのサーバに移行させもよい。例えば、要求分散装置２０は、編集１の機能の要求を受信した場合、ＧＰＵ、ＧＰＧＰＵを有さないサーバに移行させて処理を行うものとしてもよい。すなわち、要求分散装置２０は、要求された機能に対応してサーバを切り替えてもよい。これにより、要求分散装置２０は、高性能なサーバに処理が隔たることを抑制できる。
【０１１５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、要求分散装置２０の受信部５０、ハードウェア特定部５１、サーバ特定部５２、選択部５３、移行部５４および送信部５５の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１６】
［要求分散プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１９は、要求分散プログラムを実行するコンピュータを示す図である。
【０１１７】
図１９に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＨＤＤ（Hard  Disk  Drive）３２０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３００〜３４０の各部は、バス４００を介して接続される。
【０１１８】
ＨＤＤ３２０には上記の要求分散装置２０の受信部５０、ハードウェア特定部５１、サーバ特定部５２、選択部５３、移行部５４および送信部５５と同様の機能を発揮する要求分散プログラム３２０ａが予め記憶される。なお、要求分散プログラム３２０ａについては、適宜分離しても良い。
【０１１９】
また、ＨＤＤ３２０は、各種情報を記憶する。例えば、ＨＤＤ３２０は、ＯＳや範囲選択の要求分散に用いる各種データを記憶する。
【０１２０】
そして、ＣＰＵ３１０が、要求分散プログラム３２０ａをＨＤＤ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、要求分散プログラム３２０ａは、受信部５０、ハードウェア特定部５１、サーバ特定部５２、選択部５３、移行部５４および送信部５５と同様の動作を実行する。
【０１２１】
なお、上記した要求分散プログラム３２０ａについては、必ずしも最初からＨＤＤ３２０に記憶させることを要しない。
【０１２２】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１２３】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１２４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）コンピュータに、
サーバにより実行される機能に係る要求を受信し、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する、
処理を実行させることを特徴とする要求分散プログラム。
【０１２６】
（付記２）前記第１の情報は、前記複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアとを対応付けた第２の情報、および、サーバと当該サーバが有するハードウェアとを対応付けた第３の情報とを有し、
前記特定する処理は、前記第２の情報に基づいて、前記受信した要求の機能が必要とするハードウェアを特定し、
前記第３の情報に基づいて、複数のサーバのなかから、特定したハードウェアを有するサーバを選択する処理をさらに実行する
ことを特徴とする付記１に記載の要求分散プログラム。
【０１２７】
（付記３）コンピュータに、
要求の要求元と、当該要求元からの直近の要求を処理したサーバとを対応付けた第４の情報に基づいて、前記受信した前記要求の要求元に対応するサーバを特定する処理をさらに実行させ、
前記選択する処理は、特定したサーバが特定したハードウェアを有する場合、当該特定したサーバを選択し、特定したサーバが特定したハードウェアを有さない場合、特定したハードウェアを有する他のサーバを選択する
ことを特徴とする付記２に記載の要求分散プログラム。
【０１２８】
（付記４）コンピュータに、
特定したサーバが特定したハードウェアを有さない場合、当該特定したサーバにおいて、前記受信した要求に応じた処理を行う処理環境を前記他のサーバへ移行させ、
受信した前記要求を前記他のサーバへ送信する
処理をさらに実行させることを特徴とする付記３に記載の要求分散プログラム。
【０１２９】
（付記５）選択したサーバで各要求元からの要求の処理を実行する実行数が所定の閾値を超えた場合、いずれかの要求に対応し、当該要求に応じた処理を行う処理環境を異なるサーバへ移行させる処理をさらに実行させることを特徴とする付記２〜４の何れか１つに記載の要求分散プログラム。
【０１３０】
（付記６）前記異なるサーバへ移行させる処理は、前記いずれかの要求のうち、移行先のサーバでの処理時間が当該要求で許容される時間内となる要求に対応する前記処理環境を異なるサーバへ移行させる
ことを特徴とする付記５に記載の要求分散プログラム。
【０１３１】
（付記７）前記受信する処理は、３Ｄ表示および解析を含むＣＡＤの機能の要求を受信し、
前記ハードウェアを特定する処理は、機能毎に、３Ｄ表示の実行に用いるハードウェアとしてＧＰＵ、解析の実行に用いるハードウェアとしてＧＰＧＰＵが対応付けられた前記第２の情報に基づいて、要求に対応するハードウェアを特定し、
前記サーバを選択する処理は、サーバ毎に、ＧＰＵ、ＧＰＧＰＵの有無が対応付けられた前記第３の情報に基づいて、３Ｄ表示の要求にはＧＰＵを有するサーバを選択し、解析の要求にはＧＰＧＰＵを有するサーバを選択する
ことを特徴とする付記２〜６の何れか１つに記載の要求分散プログラム。
【０１３２】
（付記８）コンピュータに、
サーバの指定を受け付け、
指定されたサーバが有する処理環境を全て異なるサーバへ移行させる
処理をさらに実行させることを特徴とする付記１〜７の何れか１つに記載の要求分散プログラム。
【０１３３】
（付記９）コンピュータが、
サーバにより実行される機能に係る要求を受信し、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する、
処理を実行することを特徴とする要求分散方法。
【０１３４】
（付記１０）サーバにより実行される機能に係る要求を受信する受信部と、
サーバにより実行される複数の機能のうち一の機能と該一の機能の実行に必要なハードウェアを有するサーバとをそれぞれ対応付けた第１の情報に基づいて、受信した要求の機能を実行するサーバを特定する特定部と、
を有することを特徴とする情報処理装置。
【符号の説明】
【０１３５】
１０  システム
１２  クライアント
２０  要求分散装置
２１  アプリサーバ
２２  ファイルサーバ
３１  記憶部
３２  制御部
４０  機能情報
４１  サーバ情報
４２  要求元情報
５０  受信部
５１  ハードウェア特定部
５２  サーバ特定部
５３  選択部
５４  移行部
５５  送信部
【図１】
2015132887.tif 000003
【図２】
2015132887.tif 000004
【図３】
2015132887.tif 000005
【図４】
2015132887.tif 000006
【図５】
2015132887.tif 000007
【図６】
2015132887.tif 000008
【図７】
2015132887.tif 000009
【図８】
2015132887.tif 000010
【図９】
2015132887.tif 000011
【図１０】
2015132887.tif 000012
【図１１】
2015132887.tif 000013
【図１２】
2015132887.tif 000014
【図１３】
2015132887.tif 000015
【図１４】
2015132887.tif 000016
【図１５】
2015132887.tif 000017
【図１６】
2015132887.tif 000018
【図１７】
2015132887.tif 000019
【図１８】
2015132887.tif 000020
【図１９】
2015132887.tif 000021