JP5721634B2 - リアルタイムカーネル - Google Patents
リアルタイムカーネル Download PDFInfo
- Publication number
- JP5721634B2 JP5721634B2 JP2011539734A JP2011539734A JP5721634B2 JP 5721634 B2 JP5721634 B2 JP 5721634B2 JP 2011539734 A JP2011539734 A JP 2011539734A JP 2011539734 A JP2011539734 A JP 2011539734A JP 5721634 B2 JP5721634 B2 JP 5721634B2
- Authority
- JP
- Japan
- Prior art keywords
- real
- stream
- time
- virtual area
- plug
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 214
- 238000012545 processing Methods 0.000 claims description 156
- 230000006854 communication Effects 0.000 claims description 120
- 238000004891 communication Methods 0.000 claims description 117
- 230000008569 process Effects 0.000 claims description 101
- 230000004044 response Effects 0.000 claims description 43
- 238000002156 mixing Methods 0.000 claims description 23
- 230000000007 visual effect Effects 0.000 claims description 12
- 230000006399 behavior Effects 0.000 claims description 5
- 230000032258 transport Effects 0.000 description 112
- 239000010902 straw Substances 0.000 description 80
- CDBYLPFSWZWCQE-UHFFFAOYSA-L Sodium Carbonate Chemical compound [Na+].[Na+].[O-]C([O-])=O CDBYLPFSWZWCQE-UHFFFAOYSA-L 0.000 description 73
- 230000006870 function Effects 0.000 description 66
- 238000009877 rendering Methods 0.000 description 46
- 230000003993 interaction Effects 0.000 description 41
- 238000007906 compression Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 31
- 230000006835 compression Effects 0.000 description 29
- 230000033001 locomotion Effects 0.000 description 28
- 238000003860 storage Methods 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 23
- 230000000694 effects Effects 0.000 description 20
- 238000007726 management method Methods 0.000 description 19
- 239000008186 active pharmaceutical agent Substances 0.000 description 18
- 238000013475 authorization Methods 0.000 description 18
- 238000009434 installation Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 16
- 238000012800 visualization Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 12
- 238000013515 script Methods 0.000 description 12
- 230000005236 sound signal Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 230000001404 mediated effect Effects 0.000 description 9
- 241000699666 Mus <mouse, genus> Species 0.000 description 7
- 230000009471 action Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 5
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- PASHVRUKOFIRIK-UHFFFAOYSA-L calcium sulfate dihydrate Chemical compound O.O.[Ca+2].[O-]S([O-])(=O)=O PASHVRUKOFIRIK-UHFFFAOYSA-L 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000036316 preload Effects 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 3
- 102400001284 Vessel dilator Human genes 0.000 description 3
- 101800001899 Vessel dilator Proteins 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008685 targeting Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000009428 plumbing Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 235000015096 spirit Nutrition 0.000 description 2
- 241001328961 Aleiodes compressor Species 0.000 description 1
- 241000586891 Poliaspis media Species 0.000 description 1
- 244000141353 Prunus domestica Species 0.000 description 1
- 108700023290 Stanford University protocol Proteins 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000011796 hollow space material Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000002000 scavenging effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- User Interface Of Digital Computer (AREA)
Description
アバター・ベースのバーチャルリアリティ通信システムに対する関心が、高処理能力と広帯域幅のネットワーク接続とを有したコンピューティングシステムにおける高められた可用性と共に高まってきている。そのようなバーチャルリアリティシステムの主要なゴールは、オーディオ、ビデオ、及びテキストチャットストリームなどのリアルタイムデータストリームを用いて、仮想空間の中で複数ユーザが相互作用(又は交流)し及び伝達(通信)し合うことが可能な該仮想空間を生成することである。該仮想空間は、空間のビジュアルジオメトリを描写するコンピュータグラフィックス仕様(スペック)と、該ビジュアルジオメトリ上にマッピングされる色及びテクスチャと、空間内において如何に巧みに複数ユーザが動かす(又は操作する)かを制御するコリジョン特性と、空間の残響(又は反響;リバーバレイション)及び吸音特性などの聴覚特性とによって、典型的には画定される。
一態様において、本発明は、リモートネットワークノードから、ローカルネットワークノードにおいて、1つか又は複数のストリームハンドリング命令が受け取られるということに従った方法が特徴となる。該1つか又は複数のストリームハンドリング命令は、少なくとも1つのリアルタイムデータストリームを処理するためのストリームハンドラの仕様(スペック)を含む。ローカルネットワークノードにおいて、該仕様に従ってストリームハンドラが作成される。結果データストリーム(結果として生じるデータストリーム)が、ローカルネットワークノードにおいて生成される。このプロセス内において、その生成したストリームハンドラを通じてリアルタイムデータストリームが処理される。
以下の説明では、同様の要素を特定するのに同様の番号が用いられている。更にまた、図面は、例示的な実施形態の主要な特徴を図表の手法で説明するように意図されている。図面は、実際の実施形態の全ての特徴を図示することは意図されておらず、図示された要素の相対的な寸法の全てを図示することも意図されておらず、及び、一定の縮尺に従って描かれていない。
「コンピュータ」は、コンピュータ可読媒体上に一時的にか或いは永続的にかのいずれかの状態で格納されるコンピュータ可読命令に従ってデータを処理する任意の機器か、デバイスか、又は装置である。
本明細書内において記載されている実施形態は、各ネットワークノード上において操作する(又は動作させる)通信者間におけるリアルタイム通信をサポートするリアルタイムカーネルを提供する。該リアルタイムカーネルは、通信者、仮想エリア、及び他のネットワークリソースに接続し、ユーザ入力に応答してこれらの接続をスイッチングし、及び、リアルタイムデータストリームをミキシングする、という複雑なタスクを処理(ハンドル)する。リアルタイムカーネルによって、開発者は、低レベルな、コードを配管すること(plumbing code)の代りに、高レベルの通信機能性を開発することに集中することが可能になる。広範囲の現在利用可能なコンピューティングデバイス及びネットワーク接続を用いて、リアルタイム通信性能が達成され得ることとなるように、リアルタイムカーネルは、比較的低い計算リソース要件を課す。
A.イントロダクション
図1は、ネットワーク18によって相互接続されている第1のクライアントネットワークノード12と第2のクライアントネットワークノード14とエリアサーバネットワークノード16とを含む例示的な仮想エリア通信環境10の一実施形態を示す。第1のクライアントネットワークノード12は、1つか又は複数の構成(又は設定)可能なストリームハンドラ22を含むリアルタイムカーネル20の一実施形態と、入力/出力(I/O)ハードウェア24とを含む。第2のクライアントネットワークノード14は、第1のクライアントネットワーク12とほぼ同じやり方で典型的には構成される。エリアサーバネットワークノード16は、エリアネットワークインフラサービス26(単に「エリアサービス」としても呼ばれる)を含む。該エリアネットワークインフラサービス26は、仮想エリア28内の第1及び第2のクライアントノード12、14のセッションを管理することによって仮想エリア28を管理(又は運営)する。仮想エリア28は、仮想エリアアプリケーション30をホストする。該仮想エリアアプリケーション30は、仮想エリア通信環境を作成することに使用される仮想エリアの表現(又は記述、又は記載)を含む。該エリアサービス26は、仮想エリアアプリケーション30に従って仮想エリア28を管理(又は運営)する。
リアルタイムカーネル20は、仮想エリア通信環境10のコンテキスト内において動作し、該仮想エリア通信環境10は、ネットワーク18と、ネットワークインフラサービス環境とを含み、該ネットワークインフラサービス環境は、エリアサービス26を含む多くのネットワークインフラサービスを含む。リアルタイムカーネル20及びネットワークインフラサービス環境は、通信者に対する仮想エリア通信環境を構築するためのプラットフォームを構成する。
ネットワーク18には、任意のローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、及びワイドエリアネットワーク(WAN)(例えばインターネット)を含めることができる。ネットワーク18は、典型的には、多くの異なるコンピューティングプラットフォームと、ネットワークノード間において広範囲の様々な異なる媒体タイプ(例えば、テキスト、音声、オーディオ、及びビデオ)の伝送をサポートするトランスポート設備とを含む。
1つか又は複数のネットワークインフラサービスは、典型的には、他のネットワークノードとのネットワーク接続を確立する及び管理(又は運用)するプロセスにおいて、リアルタイムカーネル20と連携する。ネットワークインフラサービスは、単一ネットワークノード上において実行することができるか、或いは、複数のネットワークノードにわたって分散(又は分配)され得る。ネットワークインフラサービスは、典型的には、1つか又は複数の専用ネットワークノード(例えば、サーバコンピュータか、或いは、ルーティング及びスイッチングなどのエッジサービスを実施するネットワーク装置)上において実行される。しかしながら、幾つかの実施形態では、1つか又は複数のネットワークインフラサービスは、通信者のネットワークノードのうちの少なくとも1つのネットワークノード上において実行される。ネットワークインフラサービスの中で、仮想エリア通信環境10の例示的な実施形態内に含まれるものは、アカウントサービス、セキュリティサービス、エリアサービス26、ランデブーサービス、及び相互作用サービスである。
リアルタイムカーネル20は、仮想エリアのインスタンスによって画定される通信コンテキスト内のネットワークノードとのリアルタイム接続を管理(運用)する。仮想エリアインスタンスは、抽象的な(又は概念上の、又は難解な)座標に関して画定される抽象的な(ジオメトリックでない)仮想空間に対応することができる。代替的には、仮想エリアインスタンスは、ある特定の視覚化(又は映像化;ビジュアライゼーション)に関連付けられている1次元か、2次元か、又は3次元のジオメトリック座標に関して画定されるビジュアル仮想空間に対応することができる。抽象的な仮想エリアは、それぞれの視覚化に関連付けられることが可能であるか又は不可能である一方で、ビジュアル仮想エリアは、それぞれの視覚化に関連付けられる。
リアルタイムカーネル20は、
a.ヘッドアップディスプレイ(HUD)ソフトウェアアプリケーションと、
b.ローカルヒューマンインターフェースデバイス(HID)及びオーディオ再生装置と、
c.So3Dグラフィックディスプレイ、アバター、及び物理エンジンと、
d.システムデータベース及び記憶設備
とを追加的に含む、クライアントソフトウェアパッケージの一部としての、ローカルネットワークノードの構成要素として、働くよう設計される。
ヘッドアップディスプレイ(HUD)は、各クライアントネットワークノード上で動作するリアルタイムカーネル20に対するアプリケーションインターフェースである。HUDは、ユーザが該ユーザのデスクトップ上において常に維持し及び実行したままにすることが可能な小型で軽量なインターフェースである。ヘッドアップディスプレイ(HUD)は、仮想エリアアプリケーションを起動するためのユーザのインターフェースであり、該ユーザに、リアルタイムコンタクト及びリアルタイム共同場所(又はエリア)に対する即座のアクセスを提供する。仮想エリアは、HUD及びリアルタイムカーネル20を通じて、ユーザのデスクトップと統合され、これにより、ユーザは、仮想エリア通信環境内へとファイルをドラッグ&ドロップすることが可能になることとなり、仮想エリア通信環境とは独立に、ネイティブなクライアントソフトウェアアプリケーションを用いて、仮想エリアに関連付けられた格納されたファイルを使用することが可能になることとなる一方で、仮想エリア内に依然として存在したままであることが可能になることとなり、及びより一般的には、幾つかのアプリケーションのうちの単なる1つというよりもむしろ、他のオペレーティングシステム機能に類似した該ユーザのオペレーティング環境の一態様として、仮想エリア内におけるプレゼンス及び位置を扱うことが可能になることとなる。
●ユーザのデスクトップ上において常時実行されていることが意図される小型で軽量なアプリケーションであることと、
●コンタクトを見るための及びコンタクトと相互作用するための簡易なインターフェースを、並びに、相互作用(交流)が生じる仮想エリアを、ユーザに提供すること
とを含む。
●プログレッシブ没入型コントロールの輪郭(アウトライン)と、
●ユーザの現在の位置の概要(アウトライン)と、
●仮想エリア86内のリアルタイムコンタクトを表すスプライトと、
●HUDエリアの境界線を定めるライン
とのうちの1つか又は複数の限定セットを除いて透明である。
●マイクロソフトのパワーポイントのプレゼンテーションと、
●映像(ビデオ)と、
●ウェブカメラ(Webcam)の出力と、
●組織のERPシステムから直接到来するリアルタイムデータ
とを含む。
●通信者のリアルタイムコンタクトのうちの幾つかのリアルタイムコンタクトであって、現在オンラインであるリアルタイムコンタクトと、
●通信者と通信者のリアルタイムコンタクトの場所であって、仮想エリア86内に現在「位置付けられている」場所と、
●仮想エリア86の視覚化を制御するプログレッシブ没入型コントロールと、
●ユーザに、ある特定の場所に迅速に接続させることを可能にするナビゲーションコントロール
とを効果的に示す。
具体的には、HUD84は、通信者に、彼らのリアルタイムコンタクトに対する迅速なアクセスと、リアルタイムコラボレーションが生じる仮想エリアとを提供する。人々の位置と仮想エリア内への景色(ビュー)とに基づいて、HUD84は、エリアを通じたナビゲーションを可能にする。これらの仮想エリアは、幾つかの手法でアクセスされ得る。すなわち、もっとも頻繁に使用された手法でか、最も最近使用された手法でか、又はアプリケーション指定手法でアクセスされ得る。
ローカルHIDデバイスによって、通信者が、コマンド及び他の信号をクライアントネットワークノード内に入力することが可能になると同時に、仮想エリア通信セッションに参加することが可能になる。例示的なHIDデバイスは、コンピュータキーボード、コンピュータマウス、タッチスクリーンディスプレイ、及びマイクロホンを含む。
So3Dエンジンは、ディスプレイモニタ上の仮想エリア及び仮想エリア内のオブジェクトのそれぞれの景色(ビュー)の表示を制御する3次元視覚化エンジンである。So3Dエンジンは、仮想エリアの景色(ビュー)を提示するために、及び、通信者に、HUDアプリケーションの動作を制御させることを可能にするために、典型的には、グラフィカルユーザインターフェースドライバ及びHIDデバイスとインターフェースする。
システムデータベース及び記憶設備は、プラットフォームによって使用される様々な種類の情報を格納する。記憶設備によって典型的には格納される例示的な情報は、プレゼンスデータベース、相互作用データベース、アバターデータベース、リアルユーザid(RUID)データベース、アート(art)キャッシュデータベース、及び仮想エリア指定データベースを含む。この情報は、単一ネットワークノード上に格納され得るか、或いは、複数ネットワークノードにわたって分配(又は分散、又は分割)され得る。
再び図4を参照すると、通信セッション中に、各々のクライアントネットワークノードは、リアルタイムデータストリーム(例えば、モーションデータストリーム、オーディオデータストリーム、チャットデータストリーム、ファイル転送データストリーム、及びビデオデータストリーム)のそれぞれのセットを生成する。例えば、各通信者は、仮想エリア66内の該通信者のアバターの動きを制御するモーションデータストリームを生成する1つか又は複数の入力デバイス(例えば、コンピュータマウス52及びキーボード54)を操作する。追加的には、通信者の声と、コンピュータシステム48の付近において局所的に生成される他の音声とが、マイクロホン60によって取り込まれる。マイクロホン60は、リアルタイムオーディオストリームへと変換されるオーディオ信号を生成する。オーディオストリームのそれぞれのコピーが、仮想エリア66内のアバターによって表される他のネットワークノードに伝達される。これらの他のネットワークノードにおいて局所的に生成される音声は、リアルタイムオーディオ信号へと変換されて、コンピュータシステム48に伝達される。リアルタイムカーネル20は、他のネットワークノードによって生成されるオーディオストリームを、スピーカ56、58によって再生(レンダリング)されるオーディオ信号へと変換する。モーションデータストリーム及びオーディオストリームは、通信者ノードの各々から、他のクライアントネットワークノードへと、直接的にか又は間接的にのいずれかで伝達され得る。幾つかのストリームハンドリングトポロジにおいて、クライアントネットワークノードの各々は、他のクライアントネットワークノードによって伝達されるリアルタイムデータストリームのコピーを受け取る。他のストリームハンドリングトポロジにおいて、1つか又は複数のクライアントネットワークノードは、ネットワークノードのうちの他の幾つかのネットワークノードからもたらされる(又は発生される)リアルタイムデータストリームから導出される1つか又は複数のストリームミックスを受け取る。
A.イントロダクション
通信者は、典型的には、クライアントネットワークノードからネットワーク18に接続し、このことは、典型的には、汎用コンピュータシステムか又は専用通信コンピュータシステム(又は、ネットワーク可能なビデオゲームコンソールのような「コンソール」)によって実現される。ネットワークノードは、他のネットワークノードとのリアルタイムデータストリーム接続を確立する通信プロセスを実行し、典型的には、通信者によって進入された各仮想エリアの景色(ビュー)を提示する視覚化レンダリングプロセスを実行する。
オペレーティングシステム144は、基本オペレーティングシステムサービスを、コンピュータシステム120上の生成ランタイム実行環境に提供することによって、ソフトウェアアプリケーションをホストする。サービスの例示的なタイプの中で、典型的には、オペレーティングシステムによって提供されるものは、リソース管理、ファイル管理、セキュリティ、認証、検証(又は照合;ベリフィケーション)、通知、及びユーザインターフェース(例えば、ウィンドウイング、メニュー、ダイアログ、など)である。
ネットワークプロトコル148は、コンピュータシステム120と、他のネットワークノードとの間のデータの接続、伝達、及び転送を制御するか又は可能にする。ネットワークプロトコルの例示的なタイプは、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル/インターネットプロトコル(UDP/IP)、リアルタイム転送プロトコル(RTP)、及びセッションイニシエーションプロトコル(SIP)を含む。
デバイスドライバ146は、典型的には、ソフトウェアアプリケーションによって実現され、該ソフトウェアアプリケーションによって、他のソフトウェアアプリケーション(例えば、ユーザモードソフトウェアアプリケーション及びオペレーティングシステム)が、コンピュータシステム120に接続されているハードウェアデバイスと相互作用することが可能になる。デバイスドライバは、典型的には、ソフトウェア処理とハードウェアデバイスとの間において伝送されるコマンド及びデータを変換するために、ソフトウェア処理によってなされるコールによって呼び出され得る機能にAPIを提供する。
1.イントロダクション
仮想エリア通信環境を共有する他のネットワークノードとコンピュータシステム120との間においてリアルタイムデータストリームを処理すること及びスイッチングすることと、並びに、ディスプレイモニタ132上に仮想エリア及び該仮想エリア内のオブジェクトのそれぞれの景色(ビュー)を提示することと、を制御するサービスをリアルタイムカーネル20が含む。これらの処理において、リアルタイムカーネルは、オペレーティングシステム機能とインターフェースし、該オペレーティングシステム機能は、リアルタイムデータストリームを、他のネットワークノードと交換するために、及び、没入型仮想エリア通信経験を通信者に提示するために、コンピュータシステム120のハードウェア構成要素へと及び該ハードウェア構成要素からコマンド及びデータを変換するドライバ148と伝達し合う。
リアルタイムカーネル20は、コンピュータシステム120と、仮想エリア通信環境を共有する他のネットワークノードとの間でネットワーク接続を確立すること及び管理(運用)することにおいて、1つか又は複数のネットワークインフラサービスと協働する。例示的な機能(機能性)の中で、ネットワーク接続を確立すること及び管理(運用)することのプロセス内に含まれるものは、セッション管理(運用)、リモート制御ストリームハンドリング、及びリアルタイムタスクスケジューリングである。
図9は、仮想エリアに対する接続をリクエストするリアルタイムカーネルAPIコールに応答して、リアルタイムカーネル20によって実現される一方法の一実施形態を示す。
図11は、エリアサービス26から受け取られるストリームハンドリング命令に応答して、リアルタイムカーネル20によって実現される一方法の一実施形態を示す。
図13は、リアルタイムカーネル20によって実施されるスケジューリングタスクのプロセス内においてリアルタイムカーネル20によって実現される一方法の一実施形態を示す。
A.イントロダクション
図15は、リアルタイムカーネル20の一実施形態260を示す。リアルタイムカーネル260は、異なるネットワークノード上における、2D/3Dグラフィックスレンダリングエンジン及びオーディオミキシング及びスイッチングエンジンのリモートコンフィギュレーション及び実行をサポートして、2人か又は3人以上の通信者間の物理的プレゼンスの感覚(センス)を生成する。単一仮想エリアインスタンス内において一度に相互作用する全通信者を管理するプロセス内において、エリアサービス26は、リアルタイムカーネル260と、他のネットワークノードとの間のセッションを、リアルタイムカーネル260のパケットトランスポート構成要素(本明細書内においてSTRAWサービス268として呼ばれる)を介して、リモートに設定(又は構成)する。幾つかの実施形態において、リアルタイムカーネル260は、エリアサービス26との通信を最小化するためにポイント・ツー・ポイント(P2P)でデータストリーム(例えば、リアルタイムオーディオデータストリーム)を設定(又は構成)する。エリアサービス26はまた、データストリームをミックスすることができ、及び、必要な時にはクライアントネットワークノードにそれらを渡すことができる。リアルタイムカーネル260は、P2P接続の失敗をエリアサービス26に報告することとなり、その結果、エリアサービス26は、クライアントネットワークノードのためにデータストリームをミックスする時を決定することが可能となる。リアルタイムカーネル260は、小さなイニシャル領域(フットプリント)を有しており、更新(アップデート)をロードし、及び、ネットワーク接続上において徐々に増加する機能をプラグインとしてロードする。
ライブラリ名 説 明
SORK.DLL・・・・・リアルタイムスケジューラ278
Compress.DLL・・・圧縮エンジン
Media.DLL・・・・・ストリーミングオーディオ伝送のためのメディアサービス271
SODA.DLL・・・・・ストリーミングSODA定義伝送のためのSODAチャンネルサービス270
GIPS.DLL・・・・・GIPS音声構成要素
OpenAL.DLL・・・・サウンドカードサポートのためのオープンオーディオライブラリ(Open Audio Library)
AudioSvc.DLL・・・オーディオストリームサービス272
TransBus.DLL・・・オーディオストリームサービス272を含むメディアトランスポートバス
OpenAL.DLL・・・・サウンドカード
STRAW.DLL・・・・STRAWサービス268(パケットトランスポートエンジン)
CSMMgr.DLL・・・・接続及びサーバミックスマネージャ262
AreaZone.DLL・・・エリア/ゾーンマネージャ264
ArtCache.DLL・・・ローカルデータベース内のアート(art)に対してSODAインターフェースを提供するアセットキャッシュサービス
So3D.DLL・・・・・3Dレンダリングエンジンに対するSODAインターフェース
TimeSID.DLL・・・・ネットワーク時間基準インターフェース
PlugInMgr.DLL・・・プラグインマネージャ
他のプラグイン:
暗号化アルゴリズム
圧縮アルゴリズム
認証アルゴリズム
認証情報(クレデンシャル)
オーディオミックス
オーディオソース
オーディオコーデック
オーディオ計算
グラフィカルエフェクト
物理エクステンション
スクリプトエクステンション
入力デバイスホスティング
B.リアルタイムカーネル設計
図15内に示されているように、リアルタイムカーネル260は、エリアサービス26から受け取った命令に従って仮想エリア通信環境をレンダリングするためのプラットフォームの構成要素となるサービス、プラグイン、及びリアルタイムスケジューラのコレクションとして設計される。プラットフォームを実現するために複数サービスが協働して、オーディオ及びグラフィックスレンダリングコンフィギュレーションを通じてネットワーク機能とは異なるレベルで動作する。プラグインは、様々なクラスに属しており、各々は、(各々がそれ自身のクラスAPIで)プラグイン管理(Plugin Management)APIに準拠している。リアルタイムスケジューラ278は、オーディオ及びグラフィックレンダリングが、偶数フレームレートにおいて生じることを保証する。プラットフォームは、STRAW UDPソケット(SODA記録の例示的なセットのためのSODA定義を含むセクションVIを参照のこと)上において伝達されたSODA定義記録を通じてエリアサービス26により仮想エリアのインスタンスに従って構成される。STRAWサービス268は、公開/認可モデルを用いてSODA記録ストリームを逆多重化(デマルチプレクス)する。SODA記録は、STRAWソケットの他方端上に加入者が存在する時にのみ伝達される。受け取られたSODA記録は、到来時に、1つか又は複数の加入者に配信される。サービスは、So3Dグラフィックスエンジン及びHUD84によって利用されるためのローカルAPIをサポートする。
1.インストール
a.概要
幾つかの実施形態において、仮想エリアベースのレンダリングプラットフォームが、インストールパッケージとして、インターネット上のソフトウェアパッケージとしてダウンロードされる。それは、ダウンロードサーバからHTTPダウンロードにより配信される。Microsoft(登録商標)Windows(登録商標)オペレーティングシステムが動作するクライアントネットワークノード上において、前記プラットフォームソフトウェアパッケージは、.msiパッケージである。初期インストールは、更新が利用可能となるとダウンロードサーバ上において修正されている単一パッケージである。新規のクライアントネットワークノードが、最新のインストールを実施する際には、次の更新が生成されるような時まで他の更新は必要とされない。
更新サーバは、各サポートされるホスト動作環境ごとのインストールパッケージと、以前にサポートした各インストールパッケージごとのアップグレードパッケージとを含む。
クライアントネットワークノードは、仮想エリアベースのレンダリングプラットフォームサービス及びプラグインを、ローカルファイルシステム内のアセットディレクトリ内に格納する。該サービス及びプラグインは、APIs及び添付リソースを通じて、自己記述的である。クライアントネットワークノードソフトウェア状態に関する更なる情報は保持されない。クライアントネットワークノードが、(おそらくは、OSのアップグレード後に)仮想エリアベースのレンダリングプラットフォームソフトウェアを再インストールする時には、既存のプラグインが、典型的には、再有効化される(又は再認証される)。初期のインストールは、全ての基本的なサービス及びプラグインを含むが、マシンオプションのか又はアプリケーション指定のプラグインが存在する場合があり、それらは典型的には、削除されるか又は再有効化される(又は再認証される)。幾つかの実施形態において、有効なプラグインのバイナリコンテンツが、ハッシュされて、一方向に暗号化されて、その結果として生じた値が、添付リソースとして格納される。該添付リソースは、プラグインが本物であるか否かをチェックするために使用される。疑わしいプラグインが正しいものであることを確認するために、最新のプラグインコンテンツが、再ハッシュされ、暗号化されて、その結果として生じた値が、既存のリソースと比較される。該コンテンツが、該リソースに一致しない場合には、そのプラグインは無効にされる。
ネットワーク認証は、典型的には、リアルタイムカーネル260がランチされる度ごとに一度だけなされる。幾つかの実施形態では、アカウントネットワークインフラサービスを実行するアカウントサーバが用いられて、通信者が認証されて、該通信者ごとにリアルユーザ識別子(RUID)が生成される。アカウントサーバは、トークンを生成し(その後、該トークンはRUIDの一部として含められる)、他のサーバに対して自分自身が本物であることを証明するために、そのトークンをクライアントネットワークノードに対して提供する。このプロセス内において、クライアントネットワークノードは、認証情報(クレデンシャル)がセキュリティ上安全にインストール時に発行される。該認証情報(クレデンシャル)は、典型的には、認証局により署名された、認証局(CA)定義の証明書である。該証明書は、プライベートキー(鍵)とパブリックキー(鍵)とを含む。仮想エリアベースのレンダリングプラットフォームインストールパッケージは、パブリックキーのみを含む新たな認証情報(クレデンシャル)を生成する。プライベートキーは、クライアントネットワークノード上においてセキュリティ上安全に格納される。仮想エリアベースのレンダリングプラットフォームインストールパッケージは、プライベートキーを用いて署名を生成して、通信者によって提供されたパスワードのダイジェストを暗号化し、該署名を、セキュリティ上安全にアカウントサーバに対して伝達する。該アカウントサーバは、該ダイジェストを回復させて、クライアントを識別する秘密事項としてそれを格納する。
図16は、アカウントサーバ296がその認証情報(クレデンシャル)を通じて認証されることによる一方法の一実施形態を示す。この方法に従って、クライアントネットワークノード294とアカウントサーバ296とが認証情報(クレデンシャル)を交換する(図16のブロック298、300)。クライアントネットワークノード294に対するアカウントサーバ296の、後の高速な認証のために、クライアントネットワークノード294は、アカウントサーバ296に対してサーバID及びサーバトークンを発行する(図16のブロック302)。アカウントサーバ296は、次いで、クライアントIDと、添付識別トークンとを、クライアントネットワークノード294に対して発行する(図16のブロック304)。アカウントサーバへのストリームに関する認証フェーズは、参加者のパブリックキーを用いて暗号化される。
図17は、クライアントネットワークノード上のオペレーティングシステムがランチされる度にリアルタイムカーネル260のローダー構成要素によって実現される一方法の一実施形態を示す。このプロセス内において、該ローダーは、1つか又は複数のカーネルサービス構成要素を含むカーネル構成要素の静的リストをパーズする(図17のブロック320)。パーズしたリスト内の全てのカーネル構成要素であって、ローカルな保存場所(例えば、ローカルファイルシステム内のディレクトリ)から無くなっている、該全てのカーネル構成要素を、該ローダーが決定する(図17のブロック322)。該ローダーは、無くなっていることが決定されたカーネル構成要素の各々を回復させる(図17のブロック324)。幾つかの実施形態において、ローダーは、無くなっているカーネル構成要素をリモートネットワークノード(例えば、ダウンロードサーバか又は更新サーバ)から回復させる更新サービスをクライアントネットワークノード上においてインスタンス化する。無くなっているカーネル構成要素が回復された後に、該ローダーは、カーネルサービス構成要素のうちの幾つかの各々からカーネルサービスをインスタンス化する(図17のブロック326)。インスタンス化されたカーネルサービスは、仮想エリアに関して画定される通信環境内における1つか又は複数のリモートネットワークノードと伝達し合うために実行される(図17のブロック328)。例えば、幾つかの実施形態において、HUD84は、本明細書内において詳細に記載されているようなHUDセッションか又はエリアセッションを確立するため、エリアサーバと伝達し合うためにカーネルサービスを呼び出す。
●SODAサービス270
●メディアサービス271
●オーディオストリームサービス272
●接続及びサーバミックスマネージャ262
●エリア/ゾーンマネージャ264
●アセットキャッシュサービス275
●リアルタイムスケジューラサービス278
●HUD84
●デフォルトプラグイン
これらの実施形態において、サービスが、GUIDによってでなく名称によってロードされる。各サービスのうちの1つのコピーのみが、一時、クライアントネットワークノード上に提示される。ロード後、SODAチャンネルサービス270、メディアサービス271、オーディオストリームサービス272、エリア/ゾーンマネージャ、及びリアルタイムスケジューラサービスが、アイドル状態で待機する。接続及びサーバミックスマネージャは、未設定のまま音声を放置して、エリアサーバに対する接続の定義を待つ。デフォルトプラグインが、GUIDによってAPIクラスオブジェクトとして登録される。ある定義内においてGUIDによって参照された時に、それらデフォルトプラグインがロードされる。HUD84は、アカウントサーバにコンタクトして、通信者を認証し且つ識別(特定)する。HUD84は、ランデブーネットワークインフラサービスと、相互作用ネットワークインフラサービスとに対するストリームを生成して、その最も最近に使用された(MRU)友達及びエリアリストとその頻度の高い友達及びエリアリストとをポピュレートする。アセットキャッシュサービス275は、典型的には、アート(art)データベースサーバにコンタクトして、ヒューリスティック(発見的問題解決法)に従って、ディジタルリソースをキャッシュしはじめ、そのGUIDマップを更新する。
リアルタイムカーネル260は、クライアントネットワークノードと他のネットワークノードとの間のセッションを管理する。あるセッション中、サーバとクライアントネットワークノードとの間で、STRAWソケット上においてSODA定義記録として、データが共有化される。データは、公開/認可(又は承認、署名)モデル内において共有化される。リアルタイムカーネル260は、クライアントネットワークノードが必要なデータに対してのみ、認可(又は承認)をする。認可するために、リアルタイムカーネル260は、所望のサーバに対してSTRAWチャンネルを生成する。STRAWチャンネルは、特定の仮想エリアのために周知のGUIDによってネゴシエートされる。幾つかの実施形態において、STRAWソケットが、設定(又は構成)されたDNS通じて提供されるアドレスを用いて接続される。
HUDセッション内において、HUD84は、アカウントサーバ、RUIDサーバ、及びランデブーサーバにコンタクトして、そしてSTRAWチャンネルを通じて、通信者の自身のアカウントと関係情報とを認可(又は承認)する。HUD84は、従って、密接に関連したコンタクト及び仮想エリアについてのプレゼンス情報を認可(又は承認)する。この時点で、HUD84は、密接に関連したコンタクトについての動的プレゼンス情報を表示することができる。
あるエリアセッション内において、HUD84は、関連した仮想エリアについての情報を認可(又は承認)する。幾つかの実施形態において、HUDによって指定される仮想エリアをホストする現在のエリアサーバを決定するために、ディレクトリサーバが調べられる。STRAWストリームが、現在のエリアサーバに対して生成される。
図18は、STRAWサービス268によって実現されるセッション管理方法の一実施形態を示す。
リアルタイムカーネル260は、他のネットワークノードからクライアントネットワークノードによって受け取られるデータストリームを処理するためのストリームハンドラのリモートコンフィギュレーションをサポートする。エリアサービス26から受け取られる命令に応答して、様々なサービスと、リアルタイムカーネル260における他の構成要素とが協力して、処理要素における有向グラフを、データストリームを処理するために使用されるストリームハンドラ内へと構築及び構成する。エリアサービス命令は、エリアサービス26によって管理される仮想エリアによってホストされている仮想エリアアプリケーションに従ってストリームハンドラを構成(又は設定)する。
リアルタイムカーネル260の構成要素は、サービス、プラグイン、及びライブラリを含む。
PlugInMgr::APIEnumerate(guiPluginApi)
PlugInMgr::VariantEnumerate(guidIdentifier, guidPluginApi)
PlugInMgr::CreateInstance(guidIdentifier, guidPluginApi, guidVariant)
PlugInMgr::CreateInstance()APIの起動が、APIの所望バリアントのインスタンスを表すguidPluginをもたらす。
AudioMix(オーディオミックス)
AudioSource(オーディオソース)
AudioInsert(オーディオインサート)
AudioSend(オーディオセンド)
である。コーラー(caller)が、バリアントを提供し、該バリアントは、オーディオストリームサービス272によって単に送られる。該バリアントは、仮想エリアアプリケーション内において画定(定義)されたものとして、オーディオプロセッシンググラフ要素の一実現形態を表す。オーディオストリームサービス272は、次いで、プラグインインスタンス(guidPlugin)をカプセル化するAudioComponentオブジェクト(オーディオ構成要素オブジェクト)を生成する。該AudioComponentは、プラグインマネージャ266を使用して、プラグインのメソッドにアクセスする。該オーディオストリームサービス272は、各オーディオAPIごとに、すなわち、
AudioMix(オーディオミックス)
AudioSource(オーディオソース)
AudioInsert(オーディオインサート)
AudioSend(オーディオセンド)
ごとに、コレクトタイプの導出AudioComponentを生成する。
AudioComponentオブジェクトは、トランスポートバス276に登録(又は記録)される。トランスポートバスAPIは、複数構成要素をグラフ内にリンクさせるために使用される。該AudioComponentAPIは、トランスポートバス276及びエリア/ゾーンマネージャ264の動作をサポートする。ベースクラスAudioComponentは、AudioSource(オーディオソース)のAPIとAudioSink(オーディオシンク)のAPIとを有し、それらAPIは両方とも、同じプラグインの態様である。
●GUID1は、STRAW記録を、SODA記録として識別する。
●GUID2は、STRAW記録を、ネットワークノード識別記録として識別する。
●GUID3は、IPアドレスフィールドタグである。
●GUID4は、ネットワークノードのIPアドレスである。
●GUID5は、ポート番号フィールドタグである。及び、
●GUID6は、ネットワークノードのポート番号である。
これらの実施形態において、ステーション識別記録は、小さなサイズに容易に圧縮可能なバイナリデータからなる。幾つかの実施形態において、フィールドタグを省くことによって、1つか又は複数のSTRAW記録のサイズを、更に低減することができる。これらの実施形態において、STRAW記録の送り手(トランスミッタ)と受け手(レシーバ)との両方が、STRAW記録のフォーマットを知るので、任意のフィールドタグを参照することなく、フィールド値の意味が知られることとなる。
STRAWセッションのコンテキスト内において、ストリームは、2つのIPアドレス/ポート対(ペア)及びトランスポートGUIDによって画定された2つのネットワークノード間の双方向UDPソケットである。ストリームは、チャンネルのセッションをサポートする。セッションは、論理的なノード・ツー・ノードの接続である。セッションは、2つのノードのためのチャンネルを伝送する。セッションは、1つか又は複数のプロキシステーションを通過することができ、複数セッションを含めることが可能なストリーム上にわたって伝送される。
SODA記録は、イニシャルGUID IDと、1つか又は複数のSODA定義とを有したネスト化された構造である。SODA定義は、定義タイプと、定義長と、1つか又は複数のフィールドとを有する。該定義タイプは、周知のGUID(例えば、guidAsset)である。該定義長は、フィールドの全長を示す。フィールドは、タイプ指定固定フィールドと、ネスト化されたSODA定義との組み合わせである。すなわち、
SODA記録:
guid ID
SODA定義
...
SODA定義:
Guid定義タイプ
long length;
[フィールド]−定義タイプに依存
フィールド:
固定フィールド
又は SODA定義
例えば、
STRAW記録は、番号付けられ、チャンネルIDを含む。パケットを受け取った後に、及び、短時間の遅延の後、そのトランスポートは、各チャンネルごとの次に期待されるパケットの番号を含むACK(肯定応答)記録を送って、それにより、送り手(センダー)が、伝達した記録が受け取られたことを確認することができるようにし、及び、ローカルリソースを解放することができるようにする。周期的な送信の他に、このACKに対する信頼性機能は存在しない。ほとんど全ての記録がうまく受け取られると仮定すると、このスキームは、信頼性のために最小のネットワークリソースを用いる。
もしもチャンネル内の記録が、順序が狂って受け取られた場合には、その失敗した記録に対するNACK(否定応答)が伝達される。MAC障害もまた、NACKが結果として生じられ、該NACKは、期待される記録に対して伝達される。単一記録に対して、最大で4つまでのNACKが許可され、次いで、このトランスポートは、失敗メッセージを、任意の認可カーネルマネージャに対するキューに入れて、そのチャンネル定義を消去する。
もしもチャンネル内の記録が、順序が狂って受け取られた場合には、その失敗したパケット番号が、チャンネルに対して認可した任意のマネージャに対して信号で伝達され、NACKは送られない。MAC障害もまた、失敗したパケットとして、チャンネルを許可した任意のカーネルマネージャに対して指示されて、NACKは送られない。失敗したパケットに対する閾値は存在せず、チャンネルは、そのトランスポートによって決して閉じられない。
STRAWサービス268は、ローカル公開及び認可エントリのリストを維持する。各エントリは、
エントリを生成したローカルマネージャと、
サーバ識別子と、
チャンネル識別子と、
公開又は認可と、
(認可のための)トランスポートパラメータ
とを含む。
このリストは、{STRAW Service, GUID_NULL, Session, Subscribe, Reliable, Uncompressed}によって初期化される。
このようにして、STRAWサービス268は、任意のセッションチャンネル上に到来する、全ての到来SODA記録を認可する。これらは、公開及び認可定義を含む。GUID_NULLチャンネルは、決して公開されず、全ストリーム毎の周知のチャンネルIDによって許可されることとなる全てのサーバによってみなされる。
{IDCliant, IDServer, IDChannel}
ここで、IDCliantは、チャンネルが意図されるある特定クライアントの(おそらくは零(NULL)の)GUIDであり、IDServerは、チャンネル記録のリモートソースであり、及びIDChannelは、チャンネルの、チャンネルの周知のGUIDである。
STRAW記録は、それらが到着すると(暗号が)解読される。もしも有効である場合には、それらの埋め込まれた記録が解凍され、次いで、全ての認可するカーネルマネージャに発送される。ローカル認可エントリのリストが調査されて、(認可トランスポート情報内の)チャンネルIDに一致する全エントリが、それらのメッセージキュー上の記録のコピーを受け取る。
クライアントネットワークノードは、ストリーム上のセッションを、サーバ及びピアネットワークノードに接続する。このプロセス内において、各パーティは、自身が本物であることを他に対して認証する。
●クライアントネットワークノードは、パートナーの正体(アイデンティティ)を確信している。
●メッセージは、個人用(プライベート)である。
●受け取ったメッセージは、送られた(どこかの中間地点で変更を受けていない)保証できるメッセージである。及び、
●同じやり方で、両パーティによってメッセージが解釈されることが可能であろう。
幾つかの実施形態において、クライアントネットワークノード344からサーバ346へのストリームは、ディレクトリサーバか、マップサーバか、又はエリアサーバなどのサーバから取得されるアドレスを用いて確立される。ストリームの例示的な目的は、プレゼンス情報を得ることと、マップサーバからのレンダリング定義を用いてパブリック空間をレンダリングすることと、及び、エリアサーバからのレンダリング定義を用いて仮想エリアをレンダリングすることと、を含む。
図22を参照すると、各セッションが、発行サーバによって生成される新たなGUIDによって識別される。ストリーム内に含まれるネットワークノードは、セッション定義を通知され、及び、セッションGUIDのハッシュと、ストリーム暗号化キーとしてのクライアントIDとを用いて、各ネットワークノードはその他のものと伝達し合う。図22内に示された例示的な実施例において、エリアサーバ356が、2つのクライアントネットワークノード358と360との間のセッションを画定する。クライアントネットワークノード358、360の各々は、エリアサーバに対して本物であることを認証して、(セッション定義を含めて)定義を伝達するために、暗号化したチャンネルを使用する。クライアントネットワークノード358、360にとって、いかなる更なる認証の情報も互いに共有する必要が無い。クライアントネットワークノード358、360の各々は、それぞれのGUIDを用いて、サーバ346によって識別される。各セッション定義は、クライアントネットワークノード358と360との両方を、それらのGUIDsによって識別する。セッション上において公開するチャンネルを決定するために、クライアントネットワークノード358、360は、この情報を使用することができる。
幾つかの実施形態において、ストリームが確立されると、クライアントネットワークノード上のトランスポートが、周期性アイドルのStreamKeepAlive定義を発行する。パートナーネットワークノードは、許容可能な最大インターバルであると見積もるタイムアウトセットであれば何でも、該タイムアウトセットでStreamKeepAlive定義を返す。このメッセージの目的は、任意のNATファイアウォール・ピンホールをアクティブのまま保持することである。パートナーネットワークノードは、所望のタイムアウトを記録し、及び、該インターバルを毎回延ばす。次のメッセージが、異なるIP及びポートから到来した場合には、NATは、タイムアウトされて、該キープアライブによって新たなピンホールが生成されることとなる。該インターバルは、従って短くされるはずである。
g.SODAチャンネルサービス
●AudioDevice(オーディオデバイス)
●AudioStream(オーディオストリーム)
●AudioMix(オーディオミックス)
●AudioEffect(オーディオエフェクト)
●AudioCalculation(オーディオ計算)
●AudioRecord(オーディオ記録)
●AudioPlayback(オーディオ再生)
これらのSODA定義は、以下のパラグラフ内において説明される。
●AudioReverb(オーディオリバーブ)
●AudioAperture(オーディオアパーチャ)
●AudioObstruction(オーディオ障害物)
これらのSODA定義が、以下のパラグラフ内において説明される。
サウンドソースとサウンドシンクとの両方の物理特性、
ソース及びシンクについてのゾーン定義、
手動設定(個別のミュート、ボリューム/AGC)、
環境設定(グローバルなミュート、ボリューム)、及び、
部屋のオーディオ特性
を、引数として取得する。
Manual Mute(手動ミュート)、
Manual Volume(手動ボリューム)、
Location(位置)、
Doppler shift(ドップラーシフト)、
Orientation(配向)(正面を向いている/外を向いている)、
Zone(ゾーン)、及び、
Room Reverb(部屋の残響)
を含む。
アセットは、クラステーブル内において、及び、オプションの属性テーブル内において、表される。
レンダリングプラットフォームに基づく仮想エリアのアセット記憶装置インターフェースは、データを積み重ねること(heaping)と、トランザクション的に別個インデックスを格納することと、未使用のアセット記憶装置を再使用するためにスカベンジングすることと、を可能にする。データベースとファイルとの組み合わせは、アセット記憶装置としての機能を果たすこととなる。データベースは、2つのテーブルを含む。すなわち、記憶装置(又は記憶)割り当てテーブルと、GUID/オフセットインデックスとを含む。前記ファイルが、設定されたキャッシュサイズに従って固定サイズで生成される。アセットが、ヒープ・バケット(heap-bucket)アルゴリズム用いてファイル内に格納される。
アセットは、伝送のために、SODA記録内にカプセル化される。定義は、アセットGUIDと、そのコンテンツ(体系化されていないデータ)と、(もしもそれが1記録(1レコード)よりも大きい場合には)そのオフセットと、属性のテーブルと、を含む。アセットをカプセル化するSODA記録は、記憶装置システムに対する如何なる参照も決して含まない。
アセットは、属性を有しており、それらのうちの最も重要なものは、タイプとデフォルトである。タイプは、アセットの目的を指定する。デフォルトは、所与のアセットの場所の中で使用され得るベースアセットを指定する。例示的な属性ヒエラルキは、次のテーブル内に示される。
オーディオトランスポートバスは、オーディオストリームを処理(ハンドル)するトランスポートバス276の構成要素である。幾つかの実施形態において、オーディオトランスポートバスは、構成要素オブジェクトのコレクションとしてオーディオグラフを管理するライブラリによって実現される。オーディオグラフオブジェクトの全てが、オーディオトランスポートバスに固有IDで登録(記録)される。オーディオトランスポートバスは、オーディオをレンダリングする時に、オーディオグラフオブジェクトを管理することの責任を負う。オーディオトランスポートバスは、IDにより、オーディオグラフ構成要素をトレースする。このプロセス内において、オーディオトランスポートバスは、各オーディオグラフ構成要素を順に呼び出して、IDによって名付けられた入力構成要素からのオーディオデータを提供する。
幾つかの実施形態において、オーディオプラグインは、VSTオーディオエフェクトC++オブジェクトを組み込む。該VSTオーディオエフェクトC++オブジェクトは、Steinberg Media Technologies GmbHから利用可能である。具体的には、オーディオプラグインが、プラグインとしてラッピングされたVSTオブジェクトを組み込む。shimライブラリが、オーディオプラグインとしてVSTオブジェクトをラッピングするために提供される。このラッパは、オーディオプラグインAPIを提供する。VSTオブジェクトのAPIは、オーディオプラグインクラスの指定APIとして使用されることとなる。このAPIは、
setBusArrangements (inputs, nInput, output, nOutput) と、
getBusArrangements (direction, index, speaker&) と、
canProcessSampleSize(size) と、
getLatencySamples()と、
setupProcessing(process)と、
setProcessing(state) と、
process(data&) と、
getTailSamples()
とを含む。
大抵のオーディオプロセッシンググラフミキシング及びエフェクト要素は、www.openal.org.から利用可能なOpenALクロスプラットフォームオーディオAPIを用いて実行される。OpenALライブラリは、最良機能を実現するために利用可能なサウンドカードの該最良機能を用いて、エリア/ゾーンマネージャセクション内においてリストアップされた全パラメータを計算することができる。具体的には、OpenAL Sources、Listeners、及びプログラムBuffersが、ミュートから最終ミックスまでのオーディオグラフ内の各動作ごとに生成される。各更新(アップデート)の前に、計算プラグインに従ってバッファパラメータが変更される。
ローカルストリームソースは、マイクロホン、(記録されたwavファイル及び音楽などの)ローカルサウンドソース、及びサウンドアートリソースである。これらのソースの各々を添付して、分配のためにそれらをオーディオトランスポートバスに対して提示するため、Windows(登録商標)オペレーティングシステムAPIが使用される。各ソースは、AudioSource導出クラスとして「ラッピングされる」。ソースオブジェクトラッパが、定義が受け取られる時に生成される(セクションVI内のAudioDeviceSODA定義を参照)。DirectSoundAPIsは、Windows(登録商標)ベースのコンピューティングシステム上において、マイクロホン、クリップ、Skype、及びCDサウンドのために使用される。RTPストリーミングは、リアルタイムプロトコル(RTP)サービスを囲う単なるAudioSourceラッパーであり、UDPソケット上においてストリーミングデータ(例えば、オーディオ)を配信するために使用される。インターネット上のストリーミングオーディオは、ウェブベースのダウンロード及び再生をサポートし、更にまた、マイクロソフトメディアサーバストリームもサポートする。
○統合構成要素393は、代替の再生及びキャプチャストリームを仮想化する。このプロセス内において、統合構成要素393は、仮想化代替再生から受け取ったマイクロホン(マイク)1を、Cスプリット1に送り、マイクロホン2と3と4とのミックスを、Pミックスから受け取って、システム1に対して伝達するために仮想化代替キャプチャに送る。
○Cスプリット1は、統合構成要素393からマイクロホン1を受け取って、マイクロホン1を、Pルートと、I/Oマルチプレクサ/デマルチプレクサとの両方に送る。
○Cスプリット2は、システム2キャプチャからマイクロホン1を受け取って、マイクロホン2を、Pミックスと、I/Oマルチプレクサ/デマルチプレクサとに送る。
○Pルートは、Cスプリット1からマイクロホン1を受け取って、I/Oマルチプレクサ/デマルチプレクサからマイクロホン2及び3を受け取る。Pルートはまた、マイクロホン1、3、及び4をシステム2再生に送って、マイクロホン3及び4を、Pミックスに送る。
○Pミックスは、Cスプリット2からマイクロホン2を受け取って、Pルートからマイクロホン3及び4を受け取り、仮想化したものを送信出力するために、マイクロホン2、3、及び4のミックスをストリームハンドラ391に送る。
●C:仮想エリアベースの通信アプリケーションによるオーディオキャプチャ
●P:仮想エリアベースの通信アプリケーションによるオーディオ再生
●CA:システム1の代替オーディオアプリケーションによるオーディオキャプチャ
●PA:システム2の代替オーディオアプリケーションによるオーディオ再生
●Vマイク:システム2代替オーディオに関連付けられた仮想マイクロホン
●Vスピーカ:システム2代替オーディオに関連付けられた仮想スピーカ(複数可)
コンピュータシステム389の動作中、I/Oマルチプレクサ/デマルチプレクサは、システム1及び2から受け取ったオーディオ信号1及び2を、システム3とシステム4との両方に送る。I/Oマルチプレクサ/デマルチプレクサはまた、システム3及び4から受け取ったオーディオ信号3及び4を、ストリームハンドラ391のPルート構成要素に送る。Pルート構成要素は、オーディオ信号1、3、及び4を、システム2の再生構成要素に送って、オーディオ信号3及び4を、システム2のPミックス構成要素に渡す。ストリームハンドラ391のPミックス構成要素は、オーディオ信号2、3、4をミックスして、そのミックスした信号を、システム2の統合構成要素に渡す。統合構成要素393は、該ミックスした信号を、代替通信アプリケーション(例えば、Skype)のオーディオキャプチャ構成要素に渡す。該代替通信アプリケーションは、システム2上において実行されており、及び、システム1により使用されている通信アプリケーション395(例えば、Skype)に対応する。代替オーディオキャプチャシステム(CA)は、キャプチャしたミックス信号2+3+4を、システム1上において実行されている代替通信アプリケーション395の再生構成要素に渡す。
FrameRender(timeFrameMs)
を有する。
このメソッドは、特にレンダリングチェーン(オーディオか又はビデオ)であるデータソースから、指示された時間について1フレームを準備する。SoFrameRendererクラスは、別のメソッドを、すなわち、
FrameDeliver()
を含む。
このメソッドは、以前に準備したフレームを、特にレンダリングチェーンである最終的な宛先に配信する。SoFrameRendererオブジェクトは、2つ以上の完全フレームをバッファリング可能にすることが必要とされない。リアルタイムスケジューラサービス278は、以前に準備したフレームをスケジュール通りにフレーム配信(FrameDeliver)することとなり、次いで、次のインターバルのためのフレームを準備するために、FrameRenderをコールすることとなる。
FramePriority()
を画定(定義)する。
このメソッドは、最も重要である、より低い数の番号を返す。トータルな優先度に関して最小のインパクトで最大の利益を生み出すために、どのチェーン(複数可)がドロップされるべきかを、チェーン(鎖)のレイテンシ及び優先度から、ヒューリスティックが決定することができる。
Latency=FramePrune(priority)
をコールすることができる。
ここで、処理チェーンは、指示された優先度よりもより低い「リンクをドロップさせること」に対する責任を負う。リアルタイムスケジューラサービス278は、最大優先度においてコールすることを開始することができ、及び、所望のトータルレイテンシ内において全フレームがレンダリングされるまで逆向きにカウントすることができる。低い優先度のチェーンを反復的にドロップさせることと、チェーン自体を一部取り除くこと(又は枝刈り:pruning)、との組み合わせのヒューリスティック(発見的問題解決法)は、典型的には、ある優先度レベルにおいて終結する。もしもその優先度レベルが、閾値を下まわっている場合には、ログエントリがなされることが可能であり、幾つかのケースでは、そのセッションが閉じられる。
ネットワーク及びサーバの故障(又は失敗)が存在する中で、リアルタイムカーネル260は、動作を継続するために、最大限の努力を試みることを行わせる。このプロセス内において、リアルタイムカーネル260は、2段階の故障(又は失敗)回復アルゴリズムを実現する。第1に、SODAチャンネルサービス270及びメディアサービス271は、故障(又は失敗)時に、接続を再確立することを独立に(又は自主的に)試みる。メディア回復によって、個別のオーディオチャンネルの故障(失敗)が存在する中で、会議が、継続するか、或いは、NATタイムアウトのケースにおいて回復するということが可能になることとなる。第2に、もしもSODAチャンネルサービス270及びメディアサービス271が、接続を再確立することに失敗した場合には、それらは、それらのクライアントに対して失敗を信号で知らせることとなる。幾つかの実施形態において、回復の試みを同期させることが可能なエリア・ボールト(vault)サーバに、クライアントノードセッションを登録することによって、複数の通信者が同時に回復を試みる行動(アクション)が連係される。
幾つかの実施形態において、リアルタイムカーネル260は、コンポーネント化された、オープンな、及びプラットフォーム独立なアーキテクチャを有しており、該アーキテクチャによって、開発者が、独立に開発することと、リアルタイムカーネル260の構成要素をリモートに追加及び更新することとが、可能になる。
プラグインは、プラグインサーバからダウンロードされるプラットフォーム指定バイナリイメージである。Windows(登録商標)ベースのコンピュータシステム上において、プラグインは、DLLs(例えば、NETか又はCOMスタイルのプラグイン)として実現される。プラグインは、しかしながら、それらがロードされるというやり方において、通常のダイナミックリンクライブラリとは異なる。特に、ロード中に、プラグインライブラリにリンクする必要が無く、ソフトウェアコードの如何なる編集の必要性も無い。その代りに、プラグインマネージャ266は、プラグインディレクトリ内に含まれるプラグインを単にロードする。このようにして、ステーションにおける任意の更なるコンフィギュレーション(例えば、レジストリエントリ)も無しに、単に、実行可能なものをダウンロードするか又は削除することによって、プラグインは、クライアントネットワークノードに対して追加され得るか又は排除され得る。プラグインは、ある良好な画定(定義)されたやり方で各プラグインホストに接続する。
プラグインバリアントのアクティブインスタンスは、クラスPlugInVariantから導出される。それらは、常に、PlugInオブジェクトを用いて生成される。全ての有用なプラグインは、このクラスを、API指定メソッドを含めるために拡張する。共通メソッドだけが、ジェネリックなコンフィギュレーションメソッドである。
図28は、プラグインマネージャ266と、(プラグインコンテナ424のセットを含む)プラグインディレクトリ422と、プラグインデータベース426と、コーラー(caller)428とを含むプラグインアーキテクチャの一実施形態を示す。プラグインマネージャ266は、プラグインディレクトリ422内のプラグインコンテナ424をクエリー(検索要求)して、プラグインをプラグインデータベース426内に登録して、コーラー428からのAPIリクエストに応答して、利用可能なプラグインについての情報を送り、及び、指定されたプラグインバリアントをインスタンス化する。コーラー428は、典型的には、カーネル構成要素(例えば、インストールローダー構成要素、(接続及びサーバミックスマネージャ262及びエリア/ゾーンマネージャ264のような)カーネルマネージャ、及びカーネルサービス)である。しかしながら、幾つかの実施形態では、コーラー428は、クライアントノード上においてか又はリモートネットワークノード(例えば、サーバ)上において実行されているサービスか又はソフトウェアアプリケーションに対応することが可能である。
図29は、クライアントネットワークノード上において利用可能なプラグインを登録するプロセス内においてプラグインマネージャ266によって実現される一方法の一実施形態を示す。
サポートされる各プラットフォームごとに、適切なダウンロード可能形式において、サーバ上にプラグインが存在する。サーバは、最小セットの暗号化、圧縮、及び認証プラグインを常にサポートするので、サーバ接続を試みる時にはクライアントネットワークノードは常に成功する。
全てのプラグインは、プラグインAPIに従う。幾つかのプラグインは、あるツール(例えば、OpenGL)に特有のものであり、それら自体の基準(スタンダード)がある。プラグインの各クラスは、クラス特有のAPIsを有する。幾つかの実施形態において、プラグインは、全てのクライアントステーションアクセスについて、ネイティブなアプリケーションランタイムに依存する。プラグインが使用される各構成要素において、GUID名称空間(ネームスペース)を用いて、プロトコルが、機能のネゴシエーションを可能にする。例えば、幾つかのインスタンスにおいて、ネットワークストリームを接続する時には、その提供するクライアントネットワークノードは、その暗号化プラグインGUIDリストを、好みの順序で提供し、及び、受け取るネットワークノードは、これらの提供された中から選択して、選択によってか又は拒否によって応答する。
●暗号化アルゴリズム
●圧縮アルゴリズム
●認証アルゴリズム
●認証情報(クレデンシャル)
●グラフィックエフェクト
●物理エクステンション
●スクリプトエクステンション
●入力デバイスホスティング
●オーディオミックス
●オーディオソース
●オーディオインサート
●ストリームトランスポート
●タイムサービス
これらのプラグインクラスは、以下のパラグラフ内において画定(定義)される。
暗号化は、ストリームトランスポート機能であり、ストリーム生成時にネゴシエートされる。このセッション定義は、暗号化VariantIDを含むこととなる。例示的な暗号化バリアントは、AES及びRC4ブロック暗号化を含む。
圧縮は、オプションのチャンネルコンテンツ機能である。トランスポートがチャンネル定義をネゴシエートする時に、チャンネルは圧縮を選択する。認可するステーションが、利用可能な圧縮オプションを提供し、及び、公開(又は発行)するステーションは、該公開されるもの(又は発行されるもの)が提供される時に、その選択を指示する。オーディオコーデックは、それらのコンテンツは既に圧縮されているので、圧縮をスキップするよう選択することができる。例示的なオーディオ圧縮プラグインバリアントは、チャンネル指定プライミングストリームによるITU−T V.44圧縮プロセスを実現する。
ネットワークインフラサービスは、接続を行うために、ある認証プロトコルを要求する。サードパーティのサーバは、特定の認証要件を有することができる。認証プロトコルは、時折、変更され得る。コアPluginAPIに加えて、認証プラグインは、認証プロトコルを実行するための、及び、ローカル認証情報(クレデンシャル)にアクセスするための、APIsを有する。例示的な認証プラグインバリアントは、イニシャルサーバに対して、SSLタイプの認証をサポートするプラグインバリアントと、トークンとして署名されたIDを用いて、後続のサーバログインをサポートするプラグインバリアントと、を含む。
認証情報(クレデンシャル)は、生成されることが可能であり、及び、記憶させるために及び認証アルゴリズムによって使用されるためにプラグイン内にカプセル化される必要がある。例示的な認証情報(クレデンシャル)は、公開キーを含んだ証明書である。
OpenGL及びColladaは、スクリプトにすることが可能なシェーダー、サンプラ、プロファイル、及び注釈(アノテーション)をサポートする。幾つかの実施形態は、Collada cg_surface_typeと、シェーダーであるglsl_surface_typeと、サンプラであるgl_samplerX及びcg_samplerXと、をサポートする。
幾つかの実施形態において、動的な振る舞いのループ内へと特定のフック(hooks)が含まれるようにするために、オープン・ダイナミック・エンジン(ODE)が修正される。シーングラフ内のエンティティに対して物理プロパティを提供することによって、仮想エリアアプリケーションが、典型的には、物理特性を指定する。物理エクステンションプラグインは、そのプラグインによって処理される関連付けられたプロパティGUID(複数可)をクエリー(検索要求)するためのAPIを有する。このようにして、物理プラグインは、関連オブジェクト及び仮想エリアだけが呼び出される。幾つかの実施形態は、モデル内のジョイントであるCollada rigid_constraintと、アバター及びアーチファクトのためのグローバルなモーションアルゴリズムであるOpenGLコリジョン検出とをサポートする。
スクリプトエクステンションプラグインは、スクリプトするルーチン(例えば、Java及びJavaスクリプト)のラッピングを可能にするための、及び、ネイティブなアプリケーションランタイムをそれに提供するための、追加的なAPIを有する。スクリプトは、スクリプトエクステンションプラグインのGUIDを含むSODA記録を通じて画定される。
入力デバイスプラグインは、アプリケーション論理によって処理される標準入力イベント(例えば、コンピュータキーボード、コンピュータマウス、Xbox(登録商標)コントローラ、及びWii(登録商標)コントローラによって生成されるイベント)のためのSODA記録を生成する。
オーディオ処理(プロセッシング)は、発生源(例えば、マイクロホン)においてが望ましく、エフェクト及びミキシングは、送り先(例えば、スピーカ)においてが望ましい。オーディオプラグインは、典型的には、オーディオネットワークルーティングを変更することができない。何故ならば、それは、他のユーザの経験(体験)に影響を及ぼすからである。Windows(登録商標)プラットフォーム上のオーディオプラグインは、AudioPluginAPIに従うDLLsである。それらは、リアルタイムカーネル260に登録され、SODAによる参照のために利用可能である。仮想エリア開発者は、仮想エリアアプリケーションの一部として(例えば、拡張Colladaフィールドか又はVSDL動作を用いて)、オーディオプラグインをリクエストすることができる。
STRAWは、ネットワーク上のセッションをホストするためにストリームトランスポートプラグインを使用する。ストリームは、パケットを伝送(トランスポート)し、及び、信頼性、認証、及び暗号化を提供する。
リアルタイムスケジューラ260は、クライアントネットワークノード間の時間を同期させることに関与している。この目的のため、各クライアントネットワークノードは、SISか、NTP(ネットワークタイムプロトコル)か、又はITS(インターネットタイムサービス)などのインターネット時間基準に同期することとなる。
全てのプラグインクラスオブジェクトは、PlugInVariantに基づく。
[暗号化アルゴリズム(Encryption algorithm)]
このプラグインは、PlugInVariantに基づく。該プラグインは、キーイング(keying)を含むブロック暗号化アルゴリズムを実施する。このプラグインは、キー(鍵)を除いて処理状態を維持しない(ステイトレスである)(すなわち、各暗号化が任意の他のものと独立している)。
Encryption::Encrypt(data, size, target)
Encryption::Decrypt(data, size, target)
Encryption::Dtor()
[圧縮アルゴリズム(Compression algorithm)]
このプラグインは、PlugInVariantに基づく。該プラグインは、1つか又は複数のロスレス圧縮/解凍アルゴリズムを実施する。該プラグインの圧縮は、連続的なストリームであり、内部状態テーブルを維持することができる。該アルゴリズムは、各KeyFrameに関して再開され、該アルゴリズムには、エミットされてはいないが圧縮状態に寄与してる「プライミング」ブロックを処理することを含めることができる。
Compression::KeyFrame(preload)
Compression::Compress(data, size, target)
Compression::Decompress(data, size, target)
Compression::Dtor()
[認証アルゴリズム(Authentication algorithm)]
このプラグインは、PlugInVariantに基づく。該プラグインは、ローカル認証情報(クレデンシャル)にアクセスして、1つか又は複数状態の、クライアント認証・状態マシンを実現する。認証・状態マシンは、認証サーバに対する通信リンクの制御を行わない。認証・状態マシンは、メッセージのみを処理して、後続のメッセージを生成する。
Authentication::InitialState()
Authentication::State(state)
Authentication::Advance(messageData, messageConsumer&)
Authentication::SessionKey(key&)
Authentication::Dtor()
[認証情報(クレデンシャル)(Credential)]
このプラグインは、PlugInVariantに基づく。該プラグインは、プラットフォーム特定クレデンシャル記憶部にアクセスする。
Credential::Select(index)
Credential::Accept(data, size, index&)
Credential::PrivateKey(key&)
Credential::PublicKey(key&)
Credential::Passphrase(passphrase&)
Credential::Dtor()
[グラフィカルエフェクト(Graphical effects) − シェーダー(Shader)]
このプラグインは、PlugInVariantに基づく。該プラグインは、3Dレンダリングに影響を及ぼす。
Shader::Initialize(format, size, mip, type, code, technique)
Shader::SetTextureParameters(texture)
Shader::SetTextureSteam(idStream)
Shader::Render(pass)
Shader::Dtor()
[グラフィカルエフェクト(Graphical effects) − サンプラ(Sampler)]
サンプラAPIは、PlugInVariantに基づく。該サンプラAPIは、表面に対してテクスチャをマッピングすることをサポートする。
Sampler::Initialize(type, wrap, minFilter, magFilter, mipFilter, color, mipmap_maxLevel, mipmap_bias)
Sampler::Dtor()
[物理エクステンション(Physics Extension) − ジョイント(Joint)]
このプラグインは、PlugInVariantに基づく。該プラグインは、動作(モーション)のダイナミクスを拡張(拡大)する。
Joint::Initialize(body1, anchor1, orientation1, body2, anchor2, orientation2, axis, erp, cfm)
Joint::Torque(torque)
Joint::GetState(fps&, erp&, jLin1&, jAng1&, jLin2&, jAng2&, c&, cfm&, low&, high&)
[物理エクステンション(Physics Extension) − コリジョン(Collision)]
コリジョンAPIは、PlugInVariantに基づく。該コリジョンAPIは、コリジョン検出を迅速に計算することをサポートする。幾つかの実施形態において、コリジョンプラグインバリアントは、オープン・ダイナミクス・エンジン(ODE)内のクアッド・ツリークラスdxSpaceアルゴリズムを実現することができる。
Collision::Step()
[スクリプトエクステンション(Script extension)]
このプラグインは、PlugInVariantに基づく。該プラグインは、仮想エリアアプリケーションによって提供されるコードの実行をサポートする。このコードは、バイナリ形式におけるものであり、その特定コード定義がサポートするAPIと言葉とによってラベル付けられる。該プラグインは、言葉によって異なる。該プラグインは、ある特定のコード定義をロードし、及びそれをコールし、APIにとって適切なネイティブアプリケーションランタイムオブジェクトを提供する。
ScriptExtension::Execute(code, api)
ScriptExtension::Dtor()
[入力デバイスホスティング(Input device hosting)]
このプラグインは、PlugInVariantに基づく。該プラグインは、ユーザイベントのキャプチャー(オーディオを除く)をサポートする。これは、マウスから、顔認識を有するビデオカメラまでのあらゆるものを含む。該プラグインは、ユーザイベントをキューに生成する。
InputDevice::Configure(arg)
[オーディオミックス(Audio Mix)]
このプラグインは、AudioComponentに基づく。該プラグインは、2つのオーディオストリームを組み合わせる。
AudioMix::Configure(param)
AudioMix::Dtor()
[オーディオソース(Audio Source)]
このプラグインは、AudioComponentに基づく。該プラグインは、ポーリング可能なオーディオストリームを提供する。
AudioSource::Configure(arg)
AudioSource::GetLatency(latency&)
AudioSource::Poll(data)
[オーディオインサート(Audio Insert)]
このプラグインは、AudioComponentに基づく。該プラグインは、オーディオストリームを変換する。該プラグインは、ストリームを、圧縮するか、解凍するか、又は単に修正することができる。
AudioInsert::GetLatency(latency&)
AudioInsert::Process()
[オーディオセンド(Audio Send)]
このプラグインは、AudioComponentに基づく。該プラグインは、オーディオストリームを2つの等しいストリームに分割する(ストリームをコピーする)。任意のAudioSourceが、任意の他のオーディオ要素にルーティングされ得る。
AudioSend::Dtor()
AudioSend::Copy(data&)
[ストリームトランスポート(Stream Transport)]
このプラグインは、PlugInVariantに基づく。1つの例示的なストリームトランスポートプラグインバリアントは、設定可能な認証及び暗号化を有したIP UDPトランスポートをサポートする。
Transport::MTU()
Transport::Hello()
Transport::Challenge(credential)
Transport::Respond(challenge, encryption)
Transport::Response(response, encryption)
Transport::IdentifyingToken()
Transport::IdentifyingToken(token)
Transport::Send(data, size, idChannel)
Transport::Receive(record)
Transport::Dtor()
[タイムサービス(Time Service)]
このプラグインは、PlugInVariantに基づく。該プラグインは、クライアントネットワークノード時間を、インターネット基準に同期させる。
TimeSvc::Sync()
TimeSvc::Dtor()
VI.SODA定義
Session
IDStation1 GUID
IDStation2 GUID
IDSession GUID
SessionFailure
IDSession GUID
Reason long
Parameter long
Station
ID GUID
STRAW_Address IP, Port
STRAW_Transport [GUID]
Publish
IDClient GUID
IDServer GUID
IDChannel GUID
IDCompression [GUID]
Subscribe
IDClient GUID
IDServer GUID
IDChannel GUID
IDChannelIndex GUID
Reliable bit
Compressed bit
KeyFrameUser bit
IDCompression GUID
Preload text
StreamKeepAlive
IDSession GUID
Timeout long
StreamFailure
IDSession GUID
ChannelFailure
IDChannelIndex GUID
CommunicantState
IDSelf GUID
IDCommunicant GUID
State short
HID
IDDeviceClass GUID
IDDevice GUID
ID GUID
AudioParameter
ID GUID
IDParameter GUID
Value short
AudioDevice
IDDeviceClass GUID
IDDevice GUID
ID GUID
AreaSession
IDArea GUID
ID GUID
PhysicsCheckpoint
Location doubleX3
Velocity doubleX3
Acceleration doubleX3
Orientation doubleX3
Center Of Gravity doubleX4
Inertia Tensor doubleX3
Mass double
Zone
ID GUID
Shape Mesh
Origin doubleX3
Avatar [GUID]
AudioAperture
ID GUID
Radius double
Origin doubleX3
Orientation doubleX3
AudioObstruction
ID GUID
Radius double
Origin doubleX3
AudioReverb
ID GUID
Shape Mesh
Origin doubleX3
AudioMix
ID GUID
Type GUID
Variant GUID
Avatar GUID
Source1 GUID
Source2 GUID
AudioEffect
ID GUID
Type GUID
Variant GUID
Avatar GUID
Source1 GUID
AudioStream
IDAudio GUID
Avatar GUID
AudioCalculation
IDSource GUID
IDSink GUID
IDComponent GUID
IDOperation GUID
Param1 long
Param2 long
PlugIn
Type GUID
Name Text
ID GUID
API Supported [GUID]
UpgradeDependencyList
Base Installation GUID
Description Text
Upgrade ID [GUID]
Upgrade
ID GUID
Offset long
Data []
AudioRecord
ID GUID
IDAudio GUID
IDStore GUID
AudioPlayback
ID GUID
IDAudio GUID
IDStore GUID
NetworkDNS
Address String
NetworkProxy
Address String
Debuglnfo
ID GUID
Statistic GUID
Reset Boolean
DebugTrap
ID GUID
Trap GUID
Rearm Boolean
HID
IDKvm GUID
HID event
VII.結論
本明細書内において記載されている実施形態は、それぞれのネットワークノード上において操作する通信者間のリアルタイム通信(又は伝達)をサポートするリアルタイムカーネルを提供する。通信者、仮想エリア、及び他のネットワークリソースに接続し、ユーザ入力に応答してこれらの接続をスイッチングし、及び、リアルタイムデータストリームをミキシングする、という複雑なタスクを、該リアルタイムカーネルが処理する。該リアルタイムカーネルによって、開発者は、低レベルな、コードの配管(plumbing)の代りに、高レベルの通信機能を開発することに集中することが可能になる。広範囲の現在利用可能なコンピューティングデバイス及びネットワーク接続を用いてリアルタイム通信性能が達成され得ることとなるように、リアルタイムカーネルは、比較的低い計算リソース要件を課す。
1.リアルタイムデータストリーム処理を、コンピュータにより実現する方法であって、
1つか又は複数のストリームハンドリング命令(210)から、リアルタイムストリームハンドラ(206)の仕様をパーズし、ここで、該パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、入力ソース識別子、出力シンク識別子、及び、1つか又は複数のデータ処理オブジェクトの各々の識別子のそれぞれを、パーズすることを含んでおり、
前記識別子のうちの幾つかのそれぞれに対応するリアルタイムストリーム処理オブジェクトをインスタンス化し、
前記インスタンス化されたリアルタイムストリーム処理オブジェクトのうちの幾つかを含む、有向グラフ(212)を、前記仕様に従って作成し、
前記入力ソース識別子に対応する入力ソースからリアルタイムデータストリームを受け取り、及び、
前記出力シンク識別子に対応する出力シンクにおいて結果データストリームを生成する
ことを含み、
前記生成することが、前記有向グラフ(212)を通じて前記リアルタイムデータストリームを処理することを含むことからなる、方法。
2.前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、データ処理オブジェクトの識別子を抽出することを含み、及び、前記作成することは、前記抽出された識別子に対応するリアルタイムストリーム処理オブジェクトをインスタンス化したものから、前記有向グラフ(212)を組み立てることを含むことからなる、上項1に記載の方法。
3.前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、オーディオプロセッシングオブジェクトの識別子を抽出することを含み、及び、前記生成することは、前記抽出された識別子のうちの幾つかのそれぞれに対応する1つか又は複数のインスタンス化されたオーディオプロセッシングオブジェクトを通じて、前記リアルタイムデータストリームを処理することを含むことからなる、上項1に記載の方法。
4.前記インスタンス化することは、それぞれの識別子についてオブジェクトライブラリをクエリーして、該クエリーすることに応答して該オブジェクトライブラリからオブジェクトを検索して、及び、該検索したオブジェクトをインスタンス化することを含むことからなる、上項1に記載の方法。
5.前記インスタンス化することは、前記識別子のうちの幾つかのそれぞれを含んだアプリケーションプログラムインターフェースプロシージャ(API)コールを、処理オブジェクトに対して発行することを含むことからなる、上項4に記載の方法。
6.前記生成することが、
1つか又は複数の前記ストリームハンドリング命令(210)内において指定されたリアルタイム状態情報からコンフィギュレーションパラメータ値を決定し、及び、
前記有向グラフ(212)内の1つか又は複数の前記インスタンス化されたリアルタイムストリーム処理オブジェクトを、前記コンフィギュレーションパラメータ値によって動的に構成する
ことを含むことからなる、上項1に記載の方法。
7.前記受け取ることは、前記仕様内の第2の入力ソース識別子に対応する第2の入力ソースからの第2のリアルタイムデータストリームを受け取ることを含み、及び、前記生成することは、前記有向グラフ(212)を通じて該第2のリアルタイムデータストリームを処理することを含むことからなる、上項1に記載の方法。
8.前記インスタンス化することは、前記パーズした識別子のうちのそれぞれの1つに対応するリアルタイムストリームミキシングオブジェクト(220)をインスタンス化することを含み、前記作成することは、前記インスタンス化されたリアルタイムストリームミキシングオブジェクトを、前記有向グラフ(212)内へと組み込むことを含み、及び、前記生成することは、前記インスタンス化されたリアルタイムストリームミキシングオブジェクト(220)を実行して、前記第1のリアルタイムデータストリームと前記第2のリアルタイムデータストリームとを組み合わせることを含むことからなる、上項7に記載の方法。
9.前記第1の入力ソースは、第1のリモートネットワークノードから到来するリアルタイムデータストリーム(214)の定義に対応し、及び、前記第2の入力ソースは、第2のリモートネットワークノードから到来するリアルタイムデータストリーム(214)の定義に対応することからなる、上項8に記載の方法。
10.前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、第2のリアルタイムストリームハンドラ(22)の第2の仕様をパーズすることを含み、該第2の仕様は、第2の入力ソース識別子、第2の出力シンク識別子、及び1つか又は複数のデータ処理オブジェクトの各々のそれぞれの識別子を含み、
前記作成することは、前記インスタンス化されたリアルタイムストリーム処理オブジェクトのうちの幾つかから、第2の有向グラフを、前記第2の仕様に従って作成することを含み、
前記受け取ることが、前記第2の入力ソース識別子に対応する第2の入力ソースから第2のリアルタイムデータストリームを受け取ることを含み、ここで、前記第1及び第2のリアルタイムデータストリームは、データタイプに関して異なっており、及び、
前記生成することが、第2の有向グラフを通じて、前記第2の出力シンク識別子に対応する第2の出力シンクへと、前記第2のリアルタイムデータストリームを処理することを含むことからなる、上項1に記載の方法。
11.前記第1のリアルタイムデータストリームと前記第2のリアルタイムデータストリームとが、同時に処理されることからなる、上項10に記載の方法。
Claims (27)
- ネットワーク通信環境におけるリアルタイムデータストリーム処理をコンピュータにより実現する方法であって、
前記ネットワーク通信環境は、少なくとも1つのサーバネットワークノードによって実施されるネットワークサービスを含み、かつ、ユーザーのそれぞれのネットワークノードと、1以上の仮想エリア内のそれぞれの通信者オブジェクトに関連する他の通信者との間のリアルタイム通信をサポートし、
前記方法が、
前記1以上の仮想エリアのうちの特定の仮想エリアに関連する前記ネットワークサービスから受け取った1つか又は複数のストリームハンドリング命令(210)から、リアルタイムストリームハンドラ(206)の仕様をパーズし、ここで、該パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、入力ソース識別子、出力シンク識別子、及び、1つか又は複数のデータ処理オブジェクトの各々の識別子のそれぞれを、パーズすることを含み、前記1つか又は複数のストリームハンドリング命令は、前記特定の仮想エリア内の通信者オブジェクトのそれぞれの位置を記述するリアルタイム位置情報に基づき、
前記パーズされた識別子に対応するリアルタイムストリーム処理オブジェクトをインスタンス化すること、
前記インスタンス化されたリアルタイムストリーム処理オブジェクトから、有向グラフ(212)を、前記仕様に従って作成すること、
前記入力ソース識別子に対応する入力ソースからリアルタイムデータストリームを受け取ること、及び、
前記出力シンク識別子に対応する出力シンクにおいて結果データストリームを生成すること
を含み、
前記パーズすること、前記インスタンス化すること、前記作成すること、前記受け取ること、及び前記生成することが、前記ユーザーのネットワークノードによって実施され、
前記生成することが、前記有向グラフ(212)を通じて前記リアルタイムデータストリームを処理することを含み、
前記生成することが、前記リアルタイム位置情報から決定されたコンフィギュレーションパラメータ値に基づき、及び、前記コンフィギュレーションパラメータ値によって前記有向グラフ内の前記インスタンス化されたリアルタイムストリーム処理オブジェクトの1以上を動的に構成することを含むことからなる、方法。 - 前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、データ処理オブジェクトの識別子を抽出することを含み、及び、前記作成することは、前記抽出された識別子に対応するリアルタイムストリーム処理オブジェクトをインスタンス化したものから、前記有向グラフ(212)を組み立てることを含むことからなる、請求項1に記載の方法。
- 前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、オーディオプロセッシングオブジェクトの識別子を抽出することを含み、及び、前記生成することは、前記抽出された識別子のうちの幾つかのそれぞれに対応する1つか又は複数のインスタンス化されたオーディオプロセッシングオブジェクトを通じて、前記リアルタイムデータストリームを処理することを含むことからなる、請求項1に記載の方法。
- 前記インスタンス化することは、それぞれの識別子についてオブジェクトライブラリをクエリーして、該クエリーすることに応答して該オブジェクトライブラリからオブジェクトを検索して、及び、該検索したオブジェクトをインスタンス化することを含むことからなる、請求項1に記載の方法。
- 前記インスタンス化することは、前記識別子のうちの幾つかのそれぞれを含んだアプリケーションプログラムインターフェース(API)プロシージャコールを、処理オブジェクトに対して発行することを含むことからなる、請求項4に記載の方法。
- 前記生成することが、
1つか又は複数の前記ストリームハンドリング命令(210)内において指定されたリアルタイム状態情報からコンフィギュレーションパラメータ値を決定し、及び、
前記有向グラフ(212)内の1つか又は複数の前記インスタンス化されたリアルタイムストリーム処理オブジェクトを、前記コンフィギュレーションパラメータ値によって動的に構成する
ことを含むことからなる、請求項1に記載の方法。 - 前記受け取ることは、前記仕様内の第2の入力ソース識別子に対応する第2の入力ソースからの第2のリアルタイムデータストリームを受け取ることを含み、及び、
前記生成することは、前記有向グラフ(212)を通じて該第2のリアルタイムデータストリームを処理することを含むことからなる、請求項1に記載の方法。 - 前記インスタンス化することは、前記パーズした識別子のうちのそれぞれのものに対応するリアルタイムストリームミキシングオブジェクト(220)をインスタンス化することを含み、前記作成することは、前記インスタンス化されたリアルタイムストリームミキシングオブジェクトを、前記有向グラフ(212)内へと組み込むことを含み、及び、前記生成することは、前記インスタンス化されたリアルタイムストリームミキシングオブジェクト(220)を実行して、前記第1のリアルタイムデータストリームと前記第2のリアルタイムデータストリームとを組み合わせることを含むことからなる、請求項7に記載の方法。
- 前記第1の入力ソースは、第1のリモートネットワークノードから到来するリアルタイムデータストリーム(214)の定義に対応し、及び、前記第2の入力ソースは、第2のリモートネットワークノードから到来するリアルタイムデータストリーム(214)の定義に対応することからなる、請求項8に記載の方法。
- 前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、第2のリアルタイムストリームハンドラ(22)の第2の仕様をパーズすることを含み、該第2の仕様は、第2の入力ソース識別子、第2の出力シンク識別子、及び1つか又は複数のデータ処理オブジェクトの各々のそれぞれの識別子を含み、
前記作成することは、前記インスタンス化されたリアルタイムストリーム処理オブジェクトのうちの幾つかから、第2の有向グラフを、前記第2の仕様に従って作成することを含み、
前記受け取ることが、前記第2の入力ソース識別子に対応する第2の入力ソースから第2のリアルタイムデータストリームを受け取ることを含み、ここで、前記第1及び第2のリアルタイムデータストリームは、データタイプに関して異なっており、及び、
前記生成することが、第2の有向グラフを通じて、前記第2の出力シンク識別子に対応する第2の出力シンクへと、前記第2のリアルタイムデータストリームを処理することを含むことからなる、請求項1に記載の方法。 - 前記第1のリアルタイムデータストリームと前記第2のリアルタイムデータストリームとが、同時に処理されることからなる、請求項10に記載の方法。
- 前記インスタンス化されたリアルタイムストリーム処理オブジェクトのうちの少なくとも1つが、ローカルハードウェア構成要素を制御するドライバモジュールに対するそれぞれのコールをカプセル化することからなる、請求項1に記載の方法。
- 前記パーズすること、前記インスタンス化すること、前記作成すること、前記受け取ること、前記生成すること、及び前記発生させることは、仮想エリア(28)内の第1のオブジェクトに関連付けられたローカルネットワークノード(16)上において実施され、及び、前記受け取ることは、該仮想エリア(28)内の第2のオブジェクトに関連付けられたリモートネットワークノードから前記リアルタイムデータストリームを受け取ることを含むことからなる、請求項1に記載の方法。
- 前記1つか又は複数のストリームハンドリング命令(210)は、前記仮想エリア(28)内の前記第1及び第2のオブジェクトのそれぞれの位置を表すリアルタイム位置情報を含み、及び、前記生成することは、該リアルタイム位置情報からコンフィギュレーションパラメータ値を決定して、前記有向グラフ内の、1つか又は複数の前記インスタンス化されたリアルタイムストリーム処理オブジェクトを、該コンフィギュレーションパラメータ値によって動的に構成することを含むことからなる、請求項13に記載の方法。
- 前記受け取ることは、前記仮想エリア(28)内の第3のオブジェクトに関連付けられている第2のリモートネットワークノードから第2のリアルタイムデータストリームを受け取ることを含み、前記作成することは、前記パーズした識別子のうちのそれぞれのものに対応するインスタンス化されたミキシングオブジェクトを有した前記有向グラフを構築することを含み、及び、前記生成することは、該インスタンス化されたミキシングオブジェクト(220)を実行して、前記第1のリアルタイムデータストリームと前記第2のリアルタイムデータストリームとを組み合わせることを含むことからなる、請求項14に記載の方法。
- 前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、第2のリアルタイムストリームハンドラ(22)の第2の仕様をパーズすることを含み、該第2の仕様は、第2の入力ソース識別子、第2の出力シンク識別子、及び1つか又は複数のデータ処理オブジェクトの各々のそれぞれの識別子を含み、
前記作成することは、前記インスタンス化されたリアルタイムストリーム処理オブジェクトのうちの幾つかから、第2の有向グラフを、前記第2の仕様に従って作成することを含み、
前記受け取ることが、前記第2の入力ソース識別子に対応する第2の入力ソースから、第2のリアルタイムデータストリームを受け取ることを含み、ここで、該第2の入力ソースは、第2のリモートネットワークノードから到来するリアルタイムデータストリームの定義に対応しており、及び、前記第1及び第2のリアルタイムデータストリームは、データタイプに関して異なっており、及び、
前記生成することが、第2の有向グラフを通じて、前記第2の出力シンク識別子に対応する第2の出力シンクへと、前記第2のリアルタイムデータストリームを処理することを含むことからなる、請求項14に記載の方法。 - 前記パーズすることは、前記1つか又は複数のストリームハンドリング命令(210)から、グラフィック処理オブジェクトの識別子を抽出することを含み、及び、
前記生成することは、前記抽出した識別子のうちの幾つかの各々に対応する1つか又は複数のインスタンス化されたグラフィック処理オブジェクトを通じて前記リアルタイムデータストリームを処理して、該インスタンス化されたグラフィック処理オブジェクトを動的に構成して、前記仮想エリア(28)内の前記第1のオブジェクトの配向と、位置と、動作と、該位置に少なくとも部分的に基づいた姿勢とのうちの少なくとも1つに関して、第1のオブジェクトのビジュアル表現を制御することを含むことからなる、請求項14に記載の方法。 - 前記パーズすること、前記インスタンス化すること、前記作成すること、前記受け取ること、前記生成すること、及び前記発生させることは、リモートネットワークノード上において実施され、及び、
ローカルネットワークノード(16)上において実行するソフトウェアアプリケーションのインターフェース要素を、前記リアルタイムデータストリームに関連付けて、及び、該ローカルネットワークノード(16)から前記リモートネットワークノードへと該リアルタイムデータストリームを伝達する、ことを前記方法が更に含むことからなる、請求項1に記載の方法。 - 前記1つか又は複数のストリームハンドリング命令を、前記ローカルネットワークノード(16)から前記リモートネットワークノードへと伝達することを更に含むことからなる、請求項18に記載の方法。
- 前記ソフトウェアアプリケーションが、デスクトップソフトウェアアプリケーションプログラムであることからなる、請求項19に記載の方法。
- 前記ソフトウェアアプリケーションが、MicrosoftのOffice(登録商標)デスクトップソフトウェアアプリケーションプログラムであることからなる、請求項20に記載の方法。
- 前記ストリームハンドリング命令(210)が、それぞれの固有の識別子によって前記処理オブジェクトを指定することからなる、請求項1に記載の方法。
- 連続する固定長インターバルの各々の間、前記出力シンクから前記入力ソースまでの前記有向グラフ(212)を、トラバースすることを、前記生成することが含むことからなる、請求項1に記載の方法。
- 前記パーズすることが、1つか又は複数の記録をパーズすることを含み、該1つか又は複数の記録の各々は、それぞれの定義タイプと、それぞれの定義長と、定義タイプ特定フィールド及びそれぞれの定義タイプ特定定義のうちの少なくとも1つと、を含むことからなる、請求項1に記載の方法。
- 前記結果データストリームに少なくとも部分的に基づいて、人間にとって知覚可能な出力を発生させることを更に含むことからなる、請求項1に記載の方法。
- 装置であって、
コンピュータ可読命令を格納するコンピュータ可読媒体と、
メモリに結合されたデータプロセッシングユニット
を備え、
前記データプロセッシングユニットは、
少なくとも1つのサーバネットワークノードによって実施されるネットワークサービスを含み、かつ、前記装置と、1以上の仮想エリア内のそれぞれのオブジェクトに関連する他のネットワークノードとの間のリアルタイム通信をサポートするネットワーク通信環境において、
前記1以上の仮想エリアのうちの特定の仮想エリアに関連する前記ネットワークサービスから受け取った1つか又は複数のストリームハンドリング命令(210)から、リアルタイムストリームハンドラ(22)の仕様をパーズし、ここで、該パーズすることは、前記1つか又は複数のストリームハンドリング命令から、入力ソース識別子、出力シンク識別子、及び、1つか又は複数のデータ処理オブジェクトの各々の識別子のそれぞれを、パーズすることを含んでおり、前記1つか又は複数のストリームハンドリング命令は、前記特定の仮想エリア内の前記オブジェクトのそれぞれの位置を記述するリアルタイム位置情報に基づき、
前記パーズされた識別子に対応するリアルタイムストリーム処理オブジェクトをインスタンス化し、
前記インスタンス化されたリアルタイムストリーム処理オブジェクトから、有向グラフ(212)を、前記仕様に従って作成し、
前記入力ソース識別子に対応する入力ソースからリアルタイムデータストリーム(214)を受け取り、及び、
前記出力シンク識別子に対応する出力シンクにおいて結果データストリームを生成する
ことを含む動作を実施させるための動作可能な命令の実行に少なくとも部分的に基づいて、前記コンピュータ可読命令を実行するよう動作可能であり、
前記生成することが、前記有向グラフ(212)を通じてリアルタイムデータストリームを処理することを含み、
前記生成することが、前記リアルタイム位置情報から決定されたコンフィギュレーションパラメータ値に基づき、及び、前記コンフィギュレーションパラメータ値によって前記有向グラフ内の前記インスタンス化されたリアルタイムストリーム処理オブジェクトの1以上を動的に構成することを含むことからなる、装置。 - 少なくとも1つのコンピュータ可読媒体であって、該コンピュータ可読媒体内に具現化されたコンピュータ可読プログラムコードを該コンピュータ可読媒体が有し、
前記コンピュータ可読プログラムコードは、
少なくとも1つのサーバネットワークノードによって実施されるネットワークサービスを含み、かつ、前記コンピュータと、1以上の仮想エリア内のそれぞれのオブジェクトに関連する他のネットワークノードとの間のリアルタイム通信をサポートするネットワーク通信環境において、
前記1以上の仮想エリアのうちの特定の仮想エリアに関連する前記ネットワークサービスから受け取った1つか又は複数のストリームハンドリング命令(210)から、リアルタイムストリームハンドラ(22)の仕様をパーズし、ここで、該パーズすることは、前記1つか又は複数のストリームハンドリング命令から、入力ソース識別子、出力シンク識別子、及び、1つか又は複数のデータ処理オブジェクトの各々の識別子のそれぞれを、パーズすることを含んでおり、前記1つ又は複数のストリームハンドリング命令は、前記特定の仮想エリア内の前記オブジェクトのそれぞれの位置を記述するリアルタイム位置情報に基づき、
前記パーズされた識別子に対応するリアルタイムストリーム処理オブジェクトをインスタンス化し、
前記インスタンス化されたリアルタイムストリーム処理オブジェクトから、有向グラフ(212)を、前記仕様に従って作成し、
前記入力ソース識別子に対応する入力ソースからリアルタイムデータストリーム(214)を受け取り、及び、
前記出力シンク識別子に対応する出力シンクにおいて結果データストリームを生成する
ことを含む方法を実現するために、コンピュータによって実行されるよう構成されており、
前記生成することが、前記有向グラフ(212)を通じてリアルタイムデータストリームを処理することを含み、
前記生成することが、前記リアルタイム位置情報から決定されたコンフィギュレーションパラメータ値に基づき、及び、前記コンフィギュレーションパラメータ値によって前記有向グラフ内の前記インスタンス化されたリアルタイムストリーム処理オブジェクトの1以上を動的に構成することを含むことからなる、少なくとも1つのコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12037208P | 2008-12-05 | 2008-12-05 | |
US61/120,372 | 2008-12-05 | ||
PCT/US2009/066764 WO2010065848A2 (en) | 2008-12-05 | 2009-12-04 | Realtime kernel |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012262550A Division JP2013084283A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
JP2012262551A Division JP2013065341A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012511213A JP2012511213A (ja) | 2012-05-17 |
JP2012511213A5 JP2012511213A5 (ja) | 2014-08-28 |
JP5721634B2 true JP5721634B2 (ja) | 2015-05-20 |
Family
ID=42232283
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011539734A Expired - Fee Related JP5721634B2 (ja) | 2008-12-05 | 2009-12-04 | リアルタイムカーネル |
JP2012262550A Pending JP2013084283A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
JP2012262551A Pending JP2013065341A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012262550A Pending JP2013084283A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
JP2012262551A Pending JP2013065341A (ja) | 2008-12-05 | 2012-11-30 | リアルタイムカーネル |
Country Status (7)
Country | Link |
---|---|
US (6) | US8578000B2 (ja) |
EP (1) | EP2377031A4 (ja) |
JP (3) | JP5721634B2 (ja) |
KR (3) | KR20130010910A (ja) |
CN (2) | CN106131178A (ja) |
IL (1) | IL213038A0 (ja) |
WO (1) | WO2010065848A2 (ja) |
Families Citing this family (175)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769806B2 (en) | 2007-10-24 | 2010-08-03 | Social Communications Company | Automated real-time data stream switching in a shared virtual area communication environment |
US8397168B2 (en) * | 2008-04-05 | 2013-03-12 | Social Communications Company | Interfacing with a spatial virtual communication environment |
US11876707B2 (en) * | 2007-10-24 | 2024-01-16 | Sococo, Inc. | Routing virtual area based communications |
US8407605B2 (en) | 2009-04-03 | 2013-03-26 | Social Communications Company | Application sharing |
US9514444B2 (en) | 2009-01-15 | 2016-12-06 | Sococo, Inc. | Encapsulating virtual area based communicant assemblies |
US8405702B1 (en) | 2008-11-24 | 2013-03-26 | Shindig, Inc. | Multiparty communications systems and methods that utilize multiple modes of communication |
US9401937B1 (en) | 2008-11-24 | 2016-07-26 | Shindig, Inc. | Systems and methods for facilitating communications amongst multiple users |
CN106131178A (zh) | 2008-12-05 | 2016-11-16 | 社会传播公司 | 实时内核 |
US8775595B2 (en) * | 2010-09-11 | 2014-07-08 | Social Communications Company | Relationship based presence indicating in virtual area contexts |
US20130283169A1 (en) | 2012-04-24 | 2013-10-24 | Social Communications Company | Voice-based virtual area navigation |
US9853922B2 (en) * | 2012-02-24 | 2017-12-26 | Sococo, Inc. | Virtual area communications |
TWI534633B (zh) | 2009-03-31 | 2016-05-21 | 萬國商業機器公司 | 管理一虛擬物件的方法、電腦程式產品及伺服器裝置 |
US9344745B2 (en) | 2009-04-01 | 2016-05-17 | Shindig, Inc. | Group portraits composed using video chat systems |
US8938093B2 (en) * | 2009-04-21 | 2015-01-20 | International Business Machines Corporation | Addition of immersive interaction capabilities to otherwise unmodified 3D graphics applications |
US8779265B1 (en) | 2009-04-24 | 2014-07-15 | Shindig, Inc. | Networks of portable electronic devices that collectively generate sound |
US8629866B2 (en) * | 2009-06-18 | 2014-01-14 | International Business Machines Corporation | Computer method and apparatus providing interactive control and remote identity through in-world proxy |
US8675019B1 (en) * | 2009-12-03 | 2014-03-18 | Innoventions, Inc. | View navigation guidance system for hand held devices with display |
US8244754B2 (en) * | 2010-02-01 | 2012-08-14 | International Business Machines Corporation | System and method for object searching in virtual worlds |
US8949316B2 (en) * | 2010-03-09 | 2015-02-03 | Avistar Communications Corp. | Scalable high-performance interactive real-time media architectures for virtual desktop environments |
US9021390B1 (en) * | 2010-05-05 | 2015-04-28 | Zynga Inc. | Methods and apparatus for optimized pausing of an embedded application to render pop-up window |
JP5204155B2 (ja) * | 2010-06-21 | 2013-06-05 | 株式会社スクウェア・エニックス | ビデオゲームシステム |
US9444620B1 (en) * | 2010-06-24 | 2016-09-13 | F5 Networks, Inc. | Methods for binding a session identifier to machine-specific identifiers and systems thereof |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
WO2012027020A1 (en) | 2010-08-24 | 2012-03-01 | Exxonmobil Upstream Research Company | System and method for planning a well path |
US9100385B1 (en) * | 2010-10-01 | 2015-08-04 | Google Inc. | Management and synchronization of electronic media content information |
US8949717B2 (en) * | 2010-10-18 | 2015-02-03 | Yehonatan Rafael Maor | Method of controlling avatars |
US9276972B2 (en) * | 2010-12-14 | 2016-03-01 | Microsoft Technology Licensing, Llc | Real-time media optimization over remoted sessions |
US9560141B2 (en) * | 2010-12-29 | 2017-01-31 | Open Invention Network, Llc | Method and apparatus of performing peer-to-peer communication establishment |
US20120192088A1 (en) * | 2011-01-20 | 2012-07-26 | Avaya Inc. | Method and system for physical mapping in a virtual world |
US10318663B2 (en) | 2011-01-26 | 2019-06-11 | Exxonmobil Upstream Research Company | Method of reservoir compartment analysis using topological structure in 3D earth model |
WO2012115689A1 (en) | 2011-02-21 | 2012-08-30 | Exxonmobil Upstream Research Company | Reservoir connectivity analysis in a 3d earth model |
WO2012118917A2 (en) | 2011-03-03 | 2012-09-07 | Social Communications Company | Realtime communications and network browsing client |
US8521860B2 (en) * | 2011-03-29 | 2013-08-27 | Microsoft Corporation | Providing a witness service |
KR101312954B1 (ko) * | 2011-03-31 | 2013-10-01 | 주식회사 리코시스 | 3차원 테마를 표현하는 커버페이지를 제공하는 사용자 인터페이스 장치 및 그 구동 방법 |
CN103635891B (zh) * | 2011-05-06 | 2017-10-27 | 奇跃公司 | 大量同时远程数字呈现世界 |
US8799898B2 (en) * | 2011-05-31 | 2014-08-05 | Adobe Systems Incorporated | Methods and apparatus for binding applications to a cloud computing environment |
US8799788B2 (en) * | 2011-06-02 | 2014-08-05 | Disney Enterprises, Inc. | Providing a single instance of a virtual space represented in either two dimensions or three dimensions via separate client computing devices |
US9323871B2 (en) * | 2011-06-27 | 2016-04-26 | Trimble Navigation Limited | Collaborative development of a model on a network |
US20130166766A1 (en) * | 2011-06-30 | 2013-06-27 | The Board Of Trustees Of The University Of Illinois | Streaming Service for Correlated Multi-Streaming |
WO2013006226A1 (en) * | 2011-07-01 | 2013-01-10 | Exxonmobil Upstream Research Company | Plug-in installer framework |
US8984156B2 (en) * | 2011-07-21 | 2015-03-17 | Salesforce.Com, Inc. | Multi-party mesh conferencing with stream processing |
WO2013039748A2 (en) * | 2011-09-16 | 2013-03-21 | Social Communications Company | Capabilities based management of virtual areas |
US20130097244A1 (en) * | 2011-09-30 | 2013-04-18 | Clearone Communications, Inc. | Unified communications bridging architecture |
WO2013074568A1 (en) | 2011-11-15 | 2013-05-23 | Trimble Navigation Limited | Browser-based collaborative development of a 3d model |
WO2013074574A1 (en) | 2011-11-15 | 2013-05-23 | Trimble Navigation Limited | Controlling rights to a drawing in a three-dimensional modeling environment |
EP2780816B1 (en) | 2011-11-15 | 2018-03-21 | Trimble Inc. | Providing a real-time shared viewing experience in a three-dimensional modeling environment |
US10868890B2 (en) | 2011-11-22 | 2020-12-15 | Trimble Navigation Limited | 3D modeling system distributed between a client device web browser and a server |
US9654821B2 (en) | 2011-12-30 | 2017-05-16 | Sonos, Inc. | Systems and methods for networked music playback |
US8452901B1 (en) * | 2011-12-30 | 2013-05-28 | Emc Corporation | Ordered kernel queue for multipathing events |
CN102571634A (zh) * | 2012-01-18 | 2012-07-11 | 孙明昭 | 利用标识实现网络平台信息交互的系统 |
KR101335711B1 (ko) | 2012-01-20 | 2013-12-04 | 연세대학교 산학협력단 | 서버, 연산 처리 방법 및 연산 처리 시스템 |
DE102012201505B4 (de) * | 2012-02-02 | 2013-08-22 | Siemens Aktiengesellschaft | Authentisierungssystem für mobile Geräte zum Datenaustausch von medizinischen Daten |
WO2013119802A1 (en) * | 2012-02-11 | 2013-08-15 | Social Communications Company | Routing virtual area based communications |
SE537794C2 (sv) * | 2012-03-20 | 2015-10-20 | Propellerhead Software Aktiebolag | Förfaranden för att distribuera en dataprogramprodukt och ett datorsystem |
US9626710B1 (en) | 2012-05-23 | 2017-04-18 | Amazon Technologies, Inc. | Best practice analysis, optimized resource use |
US10740765B1 (en) | 2012-05-23 | 2020-08-11 | Amazon Technologies, Inc. | Best practice analysis as a service |
US9219648B1 (en) | 2012-05-23 | 2015-12-22 | Amazon Technologies, Inc. | Best practice analysis, automatic remediation |
US8769059B1 (en) * | 2012-05-23 | 2014-07-01 | Amazon Technologies, Inc. | Best practice analysis, third-party plug-ins |
WO2013181026A1 (en) | 2012-06-02 | 2013-12-05 | Social Communications Company | Interfacing with a spatial virtual communications environment |
US9674587B2 (en) | 2012-06-26 | 2017-06-06 | Sonos, Inc. | Systems and methods for networked music playback including remote add to queue |
TWI567563B (zh) * | 2012-08-10 | 2017-01-21 | A user input screen generation system and a method thereof | |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9031953B2 (en) * | 2012-11-19 | 2015-05-12 | Realnetworks, Inc. | Method and system to curate media collections |
US20140195672A1 (en) * | 2013-01-09 | 2014-07-10 | Microsoft Corporation | Automated failure handling through isolation |
US9438638B2 (en) * | 2013-03-15 | 2016-09-06 | Silicon Graphics International Corp. | Method for transparently connecting augmented network socket operations |
US9432485B2 (en) * | 2013-03-15 | 2016-08-30 | Srinivasan Viswanathan | Method and system of an accelerated application-oriented middlewarelayer |
US20140278911A1 (en) * | 2013-03-15 | 2014-09-18 | Telemetry Limited | Method and apparatus for determining digital media audibility |
US20140285519A1 (en) * | 2013-03-22 | 2014-09-25 | Nokia Corporation | Method and apparatus for providing local synchronization of information for augmented reality objects |
US20140310606A1 (en) * | 2013-04-11 | 2014-10-16 | Xiaomi Inc. | Method and device for providing plugin in contact list |
US9247363B2 (en) | 2013-04-16 | 2016-01-26 | Sonos, Inc. | Playback queue transfer in a media playback system |
US9501533B2 (en) | 2013-04-16 | 2016-11-22 | Sonos, Inc. | Private queue for a media playback system |
US9361371B2 (en) | 2013-04-16 | 2016-06-07 | Sonos, Inc. | Playlist update in a media playback system |
AU2014278645B2 (en) | 2013-06-10 | 2016-07-28 | Exxonmobil Upstream Research Company | Interactively planning a well site |
US10749761B1 (en) * | 2013-09-27 | 2020-08-18 | Amazon Technologies, Inc. | Unique user session tracking in adaptive bitrate video delivery |
US9864098B2 (en) | 2013-09-30 | 2018-01-09 | Exxonmobil Upstream Research Company | Method and system of interactive drill center and well planning evaluation and optimization |
WO2015059736A1 (ja) * | 2013-10-23 | 2015-04-30 | 株式会社シナジードライブ | Snsユーザーインタフェースシステム |
US10271010B2 (en) * | 2013-10-31 | 2019-04-23 | Shindig, Inc. | Systems and methods for controlling the display of content |
US9276959B2 (en) * | 2013-11-11 | 2016-03-01 | Amazon Technologies, Inc. | Client-configurable security options for data streams |
CN104703049A (zh) * | 2013-12-09 | 2015-06-10 | 中兴通讯股份有限公司 | 媒体流报文的nat穿越方法、mdu及iptv系统 |
US9462329B2 (en) * | 2013-12-20 | 2016-10-04 | Mediatek Inc. | Method and apparatus for frame rate control in transmitter of wireless communications system |
US9421461B2 (en) * | 2013-12-26 | 2016-08-23 | Microsoft Technology Licensing, Llc | Player avatar movement assistance in a virtual environment |
US9791485B2 (en) | 2014-03-10 | 2017-10-17 | Silver Spring Networks, Inc. | Determining electric grid topology via a zero crossing technique |
US9594601B2 (en) | 2014-03-14 | 2017-03-14 | Cask Data, Inc. | Planner for cluster management system |
CN103877726B (zh) * | 2014-04-10 | 2017-09-26 | 北京蚁视科技有限公司 | 一种虚拟现实组件系统 |
US9733333B2 (en) | 2014-05-08 | 2017-08-15 | Shindig, Inc. | Systems and methods for monitoring participant attentiveness within events and group assortments |
GB2530472A (en) * | 2014-05-21 | 2016-03-30 | Euronet Usa Llc | Financial switching engine |
US20150348177A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Managing lease transactions in distributed systems |
US9396698B2 (en) * | 2014-06-30 | 2016-07-19 | Microsoft Technology Licensing, Llc | Compound application presentation across multiple devices |
US9749447B2 (en) * | 2014-06-30 | 2017-08-29 | Mark Spence | Distributed Process Framework |
CN105323534B (zh) * | 2014-07-14 | 2019-04-23 | 深圳市潮流网络技术有限公司 | 一种第三方应用的会议处理方法和通讯设备 |
US20160042563A1 (en) * | 2014-08-11 | 2016-02-11 | Empire Technology Development Llc | Augmented reality information management |
CN104144221B (zh) * | 2014-08-19 | 2017-07-14 | 湖北盛天网络技术股份有限公司 | 文件访问方法及装置 |
US10225245B2 (en) * | 2014-11-18 | 2019-03-05 | Auth0, Inc. | Identity infrastructure as a service |
WO2016105329A1 (en) * | 2014-12-22 | 2016-06-30 | Intel Corporation | Multi-touch virtual mouse |
US10609105B2 (en) * | 2015-01-29 | 2020-03-31 | Spotify Ab | System and method for streaming music on mobile devices |
US11516340B2 (en) * | 2015-01-30 | 2022-11-29 | Vonage America Llc | System and method for playing buffered audio of a dropped telephone call |
WO2016138486A1 (en) * | 2015-02-26 | 2016-09-01 | Kazanchian Armen E | Low latency power efficient sensor to cloud data transmission |
CN106034370B (zh) * | 2015-03-20 | 2018-06-26 | 立锜科技股份有限公司 | 用于驱动led数组的驱动电路 |
FR3034608A1 (fr) * | 2015-03-31 | 2016-10-07 | Orange | Procede de priorisation de flux medias dans un reseau de communications |
KR101581776B1 (ko) * | 2015-05-14 | 2015-12-31 | 주식회사 티맥스 소프트 | 웹 서버에서 파일 디스크립터를 분배하는 방법, 이를 사용한 웹 서버 및 컴퓨터 판독 가능한 기록 매체 |
US9900275B2 (en) * | 2015-06-01 | 2018-02-20 | Apple Inc. | Tracking object across processes |
WO2017001022A1 (en) | 2015-07-02 | 2017-01-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for obtaining initial access to a network, and related wireless devices and network nodes |
KR20170010574A (ko) * | 2015-07-20 | 2017-02-01 | 삼성전자주식회사 | 정보처리장치, 영상처리장치 및 그들의 제어방법 |
WO2017035511A1 (en) * | 2015-08-27 | 2017-03-02 | Drop In, Inc. | Methods and systems for live video streaming from a remote location utilizing keep alive messages |
CN105187943B (zh) * | 2015-09-21 | 2018-06-15 | 三星电子(中国)研发中心 | 电视频道追加方法和装置 |
US10482231B1 (en) * | 2015-09-22 | 2019-11-19 | Amazon Technologies, Inc. | Context-based access controls |
JP6659944B2 (ja) * | 2015-11-18 | 2020-03-04 | アイコム株式会社 | データ設定システム、データ更新システムおよびデータ設定方法 |
US9699226B1 (en) | 2015-12-17 | 2017-07-04 | 8X8, Inc. | Display dependent analytics |
US10095669B1 (en) * | 2015-12-22 | 2018-10-09 | Amazon Technologies, Inc. | Virtualized rendering |
WO2017220165A1 (en) * | 2016-06-24 | 2017-12-28 | Rwe International Se | Augmented reality system |
US10860347B1 (en) | 2016-06-27 | 2020-12-08 | Amazon Technologies, Inc. | Virtual machine with multiple content processes |
EP3481519A1 (en) * | 2016-07-05 | 2019-05-15 | Lego A/S | Method for creating a virtual object |
WO2018007369A1 (en) | 2016-07-05 | 2018-01-11 | Lego A/S | Method for creating a virtual object |
US20180063205A1 (en) * | 2016-08-30 | 2018-03-01 | Augre Mixed Reality Technologies, Llc | Mixed reality collaboration |
US10680902B2 (en) * | 2016-08-31 | 2020-06-09 | At&T Intellectual Property I, L.P. | Virtual agents for facilitation of network based storage reporting |
US10133916B2 (en) | 2016-09-07 | 2018-11-20 | Steven M. Gottlieb | Image and identity validation in video chat events |
CN106452784B (zh) * | 2016-09-28 | 2019-07-23 | 苏州超块链信息科技有限公司 | 一种数字资产原始属性的匿名对等互证方法 |
US11063758B1 (en) | 2016-11-01 | 2021-07-13 | F5 Networks, Inc. | Methods for facilitating cipher selection and devices thereof |
US11290572B2 (en) * | 2016-11-07 | 2022-03-29 | Constructive Labs | System and method for facilitating sharing of virtual three-dimensional space |
CN106708634B (zh) * | 2016-12-09 | 2020-08-25 | 福建省天奕网络科技有限公司 | Vr应用设备与厂家设备的通讯方法及其系统 |
US10764367B2 (en) * | 2017-03-15 | 2020-09-01 | Hewlett Packard Enterprise Development Lp | Registration with a storage networking repository via a network interface device driver |
JP6610610B2 (ja) * | 2017-04-27 | 2019-11-27 | トヨタ自動車株式会社 | 音声入出力装置、無線接続方法、音声対話システム |
US10592215B1 (en) | 2017-08-17 | 2020-03-17 | NanoVMs, Inc. | Unikernel cross-compilation |
US10897489B2 (en) | 2017-12-07 | 2021-01-19 | Mcom Media Comunications Dmcc | Managing content casting |
CA3083923A1 (en) * | 2017-12-07 | 2019-06-13 | Mcom Media Communications Dmcc | Managing content casting |
US20190260826A1 (en) * | 2018-02-21 | 2019-08-22 | Artem Gurtovoy | P2p video communication with a third-parties |
US10628177B1 (en) | 2018-04-11 | 2020-04-21 | NanoVMs, Inc. | Unikernel provisioning |
US11989569B2 (en) * | 2018-04-11 | 2024-05-21 | NanoVMs, Inc. | Unikernel provisioning |
US11017078B2 (en) * | 2018-04-24 | 2021-05-25 | Microsoft Technology Licensing, Llc | Environmentally-trained time dilation |
US10965444B2 (en) * | 2018-04-24 | 2021-03-30 | Microsoft Technology Licensing, Llc | Mitigating timing attacks via dynamically triggered time dilation |
WO2019217411A1 (en) | 2018-05-07 | 2019-11-14 | Convida Wireless, Llc | Mechanisms for an intelligent service layer request abstraction service |
CN110633155A (zh) * | 2018-05-31 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 一种插件化框架的通信方法、装置、介质及电子设备 |
US12100112B2 (en) * | 2018-08-10 | 2024-09-24 | Nvidia Corporation | Cloud-centric platform for collaboration and connectivity on 3D virtual environments |
CN112955850B (zh) * | 2018-09-20 | 2024-07-19 | 苹果公司 | 用于衰减模拟现实(sr)空间中的联合用户交互的方法和设备 |
KR102119509B1 (ko) * | 2018-10-02 | 2020-06-05 | 주식회사 한글과컴퓨터 | 안정적인 실행을 보장하는 OpenCL 가상화 실행환경 제공 방법 및 장치 |
US10963331B2 (en) * | 2018-12-13 | 2021-03-30 | Microsoft Technology Licensing, Llc | Collecting repeated diagnostics data from across users participating in a document collaboration session |
CN109739728B (zh) * | 2019-01-08 | 2023-06-13 | 武汉益模科技股份有限公司 | 一种mes系统性能和日志数据监控方法 |
US11939856B2 (en) | 2019-01-24 | 2024-03-26 | Halliburton Energy Services, Inc. | Operating wellbore equipment using data from mediator computing devices |
US10554596B1 (en) * | 2019-03-28 | 2020-02-04 | Wormhole Labs, Inc. | Context linked messaging system |
CN111835685B (zh) * | 2019-04-19 | 2022-10-28 | 厦门网宿有限公司 | 一种监控Nginx网络隔离空间的运行状态的方法和服务器 |
CN111835684B (zh) * | 2019-04-19 | 2023-01-20 | 厦门网宿有限公司 | 一种haproxy设备的网络隔离监控方法及系统 |
WO2020252081A1 (en) * | 2019-06-10 | 2020-12-17 | Argos Labs Inc. | Systems and methods for robotic process automation |
CN110475272A (zh) * | 2019-07-31 | 2019-11-19 | 苏州星际靶战网络信息技术有限公司 | 一种虚拟化网络设备库信息传输方法及系统 |
CN110365546B (zh) * | 2019-08-22 | 2022-03-22 | 广州大学 | 节点数据流的监控方法、存储介质和计算设备 |
US11027197B2 (en) * | 2019-09-30 | 2021-06-08 | Sony Interactive Entertainment Inc. | Serverless gaming through zero-knowledge proofs |
US11297147B2 (en) * | 2019-11-22 | 2022-04-05 | Amazon Technologies, Inc. | Managed data export to a remote network from edge devices |
US11120702B2 (en) | 2019-12-01 | 2021-09-14 | Salesforce.Com, Inc. | Systems and methods for validating localized assessments in an external system |
SE2030252A1 (en) * | 2020-08-13 | 2022-02-14 | Nagoon AB | Method performed by a computer system for creation of augmented reality experiences and connection of these to the real world |
US11012482B1 (en) * | 2020-08-28 | 2021-05-18 | Tmrw Foundation Ip S. À R.L. | Spatially aware multimedia router system and method |
US12034785B2 (en) | 2020-08-28 | 2024-07-09 | Tmrw Foundation Ip S.Àr.L. | System and method enabling interactions in virtual environments with virtual presence |
US12107907B2 (en) | 2020-08-28 | 2024-10-01 | Tmrw Foundation Ip S.Àr.L. | System and method enabling interactions in virtual environments with virtual presence |
US11343136B2 (en) | 2020-10-01 | 2022-05-24 | Bank Of America Corporation | System for real time recovery of resource transfers over a distributed server network |
US11893541B2 (en) * | 2020-10-15 | 2024-02-06 | Prezi, Inc. | Meeting and collaborative canvas with image pointer |
US20220134222A1 (en) * | 2020-11-03 | 2022-05-05 | Nvidia Corporation | Delta propagation in cloud-centric platforms for collaboration and connectivity |
US12045676B2 (en) | 2020-11-12 | 2024-07-23 | New Relic, Inc. | Automation solutions for event logging and debugging on Kubernetes |
CN112860345B (zh) * | 2021-02-26 | 2024-06-21 | 中国银行股份有限公司 | 插件管理方法及装置 |
CN113082710B (zh) * | 2021-04-23 | 2024-05-28 | 杭州雾联科技有限公司 | 一种音频播放方法、装置、电子设备及存储介质 |
CN113515255B (zh) * | 2021-05-17 | 2023-02-07 | 英华达(上海)科技有限公司 | 音频播放控制方法、系统、电子设备及存储介质 |
US11743198B1 (en) * | 2021-06-09 | 2023-08-29 | T-Mobile Usa, Inc. | Systems and methods for traffic classification |
CN113590217B (zh) * | 2021-07-26 | 2022-12-02 | 北京百度网讯科技有限公司 | 基于引擎的函数管理方法、装置、电子设备及存储介质 |
US20230222010A1 (en) * | 2022-01-10 | 2023-07-13 | Nvidia Corporation | Application programming interface to indicate execution of graph nodes |
US11871208B2 (en) * | 2022-01-14 | 2024-01-09 | Verizon Patent And Licensing Inc. | Methods and systems for spatial rendering of multi-user voice communication |
US20230310995A1 (en) * | 2022-03-31 | 2023-10-05 | Advanced Micro Devices, Inc. | Detecting personal-space violations in artificial intelligence based non-player characters |
US12034554B2 (en) | 2022-04-29 | 2024-07-09 | Zoom Video Communications, Inc. | Enhanced conference rooms for persistent hybrid virtual collaborative workspaces |
US20230353401A1 (en) * | 2022-04-29 | 2023-11-02 | Zoom Video Communications, Inc. | Providing presence in persistent hybrid virtual collaborative workspaces |
US11995787B2 (en) * | 2022-07-06 | 2024-05-28 | Journee Technologies Gmbh | Systems and methods for the interactive rendering of a virtual environment on a user device with limited computational capacity |
US20240098122A1 (en) * | 2022-09-16 | 2024-03-21 | International Business Machines Corporation | Unplanned remote collaboration |
US20240129595A1 (en) * | 2022-10-12 | 2024-04-18 | Selina Porter | Video Monitoring Assembly |
US20240143721A1 (en) * | 2022-10-31 | 2024-05-02 | Ally Financial Inc. | Techniques for establishing trusted environments within a metaverse |
CN118118677A (zh) * | 2022-11-30 | 2024-05-31 | 京东方科技集团股份有限公司 | 数据、视频处理方法及装置 |
JP7281012B1 (ja) | 2022-12-26 | 2023-05-24 | グリー株式会社 | プログラム、情報処理方法及び情報処理システム |
US12106043B2 (en) * | 2023-01-06 | 2024-10-01 | Salesforce, Inc. | Generating structured data containers for communication platform |
WO2024151732A1 (en) * | 2023-01-11 | 2024-07-18 | Qualcomm Incorporated | Protecting augmented reality call content |
US20240281107A1 (en) * | 2023-02-22 | 2024-08-22 | Woofy, Inc. | Augmented reality media timeline management and interaction system and method |
Family Cites Families (235)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU650242B2 (en) * | 1989-11-28 | 1994-06-16 | International Business Machines Corporation | Methods and apparatus for dynamically managing input/output (I/O) connectivity |
JP2852817B2 (ja) | 1991-02-04 | 1999-02-03 | 中小企業事業団 | 加熱炉 |
US5745711A (en) | 1991-10-23 | 1998-04-28 | Hitachi, Ltd. | Display control method and apparatus for an electronic conference |
JP2521016B2 (ja) * | 1991-12-31 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチメディア・デ―タ処理システム |
US5675746A (en) * | 1992-09-30 | 1997-10-07 | Marshall; Paul S. | Virtual reality generator for use with financial information |
US6594688B2 (en) * | 1993-10-01 | 2003-07-15 | Collaboration Properties, Inc. | Dedicated echo canceler for a workstation |
US5434913A (en) * | 1993-11-24 | 1995-07-18 | Intel Corporation | Audio subsystem for computer-based conferencing system |
US5491743A (en) | 1994-05-24 | 1996-02-13 | International Business Machines Corporation | Virtual conference system and terminal apparatus therefor |
US6343263B1 (en) * | 1994-08-02 | 2002-01-29 | Apple Computer, Inc. | Real-time signal processing system for serially transmitted data |
JP3183496B2 (ja) * | 1995-06-16 | 2001-07-09 | 日本電信電話株式会社 | 仮想空間共有システム |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5721922A (en) * | 1994-10-13 | 1998-02-24 | Intel Corporation | Embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5619733A (en) * | 1994-11-10 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal |
US6260057B1 (en) * | 1995-03-01 | 2001-07-10 | Sun Microsystems, Inc. | Apparatus and method for high performance implementation of system calls |
US6466962B2 (en) * | 1995-06-07 | 2002-10-15 | International Business Machines Corporation | System and method for supporting real-time computing within general purpose operating systems |
US5874960A (en) | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
US6219045B1 (en) * | 1995-11-13 | 2001-04-17 | Worlds, Inc. | Scalable virtual world chat client-server system |
US5880731A (en) | 1995-12-14 | 1999-03-09 | Microsoft Corporation | Use of avatars with automatic gesturing and bounded interaction in on-line chat session |
US5960173A (en) * | 1995-12-22 | 1999-09-28 | Sun Microsystems, Inc. | System and method enabling awareness of others working on similar tasks in a computer work environment |
IL116708A (en) * | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
US6405255B1 (en) * | 1996-07-01 | 2002-06-11 | Sun Microsystems, Inc. | Mixing and splitting multiple independent audio data streams in kernel space |
US6335927B1 (en) | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
US7145898B1 (en) | 1996-11-18 | 2006-12-05 | Mci Communications Corporation | System, method and article of manufacture for selecting a gateway of a hybrid communication system architecture |
US5913038A (en) * | 1996-12-13 | 1999-06-15 | Microsoft Corporation | System and method for processing multimedia data streams using filter graphs |
US5995745A (en) * | 1996-12-23 | 1999-11-30 | Yodaiken; Victor J. | Adding real-time support to general purpose operating systems |
US6317774B1 (en) * | 1997-01-09 | 2001-11-13 | Microsoft Corporation | Providing predictable scheduling of programs using a repeating precomputed schedule |
US6006279A (en) * | 1997-01-21 | 1999-12-21 | Canon Information Systems, Inc. | Plug-in module host framework |
US6016515A (en) * | 1997-04-04 | 2000-01-18 | Microsoft Corporation | Method, computer program product, and data structure for validating creation of and routing messages to file object |
US5991836A (en) * | 1997-05-02 | 1999-11-23 | Network Computing Devices, Inc. | System for communicating real time data between client device and server utilizing the client device estimating data consumption amount by the server |
US6904110B2 (en) * | 1997-07-31 | 2005-06-07 | Francois Trans | Channel equalization system and method |
JP3753207B2 (ja) | 1997-08-11 | 2006-03-08 | 富士ゼロックス株式会社 | 共同作業支援システムおよび共同作業支援方法 |
US5991402A (en) * | 1997-09-23 | 1999-11-23 | Aegisoft Corporation | Method and system of dynamic transformation of encrypted material |
GB9721667D0 (en) | 1997-10-14 | 1997-12-10 | Philips Electronics Nv | Virtual environment navigation aid |
US6349344B1 (en) * | 1997-12-16 | 2002-02-19 | Microsoft Corporation | Combining multiple java class files into a run-time image |
US6216173B1 (en) * | 1998-02-03 | 2001-04-10 | Redbox Technologies Limited | Method and apparatus for content processing and routing |
US6148336A (en) * | 1998-03-13 | 2000-11-14 | Deterministic Networks, Inc. | Ordering of multiple plugin applications using extensible layered service provider with network traffic filtering |
US6141686A (en) * | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
US6380952B1 (en) | 1998-04-07 | 2002-04-30 | International Business Machines Corporation | System for continuous display and navigation in a virtual-reality world |
US7065553B1 (en) * | 1998-06-01 | 2006-06-20 | Microsoft Corporation | Presentation system with distributed object oriented multi-user domain and separate view and model objects |
US6243753B1 (en) * | 1998-06-12 | 2001-06-05 | Microsoft Corporation | Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters |
US6604136B1 (en) * | 1998-06-27 | 2003-08-05 | Intel Corporation | Application programming interfaces and methods enabling a host to interface with a network processor |
US5999208A (en) | 1998-07-15 | 1999-12-07 | Lucent Technologies Inc. | System for implementing multiple simultaneous meetings in a virtual reality mixed media meeting room |
US6119147A (en) | 1998-07-28 | 2000-09-12 | Fuji Xerox Co., Ltd. | Method and system for computer-mediated, multi-modal, asynchronous meetings in a virtual space |
US6731314B1 (en) | 1998-08-17 | 2004-05-04 | Muse Corporation | Network-based three-dimensional multiple-user shared environment apparatus and method |
JP2000076487A (ja) | 1998-09-03 | 2000-03-14 | Sony Corp | 情報処理装置および方法、並びに提供媒体 |
US7159222B1 (en) * | 1998-09-09 | 2007-01-02 | Microsoft Corporation | Highly componentized system architecture with object mutation |
US6807667B1 (en) * | 1998-09-21 | 2004-10-19 | Microsoft Corporation | Method and system of an application program interface for abstracting network traffic control components to application programs |
US6470397B1 (en) * | 1998-11-16 | 2002-10-22 | Qlogic Corporation | Systems and methods for network and I/O device drivers |
US6490611B1 (en) * | 1999-01-28 | 2002-12-03 | Mitsubishi Electric Research Laboratories, Inc. | User level scheduling of inter-communicating real-time tasks |
US6862735B1 (en) * | 1999-02-11 | 2005-03-01 | Sun Microsystems, Inc. | Mechanism by which platform independent software may bind to and access platform dependent software |
JP2000244487A (ja) * | 1999-02-18 | 2000-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 多人数参加型仮想空間コミュニケーションシステム |
US7168048B1 (en) | 1999-03-24 | 2007-01-23 | Microsoft Corporation | Method and structure for implementing a layered object windows |
US6493324B1 (en) * | 1999-03-29 | 2002-12-10 | Worldcom, Inc. | Multimedia interface for IP telephony |
US6615278B1 (en) * | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US7007235B1 (en) | 1999-04-02 | 2006-02-28 | Massachusetts Institute Of Technology | Collaborative agent interaction control and synchronization system |
US6388688B1 (en) | 1999-04-06 | 2002-05-14 | Vergics Corporation | Graph-based visual navigation through spatial environments |
US6779027B1 (en) * | 1999-04-30 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Intelligent management module application programming interface with utility objects |
US7006616B1 (en) * | 1999-05-21 | 2006-02-28 | Terayon Communication Systems, Inc. | Teleconferencing bridge with EdgePoint mixing |
US6742176B1 (en) * | 1999-06-14 | 2004-05-25 | Lycos, Inc. | Secure flexible plugin software architecture |
US6292188B1 (en) | 1999-07-28 | 2001-09-18 | Alltrue Networks, Inc. | System and method for navigating in a digital information environment |
US6442748B1 (en) * | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
US20010044904A1 (en) * | 1999-09-29 | 2001-11-22 | Berg Ryan J. | Secure remote kernel communication |
US7581191B2 (en) | 1999-11-15 | 2009-08-25 | Xenogen Corporation | Graphical user interface for 3-D in-vivo imaging |
JP2001154966A (ja) | 1999-11-29 | 2001-06-08 | Sony Corp | コンピュータ・ネットワーク上で構築・提供される共有仮想空間上で複数ユーザが参加可能な仮想会話を支援する会話支援システム及び会話支援方法、並びに、プログラム記憶媒体 |
US7213054B2 (en) * | 1999-12-15 | 2007-05-01 | Microsoft Corporation | Methods and apparatuses for handling single-user applications in multi-user computing environments |
US6708172B1 (en) | 1999-12-22 | 2004-03-16 | Urbanpixel, Inc. | Community-based shared multiple browser environment |
SE517156C2 (sv) * | 1999-12-28 | 2002-04-23 | Global Ip Sound Ab | System för överföring av ljud över paketförmedlade nät |
US7069590B1 (en) * | 2000-02-17 | 2006-06-27 | Microsoft Corporation | System and method for protecting data streams in hardware components |
US7240093B1 (en) | 2000-02-29 | 2007-07-03 | Microsoft Corporation | Use of online messaging to facilitate selection of participants in game play |
US6990669B1 (en) * | 2000-03-21 | 2006-01-24 | Microsoft Corporation | Real-time scheduler |
US6871345B1 (en) * | 2000-04-04 | 2005-03-22 | Motive, Inc. | Self managing software agents with introspection |
US8020176B2 (en) * | 2000-04-06 | 2011-09-13 | Infineon Technologies Ag | Virtual machine interface for hardware reconfigurable and software programmable processors |
JP3345600B2 (ja) | 2000-04-10 | 2002-11-18 | コナミ株式会社 | ゲームシステムおよびコンピュータ読取可能な記憶媒体 |
US6646195B1 (en) * | 2000-04-12 | 2003-11-11 | Microsoft Corporation | Kernel-mode audio processing modules |
US6961631B1 (en) * | 2000-04-12 | 2005-11-01 | Microsoft Corporation | Extensible kernel-mode audio processing architecture |
US20060067500A1 (en) | 2000-05-15 | 2006-03-30 | Christofferson Frank C | Teleconferencing bridge with edgepoint mixing |
EP1170673A1 (en) * | 2000-07-05 | 2002-01-09 | Sony International (Europe) GmbH | Portal application |
JP2002063601A (ja) * | 2000-08-15 | 2002-02-28 | Shinji Shimojo | 仮想空間システム |
US6763176B1 (en) * | 2000-09-01 | 2004-07-13 | Matrox Electronic Systems Ltd. | Method and apparatus for real-time video editing using a graphics processor |
US7599753B2 (en) * | 2000-09-23 | 2009-10-06 | Microsoft Corporation | Systems and methods for running priority-based application threads on a realtime component |
US7263550B1 (en) * | 2000-10-10 | 2007-08-28 | Juniper Networks, Inc. | Agent-based event-driven web server architecture |
US7203741B2 (en) | 2000-10-12 | 2007-04-10 | Peerapp Ltd. | Method and system for accelerating receipt of data in a client-to-client network |
JP2002123478A (ja) | 2000-10-17 | 2002-04-26 | Isao:Kk | チャットシステム、チャット情報処理装置、チャット情報処理方法、および、記録媒体 |
US7313593B1 (en) * | 2000-10-24 | 2007-12-25 | International Business Machines Corporation | Method and apparatus for providing full duplex and multipoint IP audio streaming |
US6961942B1 (en) * | 2000-11-06 | 2005-11-01 | Microsoft Corporation | Bluetooth TDI and winsock interface |
US7149314B2 (en) * | 2000-12-04 | 2006-12-12 | Creative Technology Ltd | Reverberation processor based on absorbent all-pass filters |
US20020116458A1 (en) | 2000-12-14 | 2002-08-22 | Jonathan Bricklin | Web-based dating service |
US20020075305A1 (en) | 2000-12-18 | 2002-06-20 | Beaton Brian F. | Graphical user interface for a virtual team environment |
US7925703B2 (en) | 2000-12-26 | 2011-04-12 | Numedeon, Inc. | Graphical interactive interface for immersive online communities |
US7296226B2 (en) * | 2001-02-15 | 2007-11-13 | Accenture Gmbh | XML-based multi-format business services design pattern |
US7376475B2 (en) * | 2001-03-05 | 2008-05-20 | Microsoft Corporation | Audio buffer configuration |
US7386356B2 (en) * | 2001-03-05 | 2008-06-10 | Microsoft Corporation | Dynamic audio buffer creation |
US7107110B2 (en) * | 2001-03-05 | 2006-09-12 | Microsoft Corporation | Audio buffers with audio effects |
US20020165922A1 (en) | 2001-04-13 | 2002-11-07 | Songxiang Wei | Application based screen sampling |
US20020178072A1 (en) | 2001-05-24 | 2002-11-28 | International Business Machines Corporation | Online shopping mall virtual association |
US6996832B2 (en) * | 2001-05-30 | 2006-02-07 | Bea Systems, Inc. | System and method for software component plug-in framework |
US7562306B2 (en) * | 2001-05-31 | 2009-07-14 | International Business Machines Corporation | System and method for reducing memory use associated with the graphical representation of a list control |
US6918093B2 (en) * | 2001-05-31 | 2005-07-12 | International Business Machines Corp. | Inheritance of background color in a containment hierarchy of objects in a graphical user interface |
US7017162B2 (en) * | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
US20030043200A1 (en) | 2001-08-09 | 2003-03-06 | Urbanpixel Inc | Interactive multi-level mapping in a multiple browser environment |
JP2003058482A (ja) | 2001-08-14 | 2003-02-28 | Fujitsu Ltd | エリアチャットルーム提供方法,端末側エリアチャット処理方法,エリアチャットルーム提供処理プログラム記録媒体,エリアチャットルーム提供装置 |
US20030065558A1 (en) | 2001-09-12 | 2003-04-03 | Cameron Shaw | Method and apparatus for multi-vendor powered business portal with intelligent service promotion and user profile gathering |
US7254610B1 (en) * | 2001-09-19 | 2007-08-07 | Cisco Technology, Inc. | Delivery of services to a network enabled telephony device based on transfer of selected model view controller objects to reachable network nodes |
US7254814B1 (en) * | 2001-09-28 | 2007-08-07 | Emc Corporation | Methods and apparatus for managing plug-in services |
US20030077561A1 (en) | 2001-10-18 | 2003-04-24 | Abraham Alsop | Web server for printable whiteboards |
US7415502B2 (en) | 2001-11-16 | 2008-08-19 | Sbc Technology Resources, Inc. | Method and system for intelligent routing based on presence detection |
US7673246B2 (en) | 2001-12-12 | 2010-03-02 | Canon Kabushiki Kaisha | Image information processing apparatus and method, virtual space presentation apparatus, information administration apparatus, and control methods thereof |
US6679848B2 (en) | 2002-03-07 | 2004-01-20 | Koninklijke Philips Electronics N.V. | Method for allowing plug-in architecture for digital echocardiography lab image processing applications |
US7418664B2 (en) | 2002-04-03 | 2008-08-26 | Microsoft Corporation | Application sharing single document sharing |
US7483945B2 (en) * | 2002-04-19 | 2009-01-27 | Akamai Technologies, Inc. | Method of, and system for, webcasting with just-in-time resource provisioning, automated telephone signal acquisition and streaming, and fully-automated event archival |
US7036089B2 (en) | 2002-04-23 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | Distribution of application windows in a computing device display |
AU2003239385A1 (en) | 2002-05-10 | 2003-11-11 | Richard R. Reisman | Method and apparatus for browsing using multiple coordinated device |
US6935959B2 (en) * | 2002-05-16 | 2005-08-30 | Microsoft Corporation | Use of multiple player real-time voice communications on a gaming device |
KR100918782B1 (ko) | 2002-05-17 | 2009-09-23 | 한라공조주식회사 | 열교환기용 핀 |
US7293243B1 (en) | 2002-05-22 | 2007-11-06 | Microsoft Corporation | Application sharing viewer presentation |
US8165959B2 (en) * | 2002-06-24 | 2012-04-24 | Siebel Systems, Inc. | Method and apparatus for pricing calculation |
JP4408635B2 (ja) * | 2002-06-27 | 2010-02-03 | ナヴィゲイション テクノロジーズ コーポレイション | 経路情報と共に位置に基づく広告を提供する方法 |
US7631318B2 (en) * | 2002-06-28 | 2009-12-08 | Microsoft Corporation | Secure server plug-in architecture for digital rights management systems |
US6782424B2 (en) * | 2002-08-23 | 2004-08-24 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US7035942B2 (en) | 2002-09-17 | 2006-04-25 | Bellsouth Intellectual Property Corp. | Server-based message protocol translation |
US7434167B2 (en) | 2002-09-30 | 2008-10-07 | Microsoft Corporation | Accessibility system and method |
US20040064210A1 (en) * | 2002-10-01 | 2004-04-01 | Puryear Martin G. | Audio driver componentization |
US6724416B1 (en) | 2002-10-01 | 2004-04-20 | Jianxin Liu | Image transceiving telephone with integrated digital camera |
US20040088704A1 (en) * | 2002-10-30 | 2004-05-06 | Advanced Simulation Technology, Inc. | Method for running real-time tasks alongside a general purpose operating system |
US8176186B2 (en) * | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
EP1576769A4 (en) | 2002-11-13 | 2011-08-31 | Intel Corp | MULTIMODE WEB INTERACTION ON A WIRELESS NETWORK |
US20040179039A1 (en) | 2003-03-03 | 2004-09-16 | Blattner Patrick D. | Using avatars to communicate |
WO2004104758A2 (en) | 2003-05-16 | 2004-12-02 | Picasa, Inc. | Networked chat and media sharing systems and methods |
US20050060137A1 (en) * | 2003-09-12 | 2005-03-17 | Lanus Mark S. | Method and apparatus to emulate an execution environment |
WO2005027383A1 (en) | 2003-09-16 | 2005-03-24 | Research In Motion Limited | Handheld electronic device and associated method providing availability data in a messaging environment |
US7503006B2 (en) | 2003-09-25 | 2009-03-10 | Microsoft Corporation | Visual indication of current voice speaker |
US7813488B2 (en) | 2003-09-29 | 2010-10-12 | Siemens Enterprise Communications, Inc. | System and method for providing information regarding an identity's media availability |
AU2003276496A1 (en) | 2003-10-27 | 2005-05-11 | Nokia Corporation | Method and devices for relayed peer-to-peer communications between terminals in mobile networks |
WO2005059699A2 (en) | 2003-12-15 | 2005-06-30 | Quantum Matrix Holdings, Llc | System and method for multi-dimensional organization, management, and manipulation of data |
US7707503B2 (en) | 2003-12-22 | 2010-04-27 | Palo Alto Research Center Incorporated | Methods and systems for supporting presentation tools using zoomable user interface |
JP2005196286A (ja) * | 2003-12-26 | 2005-07-21 | Okuma Corp | リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法 |
US20100005531A1 (en) * | 2004-12-23 | 2010-01-07 | Kenneth Largman | Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features |
US7985138B2 (en) * | 2004-02-17 | 2011-07-26 | International Business Machines Corporation | SIP based VoIP multiplayer network games |
KR100566263B1 (ko) | 2004-03-26 | 2006-03-29 | 삼성전자주식회사 | 스케쥴 내용에 따라 메신저 상태 정보를 변경하는 메신저서비스 제공 시스템 및 방법 |
JP2005286749A (ja) * | 2004-03-30 | 2005-10-13 | Matsushita Electric Ind Co Ltd | 映像復号化装置およびそれを用いた映像伝送システム |
US20060031779A1 (en) | 2004-04-15 | 2006-02-09 | Citrix Systems, Inc. | Selectively sharing screen data |
JP2005326987A (ja) * | 2004-05-13 | 2005-11-24 | Sony Corp | オーディオ信号伝送システム、オーディオ信号伝送方法、サーバー、ネットワーク端末装置、プログラム及び記録媒体 |
US7945619B1 (en) | 2004-09-20 | 2011-05-17 | Jitendra Chawla | Methods and apparatuses for reporting based on attention of a user during a collaboration session |
WO2006042300A2 (en) * | 2004-10-12 | 2006-04-20 | Mindego, Inc. | System and method for creating, distributing, and executing rich multimedia applications |
US7342587B2 (en) | 2004-10-12 | 2008-03-11 | Imvu, Inc. | Computer-implemented system and method for home page customization and e-commerce support |
WO2006053271A1 (en) | 2004-11-12 | 2006-05-18 | Mok3, Inc. | Method for inter-scene transitions |
US20060168114A1 (en) * | 2004-11-12 | 2006-07-27 | Arnaud Glatron | Audio processing system |
WO2006110952A1 (en) * | 2005-04-19 | 2006-10-26 | Fairlight.Au Pty Ltd | Media processing system and method |
US20060244818A1 (en) * | 2005-04-28 | 2006-11-02 | Comotiv Systems, Inc. | Web-based conferencing system |
US7506264B2 (en) | 2005-04-28 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for presenting navigable data center information in virtual reality using leading edge rendering engines |
US20070064851A1 (en) * | 2005-09-02 | 2007-03-22 | Sbc Knowledge Ventures Lp | Method for synchronizing a customer edge router or customer premise equipment associated therewith |
JP2006012127A (ja) * | 2005-05-16 | 2006-01-12 | Sony Corp | コンテンツ配信システム及びコンテンツ配信方法、並びに端末装置 |
US8606950B2 (en) * | 2005-06-08 | 2013-12-10 | Logitech Europe S.A. | System and method for transparently processing multimedia data |
KR100686382B1 (ko) | 2005-07-08 | 2007-02-22 | 엔에이치엔(주) | 싱크 서버를 이용한 메신저 알림 시스템 및 방법 |
US7734692B1 (en) | 2005-07-22 | 2010-06-08 | Oracle America, Inc. | Network collaboration system with private voice chat |
ATE550756T1 (de) * | 2005-08-04 | 2012-04-15 | Nuance Communications Inc | Sprachdialogsystem |
CN101535952B (zh) * | 2005-08-19 | 2014-06-04 | 谷歌公司 | 将来自插件模块的信息内容在用户界面中进行显示的软件架构 |
JP2007072739A (ja) * | 2005-09-07 | 2007-03-22 | Hitachi Communication Technologies Ltd | 多地点会議システム、多地点会議装置およびクライアント端末 |
US20080214204A1 (en) | 2005-11-01 | 2008-09-04 | Jorey Ramer | Similarity based location mapping of mobile comm facility users |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US9454735B2 (en) | 2005-09-26 | 2016-09-27 | Nokia Corporation | Integrating data with a contact |
US7509654B2 (en) * | 2005-09-29 | 2009-03-24 | Avaya Inc. | Data-driven and plug-in defined event engine |
US8498629B2 (en) * | 2005-10-18 | 2013-07-30 | Harris Corporation | Extensible human machine interface (HMI) plugin architecture for radio software system and related method |
US20070098238A1 (en) | 2005-10-31 | 2007-05-03 | Pere Obrador | Imaging methods, imaging systems, and articles of manufacture |
US20070127668A1 (en) * | 2005-12-02 | 2007-06-07 | Ahya Deepak P | Method and system for performing a conference call |
US7489772B2 (en) | 2005-12-30 | 2009-02-10 | Nokia Corporation | Network entity, method and computer program product for effectuating a conference session |
JP4643454B2 (ja) * | 2006-01-10 | 2011-03-02 | 株式会社東芝 | 動画像復号装置及び動画像復号方法 |
US8185437B2 (en) | 2007-07-12 | 2012-05-22 | Utbk, Inc. | Systems and methods to provide communication connections via partners |
US20070184855A1 (en) | 2006-02-03 | 2007-08-09 | Research In Motion Limited | Visual representation of contact location |
US20070192427A1 (en) | 2006-02-16 | 2007-08-16 | Viktors Berstis | Ease of use feature for audio communications within chat conferences |
US20070240134A1 (en) * | 2006-02-28 | 2007-10-11 | Joydeep Buragohain | Software packaging model supporting multiple entity types |
JP4617268B2 (ja) * | 2006-03-14 | 2011-01-19 | キヤノン株式会社 | 記憶装置および記憶装置の処理方法 |
US20070286366A1 (en) | 2006-03-17 | 2007-12-13 | Scott Deboy | Chat presence system |
US8199761B2 (en) * | 2006-04-20 | 2012-06-12 | Nokia Corporation | Communications multiplexing with packet-communication networks |
US20070250540A1 (en) | 2006-04-20 | 2007-10-25 | Hsu Mike S C | A Computer System with File Attribute Extension |
US20080052373A1 (en) | 2006-05-01 | 2008-02-28 | Sms.Ac | Systems and methods for a community-based user interface |
EP2367343B1 (en) * | 2006-05-11 | 2017-03-22 | Google, Inc. | Audio mixing |
US20070280206A1 (en) * | 2006-05-31 | 2007-12-06 | Samsung Electronics Co., Ltd. | Method for consuming heterogeneous services on heterogeneous devices using script plugins |
US7643459B2 (en) | 2006-06-16 | 2010-01-05 | Alcatel-Lucent Usa Inc. | Methods, devices and architectures for establishing peer-to-peer sessions |
US20070291034A1 (en) | 2006-06-20 | 2007-12-20 | Dones Nelson C | System for presenting a navigable virtual subway system, and method for operating and using the same |
US20070299778A1 (en) | 2006-06-22 | 2007-12-27 | Microsoft Corporation | Local peer-to-peer digital content distribution |
US20080005721A1 (en) * | 2006-06-29 | 2008-01-03 | Augusta Systems, Inc. | Method and System for Rapidly Developing Sensor-Enabled Software Applications |
US7469641B2 (en) * | 2006-07-19 | 2008-12-30 | Asf-Keystone, Inc. | Bolster and spring pockets for use with rail truck |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US20080033941A1 (en) | 2006-08-07 | 2008-02-07 | Dale Parrish | Verfied network identity with authenticated biographical information |
US7991401B2 (en) | 2006-08-08 | 2011-08-02 | Samsung Electronics Co., Ltd. | Apparatus, a method, and a system for animating a virtual scene |
US8817668B2 (en) | 2006-09-15 | 2014-08-26 | Microsoft Corporation | Distributable, scalable, pluggable conferencing architecture |
US20080085502A1 (en) * | 2006-10-04 | 2008-04-10 | Ecollege.Com | Web service api for student information and course management systems |
US20080208605A1 (en) | 2006-10-20 | 2008-08-28 | Citrix Systems, Inc. | Systems and methods for responding to the occurrence of an event |
CN101170572A (zh) | 2006-10-23 | 2008-04-30 | 日电(中国)有限公司 | 基于p2p sip技术实现的多媒体网络通信系统 |
WO2008064483A1 (en) | 2006-11-30 | 2008-06-05 | James Andrew Wanless | A method and system for providing automated real-time contact information |
US8706169B2 (en) | 2006-12-28 | 2014-04-22 | Yahoo! Inc. | Interface overlay |
WO2008085201A2 (en) | 2006-12-29 | 2008-07-17 | Prodea Systems, Inc. | Managed file backup and restore at remote storage locations through multi-services gateway device at user premises |
US8554868B2 (en) | 2007-01-05 | 2013-10-08 | Yahoo! Inc. | Simultaneous sharing communication interface |
US7696992B2 (en) * | 2007-01-16 | 2010-04-13 | Motorola, Inc. | Method and apparatus to facilitate multi-setting virtual reality experiences |
US20080209075A1 (en) | 2007-02-22 | 2008-08-28 | Yahoo! Inc. | Synchronous delivery of media content and real-time communication for online dating |
US20080215994A1 (en) | 2007-03-01 | 2008-09-04 | Phil Harrison | Virtual world avatar control, interactivity and communication interactive messaging |
US20080263460A1 (en) | 2007-04-20 | 2008-10-23 | Utbk, Inc. | Methods and Systems to Connect People for Virtual Meeting in Virtual Reality |
US8601386B2 (en) | 2007-04-20 | 2013-12-03 | Ingenio Llc | Methods and systems to facilitate real time communications in virtual reality |
US8452866B2 (en) | 2007-08-09 | 2013-05-28 | Markport Limited | Network resource management |
CN101110780A (zh) * | 2007-08-24 | 2008-01-23 | 张建中 | 一种传输控制数据流的方法和装置以及系统 |
US8245241B2 (en) | 2007-10-02 | 2012-08-14 | International Business Machines Corporation | Arrangements for interactivity between a virtual universe and the world wide web |
US7844724B2 (en) | 2007-10-24 | 2010-11-30 | Social Communications Company | Automated real-time data stream switching in a shared virtual area communication environment |
US8407605B2 (en) | 2009-04-03 | 2013-03-26 | Social Communications Company | Application sharing |
US8397168B2 (en) | 2008-04-05 | 2013-03-12 | Social Communications Company | Interfacing with a spatial virtual communication environment |
US9357025B2 (en) | 2007-10-24 | 2016-05-31 | Social Communications Company | Virtual area based telephony communications |
US7769806B2 (en) | 2007-10-24 | 2010-08-03 | Social Communications Company | Automated real-time data stream switching in a shared virtual area communication environment |
US8095680B2 (en) * | 2007-12-20 | 2012-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Real-time network transport protocol interface method and apparatus |
CN101499080A (zh) | 2008-02-01 | 2009-08-05 | 网秦无限(北京)科技有限公司 | 在移动终端上快捷获取信息服务的方法和系统 |
US20090222742A1 (en) | 2008-03-03 | 2009-09-03 | Cisco Technology, Inc. | Context sensitive collaboration environment |
KR101467767B1 (ko) | 2008-03-31 | 2014-12-03 | 엘지전자 주식회사 | 단말기 및 이것의 인스턴트 메시징 서비스 수행 방법 |
US8531447B2 (en) | 2008-04-03 | 2013-09-10 | Cisco Technology, Inc. | Reactive virtual environment |
US8312380B2 (en) | 2008-04-04 | 2012-11-13 | Yahoo! Inc. | Local map chat |
CN102084354A (zh) | 2008-04-05 | 2011-06-01 | 社会传播公司 | 基于共享虚拟区域通信环境的装置和方法 |
US20120246582A1 (en) | 2008-04-05 | 2012-09-27 | Social Communications Company | Interfacing with a spatial virtual communications environment |
US8042051B2 (en) | 2008-05-30 | 2011-10-18 | International Business Machines Corporation | Apparatus for navigation and interaction in a virtual meeting place |
US20100058202A1 (en) | 2008-08-28 | 2010-03-04 | Mohamed Rostom | Method system and program product for providing enabling an interactive and social search engine |
US7962627B2 (en) | 2008-12-04 | 2011-06-14 | Microsoft Corporation | Peer-to-peer network address translator (NAT) traversal techniques |
WO2010065909A2 (en) | 2008-12-05 | 2010-06-10 | Social Communications Company | Managing interactions in a network communications environment |
CN106131178A (zh) * | 2008-12-05 | 2016-11-16 | 社会传播公司 | 实时内核 |
US9124662B2 (en) | 2009-01-15 | 2015-09-01 | Social Communications Company | Persistent network resource and virtual area associations for realtime collaboration |
US8775595B2 (en) | 2010-09-11 | 2014-07-08 | Social Communications Company | Relationship based presence indicating in virtual area contexts |
US8396960B2 (en) | 2009-05-08 | 2013-03-12 | Canon Kabushiki Kaisha | Efficient network utilization using multiple physical interfaces |
WO2010143286A1 (ja) | 2009-06-10 | 2010-12-16 | パイオニア株式会社 | 通信端末、アドレス解決サーバ、及びコンピュータプログラム |
US7921150B1 (en) | 2009-10-23 | 2011-04-05 | Eastman Kodak Company | Method for viewing videos on distributed networks |
US8924261B2 (en) | 2009-10-30 | 2014-12-30 | Etsy, Inc. | Method for performing interactive online shopping |
US20110169927A1 (en) | 2010-01-13 | 2011-07-14 | Coco Studios | Content Presentation in a Three Dimensional Environment |
EP2606466A4 (en) | 2010-08-16 | 2014-03-05 | Social Communications Co | PROMOTING INTERACTIONS WITH COMMUNICANTS IN A NETWORK COMMUNICATION ENVIRONMENT |
US8863256B1 (en) | 2011-01-14 | 2014-10-14 | Cisco Technology, Inc. | System and method for enabling secure transactions using flexible identity management in a vehicular environment |
US9270784B2 (en) | 2011-02-16 | 2016-02-23 | Masque Publishing, Inc. | Peer-to-peer communications |
WO2012135231A2 (en) | 2011-04-01 | 2012-10-04 | Social Communications Company | Creating virtual areas for realtime communications |
US8837483B2 (en) | 2011-04-11 | 2014-09-16 | Alcatel Lucent | Mapping private and public addresses |
US8612279B2 (en) | 2011-06-27 | 2013-12-17 | Cisco Technology, Inc. | Ad hoc generation of work item entity for geospatial entity based on symbol manipulation language-based workflow item |
WO2013039748A2 (en) | 2011-09-16 | 2013-03-21 | Social Communications Company | Capabilities based management of virtual areas |
-
2009
- 2009-12-04 CN CN201610521839.9A patent/CN106131178A/zh active Pending
- 2009-12-04 KR KR1020127031897A patent/KR20130010910A/ko not_active Application Discontinuation
- 2009-12-04 KR KR1020117015551A patent/KR101490548B1/ko not_active IP Right Cessation
- 2009-12-04 KR KR1020127031898A patent/KR20130010911A/ko not_active Application Discontinuation
- 2009-12-04 JP JP2011539734A patent/JP5721634B2/ja not_active Expired - Fee Related
- 2009-12-04 CN CN200980150169.2A patent/CN102362269B/zh not_active Expired - Fee Related
- 2009-12-04 US US12/630,973 patent/US8578000B2/en active Active
- 2009-12-04 EP EP09831186A patent/EP2377031A4/en not_active Withdrawn
- 2009-12-04 WO PCT/US2009/066764 patent/WO2010065848A2/en active Application Filing
-
2011
- 2011-05-19 IL IL213038A patent/IL213038A0/en unknown
-
2012
- 2012-11-30 JP JP2012262550A patent/JP2013084283A/ja active Pending
- 2012-11-30 JP JP2012262551A patent/JP2013065341A/ja active Pending
-
2013
- 2013-10-03 US US14/045,562 patent/US9055131B2/en active Active
-
2015
- 2015-05-27 US US14/722,156 patent/US10158689B2/en active Active
-
2018
- 2018-12-14 US US16/221,334 patent/US10972523B2/en active Active
-
2021
- 2021-03-01 US US17/188,831 patent/US11882165B2/en active Active
-
2023
- 2023-12-07 US US18/533,134 patent/US20240114064A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US9055131B2 (en) | 2015-06-09 |
JP2013065341A (ja) | 2013-04-11 |
KR20110106870A (ko) | 2011-09-29 |
US20210185105A1 (en) | 2021-06-17 |
EP2377031A2 (en) | 2011-10-19 |
EP2377031A4 (en) | 2012-11-21 |
US20190132373A1 (en) | 2019-05-02 |
US11882165B2 (en) | 2024-01-23 |
US10972523B2 (en) | 2021-04-06 |
KR101490548B1 (ko) | 2015-02-05 |
US20240114064A1 (en) | 2024-04-04 |
IL213038A0 (en) | 2011-07-31 |
CN102362269A (zh) | 2012-02-22 |
CN106131178A (zh) | 2016-11-16 |
WO2010065848A2 (en) | 2010-06-10 |
US8578000B2 (en) | 2013-11-05 |
KR20130010911A (ko) | 2013-01-29 |
US20140136726A1 (en) | 2014-05-15 |
CN102362269B (zh) | 2016-08-17 |
US10158689B2 (en) | 2018-12-18 |
WO2010065848A9 (en) | 2010-11-04 |
KR20130010910A (ko) | 2013-01-29 |
WO2010065848A3 (en) | 2010-09-16 |
JP2012511213A (ja) | 2012-05-17 |
US20100146085A1 (en) | 2010-06-10 |
US20150281348A1 (en) | 2015-10-01 |
JP2013084283A (ja) | 2013-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11882165B2 (en) | Realtime kernel | |
US11700164B2 (en) | Pervasive realtime framework | |
US9813463B2 (en) | Phoning into virtual communication environments | |
US20130132058A1 (en) | Creating and managing virtual areas | |
CN114816082A (zh) | 应用于云应用的输入控制方法、装置以及电子设备 | |
WO2023142601A1 (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
US11995789B2 (en) | System and method of creating, hosting, and accessing virtual reality projects | |
Singhal et al. | InVerse: Designing an interactive universe architecture for scalability and extensibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121130 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140107 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140311 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140318 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140703 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20140703 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150324 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5721634 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |