(57)【特許請求の範囲】
【請求項１】
コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるアクティブコンテンツ流通システムであって、
上記コンテンツ制御情報格納部は、
上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法を定めたポリシーとして、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定めた協調ポリシー、並びに、
上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報格納部に格納された上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより上記アクティブコンテンツの自らの制御を監視するための制御条件を定めた自律ポリシーを記憶するポリシー記述記憶部と、
上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶部とを有し、
上記端末は、
上記ポリシー記述記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記協調相手候補の協調ポリシー及び上記アクティブコンテンツの協調ポリシー間の一貫性を調べ、両者の協調ポリシー間に矛盾が存在しない場合には、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行い、上記アクティブコンテンツと上記協調相手候補との間で合意のとれた協調条件を決定し、該合意のとれた協調条件を上記実行状態記憶部に記憶する制御部を有し、
上記制御部は、上記実行状態記憶部に記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施部を有する
アクティブコンテンツ流通システム。
【請求項２】
上記実行状態記憶部は、
さらに、上記端末に対して次に行う命令を保存するアクティビティ実行キュー、上記協調相手に対して有効な協調ポリシーである有効協調ポリシー、上記協調相手に対して有効な自律ポリシーである有効自律ポリシー、上記協調相手からのコンテンツ要求を含むメッセージを保存するメッセージキューを記憶し、
上記制御部は、
上記アクティビティ実行キューの先頭に保存されている命令に対応する協調ポリシーを上記記憶部から取り出し、その協調ポリシーを有効協調ポリシーとして上記実行状態記憶部に記憶し、
上記アクティビティ実行キューから次に実行すべき命令を取り出し、該命令に関する自律ポリシーを上記実行状態記憶部から取り出し、その自律ポリシーに従って上記アクティビティ実行キューから取り出した上記次に実行すべき命令を実施し、
上記メッセージキューを調べ、上記アクティブコンテンツ自身のメッセージが届いている場合には、上記有効自律ポリシーに従って、上記アクティブコンテンツ自身のメッセージをフィルタリングを行い、フィルタリング処理後のメッセージを上記メッセージキューに戻す
ことを特徴とする請求項１記載のアクティブコンテンツ流通システム。
【請求項３】
コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるアクティブコンテンツ流通システムであって、
上記アクティブコンテンツの上記コンテンツ制御情報格納部は、
上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法として、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定めた協調ポリシーを記憶する協調ポリシー記憶部と、
上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報格納部に格納された上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより上記アクティブコンテンツの自らの制御を監視するための制御条件を定めた自律ポリシーを記憶する自律ポリシー記憶部と、
上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶部と、
上記協調ポリシー記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行う制御部と
を備え、
上記制御部は、
上記協調ポリシーが登録され、該登録された協調ポリシーを解釈する協調ポリシー登録部と、
上記アクティブコンテンツの上記協調ポリシーと、上記他のアクティブコンテンツの他の協調ポリシーとの間で行われる協調条件の上記すり合わせ時に、上記他のアクティブコンテンツの他の協調ポリシーと上記アクティブコンテンツの上記協調ポリシーとの間の一貫性を調べ、両者の協調ポリシー間に矛盾しない要求があるか否かを判断することにより、上記他のアクティブコンテンツの他の協調ポリシーが上記アクティブコンテンツの上記協調ポリシーを満足するか否かを判定し、合意のとれた協調条件を決定し、その協調条件を上記実行状態記憶部に記憶する協調条件決定部と、
上記協調条件決定部により決定された協調条件に従って、上記アクティブコンテンツの上記コンテンツと上記他のアクティブコンテンツの上記他のコンテンツとを合成して複合コンテンツを生成するための制御を行う実行制御部と、
上記実行状態記憶部に記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施部と
を備えたことを特徴とするアクティブコンテンツ流通システム。
【請求項４】
コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるために上記端末のコンピュータ装置に実装して所定機能を実現させるためのアクティブコンテンツ流通プログラムであって、
上記アクティブコンテンツの上記コンテンツ制御情報に対して、
上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法として、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定める協調ポリシー機能と、
上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより監視するための制御条件を定める自律ポリシー機能と、
上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶機能と、
上記協調ポリシー記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行う制御機能と
を実現し、
上記制御機能では、
上記協調ポリシーが登録にされ、該登録された協調ポリシーを解釈する協調ポリシー登録機能と、
上記アクティブコンテンツの上記協調ポリシーと、上記他のアクティブコンテンツの他の協調ポリシーとの間で行われる協調条件の上記すり合わせの際に、上記他のアクティブコンテンツの他の協調ポリシーと上記アクティブコンテンツの上記協調ポリシーとの間の一貫性を調べ、両者の協調ポリシー間に矛盾しない要求があるか否かを判断することにより、上記他のアクティブコンテンツの他の協調ポリシーが上記アクティブコンテンツの上記協調ポリシーを満足するか否かを判定し、合意のとれた協調条件を決定し、その協調条件を記憶する協調条件決定機能と、
上記協調条件決定機能により決定された協調条件に従って、上記アクティブコンテンツの上記コンテンツと上記他のアクティブコンテンツの上記他のコンテンツとを合成して複合コンテンツを生成するための制御を行う実行制御機能と、
上記協調条件決定機能で記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施機能と
を実現することを特徴とするアクティブコンテンツ流通プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、コンテンツと、コンテンツを制御するコンテンツ制御情報を有するアクティブコンテンツを端末間で流通させるアクティブコンテンツ流通システム及びアクティブコンテンツ流通プログラムに関する。
【背景技術】
【０００２】
従来、例えば、コンテンツの一部分のみを提供したり，利用期限を設定したりする提供コンテンツに関する部分利用の制御を簡易に実現できるようにするために、提供者装置では，提供するコンテンツを所定の暗号鍵により暗号化し，その暗号化コンテンツに利用制限に関する利用形態情報を付加してカプセルコンテンツを作成し利用者装置へ送信している。そして、利用者装置では，受信したカプセルコンテンツを暗号化コンテンツと利用形態情報とに分離し，ユーザのコンテンツに対する利用要求があったときに，利用要求の内容と利用形態情報との照合により利用可否を判定し，利用可である場合に，暗号化コンテンツを復号してユーザに利用させるコンテンツ提供システムが知られている（特許文献１参照）。
【０００３】
また、コンテンツ所有者の意に反した流通が行われないようにコンテンツの流通を制御、管理しつつ、コンテンツを効率的に幅広く流通させることができるようにするために、ネットワークを介して相互に通信可能な装置間でコンテンツを流通する際に、各装置のコンテンツの扱い方に関するポリシーであるサービスポリシーを相互に交換する。そして、双方の装置において相手装置から受信したサービスポリシーを自装置のサービスポリシーと比較することにより、相手装置とコンテンツの流通を実施するか、実施しないかの判定を行い、双方の装置において相手装置とコンテンツの流通を実施すると判定した場合に限り、個々のコンテンツの流通段階へ進むコンテンツ流通方法も提案されていた（特許文献２参照）。
【０００４】
さらに、この出願の発明者らによるコンテンツをエージェント化することにより、柔軟でかつ自由なコンテンツ流通及び利用を可能にするフレームワーク、具体的には、エージェント化したコンテンツの振る舞いを形式的に定義し、例題に基づきその有効性を示したモバイルエージェントによる柔軟なコンテンツ流通を実現するアクティブコンテンツも知られていた（非特許文献１参照）。
【０００５】
【特許文献１】特開2002-353953号公報
【特許文献２】特開2003-186729号公報
【非特許文献１】「情報処理学会論文誌：データベース」、Vol.44 No.SIG 18（TOD20）別刷、P.45〜57、モバイルエージェントによる柔軟なコンテンツ流通を実現するアクティブコンテンツ、平成15年12月発行、社団法人  情報処理学会
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載のコンテンツ提供システムでは、第１に、コンテンツに状況に応じた利用モジュールの選択機能がないため、どのような状況でどう選択するのかを示すポリシーを記述・変更するのが困難である。第２に、コンテンツに利用制約に基づいて アクセスコントロールを変更する仕組みがないため、利用者のポリシーとのすり合わせを行なうことができない。第３に、コンテンツに利用条件に基づいて内容を変更する機能がないため、適切な抽象度で部分閲覧ができないという不都合があった。
【０００７】
また、特許文献２に記載のコンテンツ流通方法では、第１に、ポリシー表現の柔軟性に関して、すり合わせの仕組みが固定的であるためポリシーのすりあわせる方法を個別に指定できず、また、パラメータの解釈が固定的であるためポリシーの拡張（種類の増減）が困難であり、また、矛盾のないポリシーの追加・削除が困難である。
【０００８】
第２に、ポリシー遵守機構に関し、ポリシーを遵守する仕組みがクライアントに１００％まかされているため、ポリシー違反を見つけることが困難であり、さらに、ポリシーを含む情報のカプセル化ができない。
第３に、ポリシーの制御動作に関して、複合コンテンツを構成するように制御できず、また、コンテンツ同士の協調動作を構成するように制御できないという不都合があった。
【０００９】
また、非特許文献１に記載のモバイルエージェントによる柔軟なコンテンツ流通を実現するアクティブコンテンツでは、アクティブコンテンツの実現方法の詳細や、具体的なアルゴリズムや定義方法については述べられていない。また、協調方法の一部の例について述べているのにとどまっているため、実現方式が具体的に提示されていないという不都合があった。
【００１０】
そこで、本発明は、コンテンツの振舞を制御するポリシーの定義、変更・追加が容易となり、ポリシーの動的なすり合わせを可能にすることができるアクティブコンテンツ流通システム、アクティブコンテンツ流通プログラム及びアクティブコンテンツ流通方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
上記課題を解決し、本発明の目的を達成するため、本発明のアクティブコンテンツ流通システムは、コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるアクティブコンテンツ流通システムであって、上記コンテンツ制御情報格納部は、上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法を定めたポリシーとして、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定めた協調ポリシー、並びに、上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報格納部に格納された上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより上記アクティブコンテンツの自らの制御を監視するための制御条件を定めた自律ポリシーを記憶するポリシー記述記憶部と、上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶部とを有し、上記端末は、上記ポリシー記述記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記協調相手候補の協調ポリシー及び上記アクティブコンテンツの協調ポリシー間の一貫性を調べ、両者の協調ポリシー間に矛盾が存在しない場合には、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行い、上記アクティブコンテンツと上記協調相手候補との間で合意のとれた協調条件を決定し、該合意のとれた協調条件を上記実行状態記憶部に記憶する制御部を有し、上記制御部は、上記実行状態記憶部に記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施部を有するものである。
【００１２】
また、本発明のアクティブコンテンツ流通システムは、コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるアクティブコンテンツ流通システムであって、上記アクティブコンテンツの上記コンテンツ制御情報格納部は、上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法として、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定めた協調ポリシーを記憶する協調ポリシー記憶部と、上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報格納部に格納された上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより上記アクティブコンテンツの自らの制御を監視するための制御条件を定めた自律ポリシーを記憶する自律ポリシー記憶部と、上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶部と、上記協調ポリシー記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行う制御部と、を備え、上記制御部は、上記協調ポリシーが登録され、該登録された協調ポリシーを解釈する協調ポリシー登録部と、上記アクティブコンテンツの上記協調ポリシーと、上記他のアクティブコンテンツの他の協調ポリシーとの間で行われる協調条件の上記すり合わせ時に、上記他のアクティブコンテンツの他の協調ポリシーと上記アクティブコンテンツの上記協調ポリシーとの間の一貫性を調べ、両者の協調ポリシー間に矛盾しない要求があるか否かを判断することにより、上記他のアクティブコンテンツの他の協調ポリシーが上記アクティブコンテンツの上記協調ポリシーを満足するか否かを判定し、合意のとれた協調条件を決定し、その協調条件を上記実行状態記憶部に記憶する協調条件決定部と、上記協調条件決定部により決定された協調条件に従って、上記アクティブコンテンツの上記コンテンツと上記他のアクティブコンテンツの上記他のコンテンツとを合成して複合コンテンツを生成するための制御を行う実行制御部と、上記実行状態記憶部に記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施部とを備えたものである。
【００１３】
また、本発明のアクティブコンテンツ流通プログラムは、コンテンツを格納するコンテンツ情報格納部と、上記コンテンツ情報格納部に格納されたコンテンツの利用、流通及び／又は提供を制御するコンテンツ制御情報を格納するコンテンツ制御情報格納部とを有するアクティブコンテンツを端末と他の端末との間で流通させるために上記端末のコンピュータ装置に実装して所定機能を実現させるためのアクティブコンテンツ流通プログラムであって、上記アクティブコンテンツの上記コンテンツ制御情報に対して、上記アクティブコンテンツの上記コンテンツの使われ方を示す利用制約、上記コンテンツを上記アクティブコンテンツ流通システム内で流通させる際の流通方法及び／又は上記コンテンツを他の端末に提供する際の提供方法として、上記アクティブコンテンツが協調する他のアクティブコンテンツとなる協調相手、上記アクティブコンテンツと上記他のアクティブコンテンツとの間に親と子の従属関係を築く際の属性を示す協調形式、該協調形式に基づいて上記アクティブコンテンツと上記他のアクティブコンテンツとの間で送受信するメッセージの経路及び通信方向を示す協調方法及び／又は協調場所の協調条件を定める協調ポリシー機能と、上記アクティブコンテンツと上記協調相手との間で合意された上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件に適合するように、上記アクティブコンテンツ自体の上記コンテンツ制御情報を動的に変更又は新たなコンテンツ制御情報を上記コンテンツ制御情報格納部に追加し、該変更又は追加されたコンテンツ制御情報を参照することにより監視するための制御条件を定める自律ポリシー機能と、上記コンテンツの利用、流通及び／又は提供の際における、上記協調ポリシーの協調条件に従った上記コンテンツの実行状態を記憶する実行状態記憶機能と、上記協調ポリシー記憶部に記憶された上記アクティブコンテンツの上記協調ポリシーを取り出し、上記アクティブコンテンツの上記協調ポリシーに定められた協調条件に合致しそうな協調ポリシーを有する協調相手を検索し、検索して得られた協調相手を協調相手候補として上記実行状態記憶部に記憶し、上記協調相手候補の協調形式及び上記アクティブコンテンツの協調形式に基づいて、上記アクティブコンテンツの上記コンテンツの利用方法、利用範囲及び／又は流通範囲に関する交渉メッセージを通信を介して上記協調相手候補に送信し、該交渉メッセージに対する上記協調相手候補からの返信メッセージに含まれる協調条件が合格基準に達しているか否かを判定することにより、上記アクティブコンテンツと上記協調相手候補との間で上記アクティブコンテンツの上記コンテンツ及び／又は上記他のアクティブコンテンツの上記他のコンテンツの利用方法、利用範囲及び／又は流通範囲の制御条件のすり合わせを行う制御機能と、を実現し、上記制御機能では、上記協調ポリシーが登録にされ、該登録された協調ポリシーを解釈する協調ポリシー登録機能と、上記アクティブコンテンツの上記協調ポリシーと、上記他のアクティブコンテンツの他の協調ポリシーとの間で行われる協調条件の上記すり合わせの際に、上記他のアクティブコンテンツの他の協調ポリシーと上記アクティブコンテンツの上記協調ポリシーとの間の一貫性を調べ、両者の協調ポリシー間に矛盾しない要求があるか否かを判断することにより、上記他のアクティブコンテンツの他の協調ポリシーが上記アクティブコンテンツの上記協調ポリシーを満足するか否かを判定し、合意のとれた協調条件を決定し、その協調条件を記憶する協調条件決定機能と、上記協調条件決定機能により決定された協調条件に従って、上記アクティブコンテンツの上記コンテンツと上記他のアクティブコンテンツの上記他のコンテンツとを合成して複合コンテンツを生成するための制御を行う実行制御機能と、上記協調条件決定機能で記憶された上記合意のとれた協調条件内の協調場所を読み出して、該協調場所で上記合意のとれた協調条件内の協調形式に従って、子のメッセージの一部を親のメッセージとして処理することにより上記アクティブコンテンツと上記協調相手との間に親子関係を築く協調スタイル実施機能とを実現するものである。
【００１６】
これにより、具体的作用として、機能面では、第１に、アクティブコンテンツの動的な連携相手・方法の決定・変更が可能となるため、アクティブコンテンツ同士の協調による複合アクティブコンテンツの動的合成が可能となり、コンテンツとサービスの協調により、コンテンツの表示方法・加工方法の動的決定・変更が可能となり、サービス同士の動的連携が可能となる。第２に、アクティブコンテンツの情報のアクセスコントロールが可能となるため、アクセス相手に応じたアクティブコンテンツの内容変更・情報のフィルタリングが可能となり、アクセスコントロール方法の動的決定・変更が可能となる。
【００１７】
また、使い方の面では、第１に、アクティブコンテンツへのさまざまなポリシーの追加・変更が可能となり、第２に、状況に応じたアクティブコンテンツの表示内容・表示場所の変更が可能となる。第３に、アクティブコンテンツの自律的配布・流通が可能となり、第４に、コンテンツへの機能の動的追加・変更・削除が可能となる。
【発明の効果】
【００１８】
本発明によれば、アクティブコンテンツの協調方式の柔軟性を確保することができ、また、協調条件に基づくアクティブコンテンツの流通・利用を図ることができ、さらに、アクティブコンテンツの協調の実施の際の制御を簡単に行なうことができる。
【００１９】
協調方式の柔軟性の面では、第１に、協調ポリシー定義及び協調ポリシー制御によりさまざまな状況のアクティブコンテンツの流通に対しても、ポリシーを遵守可能にすることができ、動的に協調方式を変更・決定させることが可能となる。第２に、協調ポリシーの変更容易性によりポリシーを矛盾なく追加、変更可能とすることができ、ポリシーを容易に拡張・変更可能とすることができ、ポリシーを状況に応じて変更・決定可能とすることができる。第３に、協調ポリシーの独立性により協調方式だけ決めておけば中身の仕組みをブラックボックスにすることが出来る。ただし、アクティブコンテンツの間に特別な関係（親子関係など）を結ぶときは、両者に同じ解釈器が必要となる。
また、協調条件に基づくアクティブコンテンツの流通・利用の面では、協調条件下で安全性が確保されるためユーザ端末に存在するプライバシーの保護が可能となる。
【００２０】
また、協調の実施方法の面では、第１に、協調ポリシーの変更容易性を確保することができ、第２に、協調の実施の制御を簡単にすることができ、第３に、効率・性能の面で効率のよいアクティブコンテンツ流通・表示が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明の実施の形態について、適宜、図面を参照しながら、詳細に説明する。
図１は、アクティブコンテンツの概要を示す図である。
図１において、アクティブコンテンツ１は、コンテンツ２と、コンテンツ２の動作を制御するプログラム３とを有して構成されている。プログラム３には、コンテンツ２の制御条件を示すポリシー４が設けられている。ポリシー４は、例えば、コンテンツ２の製作者７や編集者などが、５で示すように、コンテンツ２の利用制約（使われ方）、コンテンツ２の流通方法、表示方法（使い方）などの情報が、６で示すように埋め込まれている。
【００２２】
ここで、アクティブコンテンツ１は、コンテンツを利用するエージェント・サービス１０に流通して利用される。コンテンツを利用するエージェント・サービス１０には、流通するコンテンツ２を利用するための制御条件を示す利用ポリシー１１が設けられている。このとき、利用ポリシー１１は、利用者１３により、１２で示すように、利用方法、利用範囲、及び流通条件が埋め込まれている。
【００２３】
そして、アクティブコンテンツ１とコンテンツを利用するエージェントやサービス（エージェント・サービス１０）との間で、コンテンツ２を利用するために、１４で示すように交渉が行われる。交渉１４は、提供側のアクティブコンテンツ１のコンテンツ２の制御条件を示すポリシー４と、利用側のコンテンツを利用するエージェント・サービス１０の流通するコンテンツ２を利用するための条件を示す利用ポリシー１１との条件の一致、部分一致又は不一致の結果を得るためのすりあわせを通信を介して行う。
【００２４】
これにより、すりあわされた条件に従い、提供側のアクティブコンテンツ１のコンテンツ２を、提供側のポリシー４の制御条件に適合した形式に、例えば、暗号化８したり、変換９したりする。
【００２５】
従って、提供側のポリシー４と利用側の利用ポリシー１１の双方に適合したコンテンツの流通を実現することができる。このとき、流通先での提供側のポリシー４を遵守することにより、流通先でアクティブコンテンツ１の制御が自律的に実行される。
ここで、エージェントやサービス（エージェント・サービス１０）は、アクティブコンテンツと同様の構成を有していて、アクティブコンテンツの概念に含まれるものであり、アクティブコンテンツの一態様である。この場合、エージェント・サービス１０は、それ自体には、コンテンツが設けられていない、他から提供されるコンテンツの利用をするものである。また、エージェント・サービス１０がそれ自体にコンテンツを設けるようにしてもよい。
【００２６】
図２は、前提環境を示す図である。
図２において、ホスト２１ではアクティブコンテンツ２３に他のアクティブコンテンツ２４を合成２５することにより、複合アクティブコンテンツ２２を生成することが可能となっている。複合アクティブコンテンツ２２は、例えば、図２に示したアクティブコンテンツ２３のポリシーと、他のアクティブコンテンツ２４のポリシーを考慮したポリシーを関係付けすることにより、合成２５される。
【００２７】
また、他のアクティブコンテンツ２４は、それ自体でユーザーエージェント・インターフェース２６により利用２７されることが可能となっている。ユーザーエージェント・インターフェース２６は、他のアクティブコンテンツ２４を利用するための機能を有するものである。ユーザーエージェント・インターフェース２６は、例えば、図２に示した他のアクティブコンテンツ２４のポリシーが自分のポリシーに適合した場合、他のアクティブコンテンツ２４を利用する。
【００２８】
また、複合アクティブコンテンツ２２や他のアクティブコンテンツ２４は、ネットワーク上のさまざまなサービスを利用２９することが可能となっている。例えば、情報変換・情報出力サービス２８は、ホスト２１とネットワークを介して接続されていて、コンテンツの情報変換・情報出力を行うサービスであり、複合アクティブコンテンツ２２から利用２９される。情報変換・情報出力サービス２８は、そして、図２に示した複合アクティブコンテンツ２２の要求に従い、コンテンツをディスプレイ等に出力する。
【００２９】
また、複合アクティブコンテンツ２２は、ホスト２１からネットワークを介して接続されている他のホスト３０へ流通３１することが可能となっている。このとき、複合アクティブコンテンツ２２は、流通３１された先の他のホスト３０で例えば、図２に示した複合アクティブコンテンツ２２のポリシーに適合するようにコンテンツの利用の仕方を制御する。
このように、前提環境として、アクティブコンテンツとそれに関連付けられるサービス（エージェント）がネットワーク上に分散して存在していることになる。
【００３０】
そして、アクティブコンテンツは、コンテンツの取り扱いを管理するため、コンテンツの流通を管理するため、さらにコンテンツの出力・表示方法（内容、手段）を管理するめ、及びシステム間の連携のための制御条件を定めたポリシーを有している。
ここで、アクティブコンテンツは、ホスト上のコンピュータで動作するオペレーティングシステム（ＯＳ）の中に組み込まれて動作するミドルウェアプログラムによって動作する。ミドルウェアプログラムは、アクティブコンテンツの実行するための後述する各機能を備えている。
【００３１】
図３は、ポリシーの概要を示す図である。
図３において、アクティブコンテンツ４１は、コンテンツ４２と、コンテンツ４２を制御する制御記述４３と、他のアクティブコンテンツとの協調方法を定めた協調ポリシー４６と、自アクティブコンテンツの変更方法を定めた自律ポリシー４５とを有している。制御記述４３は、コンテンツの生成・表示、編集・合成・流通などを制御する制御フローが記述された部分である（４４参照）。
【００３２】
また、協調ポリシー４６には、アクティブコンテンツ４１が協調する他のアクティブコンテンツとなる協調相手、他のアクティブコンテンツとの協調方法、他のアクティブコンテンツとの協調スタイル、他のアクティブコンテンツとの協調場所などの制御条件が定められている（４７参照）。また、自律ポリシー４５には、アクティブコンテンツ４１が自らの制御を動的に変更したり、監視したりする制御条件が定められている（５５参照）。
【００３３】
ここで、アクティブコンテンツ４１が他のアクティブコンテンツ４８と協調する際には、まず第１に、点線５７で示すように、アクティブコンテンツ４１の協調ポリシー４６と他のアクティブコンテンツ４８の協調ポリシー５０とのすりあわせと合意により、協調条件５８が成立される。
第２に、点線５９で示すように、協調準備としてアクティブコンテンツ４１のコンテンツ４２と、制御記述４３と、自律ポリシー４５と、協調ポリシー４６の内容をさらに他のアクティブコンテンツ５１となるようにコピーして移動することにより、さらに他のアクティブコンテンツ５１の中に子コンテンツ５２と、制御記述５３と、自律ポリシー５４と、協調ポリシー５６を生成する。
【００３４】
第３に、点線６０で示すように、協調準備として他のアクティブコンテンツ４８とさらに他のアクティブコンテンツ５１との間に親子関係を形成する。このとき、他のアクティブコンテンツ４８のコンテンツが親コンテンツ４９に、さらに他のアクティブコンテンツ５１のコンテンツが子コンテンツ５２に関係付けられる。
【００３５】
第４に、点線６１で示すように、協調条件に基づいて他のアクティブコンテンツ４８とさらに他のアクティブコンテンツ５１との協調が行われる。
第５に、点線６２で示すように、協調条件の遵守方法の決定により、さらに他のアクティブコンテンツ５１の自律ポリシー５４の制御条件に従って、制御記述５３の内容に追加・変更６３が施される。このとき、制御記述５３の追加・変更６３された内容を参照６４することが可能である。
【００３６】
このように、さまざまなポリシーをアクティブコンテンツに埋め込むことにより、ポリシーの制御条件がアクティブコンテンツの流通過程で遵守されるようになる。
ここで、協調ポリシーは、例えば、協調相手とプロトコル（協調手順）を定めたり、協調場所として属性や相対関係で指定したり、協調アーキテクチャとしてカプセル化もサポートすることができる。また、協調スタイル（親子関係）や、協調方法（メッセージ経路・方向）、さらには、協調中の制約・制限を設けることも可能である。
【００３７】
また、ポリシーの遵守機構として、自律ポリシーによる遵守・監視を行なうことができ、フレームワークによるポリシーの遵守と制御記述の監視を行なうことができ、親子関係の親による子の遵守・監視を行なうことができ、さらに、流通するアクティブコンテンツの振る舞いを自律ポリシーにより制限・制御することができる。
さらに、自律ポリシーに基づいて、協調条件の遵守方法の動的決定を行うことにより、自己の制御記述を変更することができる。これにより、アクティブコンテンツの流通・利用に必要な環境・状況に対する対応を自律ポリシーに記述して準備・約束を実行することができ、制御記述の設計が容易になる。
【００３８】
図４は、本実施の形態のシステム構成図である。
図４において、ネットワーク８１上にホスト７１、ホスト７７、ホスト８２、及びホスト８５が接続されている。ホスト７１には、アクティブコンテンツ７２、アクティブコンテンツ７３、アクティブコンテンツ７５と、これらを解釈して制御するプレース７６が設けられている。ここで、アクティブコンテンツ７２と、アクティブコンテンツ７３とは、協調条件７４により協調されている。プレース７６は、協調条件７４により、アクティブコンテンツ７２とティブコンテンツ７３とが協調されるように制御し、アクティブコンテンツ７５は単独で制御する。
【００３９】
また、ホスト７７には、アクティブコンテンツ７８と、これを解釈して制御するプレース７９が設けられている。ここで、ホスト７１のアクティブコンテンツ７３と、ホスト７７のアクティブコンテンツ７８とは、協調条件８０により協調されている。ホスト７１のプレース７６とホスト７７のプレース７９は、協調条件８０によりホスト７１のアクティブコンテンツ７３とホスト７７のアクティブコンテンツ７８とが協調されるように制御する。
【００４０】
また、ホスト８２には、他のホストのアクティブコンテンツを利用するサービス８３と、これを解釈して制御するプレース８４が設けられている。プレース８４は、利用可能な他のホストのアクティブコンテンツを探して、これを利用するように制御する。サービス８３は、他のホストから提供されるアクティブコンテンツのデータを受け取って表示や再生を行う、あるいは、それを変換して返す。
【００４１】
また、ホスト８５には、他のホストのアクティブコンテンツを利用するユーザーエージェント８６と、これを解釈して制御するプレース８７が設けられている。プレース８７は、利用可能な他のホストのアクティブコンテンツを探して、これを利用するように制御する。ユーザーエージェント８６は、他のホストから提供されるアクティブコンテンツを受け取って利用し、又は他のホストにアクティブコンテンツを提供して利用させる双方向の利用形態である。
【００４２】
ここで、ホスト７１のプレース７６とホスト７７のプレース７９、ホスト８２のプレース８４とホスト８５のプレース８７には、各アクティブコンテンツのプログラムを解釈して制御するためのプログラムが格納されている。
【００４３】
図５は、協調条件の成立と遵守手順を示す図である。図５は、図４に示したホスト７１のアクティブコンテンツ７２と、ホスト７７のアクティブコンテンツ７８との協調条件８０の成立と遵守手順を示している。
図５において、まず第１に、９１で示すように、ホスト７１のプレース７６は、ホスト７１のアクティブコンテンツ７３のポリシーに適合する協調相手を探し、ホスト７７のプレース７９は、ホスト７７のアクティブコンテンツ７８のポリシーに適合する協調相手を探して、互いのポリシーに全部一致、一部一致又は条件付一致の結果となるように、交渉を行う。
【００４４】
そして、第２に、９２で示すように、ホスト７１のプレース７６とホスト７７のプレース７９は、図４に示した協調条件８０の成立によりホスト７１のアクティブコンテンツ７３とホスト７７のアクティブコンテンツ７８とが協調されるように制御する。このとき、ホスト７１のアクティブコンテンツ７３と、ホスト７７のアクティブコンテンツ７８とは、図４に示した協調条件８０により協調されている。
【００４５】
この協調により、第３に、９３で示すように、ホスト７７のアクティブコンテンツ７８をコピーしてホスト７１へ移動することにより、ホスト７１にアクティブコンテンツ７２が設けられる。ここで、アクティブコンテンツ７２と、アクティブコンテンツ７３とは、９４で示すように、図４に示した協調条件８０が遵守されることにより、協調条件７４により協調される。
【００４６】
図６は、アクティブコンテンツ及びプレースの構成図である。
図６において、ホスト１０１には、アクティブコンテンツ１０２と、アクティブコンテンツ１０２を解釈して制御するプレース１１２が設けられている。アクティブコンテンツ１０２は、流通可能なカプセル化されたコンテンツであり、コンテンツ素材を格納するコンテンツ素材格納部１０３と、コンテンツ素材を制御するためのコンテンツ制御情報を格納するコンテンツ制御情報格納部１０４を有している。
【００４７】
ここで、ホスト１０１のアクティブコンテンツ１０２のコンテンツ制御情報格納部１０４は、協調ポリシーを記述した協調ポリシー記述１０５と、制御フローを記述した制御記述１０６と、自律ポリシーを記述した自律ポリシー記述１０７と、実行状態の情報を記憶する実行状態１２７を有している。なお、自律ポリシー記述１０７は、必要に応じて設けられるようにしてもよい。
【００４８】
さらに、コンテンツ制御情報格納部１０４には、必要に応じて、協調ポリシーを登録する協調ポリシー登録部１０８と、協調条件を決定する協調条件決定部１０９と、交渉のための交渉ポリシーを記述した交渉ポリシー記述１１０と、ポリシーに従った変換ルールを記述した変換ルール記述１１１が設けられる。
【００４９】
また、ホスト１０１のプレース１１２は、協調ポリシーを登録する協調ポリシー登録部１１３と、協調条件を生成して決定する協調条件生成決定部１１４と、自律ポリシーに従って制御記述を変更し、これを監視すると共に制御記述を実行する制御変更・監視・実行部１１５と、協調スタイルを実施する協調スタイル実施部１２８とを有している。
【００５０】
また、ホスト１０１と接続される他のホスト１１６には、ユーザーエージェント１１７と、ホスト１０１から提供されるアクティブコンテンツ１０２からのメッセージを解釈するプレース１１９が設けられている。 
【００５１】
他のホスト１１６のユーザーエージェント１１７は、協調ポリシーを記述した協調ポリシー記述１１８を有している。ホスト１１６のプレース１１９は、協調ポリシーを登録する協調ポリシー登録部１２０と、協調条件を生成して決定する協調条件生成決定部１２１とを有している。
【００５２】
また、ホスト１０１は、アクティブコンテンツ１０２のコンテンツ制御情報格納部１０４のソフトウェア（ホスト上のコンピュータで動作するオペレーティングシステム（ＯＳ）の中に組み込まれて動作するミドルウエアのプログラム）を実行する主体となるコンピュータのハードウェア機能を有するものである。
【００５３】
また、ホスト１０１のプレース１１２とホスト１１６のプレース１１９には、アクティブコンテンツ１０２のプログラムを解釈して制御するためのプログラムが格納されている。
これにより、コンピュータがアクティブコンテンツのプログラムを実行することにより後述するアクティブコンテンツの各機能を実行し、プレースのプログラムを実行することにより後述するプレースの各機能を実行する。
【００５４】
このように構成されたアクティブコンテンツ及びプレースの動作を以下に説明する。
ここで、第１に、ホスト１０１のアクティブコンテンツ１０２のコンテンツ制御情報格納部１０４の協調ポリシー記述１０５から、ホスト１０１のプレース１１２の協調ポリシー登録部１１３に対して、協調ポリシー記述１０５に記述した協調ポリシーを登録すると共に、登録した協調ポリシーに適合するユーザーエージェント１１７の検索を依頼する。
【００５５】
次に、第２に、ホスト１０１のプレース１１２の協調条件生成決定部１１４は、ホスト１０１のアクティブコンテンツ１０２の協調ポリシー登録部１０８と、ユーザーエージェント１１７の協調ポリシー記述１１８との間の合意１２３に基づいて、協調条件１２４を生成して決定する。
そこで、第３に、ホスト１０１のアクティブコンテンツ１０２のコンテンツ制御情報格納部１０４の制御記述１０６から、ホスト１０１のプレース１１２の制御変更・監視・実行部１１５に対して、アクティブコンテンツ１０２とユーザーエージェント１１７の協調条件１２４を満たす制御の実行を依頼する。
【００５６】
これにより、例えば、ホスト１０１のプレース１１２の制御変更・監視・実行部１１５は、協調条件１２４に基づいて、アクティブコンテンツ１０２とユーザーエージェント１１７の間で、１２６で示すように、生のコンテンツの送受信を行うように制御する。
また、このとき、ホスト１０１のアクティブコンテンツ１０２のコンテンツ制御情報格納部１０４の自律ポリシー記述１０７から、ホスト１０１のプレース１１２の制御変更・監視・実行部１１５に対して、１２５に示すように、自律ポリシーに従った制御記述変更の実行を依頼する。これにより、ホスト１０１のプレース１１２の制御変更・監視・実行部１１５は、自律ポリシーに従って制御記述を変更し、これを監視すると共に制御記述を実行する。
【００５７】
なお、ここで、アクティブコンテンツ１０２は、コンテンツを保持し、コンテンツを流通する相手を選択して流通・利用を促す主体となる機能を有するものである。
プレース１１２は、アクティブコンテンツが動作するのに必要な機能を提供する機能を有するものである。プレース１１２、１１９は、アクティブコンテンツが流通するホスト１０１、利用したいホスト（ユーザーエージェント１１７）には必ず配置しておく必要があるものである。
【００５８】
また、協調条件１２４は、アクティブコンテンツ１０２がどういう動作をしてもよいかの取り決めを示すものである。アクティブコンテンツ１０２と他のアクティブコンテンツ/プレース１１２、１１９/ユーザーエージェント１１７間で通信を行う際に必ずこの取り決めを決定する。
なお、サービスは、コンテンツのデータ変換や表示などアクティブコンテンツがコンテンツの生成/表示などに利用できる外部機能を有するものである。
また、ユーザーエージェント１１７は、制御記述を持たずに協調ポリシー記述１１８のみを有していてもよく、協調ポリシーの記述に基づいてアクティブコンテンツとの協調を行う機能を有するものである。
【００５９】
図７は、アクティブコンテンツの各部の構成図であり、図７Ａは制御記述の構造例（ワークフローで記述した場合）、図７Ｂは協調ポリシー記述の構造例、図７Ｃは変換ルール記述の構造例、図７Ｄは自律ポリシー記述の構造例、図７Ｅは協調条件の構造例、図７Ｆはコンテンツ素材格納部例、図７Ｇは実行状態の構造例である。
【００６０】
図７Ａにおいて、制御記述１０６の構造例（ワークフローで記述した場合）は、ホスト上のコンピュータに対するアクティビティ（命令）を定義するアクティビティ定義１３１と、制御フローを定義する制御フロー定義１３２と、データフローを定義するデータフロー定義１３３と、メッセージ通信を定義するメッセージ通信定義１３４と、イベント処理を定義するイベント処理定義１３５と、内部データに対するアクセスを定義する内部データアクセス定義１３６と、サービスの利用を定義するサービス利用定義１３７とを有している。
【００６１】
図７Ｂにおいて、協調ポリシー記述１０５の構造例は、協調相手を定義する協調相手定義１３８と、協調方法を定義する協調方法定義１３９と、協調内容を定義する協調内容定義１４０と、協調効果を定義する協調効果定義１４１と、交渉手順を定義する交渉手順定義１４２とを有している。
図７Ｃにおいて、変換ルール記述１１１の構造例は、制御記述を選択するルールを示す制御記述選択ルール１４４と、自律ポリシーを選択するルールを示す自律ポリシー選択ルール１４５とを有している。
【００６２】
図７Ｄにおいて、自律ポリシー記述１０７の構造例は、実行の制約を記述する実行制約１４６と、制御記述を書き換えるためのアスペクトを記述するアスペクト記述１４７とを有している。
図７Ｅにおいて、協調条件１２４の構造例は、協調する相手となる協調相手１４８と、協調する内容である協調内容１４９と、協調する方法である協調方法１５０と、協調する効果である協調効果１５１とを有している。
【００６３】
図７Ｆにおいて、コンテンツ素材格納部１０３の例は、オーディオデータは、ｍｐ３形式のファイル、ビデオデータは、ａｖｉ形式のファイルで格納される。
図７Ｇにおいて、実行状態１２７の構造例は、ホスト上のコンピュータに対するアクティビティ（命令）を実行のためにためておくアクティビティ実行キュー１５４と、協調する相手を保存する協調相手インスタンスリスト１５５と、有効な協調ポリシーのリストである有効協調ポリシーリスト１５６と、有効な自律ポリシーのリストである有効自律ポリシーリスト１５７と、制御の状態を保存する制御状態１５８とを有している。制御状態１５８は、メッセージキューやデータマッピング１５９を含んでいる。
【００６４】
図８は、プレースの各部の構成図であり、図８Ａは協調条件生成決定部の構造例、図８Ｂは制御変更・監視・実行部の構造例である。
図８Ａにおいて、協調条件生成決定部１１４の構造例は、協調ポリシーの内容を解釈する協調ポリシー解釈部１６１と、交渉を実行する交渉実行部１６２と、協調条件を実行する協調条件実行部１６３とを有している。
【００６５】
図８Ｂにおいて、制御変更・監視・実行部１１５の構造例は、制御記述を解釈する制御記述解釈部１６７と、自律ポリシーの内容を解釈する自律ポリシー解釈部１６８とを有していて、必要に応じて、ホスト上のコンピュータに対するアクティビティ（命令）を他のホスト上で実行する場合にアクティビティを他のホストに転送するアクティビティ転送部１６４と、実行制約を解釈する実行制約解釈部１６５と、変更ルールを解釈する変更ルール解釈部１６６と、アスペクト挿入部１６９が設けられる。
【００６６】
次に、上述したように構成されたアクティブコンテンツの動作を詳細に説明すると共に、各種制御記述、協調ポリシー記述、自律ポリシー記述の例を示しながら具体的に説明する。
図９は、アクティブコンテンツのライフサイクルの動作を示すフローチャートである。
図９において、プレースの動作を開始すると、まず、アクティブコンテンツの生成を行う（ステップＳ１）。具体的には、１７１に示すように、製作者の意図に従ってプレース上の制御変更・監視・実行部１１５がアクティブコンテンツの構成要素の一部、または全てをメモリ上にロードすることによりアクティブコンテンツを生成する。又は、ユーザからの指示であるロードアクションによりユーザーエージェントのプレース上の制御変更・監視・実行部１１５がアクティブコンテンツの構成要素の一部、または全てをメモリ上にロードすることによりアクティブコンテンツを生成する。
【００６７】
次に、アクティブコンテンツの流通及び利用が行われる（ステップＳ２）。具体的には、ステップＳ１で生成されたアクティブコンテンツがプレース上の制御変更・監視・実行部１１５により制御記述を実行することにより、例えば、ユーザーエージェントに流通されて、ユーザーエージェントにより利用される。
【００６８】
そして、アクティブコンテンツの消滅が行われる（ステップＳ３）。具体的には、１７２に示すように、製作者の意図に従ってプレース１１２上の制御変更・監視・実行部１１５が制御記述１０６のプログラムを実行することによりアクティブコンテンツ１０２を削除する。又は、アクティブコンテンツ１０２に対する制御記述１０６の実行の終了により消滅する。
【００６９】
図１０は、アクティブコンテンツの実行の動作を示すフローチャートである。図１０は、例えば、図６に示すアクティブコンテンツ１０２側の動作である。
図１０において、まず、制御記述の断片を選択する（ステップＳ１１）。具体的には、１８１に示すように、プレース１１２上の制御変更・監視・実行部１１５が次にアクティブコンテンツ１０２に対して実行すべき制御記述１０６の断片とそれに対応した協調ポリシー記述１０５を選択する。
【００７０】
そして、実行すべき制御記述があるか否かを判断する（ステップＳ１２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が次にアクティブコンテンツ１０２に対して実行すべき制御記述１０６があるか否かを判断する。
【００７１】
判断ステップＳ１２で次に実行すべき制御記述があるときは、協調ポリシーの登録及び検索を行う（ステップＳ１３）。具体的には、１８２に示すように、プレース１１２上の協調ポリシー登録部１１３は、アクティブコンテンツ１０２に対して次に実行すべき制御記述１０６に対応するものであって、登録されている協調ポリシー記述１０５を読み出して、他のアクティブコンテンツの協調ポリシーと合致するものを検索する。判断ステップＳ１２で次に実行すべき制御記述がないときは、終了する。
【００７２】
そして、協調条件のすり合せを行う（ステップＳ１４）。具体的には、１８３に示すように、プレース１１２上の協調条件生成決定部１１４は、ステップＳ１３で検索した相手（例えば、図６に示したユーザーエージェント１１７）と互いの協調ポリシー記述１０５，１１８に基づいてすり合わせを行って、合意１２３のとれた協調条件１２４を決定する。
【００７３】
次に、協調相手が見つかったか否かを判断する（ステップＳ１５）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ１３で検索した相手（例えば、図６に示したユーザーエージェント１１７）と互いの協調ポリシー記述１０５，１１８に基づいてすり合わせを行って、協調条件１２４による合意１２３がとれたか否かを判断する。ここで、プレース１１２上の協調条件生成決定部１１４は、１８４に示すように、自身の協調ポリシー記述１０５を変更する場合のタイムアウトを考慮して、例外処理を発生させるように処理してもよい。
【００７４】
判断ステップＳ１５で協調相手が見つかったときは、協調準備を行う（ステップＳ１６）。具体的には、プレース１１２上の協調スタイル実施部１２８は、１８５に示すように、合意１２３のとれた協調条件１２４をもとに、協調のための準備を行う。協調のための準備は、例えば、ホスト１０１から協調相手（図６に示したユーザーエージェント１１７）へのアクティブコンテンツ１０２の移動、アクティブコンテンツ１０２と協調相手（例えば、図６に示したユーザーエージェント１１７）との親子関係付け、協調のための協調相手（例えば、図６に示したユーザーエージェント１１７）へのメッセージのルーティング、アクティブコンテンツ１０２のカプセル化などである。
判断ステップＳ１５で協調相手が見つからなかったときは、ステップＳ１３へ戻って、ステップＳ１３〜ステップＳ１５までの判断及び処理を、繰り返す。
【００７５】
次に、協調相手がすべて決定したか否かを判断する（ステップＳ１７）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ１１で選択した制御記述において、 協調相手が複数必要なときは、ステップＳ１３へ戻って、ステップＳ１３〜ステップＳ１７までの判断及び処理を、１８６で示すように、協調する相手の数だけループする。
【００７６】
上述したステップＳ１１〜ステップＳ１７までの制御記述に対応する協調ポリシーに従った協調相手を見つけるための判断及び処理が、必須の処理である。これにより、プレース１１２上の制御変更・監視・実行部１１５が、制御記述１０６に対応した協調ポリシー記述１０５に従って、アクティブコンテンツ１０２に対する処理を実行することができる。
【００７７】
これ以降の処理は、アクティブコンテンツ１０２に対する協調ポリシー記述１０５のほかに、自律ポリシー記述１０７に従った制御を行う場合の処理である。
判断ステップＳ１７で協調相手がすべて決定したときは、自律ポリシーの選択及び生成を行う（ステップＳ１８）。具体的には、１８７で示すように、プレース１１２上の制御変更・監視・実行部１１５が、ステップＳ１４ですり合せを行った協調条件に適合するように、自律ポリシー記述１０７中の自律ポリシーを選択したり、変換ルール記述１１１の自律ポリシー選択ルールに基づいて自律ポリシーを生成する。
【００７８】
そして、自律ポリシーに従い、次の制御を実行する（ステップＳ１９）。具体的には、１８８で示すように、プレース１１２上の制御変更・監視・実行部１１５が、アクティブコンテンツ１０２に対する制御記述１０６に、自律ポリシーの記述を加えて、変更後の制御記述１０６の内容を協調条件に適合するように、解釈して実行する。
【００７９】
さらに、実行すべき制御記述の断片があるか否かを判断する（ステップＳ２０）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、アクティブコンテンツ１０２に対する制御記述１０６に、実行すべき断片があるか否かを判断する。
判断ステップＳ２０で実行すべき制御記述の断片があるときは、ステップＳ１９へ戻って、ステップＳ１９〜ステップＳ２０の判断及び処理を、実行すべき断片がなくなるまで繰り返す。判断ステップＳ２０で実行すべき制御記述の断片がないときは、ステップＳ１１へ戻って、ステップＳ１１〜ステップＳ２０の判断及び処理を、繰り返す。
【００８０】
ここで、各種エージェントの記述例を説明する。
図１１は、フィルタリングエージェントの各部の記述例を示す図であり、図１１Ａはフィルタリングエージェントの制御記述と自律ポリシー記述であり、図１１Ｂは協調ポリシー記述である。フィルタリングエージェントは、条件に応じてアクティブコンテンツのコンテンツの中身にフィルターをかけて、コンテンツの利用に制約を設ける機能を有するものである。
【００８１】
図１１Ａにおいて、フィルタリングエージェント１９５の制御記述１０６の例として、制御フロー１９１が示されている。この制御フロー１９１の第１命令（act1）１９２、第２命令（act2）１９３、第３命令（act3）１９４が、制御記述１０６のアクティビティ定義１３１に定義されている。また、制御フロー１９１の第１命令（act1）１９２から第２命令（act2）１９３への流れ、第２命令（act2）１９３から第３命令（act3）１９４への流れが、制御記述１０６の制御フロー定義１３２に定義されている。
【００８２】
フィルタリングエージェント１９５は、その記述項目に協調ポリシーが記述されている。図１１Ｂに示すように協調ポリシー記述１０５は、協調相手定義１３８として、１９８に示すように、相手のロールを要求項目（《required》）中の役割ラベル（role=ServiceControlProtocol/Requester）で定義し、相手及び自分のロールを提供項目（《provided》）中の役割ラベル（role=ServiceControlProtocol/Responder）で定義している。また、相手が保持すべき属性を要求項目（《required》）中の属性で定義し、自分が保持している属性を提供項目（《provided》）中の属性で定義している。
【００８３】
また、協調方法定義１３９として、１９９に示すように、協調スタイルを効果項目（《effect》）中の結合スタイルラベル（BindingStyle =[Parent]）で定義し、実行場所を協力場所ラベル（CollaborationPlace =[Responder/Requester]）で定義している。また、メッセージ通信スタイルを、親子関係の子のメッセージをフィルタリングするなどを定義する。
【００８４】
また、協調内容定義１４０として、２００に示すように、サービスの種類、レベルを効果項目（《effect》）中の属性で定義している。
また、協調効果定義１４１として、２０１に示すように、協調効果を効果項目（《effect》）中の属性で定義している。
【００８５】
また、交渉手順定義１４２として、２０２に示すように、公募メッセージ作成手順、応募メッセージ作成手順、協調条件作成手順、合格基準判定手順、後処理を各種メッセージとして定義している。
また、フィルタリングエージェント１９５は、図１１Ａに示す自律ポリシー１９６が付けられている。自律ポリシー記述１０７のアスペクト記述１４７として、自律ポリシー１９６には、１９７に示すように、メッセージを受け取ってその中の名前を匿名化する記述が設けられている。自律ポリシー１９６には、条件項目（《Cond》）中で動的な条件として、名前を匿名化するようにフィルタリングすることを定義し、適用箇所項目（《where》）中で適用する箇所として、子供向けのメッセージ送信の際を定義し、箇所の条件項目（《if》）中で名前を匿名化することを定義している。
【００８６】
図１２は、他のエージェントの各部の記述例を示す図であり、図１２Ａはコンテンツエージェントの制御記述と協調ポリシー記述であり、図１２Ｂはユーザーエージェントの制御記述と協調ポリシー記述である。コンテンツエージェントは、アクティブコンテンツのコンテンツをフィルタリングする相手を探すと共にコンテンツを利用する相手を待ち、これらにコンテンツを提供する機能を有するものである。
【００８７】
図１２Ａに示すように、コンテンツエージェント２１１は、その記述項目に協調ポリシーが記述されている。協調ポリシー記述は、アクティブコンテンツのコンテンツをフィルタリングする相手となる図１１に示したフィルタリングエージェント１９５を探すための条件を上側の協調ポリシー記述２１２で定義し、コンテンツを利用する相手となるユーザーエージェントを待つための条件を下側の協調ポリシー記述２１３で定義している。
【００８８】
また、コンテンツエージェント２１１の制御記述の例として、制御フロー２１４が示されている。この制御フロー２１４の第１命令（act1）２１５、第２命令（act2）２１６、第３命令（act3）２１８と、制御フロー２１４の第１命令（act1）２１５から第２命令（act2）２１６への流れ、第２命令（act2）２１６から第３命令（act3）２１８への流れが、定義されている。また、第２命令（act2）２１６には、２１７に示すように、リクエストメッセージを受け取って、送信者にコンテンツを返すように定義されている。
【００８９】
また、図１２Ｂに示すようにユーザーエージェント２１９は、その記述項目に協調ポリシーが記述されている。協調ポリシー記述は、要求したコンテンツを利用するための条件を定義している。
また、ユーザーエージェント２１９の制御記述の例として、制御フロー２２０が示されている。この制御フロー２２０の第１命令（act1）２２１、第２命令（act２）２２２、第３命令（act3）２２４と、制御フロー２２０の第１命令（act1）２２１から第２命令（act2）２２２への流れ、第２命令（act2）２２２から第３命令（act3）２２４への流れが、定義されている。また、第２命令（act2）２２２には、２２３に示すように、ServiceControl/Responderの役割ラベルをもつエージェントへメッセージを送って、コンテンツの送信をもらうように定義されている。
以下の図１０に示した処理の詳細の説明では、図１２Ａに示したコンテンツエージェント２１１、図１２Ｂに示したユーザーエージェント２１９及び図１１Ａに示したフィルタリングエージェント１９５を適宜例としてあげて説明する。
【００９０】
次に、図１０に示したアクティブコンテンツの実行の動作の詳細の処理について説明する。
後述する図１３及び図１４は、図１０のフローチャートのステップＳ１１の制御記述断片選択処理を詳細に説明する図である。
図１３は、ステップＳ１１の制御記述断片選択処理の詳細を示すフローチャートである。
図１３において、アクティビティ実行キューがあるか否かを判断する（ステップＳ２１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の実行状態１２７のアクティビティ実行キュー１５４があるか否かを判断する。
【００９１】
判断ステップＳ２１で、アクティビティ実行キューがないときは、制御記述から最初に実行すべきアクティビティを取り出し、アクティビティ実行キューへ保存する（ステップＳ２２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の制御記述１０６のアクティビティ定義１３１及び制御フロー定義１３２から最初に実行すべきアクティビティを取り出し、実行状態１２７のアクティビティ実行キュー１５４へ保存する。
【００９２】
次に、アクティビティ実行キューがあるか否かを判断する（ステップＳ２３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の実行状態１２７のアクティビティ実行キュー１５４があるか否かを判断する。判断ステップＳ２１で、アクティビティ実行キューがないときは、処理を終了する。
【００９３】
判断ステップＳ２１で、アクティビティ実行キューがあるときは、及び判断ステップＳ２３で、アクティビティ実行キューがあるときは、アクティビティ実行キューの先頭にあるアクティビティに対応した協調ポリシーを取り出し、有効協調ポリシーリストに追加して格納する（ステップＳ２４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の実行状態１２７のアクティビティ実行キュー１５４の先頭にあるアクティビティに対応した協調ポリシーを協調ポリシー記述１０５から取り出し、有効協調ポリシーリスト１５６に追加して格納する。
ここでは、２３１で示すように、協調ポリシー記述１０５に複数の協調相手に関してポリシーが書かれていれば、複数の協調ポリシーが有効協調ポリシーリスト１５６に追加される。
【００９４】
図１４は、ステップＳ１１の制御記述断片選択処理の例を示すフローチャートである。
例えば、ステップＳ２２の制御記述から最初に実行すべきアクティビティを取り出し、アクティビティ実行キューへ保存する処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の制御記述１０６のアクティビティ定義１３１及び制御フロー定義１３２に基づいて記述される制御フロー２１４（第１命令（act1）２１５、第２命令（act2）２１６、第３命令（act3）２１８）から最初に実行すべきアクティビティとして第１命令（act1）２１５を取り出し、実行状態１２７のアクティビティ実行キュー１５４へ保存する。
これにより、実行状態１２７のアクティビティ実行キュー１５４には、最初に実行すべきアクティビティとして第１命令（act1）２１５が保存される。
【００９５】
また、ステップＳ２４のアクティビティ実行キューの先頭にあるアクティビティに対応した協調ポリシーを取り出し、有効協調ポリシーリストに追加して格納する処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５がアクティブコンテンツ１０２の実行状態１２７のアクティビティ実行キュー１５４の先頭にあるアクティビティとして第１命令（act1）２１５に対応した協調ポリシーとして、図１２に示したコンテンツエージェント２１１が図１１に示したフィルタリングエージェント１９５を探すための協調ポリシー記述２１２を協調ポリシー記述１０５から取り出し、有効協調ポリシーリスト１５６に追加して格納する。
【００９６】
これにより、実行状態１２７の有効協調ポリシーリスト１５６には、コンテンツエージェント２１１のアクティブコンテンツのコンテンツをフィルタリングする相手となる図１１に示したフィルタリングエージェント１９５を探すための協調ポリシー記述２１２（FilterService ）が格納される。
【００９７】
図１５及び図１６は、図１０のフローチャートにおけるステップＳ１３の協調ポリシー登録・検索処理の動作の詳細を示す図である。
図１５は、ステップＳ１３の協調ポリシー登録・検索処理の詳細を示すフローチャートである。図１５において、ステップＳ１３に示す、協調ポリシー登録・検索処理は、以下のようにして実行される。
【００９８】
追加された有効協調ポリシーリストの記述を取り出す（ステップＳ３１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がステップＳ２４で有効協調ポリシーリスト１５６に追加して格納した協調ポリシーを実行状態１２７の有効協調ポリシーリスト１５６から取り出す。
【００９９】
次に、自分（例えば、図１２に示したコンテンツエージェント２１１）の協調ポリシーの属性が要求を待つ側（responder）であるか否かを判断する（ステップＳ３２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が図１２に示したコンテンツエージェント２１１の協調ポリシー記述１０５において、２４１で示すように、属性の記号の記述が要求を待つ側（responder）であるか、又は相手を探す側（requester）であるかを判断する。
【０１００】
判断ステップＳ３２で、自分（例えば、図１２に示したコンテンツエージェント２１１）の協調ポリシーの属性が要求を待つ側（responder）であるときは、２４３で示すサービス提供側のフローに移行する。２４３で示すサービス提供側では、協調ポリシー登録部を用いて、要求項目（《required》）、提供項目（《provided》）及び効果項目（《effect》）の公開情報を登録する（ステップＳ３５）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が協調ポリシー登録部１１３、又は１０８に、サービス提供側の要求項目（《required》）、提供項目（《provided》）及び効果項目（《effect》）の公開情報を登録する。
【０１０１】
次に、サービス利用者からのリクエストが来るまで待つ（ステップＳ３６）。具体的には、プレース１１２上の制御変更・監視・実行部１１５がサービス利用者からのアクティブコンテンツやユーザーエージェントのリクエストが来るまで待つ。ここで、リクエストが来るまで待つ時間に、２４５に示すように、最小検索時間や最大検索時間（タイムアウト）を設定してもよい。
【０１０２】
そして、レスポンスが来た相手のアドレスと相手の要求となる協調ポリシー、協調ポリシーへの参照情報を協調相手インスタンスに協調相手候補として登録する（ステップＳ３６）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、レスポンスが来た相手のアドレスと相手の要求となる協調ポリシー、協調ポリシーへの参照情報を実行状態１２７の協調相手インスタンスリスト１５５に協調相手候補として登録する。
【０１０３】
また、判断ステップＳ３２で、自分（例えば、図１２に示したコンテンツエージェント２１１）の協調ポリシーの属性が要求を待つ側（responder）でないときは、２４４で示すサービス利用側のフローに移行する。２４４で示すサービス利用側では、協調ポリシー登録部を用いて、登録した協調ポリシーに合致しそうな相手を検索する（ステップＳ３３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が協調ポリシー登録部１１３、又は１０８から登録した自分（図１２に示したコンテンツエージェント２１１）の協調ポリシーに合致しそうな相手の協調ポリシーを検索する。ここで、自分の協調ポリシーに合致しそうな相手の協調ポリシーを検索する時間に、２４５に示すように、最小検索時間や最大検索時間（タイムアウト）を設定してもよい。
【０１０４】
そして、ステップＳ３３で検索された相手のアドレスとその要求となる協調ポリシー、協調ポリシーへの参照情報を協調相手インスタンスに協調相手候補として登録する（ステップＳ３４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、ステップＳ３３で検索された相手のアドレスとその要求となる協調ポリシー、協調ポリシーへの参照情報を実行状態１２７の協調相手インスタンスリスト１５５に協調ポリシー記述１０５の協調相手定義１３８に対する協調相手候補として登録する。
【０１０５】
図１６は、ステップＳ１３の協調ポリシー登録・検索処理の例を示すフローチャートである。
例えば、ステップＳ３１の追加された有効協調ポリシーリストの記述を取り出す処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５がステップＳ２４で有効協調ポリシーリスト１５６に追加して格納した協調ポリシーとして、コンテンツエージェント２１１のアクティブコンテンツのコンテンツをフィルタリングする相手となる図１１に示したフィルタリングエージェント１９５を探すための協調ポリシー記述２１２（FilterService ）を実行状態１２７の有効協調ポリシーリスト１５６から取り出す。
【０１０６】
また、例えば、ステップＳ３３の協調ポリシー登録部を用いて、登録した協調ポリシーに合致しそうな相手を検索する処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５が協調ポリシー登録部１１３、又は１０８から登録した自分の協調ポリシーである、コンテンツエージェント２１１のアクティブコンテンツのコンテンツをフィルタリングする相手となる図１１に示したフィルタリングエージェント１９５を探すための協調ポリシー記述２１２（FilterService ）に合致しそうな相手の協調ポリシーとして、２５１に示すように、図１１に示したフィルタリングエージェント１９５が検索される。
【０１０７】
また、ステップＳ３４のステップＳ３３で検索された相手のアドレスとその要求となる協調ポリシー、協調ポリシーへの参照情報を協調相手インスタンスに協調相手候補として登録する処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５が、ステップＳ３３で検索された相手の図１１に示したフィルタリングエージェント１９５のアドレスとその要求となる協調ポリシー、協調ポリシーへの参照情報を、２５２に示すように、実行状態１２７の協調相手インスタンスリスト１５５に協調ポリシー記述１０５の協調相手定義１３８に対する協調相手候補として登録する。
【０１０８】
図１７は、ステップＳ１４の協調候補から協調する相手を決定する処理の詳細を示すフローチャートである。
図１７において、協調相手の協調ポリシーの属性が相手を探す側（requester）であるか否かを判断する（ステップＳ４１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が協調相手の協調ポリシー記述１０５において、２６１で示すように、属性の記号の記述が相手を探す側（requester）であるか、又は要求を待つ側（responder）であるかを判断する。
【０１０９】
この時、協調相手の協調ポリシーの属性情報は、協調相手インスタンスに登録された協調相手の情報を参照して判断する。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、相手の協調ポリシーの属性情報を実行状態１２７の協調相手インスタンスリスト１５５に登録してある協調ポリシー記述１０５の属性情報から判断する。
【０１１０】
判断ステップＳ４１で、協調相手の協調ポリシーの属性が相手を探す側（requester）であるときは、２６２で示すサービス提供側のフローに移行する。
２６２で示すサービス提供側のフローでは、サービスの提供条件をすり合わせる（ステップＳ４２）。具体的には、２６４に示すように、プレース１１２上の協調条件生成決定部１１４は、サービス利用者からの公募してきた相手と互いの協調ポリシー記述１０５の属性情報に基づいてすり合わせを行って、協調条件１２４により合意１２３のとれた協調相手を決定する。
【０１１１】
また、判断ステップＳ４１で、相手の協調ポリシーの属性が相手を探す側（requester）でないときは、２６３で示すサービス利用側のフローに移行する。
２６３で示すサービス利用側のフローでは、サービスの利用条件をすり合わせる（ステップＳ４３）。具体的には、２６５に示すように、プレース１１２上の協調条件生成決定部１１４は、サービス提供候補者にメッセージを出して一つを選出して、サービス提供候補者と互いの協調ポリシー記述１０５の属性情報に基づいてすり合わせを行って、協調条件１２４により合意１２３のとれた協調相手を決定する。
【０１１２】
図１８は、図１７のステップＳ４２の提供条件をすりあわせてサービスを提供する相手を決定する処理の詳細を示すフローチャートである。ここで、サービスを提供する相手は、例えば、図１２で示したユーザーエージェント２１９である。
図１８において、協調候補のすべての要求のあるポリシーについて、協調ポリシー解釈部を用いて提供するポリシーの一貫性を調べる（ステップＳ５１）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー解釈部１６１を用いて、サービス利用者からの要求のある協調ポリシー記述１０５の情報について、自分のポリシーとの一貫性を調べる。
【０１１３】
提供するポリシーと矛盾する要求のあるポリシーを持つ相手には、提供の否認メッセージを送る（ステップＳ５２）。具体的には、プレース１１２上の協調条件生成決定部１１４は、有効協調ポリシーリスト１５６に格納されている協調ポリシー記述１０５に基づいて、提供するポリシーと矛盾する要求のあるポリシーを持つ相手には、提供の否認メッセージを送る。
【０１１４】
提供するポリシーと矛盾しない要求のあるポリシーは存在するか否かを判断する（ステップＳ５３）。具体的には、プレース１１２上の協調条件生成決定部１１４は、実行状態１２７の協調相手インスタンスリスト１５５に登録されている要求のある協調ポリシーのうち、提供するポリシーと矛盾しない要求のあるポリシーは存在するか否かを判断する。
【０１１５】
判断ステップＳ５３で、提供するポリシーと矛盾しない要求のあるポリシーが存在しないときは終了する。なお、この場合には、２７３で示すように、提供するポリシーを要求のあるポリシーに矛盾しないように変更するようにしてもよい。
【０１１６】
判断ステップＳ５３で、提供するポリシーと矛盾しない要求のあるポリシーが存在するときは、交渉手順の応募優先順手順に従い、応募順を決定し、その順番で協調候補を並べ替える（ステップＳ５４）。具体的には、プレース１１２上の協調条件生成決定部１１４は、提供するポリシーと矛盾しない要求のあるポリシーが複数存在するときは、予め定められた交渉手順の応募優先順手順に従い、応募順を決定し、その順番で複数の協調候補を並べ替える。応募優先順は、例えば、過去の応募頻度や協調実績などに基づいて決定してもよい。
【０１１７】
そして、協調候補が存在するか否かを判断する（ステップＳ５５）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ５４で並べ替えた協調候補のうちに、決定すべき協調候補が存在するか否かを判断する。
判断ステップＳ５５で、協調候補が存在しないときは終了する。判断ステップＳ５５で、協調候補が存在するときは、応募優先度の高い候補を選択し、その候補と提供条件をすり合わせる（ステップＳ５６）。
【０１１８】
さらに、協調可能か否かを判断する（ステップＳ５７）。具体的には、プレース１１２上の協調条件生成決定部１１４は、応募優先度の高い候補のうちに、ステップＳ５５により、協調候補が協調可能であるか否かを判断する。
判断ステップＳ５７で、協調可能な協調候補が存在するときは、協調相手インスタンスに協調可能な相手のアドレスを記入して、終了する（ステップＳ５８）。
判断ステップＳ５７で、協調可能な協調候補が存在しないときは、協調候補から協調できない相手を取り除いた後に（ステップＳ５９）、ステップＳ５５へ戻って、ステップＳ５５〜ステップＳ５９までの判断及び処理を繰り返す。
【０１１９】
図１９は、図１８のステップＳ５６の応募優先度の高い候補を選択し、その候補と提供条件をすりあわせる処理の詳細を示すフローチャートである。
図１９において、応募優先度の高い候補を選択する（ステップＳ６１）。具体的には、プレース１１２上の協調条件生成決定部１１４は、応募優先度の高い候補を実行状態１２７の協調相手インスタンスリスト１５５に登録されている候補のうちから選択する。
【０１２０】
交渉手順定義に応募メッセージ作成手順が含まれているか否かを判断する（ステップＳ６２）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６１で選択された応募優先度の高い候補のうち、協調ポリシー記述１０５の交渉手順定義１４２に応募メッセージ作成手順が含まれているか否かを判断する。交渉手順定義１４２は、２８１に示すように、公募メッセージ作成手順、協調条件作成手順、合格基準判定手順及び後処理を構成要素とするものである。
【０１２１】
判断ステップＳ６２で、交渉手順定義に応募メッセージ作成手順が含まれていないときは、提供するポリシーの情報すべてを応募メッセージであると決定する（ステップＳ６３）。具体的には、プレース１１２上の協調条件生成決定部１１４は、予め定められた交渉手順定義１４２に応募メッセージ作成手順が含まれていないときは、提供するポリシーの情報すべてを応募メッセージであると決定する。
【０１２２】
判断ステップＳ６２で、交渉手順定義に応募メッセージ作成手順が含まれているときは、交渉手順に従って、応募メッセージを作成する（ステップＳ６４）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー記述１０５に予め定められた交渉手順定義に従って、応募メッセージを作成する。
【０１２３】
そして、協調相手に応募メッセージを送信する（ステップＳ６５）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６３で決定され、又はステップＳ６４で作成された応募メッセージを協調相手に送信する。
その後、応募メッセージを送信した協調相手からのメッセージを待つ（ステップＳ６６）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６５で応募メッセージを送信した協調相手からの応募回答メッセージを待つ。
【０１２４】
受理メッセージであるか否かを判断する（ステップＳ６７）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６６で受信した協調相手からの応募回答メッセージが受理メッセージであるか否かを判断する。
判断ステップＳ６７で、応募回答メッセージが受理メッセージであるときは、受理メッセージに含まれる協調条件を交渉ポリシー中の合格基準に合うかどうかをチェックする（ステップＳ６８）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６６で受信した協調相手からの受理メッセージに含まれる協調条件が、交渉手順定義１４２中の合格基準判定手順に合うかどうかをチェックする。
【０１２５】
そして、協調条件が合格基準に合っているか否かを判断する（ステップＳ６９）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ６８のチェックで受理メッセージに含まれる協調条件が、交渉手順定義１４２中の合格基準判定手順に合っているか否かを判断する。
判断ステップＳ６９で、協調条件が合格基準に合っているときは、協調相手に協調条件の合意メッセージを送る（ステップＳ７２）。具体的には、プレース１１２上の協調条件生成決定部１１４は、判断ステップＳ６９で、協調条件が合格基準に合っているときは、協調相手に協調条件の合意メッセージを送る。
【０１２６】
そして、協調相手インスタンスにその協調相手を協調条件に書き込む（ステップＳ７３）。具体的には、プレース１１２上の協調条件生成決定部１１４は、実行状態１２７の協調相手インスタンス１５５にその協調相手を協調条件として登録する。
交渉手順に従って、後処理を行う（ステップＳ７１）。具体的には、プレース１１２上の協調条件生成決定部１１４は、予め定められた交渉手順定義１４２に従って、後処理を行う。後処理は、例えば、２８３に示すように、協調ポリシーの変更などの処理である。
【０１２７】
判断ステップＳ６９で、協調条件が合格基準に合っていないときは、協調相手に協調条件の辞退メッセージを送った後に（ステップＳ７０）、ステップＳ７１へ移行する。具体的には、プレース１１２上の協調条件生成決定部１１４は、判断ステップＳ６９で、協調条件が合格基準に合っていないときは、協調相手に協調条件の辞退メッセージを送った後に、交渉手順に従って、後処理を行う。
【０１２８】
図２０は、図１７のステップＳ４３の利用条件のすりあわせで協調候補からサービスを利用する相手を決定する処理の詳細を示すフローチャートである。ここで、協調候補からサービスを利用する相手は、例えば、図１１で示したフィルタリングエージェント１９５である。
図２０において、協調候補のすべての要求のあるポリシーについて、協調ポリシー解釈部を用いて提供するポリシーの一貫性を調べる（ステップＳ８１）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー解釈部１６１を用いて、サービス提供候補者の協調ポリシー記述１０５の情報について、自分のポリシーとの一貫性を調べる。
【０１２９】
提供するポリシーと矛盾しない要求のあるポリシーは存在するか否かを判断する（ステップＳ８２）。具体的には、プレース１１２上の協調条件生成決定部１１４は、実行状態１２７の協調相手インスタンスリスト１５５に登録されている要求のある協調ポリシーのうち、提供するポリシーと矛盾しない要求のあるポリシーは存在するか否かを判断する。
【０１３０】
判断ステップＳ８２で、提供するポリシーと矛盾しない要求のあるポリシーが存在しないときは終了する。なお、この場合には、２９２で示すように、提供するポリシーを要求のあるポリシーに矛盾しないように変更するようにしてもよい。
判断ステップＳ８２で、提供するポリシーと矛盾しない要求のあるポリシーが存在するときは、交渉手順定義に公募メッセージ作成手順が含まれているか否かを判断する（ステップＳ８３）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー記述１０５の交渉手順定義１４２に公募メッセージ作成手順が含まれているか否かを判断する。
【０１３１】
判断ステップＳ８３で、交渉手順定義に公募メッセージ作成手順が含まれているときは、交渉手順に従って、公募メッセージを作成する（ステップＳ８５）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー記述１０５の交渉手順定義１４２に従って、公募メッセージを作成する。
【０１３２】
判断ステップＳ８３で、交渉手順定義に公募メッセージ作成手順が含まれていないときは、提供するポリシーの情報すべてを公募メッセージと決定する（ステップＳ８４）。具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー記述１０５の交渉手順定義１４２に公募メッセージ作成手順が含まれていないときは、提供するポリシーの情報すべてを公募メッセージと決定する。
【０１３３】
提供するポリシーと矛盾しない要求のあるポリシーを持つすべての相手に、公募メッセージを送る（ステップＳ８６）。具体的には、プレース１１２上の協調条件生成決定部１１４は、提供するポリシーと矛盾しない要求のあるポリシーを持つすべての相手に、有効協調ポリシーリスト１５６に格納されている協調ポリシー記述１０５に基づいて作成された、又は交渉手順定義１４２に従って作成された、公募メッセージを送る。
【０１３４】
その後、公募メッセージを送信した協調相手からの応募メッセージが来るのを待つ（ステップＳ８７）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８６で公募メッセージを送信した協調相手からの公募回答メッセージを待つ。
【０１３５】
応募メッセージのうち、メッセージに含まれる協調条件を交渉ポリシー中の合格基準に従い、合格者を１名決定する（ステップＳ８８）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８７で受信した協調相手からの応募メッセージに含まれる協調条件が、交渉手順定義１４２中の２９３の構成要素で示す合格基準判定手順に合っているもののうちの１名を合格者として決定する。
【０１３６】
交渉手順定義の協調条件作成処理に従い、合格者の要求のあるポリシーと提供するポリシーから協調条件を作成する（ステップＳ８９）。具体的には、プレース１１２上の協調条件生成決定部１１４は、交渉手順定義１４２の２９３の構成要素で示す協調条件作成処理に従い、ステップＳ８８で決定した合格者の要求のあるポリシーと提供するポリシーから協調条件を作成する。
【０１３７】
合格者に対して協調条件として受理メッセージを送る（ステップＳ９０）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８８で決定した合格者に対して協調条件として受理メッセージを送る。
合格者以外に対して却下メッセージを送る（ステップＳ９１）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８８で決定した合格者以外に対して却下メッセージを送る。
【０１３８】
合格者からの受理メッセージに対する返答を待つ（ステップＳ９２）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ９０で合格者に対して送った受理メッセージに対する返答を待つ。
合格者が協調条件に合意したか否かを判断する（ステップＳ９３）。具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ９２の合格者からの受理メッセージに対する返答により、合格者が協調条件に合意したか否かを判断する。
【０１３９】
判断ステップＳ９３で合格者が協調条件に合意したときは、協調相手インスタンスにその協調相手を協調条件に書き込んで（ステップＳ９４）、終了する。具体的には、プレース１１２上の協調条件生成決定部１１４は、実行状態１２７の協調相手インスタンス１５５リストにその協調相手を協調条件として登録して、終了する。
判断ステップＳ９３で、協調条件が合格基準に合っていないときは、終了する。
【０１４０】
図２１は、図１７のステップＳ４３の利用条件のすりあわせの例を示すフローチャートである。
例えば、ステップＳ８１の協調候補のすべての要求のあるポリシーについて、協調ポリシー解釈部を用いて提供するポリシーの一貫性を調べる処理は、以下のように実行される。
具体的には、３０３に示すように、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー解釈部１６１を用いて、自分（図１２Ａに示すコンテンツエージェント２１１）の協調ポリシーである提供するポリシー３０１と、相手（図１１で示したフィルタリングエージェント１９５）となるサービス提供候補者の協調ポリシーである要求のあるポリシー３０２とで、両者の要求項目（《required》）、提供項目（《provided》）、及び効果項目（《effect》）に矛盾がないかそのマッチングを調べる。このマッチングは、全部一致、一部一致、条件付一致の場合もある。
【０１４１】
また、ステップＳ８４の提供するポリシーの情報すべてを公募メッセージと決定する処理は、以下のように実行される。
具体的には、プレース１１２上の協調条件生成決定部１１４は、協調ポリシー記述１０５の交渉手順定義１４２に公募メッセージ作成手順が含まれていないときは、提供するポリシー３０１の情報すべてを候補となる公募メッセージ３０４と決定する。
【０１４２】
また、ステップＳ８６で提供するポリシーと矛盾しない要求のあるポリシーを持つすべての相手に、公募メッセージを送る処理は、以下のように実行される。
具体的には、プレース１１２上の協調条件生成決定部１１４は、３０６に示すように、提供するポリシーと矛盾しない要求のあるポリシーを持つ相手である図１１で示したフィルタリングエージェント１９５に、有効協調ポリシーリスト１５６に格納されている協調ポリシー記述１０５に基づいて作成された、又は交渉手順定義１４２に従って作成された、公募メッセージを送る。
【０１４３】
また、ステップＳ８８の応募メッセージのうち、メッセージに含まれる協調条件を交渉ポリシー中の合格基準に従い、合格者を１名決定する処理は、以下のように実行される。
具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８７で受信した協調相手である図１１で示したフィルタリングエージェント１９５からの応募メッセージ３０７に含まれる協調条件が、交渉手順定義１４２中の２９３の構成要素で示す合格基準判定手順に合っているもののうちの１名の合格者として決定する。
【０１４４】
そして、ステップＳ９０の合格者に対して協調条件として受理メッセージを送る処理は、以下のように実行される。
具体的には、プレース１１２上の協調条件生成決定部１１４は、ステップＳ８８で決定した合格者に対して協調条件として、候補となる公募メッセージ３０４に対して決定した受理メッセージ３０５を送る。
【０１４５】
図２２は、協調ポリシーをすりあわせるときのプロトコルを示す図である。
図２２において、Ｔ１時点で、相手を探す側（requester）３１１から要求を待つ側（responder）３１２へ、利用するポリシーについて公募メッセージ３１５を送信する。また、Ｔ２時点で、相手を探す側（requester）３１１から他の要求を待つ側（responder）３１３へ、利用するポリシーについて他の公募メッセージ３１６を送信する。さらに、Ｔ３時点で、相手を探す側（requester）３１１から他の要求を待つ側（responder）３１４へ、利用するポリシーについて他の公募メッセージ３１７を送信する。
【０１４６】
これに対して、Ｔ４時点で、相手を探す側（requester）３１１は要求を待つ側（responder）３１２から、提供されるポリシーについて応募メッセージ３１８を受信する。Ｔ５時点で、相手を探す側（requester）３１１は他の要求を待つ側（responder）３１３から、提供されるポリシーについて他の応募メッセージ３１９を受信する。
【０１４７】
そこで、Ｔ６時点で、相手を探す側（requester）３１１から要求を待つ側（responder）３１２へ、協調条件について受理メッセージ３２０を送信する。また、Ｔ７時点で、相手を探す側（requester）３１１から他の要求を待つ側（responder）３１３へ、協調条件について却下メッセージ３２１を送信する。
【０１４８】
さらに、Ｔ８時点で、相手を探す側（requester）３１１は要求を待つ側（responder）３１２から、協調条件について合意メッセージ３２２を受信する。又は、Ｔ９時点で、協調条件を呑めない場合３２４には、相手を探す側（requester）３１１は要求を待つ側（responder）３１２から、協調条件について辞退メッセージ３２５を受信する。
【０１４９】
また、以下に、図１０の処理の詳細を説明する。
図２３は、ステップＳ１６の協調準備の処理の詳細を示すフローチャートである。
図２３において、追加された協調相手インスタンス中の協調条件から協調場所を取り出す（ステップＳ１２１）。具体的には、プレース１１２上の協調スタイル実施部１２８は、実行状態１２７の協調相手インスタンスリスト１５５の合意１２３のとれた協調条件１２４中から、協調場所を取り出す。協調場所は、３３１に示すように、例えば、協調条件１２４協調場所のラベル部分（CollaborationPlace ）で特定される。
【０１５０】
次に、協調場所が現在のプレースと異なるか否かを判断する（ステップＳ１２２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５は、プレース１１２上の協調スタイル実施部１２８がステップＳ１２１で取り出した協調場所が現在のプレースと異なるか否かを判断する。
【０１５１】
判断ステップＳ１２２で、協調場所が現在のプレースと異ならないときは、追加された協調相手インスタンス中の協調条件から協調スタイルを取り出し、協調スタイル実施部に協調スタイルの実施を依頼する（ステップＳ１２４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、プレース１１２上の協調スタイル実施部１２８に、協調スタイルの実施を依頼する。このとき、協調スタイルは、３３２に示すように、例えば、結合スタイルのラベル部分(BindingStyle)で特定され、ここで親子関係が築かれ、子のメッセージの一部が親のメッセージとして処理される。
【０１５２】
また、判断ステップＳ１２２で、協調場所が現在のプレースと異なるときは、協調場所に移動した後に（ステップＳ１２３）、ステップＳ１２４へ移行する。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、アクティブコンテンツ１０２を協調場所に移動した後に、移動先プレースの協調スタイル実施部に協調スタイルの実施を依頼する。
【０１５３】
図２４は、ステップＳ１８の自律ポリシー選択・生成・登録の処理の詳細を示すフローチャートである。
図２４において、変換ルール記述が登録されているか否かを判断する（ステップＳ１３１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５は、変換ルール記述１１１がコンテンツ制御情報格納部１０４に登録されているか否かを判断する。
【０１５４】
判断ステップＳ１３１で、変換ルール記述が登録されていないときは、登録されている自律ポリシーを取り出す（ステップＳ１３３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５は、コンテンツ制御情報格納部１０４の自律ポリシー記述１０７中の自律ポリシーを取り出す。
【０１５５】
そして、自律ポリシーを実行状態の有効自律ポリシーリストに加える（ステップＳ１３４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５は、ステップＳ１３３で取り出した自律ポリシーを実行状態１２７の有効自律ポリシーリスト１５７に加える。
【０１５６】
また、判断ステップＳ１３１で、変換ルール記述が登録されているときは、変換ルールに従い、協調条件から自律ポリシーを生成した後に（ステップＳ１３２）、ステップＳ１３４へ移行する。具体的には、プレース１１２上の制御変更・監視・実行部１１５は、判断ステップＳ１３１で登録されている変換ルール記述１１１に従い、協調条件から自律ポリシーを生成した後に、自律ポリシーを実行状態の有効自律ポリシーリストに加える。
【０１５７】
図２５は、ステップＳ１６の協調準備の処理の例を示すフローチャートである。
図２５において、例えば、ステップＳ１２１の追加された協調相手インスタンス中の協調条件から協調を取り出す処理は、以下のように実行される。
具体的には、３４１で示すように、協調場所のラベル部分（CollaborationPlace）が相手を探す側（requester）である図１２に示したコンテンツエージェント２１１である。そこで、コンテンツエージェント２１１の存在している現在のプレースが、プレース１１２上の協調スタイル実施部１２８により、取り出される。
【０１５８】
また、例えば、ステップＳ１２４の追加された協調相手インスタンス中の協調条件から協調スタイルを取り出し、協調スタイル実施部に協調スタイルの実施を依頼する処理は、以下のように実行される。
具体的には、３４２で示すように、コンテンツエージェント２１１の結合スタイルのラベル部分(BindingStyle )は親（parent）で、相手は子（child）なので、プレース１１２上の制御変更・監視・実行部１１５が、プレース１１２上の協調スタイル実施部１２８に、相手となる図１１に示したフィルタリングエージェント１９５と親子関係を結ぶ協調スタイルの実施を依頼する。このとき、協調スタイルは、３４３に示すように、例えば、結合スタイルのラベル部分(BindingStyle)で特定され、ここで親子関係が築かれ、子のメッセージの一部が親のメッセージとして処理される。
【０１５９】
図２６は、ステップＳ１８の自律ポリシー選択・生成・登録の処理の例を示すフローチャートである。
図２６において、例えば、ステップＳ１３３で登録されているフィルタリングエージェント１９５の自律ポリシーを取り出す処理は、以下のように実行される。
具体的には、プレース１１２上の制御変更・監視・実行部１１５は、フィルタリングエージェント１９５のコンテンツ制御情報格納部１０４の自律ポリシー記述１０７中の自律ポリシー１９６を取り出す。
【０１６０】
図２７は、ステップＳ１９の自律ポリシーに従い次の制御の実行の処理の詳細を示すフローチャートである。
図２７において、実行状態のアクティビティ実行キューから次に実行すべきアクティビティを取り出す（ステップＳ１４１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７のアクティビティ実行キュー１５４から次に実行すべきアクティビティを取り出す。
【０１６１】
次に、有効自律ポリシーから次に実行すべきアクティビティに関するものを取り出す（ステップＳ１４２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７の有効自律ポリシーリスト１５７から次に実行すべきアクティビティに関するものを取り出す。
そして、自律ポリシーのアスペクト記述にアクティビティの置き換えが定義されているか否かを判断する（ステップＳ１４３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、自律ポリシー記述１０７のアスペクト記述１４７にアクティビティの置き換えが定義されているか否かを判断する。
【０１６２】
判断ステップＳ１４３で、自律ポリシーのアスペクト記述にアクティビティの置き換えが定義されているときは、アスペクト記述に従い、アクティビティを置き換える（ステップＳ１４５）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、自律ポリシー記述１０７のアスペクト記述１４７に従い、アクティビティを置き換える。
判断ステップＳ１４３で、自律ポリシーのアスペクト記述にアクティビティの置き換えが定義されていないとき、及びステップＳ１４５でアクティビティを置き換えた後は、アクティビティの事前処理を行う（ステップＳ１４４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実施の必要な予め定められたアクティビティの事前処理を行う。
【０１６３】
次に、アクティビティの実行位置のチェックを行う（ステップＳ１４６）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、アクティビティの実行位置がどのプレース上であるかのチェックを行う。
そして、実行位置が現在のプレースであるか否かを判断し（ステップＳ１４７）、実行位置が現在のプレースでないときは、実行位置が協調条件に違反していないか否かを判断し（ステップＳ１４８）、実行位置が協調条件に違反していないときは、プレース１１２上の制御変更・監視・実行部１１５が、アクティビティ転送部１６４を使って実行位置にアクティビティを転送する（ステップＳ１５０）。なお、ステップＳ１４７、ステップＳ１４８及びステップＳ１５０の処理はオプション３６３であり、必須の処理ではない。
【０１６４】
判断ステップＳ１４７で、実行位置が現在のプレースであるとき、及びステップＳ１５０の転送処理の後に、自律ポリシーに従いアクティビティを実行する（ステップＳ１５１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、自律ポリシー記述１０７に従いアクティビティを実行する。具体的には、自律ポリシー１０７の実行制約１４６に従ってアクティブティを実行する。
次に、アクティビティの事後処理を行う（ステップＳ１５２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実施の必要な予め定められたアクティビティの事後処理を行う。
【０１６５】
そして、次に実行すべきアクティビティがあるか否かを判断する（ステップＳ１５３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７のアクティビティ実行キュー１５４に次に実行すべきアクティビティがあるか否かを判断する。
判断ステップＳ１５３で、次に実行すべきアクティビティがなければ終了し、次に実行すべきアクティビティがなければ、ステップＳ１４１へ戻って、ステップＳ１４１〜ステップＳ１５３までの処理及び判断を繰り返す。
【０１６６】
このとき、３６１に示すように、ステップＳ１４３〜ステップＳ１５３までの処理及び判断と、メッセージを受信したときに起動される割り込み処理ルーチン３６４であるステップＳ１５４〜ステップＳ１５７までの処理及び判断が、並列に実行される。
以下に、割り込み処理ルーチン３６４であるステップＳ１５４〜ステップＳ１５７について説明する。
まず、割り込みが発生すると、メッセージキューを調べ、子のメッセージが届いていたら、自律ポリシーに登録されている手順に従って、メッセージを加工する（ステップＳ１５４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７の制御状態１５８に格納されるメッセージキュー１５９を調べ、子のメッセージが届いていたら、自律ポリシー記述１０７に登録されている手順に従って、メッセージを加工する。
【０１６７】
次に、ステップＳ１５４の加工が子との協調条件に違反していないか否かを判断する（ステップＳ１５５）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、メッセージの加工が、子との協調条件に違反していないか否かを判断する。
判断ステップＳ１５５で、加工が子との協調条件に違反しているとき、及び判断ステップＳ１４８で実行位置が協調条件に違反しているときは、３６２で示すように、実行例外を起こすなど、協調条件違反処理を行って終了する（ステップＳ１４９）。
【０１６８】
判断ステップＳ１５５で、加工が子との協調条件に違反していないときは、加工したメッセージを相手に送信し（ステップＳ１４６）、次に実行すべきアクティビティの実行が終了したか否かを判断する（ステップＳ１５７）。
判断ステップＳ１５７で、次に実行すべきアクティビティの実行が終了していれば終了し、次に実行すべきアクティビティの実行が終了していなければ、ステップＳ１５４へ戻って、ステップＳ１５４〜ステップＳ１５７までの処理及び判断を繰り返す。
【０１６９】
図２８は、ステップＳ１４４及びステップＳ１５２のアクティビティの処理を示すフローチャートであり、図２８ＡはステップＳ１４４のアクティビティの事前処理を示すフローチャート、図２８ＢはステップＳ１５２のアクティビティの事後処理を示すフローチャートである。
図２８Ａにおいて、メッセージキューを調べ、自分のメッセージが届いていたら、自律ポリシーに従ってフィルタリングを行って、メッセージキューに戻す（ステップＳ１６１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５の自律ポリシー解釈部１６８が、実行状態１２７の制御状態１５８に格納されるメッセージキュー１５９を調べ、自分のメッセージが届いていたら、実行状態１２７の有効自律ポリシーリスト１５７に従ってフィルタリングを行って、フィルタリング処理後の自分のメッセージをメッセージキュー１５９に戻す。
【０１７０】
次に、自律ポリシーに、次に実行すべきアクティビティの前に実行すべきアクティビティが登録されているか否かを判断する（ステップＳ１６２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７の有効自律ポリシーリスト１５７に次に実行すべきアクティビティの前に実行すべきアクティビティが登録されているか否かを判断する。
【０１７１】
判断ステップＳ１６２で、自律ポリシーに、次に実行すべきアクティビティの前に実行すべきアクティビティが登録されているときは、実行すべきアクティビティを自律ポリシーに従って実行する（ステップＳ１６３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行すべきアクティビティを実行状態１２７の有効自律ポリシーリスト１５７に従って実行する。
【０１７２】
判断ステップＳ１６２で、自律ポリシーに、次に実行すべきアクティビティの前に実行すべきアクティビティが登録されていないとき、及びステップＳ１６３の処理後は、自律ポリシーに、次に実行するアクティビティの入力データの変更処理が登録されている場合、それに従い内部データを加工する（ステップＳ１６４）。具体的には、プレース１１２上の制御変更・監視・実行部１１５の自律ポリシー解釈部１６８が、実行状態１２７の有効自律ポリシーリスト１５７に、次に実行するアクティビティの入力データの変更処理が登録されている場合、それに従い内部データを加工する。
【０１７３】
そして、自律ポリシーに、内部データの変更処理が登録されている場合、それに従い内部データを加工する。具体的には、プレース１１２上の制御変更・監視・実行部１１５の自律ポリシー解釈部１６８が、実行状態１２７の有効自律ポリシーリスト１５７に、内部データの変更処理が登録されている場合、それに従い内部データを加工する。
【０１７４】
また、図２８Ｂにおいて、自律ポリシーに、実行したアクティビティの出力データの変更処理が登録されている場合、それに従い出力データを加工する（ステップＳ１７１）。具体的には、プレース１１２上の制御変更・監視・実行部１１５の自律ポリシー解釈部１６８が、実行状態１２７の有効自律ポリシーリスト１５７に、実行したアクティビティの出力データの変更処理が登録されている場合、それに従い出力データを加工する。
【０１７５】
次に、自律ポリシーに、実行したアクティビティの後に実行すべきアクティビティが登録されているか否かを判断する（ステップＳ１７２）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行状態１２７の有効自律ポリシーリスト１５７に実行したアクティビティの後に実行すべきアクティビティが登録されているか否かを判断する。
【０１７６】
判断ステップＳ１７２で、自律ポリシーに、実行したアクティビティの後に実行すべきアクティビティが登録されているときは、実行すべきアクティビティを自律ポリシーに従って実行する（ステップＳ１７３）。具体的には、プレース１１２上の制御変更・監視・実行部１１５が、実行すべきアクティビティを実行状態１２７の有効自律ポリシーリスト１５７に従って実行する。
判断ステップＳ１７２で、自律ポリシーに、実行したアクティビティの後に実行すべきアクティビティが登録されていないとき、及びステップＳ１７３の処理後は、終了する。
【０１７７】
図２９は、協調例を示す図である。
図２９において、コンテンツエージェント２１１の協調ポリシー記述２１２に対して、アクティブコンテンツのコンテンツをフィルタリングする相手となるフィルタリングエージェント１９５が協調し、コンテンツエージェント２１１の協調ポリシー記述２１３に対して、フィルタリングエージェント１９５でフィルタリングされたンテンツを利用する相手となるユーザーエージェント２１９が協調する。
【０１７８】
このとき、コンテンツエージェント２１１の制御記述の例として、制御フロー２１４が示されている。この制御フロー２１４の第１命令（act1）２１５、第２命令（act2）２１６、第３命令（act3）２１８と、制御フロー２１４の第１命令（act1）２１５から第２命令（act2）２１６への流れ、第２命令（act2）２１６から第３命令（act3）２１８への流れが、定義されている。また、第２命令（act2）２１６には、２１７に示すように、リクエストメッセージを受け取って、送信者にコンテンツを返すように定義されている。
【０１７９】
また、フィルタリングエージェント１９５の制御記述の例として、制御フロー１９１が示されている。この制御フロー１９１の第１命令（act1）１９２、第２命令（act2）１９３、第３命令（act3）１９４が、制御記述１０６のアクティビティ定義１３１に定義されている。また、制御フロー１９１の第１命令（act1）１９２から第２命令（act2）１９３への流れ、第２命令（act2）１９３から第３命令（act3）１９４への流れが、制御記述１０６の制御フロー定義１３２に定義されている。
【０１８０】
また、フィルタリングエージェント１９５は、自律ポリシー１９６が付けられている。自律ポリシー記述１０７のアスペクト記述１４７として、自律ポリシー１９６には、１９７に示すように、メッセージを受け取ってその中の名前を匿名化する記述が設けられている。
【０１８１】
また、ユーザーエージェント２１９の制御記述の例として、制御フロー２２０が示されている。この制御フロー２２０の第１命令（act1）２２１、第２命令（act2）２２２、第３命令（act3）２２４と、制御フロー２２０の第１命令（act1）２２１から第２命令（act2）２２２への流れ、第２命令（act2）２２２から第３命令（act3）２２４への流れが、定義されている。また、第２命令（ａｃｔ２）２２２には、２２３に示すように、コンテンツエージェント２１１へメッセージを送って、コンテンツを送信してもらうように定義されている。
【０１８２】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、発明の構成を変更しうることはいうまでもない。
【図面の簡単な説明】
【０１８３】
【図１】アクティブコンテンツの概要を示す図である。
【図２】前提環境を示す図である。
【図３】ポリシーの概要を示す図である。
【図４】本実施の形態のシステム構成図である。
【図５】協調条件の成立と遵守手順を示す図である。
【図６】アクティブコンテンツ及びプレースの構成を示す図である。
【図７】アクティブコンテンツの各部の構成図であり、図７Ａは制御記述の構造例（ワークフローで記述した場合）、図７Ｂは協調ポリシー記述の構造例、図７Ｃは変換ルール記述の構造例、図７Ｄは自律ポリシー記述の構造例、図７Ｅは協調条件の構造例、図７Ｆはコンテンツ素材格納部例、図７Ｇは実行状態の構造例である。
【図８】プレースの各部の構成図であり、図８Ａは協調条件生成決定部の構造例、図８Ｂは制御変更・監視・実行部の構造例である。
【図９】アクティブコンテンツのライフサイクルの動作を示すフローチャートである。
【図１０】アクティブコンテンツの実行の動作を示すフローチャートである。
【図１１】フィルタリングエージェントの各部の記述例を示す図であり、図１１Ａはフィルタリングエージェントの制御記述と自律ポリシー記述であり、図１１Ｂは協調ポリシー記述である。
【図１２】他のエージェントの各部の記述例を示す図であり、図１２Ａはコンテンツエージェントの制御記述と協調ポリシー記述であり、図１２Ｂはユーザーエージェントの制御記述と協調ポリシー記述である。
【図１３】ステップＳ１１の制御記述断片選択処理の詳細を示すフローチャートである。
【図１４】ステップＳ１１の制御記述断片選択処理の例を示すフローチャートである。
【図１５】ステップＳ１３の協調ポリシー登録・検索処理の詳細を示すフローチャートである。
【図１６】ステップＳ１３の協調ポリシー登録・検索処理の例を示すフローチャートである。
【図１７】ステップＳ１４の協調候補から協調する相手を決定する処理の詳細を示すフローチャートである。
【図１８】ステップＳ４２の提供条件のすりあわせで協調候補サービスを提供する相手を決定する処理の詳細を示すフローチャートである。
【図１９】ステップＳ５６の応募優先度の高い候補を選択し、その候補と提供条件をすりあわせる処理の詳細を示すフローチャートである。
【図２０】ステップＳ４３の利用条件のすりあわせで協調候補からサービスを利用する相手を決定する処理の詳細を示すフローチャートである。
【図２１】ステップＳ４３の利用条件のすりあわせの例を示すフローチャートである。
【図２２】協調ポリシーをすりあわせるときのプロトコルを示す図である。
【図２３】ステップＳ１６の協調準備の処理の詳細を示すフローチャートである。
【図２４】ステップＳ１８の自律ポリシー選択・生成・登録の処理の詳細を示すフローチャートである。
【図２５】ステップＳ１６の協調準備の処理の例を示すフローチャートである。
【図２６】ステップＳ１８の自律ポリシー選択・生成・登録の処理の例を示すフローチャートである。
【図２７】ステップＳ１９の自律ポリシーに従い次の制御の実行の処理の詳細を示すフローチャートである。
【図２８】ステップＳ１４４及びステップＳ１５２のアクティビティの処理を示すフローチャートであり、図２８ＡはステップＳ１４４のアクティビティの事前処理を示すフローチャート、図２８ＢはステップＳ１５２のアクティビティの事後処理を示すフローチャートである。
【図２９】協調例を示す図である。
【符号の説明】
【０１８４】
１…アクティブコンテンツ、２…コンテンツ、３…プログラム、４…ポリシー、５…利用制約、流通方法、表示方法、６…埋め込み、７…製作者、８…暗号化、９…変換、１０…エージェント・サービス，１１…利用ポリシー、１２…利用方法・利用範囲、流通条件、１３…利用者、２１、３０…ホスト、２２…複合アクティブコンテンツ、２３、２４、４８…アクティブコンテンツ、２５…合成、２６…ユーザーエージェント・インターフェース、２７，２９…利用、２８…情報変換・情報出力サービス、３１…流通、４１，５１…アクティブコンテンツ、４２…コンテンツ、５２…子コンテンツ、４３、５３…制御記述、４５，５４…自律ポリシー、４６，５０、５６…協調ポリシー、７１，７７，８２，８５…ホスト、７６，７９，８４，８７…プレース、７２，７５，７３，７８…アクティブコンテンツ、７４…協調条件、８３…サービス、８６…ユーザーエージェント、１０１，１１６…ホスト、１０２…アクティブコンテンツ、１１２…プレース、１１７…ユーザーエージェント、１０４…コンテンツ情報格納部、１０５…協調ポリシー記述、１０６…制御記述、１０７…自律ポリシー記述、１０８…協調ポリシー登録部、１０９，１１４，１２１…協調条件生成決定部、１１０…交渉ポリシー記述、１１１…変換ルール記述、１１３，１２０…協調ポリシー登録部、１１５…制御変更・監視・実行部、１２７…実行状態、１２８…協調スタイル実施部
【図１】
0004392503.tif 000002
【図２】
0004392503.tif 000003
【図３】
0004392503.tif 000004
【図４】
0004392503.tif 000005
【図５】
0004392503.tif 000006
【図６】
0004392503.tif 000007
【図７】
0004392503.tif 000008
【図８】
0004392503.tif 000009
【図９】
0004392503.tif 000010
【図１０】
0004392503.tif 000011
【図１１】
0004392503.tif 000012
【図１２】
0004392503.tif 000013
【図１３】
0004392503.tif 000014
【図１４】
0004392503.tif 000015
【図１５】
0004392503.tif 000016
【図１６】
0004392503.tif 000017
【図１７】
0004392503.tif 000018
【図１８】
0004392503.tif 000019
【図１９】
0004392503.tif 000020
【図２０】
0004392503.tif 000021
【図２１】
0004392503.tif 000022
【図２２】
0004392503.tif 000023
【図２３】
0004392503.tif 000024
【図２４】
0004392503.tif 000025
【図２５】
0004392503.tif 000026
【図２６】
0004392503.tif 000027
【図２７】
0004392503.tif 000028
【図２８】
0004392503.tif 000029
【図２９】
0004392503.tif 000030