JP2002543527A - データの型の間のマッピングを生成するための方法およびシステム - Google Patents
データの型の間のマッピングを生成するための方法およびシステムInfo
- Publication number
- JP2002543527A JP2002543527A JP2000615923A JP2000615923A JP2002543527A JP 2002543527 A JP2002543527 A JP 2002543527A JP 2000615923 A JP2000615923 A JP 2000615923A JP 2000615923 A JP2000615923 A JP 2000615923A JP 2002543527 A JP2002543527 A JP 2002543527A
- Authority
- JP
- Japan
- Prior art keywords
- data
- routine
- type
- media
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
ステムに関する。
ォーマットで生成している。インターネットは、相互接続されたコンピュータシ
ステムの一例であり、データを多数の異なるフォーマットで生成するものである
。実際に、データがあるコンピュータシステム上で生成され、別のコンピュータ
システムに表示するために伝送されるとき、データを、最終的に表示する前に、
多数の異なる中間フォーマットに変換することができる。たとえば、生成側のコ
ンピュータシステムは、最初にデータをピットマップフォーマットで格納するこ
とができる。このデータを別のコンピュータシステムに送信するため、このコン
ピュータシステムは、最初にビットマップデータを圧縮し、次いで、圧縮された
データを暗号化することができる。次いで、コンピュータシステムが、この圧縮
されたデータをTCPフォーマットに変換し、次いでIPフォーマットに変換す
ることができる。IPフォーマットにされたデータを、イーサネット(登録商標
)フォーマットなど、伝送フォーマットに変換することができる。次いで、伝送
フォーマットのデータが、受信側のコンピュータシステムに送信される。受信側
のコンピュータシステムは、これらの各変換を逆の順序で実行して、データをビ
ットマップフォーマットに変換する必要がある。加えて、受信側のコンピュータ
システムは、ビットマップデータを、出力デバイス上でレンダリングするために
適切であるフォーマットに変換する必要があるかもしれない。
側および受信側のコンピュータシステムが、様々なフォーマットをサポートする
ために使用可能な多数の変換ルーチンを有する必要がある。これらのコンピュー
タシステムは、典型的には、事前定義された構成情報を使用して、データ処理の
ために正しい組み合わせの変換ルーチンをロードする。これらのコンピュータシ
ステムは、これらの変換ルーチンによりデータを処理するとき、プロセス指向の
手法も使用する。プロセス指向の手法を使用するとき、コンピュータシステムは
、各変換について、実行する必要のある個々の処理を生成することができる。し
かし、コンピュータシステムは、ある状況において、データを受信し、データが
受信されるまで知ることができない多数の異なるフォーマットでデータを提供す
ることを、求められる可能性がある。可能な各一連の変換ルーチンをスタティッ
クに提供する際のオーバーヘッドは、非常に高い。たとえば、家庭内で受信され
たデータ用の中央コントローラとして機能するコンピュータシステムは、電話回
線、ケーブルTV回線、および衛星接続を介して、多数の異なるフォーマットで
受信されたデータを処理することを求められるであろう。中央コントローラは、
データを、コンピュータのディスプレイ、テレビのディスプレイ、エンタテイメ
ントセンタ、スピーカ、記録デバイスなどへ、多数の異なるフォーマットで出力
することを求められるであろう。さらに、様々な変換ルーチンが、異なる組織に
よって開発される可能性があるので、ある変換ルーチンの出力フォーマットが、
別の変換ルーチンの入力フォーマットと互換性を有することを識別することが、
容易でない可能性がある。
有することが望ましいであろう。加えて、ある変換ルーチンの出力フォーマット
が、別の変換ルーチンの入力フォーマットと互換性を有するものとして識別する
ことができる技術を、有することが望ましいであろう。
およびシステムを提供する。システムは、ある型のデータを別の型のデータに変
換するための様々なルーチンを有する。一実施形態では、システムは、ソース型
の指示(indication)を受信し、データをソース型からターゲット型に変換する
ことができる様々なルーチンのシーケンスを識別する。次いで、システムは、こ
れらのシーケンスにおける各ルーチンによるデータの処理を、ターゲット型への
データの変換に調整する。ルーチンを識別する処理は、「ディスカバリ(discov
ery)」と呼ばれる。システムは、エイリアシング機構も提供し、これにより、
互換性のある型を識別することができる。ルーチンのシーケンスを識別するとき
、システムは、互換性のある型をサポートするルーチンをチェックすることがで
きる。ルーチンのシーケンスが識別されたとき、システムはシーケンスの識別を
キャッシュして、ソース型のデータがターゲット型に変換されるときにこのシー
ケンスの識別を容易にする。システムは、ルーチンのシーケンスを他のコンピュ
ータシステムから発見するための機構も使用する。これらの他のコンピュータシ
ステムは、様々なルーチンのシーケンスをブロードキャストすることができ、こ
れらが受信側のコンピュータシステムで格納される。ユーザは、スイッチボード
機構を使用して、あるソース型のデータを、ブロードキャストされたシーケンス
の1つに向けて送ることができる。この、データをあるソースに向けて送ること
により、あるコンピュータシステムから、別のコンピュータシステム上のデバイ
スまたはルーチンへの、データのルーティングを実施する。
の方法およびシステムを提供する。一実施形態におけるシステムは、(1)ソー
スフォーマットのデータをターゲットフォーマットに変換するための、ルーチン
のシーケンスを動的に識別するための変換システム、および、(2)ソースフォ
ーマットのデータをターゲットフォーマットに変換するため、かつ、データをル
ーティングするための、変換ルーチンのシーケンスを指定するためのスイッチボ
ードコンポーネントを提供する。システムは、データを、ルーチンのシーケンス
を介してルーティングして、ターゲットフォーマットへのデータの変換を実施し
、あるいは、ターゲット(たとえば、表示デバイスまたはディスク)へのデータ
のルーティングを実施する。スイッチボードコンポーネントにより、ユーザは、
変換システムのキャッシング機構を使用して、あるソースフォーマットのデータ
をターゲットに向けて送ることができる。ユーザがこのソースフォーマットのデ
ータをターゲットにルーティングするように指示したとき、システムは、ルーテ
ィングを実施するために呼び出されるルーチンのシーケンスの指示を、キャッシ
ュに格納する。変換システムがデータをこのフォーマットで処理したとき、これ
は、ルーチンのシーケンスの指示をキャッシュから検索し、次いで、各ルーチン
を呼び出して、データのルーティングを実施する。独立して開発された変換ルー
チンの使用を容易にするため、変換システムは、データフォーマットを命名する
ためのエイリアシングスキームを使用する。変換システムにより、複数のデータ
フォーマットを、互いに互換性があるものとして指定することができる。このよ
うにして、たとえ異なる命名規則が、変換ルーチンの異なる開発者によって使用
される可能性があるとしても、変換システムは、どのデータフォーマットに互換
性があるかを知るようになる。
ットフォーマットに変換するために使用することができる一連の変換ルーチンを
識別する。変換システムは、ソースフォーマットのデータが受信されたとき、変
換ルーチンを動的に識別する。ソースフォーマットのデータを受信するドライバ
(たとえば、イーサネット(登録商標)ドライバ)は、第1の変換ルーチンを識
別し、次いで、この第1の変換ルーチンを呼び出して、ソースフォーマットのデ
ータを渡す。変換ルーチンは、データを出力フォーマットに変換し、変換システ
ムの転送コンポーネントに通知する。転送コンポーネントは、以前の知識を有し
ていることによって、あるいは、変換ルーチンからの通知を受信することによっ
て、ターゲットフォーマットを知ることができ、あるいは、別法として、転送コ
ンポーネントはターゲットフォーマットを知ることができない。転送コンポーネ
ントがターゲットフォーマットを知った場合、これは、1つまたは複数の変換ル
ーチンのシーケンスを識別することができ、これがデータを出力フォーマットで
入力し、データをターゲットフォーマットで出力する。変換システムは、データ
をターゲットフォーマットに変換する変換ルーチンの複数のシーケンスを識別す
ることができる。転送システムがターゲットフォーマットを知らなかった場合、
これは、増分的にシーケンス中の変換ルーチンを識別する。識別された各変換ル
ーチンは、呼び出されたとき、転送コンポーネントにターゲットフォーマットを
通知することができる。転送コンポーネントは、データを出力フォーマットから
別のフォーマットに変換するための、多数の変換ルーチンを識別することができ
る。転送コンポーネントがシーケンスにおける次の変換ルーチンのみを識別する
か、あるいはシーケンスにおける変換ルーチンのすべてまたはいくつかを識別す
るかに関わらず、転送コンポーネントはシーケンスにおける次の変換ルーチンを
呼び出し、変換されたデータを渡す。各変換ルーチンはデータを出力フォーマッ
トから別のフォーマットに変換し、次いで、転送コンポーネントに通知する。変
換ルーチンを識別し、転送コンポーネントに通知するこの処理は、データがター
ゲットフォーマットになるか、あるいは、データを処理するために使用可能な変
換ルーチンがなくなるまで、継続する。
ォーマットのデータが、ドライバ101によって受信される。ドライバは、デー
タを中間フォーマットに変換するか、あるいは、他の処理をデータ上で実行した
後、変換ルーチン102を呼び出すことができる。変換ルーチン102は、デー
タを別の中間フォーマットに変換し、このデータを転送コンポーネント103に
提供する。転送コンポーネントは、変換ルーチン識別コンポーネント104を呼
び出して、中間フォーマットのデータを処理するための変換ルーチンを識別する
。変換ルーチン識別コンポーネントは、多数の変換ルーチンを識別することがで
き、これは、中間フォーマットのデータを入力し、ターゲットフォーマットが分
かっている場合、1つまたは複数の変換ルーチンのシーケンスを識別することが
できる。次いで、転送コンポーネントは、識別された変換ルーチン105を呼び
出し、これが中間フォーマットのデータを入力する。この図では例示しないが、
変換ルーチンの呼び出しの図式はツリーのような構造であり、これは、転送コン
ポーネントが多数の変換ルーチンを呼び出して、ある中間フォーマットを処理す
ることができるからである。この処理は、最終的に変換ルーチン111がデータ
をターゲットフォーマットで出力するまで、繰り返される。
めの「エッジ(edge)」のシーケンスを識別する。各エッジは、データをあるフ
ォーマットから別のものに変換するための変換ルーチンに対応する。各エッジは
「プロトコル」の一部であり、これは、多数の関係付けられたエッジを含むこと
ができる。たとえば、プロトコルは、あるフォーマットのデータをいくつかの異
なるフォーマットにそれぞれ変換するエッジを有することができる。各エッジは
、入力フォーマットおよび出力フォーマットを有する。「パス」は、エッジのシ
ーケンスであり、各エッジの出力フォーマットが、シーケンスにおける別のエッ
ジの入力フォーマットと互換性を有し、ただし、シーケンスにおける最初のエッ
ジの入力フォーマットおよびシーケンスにおける最後のエッジの出力フォーマッ
トを除く。図2は、パスを例示するブロック図である。プロトコルP1は、フォ
ーマットD1をフォーマットD2に変換するためのエッジ、および、フォーマッ
トD1をフォーマットD3に変換するためのエッジを含み、プロトコルP2は、
フォーマットD2をフォーマットD5に変換するためのエッジを含む、などであ
る。フォーマットD1をフォーマットD15に変換するためのパスを、曲線によ
って示し、アドレス「P1:1,P2:1,P3:2,P4:7」によって定義
する。フォーマットD1のデータのパケットがこのパスによって処理され、これ
がフォーマットD15に変換される。この処理中に、データのパケットが順次フ
ォーマットD2、D5およびD13に変換される。プロトコルP2の出力フォー
マット、エッジ1(すなわち、P2:1)はフォーマットD5であるが、P3:
2の入力フォーマットはフォーマットD10である。変換システムはエイリアシ
ング機構を使用し、これにより、D5およびD10など、2つのフォーマットが
、互換性を有するものとして識別される。エイリアシングの使用により、同じフ
ォーマットまたは互換性のあるフォーマットの異なる名前を相関させることがで
きる。以下で、「フォーマット」という用語を、「データ型」または「メディア
(media)型」とも呼ぶ。
れは、あるメディア型のデータを別のメディア型に変換するためのパスを、動的
に識別する。メディアマッピングシステムは、エイリアシングスキームを使用し
、これにより、異なるプロトコルが、異なる名前を使用して、同じあるいは互換
性のあるメディア型をリファレンスすることができる。たとえば、インターネッ
トプロトコル(「IP」)のデータを処理するためのプロトコルが、メディア型
「IP0x04」のデータを出力することができ、伝送制御プロトコル(「TC
P」)のデータを処理するためのプロトコルが、メディア型「TCP」のデータ
を入力することができる。メディアマッピングシステムの管理者は、「IP0x
04」のメディア型が「TCP」メディア型と互換性を有することを指定するこ
とができる。したがって、「TCP」メディア型を入力するエッジを有するプロ
トコルは、「IP0x04」メディア型のデータを処理することができる。メデ
ィアマッピングシステムはソースメディア型およびターゲットメディア型を受信
したとき、これは、ソースメディア型をターゲットメディア型に変換するための
パスを識別しようと試みる。
互換性のあるエッジを有するプロトコルを探索することによって、パスを識別す
る。次いで、メディアマッピングシステムは、その入力メディア型が、最後に見
つかったプロトコルの出力メディア型と互換性のある、エッジを有するプロトコ
ルを探索する。この処理は、ターゲットメディア型を出力するエッジを有するプ
ロトコルが見つかるまで、繰り返される。このプロトコルのエッジのシーケンス
が、パスを形成する。メディアマッピングシステムは、パスのアドレスをキャッ
シュして、次回にデータがソースメディア型からそのターゲットメディア型に変
換されるとき、プロトコルを探索することなく、このパスをキャッシュにおける
情報から高速に識別することができるようにする。メディアマッピングシステム
は、キャッシュされたパスのアドレスを使用して、事前に構成されるパス、ある
いは、スイッチボードコンポーネントを使用するユーザによって指定されるパス
に基づいて、データを変換かつルーティングすることもできる。
である。変換システムは、コンピュータシステム上で動作することができ、これ
は、中央処理装置301、I/Oデバイス302およびメモリ303を有する。
メディアマッピングシステムは、変換ルーチンを識別するメディアマップ取得コ
ンポーネント304、プロトコル305と呼ばれる変換ルーチン、転送コンポー
ネント306、メディアクラスデータ307、メディアデータ308、スイッチ
ボードコンポーネント309、およびターゲット登録コンポーネント310を含
む。メディアクラスデータおよびメディアデータについて、以下に説明する。ス
イッチボードコンポーネントが使用されて、あるメディア型のデータがあるター
ゲットデバイスにルーティングされる。ターゲット登録コンポーネントが使用さ
れて、データについて可能なターゲットデバイスが登録される。ルーチンを探索
することによって、パスを別のコンピュータから受信することによって、あるい
は別の手段によって、パスを識別する処理を、「パスの発見」と呼ぶ。メディア
マッピングシステムを、命令として、ディスクドライブまたはメモリなどのコン
ピュータ可読媒体上に格納することができる。メディアマッピングシステムのデ
ータ構造も、コンピュータ可読媒体上に格納することができる。I/Oデバイス
は、インターネット接続、テレビなどの様々な出力デバイスへの接続、および、
テレビ受信器などの様々な入力デバイスへの接続を含むことができる。
生成されたデータを、あるデバイスにルーティングすることができる。たとえば
、あるコンピュータシステム上でプログラムによってビットマップフォーマット
で生成されたデータを、別のコンピュータのディスプレイにルーティングするこ
とができる。ルーティングシステムは、スイッチボードコンポーネントを提供す
ることができ、これを介して、ユーザはあるフォーマットのデータをあるターゲ
ット(たとえば、デバイスまたはプログラム)にルーティングすることができる
。以下でより詳細に説明するように、スイッチボードコンポーネントは、コンピ
ュータシステムによって生成するか、あるいはそれによって受信することができ
るソースフォーマットのリスト、および、可能なターゲットのリストを提供する
。ユーザは、スイッチボードコンポーネントを使用して、あるソースフォーマッ
トのデータがあるターゲットまたは多数のターゲットにルーティングされること
を指定することができる。次いで、ルーティングシステムは適切なデータ構造を
セットアップして、データがターゲットにルーティングされるようにする。一実
施形態では、ルーティングシステムがパスのアドレスを使用して、データのルー
ティングを実施するルーチンを識別する。ルーティングシステムは、アドレスを
変換システムのキャッシュに格納し、変換システムがパスに基づいた形式のデー
タをルーティングすることができるようにする。
示するブロック図である。図4は、メディアクラスおよびメディアの編成を例示
するブロック図である。各メディアクラス401は、メディアクラス型、エイリ
アステーブル、プロトコルリスト、および、メディアクラスによってサポートさ
れた様々な関数へのリファレンスを含むオブジェクトである。各メディアクラス
は、関連付けられたメディア402〜405を有する。各メディアは、そのメデ
ィアクラス、メディアキャッシュおよびメディア型へのリファレンスを含むオブ
ジェクトである。
である。メディアクラスはエイリアステーブル501およびプロトコルリスト5
02を含む。エイリアステーブルは、エイリアスが登録されているメディアクラ
ス内の各メディア型についての、エイリアスエントリを含む。各エイリアスエン
トリは、メディア型について登録されたメディアを含む。プロトコルリストは、
各プロトコルについてのプロトコルエントリを含み、メディアクラス内のメディ
ア型を入力するエッジを有する。プロトコルエントリは、そのプロトコルについ
てのプロトコルオブジェクトへのリファレンスを含む。メディアは、メディアキ
ャッシュ503を含む。メディアマッピングシステムがメディアキャッシュを使
用して、メディアのメディア型からターゲットメディア型へのパスのアドレスを
キャッシュする。各キャッシュエントリは、登録されたターゲットメディアへの
リファレンス、および、そのメディア型から、すでに識別されているターゲット
メディア型へのパスのアドレスを含む。
ることができるようにし、データを、静的なルーティング情報、および、ユーザ
によって指定することができる動的なルーティング情報に従って、ルーティング
することができるようにする。ある出力フォーマットのデータを処理するための
パスを識別するとき、変換システムは最初に、変換されるデータのメディア型を
指定するメディアのキャッシュをチェックする。キャッシュが、ターゲットメデ
ィア型についてのエントリを含んでいた場合、変換システムはこのエントリを検
索し、このエントリにおけるアドレスによって識別されたパスに従って、データ
を変換する。このメディアのキャッシュが、ターゲットメディア型についてのエ
ントリを有していなかった場合、変換システムは、そのメディア型についてのエ
イリアステーブルエントリにおいて、登録されたメディアについてのキャッシュ
をチェックする。エイリアステーブルが、ターゲットメディア型についてのエン
トリを有する、このような登録されたメディアを含んでいた場合、変換システム
はデータを、アドレスがそのエントリに格納されているパスに従って変換する。
変換システムは、メディアのキャッシュを使用して、動的に識別されるパスを識
別し、登録されたメディアを使用して、静的に識別することができるパス、スイ
ッチボードコンポーネントを使用して識別することができるパスを識別する。
トは、そのプロトコルによってサポートされたエッジのリスト601を含む。リ
ストにおける各エントリは、エッジオブジェクト602へのポインタを含む。エ
ッジオブジェクトは、エッジの入力メディア型のための入力メディア、および、
エッジの出力メディア型のための出力メディア、および、エッジのためのハンド
ラへのポインタを含む。
は、出力メディア型を有する出力メディア、および、ターゲットメディア型を有
するターゲットメディアが渡され、出力メディア型をアドレスリストにおけるタ
ーゲットメディア型にマップするパスのアドレスを返す。ステップ701で、ル
ーチンは、出力メディアのメディアキャッシュをチェックして、出力メディア型
からターゲットメディアへのパスのアドレスがすでにキャッシュされているかど
うかを決定する。このようなアドレスがキャッシュされていた場合、ルーチンは
この時点でこれらのパスのアドレスを返す。ステップ702で、ルーチンは、登
録されたメディアのメディアキャッシュを、出力メディア型についてチェックし
て、このようなパスのアドレスがすでにキャッシュされているかどうかを判定す
る。メディア型について登録されたメディアは、このメディア型のメディアクラ
スに対するエイリアステーブルのエントリに格納される。このようなアドレスが
キャッシュされていた場合、ルーチンはこの時点でこれらのパスのアドレスを返
す。ステップ703で、ルーチンは、出力メディア型のエイリアスである、登録
された各メディアのメディアキャッシュをチェックして、キャッシュがいずれか
のこのようなパスを含んでいるかどうかを判定する。このようなアドレスがキャ
ッシュされていた場合、ルーチンはこの時点でこれらのアドレスを返す。ステッ
プ704で、ルーチンはプロトコルを探索して、出力メディア型をターゲットメ
ディア型にマップするためのパスを識別する。いずれかのこのようなアドレスが
見つかった場合、ルーチンはこの時点でこれらのパスのアドレスを返す。ステッ
プ705で、ルーチンはプロトコルを探索して、出力メディア型のエイリアスを
ターゲットメディア型にマップするパスを識別する。次いで、ルーチンは、いず
れかのこのようなパスのアドレスを返す。
ルーチンには、出力メディア、ターゲットメディア、アドレス、およびアドレス
リストが渡される。このルーチンは、出力メディアの出力メディア型をターゲッ
トメディアのターゲットメディア型にマップするために使用することができるプ
ロトコルエッジのパスを識別する。このルーチンは、アドレスリスト中のこれら
のパスのアドレスを返す。このルーチンは、任意のこのようなパスのアドレスが
キャッシュされているかどうかをまずチェックし、キャッシュされている場合は
そのアドレスと共にリターンする。キャッシュされていない場合、ルーチンは、
出力メディア型からターゲットメディア型へのパスを識別するためにプロトコル
をサーチする。ルーチンは、任意のそのようなパスを識別した場合、アドレスリ
スト中のそのパスのアドレスを返す。ルーチンは、出力メディア型からターゲッ
トメディア型へのパスを発見しなかった場合、出力メディア型のエイリアスメデ
ィアからターゲットメディア型へのパスを識別するためにプロトコルをサーチす
る。ルーチンは、アドレスリスト中の任意のそのようなパスのアドレスを返す。
このルーチンは、そのパスに対してプロトコルの深さ優先探索(縦型探索)を実
行するために反復的に呼び出される。エッジが出力メディア型にマップする入力
メディア型を有すると判明すると、そのエッジの出力メディア型からパスを見つ
けるためにこのルーチンが反復的に呼び出される。アドレスがこの反復的な呼出
しから返されるとき、ルーチンは、返されたアドレスの始まりにエッジを追加し
て、パスを延長する。ルーチンは、渡されたアドレスパラメータを使用してパス
内のループを検出する。リターン前に、ルーチンは、次にその出力メディアがこ
のルーチンに渡されたときに、このパスを即座に識別することができるように出
力メディア中のパスをキャッシュする。ステップ801で、ルーチンは出力メデ
ィア、ターゲットメディア、およびアドレスリストを渡しながら、メディアキャ
ッシュチェックルーチンを呼び出す。メディアキャッシュチェックルーチンは、
出力メディア型からターゲットメディア型へのパスが、出力メディアのメディア
キャッシュ内にキャッシュされているかどうかをチェックする。キャッシュされ
ている場合、ルーチンはアドレスリスト中の任意のそのようなアドレスを返す。
ステップ802で返されたアドレスリストがNULLである場合、ルーチンはステッ
プ803で継続し、NULLでない場合、ルーチンはリターンする。ステップ803
で、ルーチンは出力メディア、ターゲットメディア、およびアドレスリストを渡
しながら、エイリアステーブルチェックルーチンを呼び出す。エイリアステーブ
ルチェックルーチンは、出力メディア型またはエイリアスメディア型からターゲ
ットメディア型へのパスが出力メディア型の被登録メディアまたはエイリアス出
力メディア型の任意の登録されたエイリアスメディアにキャッシュされているか
どうかを判定する。キャッシュされている場合、ルーチンは任意のそのような返
されたパスのアドレスを返す。ステップ804で、返されたアドレスリストがNU
LLである場合、ルーチンはステップ805で継続し、そうでなければルーチンは
リターンする。ステップ805で、ルーチンは、出力メディア、ターゲットメデ
ィア、アドレス、およびアドレスリストを渡しながら、エッジスペースサーチル
ーチンを呼び出す。エッジスペースサーチルーチンは、出力メディア型からター
ゲットメディア型へのパスに対するプロトコルエッジをサーチする。ステップ8
06で、返されたアドレスリストがNULLである場合、ルーチンはステップ807
で継続し、そうでなければルーチンはリターンする。ステップ807〜810で
、ルーチンは、出力メディア型の各エイリアスメディア型の選択と、選択された
エイリアスメディア型からターゲットメディア型へのパスに対するプロトコルエ
ッジのサーチとをループする。ステップ807で、ルーチンは、出力メディアを
渡しながら、エイリアスルックアップルーチンを呼び出す。エイリアスルックア
ップルーチンは、エイリアスメディアのリストを返す。ステップ808で、ルー
チンは返されたエイリアスリスト中の次のエイリアスメディアを選択する。ステ
ップ809で、エイリアスリスト中のすべてのエイリアスメディアが既に選択済
みである場合、ルーチンはリターンし、そうでなければ、ルーチンはステップ8
10で継続する。ステップ810で、ルーチンは、選択されたエイリアスメディ
ア、ターゲットメディア、アドレス、およびアドレスリストを渡しながら、エッ
ジスペースサーチルーチンを呼び出す。ルーチンは、次いでステップ808にル
ープして、次のエイリアスメディアを選択する。
る。このルーチンには、メディア、ターゲットメディア、およびアドレスリスト
が渡される。このルーチンは、渡されたメディアのためのメディアキャッシュを
チェックして、ターゲットメディアに一致するエントリがあるかどうかを確かめ
る。そのようなエントリが見つかった場合、ルーチンはアドレスリスト中のエン
トリのアドレスを返す。ステップ901で、ルーチンは、渡されたメディアのメ
ディアキャッシュ中の次のエントリを、1番目から始めて、選択する。ステップ
902で、メディアキャッシュ中のすべてのエントリが既に選択済みである場合
、ルーチンはリターンし、そうでなければ、ルーチンはステップ903で継続す
る。ステップ903で、選択されたエントリのターゲットメディア型が、渡され
たターゲットメディア型に等しい場合、ルーチンはアドレスリスト中のエントリ
のアドレスを返し、そうでなければ、ルーチンはステップ901にループして、
渡されたメディアのメディアキャッシュ中の次のエントリを選択する。
ある。このルーチンには、出力メディア、ターゲットメディア、およびアドレス
リストが渡される。ルーチンは、まず出力メディア型からターゲットメディア型
へのパスのアドレスがエイリアステーブルの出力メディア型の被登録メディアに
キャッシュされているかどうかをチェックする。そのようなアドレスがキャッシ
ュされていない場合、このルーチンは、エイリアスメディア型からターゲットメ
ディア型へのパスのアドレスがキャッシュされているかどうかを判定するために
、エイリアステーブル中の出力メディア型の各エイリアスメディアのメディアキ
ャッシュをチェックする。ステップ1001で、ルーチンは、出力メディアを渡
し、出力メディア型に対応するエイリアステーブルのエイリアスエントリを受け
取る。エイリアスルックアップルーチンを呼び出して、ステップ1002で、ル
ーチンは、エイリアスエントリの被登録メディア、ターゲットメディア、および
アドレスリストを渡しながら、メディアキャッシュチェックルーチンを呼び出す
。ステップ1003で、返されたアドレスリストがNULLである場合、ルーチンは
ステップ1004で継続し、そうでなければ、ルーチンはリターンする。ステッ
プ1004〜1007で、ルーチンは、エイリアスエントリのエイリアスリスト
中のエイリアスメディアへの各リファレンスの選択と、ターゲットメディア型へ
のパスのアドレスがキャッシュされているかどうかのチェックとをループする。
ステップ1004で、ルーチンはエイリアスリスト中のエイリアスメディアへの
次のリファレンスを選択する。ステップ1005で、エイリアスリスト中のエイ
リアスメディアへのすべてのリファレンスが選択済みである場合、ルーチンはリ
ターンし、そうでなければ、ルーチンはそのステップ1006を継続する。ステ
ップ1007で、ルーチンは、リファレンスされるエイリアスメディア、ターゲ
ットメディア、および新しいアドレスリストを渡しながら、メディアキャッシュ
チェックルーチンを呼び出す。ステップ1007で、ルーチンは渡されたアドレ
スリストに新しいアドレスリストのアドレスを追加し、その結果、返されたアド
レスリストは、すべてのエイリアスメディア型に対するキャッシュされたアドレ
スを含むことになる。ルーチンは、次いでステップ1004にループして、次の
エイリアスメディアを選択する。
。このルーチンにはメディアが渡され、ルーチンはエイリアステーブルからその
メディア型に対するエイリアスエントリを返す。ルーチンは、渡されたメディア
のメディアクラスがあるかどうかエイリアステーブルをチェックする。ステップ
1101で、ルーチンは、渡されたメディアに対するメディアクラスを取り出す
。ステップ1102で、ルーチンは、渡されたメディアのメディア型と一致する
取り出されたメディアクラスのエイリアステーブル中にエイリアスエントリがあ
るかどうかサーチする。ステップ1103で、ルーチンは見つかったエイリアス
エントリを取り出す。ルーチンは取り出されたエイリアスエントリを返す。
このルーチンは出力メディア型からターゲットメディア型へのパスを識別し、ア
ドレスリスト中のそのパスのアドレスを返す。プロトコルが出力メディア型を入
力するエッジを有する場合、そのエッジの出力メディア型からターゲットメディ
ア型へのパスのアドレスを見つけるために、ルーチンは反復的にメディアマップ
取得ルーチンを呼び出す。ルーチンは、次いで、返されたアドレスのそれぞれを
出力メディア型からターゲットメディア型へのパスを形成するためにそのエッジ
に連結する。このルーチンがパスの終端に達し、ターゲットメディアがNULLであ
るか、あるいはターゲットメディア型が選択されたエッジの入力メディア型と同
じである場合、このエッジはアドレスリストに追加される。このルーチンは、プ
ロトコルが出力メディア型をサポートしているかどうかを判定するために、渡さ
れた出力メディアがあるかどうかプロトコルリスト中の各プロトコルをチェック
する。ステップ1201〜1210で、ルーチンは、出力メディアのメディアク
ラスのプロトコルリスト中の各プロトコルの選択と、各選択されたプロトコルの
各エッジの選択とをループする。ステップ1201で、ルーチンは出力メディア
のメディアクラスのプロトコルリスト中の次のプロトコルを選択する。ステップ
1202で、すべてのプロトコルが既に選択済みである場合、ルーチンはリター
ンし、そうでなければ、ルーチンはステップ1203で継続する。ステップ12
03で、ルーチンは、選択されたプロトコルの次のエッジを選択する。ステップ
1204で、選択されたプロトコルのすべてのエッジが既に選択済みである場合
、ルーチンはステップ1201にループして次のプロトコルを選択し、そうでな
ければ、ルーチンはステップ1205で継続する。ステップ1205で、選択さ
れたエッジの入力メディア型が、渡された出力メディア型に等しい場合、選択さ
れたエッジを含めるためにパスを延長することができ、ルーチンはステップ12
06で継続し、そうでなければ、ルーチンはステップ1203にループして、選
択されたプロトコルの次のエッジを選択する。ステップ1206で、選択された
エッジの出力メディア型がNULLである場合、既にパスの終端に達しており、ルー
チンはそのステップ1209を継続し、そうでなければ、ルーチンはそのステッ
プ1207を継続する。NULLである出力メディア型を有するエッジは、パスを終
了するシンク(sink)エッジである。ステップ1207で、選択されたエッジが
渡されたアドレス中に既にある場合、そのアドレスに対するパスはループを有す
ることになり、したがって、選択されたプロトコル中の次のエッジを選択するた
めにルーチンはステップ1203にループし、そうでなければ、ルーチンはステ
ップ1208で継続する。ステップ1208で、ルーチンは、渡されたアドレス
に選択されたエッジを追加する。ステップ1209で、ルーチンはメディアマッ
プ取得ルーチンを反復的に呼び出す。ルーチンは、選択されたエッジの出力メデ
ィア、ターゲットメディア、アドレス、および新しいアドレスリストを渡す。戻
る際、次のアドレスリストは、選択されたエッジの出力メディア型からターゲッ
トメディア型へのパスのアドレスを含む。ステップ1210で、ルーチンは、選
択されたエッジに次のアドレスリストの各アドレスを連結することによって形成
されたアドレスを、渡されたアドレスリストに追加し、選択されたプロトコルの
次のエッジを選択するためにループする。ステップ1211で、渡されたターゲ
ットメディア型がNULLに等しいか、あるいは選択されたエッジの入力メディア型
に等しい場合、ルーチンはステップ1212で継続し、そうでなければ、ルーチ
ンはステップ1203にループして、選択されたプロトコル中の次のエッジを選
択する。ステップ1212で、ルーチンは、渡されたアドレスリストに選択され
たエッジのアドレスを追加し、ステップ1203にループして、選択されたプロ
トコルの次のエッジを選択する。
ンドラは、IPデータパケットを入力し、TCPデータパケットを出力する。ハ
ンドラにはIPパケットとパスへのハンドルとが渡される。このハンドラは、複
数のIPパケットからTCPパケットを構築する。ステップ1301で、ハンド
ラは、渡されたパケットをそのハンドラによって構築中のTCPパケットに追加
する。図示はしないが、ハンドラはIPパケットが新しいTCPパケットの開始
またはTCPパケットに対する継続中のデータを含むかどうかを検出する。ハン
ドラは、メディアマッピングシステムの機能を使用して、構築されている通りに
TCPパケットを格納する。ハンドラは、ある呼出しから次の呼出しへの状態情
報自体は格納しない。したがって、ハンドラは、呼び出されるとき、TCPメッ
セージに関する状態情報をメディアマッピングシステムから取り出す。ステップ
1302で、TCPパケットが完成すると、ハンドラはステップ1302で継続
し、そうでなければハンドラはリターンする。ステップ1303で、パケットの
メディア型に対するTCPパケットのための出力メディアが既に存在する場合、
ハンドラはこの出力メディアを再利用し、ステップ1305で継続する。ステッ
プ1304で、ハンドラはTCPパケットのメディア型に対して新しい出力メデ
ィアを生成する。ステップ1305で、渡されたパスハンドルに出力メディアを
関連付けるために、ハンドラはメディアマッピングシステムのAPIを呼び出す
。ステップ1306で、ハンドラは、ターゲットメディアを指定するために、メ
ディアマッピングシステムのAPIをオプションで呼び出す。ステップ1307
で、ハンドラは、TCPパケットを渡しながらメディアマッピングシステムのA
PIを呼び出して、TCPパケットを転送する。ハンドラは次いで戻る。
ンには、パケットと、パケットを処理中のパスのハンドルが渡される。このルー
チンは、そのパケットを処理することができるパスを識別し、各パス上を送信さ
れるパケットを処理するためのスレッドを生成することによってパスを生成し、
そのパケットを各スレッドのキューに追加する。ステップ1401で、ルーチン
はそのパスに対する出力メディアを取り出す。ステップ1402で、ルーチンは
そのパスに対するターゲットメディアを取り出す。ステップ1403で、ルーチ
ンは変数アドレスを空にセットする。ステップ1404で、ルーチンは、出力メ
ディア、ターゲットメディア、およびアドレスを渡しながら、メディアマップ取
得ルーチンを呼び出す。ルーチンは、出力メディア型からターゲットメディア型
へのパスのアドレスのアドレスリストを受け取る。ステップ1405〜1409
で、ルーチンはアドレスリスト中のアドレスに対するパスの生成と、各パスに対
するキューへのパケットの追加をループする。ステップ1405で、ルーチンは
次のアドレスリストを選択する。ステップ1406で、アドレスリスト中のすべ
てのアドレスが既に選択済みである場合、ルーチンはリターンし、そうでなけれ
ば、ルーチンはステップ1407で継続する。ステップ1407で、選択された
アドレスのパスが既に生成済みである場合、ルーチンはステップ1405で継続
し、そうでなければ、ルーチンはステップ1408で継続する。ステップ140
8で、ルーチンは選択されたアドレスに対するパスを生成する。ステップ140
9で、ルーチンは、選択されたアドレスのパスに対するキューにパケットを追加
し、次いでステップ1405にループして、そのアドレスリスト中の次のアドレ
スを選択する。
ある。このルーチンは、メディアマッピングシステムを初期化するために呼びだ
される。ルーチンはメディアクラスを生成し、プロトコルをロードし、エイリア
ステーブルを初期化する。この情報は、初期化後、動的に変更される場合がある
。具体的には、新しいメディアクラス、エイリアス、およびプロトコルは追加お
よび除去することができる。ステップ1501で、ルーチンはディスクドライブ
などの永続記憶装置から構成情報をロードする。構成情報には、メディアクラス
、メディア、メディアエイリアスマッピング、プロトコルなどの記述が含まれる
。ステップ1502で、ルーチンは、構成情報で指定された各メディアクラスに
対するメディアクラスオブジェクトをインスタンス生成する。ステップ1503
で、ルーチンは、構成情報で指定された各プロトコルをロードする。各プロトコ
ルはダイナミックリンクライブラリに格納されている。ダイナミックリンクライ
ブラリがロードされるとき、そのプロトコルのための初期化ルーチンが呼び出さ
れる。この初期化ルーチンはプロトコルを適切なメディアクラスのプロトコルリ
ストに追加する。ステップ1504で、エイリアスメディア型の各ペアに対して
、ルーチンは、対の第1メディア型に対するエイリアステーブルエントリに、ペ
アの第2メディア型に対する被登録メディアオブジェクトへのポインタを格納す
る。被登録メディアが生成され、適切であるとしてエイリアステーブルに追加さ
れる。ステップ1505で、ルーチンは、被登録メディアのキャッシュ中にキャ
ッシュされるべきパスを格納する。ルーチンは次いでリターンする。
施形態では、ルーチンはプロトコルに対するコードを含むダイナミックリンクラ
イブラリに格納されている。ダイナミックリンクライブラリがロードされるとき
、このルーチンが自動的に呼び出される。このルーチンは、プロトコルの登録お
よび初期化を実行する。ステップ1601で、ルーチンは、プロトコルがパスに
含められるように、そのプロトコルを登録する。ルーチンは、プロトコルの各エ
ッジの入力メディア型のメディアクラスのプロトコルリストにプロトコルオブジ
ェクトへのリファレンスを追加することによって、プロトコルを登録する。ステ
ップ1602で、ルーチンは、プロトコルが使用する任意のカスタムメディア型
を登録する。ルーチンは、カスタムメディア型のためのメディアクラスがまだ存
在しない場合は、それを生成することによってカスタムメディア型を登録する。
次いでルーチンは、そのカスタムメディア型に対する被登録メディアを生成し、
それをメディアクラスのエイリアステーブルに追加する。ルーチンは、キャッシ
ュをパスで事前充填するために被登録メディアのメディアキャッシュにパスのア
ドレスを追加することもできる。次いでこのルーチンは戻る。
1701は、メディアクラス中の各メディアに対する被登録メディアと、エイリ
アスメディアへのマッピングとを含む。例えば、メディア型D13に対応する被
登録メディアはエントリ1701aに格納される。このエントリはまた、メディ
ア型D13がメディア型D15にマップするということを示す。プロトコルリス
ト1702は、このメディアクラスに対して5つのプロトコルが登録済みである
ということを示す。これはすなわち、これらのプロトコルのそれぞれが、このメ
ディアクラスのメディア型を入力するエッジを有するということである。エイリ
アステーブル1703とプロトコルリスト1704は、第2メディアクラスに関
する情報を含む。メディアオブジェクトD1のメディアキャッシュ1705は、
メディア型D11およびD15にメディア型D1をマップするパスのアドレスを
含む。
ある。メディアマッピングシステムは、データ型D1のメディアを処理するため
に、曲線によって示される2つのパスを識別した。このパスは、「P1:1、P
2:1、P3:2、P4:1」と「P1:1、P5:2、P6:1、P7:1、
P8:1」のアドレスを有する。パスを識別するときメディアマッピングシステ
ムは、その中で、メディア型D20がエイリアステーブル1701中の第2のエ
ントリによって示されるように、データ型D2に対するエイリアスである、と判
定した。メディアマッピングシステムは、また、メディア型D10がメディア型
D5に対するエイリアスであったこと、メディア型D15がメディア型D13に
対するエイリアスであったこと、およびメディアD19がメディア型D17に対
するエイリアスであったことを判定した。
チンは、スレッドとして実行し、そのパスに対するキューからデータを取り出し
、そのパスに関連付けられたハンドラを呼び出す。各パスは、このルーチンを実
行するそのルーチン独自のスレッドを有する。どの時点においてもハンドラがデ
ータを返さない場合、パス処理ルーチンは、キューから最後に取り出されたその
データの処理を停止し、処理されるべき次のデータがあるかどうかそのキューを
チェックする。パスの最終ハンドラからデータが返される場合、パス処理ルーチ
ンは、さらに処理されることができるようにデータを転送する。ステップ190
1で、ルーチンは、パスに対するキューをポップして、キューからデータを取り
出す。ステップ1902〜1905で、ルーチンは、パスの各エッジの選択と、
そのエッジのハンドラの呼出しとをループする。ステップ1902で、ルーチン
はパスの次のエッジを選択する。ステップ1903で、ルーチンは、出力データ
を渡して、選択されたエッジのハンドラを呼び出し、代わりに新しい出力データ
を受取る。ステップ1904で、新しい出力データが返されないか、あるいはす
べてのエッジが既に選択済みである場合、ルーチンはステップ1906で継続し
、そうでなければ、ルーチンはステップ1905で継続する。ステップ1905
で、ルーチンは現在の出力データを新しい出力データにセットし、ステップ19
02にループして、パスの次のエッジに対するハンドラを選択する。ステップ1
906で、新しい出力データが返されない場合、ルーチンはステップ1901に
ループして、キューの次のデータを処理し、そうでなければ、ルーチンはステッ
プ1907で継続する。ステップ1907で、ルーチンは、新しい出力データを
渡しながら転送APIルーチンを呼び出し、その結果、出力データはさらに処理
されることができる。次いでルーチンは、ステップ1901にループして、キュ
ーの次のデータを処理する。
すブロック図である。テーブル2001は、メディアマッピングシステムがサポ
ートする現在のメディア型の表示を図示している。この例では、サポートされる
メディア型はJIF、JPEG、AVIおよびMICである。テーブル2002
は、様々なメディア型のデータをルーティングすることができるターゲットを列
挙する。これらのターゲットには、マシン10、マシン10のスピーカ、および
マシン11が含まれる。ある種のメディア型のデータがある種のターゲットにル
ーティングされるように指示するためには、ユーザはメディア型(例えば「MI
C」)と対応するターゲット(例えば、「マシン10:スピーカ」)とを選択す
る。スイッチボードコンポーネントは、表示されるターゲットを、選択されたデ
ータ形式に対して理に適うものだけに限定することができる。例えば、オーディ
オデータをスピーカにルーティングすることは理に適っているが、オーディオデ
ータをディスプレイにルーティングすることは理に適っていない。ある種のメデ
ィア型のデータのルーティングを達成するには、スイッチボードコンポーネント
は、そのメディア型に対して被登録メディアのキャッシュの中に、そのルーティ
ングを達成するパスのアドレスを格納する。そのメディア型のデータが次に処理
されるとき、変換システムはキャッシュされたパスに関連付けられたデータをル
ーティングする。
示すブロック図である。そのスイッチボードコンポーネントに対する様々なター
ゲットは、「ProxiWorld」という名称のメディアクラス内にメディア
として格納されている。ProxiWorldメディアクラスには、ターゲット
に対するすべてのメディア型と、そのターゲットへのパスを表すキャッシュされ
たデータが含まれる。メディアクラス2101は、その名前がProxiWor
ldであり、それに関連付けられたプロトコルがないことを示している。Pro
xiWorldクラスに対するエイリアステーブル2102は、各ターゲットに
対するエントリを含んでいる。各エントリは、メディア型の名前(例えば、「マ
シン10」)を示し、そのターゲットへのパスのアドレス(例えば、「UDP/
IP/ETH(A、D)」を示す被登録メディアを含んでいる。ProxiWo
rldクラスの様々なメディア型は、初期構成データに基づいて指定してもよい
し、あるいはネットワークに接続されたコンピュータシステムおよびデバイスと
して動的に生成してもよい。例えば、エイリアステーブル2102は、マシン1
0およびマシン11が、目下のところ、現コンピュータシステムに接続されてい
ることを示している。メディアマッピングシステムは、ネットワークを監視して
、様々なターゲットがいつ使用可能になるか、または使用不可能になるかを検出
することができる。メディアマッピングシステムは、ターゲットメッセージ処理
ルーチンを使用してネットワークを監視し、かつProxWorldメディアク
ラスのエントリを更新することができる。ターゲットメッセージ処理ルーチンは
、新しいターゲットが使用可能であることを検出すると、エイリアステーブル2
101に新しいエントリを追加する。新しいターゲットがもはや使用可能ではな
いことを検出すると、エイリアステーブルから対応するエントリを削除する。タ
ーゲットメッセージ処理ルーチンは、ネットワーク上に周期的メッセージを送信
することによって、ターゲットがもはや使用可能でないことを検出することがで
きる。特定の時間間隔内にリターンメッセージが受信されない場合、ターゲット
メッセージ処理ルーチンはそのターゲットがもはや使用可能でないと仮定するこ
とができる。ターゲットにメディア型をルーティングするためにスイッチボード
コンポーネントが使用されるとき、スイッチボードコンポーネントは、そのメデ
ィア型に対する被登録メディアにパスをキャッシュする。例えば、被登録メディ
ア2103はメディア型「MIC」に対応する。その被登録メディアに対するキ
ャッシュは、マシン10のスピーカを識別するエントリと、そのターゲットへの
パスとを含んでいる。MICメディア型のデータが処理されるとき、メディアマ
ッピングシステムは、この被登録メディアからパスを取り出し、そのパスに沿っ
てデータを送る。
トを導出することができる。例えば、データが電話を対象とする音声データであ
る場合、その音声データを処理するハンドラは、呼び出される人物の名前のよう
な音声データの最初の言葉を認識することができる。ハンドラは電子電話帳から
その人物の電話番号を取り出し、次いでその電話番号を音声データに含めること
で、ハンドラはが適切な電話番号にダイヤルすることができる。あるいは、ハン
ドラは、音声データをその人物にルーティングするための、ProxiWorl
dメディアクラス内でキャッシュに格納することができる、パスを取り出すこと
ができる。
シュすることができる。あるパスがローカルにメディア内にキャッシュされてい
る場合、ユーザが、そのメディア型のデータを別のターゲットにルーティングす
るためにスイッチボードコンポーネントを使用するとき、そのメディアのキャッ
シュは期限切れになっているだろう。一実施形態では、変換システムはメディア
のキャッシュ内に、そのメディア型に対して被登録メディアへのポインタを格納
することができる。したがって、そのメディア型のデータを新しいターゲットに
ルーティングするために、スイッチボードコンポーネントが使用されるとき、変
換システムはポインタを使用して、現在のパスを取り出すことができる。また、
パスの一部だけが期限切れになる状況もある。例えば、エッジ空間をサーチする
ことによってパスの最初の2つのエッジが見つかり、パスの最後の部分がPro
xiWorldクラスで見つかる場合、ProxiWorldクラスにおける変
更はキャッシュされるパスの終端を無効にする。変換システムは、そのキャッシ
ュされたデータが無効であることを示すために、様々なフラグを格納することが
できる。例えば、変換システムは、そのメディアクラスの被登録メディアの1つ
のキャッシュが更新されるときはいつでも更新される、各メディアクラスに対す
るタイムスタンプを維持することができる。各メディアは、そのキャッシュが最
後に更新されたときのタイムスタンプを有することもできる。メディアクラスの
タイムスタンプが、メディアのタイムスタンプよりも後の場合、メディアの中の
キャッシュは期限切れである場合がある。あるいは、タイムスタンプは、メディ
アクラスに対して1つのタイムスタンプだけを有するのではなく、各被登録メデ
ィアの中に格納することもできる。
る。このルーチンは、ターゲットを登録すべきか、それとも登録解除すべきかを
判定するためにネットワークの監視をループする。ルーチンは、ProxiWo
rldメディアクラスに対するエイリアステーブルが適切になるように調整する
。ステップ2201で、ルーチンは、ネットワーク上を送信されるべきメッセー
ジを待つ。ステップ2201で、メッセージがターゲットを登録するよう指示す
る場合、ルーチンはステップ2203で継続し、そうでなければ、ルーチンはス
テップ2204で継続する。ステップ2203で、ルーチンはターゲット登録ル
ーチンを呼び出し、ステップ2201にループして、次のメッセージを待つ。ス
テップ2204では、メッセージがターゲットを登録解除することである場合、
ルーチンはステップ2205で継続し、そうでなければ、ルーチンはステップ2
202にループして、次のメッセージを待つ。ステップ2205で、ルーチンは
ターゲット登録解除ルーチンを呼び出し、次いでステップ2201にループして
、次のメッセージを待つ。
ーチンには、ターゲットのクラス名を示すメッセージと、ターゲットへのパスと
が渡される。ステップ2301で、ルーチンはその渡されたメッセージに基づい
てメディアを生成する。ステップ2302で、ルーチンはProxiWorld
メディアクラスのエイリアステーブルにエントリを追加する。ステップ2303
で、ルーチンは、追加されたエントリに生成されたメディアを、そのメディア型
に対する被登録メディアとして追加する。ルーチンは次いでリターンする。
のルーチンには、ターゲットのメディア型を示すメッセージが渡される。ステッ
プ2401で、ルーチンは、渡されたメディア型に対応するProxiWorl
dに対するエイリアステーブルからエントリを削除する。ルーチンは次いでリタ
ーンする。
本発明の趣旨および範囲から逸脱せずに様々な修正形態を実施することが可能で
あることを理解されたい。したがって、本発明は、頭記の特許請求の範囲以外に
よって限定されるものではない。
ック図である。
ロック図である。
Claims (18)
- 【請求項1】 データを処理するためのルーチンのシーケンスを識別するた
めの、コンピュータシステムにおける方法であって、該コンピュータシステムは
複数のルーチンを有し、各ルーチンは、入力型のデータを入力して出力型のデー
タを出力するためのルーチンであり、 エイリアス型のペアを提供するステップであって、各ペアは出力型および入力
型を有し、出力型のデータを、入力型を有するデータを入力するルーチンによっ
て処理することができるステップと、 宛先型に変換されるソース型のデータを受信するステップと、 シーケンスにおける最初のルーチンが、ソース型またはソース型のエイリアス
型のデータを、提供されたエイリアス型のペアによって指示されるように入力し
、シーケンスにおける最後のルーチンが、宛先型のデータを出力し、および、シ
ーケンスにおける各中間ルーチンが、シーケンスにおける先のルーチンの出力型
のデータ、または、シーケンスにおける先のルーチンの出力型のエイリアス型の
データを、提供されたエイリアス型のペアによって指示されるように入力するル
ーチンのシーケンスを識別するステップと を備えたことを含むことを特徴とする方法。 - 【請求項2】 ルーチンのシーケンスを識別するステップは、ソースデータ
型のデータを宛先データ型に変換するためのルーチンのシーケンスが、すでに識
別されているかどうかを決定するステップと、識別されたシーケンスを使用する
ステップとを含むことを特徴とする請求項1に記載の方法。 - 【請求項3】 識別されたルーチンのシーケンスの指示をキャッシュに格納
することを含むことを特徴とする請求項1に記載の方法。 - 【請求項4】 識別するステップは、キャッシュから、識別されたシーケン
スの指示を検索するステップを含むことを特徴とする請求項3に記載の方法。 - 【請求項5】 出力型のデータをターゲットにルーティングするための、コ
ンピュータシステムにおける方法であって、 出力型のデータをターゲットにルーティングするためのパスの識別子を提供す
るステップと、 出力型のデータをターゲットにルーティングするための指示を提供するステッ
プと、 出力型のデータを受信するステップと、 受信されたデータの出力型を使用して、出力型のデータをターゲットにルーテ
ィングするための提供された指示を検索するステップと、 検索された指示のターゲットを使用して、ターゲットのための提供されたパス
の識別子を検索するステップと、 検索されたパスに従ってデータをルーティングするステップと を備えたことを特徴とする方法。 - 【請求項6】 パスの識別子を提供するステップは、別のコンピュータシス
テムからのパスの識別子を受信するステップを含むことを特徴とする請求項5に
記載の方法。 - 【請求項7】 出力型のデータをターゲットにルーティングするための指示
を提供するステップは、受信されたデータを解析してターゲットを識別するステ
ップを含むことを特徴とする請求項5に記載の方法。 - 【請求項8】 データは音声データであり、解析するステップは、音声デー
タの所期の受信者を識別するステップを含むことを特徴とする請求項7に記載の
方法。 - 【請求項9】 出力型のデータをターゲットにルーティングするための指示
を提供するステップは、出力型およびターゲットの選択をユーザから受信するス
テップを含むことを特徴とする請求項5に記載の方法。 - 【請求項10】 出力型のデータをターゲットにルーティングするための指
示を提供するステップは、出力型のリストおよび可能なターゲットのリストをユ
ーザに表示するステップを含むことを特徴とする請求項5に記載の方法。 - 【請求項11】 ソース型のデータをターゲット型に変換するためのルーチ
ンのシーケンスを判定するための、コンピュータシステムにおける方法であって
、 複数のルーチンを提供するステップであって、各ルーチンは入力型および出力
型を有するステップと、 シーケンスの1つまたは複数のルーチンを識別するステップであって、シーケ
ンスにおける各ルーチンの出力型がシーケンスにおける次のルーチンの入力型と
互換性を有し、シーケンスにおける最初のルーチンの入力型はソース型と互換性
を有し、シーケンスにおける最後のルーチンの入力型は出力型と互換性を有する
ステップと を備えたことを特徴とする方法。 - 【請求項12】 識別されたルーチンの指示をキャッシュするステップと、
後にシーケンスを判定する時にキャッシュをチェックするステップとを含むこと
を特徴とする請求項11に記載の方法。 - 【請求項13】 識別することを迂回できるように、キャッシュにルーチン
のシーケンスの指示を準備するステップを含むことを特徴とする請求項12に記
載の方法。 - 【請求項14】 データを処理するためのコンピュータシステムであって、 入力型のデータを出力型に処理するための1組のルーチンと、 ソース型の指示を受信し、データをターゲット型に処理するためのルーチンの
シーケンスを識別する、サーチコンポーネントと、 ソース型のデータをターゲットにルーティングするためのルーチンのシーケン
スの識別を受信する、ルーティングコンポーネントと、 ソース型の指示を受信し、ソース型のデータを処理するための、識別されたル
ーチンのシーケンスを選択する、処理コンポーネントと を備えたことを特徴とするコンピュータシステム。 - 【請求項15】 多数のシーケンスがソース型について選択されることを特
徴とする請求項14に記載のコンピュータシステム。 - 【請求項16】 ルーティングコンポーネントは、シーケンスの識別を受信
するターゲット受信コンポーネントを含むことを特徴とする請求項14に記載の
コンピュータシステム。 - 【請求項17】 ルーティングコンポーネントは、あるソース型のデータが
ターゲットにルーティングされることを指定するためのユーザインタフェースを
含むことを特徴とする請求項14に記載のコンピュータシステム。 - 【請求項18】 ターゲットはルーチンであることを特徴とする請求項17
に記載のコンピュータシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1999/009829 WO2000067152A1 (en) | 1998-05-05 | 1999-05-04 | Method and system for generating a mapping between types of data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002543527A true JP2002543527A (ja) | 2002-12-17 |
Family
ID=22272686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000615923A Pending JP2002543527A (ja) | 1999-05-04 | 1999-05-04 | データの型の間のマッピングを生成するための方法およびシステム |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP2002543527A (ja) |
AT (1) | ATE279753T1 (ja) |
AU (1) | AU3787299A (ja) |
DE (1) | DE69921198D1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010500519A (ja) * | 2006-08-14 | 2010-01-07 | エボニック デグサ ゲーエムベーハー | 導管用の内張り材としてのポリアミド成形材料からなる成形部材の使用 |
-
1999
- 1999-05-04 JP JP2000615923A patent/JP2002543527A/ja active Pending
- 1999-05-04 DE DE1999621198 patent/DE69921198D1/de not_active Expired - Lifetime
- 1999-05-04 AT AT99920354T patent/ATE279753T1/de not_active IP Right Cessation
- 1999-05-04 AU AU37872/99A patent/AU3787299A/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010500519A (ja) * | 2006-08-14 | 2010-01-07 | エボニック デグサ ゲーエムベーハー | 導管用の内張り材としてのポリアミド成形材料からなる成形部材の使用 |
Also Published As
Publication number | Publication date |
---|---|
AU3787299A (en) | 2000-11-17 |
ATE279753T1 (de) | 2004-10-15 |
DE69921198D1 (de) | 2004-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7730211B2 (en) | Method and system for generating a mapping between types of data | |
US8386715B2 (en) | Method and apparatus for tile mapping techniques | |
CN111581563B (zh) | 页面响应方法、装置、存储介质和电子设备 | |
US7802071B2 (en) | Device, system, and method of publishing information to multiple subscribers | |
US7839867B2 (en) | Information delivery system, delivery request program, transfer program, delivery program, and the like | |
TWI495315B (zh) | 用以決定網路介面以接取網路資源之方法、裝置和電腦程式產品 | |
US20030139934A1 (en) | Requesting and providing services via a registry | |
US8977717B2 (en) | Method and apparatus for providing applications with shared scalable caching | |
US7353322B1 (en) | System and method for providing dynamic configuration ROM using double image buffers | |
JP2006343855A (ja) | コンテンツ中継装置及びコンテンツ中継方法 | |
WO2020248745A1 (zh) | 用户界面中字符的显示方法、装置、电子设备及存储介质 | |
JP2002540688A (ja) | 無線ハンドセット | |
JP2014523581A (ja) | ローカル・エリア・ネットワークにおいてメディア・リソース・プレイリストを処理する方法、装置、およびシステム | |
CN110764688B (zh) | 对数据进行处理的方法和装置 | |
US7647350B2 (en) | Database access server with compression translator | |
CN113973129A (zh) | 一种支持多种注册中心微服务的网关 | |
CN106205084A (zh) | 信息处理装置和方法、控制目标设备和信息处理系统 | |
JP2012515373A (ja) | データベースにおけるオプショナル機能の対応レベルを発見するためのシステム | |
CN110390051B (zh) | 一种搜索实现方法、装置、电子设备及存储介质 | |
US6813663B1 (en) | Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images | |
JP2002543527A (ja) | データの型の間のマッピングを生成するための方法およびシステム | |
US20090254526A1 (en) | Network management information (nmi) distribution | |
US20180367452A1 (en) | Information centric networking over multi-access network interfaces | |
CN116866429A (zh) | 一种数据访问方法及相关装置 | |
US8005849B2 (en) | Database access server with reformatting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060508 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060508 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090526 |