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
Application number
JP2000615923A
Other languages
English (en)
Inventor
バラッサニアン エドワード
エス.ウォルフ デービッド
Original Assignee
ビーコム コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ビーコム コーポレイション filed Critical ビーコム コーポレイション
Priority claimed from PCT/US1999/009829 external-priority patent/WO2000067152A1/en
Publication of JP2002543527A publication Critical patent/JP2002543527A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 ソース型のデータをターゲット型にルーティングするための方法およびシステムを提供する。システムは、ある型のデータを別の型のデータに変換するための様々なルーチンを有する。一実施形態では、システムは、ソース型の指示を受信し、データをソース型からターゲット型に変換することができる様々なルーチンのシーケンスを識別する。次いで、システムは、これらのシーケンスにおける各ルーチンによるデータの処理を、ターゲット型へのデータの変換に調整する。ルーチンを識別する処理は、「ディスカバリ」と呼ばれる。システムは、エイリアシング機構も提供し、これにより、互換性のある型を識別することができる。ルーチンのシーケンスを識別するとき、システムは、互換性のある型をサポートするルーチンをチェックすることができる。ルーチンのシーケンスが識別されたとき、システムはシーケンスの識別をキャッシュして、ソース型のデータがターゲット型に変換されるときにこのシーケンスの識別を容易にする。システムは、ルーチンのシーケンスを他のコンピュータシステムから発見するための機構も使用する。これらの他のコンピュータシステムは、様々なルーチンのシーケンスをブロードキャストすることができ、これらが受信側のコンピュータシステムで格納される。ユーザは、スイッチボード機構を使用して、あるソース型のデータを、ブロードキャストされたシーケンスの1つに向けて送ることができる。この、データをあるソースに向けて送ることにより、あるコンピュータシステムから、別のコンピュータシステム上のデバイスまたはルーチンへの、データのルーティングを実施する。

Description

【発明の詳細な説明】
【0001】 (技術分野) 本発明は、一般に、ある型のデータを別の型に変換するためのコンピュータシ
ステムに関する。
【0002】 (背景) コンピュータシステムは、ますます普及しつつあり、データを幅広い種類のフ
ォーマットで生成している。インターネットは、相互接続されたコンピュータシ
ステムの一例であり、データを多数の異なるフォーマットで生成するものである
。実際に、データがあるコンピュータシステム上で生成され、別のコンピュータ
システムに表示するために伝送されるとき、データを、最終的に表示する前に、
多数の異なる中間フォーマットに変換することができる。たとえば、生成側のコ
ンピュータシステムは、最初にデータをピットマップフォーマットで格納するこ
とができる。このデータを別のコンピュータシステムに送信するため、このコン
ピュータシステムは、最初にビットマップデータを圧縮し、次いで、圧縮された
データを暗号化することができる。次いで、コンピュータシステムが、この圧縮
されたデータをTCPフォーマットに変換し、次いでIPフォーマットに変換す
ることができる。IPフォーマットにされたデータを、イーサネット(登録商標
)フォーマットなど、伝送フォーマットに変換することができる。次いで、伝送
フォーマットのデータが、受信側のコンピュータシステムに送信される。受信側
のコンピュータシステムは、これらの各変換を逆の順序で実行して、データをビ
ットマップフォーマットに変換する必要がある。加えて、受信側のコンピュータ
システムは、ビットマップデータを、出力デバイス上でレンダリングするために
適切であるフォーマットに変換する必要があるかもしれない。
【0003】 データをこのような幅広い種類のフォーマットにおいて処理するために、送信
側および受信側のコンピュータシステムが、様々なフォーマットをサポートする
ために使用可能な多数の変換ルーチンを有する必要がある。これらのコンピュー
タシステムは、典型的には、事前定義された構成情報を使用して、データ処理の
ために正しい組み合わせの変換ルーチンをロードする。これらのコンピュータシ
ステムは、これらの変換ルーチンによりデータを処理するとき、プロセス指向の
手法も使用する。プロセス指向の手法を使用するとき、コンピュータシステムは
、各変換について、実行する必要のある個々の処理を生成することができる。し
かし、コンピュータシステムは、ある状況において、データを受信し、データが
受信されるまで知ることができない多数の異なるフォーマットでデータを提供す
ることを、求められる可能性がある。可能な各一連の変換ルーチンをスタティッ
クに提供する際のオーバーヘッドは、非常に高い。たとえば、家庭内で受信され
たデータ用の中央コントローラとして機能するコンピュータシステムは、電話回
線、ケーブルTV回線、および衛星接続を介して、多数の異なるフォーマットで
受信されたデータを処理することを求められるであろう。中央コントローラは、
データを、コンピュータのディスプレイ、テレビのディスプレイ、エンタテイメ
ントセンタ、スピーカ、記録デバイスなどへ、多数の異なるフォーマットで出力
することを求められるであろう。さらに、様々な変換ルーチンが、異なる組織に
よって開発される可能性があるので、ある変換ルーチンの出力フォーマットが、
別の変換ルーチンの入力フォーマットと互換性を有することを識別することが、
容易でない可能性がある。
【0004】 データを処理するための一連の変換ルーチンを、動的に識別するための技術を
有することが望ましいであろう。加えて、ある変換ルーチンの出力フォーマット
が、別の変換ルーチンの入力フォーマットと互換性を有するものとして識別する
ことができる技術を、有することが望ましいであろう。
【0005】 (概要) ソース型のデータをターゲット型にルーティング(routing)するための方法
およびシステムを提供する。システムは、ある型のデータを別の型のデータに変
換するための様々なルーチンを有する。一実施形態では、システムは、ソース型
の指示(indication)を受信し、データをソース型からターゲット型に変換する
ことができる様々なルーチンのシーケンスを識別する。次いで、システムは、こ
れらのシーケンスにおける各ルーチンによるデータの処理を、ターゲット型への
データの変換に調整する。ルーチンを識別する処理は、「ディスカバリ(discov
ery)」と呼ばれる。システムは、エイリアシング機構も提供し、これにより、
互換性のある型を識別することができる。ルーチンのシーケンスを識別するとき
、システムは、互換性のある型をサポートするルーチンをチェックすることがで
きる。ルーチンのシーケンスが識別されたとき、システムはシーケンスの識別を
キャッシュして、ソース型のデータがターゲット型に変換されるときにこのシー
ケンスの識別を容易にする。システムは、ルーチンのシーケンスを他のコンピュ
ータシステムから発見するための機構も使用する。これらの他のコンピュータシ
ステムは、様々なルーチンのシーケンスをブロードキャストすることができ、こ
れらが受信側のコンピュータシステムで格納される。ユーザは、スイッチボード
機構を使用して、あるソース型のデータを、ブロードキャストされたシーケンス
の1つに向けて送ることができる。この、データをあるソースに向けて送ること
により、あるコンピュータシステムから、別のコンピュータシステム上のデバイ
スまたはルーチンへの、データのルーティングを実施する。
【0006】 (詳細な説明) あるフォーマットのデータを別のフォーマットのデータにマッピングするため
の方法およびシステムを提供する。一実施形態におけるシステムは、(1)ソー
スフォーマットのデータをターゲットフォーマットに変換するための、ルーチン
のシーケンスを動的に識別するための変換システム、および、(2)ソースフォ
ーマットのデータをターゲットフォーマットに変換するため、かつ、データをル
ーティングするための、変換ルーチンのシーケンスを指定するためのスイッチボ
ードコンポーネントを提供する。システムは、データを、ルーチンのシーケンス
を介してルーティングして、ターゲットフォーマットへのデータの変換を実施し
、あるいは、ターゲット(たとえば、表示デバイスまたはディスク)へのデータ
のルーティングを実施する。スイッチボードコンポーネントにより、ユーザは、
変換システムのキャッシング機構を使用して、あるソースフォーマットのデータ
をターゲットに向けて送ることができる。ユーザがこのソースフォーマットのデ
ータをターゲットにルーティングするように指示したとき、システムは、ルーテ
ィングを実施するために呼び出されるルーチンのシーケンスの指示を、キャッシ
ュに格納する。変換システムがデータをこのフォーマットで処理したとき、これ
は、ルーチンのシーケンスの指示をキャッシュから検索し、次いで、各ルーチン
を呼び出して、データのルーティングを実施する。独立して開発された変換ルー
チンの使用を容易にするため、変換システムは、データフォーマットを命名する
ためのエイリアシングスキームを使用する。変換システムにより、複数のデータ
フォーマットを、互いに互換性があるものとして指定することができる。このよ
うにして、たとえ異なる命名規則が、変換ルーチンの異なる開発者によって使用
される可能性があるとしても、変換システムは、どのデータフォーマットに互換
性があるかを知るようになる。
【0007】 変換システムは、データをソースフォーマットで入力し、このデータをターゲ
ットフォーマットに変換するために使用することができる一連の変換ルーチンを
識別する。変換システムは、ソースフォーマットのデータが受信されたとき、変
換ルーチンを動的に識別する。ソースフォーマットのデータを受信するドライバ
(たとえば、イーサネット(登録商標)ドライバ)は、第1の変換ルーチンを識
別し、次いで、この第1の変換ルーチンを呼び出して、ソースフォーマットのデ
ータを渡す。変換ルーチンは、データを出力フォーマットに変換し、変換システ
ムの転送コンポーネントに通知する。転送コンポーネントは、以前の知識を有し
ていることによって、あるいは、変換ルーチンからの通知を受信することによっ
て、ターゲットフォーマットを知ることができ、あるいは、別法として、転送コ
ンポーネントはターゲットフォーマットを知ることができない。転送コンポーネ
ントがターゲットフォーマットを知った場合、これは、1つまたは複数の変換ル
ーチンのシーケンスを識別することができ、これがデータを出力フォーマットで
入力し、データをターゲットフォーマットで出力する。変換システムは、データ
をターゲットフォーマットに変換する変換ルーチンの複数のシーケンスを識別す
ることができる。転送システムがターゲットフォーマットを知らなかった場合、
これは、増分的にシーケンス中の変換ルーチンを識別する。識別された各変換ル
ーチンは、呼び出されたとき、転送コンポーネントにターゲットフォーマットを
通知することができる。転送コンポーネントは、データを出力フォーマットから
別のフォーマットに変換するための、多数の変換ルーチンを識別することができ
る。転送コンポーネントがシーケンスにおける次の変換ルーチンのみを識別する
か、あるいはシーケンスにおける変換ルーチンのすべてまたはいくつかを識別す
るかに関わらず、転送コンポーネントはシーケンスにおける次の変換ルーチンを
呼び出し、変換されたデータを渡す。各変換ルーチンはデータを出力フォーマッ
トから別のフォーマットに変換し、次いで、転送コンポーネントに通知する。変
換ルーチンを識別し、転送コンポーネントに通知するこの処理は、データがター
ゲットフォーマットになるか、あるいは、データを処理するために使用可能な変
換ルーチンがなくなるまで、継続する。
【0008】 図1は、本発明の変換システムの処理を例示するブロック図である。ソースフ
ォーマットのデータが、ドライバ101によって受信される。ドライバは、デー
タを中間フォーマットに変換するか、あるいは、他の処理をデータ上で実行した
後、変換ルーチン102を呼び出すことができる。変換ルーチン102は、デー
タを別の中間フォーマットに変換し、このデータを転送コンポーネント103に
提供する。転送コンポーネントは、変換ルーチン識別コンポーネント104を呼
び出して、中間フォーマットのデータを処理するための変換ルーチンを識別する
。変換ルーチン識別コンポーネントは、多数の変換ルーチンを識別することがで
き、これは、中間フォーマットのデータを入力し、ターゲットフォーマットが分
かっている場合、1つまたは複数の変換ルーチンのシーケンスを識別することが
できる。次いで、転送コンポーネントは、識別された変換ルーチン105を呼び
出し、これが中間フォーマットのデータを入力する。この図では例示しないが、
変換ルーチンの呼び出しの図式はツリーのような構造であり、これは、転送コン
ポーネントが多数の変換ルーチンを呼び出して、ある中間フォーマットを処理す
ることができるからである。この処理は、最終的に変換ルーチン111がデータ
をターゲットフォーマットで出力するまで、繰り返される。
【0009】 変換システムは、あるフォーマットのデータを別のフォーマットに変換するた
めの「エッジ(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)型」とも呼ぶ。
【0010】 変換システムは、メディアマッピングシステムとして実施することもでき、こ
れは、あるメディア型のデータを別のメディア型に変換するためのパスを、動的
に識別する。メディアマッピングシステムは、エイリアシングスキームを使用し
、これにより、異なるプロトコルが、異なる名前を使用して、同じあるいは互換
性のあるメディア型をリファレンスすることができる。たとえば、インターネッ
トプロトコル(「IP」)のデータを処理するためのプロトコルが、メディア型
「IP0x04」のデータを出力することができ、伝送制御プロトコル(「TC
P」)のデータを処理するためのプロトコルが、メディア型「TCP」のデータ
を入力することができる。メディアマッピングシステムの管理者は、「IP0x
04」のメディア型が「TCP」メディア型と互換性を有することを指定するこ
とができる。したがって、「TCP」メディア型を入力するエッジを有するプロ
トコルは、「IP0x04」メディア型のデータを処理することができる。メデ
ィアマッピングシステムはソースメディア型およびターゲットメディア型を受信
したとき、これは、ソースメディア型をターゲットメディア型に変換するための
パスを識別しようと試みる。
【0011】 メディアマッピングシステムは最初に、入力メディア型がソースメディア型と
互換性のあるエッジを有するプロトコルを探索することによって、パスを識別す
る。次いで、メディアマッピングシステムは、その入力メディア型が、最後に見
つかったプロトコルの出力メディア型と互換性のある、エッジを有するプロトコ
ルを探索する。この処理は、ターゲットメディア型を出力するエッジを有するプ
ロトコルが見つかるまで、繰り返される。このプロトコルのエッジのシーケンス
が、パスを形成する。メディアマッピングシステムは、パスのアドレスをキャッ
シュして、次回にデータがソースメディア型からそのターゲットメディア型に変
換されるとき、プロトコルを探索することなく、このパスをキャッシュにおける
情報から高速に識別することができるようにする。メディアマッピングシステム
は、キャッシュされたパスのアドレスを使用して、事前に構成されるパス、ある
いは、スイッチボードコンポーネントを使用するユーザによって指定されるパス
に基づいて、データを変換かつルーティングすることもできる。
【0012】 図3は、メディアマッピングシステムのコンポーネントを例示するブロック図
である。変換システムは、コンピュータシステム上で動作することができ、これ
は、中央処理装置301、I/Oデバイス302およびメモリ303を有する。
メディアマッピングシステムは、変換ルーチンを識別するメディアマップ取得コ
ンポーネント304、プロトコル305と呼ばれる変換ルーチン、転送コンポー
ネント306、メディアクラスデータ307、メディアデータ308、スイッチ
ボードコンポーネント309、およびターゲット登録コンポーネント310を含
む。メディアクラスデータおよびメディアデータについて、以下に説明する。ス
イッチボードコンポーネントが使用されて、あるメディア型のデータがあるター
ゲットデバイスにルーティングされる。ターゲット登録コンポーネントが使用さ
れて、データについて可能なターゲットデバイスが登録される。ルーチンを探索
することによって、パスを別のコンピュータから受信することによって、あるい
は別の手段によって、パスを識別する処理を、「パスの発見」と呼ぶ。メディア
マッピングシステムを、命令として、ディスクドライブまたはメモリなどのコン
ピュータ可読媒体上に格納することができる。メディアマッピングシステムのデ
ータ構造も、コンピュータ可読媒体上に格納することができる。I/Oデバイス
は、インターネット接続、テレビなどの様々な出力デバイスへの接続、および、
テレビ受信器などの様々な入力デバイスへの接続を含むことができる。
【0013】 変換システムを、ルーティングシステムと共に使用して、あるフォーマットで
生成されたデータを、あるデバイスにルーティングすることができる。たとえば
、あるコンピュータシステム上でプログラムによってビットマップフォーマット
で生成されたデータを、別のコンピュータのディスプレイにルーティングするこ
とができる。ルーティングシステムは、スイッチボードコンポーネントを提供す
ることができ、これを介して、ユーザはあるフォーマットのデータをあるターゲ
ット(たとえば、デバイスまたはプログラム)にルーティングすることができる
。以下でより詳細に説明するように、スイッチボードコンポーネントは、コンピ
ュータシステムによって生成するか、あるいはそれによって受信することができ
るソースフォーマットのリスト、および、可能なターゲットのリストを提供する
。ユーザは、スイッチボードコンポーネントを使用して、あるソースフォーマッ
トのデータがあるターゲットまたは多数のターゲットにルーティングされること
を指定することができる。次いで、ルーティングシステムは適切なデータ構造を
セットアップして、データがターゲットにルーティングされるようにする。一実
施形態では、ルーティングシステムがパスのアドレスを使用して、データのルー
ティングを実施するルーチンを識別する。ルーティングシステムは、アドレスを
変換システムのキャッシュに格納し、変換システムがパスに基づいた形式のデー
タをルーティングすることができるようにする。
【0014】 図4〜6は、メディアマッピングシステムによって使用されるデータ構造を例
示するブロック図である。図4は、メディアクラスおよびメディアの編成を例示
するブロック図である。各メディアクラス401は、メディアクラス型、エイリ
アステーブル、プロトコルリスト、および、メディアクラスによってサポートさ
れた様々な関数へのリファレンスを含むオブジェクトである。各メディアクラス
は、関連付けられたメディア402〜405を有する。各メディアは、そのメデ
ィアクラス、メディアキャッシュおよびメディア型へのリファレンスを含むオブ
ジェクトである。
【0015】 図5は、メディアクラスおよびメディア内のデータ構造を例示するブロック図
である。メディアクラスはエイリアステーブル501およびプロトコルリスト5
02を含む。エイリアステーブルは、エイリアスが登録されているメディアクラ
ス内の各メディア型についての、エイリアスエントリを含む。各エイリアスエン
トリは、メディア型について登録されたメディアを含む。プロトコルリストは、
各プロトコルについてのプロトコルエントリを含み、メディアクラス内のメディ
ア型を入力するエッジを有する。プロトコルエントリは、そのプロトコルについ
てのプロトコルオブジェクトへのリファレンスを含む。メディアは、メディアキ
ャッシュ503を含む。メディアマッピングシステムがメディアキャッシュを使
用して、メディアのメディア型からターゲットメディア型へのパスのアドレスを
キャッシュする。各キャッシュエントリは、登録されたターゲットメディアへの
リファレンス、および、そのメディア型から、すでに識別されているターゲット
メディア型へのパスのアドレスを含む。
【0016】 変換システムは様々なメディアのキャッシュを使用し、パスを効率的に識別す
ることができるようにし、データを、静的なルーティング情報、および、ユーザ
によって指定することができる動的なルーティング情報に従って、ルーティング
することができるようにする。ある出力フォーマットのデータを処理するための
パスを識別するとき、変換システムは最初に、変換されるデータのメディア型を
指定するメディアのキャッシュをチェックする。キャッシュが、ターゲットメデ
ィア型についてのエントリを含んでいた場合、変換システムはこのエントリを検
索し、このエントリにおけるアドレスによって識別されたパスに従って、データ
を変換する。このメディアのキャッシュが、ターゲットメディア型についてのエ
ントリを有していなかった場合、変換システムは、そのメディア型についてのエ
イリアステーブルエントリにおいて、登録されたメディアについてのキャッシュ
をチェックする。エイリアステーブルが、ターゲットメディア型についてのエン
トリを有する、このような登録されたメディアを含んでいた場合、変換システム
はデータを、アドレスがそのエントリに格納されているパスに従って変換する。
変換システムは、メディアのキャッシュを使用して、動的に識別されるパスを識
別し、登録されたメディアを使用して、静的に識別することができるパス、スイ
ッチボードコンポーネントを使用して識別することができるパスを識別する。
【0017】 図6は、プロトコルオブジェクトのブロック図である。プロトコルオブジェク
トは、そのプロトコルによってサポートされたエッジのリスト601を含む。リ
ストにおける各エントリは、エッジオブジェクト602へのポインタを含む。エ
ッジオブジェクトは、エッジの入力メディア型のための入力メディア、および、
エッジの出力メディア型のための出力メディア、および、エッジのためのハンド
ラへのポインタを含む。
【0018】 図7は、メディアマップ取得ルーチンの概要の流れ図である。このルーチンに
は、出力メディア型を有する出力メディア、および、ターゲットメディア型を有
するターゲットメディアが渡され、出力メディア型をアドレスリストにおけるタ
ーゲットメディア型にマップするパスのアドレスを返す。ステップ701で、ル
ーチンは、出力メディアのメディアキャッシュをチェックして、出力メディア型
からターゲットメディアへのパスのアドレスがすでにキャッシュされているかど
うかを決定する。このようなアドレスがキャッシュされていた場合、ルーチンは
この時点でこれらのパスのアドレスを返す。ステップ702で、ルーチンは、登
録されたメディアのメディアキャッシュを、出力メディア型についてチェックし
て、このようなパスのアドレスがすでにキャッシュされているかどうかを判定す
る。メディア型について登録されたメディアは、このメディア型のメディアクラ
スに対するエイリアステーブルのエントリに格納される。このようなアドレスが
キャッシュされていた場合、ルーチンはこの時点でこれらのパスのアドレスを返
す。ステップ703で、ルーチンは、出力メディア型のエイリアスである、登録
された各メディアのメディアキャッシュをチェックして、キャッシュがいずれか
のこのようなパスを含んでいるかどうかを判定する。このようなアドレスがキャ
ッシュされていた場合、ルーチンはこの時点でこれらのアドレスを返す。ステッ
プ704で、ルーチンはプロトコルを探索して、出力メディア型をターゲットメ
ディア型にマップするためのパスを識別する。いずれかのこのようなアドレスが
見つかった場合、ルーチンはこの時点でこれらのパスのアドレスを返す。ステッ
プ705で、ルーチンはプロトコルを探索して、出力メディア型のエイリアスを
ターゲットメディア型にマップするパスを識別する。次いで、ルーチンは、いず
れかのこのようなパスのアドレスを返す。
【0019】 図8は、メディアマップ取得ルーチンの例示的実施形態の流れ図である。この
ルーチンには、出力メディア、ターゲットメディア、アドレス、およびアドレス
リストが渡される。このルーチンは、出力メディアの出力メディア型をターゲッ
トメディアのターゲットメディア型にマップするために使用することができるプ
ロトコルエッジのパスを識別する。このルーチンは、アドレスリスト中のこれら
のパスのアドレスを返す。このルーチンは、任意のこのようなパスのアドレスが
キャッシュされているかどうかをまずチェックし、キャッシュされている場合は
そのアドレスと共にリターンする。キャッシュされていない場合、ルーチンは、
出力メディア型からターゲットメディア型へのパスを識別するためにプロトコル
をサーチする。ルーチンは、任意のそのようなパスを識別した場合、アドレスリ
スト中のそのパスのアドレスを返す。ルーチンは、出力メディア型からターゲッ
トメディア型へのパスを発見しなかった場合、出力メディア型のエイリアスメデ
ィアからターゲットメディア型へのパスを識別するためにプロトコルをサーチす
る。ルーチンは、アドレスリスト中の任意のそのようなパスのアドレスを返す。
このルーチンは、そのパスに対してプロトコルの深さ優先探索(縦型探索)を実
行するために反復的に呼び出される。エッジが出力メディア型にマップする入力
メディア型を有すると判明すると、そのエッジの出力メディア型からパスを見つ
けるためにこのルーチンが反復的に呼び出される。アドレスがこの反復的な呼出
しから返されるとき、ルーチンは、返されたアドレスの始まりにエッジを追加し
て、パスを延長する。ルーチンは、渡されたアドレスパラメータを使用してパス
内のループを検出する。リターン前に、ルーチンは、次にその出力メディアがこ
のルーチンに渡されたときに、このパスを即座に識別することができるように出
力メディア中のパスをキャッシュする。ステップ801で、ルーチンは出力メデ
ィア、ターゲットメディア、およびアドレスリストを渡しながら、メディアキャ
ッシュチェックルーチンを呼び出す。メディアキャッシュチェックルーチンは、
出力メディア型からターゲットメディア型へのパスが、出力メディアのメディア
キャッシュ内にキャッシュされているかどうかをチェックする。キャッシュされ
ている場合、ルーチンはアドレスリスト中の任意のそのようなアドレスを返す。
ステップ802で返されたアドレスリストがNULLである場合、ルーチンはステッ
プ803で継続し、NULLでない場合、ルーチンはリターンする。ステップ803
で、ルーチンは出力メディア、ターゲットメディア、およびアドレスリストを渡
しながら、エイリアステーブルチェックルーチンを呼び出す。エイリアステーブ
ルチェックルーチンは、出力メディア型またはエイリアスメディア型からターゲ
ットメディア型へのパスが出力メディア型の被登録メディアまたはエイリアス出
力メディア型の任意の登録されたエイリアスメディアにキャッシュされているか
どうかを判定する。キャッシュされている場合、ルーチンは任意のそのような返
されたパスのアドレスを返す。ステップ804で、返されたアドレスリストがNU
LLである場合、ルーチンはステップ805で継続し、そうでなければルーチンは
リターンする。ステップ805で、ルーチンは、出力メディア、ターゲットメデ
ィア、アドレス、およびアドレスリストを渡しながら、エッジスペースサーチル
ーチンを呼び出す。エッジスペースサーチルーチンは、出力メディア型からター
ゲットメディア型へのパスに対するプロトコルエッジをサーチする。ステップ8
06で、返されたアドレスリストがNULLである場合、ルーチンはステップ807
で継続し、そうでなければルーチンはリターンする。ステップ807〜810で
、ルーチンは、出力メディア型の各エイリアスメディア型の選択と、選択された
エイリアスメディア型からターゲットメディア型へのパスに対するプロトコルエ
ッジのサーチとをループする。ステップ807で、ルーチンは、出力メディアを
渡しながら、エイリアスルックアップルーチンを呼び出す。エイリアスルックア
ップルーチンは、エイリアスメディアのリストを返す。ステップ808で、ルー
チンは返されたエイリアスリスト中の次のエイリアスメディアを選択する。ステ
ップ809で、エイリアスリスト中のすべてのエイリアスメディアが既に選択済
みである場合、ルーチンはリターンし、そうでなければ、ルーチンはステップ8
10で継続する。ステップ810で、ルーチンは、選択されたエイリアスメディ
ア、ターゲットメディア、アドレス、およびアドレスリストを渡しながら、エッ
ジスペースサーチルーチンを呼び出す。ルーチンは、次いでステップ808にル
ープして、次のエイリアスメディアを選択する。
【0020】 図9は、メディアキャッシュチェックルーチンの例示的実施形態の流れ図であ
る。このルーチンには、メディア、ターゲットメディア、およびアドレスリスト
が渡される。このルーチンは、渡されたメディアのためのメディアキャッシュを
チェックして、ターゲットメディアに一致するエントリがあるかどうかを確かめ
る。そのようなエントリが見つかった場合、ルーチンはアドレスリスト中のエン
トリのアドレスを返す。ステップ901で、ルーチンは、渡されたメディアのメ
ディアキャッシュ中の次のエントリを、1番目から始めて、選択する。ステップ
902で、メディアキャッシュ中のすべてのエントリが既に選択済みである場合
、ルーチンはリターンし、そうでなければ、ルーチンはステップ903で継続す
る。ステップ903で、選択されたエントリのターゲットメディア型が、渡され
たターゲットメディア型に等しい場合、ルーチンはアドレスリスト中のエントリ
のアドレスを返し、そうでなければ、ルーチンはステップ901にループして、
渡されたメディアのメディアキャッシュ中の次のエントリを選択する。
【0021】 図10は、エイリアステーブルチェックルーチンの例示的実施形態の流れ図で
ある。このルーチンには、出力メディア、ターゲットメディア、およびアドレス
リストが渡される。ルーチンは、まず出力メディア型からターゲットメディア型
へのパスのアドレスがエイリアステーブルの出力メディア型の被登録メディアに
キャッシュされているかどうかをチェックする。そのようなアドレスがキャッシ
ュされていない場合、このルーチンは、エイリアスメディア型からターゲットメ
ディア型へのパスのアドレスがキャッシュされているかどうかを判定するために
、エイリアステーブル中の出力メディア型の各エイリアスメディアのメディアキ
ャッシュをチェックする。ステップ1001で、ルーチンは、出力メディアを渡
し、出力メディア型に対応するエイリアステーブルのエイリアスエントリを受け
取る。エイリアスルックアップルーチンを呼び出して、ステップ1002で、ル
ーチンは、エイリアスエントリの被登録メディア、ターゲットメディア、および
アドレスリストを渡しながら、メディアキャッシュチェックルーチンを呼び出す
。ステップ1003で、返されたアドレスリストがNULLである場合、ルーチンは
ステップ1004で継続し、そうでなければ、ルーチンはリターンする。ステッ
プ1004〜1007で、ルーチンは、エイリアスエントリのエイリアスリスト
中のエイリアスメディアへの各リファレンスの選択と、ターゲットメディア型へ
のパスのアドレスがキャッシュされているかどうかのチェックとをループする。
ステップ1004で、ルーチンはエイリアスリスト中のエイリアスメディアへの
次のリファレンスを選択する。ステップ1005で、エイリアスリスト中のエイ
リアスメディアへのすべてのリファレンスが選択済みである場合、ルーチンはリ
ターンし、そうでなければ、ルーチンはそのステップ1006を継続する。ステ
ップ1007で、ルーチンは、リファレンスされるエイリアスメディア、ターゲ
ットメディア、および新しいアドレスリストを渡しながら、メディアキャッシュ
チェックルーチンを呼び出す。ステップ1007で、ルーチンは渡されたアドレ
スリストに新しいアドレスリストのアドレスを追加し、その結果、返されたアド
レスリストは、すべてのエイリアスメディア型に対するキャッシュされたアドレ
スを含むことになる。ルーチンは、次いでステップ1004にループして、次の
エイリアスメディアを選択する。
【0022】 図11は、エイリアスルックアップルーチンの例示的実施形態の流れ図である
。このルーチンにはメディアが渡され、ルーチンはエイリアステーブルからその
メディア型に対するエイリアスエントリを返す。ルーチンは、渡されたメディア
のメディアクラスがあるかどうかエイリアステーブルをチェックする。ステップ
1101で、ルーチンは、渡されたメディアに対するメディアクラスを取り出す
。ステップ1102で、ルーチンは、渡されたメディアのメディア型と一致する
取り出されたメディアクラスのエイリアステーブル中にエイリアスエントリがあ
るかどうかサーチする。ステップ1103で、ルーチンは見つかったエイリアス
エントリを取り出す。ルーチンは取り出されたエイリアスエントリを返す。
【0023】 図12は、エッジスペースサーチルーチンの例示的実施形態の流れ図である。
このルーチンは出力メディア型からターゲットメディア型へのパスを識別し、ア
ドレスリスト中のそのパスのアドレスを返す。プロトコルが出力メディア型を入
力するエッジを有する場合、そのエッジの出力メディア型からターゲットメディ
ア型へのパスのアドレスを見つけるために、ルーチンは反復的にメディアマップ
取得ルーチンを呼び出す。ルーチンは、次いで、返されたアドレスのそれぞれを
出力メディア型からターゲットメディア型へのパスを形成するためにそのエッジ
に連結する。このルーチンがパスの終端に達し、ターゲットメディアが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にループして、選択されたプロ
トコルの次のエッジを選択する。
【0024】 図13は、プロトコルのための例示的ハンドラの流れ図である。この例示的ハ
ンドラは、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パケットを転送する。ハンドラは次いで戻る。
【0025】 図14は、転送コンポーネントの例示的実施形態の流れ図である。このルーチ
ンには、パケットと、パケットを処理中のパスのハンドルが渡される。このルー
チンは、そのパケットを処理することができるパスを識別し、各パス上を送信さ
れるパケットを処理するためのスレッドを生成することによってパスを生成し、
そのパケットを各スレッドのキューに追加する。ステップ1401で、ルーチン
はそのパスに対する出力メディアを取り出す。ステップ1402で、ルーチンは
そのパスに対するターゲットメディアを取り出す。ステップ1403で、ルーチ
ンは変数アドレスを空にセットする。ステップ1404で、ルーチンは、出力メ
ディア、ターゲットメディア、およびアドレスを渡しながら、メディアマップ取
得ルーチンを呼び出す。ルーチンは、出力メディア型からターゲットメディア型
へのパスのアドレスのアドレスリストを受け取る。ステップ1405〜1409
で、ルーチンはアドレスリスト中のアドレスに対するパスの生成と、各パスに対
するキューへのパケットの追加をループする。ステップ1405で、ルーチンは
次のアドレスリストを選択する。ステップ1406で、アドレスリスト中のすべ
てのアドレスが既に選択済みである場合、ルーチンはリターンし、そうでなけれ
ば、ルーチンはステップ1407で継続する。ステップ1407で、選択された
アドレスのパスが既に生成済みである場合、ルーチンはステップ1405で継続
し、そうでなければ、ルーチンはステップ1408で継続する。ステップ140
8で、ルーチンは選択されたアドレスに対するパスを生成する。ステップ140
9で、ルーチンは、選択されたアドレスのパスに対するキューにパケットを追加
し、次いでステップ1405にループして、そのアドレスリスト中の次のアドレ
スを選択する。
【0026】 図15は、メディアマッピングシステムを構成するためのルーチンの流れ図で
ある。このルーチンは、メディアマッピングシステムを初期化するために呼びだ
される。ルーチンはメディアクラスを生成し、プロトコルをロードし、エイリア
ステーブルを初期化する。この情報は、初期化後、動的に変更される場合がある
。具体的には、新しいメディアクラス、エイリアス、およびプロトコルは追加お
よび除去することができる。ステップ1501で、ルーチンはディスクドライブ
などの永続記憶装置から構成情報をロードする。構成情報には、メディアクラス
、メディア、メディアエイリアスマッピング、プロトコルなどの記述が含まれる
。ステップ1502で、ルーチンは、構成情報で指定された各メディアクラスに
対するメディアクラスオブジェクトをインスタンス生成する。ステップ1503
で、ルーチンは、構成情報で指定された各プロトコルをロードする。各プロトコ
ルはダイナミックリンクライブラリに格納されている。ダイナミックリンクライ
ブラリがロードされるとき、そのプロトコルのための初期化ルーチンが呼び出さ
れる。この初期化ルーチンはプロトコルを適切なメディアクラスのプロトコルリ
ストに追加する。ステップ1504で、エイリアスメディア型の各ペアに対して
、ルーチンは、対の第1メディア型に対するエイリアステーブルエントリに、ペ
アの第2メディア型に対する被登録メディアオブジェクトへのポインタを格納す
る。被登録メディアが生成され、適切であるとしてエイリアステーブルに追加さ
れる。ステップ1505で、ルーチンは、被登録メディアのキャッシュ中にキャ
ッシュされるべきパスを格納する。ルーチンは次いでリターンする。
【0027】 図16は、プロトコル初期化ルーチンの例示的実施形態の流れ図である。一実
施形態では、ルーチンはプロトコルに対するコードを含むダイナミックリンクラ
イブラリに格納されている。ダイナミックリンクライブラリがロードされるとき
、このルーチンが自動的に呼び出される。このルーチンは、プロトコルの登録お
よび初期化を実行する。ステップ1601で、ルーチンは、プロトコルがパスに
含められるように、そのプロトコルを登録する。ルーチンは、プロトコルの各エ
ッジの入力メディア型のメディアクラスのプロトコルリストにプロトコルオブジ
ェクトへのリファレンスを追加することによって、プロトコルを登録する。ステ
ップ1602で、ルーチンは、プロトコルが使用する任意のカスタムメディア型
を登録する。ルーチンは、カスタムメディア型のためのメディアクラスがまだ存
在しない場合は、それを生成することによってカスタムメディア型を登録する。
次いでルーチンは、そのカスタムメディア型に対する被登録メディアを生成し、
それをメディアクラスのエイリアステーブルに追加する。ルーチンは、キャッシ
ュをパスで事前充填するために被登録メディアのメディアキャッシュにパスのア
ドレスを追加することもできる。次いでこのルーチンは戻る。
【0028】 図17は、メディアクラスのデータ構造を示す図である。エイリアステーブル
1701は、メディアクラス中の各メディアに対する被登録メディアと、エイリ
アスメディアへのマッピングとを含む。例えば、メディア型D13に対応する被
登録メディアはエントリ1701aに格納される。このエントリはまた、メディ
ア型D13がメディア型D15にマップするということを示す。プロトコルリス
ト1702は、このメディアクラスに対して5つのプロトコルが登録済みである
ということを示す。これはすなわち、これらのプロトコルのそれぞれが、このメ
ディアクラスのメディア型を入力するエッジを有するということである。エイリ
アステーブル1703とプロトコルリスト1704は、第2メディアクラスに関
する情報を含む。メディアオブジェクトD1のメディアキャッシュ1705は、
メディア型D11およびD15にメディア型D1をマップするパスのアドレスを
含む。
【0029】 図18は、プロトコルおよびそのプロトコルを通過する様々なパスを示す図で
ある。メディアマッピングシステムは、データ型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に対
するエイリアスであったことを判定した。
【0030】 図19は、パス処理ルーチンの例示的実施形態の流れ図である。パス処理ルー
チンは、スレッドとして実行し、そのパスに対するキューからデータを取り出し
、そのパスに関連付けられたハンドラを呼び出す。各パスは、このルーチンを実
行するそのルーチン独自のスレッドを有する。どの時点においてもハンドラがデ
ータを返さない場合、パス処理ルーチンは、キューから最後に取り出されたその
データの処理を停止し、処理されるべき次のデータがあるかどうかそのキューを
チェックする。パスの最終ハンドラからデータが返される場合、パス処理ルーチ
ンは、さらに処理されることができるようにデータを転送する。ステップ190
1で、ルーチンは、パスに対するキューをポップして、キューからデータを取り
出す。ステップ1902〜1905で、ルーチンは、パスの各エッジの選択と、
そのエッジのハンドラの呼出しとをループする。ステップ1902で、ルーチン
はパスの次のエッジを選択する。ステップ1903で、ルーチンは、出力データ
を渡して、選択されたエッジのハンドラを呼び出し、代わりに新しい出力データ
を受取る。ステップ1904で、新しい出力データが返されないか、あるいはす
べてのエッジが既に選択済みである場合、ルーチンはステップ1906で継続し
、そうでなければ、ルーチンはステップ1905で継続する。ステップ1905
で、ルーチンは現在の出力データを新しい出力データにセットし、ステップ19
02にループして、パスの次のエッジに対するハンドラを選択する。ステップ1
906で、新しい出力データが返されない場合、ルーチンはステップ1901に
ループして、キューの次のデータを処理し、そうでなければ、ルーチンはステッ
プ1907で継続する。ステップ1907で、ルーチンは、新しい出力データを
渡しながら転送APIルーチンを呼び出し、その結果、出力データはさらに処理
されることができる。次いでルーチンは、ステップ1901にループして、キュ
ーの次のデータを処理する。
【0031】 図20は、メディアマッピングシステムのスイッチボードコンポーネントを示
すブロック図である。テーブル2001は、メディアマッピングシステムがサポ
ートする現在のメディア型の表示を図示している。この例では、サポートされる
メディア型はJIF、JPEG、AVIおよびMICである。テーブル2002
は、様々なメディア型のデータをルーティングすることができるターゲットを列
挙する。これらのターゲットには、マシン10、マシン10のスピーカ、および
マシン11が含まれる。ある種のメディア型のデータがある種のターゲットにル
ーティングされるように指示するためには、ユーザはメディア型(例えば「MI
C」)と対応するターゲット(例えば、「マシン10:スピーカ」)とを選択す
る。スイッチボードコンポーネントは、表示されるターゲットを、選択されたデ
ータ形式に対して理に適うものだけに限定することができる。例えば、オーディ
オデータをスピーカにルーティングすることは理に適っているが、オーディオデ
ータをディスプレイにルーティングすることは理に適っていない。ある種のメデ
ィア型のデータのルーティングを達成するには、スイッチボードコンポーネント
は、そのメディア型に対して被登録メディアのキャッシュの中に、そのルーティ
ングを達成するパスのアドレスを格納する。そのメディア型のデータが次に処理
されるとき、変換システムはキャッシュされたパスに関連付けられたデータをル
ーティングする。
【0032】 図21は、スイッチボードコンポーネントをサポートするためのデータ構造を
示すブロック図である。そのスイッチボードコンポーネントに対する様々なター
ゲットは、「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メディア型のデータが処理されるとき、メディアマ
ッピングシステムは、この被登録メディアからパスを取り出し、そのパスに沿っ
てデータを送る。
【0033】 一実施形態において、メディアマッピングシステムはデータ自体からターゲッ
トを導出することができる。例えば、データが電話を対象とする音声データであ
る場合、その音声データを処理するハンドラは、呼び出される人物の名前のよう
な音声データの最初の言葉を認識することができる。ハンドラは電子電話帳から
その人物の電話番号を取り出し、次いでその電話番号を音声データに含めること
で、ハンドラはが適切な電話番号にダイヤルすることができる。あるいは、ハン
ドラは、音声データをその人物にルーティングするための、ProxiWorl
dメディアクラス内でキャッシュに格納することができる、パスを取り出すこと
ができる。
【0034】 前述のように、変換システムは、パスを様々なメディア内にローカルにキャッ
シュすることができる。あるパスがローカルにメディア内にキャッシュされてい
る場合、ユーザが、そのメディア型のデータを別のターゲットにルーティングす
るためにスイッチボードコンポーネントを使用するとき、そのメディアのキャッ
シュは期限切れになっているだろう。一実施形態では、変換システムはメディア
のキャッシュ内に、そのメディア型に対して被登録メディアへのポインタを格納
することができる。したがって、そのメディア型のデータを新しいターゲットに
ルーティングするために、スイッチボードコンポーネントが使用されるとき、変
換システムはポインタを使用して、現在のパスを取り出すことができる。また、
パスの一部だけが期限切れになる状況もある。例えば、エッジ空間をサーチする
ことによってパスの最初の2つのエッジが見つかり、パスの最後の部分がPro
xiWorldクラスで見つかる場合、ProxiWorldクラスにおける変
更はキャッシュされるパスの終端を無効にする。変換システムは、そのキャッシ
ュされたデータが無効であることを示すために、様々なフラグを格納することが
できる。例えば、変換システムは、そのメディアクラスの被登録メディアの1つ
のキャッシュが更新されるときはいつでも更新される、各メディアクラスに対す
るタイムスタンプを維持することができる。各メディアは、そのキャッシュが最
後に更新されたときのタイムスタンプを有することもできる。メディアクラスの
タイムスタンプが、メディアのタイムスタンプよりも後の場合、メディアの中の
キャッシュは期限切れである場合がある。あるいは、タイムスタンプは、メディ
アクラスに対して1つのタイムスタンプだけを有するのではなく、各被登録メデ
ィアの中に格納することもできる。
【0035】 図22は、ターゲットメッセージ処理ルーチンの例示的実施形態の流れ図であ
る。このルーチンは、ターゲットを登録すべきか、それとも登録解除すべきかを
判定するためにネットワークの監視をループする。ルーチンは、ProxiWo
rldメディアクラスに対するエイリアステーブルが適切になるように調整する
。ステップ2201で、ルーチンは、ネットワーク上を送信されるべきメッセー
ジを待つ。ステップ2201で、メッセージがターゲットを登録するよう指示す
る場合、ルーチンはステップ2203で継続し、そうでなければ、ルーチンはス
テップ2204で継続する。ステップ2203で、ルーチンはターゲット登録ル
ーチンを呼び出し、ステップ2201にループして、次のメッセージを待つ。ス
テップ2204では、メッセージがターゲットを登録解除することである場合、
ルーチンはステップ2205で継続し、そうでなければ、ルーチンはステップ2
202にループして、次のメッセージを待つ。ステップ2205で、ルーチンは
ターゲット登録解除ルーチンを呼び出し、次いでステップ2201にループして
、次のメッセージを待つ。
【0036】 図23は、ターゲット登録ルーチンの例示的実施形態の流れ図である。このル
ーチンには、ターゲットのクラス名を示すメッセージと、ターゲットへのパスと
が渡される。ステップ2301で、ルーチンはその渡されたメッセージに基づい
てメディアを生成する。ステップ2302で、ルーチンはProxiWorld
メディアクラスのエイリアステーブルにエントリを追加する。ステップ2303
で、ルーチンは、追加されたエントリに生成されたメディアを、そのメディア型
に対する被登録メディアとして追加する。ルーチンは次いでリターンする。
【0037】 図24は、ターゲット登録解除ルーチンの例示的実施形態の流れ図である。こ
のルーチンには、ターゲットのメディア型を示すメッセージが渡される。ステッ
プ2401で、ルーチンは、渡されたメディア型に対応するProxiWorl
dに対するエイリアステーブルからエントリを削除する。ルーチンは次いでリタ
ーンする。
【0038】 前述から、本明細書では説明の目的で本発明の特定の実施形態を記述したが、
本発明の趣旨および範囲から逸脱せずに様々な修正形態を実施することが可能で
あることを理解されたい。したがって、本発明は、頭記の特許請求の範囲以外に
よって限定されるものではない。
【図面の簡単な説明】
【図1】 本発明の変換システムの処理を例示するブロック図である。
【図2】 パスを例示するブロック図である。
【図3】 変換システムのコンポーネントを例示するブロック図である。
【図4】 メディアクラスおよびメディアの編成を例示するブロック図である。
【図5】 メディアクラスおよびメディア内のデータ構造を例示するブロック図である。
【図6】 プロトコルオブジェクトのブロック図である。
【図7】 メディアマップ取得ルーチンの概要の流れ図である。
【図8】 メディアマップ取得ルーチンの実施の一例の流れ図である。
【図9】 メディアキャッシュチェックルーチンの実施の一例の流れ図である。
【図10】 エイリアステーブルチェックルーチンの実施の一例の流れ図である。
【図11】 エイリアスルックアップルーチンの実施の一例の流れ図である。
【図12】 エッジスペースサーチルーチンの実施の一例の流れ図である。
【図13】 プロトコルのためのハンドラの一例の流れ図である。
【図14】 転送コンポーネントの実施の一例の流れ図である。
【図15】 メディアマッピングシステムを構成するためのルーチンの流れ図である。
【図16】 プロトコル初期化ルーチンの実施の一例の流れ図である。
【図17】 メディアクラスのデータ構造を例示する図である。
【図18】 プロトコル、および、プロトコルを介した様々なパスを例示する図である。
【図19】 パス処理ルーチンの実施の一例の流れ図である。
【図20】 メディアマッピングシステムのスイッチボードコンポーネントを例示するブロ
ック図である。
【図21】 スイッチボードコンポーネントをサポートするためのデータ構造を例示するブ
ロック図である。
【図22】 ターゲットメッセージ処理ルーチンの実施の一例の流れ図である。
【図23】 ターゲット登録ルーチンの実施の一例の流れ図である。
【図24】 ターゲット登録解除ルーチンの実施の一例の流れ図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年7月17日(2001.7.17)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GE,GH,G M,HR,HU,ID,IL,IN,IS,JP,KE ,KG,KP,KR,KZ,LC,LK,LR,LS, LT,LU,LV,MD,MG,MK,MN,MW,M X,NO,NZ,PL,PT,RO,RU,SD,SE ,SG,SI,SK,SL,TJ,TM,TR,TT, UA,UG,US,UZ,VN,YU,ZA,ZW (72)発明者 デービッド エス.ウォルフ アメリカ合衆国 98052 ワシントン州 レドモンド ウェスト レイク サンマミ シュ パークウェイ ノースイースト 2925 Fターム(参考) 5B076 BA04 BB17 5B082 GA02 5B089 GB03 KF05 KH02 KH04

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 データを処理するためのルーチンのシーケンスを識別するた
    めの、コンピュータシステムにおける方法であって、該コンピュータシステムは
    複数のルーチンを有し、各ルーチンは、入力型のデータを入力して出力型のデー
    タを出力するためのルーチンであり、 エイリアス型のペアを提供するステップであって、各ペアは出力型および入力
    型を有し、出力型のデータを、入力型を有するデータを入力するルーチンによっ
    て処理することができるステップと、 宛先型に変換されるソース型のデータを受信するステップと、 シーケンスにおける最初のルーチンが、ソース型またはソース型のエイリアス
    型のデータを、提供されたエイリアス型のペアによって指示されるように入力し
    、シーケンスにおける最後のルーチンが、宛先型のデータを出力し、および、シ
    ーケンスにおける各中間ルーチンが、シーケンスにおける先のルーチンの出力型
    のデータ、または、シーケンスにおける先のルーチンの出力型のエイリアス型の
    データを、提供されたエイリアス型のペアによって指示されるように入力するル
    ーチンのシーケンスを識別するステップと を備えたことを含むことを特徴とする方法。
  2. 【請求項2】 ルーチンのシーケンスを識別するステップは、ソースデータ
    型のデータを宛先データ型に変換するためのルーチンのシーケンスが、すでに識
    別されているかどうかを決定するステップと、識別されたシーケンスを使用する
    ステップとを含むことを特徴とする請求項1に記載の方法。
  3. 【請求項3】 識別されたルーチンのシーケンスの指示をキャッシュに格納
    することを含むことを特徴とする請求項1に記載の方法。
  4. 【請求項4】 識別するステップは、キャッシュから、識別されたシーケン
    スの指示を検索するステップを含むことを特徴とする請求項3に記載の方法。
  5. 【請求項5】 出力型のデータをターゲットにルーティングするための、コ
    ンピュータシステムにおける方法であって、 出力型のデータをターゲットにルーティングするためのパスの識別子を提供す
    るステップと、 出力型のデータをターゲットにルーティングするための指示を提供するステッ
    プと、 出力型のデータを受信するステップと、 受信されたデータの出力型を使用して、出力型のデータをターゲットにルーテ
    ィングするための提供された指示を検索するステップと、 検索された指示のターゲットを使用して、ターゲットのための提供されたパス
    の識別子を検索するステップと、 検索されたパスに従ってデータをルーティングするステップと を備えたことを特徴とする方法。
  6. 【請求項6】 パスの識別子を提供するステップは、別のコンピュータシス
    テムからのパスの識別子を受信するステップを含むことを特徴とする請求項5に
    記載の方法。
  7. 【請求項7】 出力型のデータをターゲットにルーティングするための指示
    を提供するステップは、受信されたデータを解析してターゲットを識別するステ
    ップを含むことを特徴とする請求項5に記載の方法。
  8. 【請求項8】 データは音声データであり、解析するステップは、音声デー
    タの所期の受信者を識別するステップを含むことを特徴とする請求項7に記載の
    方法。
  9. 【請求項9】 出力型のデータをターゲットにルーティングするための指示
    を提供するステップは、出力型およびターゲットの選択をユーザから受信するス
    テップを含むことを特徴とする請求項5に記載の方法。
  10. 【請求項10】 出力型のデータをターゲットにルーティングするための指
    示を提供するステップは、出力型のリストおよび可能なターゲットのリストをユ
    ーザに表示するステップを含むことを特徴とする請求項5に記載の方法。
  11. 【請求項11】 ソース型のデータをターゲット型に変換するためのルーチ
    ンのシーケンスを判定するための、コンピュータシステムにおける方法であって
    、 複数のルーチンを提供するステップであって、各ルーチンは入力型および出力
    型を有するステップと、 シーケンスの1つまたは複数のルーチンを識別するステップであって、シーケ
    ンスにおける各ルーチンの出力型がシーケンスにおける次のルーチンの入力型と
    互換性を有し、シーケンスにおける最初のルーチンの入力型はソース型と互換性
    を有し、シーケンスにおける最後のルーチンの入力型は出力型と互換性を有する
    ステップと を備えたことを特徴とする方法。
  12. 【請求項12】 識別されたルーチンの指示をキャッシュするステップと、
    後にシーケンスを判定する時にキャッシュをチェックするステップとを含むこと
    を特徴とする請求項11に記載の方法。
  13. 【請求項13】 識別することを迂回できるように、キャッシュにルーチン
    のシーケンスの指示を準備するステップを含むことを特徴とする請求項12に記
    載の方法。
  14. 【請求項14】 データを処理するためのコンピュータシステムであって、 入力型のデータを出力型に処理するための1組のルーチンと、 ソース型の指示を受信し、データをターゲット型に処理するためのルーチンの
    シーケンスを識別する、サーチコンポーネントと、 ソース型のデータをターゲットにルーティングするためのルーチンのシーケン
    スの識別を受信する、ルーティングコンポーネントと、 ソース型の指示を受信し、ソース型のデータを処理するための、識別されたル
    ーチンのシーケンスを選択する、処理コンポーネントと を備えたことを特徴とするコンピュータシステム。
  15. 【請求項15】 多数のシーケンスがソース型について選択されることを特
    徴とする請求項14に記載のコンピュータシステム。
  16. 【請求項16】 ルーティングコンポーネントは、シーケンスの識別を受信
    するターゲット受信コンポーネントを含むことを特徴とする請求項14に記載の
    コンピュータシステム。
  17. 【請求項17】 ルーティングコンポーネントは、あるソース型のデータが
    ターゲットにルーティングされることを指定するためのユーザインタフェースを
    含むことを特徴とする請求項14に記載のコンピュータシステム。
  18. 【請求項18】 ターゲットはルーチンであることを特徴とする請求項17
    に記載のコンピュータシステム。
JP2000615923A 1999-05-04 1999-05-04 データの型の間のマッピングを生成するための方法およびシステム Pending JP2002543527A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010500519A (ja) * 2006-08-14 2010-01-07 エボニック デグサ ゲーエムベーハー 導管用の内張り材としてのポリアミド成形材料からなる成形部材の使用

Cited By (1)

* Cited by examiner, † Cited by third party
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