(57)【要約】【課題】拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法を提供すること。【解決手段】メッセージを拡張ポイントに送信する前に、そのメッセージをその拡張ポイントに関連するラッパー・オブジェクトでラップする。拡張ポイントは、メッセージに対する操作を開始する準備ができたとき、ラッパー・オブジェクトの妥当性検査をすることができる。ラッパー・オブジェクトの妥当性確認によって、拡張ポイントはメッセージにアクセスすることができるようになる。後ほど拡張ポイントは、メッセージに対する操作を完了したとき、ラッパー・オブジェクトを無効化することができる。ラッパー・オブジェクトの無効化によって、拡張ポイントによるメッセージへのアクセスは拒否される。【選択図】図１
2006244477.tif 000002
【特許請求の範囲】
【請求項１】
拡張ポイントによるメッセージへのアクセスを規制するための方法であって、
ラッパー・オブジェクトであって、前記拡張ポイントによってラッパー・オブジェクトの妥当性が確認された場合、前記拡張ポイントに前記メッセージへのアクセス権を与え、前記ラッパー・オブジェクトが前記拡張ポイントによって無効化された場合は、前記拡張ポイントによる前記メッセージへのアクセスを拒否する、ラッパー・オブジェクトを使用して前記メッセージをラップすること、および
前記ラップされたメッセージを前記拡張ポイントに送信すること
を備えることを特徴とする方法。
【請求項２】
前記メッセージを、別の拡張ポイントに関連付けられた別のラッパー・オブジェクトを使用してラップすることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記メッセージに対する操作の完了前に前記拡張ポイントから戻された前記妥当性確認済みのラップされたメッセージを受け取ること、
前記メッセージの処理を進めること、
前記メッセージに対する操作を続行する準備ができたとの前記拡張ポイントからの指示を受け取ること、および
前記妥当性確認済みのラップされたメッセージを前記拡張ポイントに戻すこと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記メッセージを送信キューに送信することによって前記メッセージの処理を進めることをさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記拡張ポイントが前記無効化済みのラップされたメッセージにアクセスしようと試みた場合、例外を生成することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記ラップ済みメッセージをカテゴライザ拡張ポイントに送信することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記ラップ済みメッセージを受信モジュール拡張ポイントに送信することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
拡張ポイントによるメッセージへのアクセスを規制するためのシステムであって、
前記拡張ポイントと、
ラッパー・オブジェクトであって、前記拡張ポイントによってラッパー・オブジェクトの妥当性が確認された場合は前記拡張ポイントに前記メッセージへのアクセス権を与え、前記ラッパー・オブジェクトが前記拡張ポイントによって無効化された場合は前記拡張ポイントによる前記メッセージへのアクセスを拒否する、ラッパー・オブジェクトと、
前記メッセージを前記拡張ポイントに送信する前に、前記ラッパー・オブジェクトを使用して前記メッセージをラップするメッセージ転送エージェントと
を備えることを特徴とするシステム。
【請求項９】
前記拡張ポイントはカテゴライザ拡張ポイントであることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記拡張ポイントは受信モジュール拡張ポイントであることを特徴とする請求項８に記載のシステム。
【請求項１１】
前記拡張ポイントは、前記妥当性確認済みのラップされたメッセージを前記メッセージ転送エージェントに戻し、次いで、後ほど、前記メッセージ転送エージェントから戻された、前記妥当性確認済みのラップされたメッセージを受け取ることを特徴とする請求項８に記載のシステム。
【請求項１２】
前記メッセージは別の拡張ポイントに関連付けられた別のラッパー・オブジェクトを使用してラップされることを特徴とする請求項８に記載のシステム。
【請求項１３】
前記拡張ポイントが無効化済みのラップされたオブジェクトにアクセスしようと試みた場合、前記メッセージ転送エージェントは例外を生成することを特徴とする請求項８に記載のシステム。
【請求項１４】
拡張ポイントによるメッセージへのアクセスを規制するためのコンピュータ読み取り可能媒体であって、
ラッパー・オブジェクトであって、前記拡張ポイントによってラッパー・オブジェクトの妥当性が確認された場合は前記拡張ポイントに前記メッセージへのアクセス権を与え、前記ラッパー・オブジェクトが前記拡張ポイントによって無効化された場合は前記拡張ポイントによるメッセージへのアクセスを拒否する、ラッパー・オブジェクトを使用して前記メッセージをラップするためのコンピュータ実行可能命令と、
前記ラップされたメッセージを前記拡張ポイントに送信するためのコンピュータ実行可能命令と
を有することを特徴とするコンピュータ読み取り可能媒体。
【請求項１５】
前記メッセージを、別の拡張ポイントに関連付けられた別のラッパー・オブジェクトを使用してラップするためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１６】
前記メッセージに対する操作を完了する前に、前記拡張ポイントから前記妥当性確認済みのラップされたメッセージを受け取るためのコンピュータ実行可能命令と、
前記メッセージの処理を進めるためのコンピュータ実行可能命令と、
前記メッセージに対する操作を続行する準備ができたとの前記拡張ポイントからの指示を受け取るためのコンピュータ実行可能命令と、
前記妥当性確認済みのラップされたメッセージを前記拡張ポイントに戻すためのコンピュータ実行可能命令と
をさらに備えることを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１７】
前記メッセージの処理を進めるための前記コンピュータ実行可能命令は、前記メッセージを送信キューに送信するためのコンピュータ実行可能命令を備えることを特徴とする請求項１６に記載のコンピュータ読み取り可能媒体。
【請求項１８】
前記拡張ポイントが前記無効化済みのラップされたメッセージにアクセスしようと試みた場合に例外を生成するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１９】
前記拡張ポイントはカテゴライザ拡張ポイントであることを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項２０】
前記拡張ポイントは受信モジュール拡張ポイントであることを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メールの転送および配信の分野に関し、より詳細には、転送および配信処理中に、拡張ポイントによる電子メール・メッセージへのアクセスを規制することに関する。
【背景技術】
【０００２】
メッセージ転送エージェント（Message Transfer Agent；ＭＴＡ）は、送信されてくる電子メールを受信し、電子メール・メッセージを個々のユーザに配信する役目をするプログラムである。一般に、ＭＴＡは、外部ソースからメッセージを受信し、そのメッセージを適切な受取人に分類して経路指定し、次いでそのメッセージを適切な目的地に送信する処理パイプラインである。ＭＴＡの中でメッセージを処理するとき、多くの場合、メッセージに対して外部操作を行えるようにする拡張ポイントにそのメッセージを渡すのが望ましいということがよくある。たとえば、ウィルスに感染していないかメッセージをスキャンし、メッセージの傍受者がいないかどうか決定し、メッセージに受信拒否（disclaimer）を付加し、あるいはスパム・メール送信者との通信を停止するために、拡張ポイントを呼び出すことがある。これらの外部操作には、外部コードの実行が必要となる可能性があり、処理の限界を超えたり、あるいはリモート・サービスの呼出しが必要となったりする可能性がある。
【０００３】
簡単な例では、拡張ポイントは、ＭＴＡからメッセージを受け取り、そのメッセージに対して全ての操作を完了し、次いで、さらなる処理をすべくそのメッセージをＭＴＡに戻す。しかし、より複雑な例では、拡張ポイントは、メッセージを最初に受け取ったとき、その操作を全て実行することはできないことがある。したがって、拡張ポイントは、転送および配信処理の不必要な遅延を避けるために、その操作を一部分だけ実行し、メッセージをＭＴＡに戻し、後ほど、ＭＴＡにあるそのメッセージに再アクセスして操作を完了することがある。このより複雑なシナリオでは、拡張ポイントは、メッセージをＭＴＡに戻す前にメッセージにフラグを立てることができる。拡張ポイントは、そのメッセージに再アクセスし、操作を完了した後で初めてフラグを外す。操作が完了するまでメッセージが配信されないことを保証するために、ＭＴＡはフラグが外されるまでメッセージを配信しない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この拡張ポイントによる戻しによって、メッセージの処理効率は改善されるが、いくつかのメッセージ・アクセス問題も生じる。具体的には、操作が完了しても、拡張ポイントがメッセージのフラグを外さないことがある。また、フラグがすでに外されていても、拡張ポイントがメッセージに不適切にアクセスしようと試みることもある。実際、拡張ポイントは、単一のメッセージに対して同じ操作を不適切に繰り返そうと試みることがある。場合によっては、拡張ポイントは、何も操作を加えることになっていないメッセージに、あるいは別の拡張ポイントに渡すことになっているメッセージに、アクセスしようと試みることさえある。これらおよびその他のアクセス・エラーによって、メッセージの不必要な配信遅延が生じ、場合によっては、受信者がメッセージをずっと受け取れないようになることさえある。さらに、これらのアクセス・エラーによって、拡張ポイントの操作が完全に、かつ／または正確に行われないようになることがあり、メッセージの内容または電子メールシステム全体まで損なわれることがある。
【０００５】
したがって、当技術分野では、拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法を対象とする。メッセージは、拡張ポイントに送信される前に、拡張ポイントに関連するラッパー・オブジェクトを使用してラップされる。拡張ポイントは、メッセージに対する処理を始める準備ができたとき、ラッパー・オブジェクトの妥当性検査をすることができる。ラッパー・オブジェクトの妥当性確認により、拡張ポイントはメッセージにアクセスすることができるようになる。その後、拡張ポイントは、メッセージに対する操作を完了したとき、ラッパー・オブジェクトを無効化することができる。ラッパー・オブジェクトの無効化によって、拡張ポイントによるメッセージへのアクセスは拒否される。拡張ポイントがメッセージに対する操作を一部分しか実行していない場合は、妥当性確認済みのラップされたメッセージをメッセージ転送エージェントに戻すことができ、次いで、後ほどある時点で、拡張ポイントはそのメッセージに再アクセスすることができる。ラッパー・オブジェクトが無効化された後で拡張ポイントがメッセージにアクセスしようと試みた場合、例外が生成されることがあり、あるいは認可されていないアクセスが何の影響ももたないだけのこともある。
【０００７】
本発明の他の特徴および利点は、添付の図面を参照して行われる下記の例示的実施形態の詳細な説明から明らかになるであろう。
【０００８】
例示的実施形態は、添付の図面を参照しながら下記の詳細な説明を読めば、よりよく理解されるであろう。
【発明を実施するための最良の形態】
【０００９】
本発明の主題は、法定の必要条件を満たすために具体的に説明されている。しかし、この説明自体は、本発明の範囲を限定するものではない。そうではなく、本発明者は、本特許請求の範囲に記載の主題は、現在または将来の他の技術に関連して、他のやり方で、本明細書に記載のものに類似の異なる動作または要素を含むように実施することもできることを企図している。
【００１０】
図１に、本発明による、拡張ポイントによるメッセージへのアクセスを規制するための例示的システムのブロック図を示す。一般に、メッセージ転送エージェント（ＭＴＡ）１００は、送信されてくる電子メール・メッセージを受信し、そのメッセージを指定された受取人に経路指定する処理パイプラインである。着信メッセージは、ローカル・エリア・ネットワーク（ＬＡＮ）やインターネットなどの広域ネットワーク（ＷＡＮ）を介して、ＭＴＡに転送することができる。着信メッセージが受信されると、受信モジュール１０１は、一般に簡易メール転送プロトコル（ＳＭＴＰ）に従って、そのメッセージに対する初期処理を行う。ＳＭＴＰは、サーバ間で電子メール・メッセージを送信するためのプロトコルであり、インターネットを介してメールを送信するほとんどの電子メールシステムは、ＳＭＴＰを使用してサーバからサーバへメッセージを送信する。初期処理が行われた後、メッセージは、他の受信済みメッセージと一緒に受信キュー１０３に置かれる。カテゴライザ１０５は、ＭＴＡの核心であり、着信メッセージに対して必要な分類および経路指定処理を行う。これらの処理が行われた後、メッセージは、送信キュー１０７に置かれ、配信準備ができるまでそこに保留される。メッセージは、配信準備ができると、指定された最終受信者にメッセージを送信する送信モジュール１０９に提出される。この配信も一般にＳＭＴＰプロトコルに従って行われる。メッセージが配信されると、最終受信者は、一般にメール・ユーザ・エージェント（ＭＵＡ）ソフトウェアを介してメッセージにアクセスし、そのソフトウェアにより、メッセージを表示し、読み、印刷することができるようになり、望むなら、返信または転送メッセージを作成することができるようになる。
【００１１】
ＭＴＡ処理パイプライン１００のいたるところで、メッセージを１つまたは複数の拡張ポイント１１１ａ〜ｎに送信することができる。そのような拡張ポイント１１１それぞれによって、メッセージに対する１つまたは複数の外部操作を行うことが可能になる。拡張ポイント１１１ａ〜ｎによって、たとえば、ウィルスに感染していないかメッセージをスキャンし、メッセージの傍受者がいないかどうか決定し、メッセージに受信拒否を付加し、あるいはスパム・メール送信者との通信を停止する、などの操作を行うことができるようになる。拡張ポイント１１１の多くは、カテゴライザ拡張ポイントとみなすことができる。すなわち、その操作の少なくとも一部は、分類および経路指定手順１０５中に行われる。しかし、拡張ポイント１１１は、カテゴライザ拡張ポイントに限定されず、その操作は、ＭＴＡ処理中のどの時点で行うこともできる。たとえば、スパム・メール送信者との通信を停止するなどの操作は、しばしば、メッセージが受信モジュール１０１によって最初に受信されたときに行うことができる。
【００１２】
上記に説明したように、拡張ポイント１１１で行うことができる操作は様々なので、これらの操作を行う複雑さおよび時間も様々となる可能性がある。簡単な例では、拡張ポイントがＭＴＡ１００からメッセージを受け取り、そのメッセージに対して完全にその操作を行い、次いで、そのメッセージをさらに処理すべくＭＴＡ１００に戻す。しかし、複雑な例では、メッセージが最初に受信されたとき、拡張ポイント１１１がその操作を全て実行することは不可能である可能性がある。したがって、転送および配信処理の不必要な遅延を避けるために、拡張ポイントは、その操作を部分的に実行してメッセージをＭＴＡ１００に戻し、次いで、後ほど、ＭＴＡ１００にあるそのメッセージに再アクセスして、その操作を完了することができる。このより複雑なシナリオでは、拡張ポイント１１１は、メッセージをＭＴＡ１００に戻す前に、メッセージにフラグを立てることができる。拡張ポイント１１１は、そのメッセージに再アクセスし、操作を完了した後で初めてフラグを外すことになる。操作が完了するまでメッセージが配信されないことを保証するために、そのメッセージのフラグが外されるまで、ＭＴＡ１００はそのメッセージを配信しない。
【００１３】
フラグを立てられたメッセージがＭＴＡ１００に戻されると、メッセージの処理は、メッセージが拡張ポイント１１１によって再アクセスされるまで継続する。したがって、拡張ポイント１１１は、最初にメッセージにアクセスしたのとは異なるモジュールまたは手順にあるメッセージに再アクセスすることができる。たとえば、拡張ポイントは、最初カテゴライザ１０５にあるメッセージにアクセスし、そのメッセージに対して操作の一部を実行し、次いでそのメッセージをカテゴライザ１０５に戻すことができる。次いで、ＭＴＡ１００は、分類および経路指定手順を再開し、完了し、そのメッセージを送信キュー１０７に提出することができる。拡張ポイント１１１は、その操作を完了する準備ができると、最初にメッセージにアクセスしたカテゴライザ１０５ではなく送信キュー１０７にあるメッセージに再アクセスすることになる。
【００１４】
また上記に説明したように、拡張ポイントがメッセージを戻し、後ほどそのメッセージに再アクセスすることができるようにすることは、改良された処理効率を与えるが、それによっていくつかのメッセージ・アクセス問題も生じる。たとえば、拡張ポイント１１１は、メッセージに対する操作をすでに完了した後で、メッセージに不適切にアクセスしようと試みることがある。場合によっては、拡張ポイント１１１は、何も操作を加えることになっていないメッセージに、あるいは別の拡張ポイントに渡すことになっているメッセージに、不適切にアクセスしようと試みることさえある。これらおよびその他のアクセス問題を減らすために、本発明はラッパー・オブジェクトの使用１１３を採用する。
【００１５】
一般に、ラッパー・オブジェクト１１３は、拡張ポイントによるメッセージへのアクセスを規制する。このようなラッパー・オブジェクトはそれぞれ、個々のメッセージに対して、また個々の拡張ポイント１１１に対して、一意でよい。単一のメッセージを、そのメッセージの送信先の拡張ポイントごとに１つずつ、複数のラッパー・オブジェクトでラップすることができる。また、複数のメッセージが同じ拡張ポイントに送信される場合は、そのようなメッセージをそれぞれ異なるラッパー・オブジェクトにラップすることもできる。ラッパー・オブジェクト１１３は、ラップするメッセージを参照し、そのメッセージへのエントリ・ポイントの定義を収容する。拡張ポイント１１１は、メッセージに対して処理を始める準備ができたとき、ラッパー・オブジェクト１１３の妥当性検査をすることができる。ラッパー・オブジェクトの妥当性確認により、拡張ポイント１１１は、メッセージにアクセスできるようになる。その後、拡張ポイント１１１は、メッセージに対する操作を完了したとき、ラッパー・オブジェクト１１３を無効化することができる。ラッパー・オブジェクトの無効化により、拡張ポイントによるメッセージへのアクセスは拒否される。拡張ポイント１１１は、たとえば、メッセージに対する操作を一部分しか行っていない場合、妥当性が確認されたラッパー・オブジェクト１１３の状態で、そのメッセージをＭＴＡ１００に戻すことができ、次いで、後ほどある時点で、そのメッセージに再アクセスすることができる。
【００１６】
図２に、本発明による、拡張ポイントによるメッセージへのアクセスを規制する例示的方法の流れ図を示す。動作（act）２１０で、メッセージを拡張ポイント１１１に渡す前に、ＭＴＡ１００は、メッセージをラッパー・オブジェクト１１３の状態にラップする。ラッパー・オブジェクトは、妥当性が確認された場合、拡張ポイント１１１にメッセージにアクセスするためのアクセス権を与えるように構成される。ラッパー・オブジェクトは、無効化された場合は、メッセージにアクセスするための拡張ポイント１１１のアクセス権を否定するように構成される。動作（act）２１２で、ＭＴＡ１００は、メッセージに対する操作を実行し始めることができるように、ラップ済みメッセージを拡張ポイント１１１に提出する。動作（act）２１４で、拡張ポイント１１１は、メッセージにアクセスすることができるように、ラッパー・オブジェクトの妥当性を確認する。動作（act）２１６で、拡張ポイント１１１は、メッセージに対する操作を開始する。
【００１７】
簡単な例では、拡張ポイント１１１は、最初にメッセージをＭＴＡ１００に戻すことなく、動作（act）２２２でメッセージに対する操作を完了する。しかし、より複雑な例では、動作（act）２１８で、拡張ポイント１１１は、メッセージに対する操作を完了する前に、妥当性確認済みのラップされたメッセージをＭＴＡ１００に戻すことができる。この戻しにより、ＭＴＡ１００は、メッセージの処理を続行することができるようになり、一方、拡張ポイント１１１は、メッセージに対する操作を効率的に続行することができるまで待つ。望むなら、拡張ポイント１１１は、メッセージに対する操作が完了していないことを示すために、この時点でメッセージにフラグを立てることができる。動作（act）２２０で、拡張ポイント１１１は、操作を続行する準備ができたとき、ＭＴＡ１００にメッセージを戻すように要求する。拡張ポイント１１１は、ＭＴＡ１００の中の、最初に要求したのとは異なるモジュールまたはプロセスにメッセージを要求する必要があることもある。妥当性確認済みのラップされたメッセージは、動作（act）２２２での操作が完了する前に、拡張ポイント１１１とＭＴＡ１００の間を何回も行き来させられることもある。動作（act）２２４で、拡張ポイント１１１は、その操作完了後、ラッパー・オブジェクトを無効化し、もうそのメッセージにはアクセスできなくなる。望むなら、拡張ポイント１１１がメッセージ上に設定しておいたどのフラグも、そのメッセージの配信が不適切に遅れないことを保証するために、ラッパー・オブジェクトの無効化時に外すことができる。動作（act）２２６で、拡張ポイント１１１は、ＭＴＡ１００がその処理を完了することができるように、無効化済みのラップされたメッセージをＭＴＡ１００に戻す。ラッパー・オブジェクトが無効化された後で、拡張ポイント１１１がメッセージにアクセスしようと試みた場合は、ＭＴＡ１００は例外（exception）を生成することができ、あるいは認可されていないアクセスは何の影響ももたないだけのこともある。
【００１８】
したがって、図１および２の例示的システムおよび方法に関連して上記に説明したように、本発明は、拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法を提供する。上記から明らかなように、本発明の様々なシステム、方法、および態様のすべてまたは一部は、ハードウェア、ソフトウェア、またはその両方の組合せで実施することができる。ソフトウェアで実施する場合は、本発明の方法および装置、あるいは本発明のある態様またはその部分を、プログラム・コード（すなわち命令）の形で実施することができる。このプログラム・コードを、それだけに限定されないが、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、フラッシュ・メモリ、ハードディスク・ドライブ、またはその他のマシン読み取り可能記憶媒体を含めて、磁気、電気または光記憶媒体などのコンピュータ読み取り可能媒体上に記憶することができ、このプログラム・コードがコンピュータまたはサーバなどのマシンによってロードされ実行されるとき、そのマシンは、本発明を実施するための装置になる。このプログラム・コードがその上で実行されるコンピュータは、一般に、プロセッサ、そのプロセッサによって読み取り可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくとも１台の入力装置、および、少なくとも１台の出力装置を備えている。このプログラム・コードは、手続き型またはオブジェクト指向の高水準プログラミング言語で実装することができる。あるいは、このプログラム・コードは、アセンブリ言語または機械語で実装することもできる。どの場合でも、その言語は、コンパイル済み言語でもインタープリタ言語でもよい。
【００１９】
本発明はまた、電気配線またはケーブル配線を介して、光ファイバを介して、ローカル・エリア・ネットワーク、広域ネットワーク、インターネットまたはイントラネットを含めたネットワークを介して、あるいはその他任意の伝送形式を介してなど、何らかの伝送媒体を介して転送されるプログラム・コードの形で実施してもよく、このプログラム・コードが、コンピュータなどのマシンによって受け取られ、そのマシンにロードされ、そのマシンによって実行されるとき、そのマシンは、本発明を実施するための装置になる。
【００２０】
このプログラム・コードは、汎用プロセッサ上で実装された場合、そのプロセッサと相俟って、個々の論理回路と類似の動作をするユニークな装置を形成することができる。
【００２１】
さらに、本発明は、コンピュータ・ネットワークの一部として展開できる任意のコンピュータ、あるいはその他のクライアントまたはサーバ装置に関連して、あるいは分散コンピューティング環境で、実装することができる。これに関して、本発明は、本発明に関連して使用することができる任意の数のメモリ・ユニットまたはストレージ・ユニット、および任意の数のストレージ・ユニットまたはストレージ・ボリューム全体にわたって存在する任意の数のアプリケーションおよびプロセスを有する任意のコンピュータ・システムまたは環境に、関連する。本発明は、リモート・ストレージまたはローカル・ストレージを有するネットワーク環境または分散コンピューティング環境で展開されるサーバ・コンピュータおよびクライアント・コンピュータを備えた環境に適用することができる。本発明はまた、リモート・サービスまたはローカル・サービスに関連して情報の生成および送受信をするためのプログラミング言語機能、解釈および実行機能を有するスタンドアロン・コンピューティング装置に適用することもできる。
【００２２】
分散コンピューティングは、コンピューティング装置およびシステムの間でのやりとりにより、コンピュータ資源およびサービスの共用を容易にする。これらの資源およびサービスには、それだけに限定されないが、情報交換、キャッシュ・ストレージ、ファイル用ディスク・ストレージなどが含まれる。分散コンピューティングは、ネットワーク接続性を利用し、クライアントがそれら全体の力を活用して事業体全体に利益をもたらすことができるようにする。これに関して、様々な装置は、本発明に関連して行われる処理が関与する可能性があるアプリケーション、オブジェクトまたは資源を有することができる。
【００２３】
図３は、例示的なネットワーク接続環境または分散コンピューティング環境の概略図である。分散コンピューティング環境は、コンピューティング・オブジェクト１０ａ、１０ｂなど、およびコンピューティング・オブジェクトまたは装置１１０ａ、１１０ｂ、１１０ｃなどを備えている。これらのオブジェクトは、プログラム、メソッド、データ・ストア、プログラマブル・ロジックなどを備えることができる。これらのオブジェクトは、ＰＤＡ、テレビ、ＭＰ３プレーヤ、パーソナル・コンピュータなど、同じまたは異なる装置の一部を備えることができる。各オブジェクトは、通信ネットワーク１４を介して、別のオブジェクトと通信することができる。このネットワークは、それ自体、図３のシステムにサービスを提供する他のコンピューティング・オブジェクトおよびコンピューティング装置を備えることができ、それ自体、複数の相互接続ネットワークを表すこともできる。本発明の一態様によれば、各オブジェクト１０ａ、１０ｂなどまたは１１０ａ、１１０ｂ、１１０ｃなどには、本発明を実装するために使用されるプロセスの使用を要求するための、ＡＰＩを利用することもあるアプリケーション、あるいはその他のオブジェクトすなわちソフトウェア、ファームウェアおよび／またはハードウェア、を含むことができる。
【００２４】
また、１１０ｃなどのオブジェクトは、別のコンピューティング装置１０ａ、１０ｂなどまたは１１０ａ、１１０ｂなどでホストされる可能性があることも理解できる。したがって、図示した物理的環境は、その接続された装置をコンピュータとして示すこともできるが、このような図は単なる例であって、別法として、この物理環境は、ＰＤＡ、テレビ、ＭＰ３プレーヤなど様々なデジタル装置、インターフェースなどのソフトウェア・オブジェクト、ＣＯＭオブジェクトなどを備えるものとして図示あるいは説明することもできる。
【００２５】
分散コンピューティング環境をサポートするシステム、構成要素、ネットワーク構成には様々なものがある。たとえば、コンピューティング・システムは、有線または無線のシステムにより、あるいはローカル・ネットワークまたは広域に分散されたネットワークによって相互に接続されたものでもよい。現在、ネットワークの多くは、広域に分散されたコンピューティングのためのインフラストラクチャを提供し、かつそれぞれ異なる多数のネットワークを含むインターネットに結合されている。どのインフラストラクチャも、本発明に関連する例示的通信のために使用することができる。
【００２６】
インターネットは、一般に、コンピュータ・ネットワーキングの技術分野ではよく知られているＴＣＰ／ＩＰプロトコル群を利用するネットワークおよびゲートウェイの集まりを指す。ＴＣＰ／ＩＰは、「転送制御プロトコル／インターネット・プロトコル（Transmission Control Protocol/Internet Protocol）」の頭辞語である。インターネットは、ユーザが１つ（または複数）のネットワークを介して対話し情報を共用することができるようにするネットワーキング・プロトコルを実行するコンピュータによって相互接続され、地理的に分散された、リモート・コンピュータ・ネットワークのシステムとして表すことができる。このように広域にわたって情報を共用するので、インターネットなどのリモート・ネットワークは、専用の操作またはサービスを行うためのソフトウェア・アプリケーションを開発者がそれを対象として本質上無制限に設計することができる、オープン・システムへと今日まで一般に進化してきた。
【００２７】
したがって、そのネットワーク・インフラストラクチャは、クライアント／サーバ、ピア・ツー・ピア、またはハイブリッド・アーキテクチャなど多数のネットワーク・トポロジのホストを可能にする。「クライアント」は、あるクラスまたはグループのメンバーであり、それが属していない別のクラスまたはグループのサービスを使用する。したがって、コンピューティングにおいては、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち、おおざっぱに言って１組の命令またはタスクである。クライアント・プロセスは、要求したサービスを利用するが、他のプログラムまたはサービスそのものに関する作業の詳細は何も「知る」必要がない。クライアント／サーバ・アーキテクチャ、とりわけネットワーク接続されたシステムにおいては、クライアントは、通常、別のコンピュータ、たとえばサーバによって提供される共用のネットワーク資源にアクセスするコンピュータである。図３の例では、１１０ａ、１１０ｂなどのコンピュータはクライアントとみなすことができ、１０ａ、１０ｂなどのコンピュータはサーバとみなすことができる。ただし、どのコンピュータも、状況に応じて、クライアント、サーバ、あるいはその両方とみなすことができる。これらのコンピューティング装置はどれも、本発明が関与する形でデータを処理することができる。
【００２８】
サーバは、一般に、インターネットなどのリモート・ネットワークまたはローカル・ネットワークを介してアクセス可能なリモート・コンピュータ・システムである。一方のコンピュータ・システムでクライアント・プロセスをアクティブにし、他方のコンピュータ・システムでサーバ・プロセスをアクティブにすることができ、通信媒体を介して互いに通信し合い、それによって、分散された機能を提供し、複数のクライアントがサーバの情報収集機能を利用できるようにすることができる。本発明に従って利用されるどんなソフトウェア・オブジェクトも、複数のコンピューティング装置すべてにわたって分散することができる。
【００２９】
１台（または複数）のクライアントおよび１台（または複数）のサーバは、プロトコル層によって提供される機能を利用して、互いに通信し合うことができる。たとえば、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）は、ワールド・ワイド・ウェブ（ＷＷＷ）、すなわち「Ｗｅｂ」に関連して使用される一般的なプロトコルである。一般に、インターネット・プロトコル（ＩＰ）アドレスなどのコンピュータ・ネットワーク・アドレス、またはユニバーサル・リソース・ロケータ（ＵＲＬ）などその他のリファレンスを、サーバ・コンピュータまたはクライアント・コンピュータを互いに識別するために使用することができる。ネットワーク・アドレスをＵＲＬアドレスと呼ぶこともできる。通信は、利用可能な任意の通信媒体を介して、提供することができる。
【００３０】
したがって、図３は、ネットワーク／バスを介してクライアント・コンピュータと通信中のサーバを備え、本発明を使用することができる例示的なネットワーク接続環境または分散環境を示す。ネットワーク／バス１４は、本発明による、ポータブル・コンピュータ、ハンドヘルド・コンピュータ、シン・クライアント、ネットワーク接続された機器（appliance）などのいくつかのクライアントまたはリモート・コンピューティング装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなど、または、ＶＣＲ、ＴＶ、オーブン、ライト、ヒータなどのようなその他の装置を備えた、ＬＡＮ、ＷＡＮ、イントラネット、インターネット、またはその他何らかのネットワーク媒体とすることができる。したがって、本発明は、拡張ポイントによるメッセージへのアクセスをそれに関連して規制することが望ましい任意のコンピューティング装置に適用できることように考えられている。
【００３１】
通信ネットワーク／バス１４がインターネットであるネットワーク環境においては、たとえば、サーバ１０ａ、１０ｂなどは、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどがＨＴＴＰなどいくつかのよく知られているプロトコルのどれかを介して通信するサーバとすることができる。サーバ１０ａ、１０ｂなどは、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどとして働くこともできるが、これは分散コンピューティング環境の特徴とも言える。
【００３２】
通信は、適切であれば、有線でも無線でもよい。クライアント装置１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどは、通信ネットワーク／バス１４を介して通信し合うことができてもできなくてもよく、独立の通信を伴うものでもよい。たとえば、ＴＶまたはＶＣＲの場合、その制御にはネットワーク接続された面があってもなくてもよい。クライアント・コンピュータ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなど、およびサーバ・コンピュータ１０ａ、１０ｂなどはそれぞれ、様々なアプリケーションプログラム・モジュールまたはオブジェクト１３５を装備することができ、ファイルまたはデータ・ストリームをそれら全体にわたって記憶することができる、あるいはファイルまたはデータ・ストリームの一部をそれらにダウンロード、送信、または移行することができる様々なタイプの記憶素子またはオブジェクトへの接続またはアクセスを有することができる。どのコンピュータ１０ａ、１０ｂ、１１０ａ、１１０ｂなども、本発明に従って処理されたデータを格納するためのデータベース、メモリ、またはその他の記憶素子２０の保守および更新を行うことができる。したがって、本発明は、コンピュータ・ネットワーク／バス１４にアクセスしそれと対話することができるクライアント・コンピュータ１１０ａ、１１０ｂなどと、クライアント・コンピュータ１１０ａ、１１０ｂなどおよび他の類似の装置ならびにデータベース２０と対話することができるサーバ・コンピュータ１０ａ、１０ｂなどとを有するコンピュータ・ネットワーク環境で利用することができる。
【００３３】
図４および以下の議論は、それに関連して本発明を実装することができる適切なコンピューティング装置の簡単な全般的説明を行うものである。たとえば、図３に示したクライアントおよびサーバ・コンピュータまたは装置のどれでもこの形を取ることができる。しかし、ハンドヘルド、ポータブル、およびその他あらゆる種類のコンピューティング装置ならびにコンピューティング・オブジェクトについては、本発明に関連して、すなわち、コンピューティング環境においてそこでデータの生成、処理、受信および／または送信をすることができるところならどこででも、使用することができると考えられていることを理解されたい。下記に汎用コンピュータについて説明するが、これは単なる一例に過ぎず、本発明は、ネットワーク／バスとの相互運用性を有しそれと対話することができるシン・クライアントを用いて実装することもできる。したがって、本発明は、非常にわずかなあるいは最少のクライアント資源しか関与しない、ネットワーク接続されホストされたサービスの環境、たとえば、クライアント装置が、ある機器内に配置されたオブジェクトなどネットワーク／バスへのインターフェースとしてしか働かない、ネットワーク接続環境に、実装することができる。本質的に、データを格納することができる、あるいはデータをそこから取り出すまたは別のコンピュータに送信することができるところならどこでも、本発明のオブジェクト永続性方法（persistence methods）が動作するのに望ましい、あるいは適切な、環境である。
【００３４】
必ずしもそうする必要はないが、本発明は、装置またはオブジェクトのサービス開発者が使用できるように、オペレーティング・システムを介して実装することができ、かつ／あるいは本発明に従って動作するアプリケーションまたはサーバ・ソフトウェアの中に含めることができる。ソフトウェアは、クライアント・ワーク・ステーション、サーバ、またはその他の装置など１台または複数のコンピュータによって実行されるプログラム・モジュールなど、コンピュータが実行可能な命令の一般的なコンテクストで説明することができる。通常、プログラム・モジュールには、特定のタスクを行う、あるいは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれている。一般に、プログラム・モジュールの機能は、様々な実施形態で望み通りに組み合わせる、または分散することができる。さらに、本発明は、その他のコンピュータ・システム構成およびプロトコルを用いて実施することもできる。本発明に使用するのに適切となり得る、よく知られている他のコンピューティング・システム、環境、および／または構成には、それだけに限定されないが、パーソナル・コンピュータ（ＰＣ）、現金自動預け払い機（ＡＴＭ）、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチプ・ロセッサ・システム、マイクロ・プロセッサ・ベース・システム、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、機器、ライト、環境制御要素、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれる。
【００３５】
したがって、図４は、本発明を実装することができる適切なコンピューティング・システム環境４００の一例を示す。ただし、上記で明らかにしたように、コンピューティング・システム環境４００は、適切なコンピューティング環境の単なる一例に過ぎず、本発明の用途または機能の範囲に関するどんな限定も示唆するものではない。また、コンピューティング環境４００には、例示的動作環境４００に示された構成要素のどの１つまたはどんな組合せに関する依存関係も必要条件もないと解釈されたい。
【００３６】
図４を参照すると、本発明を実装するための例示的システムは、汎用コンピューティング装置をコンピュータ１１０の形で備えている。コンピュータ１１０の構成要素には、それだけに限定されないが、処理ユニット１２０、システム・メモリ１３０、および、システム・メモリを含めて様々なシステム構成要素を処理ユニット１２０に結合するシステム・バス１２１などが含まれ得る。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および、様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含めて、いくつかのタイプのバス構造のどれでもよい。限定ではなく例として挙げると、そのようなアーキテクチャとしては、工業標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子標準協会（ＶＥＳＡ）ローカル・バス、および（メザニン・バスとしても知られる）周辺構成要素相互接続（ＰＣＩ）バスなどがある。
【００３７】
コンピュータ１１０は、一般に、様々なコンピュータ読み取り可能媒体を備えている。コンピュータ読み取り可能媒体は、コンピュータ１１０がアクセスできる利用可能などんな媒体でもよく、それには揮発性および不揮発性両方の媒体、取り外し可能および取り外し不能媒体がある。限定としてではなく例として挙げると、コンピュータ読み取り可能媒体には、コンピュータ記憶媒体および通信媒体などがある。コンピュータ記憶媒体には、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータなどの情報を格納するためのどんな方法または技術ででも実装される揮発性および不揮発性両方の媒体、取り外し可能および取り外し不能媒体が含まれる。コンピュータ記憶媒体には、それだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたはその他のメモリ技術、ＣＤＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶装置、またはその他、所望の情報を格納できかつコンピュータ１１０がアクセスできるどんな媒体でも含まれる。通信媒体は、一般に、搬送波またはその他の移送機構などモジュール化されたデータ信号中に、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、あるいは、その他のデータを具現化し、どんな情報送達媒体もそれに含まれる。「モジュール化されたデータ信号」という用語は、信号中の情報をエンコードするような形でその信号の特徴の１つまたはいくつかが設定または変更された信号を意味する。限定ではなく例として挙げると、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに、音波、ＲＦ、赤外線およびその他の無線媒体などの無線媒体などがある。また、上記のどれの組合せもコンピュータ読み取り可能媒体の範囲内に含まれるものとする。
【００３８】
システム・メモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１やランダム・アクセス・メモリ（ＲＡＭ）１３２など揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を備えている。コンピュータ１１０内の要素間で起動中などに情報を転送するのに役立つ基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は、一般にＲＯＭ１３１に格納されている。通常、ＲＡＭ１３２は、処理ユニット１２０が直接アクセスすることができ、かつ／あるいは現在操作しているデータおよび／またはプログラム・モジュールを含んでいる。図４は、限定ではなく例として、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６、およびプログラム・データ１３７を示す。
【００３９】
また、コンピュータ１１０は、その他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体をも含むことができる。図４は、例としてのみ、取り外し不能不揮発性磁気媒体からの読出しまたはそれへの書き込みを行うハードディスク・ドライブ１４１、取り外し可能不揮発性磁気ディスク１５２からの読出しまたはそれへの書き込みを行う磁気ディスク・ドライブ１５１、およびＣＤ−ＲＷ、ＤＶＤ−ＲＷまたはその他の光媒体など取り外し可能不揮発性光ディスク１５６からの読出しまたはそれへの書き込みを行う光ディスク・ドライブ１５５を示す。この例示的オペレーティング環境で使用できるその他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体としては、それだけに限定されないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスク・ドライブ１４１は一般にインターフェース１４０などの取り外し不能メモリ・インターフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は一般にインターフェース１５０などの取り外し可能メモリ・インターフェースによってシステム・バス１２１に接続される。
【００４０】
上記で論じ、図４に示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ１１０のために、コンピュータ読み取り可能命令、データ構造、プログラム・モジュールおよびその他のデータの記憶を提供する。たとえば、図４では、ハードディスク１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納しているものとして示されている。これらの構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６およびプログラム・データ１３７と同じでも異なっていてもよいことに留意されたい。ここでは、オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６およびプログラム・データ１４７に、少なくともそれらが異なる版であることを示すために、それぞれ異なる番号をつけてある。ユーザは、キーボード１６２、およびマウス、トラック・ボール、タッチ・パッドなどのポインティング装置１６１のような入力装置を介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星アンテナ、スキャナなどが含まれ得る。これらおよびその他の入力装置は、しばしば、システム・バス１２１に結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレル・ポート、ゲーム・ポート、ユニバーサル・シリアル・バス（ＵＳＢ）などその他のインターフェースおよびバス構造によって接続されてもよい。また、グラフィック・インターフェース１８２もシステム・バス１２１に接続されてもよい。１つまたは複数のグラフィック処理ユニット（ＧＰＵ）１８４は、グラフィック・インターフェース１８２と通信することができる。また、モニタ１９１またはその他のタイプの表示装置も、ビデオ・メモリ１８６と通信することができるビデオ・インターフェース１９０などのインターフェースを介して、システム・バス１２１に接続される。モニタ１９１の他に、コンピュータは、出力周辺インターフェース１９５を介して接続することができるスピーカ１９７やプリンタ１９６などその他の周辺出力装置を含むこともできる。
【００４１】
コンピュータ１１０は、リモート・コンピュータ１８０など１台または複数のリモート・コンピュータへの論理接続を使用して、ネットワーク接続環境または分散環境で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置またはその他普通のネットワーク・ノードでよく、一般に、コンピュータ１１０に関して上記で説明した要素の多くまたはすべてを含む。ただし、図４にはメモリ記憶装置１８１しか示されていない。図４に示された論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワーク／バスを含むこともできる。このようなネットワーキング環境は、家庭、オフィス、事業体全体のコンピュータ・ネットワーク、イントラネットおよびインターネットでは普通のものである。
【００４２】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合は、コンピュータ１１０は、一般に、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は、内部モデムでも外部モデムでもよく、ユーザ入力インターフェース１６０またはその他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク接続環境では、コンピュータ１１０に関して示されたプログラム・モジュールまたはその一部は、リモートメモリ記憶装置に格納されていてもよい。限定ではなく例として、図４は、記憶装置１８１上に常駐するリモート・アプリケーション・プログラム１８５を示す。図示された接続は例示的なものであり、コンピュータ間の通信リンクを確立するその他の手段を使用してもよいことが理解されよう。
【００４３】
結論
したがって、以上、拡張ポイントによるメッセージへのアクセスを規制するためのシステムおよび方法を開示してきた。本発明を、様々な図の好ましい実施形態に関連して説明してきたが、他の類似の実施形態を使用することもでき、あるいは本発明の同じ機能を実施するために、本発明から逸脱することなく、説明された実施形態に対して変更および追加を行うことができると理解されたい。したがって、本発明は、どんな単一の実施形態にも限定されるべきでなく、特許請求の範囲に記載の広さ（breadth）および範囲で解釈されるべきである。
【図面の簡単な説明】
【００４４】
【図１】本発明による、拡張ポイントによるメッセージへのアクセスを規制するための例示的システムのブロック図である。
【図２】本発明による、拡張ポイントによるメッセージへのアクセスを規制する例示的方法の流れ図である。
【図３】本発明を実装できる様々なコンピューティング装置を有する例示的ネットワーク環境を示すブロック図である。
【図４】本発明を実装できる例示的コンピューティング装置を示すブロック図である。
【符号の説明】
【００４５】
１００    メッセージ転送エージェント
１０１    受信モジュール
１０３    受信キュー
１０５    カテゴライザ
１０７    送信キュー
１０９    送信モジュール
１１１ａ    拡張ポイント
１１１ｎ    拡張ポイント
１１３ａ    ラッピング・オブジェクト
１１３ｎ    ラッピング・オブジェクト
１０    サーバ・オブジェクト
１４    通信ネットワーク／バス
２０    データベース
１１０ａ、１１０ｂ、１１０ｅ    コンピューティング装置
１１０ｃ、１１０ｄ    オブジェクト
１２０    処理ユニット
１２１    システム・バス
１３１    システム・メモリ（ＲＯＭ）
１３４    オペレーティング・システム
１３５    アプリケーション・プログラム
１３６    その他のプログラム・モジュール
１３７    プログラム・データ
１４０    取り外し不能不揮発性メモリ・インターフェース
１４１    ハードディスク・ドライブ
１４４    オペレーティング・システム
１４５    アプリケーション・プログラム
１４６    その他のプログラム・モジュール
１４７    プログラム・データ
１５０    取り外し可能不揮発性メモリ・インターフェース
１５１    磁気ディスク・ドライブ
１５２    取り外し可能不揮発性磁気ディスク
１５５    光ディスク・ドライブ
１５６    取り外し可能不揮発性光ディスク
１６０    ユーザ入力インターフェース
１６１    ポインティング装置
１６２    キーボード
１７０    ネットワーク・インターフェース
１７１    ローカル・エリア・ネットワーク
１７２    モデム
１７３    広域ネットワーク
１８０    リモート・コンピュータ
１８１    メモリ記憶装置
１８２    グラフィック・インターフェース
１８５    リモート・アプリケーション・プログラム
１８６    ビデオ・メモリ
１９０    ビデオ・インターフェース
１９１    モニタ
１９５    出力周辺インターフェース
１９６    プリンタ
１９７    スピーカ
４００    コンピューティング環境
【図１】
2006244477.tif 000003
【図２】
2006244477.tif 000004
【図３】
2006244477.tif 000005
【図４】
2006244477.tif 000006