(57)【要約】      （修正有）【課題】新しいデバイスや既存のデバイスにより提供される新しいサービスがネットワークに追加された時に、管理システム全体に関係するコードを修正する必要をなくす。【解決手段】ネットワークデバイスにより提供される１つ以上のサービスを特定しネットワークデバイスと通信するためのインターフェイスを画成するサービス動作モジュールを生成し、サービス動作モジュールが、ネットワークデバイスにより提供される１つ以上のサービスを特定するデータを管理モジュールに提供する。管理モジュールがクライアントからサービス要求を受けると、管理モジュールが、前記データに基づき、ネットワークデバイスがサービス要求で特定されているサービスを提供するか判断する。サービスを提供する場合、管理モジュールがサービス動作モジュールにサービス要求を提供し、サービス動作モジュールがサービス要求をネットワークデバイスに転送する。【選択図】      図１
2007188505.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行される、ネットワークデバイスを管理する方法であって、
前記ネットワークデバイスのサービス動作モジュールであって、前記ネットワークデバイスにより提供される１つ以上のサービスを特定し前記ネットワークデバイスと通信するためのインターフェイスを画成するサービス動作モジュールを生成する段階と、
前記ネットワークデバイスの前記サービス動作モジュールが、前記ネットワークデバイスにより提供される１つ以上のサービスを特定するデータを管理モジュールに提供する段階と、
前記管理モジュールがクライアントからサービス要求を受けるのに応答して、前記管理モジュールが、前記データに基づき、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供するか判断し、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供する場合、前記管理モジュールが前記ネットワークデバイスの前記サービス動作モジュールに前記サービス要求を提供する段階と、
前記サービス動作モジュールが前記サービス要求を受け取るのに応答して、前記サービス動作モジュールが前記サービス要求を前記ネットワークデバイスに転送する段階と、を有することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、さらに、
第２のネットワークデバイスを発見する段階と、
前記第２のネットワークデバイスのサービス動作モジュールを生成する段階と、
前記管理モジュールに前記サービス動作モジュールを登録する段階と、を有することを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、さらに、
前記ネットワークデバイスにより提供される新しいサービスを発見し、
前記ネットワークデバイスの前記サービス動作モジュールを更新する段階であって、前記クライアントが前記新しいサービスを要求できるように前記インターフェイスが更新されるところの段階と、
前記ネットワークデバイスの前記サービス動作モジュールから、前記ネットワークデバイスにより提供される前記新しいサービスを特定する新しいデータを前記管理モジュールに提供する段階と、を有することを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、さらに、
イベント通知を受信する段階と、
前記イベント通知と関連するルールに基づいて、前記管理モジュールが前記ネットワークデバイスの前記サービス動作モジュールに、前記ルールに対応し前記ネットワークデバイス上のサービスによりサポートされている動作を送る段階と、
前記管理モジュールからの前記動作の受け取りに応じて、前記サービス動作モジュールが、前記動作を実行する前記ネットワークデバイスに前記動作を転送する段階と、を有することを特徴とする方法。
【請求項５】
ネットワークイベントとネットワーク中のネットワークデバイスにより提供される動作との間を相関させる、コンピュータにより実行させる方法であって、
第１のネットワークデバイスにより生成された１つ以上のネットワークイベントのセットを受け取る段階と、
第２のネットワークデバイスによりサポートされた１つ以上の動作のセットを受け取る段階と、
前記ネットワークイベントのセットのうちの１つのネットワークイベントの発生時に前記動作のセットのうちの１つの動作を画成するルールをユーザから受け取る段階と、
前記第１のネットワークデバイスからの前記ネットワークイベントの通知に応答して、前記第２のネットワークデバイスにより実行されるべき前記動作を前記第２のネットワークデバイスに送る段階であって、前記第１のネットワークデバイスは前記第２のネットワークデバイスと同じデバイスであるか、もしくは前記第２のネットワークデバイスと異なるデバイスであるところの段階と、を有することを特徴とする方法。
【請求項６】
ネットワークデバイスを管理する命令であって、１つ以上のシーケンスを担うコンピュータ読み取り可能媒体であって、前記命令は、１つ以上のプロセッサにより実行された時、前記１つ以上のプロセッサに、
前記ネットワークデバイスのサービス動作モジュールであって、前記ネットワークデバイスにより提供される１つ以上のサービスを特定し前記ネットワークデバイスと通信するためのインターフェイスを画成するサービス動作モジュールを生成する段階と、
前記ネットワークデバイスの前記サービス動作モジュールが、前記ネットワークデバイスにより提供される１つ以上のサービスを特定するデータを管理モジュールに提供する段階と、
前記管理モジュールがクライアントからサービス要求を受けるのに応答して、前記管理モジュールが、前記データに基づき、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供するか判断し、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供する場合、前記管理モジュールが前記ネットワークデバイスの前記サービス動作モジュールに前記サービス要求を提供する段階と、
前記サービス動作モジュールが前記サービス要求を受け取るのに応答して、前記サービス動作モジュールが前記サービス要求を前記ネットワークデバイスに転送する段階と、を実行させることを特徴とする媒体。
【請求項７】
請求項６に記載のコンピュータ読み取り可能媒体であって、
前記命令は、前記１つ以上のプロセッサにより実行された時、前記１つ以上のプロセッサにさらに
第２のネットワークデバイスを発見する段階と、
前記第２のネットワークデバイスのサービス動作モジュールを生成する段階と、
前記管理モジュールに前記サービス動作モジュールを登録する段階と、を実行させることを特徴とする媒体。
【請求項８】
請求項６に記載のコンピュータ読み取り可能媒体であって、
前記命令は、前記１つ以上のプロセッサにより実行された時、前記１つ以上のプロセッサにさらに
前記ネットワークデバイスにより提供される新しいサービスを発見する段階と、
前記ネットワークデバイスの前記サービス動作モジュールを更新する段階であって、前記クライアントが前記新しいサービスを要求できるように前記インターフェイスが更新されるところの段階と、
前記ネットワークデバイスの前記サービス動作モジュールから、前記ネットワークデバイスにより提供される前記新しいサービスを特定する新しいデータを前記管理モジュールに提供する段階と、を実行させることを特徴とする媒体。
【請求項９】
請求項６に記載のコンピュータ読み取り可能媒体であって、
前記命令は、前記１つ以上のプロセッサにより実行された時、前記１つ以上のプロセッサにさらに
イベント通知を受信する段階と、
前記イベント通知と関連するルールに基づいて、前記管理モジュールが前記ネットワークデバイスの前記サービス動作モジュールに、前記ルールに対応し前記ネットワークデバイス上のサービスによりサポートされている動作を送る段階と、
前記管理モジュールからの前記動作の受け取りに応じて、前記サービス動作モジュールが、前記動作を実行する前記ネットワークデバイスに前記動作を転送する段階と、を実行させることを特徴とする媒体。
【請求項１０】
ネットワークイベントとネットワーク中のネットワークデバイスにより提供される動作を相関させる命令の１つ以上のシーケンスを担うコンピュータ読み取り可能媒体であって、前記命令は、１つ以上のプロセッサにより実行された時、前記１つ以上のプロセッサに、
第１のネットワークデバイスにより生成された１つ以上のネットワークイベントのセットを受け取る段階と、
第２のネットワークデバイスによりサポートされた１つ以上の動作のセットを受け取る段階と、
前記ネットワークイベントのセットのうちの１つのネットワークイベントの発生時に前記動作のセットのうちの１つの動作を画成するルールをユーザから受け取る段階と、
前記第１のネットワークデバイスからの前記ネットワークイベントの通知に応答して、前記第２のネットワークデバイスにより実行されるべき前記動作を前記第２のネットワークデバイスに送る段階であって、前記第１のネットワークデバイスは前記第２のネットワークデバイスと同じデバイスであるか、もしくは前記第２のネットワークデバイスと異なるデバイスであるところの段階と、を実行させることを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイスの管理に関し、より具体的には、システムに新しいサービスまたはデバイスが追加された時に管理システムの動的拡張に関する。
【背景技術】
【０００２】
このセクションで説明するアプローチは、達成しようとすることができるものであるが、必ずしも以前に思いついたものや達成しようと試みたものではない。それゆえ、特に注意しない限り、このセクションに記載したアプローチはいずれもこのセクションに記載したことをもって先行技術であると考えるべきではない。
【０００３】
いろいろなデバイスがますますネットワーク対応となっている。家電製品をネットワークして、ネットワーク管理デバイスを用いてその家電製品により提供されるサービスを相互に関連づけることができる。ネットワーク対応デバイスであるプリンタやコンピュータ等は、ビジネスの場でより一般的である。例えば、プリンタの用紙またはインクがなくなった時、ネットワーク管理デバイスはそのプリンタからの通知を受信して処理する。その通知を受信すると、ネットワーク管理デバイスは、ネットワークのユーザに通知（例えば電子メールやインスタントメッセージ）する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、現在のデバイス管理システムでは、新しいデバイスや既存のデバイスにより提供される新しいサービスがネットワークに追加されると、その新しいデバイスやサービスに対応するため、管理システム全体に関係するコードを修正する必要がある。このように、現在のネットワーク管理システムは、デバイス管理コードを書き換えないと拡張することができない。さらにまた、既存のネットワーク中のいろいろなネットワークデバイスにより提供されるサービスの管理と相互関連は、事前に規定されており、それゆえ容易に拡張することができない。新しいデバイス、サービス、及びルールでネットワークを拡張するには時間がかかり、特定のネットワークデバイスマネージャをプログラミングする知識を有する人に大きな金額を払わなければならない。
【課題を解決するための手段】
【０００５】
かかる課題を解決するため、本発明の一態様では、コンピュータにより実行される、ネットワークデバイスを管理する方法を提供する。該方法は、前記ネットワークデバイスのサービス動作モジュールであって、前記ネットワークデバイスにより提供される１つ以上のサービスを特定し前記ネットワークデバイスと通信するためのインターフェイスを画成するサービス動作モジュールを生成する段階と、前記ネットワークデバイスの前記サービス動作モジュールが、前記ネットワークデバイスにより提供される１つ以上のサービスを特定するデータを管理モジュールに提供する段階と、前記管理モジュールがクライアントからサービス要求を受けるのに応答して、前記管理モジュールが、前記データに基づき、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供するか判断し、前記ネットワークデバイスが前記サービス要求で特定されているサービスを提供する場合、前記管理モジュールが前記ネットワークデバイスの前記サービス動作モジュールに前記サービス要求を提供する段階と、前記サービス動作モジュールが前記サービス要求を受け取るのに応答して、前記サービス動作モジュールが前記サービス要求を前記ネットワークデバイスに転送する段階と、を有する。
【０００６】
本発明の他の態様では、ネットワークイベントとネットワーク中のネットワークデバイスにより提供される動作との間を相関させる、コンピュータにより実行させる方法を提供する。該方法は、第１のネットワークデバイスにより生成された１つ以上のネットワークイベントのセットを受け取る段階と、第２のネットワークデバイスによりサポートされた１つ以上の動作のセットを受け取る段階と、前記ネットワークイベントのセットのうちの１つのネットワークイベントの発生時に前記動作のセットのうちの１つの動作を画成するルールをユーザから受け取る段階と、前記第１のネットワークデバイスからの前記ネットワークイベントの通知に応答して、前記第２のネットワークデバイスにより実行されるべき前記動作を前記第２のネットワークデバイスに送る段階であって、前記第１のネットワークデバイスは前記第２のネットワークデバイスと同じデバイスであるか、もしくは前記第２のネットワークデバイスと異なるデバイスであるところの段階と、を有する。
【発明の効果】
【０００７】
かかる構成により、システムに新しいサービスまたはデバイスが追加された時に、管理システムの動的拡張が可能となる。
【発明を実施するための最良の形態】
【０００８】
本発明は、添付した図面において実施例によって示すが、本発明を限定するものではない。同じ参照数字は同じ要素を示す。
【０００９】
以下の詳細な説明では、説明を目的として、本発明を完全に理解してもらうために、具体的な詳細事項を開示した実施形態例を記載する。しかし、言うまでもなく、本発明はこれらの詳細がなくても実施することができる。他の場合では、ブロック図に周知の構造とデバイスを示すが、これは本発明が不明瞭になることを避けるためである。
【００１０】
目次
I.  概要
II.  サービス発見モジュール
III.  サービス動作モジュール
IV.  管理モジュール
V.  イベント処理モジュール
VI.  ネットワーク実施例
VII.  実装メカニズム
I.  概要
ネットワーク中のネットワークデバイスを管理する方法を提供する。新しいネットワークデバイスやネットワークデバイスにより提供される新しいサービスを発見すると、新しく発見されたデバイスとサービスに対応するために、デバイスマネージャは、デバイスマネージャコードを修正する必要なしに拡張される。
【００１１】
図１は、本発明の一実施形態による、ネットワーク１００中のデバイスマネージャのいろいろな構成要素を示すブロック図である。ネットワーク１００は、そのネットワーク中のいろいろなノード間におけるデータの交換を提供する媒体またはメカニズムにより実装される。ネットワーク１００の例としては、これに限定されないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）、インターネット等のネットワークや、地上波、衛星波、または無線リンク等が含まれる。ネットワーク１００は、ここに説明したようなネットワークを組み合わせたものを含んでいてもよい。ネットワーク１００は、ＴＣＰ（Transmission  Control  Protocol）とＩＰ（Internet  Protocol）によりデータを伝送してもよい。
【００１２】
ネットワーク１００は、コンピュータ、家電製品、いろいろな通信デバイス（例えば、携帯電話やＰＤＡ）を含むホームネットワークであってもよい。ネットワーク１００は、プリンタ、コンピュータ、スキャナ、ＰＤＡ、電話等、ネットワークにつないでビジネス用途に使用できるいかなるデバイスを含むビジネスネットワークであってもよい。
【００１３】
デバイスマネージャ１０１は、クライアント１２０であるネットワークアドミニストレータ等に、新しいデバイス１２２−１２４を発見し接続し、デバイス１２２−１２４からサービス要求を送信し、ルールを送信できるようにする。デバイスマネージャ１０１は、ネットワークイベントをイベントハンドラモジュール１１０を介して検出すると、クライアント１２０に通知して、及び／またはデバイス１２２−１２４にサービスを要求してもよい。
【００１４】
ネットワーク上でネットワークデバイス１２２が発見されると、そのネットワークデバイス１２２に対するサービス動作モジュール（ＳＯＭ）１０６が生成される。サービス発見モジュール（ＳＤＭ）１０４は、新しいデバイスを発見するために使用されてもよい。ＳＯＭ１０６は、管理モジュール（ＭＭ）１０２とネットワークデバイス１２２間のインターフェイスとして動作する。ＭＭ１０２は、例えばＳＤＭ１０４を介して新しいネットワークデバイス１２２について通知されると、その新しいネットワークデバイスにより提供されるサービス（及びそのサービスに関連する動作）と、その新しいネットワークデバイスに関連するイベントを要求してもよい。その要求はＳＯＭ１０６に送られ、ネットワークデバイス１２２に転送される。
【００１５】
クライアント１２０は、ネットワークデバイス１２２−１２４にサービスを要求してもよい。サービス要求はＭＭ１０２に送られる。ＭＭ１０２は、そのサービス要求を適当なＳＯＭに転送し、ＳＯＭがそのサービス要求を対応するネットワークデバイスに転送する。クライアント１２０は、ネットワークデバイス１２２に関連したＭＭ１０２とイベントハンドラ１１０を介して、そのネットワークデバイス１２２からネットワークイベントの通知を受けるよう要求してもよい。ネットワークデバイスによりサポートされているイベントと動作に基づき、ユーザはルールを指定して、ＭＭ１０２がネットワークデバイスから（または例えばイベントハンドラモジュール（ＥＨＭ）１１０を介して別のネットワークデバイスから）、指定されたイベントの通知を受信した時、そのネットワークデバイスにより実行される指定されたアクションを開始する。それゆえ、ネットワークユーザは、複数のルールを定義して、様々なサービスの使用を相互に関連させてタスクを達成する。
【００１６】
II.サービス発見モジュール
管理システムの一部として、サービス発見モジュール（ＳＤＭ）１０４の主な目的は、既存のデバイス及び変化のあったサービスだけでなく、ネットワーク１００に追加された新しいデバイスと新しいサービスを発見することである。例えば、以前発見されたデバイスのアドレスが変化した場合、そのデバイスは新しいアドレスで再度発見される。また、既存のサービスと関連するメタデータが何らかの方法で修正された場合、修正されたサービスが発見される。
【００１７】
ＳＤＭ１０４は、管理モジュール（ＭＭ）１０２とは別のモジュールとして実装されてもよいし、ＭＭ１０２と同じロジックの一部であってもよい。新しいデバイスを発見するには、いかなる方法やアプローチを使用してもよい。例えば、ＳＤＭ１０４は、新しいデバイスと、既存のデバイスにより提供される新しいサービスとを定期的に問い合わせてもよいし、新しいネットワークデバイスがその存在を直接ＳＤＭ１０４またはＭＭ１０２に通知するように構成してもよい。他の実施例として、現在のデバイスと使用するサービス発見方法は、ウェブサービスディスカバリー（ＷＳＤ）とユニバーサルプラグ＆プレイ（ＵＰｎＰ）を含んでいてもよい。また、各デバイスとサービスに対応するメタデータをウェブサービスメタデータエクスチェンジを用いて検索してもよい。このウェブサービスメタデータエクスチェンジは３種類のメタデータであるＷＳポリシー、ＷＳＤＬ、ＸＭＬスキーマを検索する。本発明の実施形態では、上記の発見及びメタデータ交換メカニズムのいずれを使用してもよいが、これに限定はされない。
【００１８】
本発明の一実施形態によれば、ＭＭ１０２とＳＤＭ１０４はがロジックとしては別のモジュールである場合、ＭＭ１０２とＳＤＭ１０４の間のインターフェイスは、次のファンクションコールを含む。
【００１９】
【表１】
2007188505.tif 000003
ＳＤＭ１０４は、デバイスまたはサービスを発見した時、ＭＭ１０２への通知のため、その新しいサービスまたはデバイスと関連した、そのデバイスのネットワークアドレス（アドレス）、一意的なサービス／デバイス識別子（ServiceID）、発見したサービス／デバイスのタイプ（ServiceType）、イベントのリスト（eventNameリスト）を送る。そのサービス／デバイスに関係する情報をうまく受信したかどうかに応じて、ＭＭ１０２はＳＤＭ１０４に成功または失敗を表示する。
【００２０】
III.サービス動作モジュール
サービス動作モジュール（ＳＯＭ）によりデバイスマネージャ１０１は容易に拡張可能である。すべてのサービスはそれ自身のＳＯＭと関連している。ＳＯＭが提供するインターフェイスによりＭＭ１０２はネットワークデバイスと通信することができる。一実施形態によるＳＯＭとＭＭ１０２の間のインターフェイスの実施例を下のテーブルに記載する。
【００２１】
【表２】
2007188505.tif 000004
図２は、本発明の一実施形態による、サービスを発見した時にデバイス管理装置のモジュール間の通信を示すシーケンス図である。図２のステップ１において、ＳＤＭ１０４は、ネットワーク１００中の新しいデバイス（例えば、デバイス１２２）を発見し、その新しいデバイスにより提供されるサービスに関する情報をＭＭ１０２に提供する。ステップ２において、その新しいデバイスに関連するＳＯＭが、そのデバイスに関連する新しいサービスのネットワークアドレス（アドレス）をＭＭ１０２に送信することにより、ＭＭ１０２に登録される。
【００２２】
ステップ３において、ＭＭ１０２はＳＯＭに要求を送り、その新しいデバイスによりサポートされている動作を取得する。この要求に応じて、ＳＯＭは、動作のリストをそのそれぞれのパラメータとともに返し、ネットワークイベントの発生時に発酵される動作を特定する新しいルールをエンドユーザが定義できるようにする。
【００２３】
ネットワークイベントが発生し、そのイベントにルールが関連している時、ルールエンジンが適当なＳＯＭにそのルールで特定された動作を送る（すなわち、SendOperation）。ルールエンジンはロジックとしてＭＭ１０２の一部であってもなくてもよい。ファンクションコールは動作の名称とその動作が必要とするパラメータのリストとを含む。ＳＯＭは、その動作をＳＯＭと関連するネットワークデバイスに転送する。
【００２４】
IV.管理モジュール
管理モジュール（ＭＭ）１０２は、いかなるデバイス上に実装されてもよく、例えばネットワークできるホームコンピュータやハンドヘルドデバイス等に実行されてもよい。ＭＭ１０２の重要な機能は、他のモジュール（例えば、ＳＤＭ、ＳＯＭ、イベントハンドラ）や、エンドユーザであるネットワーク管理者等といかに通信するかを「知っている」ことである。ＭＭ１０２と他のモジュールは、分散していてもよいし、単一のプラットフォーム上に実装されていてもよい。
【００２５】
一実施形態による、エンドユーザであるクライアント１０２等とＭＭ１０２との間のインターフェイスを、下のテーブルに記載した。
【００２６】
【表３】
2007188505.tif 000005
GetServicesファンクションコールを発行することにより、クライアント１２０は、ＭＭ１０２が発見したサービスと、各サービスの対応するネットワークアドレス、サービス識別子、及びサービスタイプのリストを取得する。GetEventsは、ＭＭ１０２に特定のサービスに関連するイベントのリストをクライアント１２０に送らせる。クライアント１２０は、ネットワーク上の特定のサービスを一意的に識別するサービス識別子及び／またはそのサービスを提供しているデバイスのネットワークアドレスを提供する。GetOperationsは、動作とそのパラメータのリストをクライアント１２０に返す。また、クライアント１２０は、その動作リストをサポートするサービスのサービス識別子を提供してもよい。一実施形態では、クライアント１２０がGetServicesを発行した時、そのファンクションコールがイベントとそのデバイスによりサポートされている動作も返すことは、上で説明した通りである。
【００２７】
SetEventファンクションコールにより、クライアント１２０は、サービスによりサポートされたイベントの通知を受ける（すなわち関心を登録する）ことができる。SetEvent関数は、イベントをＭＭ１０２に登録する。そして、ＭＭ１０２は、SubscribeEvent関数（詳細は後述する）を介してＥＨＭ１１０に要求を転送する。このファンクションコールを用いて、イベントハンドラモジュール（ＥＨＭ）１１０（ロジック的にＭＭ１０２の一部であっても、ＭＭ１０２とは別であってもよい）は、そのサービスをモニターし、イベントをＭＭ１０２及び／またはクライアント１２０に通知する。また、ＥＨＭ１１０は、イベントを通知されると、ルールエンジン（例えばルールエンジン１１２）にファンクションコールを発行して、システムまたはクライアント１２０により定義されたルールに基づき動作を開始させる。
【００２８】
SetEventのパラメータには、そのサービスのサービス識別子と、（GetEventsファンクションコールの結果として取得した）そのイベントの名称と、期間を含んでいる。期間は、デバイスマネージャ１０１がどのくらいの期間にわたってＥＨＭ１１０を介してそのイベントをモニターするかを指す。例えば、クライアント１２０の管理者は、２時間、そのイベントに関心を有しているかも知れない。そうすると、SetEventは２時間を指定する期間パラメータを有し、２時間が過ぎると、ＥＨＭ１１０はそのイベントのモニターをやめるか、ＭＭ１０２にそのイベントを報告する。SetEvent関数に応じて、ＭＭ１０２は、クライアント１２０にイベントを一意的に識別するイベント識別子を送る。イベント識別子は、ネットワーク１００の新しいルールの定義に使用してもよい。
【００２９】
SetOperationにより、クライアント１２０は、一定の条件が満たされた時、例えばイベントの発生に基づきルールがトリガーされた時等に、後で使用する動作と一定のパラメータを特定することができる。SetOperationファンクションコールは、パラメータとしてのサービス識別子と、動作の名称と、動作に特有のパラメータとを含む。それに対して、ＭＭ１０２は、クライアント１２０に動作を一意的に識別する動作識別子を送る。この動作識別子は、ネットワーク１００の新しいルールの定義に使用してもよい。
【００３０】
SetRuleファンクションコールは、ネットワークイベントが発生した時に実行する動作を示す、ＭＭ１０２またはルールエンジン１１２への表現ステートメントを特定する手段をクライアント１２０に提供する。ルールエンジン１１２は、（ロジック的にはＭＭ１０２の一部であってもなくてもよく）特定されたルールを評価する。ＭＭ１０２とクライアント１２０の間のインターフェイスにより、ルールエンジンを効率的に拡張して新しいルールを処理することができる。
【００３１】
図３は、本発明の一実施形態による、ＭＭ１０２とルール関係クラス間の関係を示すクラス図である。クラス図３００は、管理モジュールの概要を示しており、管理モジュールに関連するクラスと、その間の関係を示している。ＵＭＬクラス記号では、四角形が３つの部分、すなわちクラス名、属性、及び動作に分かれている。抽象クラス名であるIRuleObject等は、イタリックである。クラス間の関係は接続リンクである。
【００３２】
クラス図３００には少なくとも３種類の関係が含まれている。すなわち、関連、集約、一般化である。関連は、リンクでつながれた２つのクラスのインスタンス間の関係である。関連は、２つのクラス間に、一方のクラスのインスタンスがその作業を実行するために他のクラスについて知らなければならない場合に存在する。集約は、一方のクラスがコレクションに属する場合の関連である。集約は、一端が菱形であり、全体を含む方を指している。このように、クラス図３００では、管理モジュールクラスは、EventSource、ActionsSource、RuleEngineオブジェクトの集まり（collection）である。RuleEngineクラスはIruleObjectの集まりを有し、RuleObjectクラスはRuleConditionオブジェクトとRuleActionオブジェクトの集まりを有する。
【００３３】
一般化は、一方のクラスが他方のクラスのスーパークラスであることを示す承継リンクである。一般化は、スーパークラスを指示する三角形で示した。このように、クラス図３００では、IruleObjectはRuleObjectのスーパークラスであり、RuleObjectはBasicRuleObjectのスーパークラスである。
【００３４】
関連の一端の多重度は、他端である単一インスタンスに関連するクラスのあり得るインスタンスの数である。多重度は一つの数または数の範囲である。クラス図３００に示したように、各RuleEngineにはManagementModuleが１つだけあり、その逆も言える。ManagementModuleとEventSource間の多重度とManagementModuleとActionsSource間の多重度は等しい。また、各IruleObjectにはRuleEngineが１つだけあるが、RuleEngineはIRうぇObjectをいくつ有していてもよい。また、各RuleConditionにはRuleObjectが１つだけであるが、RuleObjectは複数のRuleConditionを有していてもよい。RuleObjectとRuleAction間の多重度は同じである。
【００３５】
V.  イベント処理モジュール
ＳＤＭ１０４とＳＯＭ１０６−１０８と同様に、イベントハンドラモジュール（ＥＨＭ）１１０はネットワークデバイス１２２−１２４と直接通信してもよい。通信は様々な手段を用いて行える。例えば、ＷＳイベンティング（WS-Eventing）であり、これは動作のベースラインセットを画成して、ウェブサービスにより関心を有する者（interested
party）に非同期通知を可能とするものである。ＷＳイベンティングは、標準的なメッセージ交換を含む通知作成部（例えばデバイス１２２）と通知消費部（例えばＥＨＭ１１０）のために、単純なレベルのウェブサービスインターフェイスを画成する。一実施形態では、ＥＨＭ１１０とＭＭ１０２間のインターフェイスは、下のテーブルに記載したファンクションコールSubscribeEvent及びSaveNotificationにより構成されてもよい。
【００３６】
【表４】
2007188505.tif 000006
ＭＭ１０２がクライアント１２０からSetEvent要求を受信したのち、ＭＭ１０２は、その要求を、ネットワークアドレス、サービス識別子、イベント名情報、及び期間の値と伴に、SubscribeEventファンクションコールを介してＥＨＭ１１０に転送する。要求が正しく送信されると、ＥＨＭ１１０はＭＭ１０２にイベント識別子（EventID）を返す。
【００３７】
サービスによりサポートされているイベントが発生すると、ＥＨＭ１１０はそのサービスからメッセージを受け取る。そのメッセージには、パラメータとして、イベントのソース（EventSource）、イベント名（EventName）、通知（NotificationMsg）、及びそのイベントの発生時が含まれている。ＥＨＭ１１０は、そのサービスからのこのメッセージを解析して、そのパラメータをSaveNotificationファンクションコールを介してＭＭ１０２に送信する。ＭＭ１０２は、そのファンクションコールを格納して、その発生したイベントをルールエンジンにすぐに通知する。そのイベントにより、ルールに基づき１つ以上の動作が行われてもよい。
【００３８】
VI.ネットワーク実施例
図４は、本発明の一実施形態による、ルールが定義され実行された時のモジュール間の通信を示すシーケンス図である。この例では、ネットワーク１００は家庭のネットワークであり、デバイス１２２は携帯電話であり、新しく追加されたデバイス１２４はネットワークテレビであり、クライアント１２０はデバイスを管理するホームコンピュータである。ネットワーク１００のユーザは親であり、子供がどのくらい長い時間テレビを見ているかを監視している。１）ＳＤＭ１０４がネットワーク１００上でテレビを発見し、２）ＳＯＭ１０８が生成されネットワーク１００に追加され、３）ＳＯＭ１０８がＭＭ１０２に登録されると、親はテレビによりサポートされたイベントと動作を得る。親は、SetEventファンクションコールとSetOperationファンクションコールからのイベントと動作を用いてルールを発行する。そのルールは、１日あたり２時間テレビがついているとトリガーされる。テレビが２時間ついていることをＥＨＭ１１０が検出すると、それに応じて親の携帯電話（すなわちデバイス１２２）が呼ばれ、イベントの発生を親に通知する。
【００３９】
ステップ１において、ＭＭ１０２は、親がSetEventファンクションコールを発行するのに応じて、ＥＨＭ１１０にSubscribeEvent要求を送る。その要求にはネットワーク中のテレビのアドレスとサービス識別子が含まれている。イベント名はＴＶ−ＯＮである。ステップ２において、ＭＭ１０２は、親が他のSetEventファンクションコールを発行するのに応じて、ＥＨＭ１１０に他のSubscribeEvent要求を送る。この要求にもネットワーク中のテレビのアドレスとサービス識別子が含まれている。イベント名はＴＶ−ＯＦＦである。
【００４０】
SubscribeEventファンクションコール後のある時点において、ＥＨＭ１１０は、テレビがＯＮであるというネットワークイベントを検出する。それに応じて、ステップ３において、ＥＨＭ１１０は、イベントのソースがテレビであり、イベント名はＴＶ−ＯＮであり、このイベントの時間はtime１であることを示すメッセージを、ＭＭ１０２に送る。そして、ＥＨＭ１１０は、テレビがＯＦＦになったことを他のネットワークイベントとして検出する。それに応じて、ステップ４において、ＥＨＭ１１０は、イベントのソースがテレビであり、イベント名はＴＶ−ＯＦＦであり、このイベントの時間はtime２であることを示す他のメッセージを、ＭＭ１０２に送る。
【００４１】
time１とtime２間の時間差が２時間である場合、ステップ５において、ＭＭ１０２によりＳＯＭ１０６にファンクションコールが発行される。このＳＯＭ１０６は携帯電話（すなわちデバイス１２２）のＳＯＭである。ファンクションコールSendOperationは、ＳＯＭ１０６のSOM_IDと動作のパラメータを含む。ここで、デバイス名はメッセージ（「テレビの時間が長過ぎる」）とともに提供され、親に送信される。親は、設定したルールにより、メッセージにより携帯電話で通知される。
【００４２】
VII.実装メカニズム
図５は、本発明の一実施形態を実装するコンピュータシステム５００を示すブロック図である。コンピュータシステム５００は、情報をやりとりする通信メカニズムすなわちバス５０２と、バス５０２に結合した情報を処理するプロセッサ５０４とを有する。コンピュータシステム５００は、さらに、情報とプロセッサ５０４により実行される命令とを格納する、バス５０２に結合したランダムアクセスメモリ（ＲＡＭ）またはその他のダイナミック記憶装置等のメインメモリを含む。メインメモリ５０６は、プロセッサ５０４による命令の実行中に、一時的変数やその他の中間情報を記憶するために使用されてもよい。コンピュータシステム５００は、さらに、プロセッサ５０４のために静的な情報と命令とを記憶する、バス５０２に結合された読み出し専用メモリ（ＲＯＭ）５０８その他の静的記憶デバイスを含む。記憶デバイス５１０である磁気ディスクや光ディスク等が、情報と命令を格納するために設けられ、バス５０２に結合される。
【００４３】
コンピュータユーザに情報を表示するため、コンピュータシステム５００は、バス５０２を介して、ディスプレイ５１２である陰極線管（ＣＲＴ）等に結合されてもよい。プロセッサ５０４に情報とコマンド選択を送るために、英数字その他のキーを含む入力装置５１４がバス５０２に結合される。他のタイプのユーザ入力装置として、カーソル制御であるマウス、トラックボール、またはカーソル方向キー等がある。これらは、プロセッサ５０４に方向情報とコマンド選択を送り、ディスプレイ５１２上のカーソルの動きを制御する。この入力装置は、典型的には２つの軸、すなわち第１の軸（例えばｘ軸）と第２の軸（例えばｙ軸）で２自由度を有し、これにより平面内の点を特定することができる。
【００４４】
本発明は、個々に説明した方法を実装するためのコンピュータシステム５００の使用にも関する。本発明の一実施形態によると、これらの方法のコンピュータシステム５００による実行は、メインメモリ５０６に含まれる１つ以上の命令の１つ以上のシーケンスをプロセッサ５０４が実行することにより行われる。かかる命令は、他の機械読み取り可能媒体である記憶デバイス５１０等から、メインメモリ５０６に読み込まれてもよい。メインメモリ５０６に含まれる命令シーケンスの実行により、プロセッサ５０４はここに説明したプロセスステップを実行する。他の実施形態では、本発明の実装には、ソフトウェア命令に替えて、またはこれと組み合わせて、ソフトウェアがハードウェアに組み込まれた回路を使用してもよい。このように、本発明の実施形態は、ハードウェア回路とソフトウェアの特定の組み合わせに限定はされない。
【００４５】
ここで、「機械読み取り可能媒体」との用語は、機械に特定のやり方で動作させるデータを提供するいかなる媒体も指す。コンピュータシステム５００を用いて実装した一実施形態では、例えば、プロセッサ５０４が実行する命令を提供するために、様々な機械読み取り可能媒体が使用される。かかる媒体は、不揮発性媒体、揮発性媒体、伝送媒体等の多数の形式をとることができるが、これらに限定はされない。不揮発媒体には、例えば、光ディスクまたは磁気ディスクが含まれ、記憶デバイス５１０等である。揮発性媒体には、ダイナミックメモリであるメインメモリ５０６等が含まれる。伝送媒体には、同軸ケーブル、銅ワイヤ、光ファイバが含まれ、バス５０２を含むワイヤも含まれる。伝送媒体は、音波や光波であって、無線通信や赤外線データ通信中に生成されるものの形態を取ることもできる。
【００４６】
機械読み取り可能媒体の一般的な形態には次のものが含まれる。例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、ＣＤ−ＲＯＭその他の光媒体、パンチカード、紙テープ、その他の穴のパターンを有する物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、その他のメモリチップまたはカートリッジ、以下に説明する搬送波、コンピュータが読み取れるその他のいかなる媒体。
【００４７】
プロセッサ５０４が実行する１つ以上の命令の１つ以上のシーケンスの搬送には、機械読み取り可能媒体の様々な形態が使用される。例えば、命令は最初にリモートのコンピュータの磁気ディスク上に担われていてもよい。リモートコンピュータは、その命令をそのダイナミックメモリにロードして、モデムを用いて電話回線を介してその命令を送信することができる。コンピュータシステム５００にあるモデムが、電話回線上のデータを受信し、赤外トランスミッタを用いてそのデータを赤外信号に変換することができる。赤外検出器が赤外信号で搬送されたそのデータを受信して、適当な回路がそのデータをバス５０２に載せることができる。バス５０２は、そのデータをメインメモリ５０６に送り、プロセッサ５０４はそのメインメモリ５０６から命令を読み出して実行する。メインメモリ５０６が受け取った命令は、プロセッサ５０４が実行する前か後に、任意的に、記憶デバイス５１０に記憶されてもよい。
【００４８】
コンピュータシステム５００は、バス５０２に結合した通信インターフェイス５１８も含む。通信インターフェイス５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に結合した双方向データ通信を提供する。例えば、通信インターフェイス５１８は、統合デジタルサービスネットワーク（ＩＳＤＮ）カードまたはモデムであって、対応するタイプの電話回線へのデータ通信接続を提供してもよい。他の例として、通信インターフェイス５１８は、ローカルエリアネットワーク（ＬＡＮ）カードであって、互換性のあるＬＡＮへのデータ通信接続を提供してもよい。無線リンクで実装してもよい。かかる実装では、通信インターフェイス５１８は、いろいろなタイプの情報を表すデジタルデータストリームを搬送する電気的、電磁気的、または光学的信号を送受信する。
【００４９】
ネットワークリンク５２０は、一般的には、１つ以上のネットワークを介して他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク５２０は、ホストコンピュータ５２４またはインターネットサービスプロバイダ（ＩＳＰ）５２６により運営されているデータ機器へのローカルネットワーク５２２を介した通信を提供する。ＩＳＰ５２６は、これに対して、現在は一般的に「インターネット」５２８と呼ばれている、世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク５２２とインターネット５２８は、両方とも、デジタルデータストリームを担う電気的、電磁気的、または光学的信号を使用する。様々なネットワーク中の信号やネットワークリンク５２０と通信インターフェイス５１８上の信号は、コンピュータシステム５００との間でデジタルデータを搬送し、情報を伝送する搬送波の形態例である。
【００５０】
コンピュータシステム５００は、ネットワーク、ネットワークリンク５２０、及び通信インターフェイス５１８を介して、メッセージを送信しプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ５３０は、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２、及び通信インターフェイス５１８を介して、要求されたアプリケーションプログラムのコードを送信してもよい。
【００５１】
受信したコードは、受信しつつプロセッサ５０４により実行されてもよいし、後で実行するために記憶デバイス５１０またはその他の不揮発性記憶装置に記憶されてもよい。このように、コンピュータシステム５００は、搬送波の形態でアプリケーションコードを取得してもよい。
【００５２】
上記の通り明細書では、実施ごとに代わり得る多数の詳細を参照して本発明の実施形態を説明した。このように、本発明であり、出願人が本発明であると意図しているものを示すのは、願書に添付した特許請求の範囲であり、特許後の訂正も含め特許された請求項である。かかる請求項に含まれる用語についてここで明示的に記載した定義は、請求項で使用されるかかる用語の意味を司るものである。よって、請求項中に明示的に含まれていない限定、要素、特性、特徴、利益、または属性は、いかなる方法によっても、かかる請求項の範囲を限定するものではない。したがって、明細書と図面は例示であって限定ではないと考えるべきである。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態による、ネットワークデバイス管理装置のいろいろな構成要素を示すブロック図である。
【図２】本発明の一実施形態による、サービスを発見した時にデバイス管理装置のモジュール間の通信を示すシーケンス図である。
【図３】本発明の一実施形態による、管理モジュールとルール関係クラス間の関係を示すクラス図である。
【図４】本発明の一実施形態による、ルールが定義され実行された時のモジュール間の通信を示すシーケンス図である。
【図５】本発明の一実施形態を実装するコンピュータシステムを示すブロック図である。
【符号の説明】
【００５４】
１００  ネットワーク
１０１  デバイスマネージャ
１０２  管理モジュール
１０４  サービス発見モジュール
１０６  サービス動作モジュール
１０８  サービス動作モジュール
１１０  イベントハンドラモジュール
１１２  ルールエンジン
１２０  クライアント／ネットワークアドミニストレータ
１２２  ネットワークデバイス
１２４  ネットワークデバイス
５０２  バス
５０４  プロセッサ
５０６  メインメモリ
５０８  ＲＯＭ
５１０  記憶デバイス
５１２  ディスプレイ
５１４  入力デバイス
５１６  カーソル制御
５１８  通信インターフェイス
５２０  ネットワークリンク
５２２  ローカルネットワーク
５２５  ホスト
５２６  ＩＳＰ
５２８  インターネット
５３０  サーバ
【図１】
2007188505.tif 000007
【図２】
2007188505.tif 000008
【図３】
2007188505.tif 000009
【図４】
2007188505.tif 000010
【図５】
2007188505.tif 000011