(57)【要約】【課題】複数のサービスの階層的な組み合わせによって実現されるサービスにおいて、クライアントのサービス利用に関する多様なポリシーを反映したサービスを提供する。【解決手段】サービスを要求するクライアント３０１及びクライアント３０１の要求するサービスに対応するポリシー情報が蓄積されるポリシーデータベース６０１に接続され、階層的に構成されるサービスを提供するサーバ４０１におけるサービスの提供方法であって、クライアント３０１からサービスの要求を受け取ると、前記要求に対応するポリシー情報をポリシーデータベース６０１から取得する第１のステップと、前記ポリシー情報に基づいて、前記サービスを実行するサーバを選択して、階層的なサービスを構成する第２のステップと、前記選択されたサーバによるサービスの実行結果をクライアントに送信する第３のステップと、を実行する。【選択図】      図１
2005056079.tif 000002
【特許請求の範囲】
【請求項１】
サービスを要求するクライアント及び前記クライアントが要求するサービスに対するポリシー情報が蓄積されるポリシーデータベースに接続され、階層的に構成されるサービスを提供するサーバにおけるサービスの提供方法であって、
前記クライアントからサービスの要求を受け取ると、前記要求に対応するポリシー情報を前記ポリシーデータベースから取得する第１のステップと、
前記ポリシー情報に基づいて、前記サービスを実行するサーバを選択して、階層的なサービスを構成する第２のステップと、
前記選択されたサーバによるサービスの実行結果をクライアントに送信する第３のステップと、を実行することを特徴とするサービスの提供方法。
【請求項２】
前記ポリシー情報を取得する第１のステップは、前記クライアントが許可するポリシー情報のみを取得することを特徴とする請求項１に記載のサービスの提供方法。
【請求項３】
前記ポリシーデータベースには、前記蓄積されたポリシー情報を管理するポリシーサーバが接続されており、
前記ポリシー情報を取得する第１のステップは、
前記ポリシーサーバに対してポリシー情報を要求するステップと、
前記ポリシーサーバが前記ポリシーデータベースを検索した結果であるポリシー情報を取得するステップと、を含むことを特徴とする請求項１又は２に記載のサービスの提供方法。
【請求項４】
前記ポリシーデータベースには、前記ポリシー情報として、ポリシーの内容と、これに対応するポリシー条件とが蓄積されることを特徴とする請求項１から３のいずれか一つに記載のサービス提供方法。
【請求項５】
前記ポリシーデータベースは第１のポリシーデータベース及び第２のポリシーデータベースを含み、
前記第１のポリシーデータベースには、前記蓄積されたポリシー情報を管理する第１のポリシーサーバが接続され、
前記第２のポリシーデータベースには、前記蓄積されたポリシー情報を管理する第２のポリシーサーバが接続され、
前記第１のポリシーデータベースには、前記第２のポリシーサーバの場所を示す情報が蓄積されており、
前記ポリシー情報を取得する第１のステップは、
前記第１のポリシーサーバに対してポリシー情報を要求するステップと、
前記第１のポリシーサーバが前記第１のポリシーデータベースを検索した前記検索結果であるポリシー情報及び／又は第２のポリシーサーバの場所を示す情報を取得するステップと、
前記第２のポリシーサーバの場所を示す情報を取得した場合には、前記第２のポリシーサーバに対してポリシー情報を要求するステップと、
前記第２のポリシーサーバが前記第２のポリシーデータベースを検索した結果であるポリシー情報を取得するステップと、を含むことを特徴とする請求項１又は２に記載のサービスの提供方法。
【請求項６】
前記第２のポリシーデータベースには、前記選択されたサーバのうち下位のサーバが提供するサービスに基づいたポリシー情報が保持されており、
前記サービスを構成する下位のサーバに対して、前記第２のポリシーサーバの場所を示す情報が通知されることを特徴とする請求項５に記載のサービスの提供方法。
【請求項７】
前記サーバが取得したポリシー情報に対応して提供されるサービスが、該ポリシー情報に適合しているか否かを判定するポリシー適合性判定サーバを備え、
前記ポリシー適合性判定サーバは、
前記ポリシー条件と、これに対応するサービスの内容を取得するステップと、
前記サービスの内容が、前記ポリシー条件に適合するか否かを所定の基準によって判定するステップと、
前記判定結果を送信するステップと、を含むことを特徴とする、請求項１から６のいずれか一つに記載のサービス提供方法。
【請求項８】
前記サーバは、前記第１のステップで取得したポリシー情報を保存し、前記保存したポリシー情報に関係するクライアントからのサービスの要求が所定の期間内になされた場合には、前記保存したポリシー情報に基づいて、前記サービスを実行するサーバを選択して、階層的なサービスを構成することを特徴とする請求項１から７のいずれか一つに記載のサービス提供方法。
【請求項９】
前記サーバは、前記第２のステップにおいて構成した前記サービスの階層を保存し、前記保存したサービスの階層に関係するクライアントからのサービスの要求が所定の期間内になされた場合には、前記保存したサービスの階層に基づいてサービスを構成することを特徴とする請求項１から７のいずれか一つに記載のサービス提供方法。
【請求項１０】
前記サーバは、下位のサーバに対して、サービスの実行要求と共にポリシー情報の問い合わせ先を通知し、
前記下位のサーバは、
通知された問い合わせ先にポリシー情報を問い合わせ、
前記問い合わせによって取得したポリシー情報に基づいて、前記サービスを実行するサーバを選択して、階層的なサービスを構成し、
前記問い合わせによって取得したポリシー情報に基づいて、サービスの階層を構成するために、さらに下層のサービスを提供するサーバに対して、前記ポリシー情報の問い合わせ先を通知し、
前記サーバは、前記選択されたサーバによるサービスの実行結果をクライアントに送信することを特徴とする請求項１から８のいずれか一つに記載のサービス提供方法。
【請求項１１】
サービスを要求するクライアントと、
前記クライアントが要求するサービスに対するポリシー情報が予め蓄積されるポリシーデータベースと、
前記クライアントから要求されたサービスを階層的に構成してサービスを選択するサーバと、よって構成されるサービス提供システムであって、
前記サーバは、
前記クライアントからサービスの要求を受け取ると、前記要求に対応するポリシー情報を前記ポリシーデータベースから取得する情報取得手段と、
前記ポリシー情報に基づいて、前記サービスを実行するサーバを選択して、階層的なサービスを構成するサービス構成手段と、
前記選択されたサーバによるサービスの実行結果をクライアントに送信する結果送信手段と、を備えることを特徴とするサービス提供システム。
【請求項１２】
前記情報取得手段は、前記クライアントが許可するポリシー情報のみを取得することを特徴とする請求項１１に記載のサービス提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサービスのような、複数のサービスの階層的な組み合わせによって実現されるサービスにおいて、クライアントのサービス利用に関する多様なポリシーを反映したサービス及びサービスの提供方法に関する。
【背景技術】
【０００２】
インターネットのような計算機ネットワークに接続された複数の計算機で分散処理を行うために、クライアント・サーバ方式が一般的に用いられている。このクライアント・サーバ方式は、１つのサービス毎にクライアント計算機とサーバ計算機という２つの役割を持つ計算機によって構成される。ただし、この役割は固定的なものではなく、それぞれの計算機は、あるサービスにおいてはクライアント計算機となり、他のサービスにおいてはサーバ計算機となることもある。同様にあるサービスにおいてサーバ計算機となるものが、他のサービスにおいてはクライアント計算機になることもある。
【０００３】
また、クライアント計算機ではクライアントプログラムが動作し、サーバ計算機ではサーバプログラムが動作している。クライアントの役割はサーバに対してサービスの実行を要求し、当該サービスの実行結果を取得することである。サーバの役割はクライアントからのサービスの実行の要求を受けて、当該サービスを実行し、その結果をクライアントに返すことである。なお、本明細書では、クライアントプログラムが動作している計算機又はクライアントプログラムそのものを「クライアント」、サーバプログラムが動作している計算機又はサーバプログラムそのものを単に「サーバ」と呼ぶ。
【０００４】
クライアントプログラムやサーバプログラムは、コンパイラ型言語又はインタプリタ型言語で記述されている。コンパイラ型言語の場合はソースプログラムをコンパイラと呼ばれるプログラムによって計算機が実行できる形式（機械語）に変換した上で、計算機上で直接動作する。インタプリタ型言語では計算機上で動作しているインタプリタと呼ばれるプログラムによってソースプログラム又はそれを変換した中間コードを動的に解釈して実行される。
【０００５】
特に、ネットワークにインターネットを用いたクライアント・サーバ方式の実現方法として、クライアントプログラム及びサーバプログラムをインタプリタ言語によって記述することが多い。さらに、中間コードを実行するインタプリタである「バーチャルマシン」と呼ばれるプログラムを含むミドルウェアをサーバ計算機上で実行し、そのミドルウェア上でサーバプログラムを実行することでサービスを提供する方法が一般的である。このようなバーチャルマシンを含むミドルウェアを「アプリケーションサーバ」と呼ぶ。
【０００６】
また、クライアント・サーバ方式において、クライアントとサーバの間の通信をサービス毎に個別にプログラミングして実現することも可能であるが、サービスのインターフェイスの定義を予め規定し、規定した定義によってサービスを実現するサーバプログラムとそのクライアントプログラムのインターフェイス部分を自動生成する手法が一般的である。このインターフェイスの定義手段として知られている例としては、非特許文献１に示されるＷｅｂサービスにおけるＷＳＤＬ（Web Service Description Language）や、非特許文献２に示されるＣＯＲＢＡ（Common Object Request Broker Architecture）におけるＩＤＬ（Interface Definition Language）がある。Ｗｅｂサービス及びＷＳＤＬの詳細については、Ｗ３Ｃ（World Wide Web Consortium）発行の文献「Web Service Description Language」に記載があり、ＣＯＲＢＡ及びＩＤＬについてはＯＭＧ（Object Management Group,Inc.）発行の文献「Common Object Request Broker Architecture: Core Specification」に詳しく記載されている。なお、本明細書では、Ｗｅｂサービスとはインターネット上のサービス全体をさす広義のＷｅｂサービスではなく、後述するＸＭＬベースのＷｅｂサービス（ＸＭＬ Ｗｅｂサービスと呼ばれることもある）である。
【０００７】
これらのインターフェイス定義手段によって自動生成されるコードの多くは「遠隔手続き呼び出し」（ＲＰＣ：Remote Procedure Call）モデルに基づいている。遠隔手続き呼び出しでは、クライアントのサーバに対する要求とそのサービスの処理結果とが一対となっている。すなわち、クライアントがサーバに対するサービス実行要求を発行すると、その要求に対応する処理（サービス）がサーバで行われ、サービスの実行結果がクライアントに対して通知される一連の流れが不可分になっているものである。プログラム上では、この遠隔手続き呼び出しは関数呼び出し又はオブジェクト指向言語におけるクラスメソッド呼び出しによってネットワーク透過的に扱われる。
【０００８】
Ｗｅｂサービスにおいてもサービスの実行には遠隔手続き呼び出しモデルを用いることが多い。これを「同期式Ｗｅｂサービス」と呼ぶ場合もある。これに対し、「非同期式Ｗｅｂサービス」では、クライアントからのサービス実行要求に対してサービスの実行結果が非同期的に返される。すなわち、サービスを実行した結果が即時に返されるわけではない。なお、本明細書では、Ｗｅｂサービスは「同期式Ｗｅｂサービス」を前提とする。
【０００９】
また、前述のように、ＷｅｂサービスではＷＳＤＬによってサービスのインターフェイス記述が行われる。ＷＳＤＬ記述には、サービス実行時にクライアントがサーバに送信するメッセージのデータ形式の定義とサーバがクライアントに返信するサービスの実行結果メッセージのデータ形式の定義と、が含まれている。また、ＷＳＤＬ記述には、サービスを提供する場所に関する情報も含まれており、通常その場所の情報はサーバのＵＲＬ（Uniform Resource Locator）によって示される（例えば、非特許文献３参照。）。クライアント・サーバ間のメッセージはＸＭＬ（eXtensible Markup Language）を用いて記述されている（例えば、非特許文献４参照。）。
【００１０】
このメッセージは、クライアントプログラム又はサーバプログラムによってプログラムの内部形式からＸＭＬ形式に変換されネットワーク経由で転送される。なお、ＷＳＤＬ記述自体もＸＭＬで記述されている。このＸＭＬはＳＧＭＬ（Standard Generalized Markup Language）をベースとした一種のマークアップ言語であり、文書の構造を示すための記述（タグ）を文書中に記述する言語仕様の一つである。ＸＭＬでは文書の構造を定義するＤＴＤ（Document Type Definition）を別途定義することで文書構造を切り離して伝達することが可能である。Ｗｅｂサービスでは、このＸＭＬ形式のメッセージをＳＯＡＰ（Simple Object Access Protocol）と呼ばれるプロトコル（例えば、非特許文献５参照。）を用いてクライアント・サーバ間で送受信する。ＳＯＡＰは、通常はインターネットの標準プロトコルであるＨＴＴＰ（Hypertext Transfer Protocol）（例えば、非特許文献６参照。）でカプセル化されて送信される。
【００１１】
このように、ＸＭＬ形式をベースとしたＷｅｂサービスのメッセージの枠組みは、サービスが後述するような、インターフェイスをもつ「部品」（コンポーネント）として独立したものになるために重要な意味をもつ。
【００１２】
なお、ＵＲＬについてはＩＥＴＦ（Internet Engineering Task Force）発行の文献「RFC1738:Uniform Resource Locators（URL）」に、ＨＴＴＰについてはＩＥＴＦ発行の文献「RFC2616:Hypertext Transfer Protocol」に、ＸＭＬについてはＷ３Ｃ発行の文献「Extensible Markup Language(XML)1.0: W3C Recommendation」に、ＳＯＡＰについてはＷ３Ｃ発行の文献「Simple Object Access Protocol （SOAP） 1.1: W3C Note」にそれぞれ詳しい記載がある。
【００１３】
Ｗｅｂサービスは、クライアント・サーバ方式のサービス提供基盤の例として好適であり、サービスのインターフェイスの明確な定義によって、サービスのネットワーク内における部品（コンポーネント）化が容易になり、個々のサービス機能の汎用化が進む要因となる。このようなクライアント・サーバ方式のサービス提供の枠組みを用いてネットワーク上の分散システムを実現するための方法論のひとつが分散オブジェクトモデルである。分散オブジェクトモデルはコンポーネントオブジェクトモデル（Component Object Model）と呼ばれることもある。
【００１４】
分散オブジェクトモデルにおいては、サービスを、それを構成する部品の集合と考えて、それらの部品のひとつひとつをサービスとして実現する。次に、それらのサービスを組み合わせることで、全体のサービス機能を実現する。この様にすることでサービスの部品を再利用することができ、サービス構築の生産性を向上することができる。また、サービスの部品を用いて新しいサービスを作ることが可能になるので、サービスプロバイダは自身が提供するサービスのみに注力できるようになり、サービスの提供に必要なコストを削減できる。
【００１５】
このようなサービスの部品は、計算機ネットワークにおける再利用を可能にするために、レジストリと呼ばれるディレクトリサービスによって管理され、サービスの記述と共に保管される。レジストリとはサービスを登録し、インターフェイスや機能によって検索することが可能なサービスである。
【００１６】
新しいサービスを構築しようとするサービスプロバイダは、レジストリからサービスを検索し、構築しようとするサービスに必要な部品を調達し、それらを結合することで新しいサービスを構成する。このレジストリからの検索は動的なものであってもよく、サービスの実行時に動的にレジストリを検索し、所望のサービスを利用して、新しいサービスを構成することも可能である。ただし、サービスの利用のためのインターフェイスすなわちＷＳＤＬ記述は予め想定されたものでなくてはならない。すなわち個々のサービス機能そのものは静的なものである。
【００１７】
この分散オブジェクトモデルにおいては、各部品は一般に階層構造を持ち、ある部品は依存する部品によって構成されている。このような階層構造を持ったサービスでは、一般にそれを構成する個々のサービス間のつながりは希薄であり、公開されているインターフェイス定義とその機能によって結合されているのみである。それぞれのサービスはそれ単体で特定の機能を提供し、多くの場合、それぞれが別個のサービスプロバイダによって提供されている。
【００１８】
このようにサービスの部品がレジストリに豊富に登録されている状態になると、サービスプロバイダが階層構造をもつサービスを提供しようとするときには、サービスプロバイダは、提供しようとするサービスに固有の部分だけを実現すればよい。サービスに固有でない部分に関しては、レジストリから検索したサービスを利用することで実現できるからである。サービスの部品の市場が形成されると、特定のサービス部品の種類に対して、複数のサービスプロバイダが同種のサービスを提供することになる。すなわちサービスを構成しようとするときにレジストリを検索すれば、複数のサービスが検索結果として得られる。それらの複数のサービス部品から１つを選択することは、サービスを提供しようとするサービスプロバイダの意思（ポリシー）に依存している。このようにして構築されたサービスのなかから、クライアントがサービスを選ぶ基準は、上層のサービスを提供するサービスプロバイダに対するクライアントのポリシーか、あるいはサービスの内容に対するクライアントのポリシー等になる。
【００１９】
また、このポリシーを利用して、サーバ・クライアント方式のサービスを提供する方法として、クライアントからサーバに対して送る問い合わせメッセージに、サービスを提供するサーバを選択するためのポリシー情報を格納し、該ポリシー情報を受け取ったディレクトリサーバが該ポリシーの内容に基づいて、サーバを選択し、この選択したサーバをクライアントに通知するサーバ選択方法が知られている（例えば、特許文献１参照。）。
【特許文献１】特開平９−１９８３４６号公報
【非特許文献１】「Web Service Description Language」，World Wide Web Consortium
【非特許文献２】「Common Object Request Broker Architecture: Core Specification」，Object Management Group,Inc.
【非特許文献３】「RFC1738:Uniform Resource Locators（URL）」，Internet Engineering Task Force
【非特許文献４】「Extensible Markup Language（XML）1.0: W3C Recommendation」，World Wide Web Consortium
【非特許文献５】「Simple Object Access Protocol （SOAP） 1.1: W3C Note」，World Wide Web Consortium
【非特許文献６】「RFC2616:Hypertext Transfer Protocol」，Internet Engineering Task Force
【発明の開示】
【発明が解決しようとする課題】
【００２０】
前述のような階層構造を持つサービスを提供するための基盤が普及するにつれて、個々のサービスが提供するサービス内容とクライアントのサービスに対する要求との適合性が問題になる。サービスを提供するサービスプロバイダによっては、サービスの品質管理に消極的な場合もある。また、サービス提供の対価を不法に詐取しようとする悪意のサービスプロバイダが出現する可能性がある。また、サービスを利用したときに、そのサービスの実行結果がインターフェイスとして正常であったとしても、クライアントの意図していたものかは実行してみるまで不明である。クライアントのサービスに対する要求は多様であり、サービスの品質に関わるもの、サービスを提供しているサービスプロバイダの信用に基づいたものなど多種多様である。
【００２１】
このような様々なクライアントのサービスに対する要求（クライアントのポリシー）の全てに適合する単一のサービスを用意することは困難である。サービスがサービス品質等に関する様々な属性を持つ状況において、クライアントにとってサービスが利用価値を持つためには、クライアントのポリシーを汲み上げて、サービスの構成に反映させる仕組みが必要となる。
【００２２】
前述したように、サービスは、一般に複数のサービスの組み合わせとして階層構造を持っているので、サービスを構成する個々のサービスが、異なるサービスプロバイダによって提供されることとなる。そのため、クライアントのポリシーを満たすサービスを構成するためには、階層構造をなすそれぞれのサービスを提供するサービスプロバイダと、クライアントとの間で煩雑なやり取りが必要となる。
【００２３】
サービスに対するクライアントのポリシーは、サービスの構成レベルのポリシーと、サービスのアプリケーションレベルのポリシーに大別される。サービスの構成レベルのポリシーはサービスがどのような属性のサービスによって構成されているかということに関するクライアントの要求であり、アプリケーションレベルのポリシーは、サービスの構成が与えられたときの、そのサービスの実行時の動作に関する要求である。
【００２４】
一般に、サービスの構成レベルのポリシーはサービス利用毎に変わるものではなく固定的なものであり、クライアントとしてのエンドユーザのサービス品質への要望、組織に対する信用度、個人的な習慣や嗜好を表す。階層構造を持つサービスでは、上層のサービスの独自のポリシーによって下層サービスが選択されており、サービス全体を利用するクライアントはトップレベルサービスのサービス構成ポリシーを受け入れてサービスを利用することしかできない。クライアントのサービス構成レベルのポリシーを反映させるには、サービス全体を複数の候補から選択するしかなく、サービス構成の自由度は低くなる。
【００２５】
また、特許文献１に記載された発明のように、サービスにクライアントのポリシーを適用するためには、通常、サービスの実行時のパラメータとして、クライアントのポリシーを指定し、サービス側で入力されたポリシーに従ってサービスを実行するという方法が用いられる。この方法はアプリケーションレベルのポリシーを適用する場合には適切であるが、サービスの構成レベルのポリシーを適用すると、サービスの階層構造が大きくなるにつれて、サービスが多様なクライアントのポリシーに対応するためにパラメータ数が膨大なものになる欠点がある。パラメータ数の増加は、サービスプロバイダによるサービスの実装コストに直結するため、サービスの提供そのものが困難になる。さらに、上層のサービスが全ての下層サービスについてのパラメータを予め想定して受け付けることも困難である。
【００２６】
本発明は、このようなサービスの構成に対するポリシー適用の必要性から、以下の（Ａ）〜（Ｆ）の各項目のサービスの提供方法を提供することを目的とする。
（Ａ）サービスに対して、クライアントのポリシー情報を取得して、サービスの構成を変更できることが必要となる。前述のように階層構造を持つサービスにおいては、複数のサービスプロバイダによってサービスが構成されているため、トップレベルサービスに対してパラメータ指定することによるアプリケーションレベルでのサービスのカスタマイズ手法ではサービスの構成レベルのクライアントのポリシーに対応できないためである。
【００２７】
また、サービスの構成に対して、クライアントのポリシーを反映するためには、サービスにポリシー情報を伝達する手段が必要である。しかし、クライアントのポリシー情報は、プライバシーや機密情報に相当するものもあり、サービスの実行時にクライアントが全てのポリシー情報をトップレベルサービスに提供することは問題がある。従って、サービスに対して、サービスの構成に必要なポリシー情報のみを受け渡す仕組みが必要となる。
【００２８】
（Ｂ）クライアントのポリシーとサービスの構成が適合しているかを判断するための画一的な方法が必要になる。
【００２９】
（Ｃ）クライアントのポリシーを決定するときに、全てのポリシーをクライアント自身が決定することは、ポリシー情報の種類が多くなるにつれ困難になってくる。また、クライアントが特定の組織に属している場合には、クライアントが組織のポリシーに従わなければならない場合もある。このような場合に対応するため、第三者のポリシーをクライアントのポリシーと同じように、サービスの構成に反映できる手段が必要である。
【００３０】
（Ｄ）階層構造をもつサービスにおいて、サービスがクライアントのポリシーに従って、下層のサービスを構成するときでも、そのサービスプロバイダ自身のサービス提供に関するポリシーが存在する。このようなサービスプロバイダ自身のポリシーをサービスの構成に反映させるための手段が必要である。
【００３１】
（Ｅ）クライアントのポリシーとサービスのポリシーに対応する属性が適合しているかを判定するときに、サーバプログラム自身が判定することができる場合もあるが、そうでない場合もある。従って、そのような場合に、適合性を第三者によって判定する手段が必要である。
【００３２】
（Ｆ）以上のようなサービスの構成をクライアントのポリシーに従って変更するような枠組みを設けた場合に、サービスの実行毎に同様の手続きを行っていたのでは、サービスの実行効率に問題が生じる。
【課題を解決するための手段】
【００３３】
前述したように、サービスの構成について、クライアントのポリシーを反映することが困難な理由は、サービスを提供する基盤に、クライアントのポリシーを適用する枠組みが提供されていないためである。
【００３４】
そのため本発明は、クライアントのサービスの構成に関するポリシーを適用する枠組みを与える。具体的には前述の（Ａ）〜（Ｆ）の課題に対応して以下の（Ａ）〜（Ｆ）の手段を提供する。
【００３５】
（Ａ）クライアントのポリシー情報を予め蓄積するデータベース（ポリシーデータベース）を備える。ポリシー情報を要求に応じて返送する機能を持つポリシーサーバプログラム（以下単にポリシーサーバ）を稼動させる。この状況で、次のような手続きに基づいてクライアントのポリシーを適用したサービスを実行する。
【００３６】
最初に、サービスを実行しようとするクライアントは、サーバに対して、ポリシーサーバの位置情報と共にサービスの実行要求を出すと、サーバプログラムはサービスの構成に必要なポリシー情報をポリシーサーバに問い合わせる。次に、ポリシーサーバは、ポリシーデータベースを検索し、サーバにポリシー情報を返す。この際に、ポリシー情報の性質によってはポリシーサーバはクライアントにポリシー情報の送信について確認する。この処理によって必要以上のポリシー情報が流出することを避けることができる。次に、ポリシー情報を入手したサーバは、そのポリシー情報を用いてサービスを構成し、サービスを実行し、実行結果をクライアントに返す。また、階層構造をもつサービスに対して、階層的に前述した手続きを実行するために、依存するサービスに対して、ポリシーの問い合わせ先、すなわち、ポリシーサーバの位置情報を伝達する手段を設ける。
【００３７】
（Ｂ）クライアントのポリシーをサービスの構成に対して反映させるためには、クライアントのポリシー情報が明確になっていなければならない。そのため、クライアントのポリシーの記述について汎用的な書式を定め、ポリシーを定式化する。すなわち、ポリシー項目と、それに関する条件を一組として記述する。
【００３８】
（Ｃ）ポリシーデータベースの特定のポリシー項目に対する条件として、ポリシーサーバの位置情報を含める、そのポリシー項目に対する問い合わせについては、そのポリシーサーバに対して問い合わせが転送されるようにする。すなわち、サービスを提供するサーバプログラムがポリシーサーバに対してポリシーを問い合わせると、問い合わせを受けたポリシーサーバはポリシーデータベースを検索し、そのポリシー情報がポリシーサーバへの転送を指示している場合は、ポリシーサーバの位置情報を返送する。次にサーバプログラムは返送されたポリシーサーバの位置情報を用いて再度ポリシーを問い合わせる。
【００３９】
（Ｄ）サービスプロバイダが独自のポリシーデータベースを持ち、ポリシーサーバを稼動させる。サービスを提供するサーバはクライアントからサービスの要求があったときに、クライアントから受け取ったポリシーサーバの位置情報を、前記サービスプロバイダのポリシーデータベースに含める。次に、当該サーバは、クライアントのポリシーに応じて、依存する下層サービスを構成した後、それぞれの下層サービスに対して、前記サービスプロバイダのポリシーサーバの位置情報と共にサービスの要求を行う。
【００４０】
（Ｅ）クライアントのポリシー情報と、サービスのポリシー情報に対応する属性をサーバプログラムから取得し、前記取得したポリシー情報とサービスの属性が適合しているかを独自の判断基準に従って判定し、その判定結果をサーバプログラムに返送する機能を有するポリシー適合性判定サーバを設置する。
【００４１】
（Ｆ）サービスを提供するサーバがポリシーサーバに対して、クライアントのポリシー情報を問い合わせた結果を、クライアントのポリシーが許容する期間だけサーバに保存しておき、当該期間の間はクライアントから同一のサービス要求があった場合でもポリシーサーバに対して再問い合わせをせずに保存しておいた問い合わせ結果を使用してサービスを構成する。また、クライアントのポリシー情報に基づいてサービスを構成した結果を、クライアントのポリシーが許容する期間だけサーバプログラムによって保存しておき、当該期間のあいだはクライアントから同一のサービス要求があった場合でも、再度サービス構成処理を行うことはせず、保存したサービス構成を用いてサービスを実行する。
【発明の効果】
【００４２】
従って、本発明によると、サービスの階層構造の構成に必要で、かつクライアントの許可するポリシー情報だけを、サービスを提供するサーバプログラムに伝達し、複数のサービスプロバイダによって提供される階層構造を持ったサービスに対しても、クライアントのポリシーを反映したサービスの構成、実行を行うことが可能となる。具体的には前述の（Ａ）〜（Ｆ）の手段に対応して以下の（Ａ）〜（Ｆ）の効果を奏する。
【００４３】
（Ａ）クライアントのポリシー情報を蓄積するデータベース（ポリシーデータベース）を備え、ポリシー情報を要求に応じて返送する機能を持つポリシーサーバプログラムを稼動させることによって、サービスを提供するサーバがクライアントのポリシー情報を問い合わせることが可能になり、クライアントのポリシーに適合するようにサービスの階層を構成することが可能になる。また、サービスの実行時にポリシーサーバの問い合わせ先を通知する手段を設けることで、クライアントのポリシーに適合するようにサービスを構成する手続きを階層的に実行することが可能なり、サービスが複数のサービスプロバイダによって提供されるサービスで構成されている場合でも対応できるようになる。
【００４４】
（Ｂ）クライアントのポリシーの表現をポリシー項目とそれに対応する条件の組という形で汎用的に定め、ポリシー情報を定式化することにより、クライアントとサービスの間でポリシーの受け渡しが容易になる。また、クライアントのポリシーへのサービスの適合性を容易に判定することができる。このポリシー情報を前述のポリシーデータベースに蓄積しておき、サービスの構成時にポリシーサーバ経由で引き出し、サービスのポリシーに対応する属性と比較することで、サービスとクライアントのポリシーとの適合性を判定することができる。
【００４５】
（Ｃ）ポリシーデータベースの特定の項目に対する条件として、他のポリシーデータベースに関連するポリシーサーバの位置情報を含めることで、クライアントのポリシー情報の問い合わせが転送されるようになる。この方法によって、クライアントが第三者のポリシーを自分のポリシーとして採用することができ、クライアントが全ての詳細なポリシーを予め用意する負担を軽減することができる。また、組織に属するクライアントが組織のポリシーを採用することも容易となる。
【００４６】
（Ｄ）サービスプロバイダが独自のポリシーデータベースを持ち、ポリシーサーバを稼動させておき、クライアントのポリシーサーバの位置情報をサービスプロバイダの独自のポリシーデータベースに含めておくことで、クライアントのポリシーに加えて、サービスプロバイダのポリシーをサービスの構成及び実行に反映させることが可能になる。
【００４７】
（Ｅ）クライアントのポリシー情報と、サービスのポリシー情報に対応する属性とに基づいて、サービスがポリシーに適合しているかを判定する第三者によるポリシーの適合性判定サーバを設けることで、クライアントのサービスに要求するポリシーの表現の自由度が向上する。
【００４８】
（Ｆ）保存した問い合わせ結果を使用してサービスを構成する、または、保存しておいたサービス構成を用いてサービスを実行するので、クライアントのポリシーを反映したサービスの実行にかかる処理を効率化することが可能になる。
【発明を実施するための最良の形態】
【００４９】
以下に本発明の実施の形態を図面に基づいて説明する。
【００５０】
まず、本発明の第１の実施の形態における計算機ネットワークシステムの構成を、図１のブロック図を用いて説明する。
【００５１】
計算機２０１〜２０５は、それぞれがネットワーク接続９０１〜９０５を通じてネットワーク１０１に接続されている。
【００５２】
クライアント３０１は計算機２０１上で動作するサービスを要求し利用するクライアントプログラムであり、サーバ４０１は計算機２０２上で動作し、サーバ４０２は計算機２０３上で動作するサービスを提供するサーバプログラムである。
【００５３】
ポリシーサーバ５０１は計算機２０４上で動作するサーバのポリシー問い合わせに応答する機能を持つサーバであり、ポリシーデータベース６０１は計算機２０４上で動作するクライアントのポリシー情報や他のポリシー情報を蓄積しておくデータベースである。
【００５４】
レジストリ７０１は計算機２０６上で動作するどのサーバによってどのサービスが実行できるかを検索することができるディレクトリサーバである。
【００５５】
なお、ネットワーク１０１は、インターネットのような大規模なネットワークでもよいし、企業内ネットワークなどの比較的小規模のものでもよい。また、図１ではネットワーク１０１は単一のネットワークによって構成しているが、必ずしも一つのネットワークでそれぞれの計算機が接続されている必要はなく、通信を行う必要のある計算機同士が個別のネットワークを通じて接続されていてもよい。また、計算機２０１〜２０５は、ネットワーク接続を行える機能を持った、パーソナルコンピュータ、ワークステーション、サーバ専用機など、どのような計算機でもよい。
【００５６】
また、図１ではクライアントの計算機とサーバの計算機とを別々に示しているが、クライアント３０１とサーバ４０１、４０２のプログラムとが同一の計算機であってもよい。これは階層構造をもつサービスを構成しているサービスの場合には一般的なことである。
【００５７】
さらに、本実施の形態において、クライアント３０１、サーバ４０１、４０２等の各々のプログラムは同一の計算機上で動作していてもよく、ネットワーク内の異なる計算機に分散して動作していてもよい。
【００５８】
次に、以上のように構成した第１の実施の形態の計算機ネットワークシステムにおいて、サービスがＸＭＬベースのＷｅｂサービスである場合の動作を説明する。
【００５９】
図２は、第１の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理を説明する図である。
【００６０】
図２において、サーバ４０１及び４０２、レジストリ７０１、ポリシーサーバ５０１はＷｅｂサービスとして構成され、各々がサービスを提供できるようにシステムが実現されている。また、クライアント３０１が要求するサービスに対応したポリシー情報は、予めクライアント３０１によって設定され、ポリシーデータベース６０１に蓄積されている。
【００６１】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。この実行要求メッセージ１００１の送信と同時に、クライアント３０１のポリシーの問い合わせ先であるポリシーサーバ５０１のサービス記述（ＷＳＤＬ記述）又はポリシーの問い合わせ先であるポリシーサーバ５０１のＵＲＬを、サービス呼び出し時のパラメータとして、サーバ４０１に対して送信する。このサービス構成のトップレベルサービスであるサーバ４０１に対するポリシーサーバ５０１のサービス記述は、クライアント３０１によって、レジストリ７０１を検索するか、又は他の方法によって予め取得しておく。
【００６２】
次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１に送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【００６３】
このポリシーデータベースに蓄積されているポリシー項目とポリシー条件の組の例を図３に示す。図３では、例えば、「応答時間」というポリシー項目に対して「１秒以内」というポリシー条件が、「信頼性規格Ｂ」というポリシー項目に対して「認証取得していること」というポリシー条件が、「格付け機関Ａによる格付け」というポリシー項目に対して「格付けＡＡ以上」というポリシー条件が、それぞれ蓄積されており、このポリシー項目とポリシー条件とから構成されるポリシー情報は予め定型化された記述によって蓄積されている。
【００６４】
また、それぞれのポリシー項目には、ポリシー情報公開についての属性（公開規則）を付与してもよい。ポリシー情報に予め公開を限定する属性（例えば、「非公開」）が付与されていた場合、ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【００６５】
クライアント３０１では、この問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであった場合、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されたポリシー情報の問い合わせに対する結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【００６６】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を、結果メッセージ１００７として取得すると、取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。
【００６７】
具体的には、まず、サーバ４０１は、サービスが依存する下層サービスの候補となるサービス群（サービスを提供するサーバの情報）をレジストリ７０１から検索するために、レジストリ７０１に対して検索要求メッセージ１００８を送信する。レジストリ７０１は、検索要求メッセージ１００８を受け取ると、その要求に対する検索結果（サービスを実行可能な下位サーバの候補を示す情報）である検索結果メッセージ１００９を、サーバ４０１に対して送信する。
【００６８】
サーバ４０１では、取得した下層サービスの候補となるサービス群のそれぞれについてポリシー情報に対応する属性情報を取得し、その属性情報を結果メッセージ１００７によって取得したクライアントのポリシー情報と比較する。比較した結果、クライアントのポリシー情報に適合したサービスがあればそのサービスを用いて、下層のサービス階層を構成する。なお、図２では簡単のためサーバ４０２の一つのみを例示しているが、一般には複数の計算機によって複数の階層構造を持つ。
【００６９】
サーバ４０１は、下層サービスを構成すると決定したサーバ４０２に対してサービスの実行要求メッセージ１０１０を送信する。実行要求メッセージ１０１０を受け取ったサーバ４０２は、その実行要求に対する実行結果である結果メッセージ１０１１を送信する。また、サーバ４０１は実行要求メッセージ１０１０をサーバ４０２に対して送信すると共に、サーバ４０１が自ら実行するサービス（サーバ４０１が提供するサービス固有部分）を実行する。
【００７０】
そして、サーバ４０１は、下位サーバ４０２によるサービスの実行結果（実行結果メッセージ１０１１）と共に、サーバ全体（サーバ４０１、４０２）のサービスの実行結果であるサービス実行結果メッセージ１０１２をクライアント３０１に対して送信する。
【００７１】
以上のように構成された第１の実施の形態の計算機ネットワークシステムでは、クライアント３０１がサーバ４０１に対して実行要求を送信すると、サーバ４０１は、実行要求に対応するポリシー情報をポリシーサーバ５０１から取得する。サーバ４０１は、取得したポリシー情報に基づいて、レジストリ７０１に問い合わせ、サービスを実行する下位サーバ４０２を検索し、検索した下位サーバ４０２に対して実行要求を送信し、該実行要求の結果及びサーバ４０１の行う固有のサービスの実行結果をクライアント３０１に対して送信する。よって、階層構造を持つサービスにおいても、定型化したポリシー情報によってサービスを構成することができる。
【００７２】
また、ポリシーの公開に関する属性を用いることで、下位のサーバ４０２に対して、サービスの構成に必要なポリシーのみを受け渡すことができる。
【００７３】
次に、本発明の第２の実施の形態について説明する。
【００７４】
第２の実施の形態では、トップレベルのサーバ４０１がレジストリ７０１に対して問い合わせることなく、下位レベルのサーバに対して実行要求を行う点が相違する。なお、第１の実施の形態と同一の動作をする構成には同一の符号を付し、その説明は省略する。
【００７５】
図４は、第２の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理を説明する図である。
【００７６】
図４において、サーバ４０１及び４０２、ポリシーサーバ５０１はＷｅｂサービスとして構成され、サービスを提供できるようにシステムが実現されている。
【００７７】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１に送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【００７８】
ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【００７９】
クライアント３０１は、問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであれば、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されていたポリシー情報の問い合わせ結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【００８０】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を結果メッセージ１００７として取得すると、取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。
【００８１】
具体的には、サーバ４０１は、取得したポリシー情報を用いて、サーバ４０１が提供するサービスが依存する下位サーバの下層サービスを構成し、サービスの実行要求１０１０を、下位サーバ４０２に対して送信する。サーバ４０１は、サービスの実行要求１０１０と下位サーバ４０２に送信すると共に、クライアントのポリシーサーバ５０１のサービス記述（又はそのＵＲＬ）を送信する。
【００８２】
下層サービスを提供するサーバ４０２は、サービスの実行要求と共に受け取ったポリシーサーバのサービス記述に基づいて、クライアントのポリシーを問い合わせる問い合わせメッセージ１０１３を、ポリシーサーバ５０１に対して送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、既に、ポリシーデータベース６０１を検索して得ている検索結果１００４に基づいて、応答結果メッセージ１０１４を送信する。さらに、サーバ４０２は、同様に、依存する下層サービスを構成し、その下層サービスを提供する図示しないサーバに対して、サービスの実行要求をポリシーサーバのサービス記述（又はそのＵＲＬ）と共に送信する。
【００８３】
最後に、サーバ４０１は、下位サーバ４０２によるサービスの実行結果（実行結果メッセージ１０１１）と共に、サーバ全体（サーバ４０１、４０２）のサービスの実行結果であるサービス実行結果メッセージ１０１２をクライアント３０１に対して送信する。
【００８４】
なお、図４ではサーバ４０２の一階層のみの例を図示しているが、一般には前述した処理が図示しない下位サーバによって階層的に繰り返されることによって、サービス全体を構成するそれぞれの階層において、クライアントのポリシーを反映したサービスが構成され、サービスが実行される。
【００８５】
以上のように構成された第２の実施の形態の計算機ネットワークシステムでは、第１の実施の形態の効果に加え、サーバの構造を保持するディレクトリサーバを用いることなくポリシー情報を下位のサーバに送ることで、第１の実施の形態と同様の階層的サービスを提供することができる。
【００８６】
次に、本発明の第３の実施の形態について説明する。
【００８７】
第３の実施の形態では、計算機ネットワークシステムに複数のポリシーサーバ及びポリシーデータベースを持つ点で、前述した第１及び第２の実施の形態と相異する。なお、第１及び第２実施の形態と同一の動作をする構成には同一の符号を付し、その説明は省略する。
【００８８】
図５は、第３の実施の形態における計算機ネットワークシステムの構成を示したブロック図である。
【００８９】
計算機２０６は、ネットワーク接続９０６を通じてネットワーク１０１に接続されている。この計算機２０６には、ポリシーサーバ５０２及びポリシーデータベース６０２が備えられている。ポリシーサーバ５０２は、ポリシーサーバ５０１と同様にサーバのポリシー問い合わせに応答する機能を持つサーバであり、ポリシーデータベース６０２はポリシーデータベース６０１と同様に、クライアントのポリシー情報や他のポリシー情報を蓄積するデータベースである。
【００９０】
次に、第３の実施の形態の計算機ネットワークシステムについて、サービスがＸＭＬベースのＷｅｂサービスとして構成された場合の動作を説明する。
【００９１】
図６は、第３の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理を説明する図である。
【００９２】
図６において、サーバ４０１、ポリシーサーバ５０１及び５０２はＷｅｂサービスとして構成され、サービスを提供することができるようにシステムが実現されている。
【００９３】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１に送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【００９４】
ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【００９５】
クライアント３０１では、問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであれば、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されていたポリシー情報の問い合わせ結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【００９６】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を、結果メッセージ１００７として取得すると、取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。
【００９７】
ここで、ポリシー情報の問い合わせ結果が、ポリシーサーバ５０２への問い合わせを指示している場合を考える。具体的には、ポリシーデータベース６０１に図７に示す内容が蓄積されている場合である。図７では、「応答時間」というポリシー項目は「１秒以内」というポリシー条件がポリシーデータベース６０１に保存（蓄積）されているが、「信頼性規格Ｂ」というポリシー項目に対しては、「ポリシーサーバ５０２のサービス記述（ＷＳＤＬ記述）」が保存されている。これは、このポリシー項目に対しては、ポリシーサーバ５０２へのポインタとして記述されており、ポリシーサーバ５０２にポリシー条件を問い合わせる必要があることを意味している。
【００９８】
なお、「デフォルトのポリシー項目」というポリシー項目をポリシーデータベースに含めることも可能である。これは、サーバが問い合わせを行ったポリシーデータベースに、該当するポリシーが蓄積されていなかった場合に、「デフォルトのポリシー項目」で指定されたポリシーサーバに対して問い合わせる必要があることを、応答メッセージとして返信することを意味する。
【００９９】
ここで、サーバ４０１が、ポリシー問い合わせメッセージ１００２によって、ポリシー項目「信頼性規格Ｂ」を要求している場合には、ポリシーサーバ５０１は、ポリシーデータベース６０１の内容（図７）から、ポリシーサーバ５０２のサービス記述を、ポリシーの問い合わせに対する結果メッセージ１００７として送信する。サーバ４０１は、この問い合わせ結果メッセージ１００７を受け取ると、ポリシー情報を問い合わせる問い合わせメッセージ１０１５を、ポリシーサーバ５０２に対して送信する。
【０１００】
問い合わせメッセージ１０１５を受け取ったポリシーサーバ５０２は、該当するポリシー情報を検索するため、ポリシーデータベース６０２に対して検索要求メッセージ１０１６を送信する。検索要求メッセージ１０１６を受け取ったポリシーデータベース６０２は、該当するポリシーを検索し、その検索結果である検索結果メッセージ１０１７をポリシーサーバ５０２に対して送信する。検索結果メッセージ１０１７を受け取ったポリシーサーバ５０２は、サーバ４０１に対してポリシー情報の問い合わせ結果である結果メッセージ１０１８を送信する。
【０１０１】
最後に、サーバ４０１は、取得したポリシー情報に基づいてサービスを構成する。この構成の手順は前述した第１の実施の形態と同様である。そして、サービスの実行結果を実行結果メッセージ１０１２としてクライアント３０１に送信する。
【０１０２】
以上のように構成された第３の実施の形態の計算機ネットワークシステムでは、第１及び第２の実施の形態の効果に加え、ポリシーデータベースに蓄積されているポリシー情報に、他のポリシーサーバ位置情報（ポインタ）を含めることで、クライアントのポリシーに第三者のポリシーを含めることが可能となり、例えば、クラアイアントの属する組織のポリシーなどをサービスの実行への反映が可能となる。
【０１０３】
次に、本発明の第４の実施の形態について説明する。
【０１０４】
第４の実施の形態では、サーバを運営しているサービスプロバイダが独自のポリシーデータベースを持ち、クライアントのポリシーに独自のポリシー情報を加えて、サービスを構成する。なお、第１乃至第３の実施の形態と同一の動作をする構成には同一の符号を付し、その説明は省略する。
【０１０５】
図８は、第４の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理を説明する図である。
【０１０６】
図８において、サーバ４０１及び４０２、ポリシーサーバ５０１及び５０２はＷｅｂサービスとして構成され、サービスを提供できるようにシステムが実現されている。
【０１０７】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１に送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【０１０８】
ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【０１０９】
クライアント３０１では、問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであった場合、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されていたポリシー情報の問い合わせ結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【０１１０】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を結果メッセージ１００７として受け取ると、受け取ったポリシー情報に基づいてサーバのサービスの階層構造を構成する。
【０１１１】
ここで、サーバ４０１が提供するサービスのポリシー（サーバ４０１を運営しているサービスプロバイダのポリシー）をサービスの構成に反映させるために、サーバ４０１の独自のポリシーサーバ５０２に対して、要求メッセージ１０１９を送信する。ポリシーサーバ５０２はこの要求メッセージを受け取ると、ポリシーサーバ５０１へのポインタを、ポリシーデータベース６０２に送信し、ポリシーデータベース６０２に、デフォルトのポリシー項目としてポリシーサーバ５０１のサービス記述（ポインタ）を追加する。このときのポリシーデータベース６０２の内容の一例を図９に示す。
【０１１２】
図９に示すように、ポリシーデータベースの各項目に対して優先順位を示す項目を設ける。そして、クライアント３０１の設定したポリシー（ポリシーサーバ５０１によるポリシー）の優先度を、サーバ４０１の提供するサービスのポリシー（ポリシーサーバ５０２のポリシー）の優先度よりも高く設定している。よって、クライアント３０１の設定したポリシーは、サーバ４０１が提供するサービスのポリシーより優先的に適用される。
【０１１３】
次に、サーバ４０１は、結果メッセージ１００７によって取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。そして、下層サービスを提供するサーバ４０２にサービスの実行要求メッセージ１０１０を送信する。この際に、実行要求メッセージ１０１０と共にパラメータとしてポリシーサーバ５０２のサービス記述（又はそのＵＲＬ）を送信する。このサービス実行要求メッセージ１０１０を受け取ったサーバ４０２は、まず、ポリシーサーバ５０２に対してポリシー情報を問い合わせる問い合わせメッセージ１０２０を送信する。
【０１１４】
この問い合わせメッセージ１０２０を受け取ったポリシーサーバ５０２は、該当するポリシー情報を検索するため、ポリシーデータベース６０２に対して、検索要求メッセージ１０２１を送信する。検索要求メッセージ１０２１を受け取ったポリシーデータベース６０２は、該当するポリシーを検索し、その検索結果である検索結果メッセージ１０２３をポリシーサーバ５０２に対して送信する。検索結果メッセージ１０１７を取得したポリシーサーバ５０２は、ポリシー情報の問い合わせ結果である結果メッセージ１０２４を、サーバ４０２に対して送信する。
【０１１５】
サーバ４０２は、取得した結果メッセージ１０２４から、図９のような優先順位付きのポリシー情報を得る。そして、結果メッセージ１０２４にポリシーサーバ５０１へのポインタが含まれるので、サーバ４０２は、ポリシーサーバ５０１に対しても、ポリシー情報を問い合わせる問い合わせメッセージ１０２５を送信し、結果メッセージ１０２６を受け取る。そして、ポリシーサーバ５０２から得たポリシー情報の優先度を考慮して、ポリシーサーバ５０１及び５０２から得たポリシー情報から、ポリシーサーバ５０１を優先したポリシー項目に対応する最終的なポリシー条件を決定する。
【０１１６】
このポリシー情報を用いて、サーバ４０２はさらに下層のサービスを階層的に構成する。そして、サーバ４０１は、下位サーバ４０２によるサービスの実行結果（実行結果メッセージ１０１１）と共に、サーバ全体（４０１、４０２）のサービスの実行結果であるサービス実行結果メッセージ１０１２をクライアント３０１に対して送信する。
【０１１７】
なお、図８ではサーバ４０２の一階層のみの例を図示しているが、サーバ４０２等の下位サーバによる下層のサービスにおいても独自のポリシーサーバ及びポリシーデータベースを設置して、そのサービスを提供しているサービスプロバイダのポリシーを反映してサービスを構成し、サービスを実行することもできる。
【０１１８】
以上のように構成された第４の実施の形態の計算機ネットワークシステムでは、第１から第３の実施の形態の効果に加え、サービスプロバイダが独自のポリシーデータベース６０２を備え、サービス構成時に下位サーバ４０２に対してサービスプロバイダのポリシーサーバ５０２の位置情報と共にサービス要求を行うので、サービスプロバイダのポリシー情報をクライアント３０１のポリシー情報（ポリシーデータベース６０１）に加えてサービスの構成に反映させることが可能になる。
【０１１９】
次に、本発明の第５の実施の形態について説明する。
【０１２０】
第５の実施の形態では、第三者の認証機関であるポリシー適合性判定サーバ８０１によって、ポリシーが正当なものであるかを判断する。なお、第１乃至第４の実施の形態と同一の動作をする構成には同一の符号を付し、その説明は省略する。
【０１２１】
図１０は、第５の実施の形態における計算機ネットワークシステムの構成を示したブロック図である。
【０１２２】
計算機２０７は、ネットワーク接続９０７を通じてネットワーク１０１に接続されている。この計算機２０７には、ポリシー適合性判定サーバ８０１が備えられている。このポリシー適合性判定サーバ８０１は、クライアントのポリシーとサーバの提供するサービスとが適合しているか否かを判断する機能を持つサーバである。
【０１２３】
次に、第５の実施の形態の計算機ネットワークシステムについて、サービスがＸＭＬベースのＷｅｂサービスとして構成された場合の動作を説明する。
【０１２４】
図１１は、第５の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理を説明する図である。
【０１２５】
図１１において、サーバ４０１、レジストリ７０１、ポリシーサーバ５０１、５０２、ポリシー適合性判定サーバ８０１はＷｅｂサービスとして構成され、サービスを提供することができるようにシステムが実現されている。
【０１２６】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【０１２７】
ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【０１２８】
クライアント３０１では、問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであれば、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されていたポリシー情報の問い合わせ結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【０１２９】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を、結果メッセージ１００７として取得すると、取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。
【０１３０】
ここで、サーバ４０１は、サービスの依存する下層サービス候補（サービスを提供するサーバの情報）を得るため、レジストリ７０１に対して検索要求メッセージ１００８を送信する。レジストリ７０１は、検索要求メッセージ１００８を受け取ると、その要求に対する検索結果（サービスを実行可能な下位サーバの候補を示す情報）である検索結果メッセージ１００９を、サーバ４０１に対して送信する。
【０１３１】
サーバ４０１は、取得したクライアントのポリシー情報と、下層サービス候補の各々のサービスのポリシー情報に対応する属性とが適合するかを、適合性サーバ８０１を用いて判定する。まず、サービス候補の各々のサービスの属性情報を取得する。そして、ポリシー適合性判定要求メッセージ１０２７を、ポリシー適合性判定サーバ８０１に対して送信して、各サービスについてクライアントのポリシーに適合するかを判定する。ポリシー適合性判定サーバ８０１は、ポリシー適合性判定要求メッセージ１０２７に対する判定結果である判定結果メッセージ１０２８をサーバ４０１に対して送信する。
【０１３２】
その結果、サーバ４０１はクライアントのポリシー情報に適合しているサービスを提供するサーバのみを利用してサービス階層を構成し、構成したサービス階層によって実行したサービスの結果を、結果メッセージ１０１２としてクライアント３０１に送信する。
【０１３３】
以上のように構成された第５の実施の形態の計算機ネットワークシステムでは、第三者の機関であるサービス認証性適合サーバによって、クライアントのポリシーが要求するサービスとサーバの提供するサービスとが適合しているかを判定することができる。よって、例えば、サービス品質等の規格に適合していることをサービスの属性として要求するポリシーがあったときに、当該規格を認証している機関が運営するポリシー適合性判定サーバによって、その属性の正当性を確認することができる。
【０１３４】
次に、本発明の第６の実施の形態について説明する。
【０１３５】
第６の実施の形態では、クライアントのポリシー情報の問い合わせ結果やサービスの構成結果を、トップレベルのサーバにキャッシュとして保存しておき、再び同一の要求があったときに該キャッシュを参照して、サービスの提供を行うサーバを構成するようにした。なお、第１乃至第５の実施の形態と同一の動作をする構成には同一の符号を付し、その説明は省略する。
【０１３６】
第６の実施の形態の計算機ネットワークシステムにおける、クライアントのポリシーを反映したサービスを階層的に構成して実行される処理について、図２を参照して説明する。
【０１３７】
まず、クライアント３０１は、サーバ４０１に対して、クライアントの所望するサービスの実行要求である実行要求メッセージ１００１を送信する。次に、サービスの実行要求メッセージ１００１を受けたサーバ４０１は、必要とするポリシー情報を問い合わせる問い合わせメッセージ１００２を、ポリシーサーバ５０１に送信する。この問い合わせメッセージ１００２を受け取ったポリシーサーバ５０１は、該当するポリシー情報を検索するため、ポリシーデータベース６０１に対して検索要求メッセージ１００３を送信する。検索要求メッセージ１００３を受け取ったポリシーデータベース６０１は、該当するポリシーを検索し、その検索結果である応答結果メッセージ１００４をポリシーサーバ５０１に対して送信する。
【０１３８】
ポリシーサーバ５０１は、クライアント３０１に対して、そのポリシー情報をサーバ４０１に対して公開してよいかどうかを問い合わせる問い合わせメッセージ１００５を送信し、その問い合わせに対する返答である結果メッセージ１００６を受け取る。
【０１３９】
クライアント３０１では、問い合わせメッセージ１００５を受けて、ユーザに対して直接問い合わせるなどの手法によって、ポリシー情報の公開の可否を確認する。例えば、この問い合わせに対する結果メッセージ１００６がポリシーの公開を許容するものであれば、又は、ポリシー情報に公開を限定する属性が付されていなければ、ポリシーサーバ５０１は、サービス実行要求メッセージ１００１によって要求されていたポリシー情報の問い合わせ結果である結果メッセージ１００７を、サーバ４０１に対して送信する。ただし、ポリシー情報の公開をクライアント３０１が許容しなければ、その時点でサービスの実行は中止される。
【０１４０】
次に、サーバ４０１が、問い合わせメッセージ１００２によって要求したポリシー情報を、結果メッセージ１００７として取得すると、取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。
【０１４１】
ここで、サーバ４０１は、その問い合わせ結果（ポリシー情報）に対して予め設定した有効期間が終了するまでの間はキャッシュメモリに保存（キャッシング）しておく。そして、ポリシー情報の有効期間の間に、同一のクライアント３０１からの同一のサービス要求があった場合は、再度ポリシーサーバ５０１への問い合わせることなく、メモリに保存しておいたポリシー情報を用いて、サービスを構成し、サービスの実行結果であるサービス実行結果メッセージ１０１２を、クライアント３０１に対して送信する。
【０１４２】
また、他の方法として、ポリシーデータベースの各項目に同様の有効期間を予め設定しておく。前述したように、サーバ４０１は、クライアント３０１のサービス実行要求メッセージ１００１を受けて、サーバ４０１はポリシーサーバ５０１に対して、ポリシー情報の問い合わせメッセージ１００２を送信し、その問い合わせ結果である結果メッセージ１００７を取得する。
【０１４３】
ここで、サーバ４０１は取得したポリシー情報に基づいて下位のサーバによるサービスの階層構造を構成する。この際に、そのサービスの構成情報をサーバ４０１に備えられたメモリ等に保存（キャッシング）しておく。そして、ポリシー情報の有効期間の間に、同一のクライアント３０１からのサービス要求があった場合には、再度サービス階層を構成することなく、保存しておいたサービス構成を用いてサービスを実行する。
【０１４４】
以上のように構成された本発明の第６の実施の形態の計算機ネットワークシステムでは、クライアントのポリシー情報の問い合わせ結果やサービスの構成結果をキャッシュとして一定期間保存しておき、再び同一の要求があったときに該キャッシュを参照して、下位のサーバによるサービスの階層構造を構成して、サービスを提供する。この最適化処理によって本発明によるポリシーを適用したサービスの実行に要する時間を削減することができ、サービスのコストを低減できる。
【産業上の利用可能性】
【０１４５】
本発明は、具体的には、以下に説明するサービスに適用することができる。
【０１４６】
（ａ）株式売買等で、ポートフォリオを作成するサービスを利用する場合に、銘柄に関するポリシーを予めポリシーデータベースに入力しておく。該ポリシーを適用してポートフォリオ作成サービスを呼び出すと、様々な信託会社や証券会社のサービスから、ポリシーに適合するサービスを選択して実行することで、ポリシーに適合したポートフォリオを作成することができる。
【０１４７】
（ｂ）ネットワーク分散した計算サービスを利用する際に、予め計算を依頼するサービスに関するポリシー（計算の信頼度、計算の終了時間）を入力しておく。該ポリシーを適用して計算サービスを呼び出すと、ポリシーに適合するサービスだけを利用して計算が行われる。
【０１４８】
（ｃ）製品の部品調達サービスを利用するときに、予め部品メーカーや部品販売店に関するポリシーを入力しておく。該ポリシーを適用して部品調達サービスを利用するときに、ポリシーにマッチする部品調達が行われる。部品を構成する部品についても階層的にサービスが構成されていれば、全ての部品についてポリシーを反映させることが可能となる。
【０１４９】
（ｄ）人材バンクから人材確保サービスを利用するときに、予め人材に関するポリシーを入力しておくと、該ポリシーを適用して人材確保サービスを利用すると、該ポリシーに適合した所望の人材が確保できる。
【０１５０】
（ｅ）会社組織に属する社員がサービスを利用するときに、予め社員のポリシーデータベースに組織が反映するようにしておく。該ポリシーを適用してサービスを利用すると、社員によるサービスの実行が組織のポリシーに違反することがないようにすることができる。
【図面の簡単な説明】
【０１５１】
【図１】本発明の第１の実施の形態の計算機ネットワークシステムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態におけるサービスの実行処理の説明図である。
【図３】本発明の第１の実施の形態のポリシーデータベースに蓄積されているポリシー情報の説明図である。
【図４】本発明の第２の実施の形態におけるサービスの実行処理の説明図である。
【図５】本発明の第３の実施の形態の計算機ネットワークシステムの構成を示すブロック図である。
【図６】本発明の第３の実施の形態におけるサービスの実行処理の説明図である。
【図７】本発明の第３の実施の形態のポリシーデータベースに蓄積されているポリシー情報の説明図ある。
【図８】本発明の第４の実施の形態におけるサービスの実行処理の説明図である。
【図９】本発明の第４の実施の形態におけるポリシーデータベースに蓄積されているポリシー情報の説明図である。
【図１０】本発明の第５の実施の形態の計算機ネットワークシステムの構成を示すブロック図である。
【図１１】本発明の第５の実施の形態におけるサービスの実行処理の説明図である。
【符号の説明】
【０１５２】
１０１  ネットワーク
２０１〜２０７  計算機
３０１  クライアント
４０１、４０２  サーバ
５０１、５０２  ポリシーサーバ
６０１、６０２  ポリシーデータベース
７０１  レジストリ
８０１  ポリシー適合性判定サーバ
９０１〜９０７  ネットワーク接続
【図１】
2005056079.tif 000003
【図２】
2005056079.tif 000004
【図３】
2005056079.tif 000005
【図４】
2005056079.tif 000006
【図５】
2005056079.tif 000007
【図６】
2005056079.tif 000008
【図７】
2005056079.tif 000009
【図８】
2005056079.tif 000010
【図９】
2005056079.tif 000011
【図１０】
2005056079.tif 000012
【図１１】
2005056079.tif 000013