JP6578302B2 - 複合デバイス環境での出力の映画化 - Google Patents

複合デバイス環境での出力の映画化 Download PDF

Info

Publication number
JP6578302B2
JP6578302B2 JP2016567936A JP2016567936A JP6578302B2 JP 6578302 B2 JP6578302 B2 JP 6578302B2 JP 2016567936 A JP2016567936 A JP 2016567936A JP 2016567936 A JP2016567936 A JP 2016567936A JP 6578302 B2 JP6578302 B2 JP 6578302B2
Authority
JP
Japan
Prior art keywords
transformation chain
transformation
cinematicity
chain output
chain
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.)
Active
Application number
JP2016567936A
Other languages
English (en)
Other versions
JP2017520827A (ja
JP2017520827A5 (ja
Inventor
ミタル,ビジェイ
ルビン,ダリル
バパト,ヴィクラム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017520827A publication Critical patent/JP2017520827A/ja
Publication of JP2017520827A5 publication Critical patent/JP2017520827A5/ja
Application granted granted Critical
Publication of JP6578302B2 publication Critical patent/JP6578302B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Television Receiver Circuits (AREA)

Description

[0001] コンピューティング技術は、私たちがどのように作業する、遊ぶ、および通信するかに大変革を起こした。コンピューティング技術が進展したのと同様に、そのようなコンピューティングシステムを実施する、または、コンピューティングシステムからのコンテンツを表示する、デバイスの多様性が進展した。例えばコンピューティングシステムは、サーバラック、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン、ゲーミングコンソール、時計、冷蔵庫、スマートハウスなどの形式をとり得る。
[0002] コンピューティングシステムの多様性とともに、コンピュータに対するコンピューティング出力および入力情報をレンダリングするために使用され得るデバイスのタイプが、同様に多様化した。例えば出力デバイスは、プロジェクタ、テレビジョンモニタ、3次元ディスプレイ、ラップトップ、タブレットコンピュータ、電話などのディスプレイを含み得る。出力デバイスは、スピーカなどの音のための出力を含み得る。出力デバイスはさらには、作動器、発光体、バルブなどを含み得る。入力デバイスは、キーボード、ポインタデバイス(マウスなど)、タッチスクリーン、マイクロホン、ビデオカメラ、スチルカメラ、3次元位置検出器、全地球測位システムモニタ、光センサ、加速度計、温度計、コンパスなどを含み得る。
[0003] コンピューティングシステム、ならびに、関連付けられる入力および出力デバイスは、かなり豊富に、しばしば移動型になった。しばしば、何らかの所与の場所に、大きな数の、および多種多様のデバイスが存在する場合がある。例えば、十分に出席者のいる平均的な会議室では、オーバーヘッドプロジェクタ、テレビジョンスクリーン、ラップトップ、タブレット、スマートフォン、マイクロホン、カメラ、照明などがある場合がある。従来の方法は、各々のデバイスが、自身のアプリケーションを実行する、または、単一のアプリケーションからのコンテンツを表示することである。アプリケーション同士がインタラクションするとき、それらはしばしば、アプリケーションプログラムインターフェイスを介してインタラクションする別々のアプリケーションとしてインタラクションする。
[0004] 特許請求の範囲に記載されている主題は、何らかの欠点を解決する、または、上記で説明したものなどの環境でのみ動作する実施形態に制限されない。むしろ本背景技術は単に、本明細書で説明する一部の実施形態が実施され得る、1つの例示的な技術領域を示すために提供されるものである。
[0005] 本明細書で説明する少なくとも一部の実施形態は、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成することに関係する。このことは、情報のセッションに適用される映画性(cinematicity)のレベルを、セッションが提示される際に調整することにより行われる。より高いレベルの映画性は、情報を表すユーザインターフェイス要素を提示する際に、運動のより高い度合いを使用する。対照的に、映画性のより低いレベルは、情報を表すユーザインターフェイス要素のより低い運動を使用する、または、情報を表すユーザインターフェイス要素の運動を使用しない。
[0006] 本概要は、特許請求の範囲に記載されている主題の主要な特徴または本質的な特徴を識別することは意図されず、本概要は、特許請求の範囲に記載されている主題の範囲を決定する一助として使用されることもまた意図されない。
[0007] 上記で説述した、および他の、利点および特徴をどのように得ることができるかを説明するために、様々な実施形態のより詳細な説明を、添付の図面を参照して示す。これらの図面は、例示の実施形態のみを図示するものであり、したがって、本発明の範囲に関して制限的であると考えるべきではないことを理解して、実施形態を、追加の特殊性および詳細とともに、付随する図面の使用によって説明および解説する。
[0008]本明細書で説明する一部の実施形態が用いられ得るコンピューティングシステムを抽象的に示す図である。 [0009]単純な変換チェーンを抽象的に示す図であり、単一のデータソースおよび単一のデータターゲットを結合する単一のリンクだけが存在し、リンクにより表される変換は、データソースでの値を入力として使用して、データターゲットでの値を生成して、自動的に行われる。 [0010]別の単純な例示的な変換チェーンを抽象的に示す図であり、変換は、2つのデータターゲットでの出力値を生成するために、3つのデータソースからの入力値を使用して行われる。 [0011]図2の変換チェーンおよび図3の変換チェーンの組み合わせの形式での変換チェーンを示す図である。 [0012]本明細書で説明する原理が動作し得る例示的な環境を示す図であり、その環境は、複合アプリケーションの構成変換チェーンに関連付けられる複数個のデバイスを含み、さらには、入力デバイスおよび出力デバイスを含む。 [0013]図5でのそれぞれのデバイスに関連付けられ得る、例示的な変換チェーンを示す図である(別の変換チェーンとの結び付きがないのでデータが流れない矢印は、「X」によって示され、それ自体は変換チェーン内のノードではない依存関係要素は、破線の縁によって示される)。 [0013]図5でのそれぞれのデバイスに関連付けられ得る、例示的な変換チェーンを示す図である(別の変換チェーンとの結び付きがないのでデータが流れない矢印は、「X」によって示され、それ自体は変換チェーン内のノードではない依存関係要素は、破線の縁によって示される)。 [0013]図5でのそれぞれのデバイスに関連付けられ得る、例示的な変換チェーンを示す図である(別の変換チェーンとの結び付きがないのでデータが流れない矢印は、「X」によって示され、それ自体は変換チェーン内のノードではない依存関係要素は、破線の縁によって示される)。 [0013]図5でのそれぞれのデバイスに関連付けられ得る、例示的な変換チェーンを示す図である(別の変換チェーンとの結び付きがないのでデータが流れない矢印は、「X」によって示され、それ自体は変換チェーン内のノードではない依存関係要素は、破線の縁によって示される)。 [0014]図6Aおよび6Bの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0015]図6Aおよび6Cの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0016]図6Bおよび6Cの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0017]図6Aおよび6Dの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0018]図6A、6B、および6Cの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0019]図6A、6B、および6Dの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0020]図6A、6C、および6Dの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0021]図6A、6B、6C、および6Dの変換チェーンの結び付きを表す、拡大された変換チェーンを示す図である。 [0022]複合アプリケーションの実行を準備するための方法のフローチャートを示す図である。 [0023]図10、12、13、および14の方法を実行するために使用され得るものであり、変換チェーンクラス定義のライブラリ、およびデバイスレジストリ、ならびに提示サービスを含む、システムを抽象的に示す図である。 [0024]変換チェーンクラスの2つのインスタンスを結び付けるための方法のフローチャートを示す図である。 [0025]変換チェーンを、より大きな変換チェーンから結合解除するための方法のフローチャートを示す図である。 [0026]変換チェーンの1つまたは複数の提示ノードの変化を、適切なデバイス上にレンダリングするための方法のフローチャートを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0027]ユーザがいくつかのデバイスを注文しようとする、本明細書では「デバイスシナリオ」と称するシナリオで体験され得る様々なユーザインターフェイスを示す図である。 [0028]図15A〜15Jのデバイスシナリオで使用される複合アプリケーションを変化させるために遭遇し得る様々なユーザインターフェイスを示す図である。 [0028]図15A〜15Jのデバイスシナリオで使用される複合アプリケーションを変化させるために遭遇し得る様々なユーザインターフェイスを示す図である。 [0028]図15A〜15Jのデバイスシナリオで使用される複合アプリケーションを変化させるために遭遇し得る様々なユーザインターフェイスを示す図である。 [0028]図15A〜15Jのデバイスシナリオで使用される複合アプリケーションを変化させるために遭遇し得る様々なユーザインターフェイスを示す図である。 [0028]図15A〜15Jのデバイスシナリオで使用される複合アプリケーションを変化させるために遭遇し得る様々なユーザインターフェイスを示す図である。 [0029]情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するための方法のフローチャートを示す図である。
[0030] 本明細書で説明する少なくとも一部の実施形態は、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成することに関係する。このことは、情報のセッションに適用される映画性のレベルを、セッションが提示される際に調整することにより行われる。より高いレベルの映画性は、情報を表すユーザインターフェイス要素を提示する際に、運動のより高い度合いを使用する。対照的に、映画性のより低いレベルは、情報を表すユーザインターフェイス要素のより低い運動を使用する、または、情報を表すユーザインターフェイス要素の運動を使用しない。
[0031] コンピューティングシステムのいくらかの導入の考察を、図1に関して説明する。次いで複合デバイスアプリケーション技術を、後続の図に関して説明する。
[0032] コンピューティングシステムは今や、ますます多種多様の形式をとっている。コンピューティングシステムは例えば、ハンドヘルドデバイス、アプライアンス、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、分散型コンピューティングシステム、さらには、従来はコンピューティングシステムと考えられなかったデバイスであり得る。本説明では、および特許請求の範囲では、用語「コンピューティングシステム」は、少なくとも1つの物理および有形プロセッサ、ならびに、プロセッサにより実行され得るコンピュータ実行可能命令を有する能力のある物理および有形メモリを含む、任意のデバイスまたはシステム(または、それらの組み合わせ)を含むと、広範に定義される。メモリは、任意の形式をとり得るものであり、コンピューティングシステムの性質および形式に依存し得る。コンピューティングシステムは、ネットワーク環境にわたって分散型であり得るものであり、複数個の構成コンピューティングシステムを含み得る。
[0033] 図1で示すように、その大部分の基本構成では、コンピューティングシステム100は典型的には、少なくとも1つのハードウェア処理ユニット102およびメモリ104を含む。メモリ104は、揮発性、不揮発性、またはその2つの何らかの組み合わせであり得る、物理システムメモリであり得る。用語「メモリ」はさらには、本明細書では、物理記憶媒体などの不揮発性大容量記憶装置を指すために使用され得る。コンピューティングシステムが分散型である場合、処理、メモリ、および/または記憶能力もまた分散型であり得る。本明細書では、用語「実行可能モジュール」または「実行可能コンポーネント」は、コンピューティングシステム上で実行され得る、ソフトウェアオブジェクト、ルーティング、または方法を指す場合がある。本明細書で説明する異なるコンポーネント、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行するオブジェクトまたはプロセスとして(例えば、別々のスレッドとして)実装され得る。
[0034] 後に続く説明では、実施形態を、1つまたは複数のコンピューティングシステムにより行われる行為を参照して説明する。そのような行為がソフトウェアで実装される場合、行為を行う関連付けられるコンピューティングシステムの1つまたは複数のプロセッサは、コンピューティングシステムのオペレーションを、コンピュータ実行可能命令を実行したことに応答して指図する。例えばそのようなコンピュータ実行可能命令は、コンピュータプログラム製品を形成する1つまたは複数のコンピュータ可読媒体上で実施され得る。そのようなオペレーションの例は、データの操作を含む。コンピュータ実行可能命令(および、操作されるデータ)は、コンピューティングシステム100のメモリ104に記憶され得る。コンピューティングシステム100はさらには、通信チャネル108を含み得るものであり、その通信チャネル108は、コンピューティングシステム100が、他のメッセージプロセッサと、例えばネットワーク110を介して通信することを可能とする。
[0035] コンピューティングシステム100はさらには、ディスプレイ、スピーカ、発光体、作動器などの、出力レンダリングコンポーネントを含む可能性がある。コンピューティングシステム100はさらには、キーボード、ポインタデバイス(マウスまたはトラッキングパッドなど)、ボイス認識デバイス、および、場合によってはさらには物理センサ(例えば、温度計、全地球測位システム、光検出器、コンパス、加速度計など)などの入力コンポーネントを含み得る。
[0036] 本明細書で説明する実施形態は、下記でより詳細に考察するように、例えば1つまたは複数のプロセッサおよびシステムメモリなどのコンピュータハードウェアを含む、専用または汎用コンピュータを、備え得る、または利用し得る。本明細書で説明する実施形態はさらには、コンピュータ実行可能命令および/またはデータ構造を、搬送または記憶するための、物理および他のコンピュータ可読媒体を含む。そのようなコンピュータ可読媒体は、汎用または専用コンピュータシステムによりアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、物理記憶媒体である。コンピュータ実行可能命令を搬送するコンピュータ可読媒体は、伝送媒体である。したがって例としては、および制限としてではなく、本発明の実施形態は、少なくとも2つの明確に異なる種類のコンピュータ可読媒体、すなわちコンピュータ記憶媒体および伝送媒体を備え得る。
[0037] コンピュータ記憶媒体は、コンピュータ実行可能命令またはデータ構造の形式での所望のプログラムコード手段を記憶するために使用され得る、および、汎用または専用コンピュータによりアクセスされ得る、RAM、ROM、EEPROM、CD−ROMもしくは他の光学ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、任意の他の記憶媒体を含む。
[0038] 「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子デバイスの間での電子データの移送を可能にする、1つまたは複数のデータリンクと定義される。情報が、ネットワークまたは別の通信接続(ハードワイヤード、ワイヤレス、または、ハードワイヤードもしくはワイヤレスの組み合わせのいずれか)を介して、コンピュータに転送または提供されるとき、コンピュータは当然のことながら、接続を伝送媒体とみなす。伝送媒体は、コンピュータ実行可能命令またはデータ構造の形式での所望のプログラムコード手段を搬送するために使用され得る、および、汎用または専用コンピュータによりアクセスされ得る、ネットワークおよび/またはデータリンクを含み得る。上記のものの組み合わせもまた、コンピュータ可読媒体の範囲内に含めるべきである。
[0039] さらに、様々なコンピュータシステムコンポーネントに達すると、コンピュータ実行可能命令またはデータ構造の形式でのプログラムコード手段は、伝送媒体からコンピュータ記憶媒体に(または、その逆に)自動的に転送され得る。例えば、ネットワークまたはデータリンクを介して受信される、コンピュータ実行可能命令またはデータ構造は、ネットワークインターフェイスモジュール(例えば、「NIC」)の内部のRAMにバッファリングされ、次いで最後のところでは、コンピュータシステムRAMに、および/または、コンピュータシステムでのより揮発性でないコンピュータ記憶媒体に転送され得る。したがって、コンピュータ記憶媒体は、伝送媒体をもまた(さらには、主として)利用するコンピュータシステムコンポーネントに含まれ得ることを理解すべきである。
[0040] コンピュータ実行可能命令は例えば、プロセッサで実行されたとき、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、ある決まった機能または機能の群を実行させる、命令およびデータを備える。コンピュータ実行可能命令は例えば、バイナリ、さらには、アセンブリ言語などの中間フォーマット命令などの、プロセッサによる直接実行の前に何らかのトランスレーション(コンパイルなど)を経る命令、さらにはソースコードであり得る。主題を、構造的特徴および/または方法論的行為に固有の文言で説明しているが、添付の特許請求の範囲で定義される主題は、上記で説明した、説明した特徴または行為に必ずしも制限されないことを理解すべきである。むしろ、説明した特徴および行為は、特許請求の範囲を実装することの例示的な形式として開示されるものである。
[0041] 当業者であれば、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラマブルな民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、移動電話、PDA、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成によってネットワークコンピューティング環境で本発明が実施され得ることを理解するであろう。本発明はさらには、分散型システム環境で実施され得るものであり、その環境では、ネットワークによって(ハードワイヤードデータリンク、ワイヤレスデータリンクによって、または、ハードワイヤードデータリンクおよびワイヤレスデータリンクの組み合わせによってのいずれかで)リンクされる、ローカルコンピュータシステムおよびリモートコンピュータシステムが、両方ともタスクを実行する。分散型システム環境ではプログラムモジュールは、ローカルおよびリモートの両方のメモリ記憶デバイス内に設けられ得る。
[0042] 本明細書で説明する原理は、変換チェーンを使用して動作する。変換チェーンは、各々がデータソースまたはデータターゲットを表し得るノードの相互接続されるセットである。ノード間にはリンクが存在し、各々のリンクは変換を表す。任意の所与のリンク毎に、関連付けられる変換は、リンクに対する入力端部に位置する1つまたは複数のデータソースの値のコピーを受信し、リンクの出力端部に設けられる1つまたは複数のデータターゲットで提供される、結果として生じる値を生成する。任意の所与の変換毎に、その入力端部でのデータソースの1つまたは複数での値が変化するとき、変換は自動的に再評価され、変換の出力端部での1つまたは複数のデータターゲットの値の変化をもたらす可能性がある。
[0043] 1つの実施形態では、変換チェーンがどれだけ複雑であるかに関わらず、変換は宣言文から構築され得るものであり、それらの宣言文は、1つまたは複数の値を入力として受信し、結果として生じる1つまたは複数の値を出力として提供し得る、式、規則、拘束、シミュレーション、または任意の他の変換タイプを表すものである。変換チェーンの例はスプレッドシートプログラムであり、その場合、セルのいずれかは、データソースまたはデータターゲットであり得る。式(すなわち、変換)を任意のセルに関連付け、そのセルを式の結果が置かれるデータターゲットにすることができる。
[0044] 単に例として、図2は、単一のリンク220だけが存在する、単純な変換チェーン200を示す。本説明の全体を通して使用する図面表記では、リンクは矢印として示されることになり、入力端部は矢印の尾部として表され、出力端部は矢印の頭部として表される。リンクの入力端部に複数個のデータソースが存在する事例では、矢印は、複数個の尾部を伴って表されることになる。矢印の尾部でのデータソースの値のコピーは、変換への入力を表す。変換の結果として生じる値により影響を受ける複数個のデータターゲットが存在する事例では、矢印は、複数個の頭部を伴って表されることになる。矢印の頭部でのデータターゲットの値は、変換からの出力を表す。
[0045] 例えば図2は、データソース201と、データターゲット202と、単一のリンク220とを含む、単純な変換チェーン200を示す。リンク220は、データターゲット202での値212を生成するために、データソース201での値211のコピーに関して行われる変換を表す。値211が変化する場合、リンク220により表される変換は再評価され、データターゲット202での値212の変化をもたらす可能性がある。
[0046] 図3は、3つのデータソース301、302、および303と、2つのデータターゲット304および305と、単一のリンク320とを含む、別の単純な例示的な変換チェーン300を示す。リンク320は、データターゲット304および305での値を生成するために、データソース301、302、および303の値のコピーに関して行われる変換を表す。データソース301、302、または303のうちの任意の値が変化する場合、変換リンク320は再評価され、データターゲット304および305の任意の1つまたは複数の値の変化をもたらす可能性がある。
[0047] 図4は、別の例示的な変換チェーン400を示す。また、図4は、変換チェーンがさらに複雑にされた変換チェーンを創出するために、互いを基に築造し得るものであり、その場合、1つのリンクに対するデータソースは、他のリンクでのデータターゲットであり得るという原理を示す。例えば変換チェーン400は、変換チェーン200のインスタンス401と、変換チェーン300の402のインスタンスとを含む。この事例では、リンク220のデータターゲット202は、リンク320のデータソース301でもある。データソース201に関する値が変化する場合、リンク220により表される変換は再評価され、データターゲット202での値の変化をもたらす可能性がある。そのデータターゲット202はさらに、次のリンク320に対するデータソース301である。同様に、データソース301の値の変化により、変換リンク320が再評価されることになり、データターゲット304および305の任意の1つまたは複数の値の変化をもたらす可能性がある。データターゲット304および305は同様に、さらに他のリンクに対するデータソースを表す場合がある。したがって複雑な変換チェーンでは、1つの値変化が、変換チェーンの内の変換の適正な自動化された再評価によって、変換チェーン内の複数個のノードを通しての伝搬される複数の値変化を引き起こし得る。
[0048] 例示的な変換チェーン400は2つのリンクだけを含むが、変換チェーンは、かなり複雑になり、可算ノード、および、それらの可算ノードを接続する関連付けられるリンクを含む場合がある。本明細書で説明する原理は、変換チェーンの複雑度に関わらず動作し得る。
[0049] 図5は、6つのデバイス501〜506が存在する環境500を示す。省略符号507は、環境500の内部に存在するデバイスの数においての柔軟性を表す。事実上は、かなり動的に、環境500から離れ、環境500に入るデバイスが存在し得る。必要とされるわけではないが、デバイス507の各々は、図1のコンピューティングシステム100に対して説明したように構造化され得る。
[0050] 環境500は、デバイスのすべてが同じ近接度で設けられる物理環境である必要はないが、しばしばそのような場合であり得る。環境500は代わりに、デバイスのセットであって、それによって1人または複数のユーザが入力を提供し得るデバイスのセット、および、複数個のデバイスであって、それらによって出力が複数人のユーザに提供され得る複数個のデバイスが存在する、任意の環境と思考され得るものである。
[0051] デバイスの一部(例えば、デバイス501〜504)は、協調アプリケーションを伴う単なる協調デバイスを超えるものを形成する助力になる。代わりに、デバイス501〜504は各々、複合アプリケーションのコンポーネントに関連付けられる。デバイス501〜504の任意のものが環境500を離れる際に、複合アプリケーションは、より小さくなり、そのことにより、アプリケーションの変化した機能性をもたらす。他方で、アプリケーションのコンポーネントを有するデバイス(デバイス501〜504など)が環境500に入る際に、複合アプリケーションは実際上、より大きくなり、そのことにより実際上、複合アプリケーションの機能性、およびまさに構造を変化させる。本明細書で説明する原理によれば、1つのデバイスの変換チェーンが、他のデバイスの変換チェーンと結び付けられ、デバイスの拡大されたセットをより効果的に活用し得る、より大きな変換チェーンをもたらし得る。
[0052] デバイス505は、環境500で使用され得る出力デバイスを表すが、必ずしも変換チェーンを、複合アプリケーションのより大きな変換チェーンに対して付与しない。例えばデバイス505は、大きなスクリーンディスプレイであり得る。デバイス506は、環境500で使用され得る入力デバイスを表すが、必ずしも変換チェーンを、複合アプリケーションのより大きな変換チェーンに対して付与しない。例えばデバイス506は、マイクロホンであり得る。デバイス501〜504の存在により、それぞれの関連付けられる変換チェーンの部分が、複合アプリケーションのより大きな変換チェーンに貢献する。しかしながらデバイス501〜504はさらには、全体として複合アプリケーションにより使用され得る、入力能力および出力能力を有し得る。環境500は任意選択により、下記でさらに説明する外部システム510を含み得る。
[0053] 図6A〜6Dは、例示的な変換チェーンインスタンスまたはクラス600A〜600Dを示す。インスタンスは、クラスと同じ構造を有することになるので、例示される形態は、変換クラスおよび変換インスタンスを表すように考えられ得る。しかしながらインスタンスは、変換チェーンのノードの1つまたは複数の各々に関連付けられる特定のインスタンス状態を有することになる。したがって要素600A〜600Dは、変換チェーンクラスまたは変換チェーンインスタンスと称する場合がある。用語「変換チェーン」は、変換チェーンクラス、およびそれらの関連付けられる変換チェーンインスタンスの両方を一般的に指すために使用されることになる。例として変換チェーンインスタンス600A〜600Dは、それぞれのデバイス501〜504に関連付けられ得る。
[0054] 例示的な変換チェーン600A〜600Dは、本明細書で説明する、より広範な原理を、あまりにも複雑な例によって分かりにくくすることを避けるために、相対的に単純である。それでも本明細書で説明する原理は、変換チェーンがどれだけ複雑であるかに関わらず、ならびに、環境の内部にあり、複合アプリケーションを形成している、変換チェーンおよび関連付けられるデバイスの数に関わらず適用される。
[0055] 図6A〜6Dの表記では、変換クラス600N(ただしNは、A〜Dに及ぶ)に属するノードは、添え字Nを使用して表される。例えば図6Aでは変換チェーン600Aは、ノード601A、602A、603A、および604Aを含む。残りの要素601B、601C、および601Dは、「A」の添え字を伴って終了せず、したがって、変換チェーン600A内のノードではない。代わりに要素601B、601C、および601Dは、他の変換チェーンとの依存関係を表す。
[0056] 図6A〜6D、7A〜7D、8A〜8C、および9の全体を通して、変換チェーンそれ自体のノードのではなく、依存関係要素である要素を強調するために、依存関係要素は破線の境界によって表される。変換チェーンが、依存関係要素により表されるノードを含む別の変換チェーンと結び付けられない場合、データは、ノードから依存関係要素に流れない。データが特定の変換に沿って流れることができないという事実は、図の全体を通して、「X」によって印を付けられるリンクにより表される。
[0057] 例えば、変換チェーン600A内の要素601Bは、変換チェーン600B内のノード601Bとの依存関係を表す。依存関係要素601Bは、破線によって縁取られ、その依存関係要素601Bへ、またはその依存関係要素601Bからつながるすべてのリンクは、この段階では変換チェーン600Aは変換チェーン600Bと結び付けられないので、「X」によって印を付けられる。変換チェーン600A内の要素601Cは、変換チェーン600C内のノード601Cとの依存関係を表す。変換チェーン600A内の要素601Dは、変換チェーンクラス600D内のノード601Dとの依存関係を表す。
[0058] 単独で、変換チェーンインスタンス600Aは、アプリケーションとして機能し得る。例えば、データソース601Aからの値は、変換される結果をデータターゲット604Aの値として形成するために使用され得る。さらに、データソース601Aおよび602Aからの値は、データターゲット603Aの値をもたらすために変換され得る。変換チェーンインスタンス600Aが単独である場合、要素601B、601C、および601Dへ、ならびにそれらの要素からつながる変換は評価されない。
[0059] 変換チェーン600Bは、3つのノード601B、602B、および603Bを含む。しかしながら変換チェーン600Bはさらには、異なる変換チェーン内のノードの参照を行う依存関係要素601A、602A、601C、および603Cを含む。やはり変換チェーンインスタンス600Bは、単一のアプリケーションとして独立して動作し得る。例えば、データソース601Bからの値は、データターゲット602Bに対する結果として生じる値を生成するために、変換を通して提供され得る。データソース602Bからの値は、データターゲット603Bに対する結果として生じる値を生成するために、変換を通して提供され得る。
[0060] 変換チェーンインスタンス600Aおよび600Bは独立して動作し得るが、図7Aは、変換チェーン600Bと結び付けられる変換チェーン600Aを含む、結び付けられる変換チェーン700Aを示す。変換チェーンの各々内の依存関係要素は今や、参照される実在のノードによって置換されている。例えば図6Aの依存関係要素601Bは、今やノード601Bであり、図6Bの依存関係要素601Aは、今やノード601Aである。添え字AまたはBを有するノードのすべては、変換チェーン700A内のノードであり、添え字CまたはDを有するノードのみが依存関係要素である。例えばノード601A、602A、603A、604A、601B、602B、および603Bは、拡大された変換チェーン700A内のノードであり、複合アプリケーションの機能性は、個々の変換チェーン600Aおよび600B単独の機能性の総和より、ある程度良好になる。
[0061] 変換チェーン600Cは、3つのノード601C、602C、および603Cを含む。しかしながら変換チェーン600Cはさらには、異なる変換チェーン内のノードの参照を行う依存関係要素603A、601B、および603Bを含む。やはり変換チェーンインスタンス600Cは、単一のアプリケーションとして独立して動作し得る。例えば、データソース601Cからの値は、データターゲット602Cに対する結果として生じる値を生成するために、変換を通して提供され得る。同様に、データソース601Cからの値はさらには、データターゲット603Cに対する結果として生じる値を生成するために、変換を通して提供され得る。
[0062] 変換チェーンインスタンス600Aおよび600Cは独立して動作し得るが、図7Bは、変換チェーン600Cと結び付けられる変換チェーン600Aを含む、結び付けられる変換チェーン700Bを示す。変換チェーンの各々内の依存関係要素は今や、依存関係要素は変換チェーン600Aまたは600Cのいずれかのノードを参照するという範囲内で、参照される実在のノードによって置換されている。今や添え字AまたはCを有するノードのすべては、変換チェーン内のノードであり、添え字BまたはDを有するノードのみが依存関係要素である。例えばノード601A、602A、603A、604A、601C、602C、および603Cは、拡大された変換チェーン700B内のノードである。複合アプリケーションの機能性は、個々の変換チェーンインスタンス600Aおよび600Cの機能性の総和より良好になる。
[0063] 図7Cは、変換チェーンクラス600Cと結び付けられる変換チェーンクラス600Bを含む、結び付けられる変換チェーン700Cを示す。変換チェーンの各々内の依存関係要素は、依存関係要素は変換チェーン600Bまたは600Cのいずれかのノードを参照するという範囲内で、参照される実在のノードによって置換されている。今や添え字BまたはCを有するノードのすべては、変換チェーン内のノードであり、添え字AまたはDを有するノードのみが依存関係要素である。例えばノード601B、602B、603B、601C、602C、および603Cは、拡大された変換チェーン700C内のノードであり、複合アプリケーションの機能性は、個々の変換チェーンインスタンス600Bおよび600Cの機能性の総和より良好になる。
[0064] 図8Aは、やはり結び付けられている変換チェーン600A、600B、および600Cを含む、結び付けられる変換チェーン800Aを示す。変換チェーンの各々内の依存関係要素は、依存関係要素は変換チェーン600A、600B、または600Cのいずれかのノードを参照するという範囲内で、参照される実在のノードによって置換されている。示すノードのすべては、実際上は、依存関係要素601Dを除いて変換チェーン内のノードであることに留意されたい。複合アプリケーションの機能性は、個々の変換チェーン600A、600B、および600Cの機能性の総和より良好になる。
[0065] 変換チェーン600Dは、2つのノード601Dおよび602Dを含む。しかしながら変換チェーン600Dはさらには、異なる変換チェーンクラス600A内のノードの参照を行う単一の依存関係要素603Aを含む。やはり変換チェーンクラス600Dのインスタンスは、単一のアプリケーションとして独立して動作し得る。例えば、データソース601Dからの値は、データターゲット602Dに対する結果として生じる値を生成するために、変換を通して提供され得る。
[0066] 変換チェーンインスタンス600Aおよび600Dは独立して動作し得るが、図7Dは、変換チェーン600Dと結び付けられる変換チェーン600Aを含む、結び付けられる変換チェーン700Dを示す。変換チェーンの各々内の依存関係要素は今や、依存関係要素は変換チェーン600Aまたは600Dのいずれかのノードを参照するという範囲内で、参照される実在のノードによって置換されている。今や添え字AまたはDを有するノードのすべては、変換チェーン内のノードであり、添え字BまたはCを有するノードのみが依存関係要素である。例えばノード601A、602A、603A、604A、601D、および602Dは、拡大された変換チェーン700D内のノードであり、複合アプリケーションの機能性は、個々の変換チェーン600Aおよび600Dの機能性の総和より、ある程度良好になる。
[0067] 図7A〜7Dは、変換チェーン600A、600B、600C、および600Dの、他でもない2つを含む可能な置き換えのすべてを示すことに留意されたい。変換チェーン600Bおよび600Dは、2つの変換チェーンの組み合わせでは直接結び付けられない。なぜなら、いずれの変換チェーンも、他方の変換チェーン内のノードを参照する依存関係要素を有さないからである。さらに、変換600Cおよび600Dは、2変換チェーン組み合わせでは直接結び付けられない。なぜなら、いずれも、他方への依存関係参照を有さないからである。
[0068] 図8Aは、変換チェーン600A、600B、600C、および600Dの、他でもない3つを含む、3つの可能な組み合わせの1つを示す。特に図8Aは、変換チェーン600A、600B、および600Cを組み合わせる、拡大された変換チェーン800Aを示す。図8Bは、変換チェーン600A、600B、および600Dを組み合わせる、拡大された変換チェーン800Bを示す(その場合すべてのノードは、依存関係要素601Cおよび603Cを除いて、変換チェーンの部分である)。図8Cは、変換チェーン600A、600C、および600Dを組み合わせる、拡大された変換チェーン800Cを示す(その場合すべてのノードは、依存関係要素601Bおよび603Bを除いて、変換チェーンの部分である)。例示される変換チェーン600B、600C、および600Dの組み合わせは存在しない。なぜなら、変換チェーン600Dは、変換チェーン600Bへの(または、逆も同様)、または、変換チェーン600Cへの(または、逆も同様)依存関係参照を含まないからであることに留意されたい。図9は、組み合わされる変換チェーン600A、600B、600C、および600Dのすべてを含む、組み合わされる変換チェーン900を示す。
[0069] したがって、環境内にそれぞれのデバイス501〜504に関連付けられる変換チェーン600A、600B、600C、および600Dを与えられると、形成され得る(図7A〜7D、図8A〜8C、および図9の変換チェーンに対応する)8つの可能な複合アプリケーションが存在する。したがって、様々なデバイスの変換チェーンが、環境内に結び付けられ、環境から結合解除される際に、まさに変換チェーンそれ自体が変化し、複合アプリケーションの構造が、そのことにより変化する。例えば、データソース601Aの値の変化は、その変化の効果が1つまたは複数の変換を通して自動的に伝搬される際に、そのデータソース601Aが、変換チェーン600A単体内にあるか、変換チェーン700A内にあるか、変換チェーン700B内にあるか、変換チェーン700D内にあるか、変換チェーン800A内にあるか、変換チェーン800B内にあるか、変換チェーン800C内にあるか、それとも、変換チェーン900内にあるかに依存して、変換チェーンへの非常に異なる影響力を有する場合がある。
[0070] 例として、デバイス501が最初に環境に入り、それにより、変換チェーン600Aが使用されることになると仮定する。デバイス502が次いで環境に入り、それにより、変換チェーン600Bが変換チェーン600Aと結び付くことになり、そのことが、変換チェーン700Aをもたらす。したがって、動作する変換チェーンは、変換チェーン600Aから変換チェーン700Aに変化する。ここで、第3のデバイス503が環境に入り、それにより、変換チェーン600Cが変換チェーン700Aと結び付くことになり、そのことにより、変換チェーン800Aをもたらすと仮定する。したがって、動作する変換チェーンは、変換チェーン700Aから変換チェーン800Aに変化する。ここで、デバイス502が離れると仮定する。変換チェーン700Bが次いで、動作可能になることになる。ここで、デバイス504が環境に入り、それにより、変換チェーン600Dが変換チェーン700Bと結び付くことになり、それにより、変換チェーン800Cが、動作する変換チェーンになることになると仮定する。ここで、デバイス503が離れ、それにより、変換チェーン700Dが動作可能になると仮定する。ここで、デバイス501が離れ、それにより、変換チェーン600Dが動作可能になると仮定する。最終的にデバイス504が、環境内で動作する変換チェーンを残さずに離れる。このシナリオでは、動作するアプリケーションは、以下のように7回、構造を変化させた(およびしたがって、機能性を変化させる):1)変換チェーン600Aによって始まる、2)次いで、変換チェーン700Aに転じる、3)次いで、変換チェーン800Aに転じる、4)次いで、変換チェーン700Bに転じる、5)次いで、変換チェーン800Cに転じる、6)次いで、変換チェーン700Dに転じる、7)次いで、変換チェーン600Dによって完了する。
[0071] 図10は、複数個の結び付けられる変換チェーンインスタンスにより表される複合アプリケーションの実行を準備するための方法1000のフローチャートを示す。方法1000は、環境500の内部にあるデバイス501〜507の任意のものにより実行され得る。あるいは、または加えて、方法1000は、例えば図5の外部システム510によるなど、デバイス501〜507の外部で実行され得る。例えば外部システム510は、クラウドコンピューティング環境で提供されるサービスであり得る。どこで方法1000が行われるかに関わらず、図11は、方法1000を実行し得るシステム1100を示す。したがって、システム1100がデバイス501〜507の1つもしくは複数に組み込まれるかどうか、または、システム1100が図5の外部システム510であるかどうか、または、それらの組み合わせであるかに関わらず、図11のシステム1100を何度も参照して、方法100について以下で説明する。
[0072] 方法1000は、時間的な依存関係を有さない2つの行為1001および1002を含む。例えば方法は、異なる変換チェーンクラス間の依存関係を識別するステップ(行為1001)を含む。これらの依存関係は、本質的には、異なる変換チェーンクラスのインスタンスが、(さらなるインスタンスベースの承認を前提として)相互運用することを可能とするために、クラスを生成したクラス作成者により創出される認可である。
[0073] 例えばシステム1100は、論理コンポーネント1101および変換クラス定義ライブラリ1110を含み、その変換クラス定義ライブラリ1110は、6つの変換チェーンクラス定義1111〜1116を含むように示される。しかしながら省略符号1117は、変換チェーンクラス定義ライブラリ1110は任意の数の変換チェーンクラス定義を含み得ることを表す。例として、変換チェーンクラス定義1111、1112、1113、および1114はそれぞれ、図6A〜6Dの変換チェーンクラス600A、600B、600C、および600Dを定義すると仮定する。各々の変換チェーンクラスは依存関係要素を定義するので、システム1100は、ライブラリ1110を使用して、異なる変換チェーンクラス間の依存関係を識別し得る。
[0074] 例えば、変換チェーン600Aの依存関係要素601B、および、変換チェーン600B内の依存関係要素601Aを観察することにより、論理コンポーネント1101は、変換チェーンクラス600Aおよび600Bが結び付けられる場合、または、クラスのインスタンス同士が結び付けられる場合実在することになる、ノード601Aと601Bとの間の依存関係を識別し得る。論理コンポーネント1101は、変換チェーン600Aおよび600Bの作成者が両方とも、これらの依存関係要素での結び付きを(ユーザがさらには、インスタンスレベルで、ランタイムに認可することを推定して)認可することに同意することを推論し得る。
[0075] 方法1000はさらには、変換チェーンクラスの任意のもののインスタンスに関連付けられるデバイスを識別するステップ(行為1002)を含む。デバイスは、システム1100に対して、場合によってはデバイス識別子を、および可能性として、デバイスが使用することを望む任意の変換チェーンクラスを用いて、身元を明らかにし得る。あるいはシステム1100は、各々のデバイスに関連付けられる特定のデフォルト変換クラスを有し、したがっておそらくは、デバイス識別子を受信するだけである場合がある。デバイスが使用することをライセンスされる一部の変換チェーンクラス、および、デバイスが使用することをライセンスされない他の変換チェーンクラスが存在する場合がある。
[0076] 例えばシステム1100はさらには、様々な変換チェーンクラスに関連付けられるようなデバイスのレジストリを含む、デバイスレジストリ1120を含む。例えばデバイスレジストリ1120は、5つのデバイスレジストリ1121〜1125を含むが、省略符号1126は、デバイスレジストリ1120は任意の数のデバイスレジストリを含み得ることを表す。さらにデバイスレジストリ1120は、長期の間持続される場合もあるし、および/または、短い期間の間保たれるだけである場合もある。いずれにしても、システム1100は、複数個のデバイスを識別し、それらのデバイスに対して関連付けられる変換チェーンを見出す。単に例として、ことによると図5のデバイス501〜504は、レジストリ1121〜1124に関連付けられる。そのような関連付けにより、システム1100は、変換チェーンインスタンス600A、600B、600C、600D(それぞれ、変換チェーンクラス定義1111、1112、1113、および1114により定義される)がそれぞれ、それらのデバイス501〜504に関連付けられることを検出することが可能である。
[0077] 一部の実施形態では、システム1100自身が、特定の変換チェーンクラスのインスタンスの表現を、それぞれのデバイスのために実行する。例えば、変換チェーンクラス600Aがデバイス501に関連付けられることを識別すると、システム1100は、変換チェーンインスタンス600Aの表現を、デバイス501に対して動作させ得る。したがって、入力がデバイスから受信される際に、システム1100は、変換チェーン内の特定のノードに関する変化を識別し、チェーンを、変換チェーンの全体を通して伝搬させる。これは、「直接参加」手法と称することになる。この直接参加手法は、処理が、入力を提供しているデバイス自身より優れた処理性能を有する、デバイスまたはシステムまたはクラウドにオフロードされ得るという点で、いくらかの利点を有する。
[0078] 本明細書では「不干渉」手法と称する別の手法では、デバイスは、それ自体により変換クラスに関連付けられ、クラスのインスタンスを実行する。依存関係が、別のデバイスに関連付けられる別の変換チェーンに遭遇するとき、他のデバイスもまた不干渉手法に関与する場合、データは、直接(例えば、ピアツーピアネットワーキングによって)そのデバイスに流され得る。あるいはデバイスは、データを間接的に他のデバイスに(例えば、外部システムまたはクラウドによって)流し得る。外部システム510が、変換チェーンクラスのインスタンスの表現を、他のデバイスに対して実行している場合、デバイスは代わりに、データを外部システム510内に、変換チェーンの残りへのさらなる伝搬のために流し得る。
[0079] 図12は、変換クラスの2つのインスタンスを結び付けるための方法1200のフローチャートを示す。最初に変換チェーンクラスが、結び付けられ得るタイプであると確認される(行為1201)。例えば、変換チェーンクラスが互いに参照しない場合、おそらくは、それぞれのクラスのインスタンスを結び付けるためのクラスベースの認可は存在しない。例えば、変換チェーンクラス600Dは、変換チェーンクラス600Bまたは変換チェーンクラス600Cと結び付けられ得ない。なぜなら、変換チェーンクラス600Dは、変換チェーンクラス600Bまたは600C内の要素を参照しないからである。一方、変換チェーンクラス600Dは、変換チェーンクラス600Aと結び付けられ得る。なぜなら、それらは相互に、互いへの依存関係参照を含むからである。
[0080] この例では、変換チェーンクラス600Dは、変換チェーンクラス600Bおよび600Cと直接結び付けられ得ない。しかし、変換チェーンクラス600Dは、変換チェーン700A、700B、および800Aが、変換チェーン600Bおよび600Cの1つまたは両方を含むにも関わらず、変換チェーン700A、700B、および800Aと結び付けられ得る。
[0081] 一方、代替的実施形態では、変換チェーンクラスの作成者は、他の変換チェーンクラスと結び付くことに関するさらなる制約を指定することができる。例えば作成者は、変換クラスインスタンスがすでに複合変換チェーンである場合に、および/または、複合変換チェーンが特定の構成変換チェーンを有する場合に、特定の変換クラスインスタンスと結び付くことを許可しない一般的な制約を指示することができる。例えば、2つの変換チェーンインスタンスを結び付けるとき、システム1100は、その時点まで、複合変換チェーンを構築するために使用された変換クラス識別情報の経過を追う場合がある。そのリストは、クラスベースの認可に対する条件が満たされたかどうかを確認するために使用され得る。
[0082] 作成者はさらには、制約を、単一の依存関係の粒度で表す場合がある。例えば、変換チェーンクラス600Aの依存性要素601Bでは、作成者は、結び付きが、その依存関係要素に関して、その依存関係要素が結び付けられる変換チェーンが、競合者により作成される、識別される変換チェーンクラスを含まない場合にのみ認可されることを表す場合がある。作成者はさらには、変換チェーンから、別の結び付けられる変換チェーンに流されるデータを制御することを、依存関係それ自体に(例えば、ノード601Aと依存関係要素601Bとの間で)橋を架けることになる変換への制約または条件を書き表すことにより行う場合がある。
[0083] しかしながら、変換チェーンクラスが相互運用し得る場合でも、そのことは、ユーザが、変換チェーンクラスの自身の特定のインスタンスを、他の変換チェーンクラスの他のインスタンスに結び付けることを望むことを意味しない。結局のところ、データそれ自体(例えば、インスタンス状態)は、ユーザに影響されやすいものであり得る。したがって方法1200はさらには、異なる変換チェーンクラスのインスタンス同士が結び付けられるべきであると決定するステップを含む(行為1202)。
[0084] 異なる変換チェーンクラスの2つのインスタンス同士が結び付くことを認可するための結び付き判定基準は、ユーザがミーティング出席者リストに載っているか否か、様々なデバイスのユーザの関係性(例えば、家族、ソーシャルネットワークの友人など)、デバイス間の通信能力(例えば、近距離場)、それぞれのデバイスの(例えば、同じ会議室内での)近接度、ユーザの要求などの、1つまたは複数を含み得る。例えば結び付き判定基準は、インスタンスの関連付けられるユーザが同じチームの一員であるなどの、何らかの業務判定基準を含み得る。別の例として、1つのデバイスは、小売区域またはホテル内のキオスクとされる。利用客がキオスクを使用し、店員または接客係が自動的に、その店員または接客係のデバイスを使用して、その店員または接客係の変換チェーンをキオスクの変換チェーンと結び付けることで、複合アプリケーションを使用して、利用客とインタラクションし得る。条件が、結び付き判定基準に適用され得る。例えば、ベルボーイのデバイスは、接客係が周囲にいない場合(おそらくは、接客係が、対になり得る(pairable)アプリケーションを活動的に使用して利用客のアプリケーションと結び付かない、または、ネットワークから外れていることにより検出される)、利用客のアプリケーションと結び付くことが可能であり得る。
[0085] デバイスに関連付けられる変換チェーンクラスのインスタンスが、そのクラスにより定義されるデフォルト状態で開始されることになっていない場合、直接参加手法ではデバイスは次いで、インスタンスデータ(例えば、デバイスに関連付けられる変換チェーンのノードの各々での値)をシステム1100にアップロードし得る(行為1203)。不干渉手法ではおそらくは、境界ノードのみでのインスタンスデータが、システム1100にアップロードされる。
[0086] 変換チェーンインスタンスは次いで、変換チェーンの残りと結び付く(行為1204)。例えばこのことは、ターゲット変換チェーンインスタンス内のノードに対応する依存関係要素に対する、ソース変換チェーンインスタンスを検索することにより達成され得る。そのような依存関係要素が見出されると、その依存関係要素は、ターゲット変換チェーンインスタンス内の実在の識別されるノードによって置換され、そのことにより、ソース変換チェーンインスタンスとターゲット変換チェーンインスタンスとの間の実在のリンクを創出する。このことは、ターゲット変換チェーンインスタンス内のノードを識別する、ソース変換チェーンインスタンス内のすべてのそのような見出される依存関係要素に対して反復される。ターゲット変換チェーンインスタンス内のノードに対応しない、ソース変換チェーンインスタンス内で見出される依存関係要素が存在する場合、それらの依存関係要素は、合体される変換チェーンインスタンス内では依存関係チェーン要素のままである。
[0087] 図6A〜6Dの例では、変換チェーンクラス600A〜600Dのどれも、同じクラスを参照する依存関係要素を含まないことに留意されたい。しかしながら、本明細書で説明する原理は、特定の変換チェーンクラスのインスタンスが、同じ特定の変換チェーンクラスの別のインスタンス内の別のノードを参照する依存関係要素を有し得る場合でも動作し得る。さらに、結び付けられている特定のノードにより許可される場合、1つまたは複数の異なる変換チェーンインスタンスからとされる複数個のノードが、特定のノードと結び付き得る。
[0088] 結び付けられると、変換チェーンは拡大し、ほぼ、変換チェーンが元々、初めから拡大された方式で作成されたかのように、データは、拡大された変換チェーン内に流れる(行為1205)。例えば、変換チェーンクラス600Aのインスタンスが、変換チェーンクラス600Bのインスタンスと結び付くと、結果は、変換チェーンクラス700Aの単一のインスタンスである。変換チェーンクラス600Aのインスタンスが、変換チェーンクラス600Cのインスタンスと結び付くと、結果は、変換チェーンクラス700Bの単一のインスタンスである。変換チェーンクラス600Bのインスタンスが、変換チェーンクラス600Cのインスタンスと結び付くと、結果は、変換チェーンクラス700Cの単一のインスタンスである。変換チェーンクラス600Aのインスタンスが、変換チェーンクラス600Dのインスタンスと結び付くと、結果は、変換チェーンクラス700Dの単一のインスタンスである。
[0089] 変換チェーンクラス800Aのインスタンスは、変換チェーンクラス700Aおよび600Cのインスタンスを結び付けることによって、または、変換チェーンクラス600Aおよび700Cのインスタンスを結び付けることによってのいずれかで形成され得る。変換チェーンクラス800Bのインスタンスは、変換チェーンクラス700Aおよび600Dのインスタンスを結び付けることにより形成され得る。変換チェーンクラス800Cのインスタンスは、変換チェーンクラス700Bおよび600Dのインスタンスを結び付けることにより形成され得る。この結び付けるオペレーションを、何度も行うことにより、所与の環境にコラボレーションのために利用可能な多くのデバイスが存在する状況で、非常に大きな変換チェーンを創出することができる。
[0090] したがって、結び付けられると(行為1204)、データは自由に、拡大された変換チェーン中で、さらには、かつては構成変換チェーン間の境界であったものを越えて流れ得る(行為1205)。例えば、図7Aの変換チェーン700Aでは、データは自由に(アプリケーションプログラムインターフェイスの使用なしに、および、関数呼び出しなしに)、まさにデータがノード601Aからノード604Aに(適切な変換によって)流れ得るように、ノード601Aからノード601Bに(適切な変換によって)流れ得る。
[0091] したがってシステムは、多種多様のデバイスに関連付けられる変換を、相対的に自動化された、および好都合な方式で結び付けて、そのことにより、複数個のデバイスにわたって共有される複合アプリケーションの変換チェーンを拡大するために使用され得る。このことは、多種多様のシナリオを可能にする。
[0092] 例えば、特定の会議室でのミーティングに到着する個人を考える。第1のユーザが、会議室にラップトップコンピュータおよびスマートフォンを伴って入ると、スマートフォンに関連付けられる変換チェーンインスタンスは、ラップトップの変換チェーンインスタンスと結び付けられ、そのことによって、単一のアプリケーションが効果的に、第1のユーザのスマートフォンおよびラップトップにわたって実行中である。第2のユーザが、会議室に少々遅れて入る。第2のユーザもまたミーティング招待状に載っており、そのことによってユーザのスマートフォン変換チェーンは、既存の複合変換チェーンと、変換チェーンをさらに拡大するために結び付けられる。次いでテレビジョンスクリーンが、自動的に電源が入って、ミーティングに関連付けられるデータの一部を出力する。第3のユーザが、タブレットコンピュータを伴って入り、そのユーザもまたミーティングの招待された者である。したがって、タブレットコンピュータに関連付けられる変換チェーンは、複合変換チェーンと結び付いて、変換チェーンをさらに拡大する。したがって、より多くのデバイスが、変換チェーンを結び付けるのに適した環境と結び付く際に、デバイスのすべてにわたって実行されるアプリケーションは、実際上拡大され、そのことにより、アプリケーションそれ自体の機能性を変化させる。複数人のユーザは各々、環境を共有することができ、そのことによって複数人のユーザは、複数のデバイスの少なくとも1つまたは一部の各々を観察することができる。
[0093] 図13は、変換チェーンを結合解除するための方法1300のフローチャートを示す。まさに、デバイスが環境に入るときに変換チェーンを結び付けるための方法が存在するように、デバイスが環境を出るときに変換チェーンを結合解除するための方法が存在する。最初にシステムは、変換チェーンクラスのインスタンス同士が結合解除されるべきであると決定する(行為1301)。それに応じて、そのインスタンスへの、およびそのインスタンスからのデータの流れが中断される(行為1302)。インスタンス同士が結合解除されるべきであると決定するために使用される結合解除判定基準は、任意の判定基準を含み得るが、例として、インスタンスに関連付けられるデバイスの、環境内の他のデバイスとの近接度、ミーティング終結ステータス、インスタンスに関連付けられるデバイスと環境内の他のデバイスとの間の通信能力、ユーザの要求などの、1つまたは複数を含み得る。したがって変換チェーンは、デバイスが環境に入る、および環境を出る際に、動的に変化し得る。
[0094] 1つの実施形態ではシステム1100は、提示サービス1150を含む。実行中である変換チェーンインスタンスの1つまたは複数のノードは、1つまたは複数の周辺デバイス上でレンダリングを動作させることができる。同様に1つまたは複数のデバイスは、入力を、変換チェーンインスタンスの1つまたは複数のノード内に提供し得る。例えば、変換チェーン900のインスタンスが、図5の環境500内で実行中であり、これは、デバイス501〜504が、それぞれの変換チェーンクラス600A〜600Dのインスタンスに関連付けられ、そのことにより、拡大された変換クラス900のインスタンスが生じていると仮定する。図9を参照して、ノード601Aおよび601Cが入力ノードであり、ノード604A、603B、602C、および602Dが出力ノードであると仮定する。提示サービス1150は、どのデバイスが入力をノード601Aおよび601Cに提供し得るかを、ならびに、そうである場合、何の変換が行われることになるかを選択し得る。1つの例では、これらのデバイスは、それらの変換チェーンのそれぞれの部分に関連付けられ、そのことによって、そのそれぞれの部分の入力ノードは、それぞれのデバイスにより提供される。したがってデフォルトで、元々変換チェーン600Aの部分である入力ノード601Aは、(可能性として、何らかの変換の後に)デバイス501から入力を提供され得る。また、デフォルトの事例では、元々変換チェーン600Cの部分である入力ノード601Cは、(可能性として、何らかの変換の後に)デバイス503から入力を提供され得る。提示サービス1150はさらには、どのデバイスがノード604A、603B、602C、および602Dからの出力をレンダリングすることになるかを、ならびに、(ある場合)何の変換が行われることになるかを選択し得る。
[0095] 図14は、変換チェーンの出力を、複数個のデバイス環境でレンダリングするための方法1400のフローチャートを示す。方法1400は、図11のシステム1100により、またはことによると、図11の提示サービス1150により実行され得る。論理コンポーネント1101は、変換チェーンクラスのインスタンスの特定のノード(提示ノード)が変化したと決定する(行為1401)。例えば例では、ノード604A、603B、602C、および602Dは各々、出力ノードまたは「提示ノード」である。
[0096] 論理コンポーネントはさらには、少なくともその変化したバージョンの出力がレンダリングされ得る、複数個の候補デバイスの特性を識別する(行為1402)。例えば論理コンポーネント1101は、各々のデバイスのレンダリング能力を決定するために、デバイスレジストリ1120を参照し、および/または、デバイスに直接問い合わせ得る。各々のデバイスの特性はさらには、デバイスに関する各々のユーザの並列状態を含み得る。
[0097] システムは次いで、少なくともそのバージョンのレンダリングをレンダリングする候補デバイスの少なくとも1つを、識別される特性に基づいて選択する(行為1403)。システムはこの選択を、出力の有用性を最大化するために行う。例えば、出力がすべてのユーザを対象とし、すべてのユーザが物理的に存在する場合、出力は、より大きなスクリーン上でレンダリングされ得る。出力がインタラクティブであり、特定のデバイスからの入力を要する場合、そのデバイスが出力に対して選択され得る。
[0098] システムは、デバイスへの実際の出力の前に、何らかの変換がレンダリングに適用されるかどうかを決定する(判断ブロック1404)。変換は、選択されるデバイスの適合性を考慮する。ここで、変換は、選択されるデバイスに依存して、レンダリングごとに異なり得る。変換の例は、レンダリングのタイプを変化させること(例えば、テキストから音声、音声からテキスト、ビデオからテキスト、テキストからビデオなど)を含む。変換はさらには、出力の映画化(cinematization)を含み得る。例えば、ビデオを入力から創出することができ、ビデオにおいて、背景幕を提供したり、場合によっては適切なように変更したり、移動要素を、ビデオ内に、およびビデオ外に移動することができる。
[0099] 変換が行われることになる場合(判断ブロック1404での「はい」)、それらの変換が行われる(行為1405)。最終的にレンダリングが、選択されるデバイス上で実行される(行為1406)。したがって複合変換チェーンは、入力を任意のデバイスから任意の形式で取り込み、入力を、必要に応じて、複合変換チェーンの入力ノードにより認識される形式に変換し得る。したがってこの入力は、変換チェーンの全体を通して伝搬される。1つまたは複数の提示ノードの値が変化する場合、適切なデバイスが、出力をレンダリングするために選択され得る。したがって、レンダリングに対する最も適したデバイスは、どのデバイスが、提示ノードを含む変換チェーンの部分に関連付けられたかに対する配慮なしに選択され得る。例えば、提示ノード604Aの値の変化は、排他的に、さらには、変換チェーンインスタンス600Aに対応するデバイス501のすべてでレンダリングされる必要はない。一部の実施形態ではレンダリングは、情報を、何らかのタイプの運動を含む何らかの物理的作動に変換することを含み得る。例えばレンダリングは、ドアを開く、または閉じること、バルブを開く、または閉じること、ドアを解錠または施錠すること、テレビジョンの電源を入れる、または切ることなどを含み得る。
[00100] 詳細なシナリオ(本明細書では以降「デバイスシナリオ」と呼ぶ)をここで、図15A〜15M(まとめて「図15」と称する)に関して説明する。このシナリオは、本明細書で説明する、より広範な原理により可能にされる、無数の種々のシナリオのただ1つとして提供される。このシナリオではユーザが、様々なコンピューティングデバイスを注文している。シナリオは、4つのデバイス1501、1502、1503、および1504を含むが、シナリオは図15Aでは、2つのデバイス1501および1502のみが可視である状態で始まる。4つのデバイス1501〜1504の各々は、入力を複合アプリケーションに提供すること、および、出力を複合アプリケーションから受信することに参加する。
[00101] 図15Aは、ラップトップコンピュータである2つのデバイス1501および1502を導入する。これらの2つのデバイス1501および1502は、動作する環境内に最初に存在する唯一のデバイスであり、したがって、それらのデバイスのそれぞれの変換チェーンが結び付けられていると仮定する。デバイス1501に関連付けられる変換チェーンは、製造者のナビゲーションおよび選択を可能とする。デバイス1502に関連付けられる変換チェーンは、製造者により売りに出されるデバイスのリストのナビゲーションを可能とし、さらには、ユーザが、リスト内のデバイスの任意のものの総数を変化させることを可能とする。
[00102] より具体的にはデバイス1501は、ユーザが、いくつかの製造者を水平にスクロールし、製造者を選択することを可能とする。図15Aではデバイス1501は、「ベンダ7」、「ベンダ8」、および「ベンダ9」と名付けられた3つのそのような製造者のみを示し、ユーザは「ベンダ8」を選択している。他方でデバイス1502は、デバイス1501で選択されるベンダにより提供されるデバイスの水平にスクロール可能なリストを示す。図15Aでは、ベンダ8がデバイス1501上で選択されるので、デバイス1502は、ベンダ8により提供されるデバイスのリストを示す。デバイスリスト内の各々の品目は、デバイスの画像1505、デバイスの名前1506、デバイスの単位当たりコスト1507、および、注文されているデバイスの総数1508を含む。各々のデバイスに対する総数は、対応するスクロールコントロールを使用して制御され得る。
[00103] 図15Bは、ユーザが、製造者のリストを左方にスクロールし、さらには「ベンダ4」を選択したという点で、図15Aの状態から進行したシナリオの状態を示す。したがってデバイス1502からの出力は、ベンダ4により製造されるデバイスのリストを表示するために自動的に変化する。そのようにするために、データは、自動的に(アプリケーションプログラムインターフェイスの使用なしに)、デバイス1501に関連付けられる変換チェーンから、デバイス1502に関連付けられる変換チェーンに流れた。
[00104] 図15Cは、ユーザが、製造者のリストを左方にスクロールし、さらには「ベンダ2」を選択したという点で、図15Bの状態から進行したシナリオの状態を示す。したがってデバイス1502からの出力は、ベンダ2により製造されるデバイスのリストを表示するために自動的に変化する。そのようにするために、データは、やはり自動的に、デバイス1501に関連付けられる変換チェーンから、デバイス1502に関連付けられる変換チェーンに流れた。
[00105] 図15Dは、ユーザが、ベンダ2により売りに出される2つのデバイスに対する注文総数を変化させるために、デバイス1502上に表示されるスクロールコントロール1511および1512を使用したという点で、図15Cの状態から進行したシナリオの状態を示す。図15Eは、ユーザが、デバイス1502を使用して、ベンダ2により売りに出されるデバイスのリストを右方にスクロールし、さらに、ベンダ2により売りに出される2つのさらなるデバイスに対する注文総数を変化させるために、デバイス1502上に表示されるスクロールコントロール1513および1514を使用したという点で、図15Dの状態から進行したシナリオの状態を示す。したがって、この段階でユーザは、ベンダ2により売りに出される4つのデバイスに対する注文総数を入れた。
[00106] 図15Fは、第3のデバイス1503が環境内に導入されるという点で、図15Eの状態から進行したシナリオの状態を示す。例えば第3のデバイス1503は、注文全体に対する最大単位コストおよび総コストを表示する変換チェーンに関連付けられ得る。デバイス1503が環境内に導入されると、変換チェーンのその部分が既存の複合変換チェーンと結び付けられ、そのことにより、そのようなコストデータをデバイス1503に出力するように複合アプリケーションの機能性を変化させる。変換チェーンインスタンス同士が結び付けられると、総数および単位コストを表すデータが変換チェーンのその部分に流され、デバイス1503が直ちにポピュレートされる。また、デバイス1503が最大単位価格を指示する際に、流れは反対の方向でも起こり、したがって、デバイス1502で示されるデバイスのリストは、最大単位価格を下回る任意のデバイスに制約されることに留意されたい。この事例では、事前にリストに載せられたデバイスのすべてが最大単位価格を下回るので、デバイス1502上の視覚化の変化はない。
[00107] 図15Gは、ユーザが、ベンダ2により売りに出されるさらに別のデバイスに対する総数を入れるために、デバイス1502上のスクロールコントロール1515を使用したという点で、図15Fの状態から進行したシナリオの状態を示す。総数データおよび単位コストデータが、デバイス1503に対応する変換チェーンの部分内に流され、そのことが、デバイス1503上に表示される総コストの変化をもたらす。
[00108] 図15Hは、ユーザが、最大単位価格を987ドルに、デバイス1503上のスクロールコントロール1516を使用して下方に調整したという点で、図15Gの状態から進行したシナリオの状態を示す。その最大単位価格変化は、デバイス1503に関連付けられる変換チェーンの部分から、デバイス1502に関連付けられる変換チェーンの部分に流れており、それにより、ベンダ2により売りに出されるいくらかのデバイスが、リストから削除される。ユーザが額をより高く戻す場合、それらの削除された品目は、リスト上に戻るように自動的に追加され、おそらくは、デバイス1502を、図15Gで示す状態に戻す。
[00109] 図15Iは、第4のデバイス1504が環境内に導入されるという点で、図15Gの状態から進行したシナリオの状態を示す。例えば第4のデバイス1504は、デバイスの最大重量を表示する変換チェーンに関連付けられ得る。デバイス1504が環境内に導入されると、変換チェーンのその部分が、既存の複合変換チェーンと結び付けられ、そのことにより、そのような最大重量データを出力するように複合アプリケーションの機能性を変化させる。変換チェーンインスタンス同士が結び付けられると、最大重量を表すデータが、デバイス1504に関連付けられる変換チェーンの部分から、デバイス1502に関連付けられる変換チェーンの部分に流される。デバイス1502は、最大重量より重い各々のデバイスに関連付けられる、重量超過警告1518A、1518B、1518C、および1518Dを表示することにより応答する。この時点では図15Iでは、重量は606グラムだけであり、したがってデバイスのすべては、そのような警告と共にリストに載せられる。
[00110] 図15Jは、ユーザが、2キログラムを上回るように最大重量を増大するために、デバイス1504上のスクロールコントロール1517を使用したという点で、図15Iの状態から進行したシナリオの状態を示す。最大重量変化は、デバイス1504に関連付けられる変換チェーンの部分から、デバイス1502に対応する変換チェーンの部分に流され、そのことが、重量超過警告1518Cおよび1518Dの除去をもたらす(重量超過警告1518Aおよび1518Bは残っている)。
[00111] 以上で、ユーザ観点からのシナリオは終結する。図15K〜15Oは、作成時において、作成者は、変換を宣言によって変化させて、そのことにより、複合アプリケーションの機能性を変化させ得ることを示す。図15Kではユーザインターフェイス要素1520が、宣言的変換を含むように示され、その宣言的変換は、スライダ1516により指示される値を下回る、提案される製造者小売価格を有するデバイスをフィルタ除去するものである。図15Lは、この制約が今や除去され、したがって、表示されるデバイスは今や、スライダ1516の値によりフィルタ除去されないことを示す。
[00112] 図15Mではユーザインターフェイス要素1521が、小売価格で提案される製品に対して使用されるハイライト表示の色を定義するように示される。ここで、図15Nは、ハイライト表示色が、製造者の提案される小売価格が、スライダコントロール1516により指示される値を上回るか否かに依存することを示す。そうである場合、ハイライタ色が、例えば緑に変化する。図15Oは、スライダコントロール1516がこの状況で増大される際に、提案される製造者小売価格がスライダコントロール1516の値を上回る場合、リストからそのデバイスが除去されるという状態から、小売価格で提案される製品が、(スライダ1516の値と比較される際に)製造者の提案される小売価格のハイライト表示を動作させる状態に、複合アプリケーションの挙動が変化したことを示す。
[00113] 上記で述べたように、提示サービス1150が、提示ノードから出力するためにし得る1つの変換は、出力を映画化することである。映画化は、1つまたは複数の映画的技法の使用を指す。映画性のレベルは、各々の映画的技法が使用される度合いと組み合わされる、使用される映画的技法の数を指す。
[00114] 映画的技法は、ユーザインターフェイス上のユーザインターフェイス要素の運動の度合いを調整することを含む。ユーザインターフェイス内への、およびユーザインターフェイス外へのユーザインターフェイス要素の運動がトリガとなり、ユーザは、ユーザインターフェイスを、標準ユーザインターフェイスよりムービーのように扱い、そのことにより、ユーザはユーザインターフェイスの複数個の態様を簡単に会得することができる。ユーザインターフェイス要素のより少ない運動、さらには、静止は、ユーザが、要素とインタラクションする、したがって、より具体的に焦点を絞ることを可能とする。したがって、ユーザが、ユーザインターフェイス要素とインタラクションする意図を表すにつれて、ユーザインターフェイス要素の全体的な運動は、そのインタラクションを可能とするために減少される。
[00115] 別の映画的技法は、提示されているトピックに関係する背景幕の使用である。例えば遊びにおいて、背景幕は、遊びの設定を伝えるために使用される。背景幕は、トピックが変化する場合、または、以前の背景幕がしばらくの間存在していた場合、周期的に変化し得る。関心を引く背景幕の使用は、ユーザに、ユーザインターフェイスを、その複数個の層で全体として観視するように勧める。人間は先史時代から、多層のシーンを把握してきた。例えば、私たちが地平線に面したとき、私たちは、それがすぐ近くである野原であろうと、数マイル遠くの山頂であろうと、私たちが物体を直接眺めていようと、物体が、ある程度私たちの辺縁視でのものであろうと、任意の数の態様に焦点を絞ることができる。
[00116] さらに別の映画的技法は、ユーザインターフェイスの特定の態様を強調するための、照明およびハイライト表示の使用である。ジャンプカットの使用は、ユーザインターフェイスの複数個の層が、情報を異なる様に提示するように変化する、映画的技法である。映画的技法は、考察のトピックとマッチングする、合成されるユーザインターフェイス要素(背景幕、または、前景での他のユーザインターフェイス要素など)の使用であり得る。別の映画的技法は、提供されている情報のトーンまたはトピックに適している背景音楽の使用である。早送りまたは巻戻し機能を提供することもまた、デジタルビデオレコーダを模倣する映画的技法である。パンニング、および、設定に関する視点を変化すること(2次元であろうと、3次元であろうと)もまた、映画的技法である。映画性は、(例えば、背景幕をぼかす、もしくは除去することにより、または、背景幕を静止にすることにより)特定のユーザインターフェイス要素に焦点を絞ることを可能とすることにより低減され得る。
[00117] 1つのディスプレイが、変換チェーンの出力を映画的に表示している場合があるが、別のユーザは、そのユーザのパーソナルデバイスを使用して、情報とのより多くのインタラクションを実施し、したがって、セッション情報の同じコアストリームに適用される、より少ない映画性を使用する場合があるということに留意されたい。したがってユーザは、一般に、セッション情報の全体的な映画的ビューを分かち合う可能性があるが、個人は、所望のときに情報とインタラクションし、そのことにより、セッション情報に関するその個人の体験をカスタマイズし得る。
[00118] 図16は、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するための方法1600のフローチャートを示す。方法1600は、例えば提示サービス1150により、セッション情報がレンダリングされるときに実施され得る。提示サービスは、セッション情報を受信し(行為1601)、セッション情報に適用する映画性のレベルを決定する(行為1602)。提示は次いで、映画性を適用し(行為1603)、映画的出力をレンダリングさせる(行為1604)。その際、提示サービスは、セッション情報に適用される映画性のレベルを、セッションが提示される際に調整し得るものであり、方法1600は連続して実施される。
[00119] ユーザは、映画化されたレンダリングと(例えば、レンダリングで示されるオブジェクトに関する情報を掘り下げる(drill)ため、ストリームのペースもしくはテンポを変化させるため(「この部分を急いで済ます...xxxが見出される/に達するまで」)、または、同様のクリップ/フレーム/パターン/事象を見出すために)インタラクションし得る。そのため、映画化の部分は、ユーザがインタラクションし得るホットスポットを創出すること、ユーザとの対話を創出すること、または、いつ、およびどのようにユーザがインタラクションし得るかに対する、何らかの視覚的もしくは聴覚的な合図を与えることを含み得る。
[00120] したがって、本明細書で説明する原理は、存在する複数個のデバイスおよび複数人の人々を含む環境での映画的技法の使用を提供する。映画性のレベルは、デバイスにより異なり得るものであり、情報とインタラクションすることにユーザが焦点を絞る際に、経時的に変化し得る。他方で、映画性のより高いレベルの使用は、ユーザが、大量のデータを全体的に評価することを可能とする。
[00121] 本発明は、他の特定の形式で、本発明の趣旨、または本質的な特性から逸脱することなく実施され得る。説明した実施形態を、すべての事項において、単に例示的であり、制約的ではないと考えるべきである。本発明の範囲は、したがって、上述の説明によるというのではなく、添付の特許請求の範囲により指示される。特許請求の範囲の均等の意味および領域の内部に在るすべての変化は、それらの範囲内に包含されることになる。

Claims (15)

  1. 情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するための方法であって、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するためのコンピューティングシステムの1つまたは複数のプロセッサが、
    レンダリングされる変換チェーン出力を識別する動作と、
    前記変換チェーン出力をレンダリングする候補として選択された複数の装置のそれぞれの1または複数の特性を識別する動作であって、前記識別された1または複数の特性は、少なくともそれぞれのデバイスのレンダリング能力を含む、動作と
    1)それぞれのデバイスの前記識別された1または複数の特性、および2)前記変換チェーン出力の決定される有用性に少なくとも部分的に基づいて、前記変換チェーン出力をレンダリングするために、前記複数のデバイスに含まれる少なくとも1つのデバイスを選択する動作と、
    前記少なくとも1つのデバイスが前記変換チェーン出力をレンダリングするときに適用される映画性のレベルを調整する動作と
    を含み、
    映画性のより高いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素の運動を提示する際に、運動のより高い度合いを使用し、映画性のより低いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素のより低い運動を使用する、または、前記変換チェーン出力を表すユーザインターフェイス要素の運動を使用しない、方法。
  2. 映画性のより高いレベルは、前記変換チェーン出力に関係するトピックの合成される背景幕を使用する、請求項1に記載の方法。
  3. 映画性のより高いレベルは、映画性のより低いレベルよりも多くのジャンプカットを使用する、請求項1に記載の方法。
  4. 映画性のより高いレベルは、前記少なくとも1つのデバイスのユーザインターフェイス
    での複数個の焦点レベルに対応し、映画性のより低いレベルは、前記ユーザインターフェイスでの単一の焦点レベルに対応する、請求項1に記載の方法。
  5. 映画性のより高いレベルは、背景音楽を提供し、一方、映画性のより低いレベルは、より少ない背景音楽を有する、または、背景音楽を有さない、請求項1に記載の方法。
  6. 映画性のより高いレベルは、より多くの映画的照明を提供し、一方、映画性のより低いレベルは、より少ない映画的照明を提供する、または、映画的照明を提供しない、請求項1に記載の方法。
  7. 映画性の前記レベルがより高い場合、前記方法は、
    テキストの項目の視覚表現を見出す動作と、
    前記少なくとも1つのデバイスのディスプレイ上に前記視覚表現を表示する動作と
    をさらに含む、請求項1に記載の方法。
  8. 映画性の前記レベルがより高い場合、早送りおよび巻戻しが提供される、請求項1に記載の方法。
  9. 前記方法は、少なくとも第1のデバイスおよび第2のデバイスに対して、同じ一連の情報に対して実施され、前記一連の情報に適用される映画性の前記レベルは、前記第1のデバイスおよび前記第2のデバイスによって異なる、請求項1に記載の方法。
  10. コンピューティングシステムの1つまたは複数のプロセッサによって実行可能なコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、前記コンピューティングシステムに、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するための方法を実施させ、前記方法は、
    レンダリングされる変換チェーン出力を識別する動作と、
    前記変換チェーン出力をレンダリングする候補として選択された複数の装置のそれぞれの1または複数の特性を識別する動作であって、前記識別された1または複数の特性は、少なくともそれぞれのデバイスのレンダリング能力を含む、動作と
    1)それぞれのデバイスの前記識別された1または複数の特性、および2)前記変換チェーン出力の決定される有用性に少なくとも部分的に基づいて、前記変換チェーン出力をレンダリングするために、前記複数のデバイスに含まれる少なくとも1つのデバイスを選択する動作と、
    前記少なくとも1つのデバイスが前記変換チェーン出力をレンダリングするときに適用される映画性のレベルを調整する動作と
    を含み、
    映画性のより高いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素の運動を提示する際に、運動のより高い度合いを使用し、映画性のより低いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素のより低い運動を使用する、または、前記変換チェーン出力を表すユーザインターフェイス要素の運動を使用しない、1つまたは複数のコンピュータ可読記憶媒体。
  11. 映画性のより高いレベルは、前記変換チェーン出力に関係するトピックの合成される背景幕を使用する、請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
  12. 映画性のより高いレベルは、背景音楽を提供し、一方、映画性のより低いレベルは、より少ない背景音楽を有する、または、背景音楽を有さない、請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
  13. 映画性の前記レベルがより高い場合、早送りおよび巻戻しが提供される、請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
  14. 前記方法は、少なくとも第1のデバイスおよび第2のデバイスに対して、同じ一連の情報に対して実施され、前記一連の情報に適用される映画性の前記レベルは、前記第1のデバイスおよび前記第2のデバイスによって異なる、請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
  15. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行可能なコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムに、情報およびアプリケーションユーザインターフェイス要素を連続ストリーム形式に合成するための方法を実施させ、前記方法は、
    レンダリングされる変換チェーン出力を識別する動作と、
    前記変換チェーン出力をレンダリングする候補として選択された複数の装置のそれぞれの1または複数の特性を識別する動作であって、前記識別された1または複数の特性は、少なくともそれぞれのデバイスのレンダリング能力を含む、動作と
    1)それぞれのデバイスの前記識別された1または複数の特性、および2)前記変換チェーン出力の決定される有用性に少なくとも部分的に基づいて、前記変換チェーン出力をレンダリングするために、前記複数のデバイスに含まれる少なくとも1つのデバイスを選択する動作と、
    前記少なくとも1つのデバイスが前記変換チェーン出力をレンダリングするときに適用される映画性のレベルを調整する動作と
    を含み、
    映画性のより高いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素の運動を提示する際に、運動のより高い度合いを使用し、映画性のより低いレベルは、前記変換チェーン出力を表すユーザインターフェイス要素のより低い運動を使用する、または、前記変換チェーン出力を表すユーザインターフェイス要素の運動を使用しない、1つまたは複数のコンピュータ可読記憶媒体と
    を備える、システム。
JP2016567936A 2014-06-30 2015-06-29 複合デバイス環境での出力の映画化 Active JP6578302B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/320,083 US9659394B2 (en) 2014-06-30 2014-06-30 Cinematization of output in compound device environment
US14/320,083 2014-06-30
PCT/US2015/038219 WO2016003848A1 (en) 2014-06-30 2015-06-29 Cinematization of output in compound device environment

Publications (3)

Publication Number Publication Date
JP2017520827A JP2017520827A (ja) 2017-07-27
JP2017520827A5 JP2017520827A5 (ja) 2018-07-05
JP6578302B2 true JP6578302B2 (ja) 2019-09-18

Family

ID=53776932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016567936A Active JP6578302B2 (ja) 2014-06-30 2015-06-29 複合デバイス環境での出力の映画化

Country Status (11)

Country Link
US (1) US9659394B2 (ja)
EP (1) EP3161687B1 (ja)
JP (1) JP6578302B2 (ja)
KR (1) KR102359017B1 (ja)
CN (1) CN106462419A (ja)
AU (1) AU2015284403B2 (ja)
BR (1) BR112016027025B1 (ja)
CA (1) CA2948656C (ja)
MX (1) MX361305B (ja)
RU (1) RU2698421C2 (ja)
WO (1) WO2016003848A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396698B2 (en) * 2014-06-30 2016-07-19 Microsoft Technology Licensing, Llc Compound application presentation across multiple devices

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0350421A3 (en) 1988-06-28 1991-12-04 International Business Machines Corporation Generalized data stream transform service
US5748186A (en) 1995-10-02 1998-05-05 Digital Equipment Corporation Multimodal information presentation system
US6006227A (en) 1996-06-28 1999-12-21 Yale University Document stream operating system
US6768999B2 (en) 1996-06-28 2004-07-27 Mirror Worlds Technologies, Inc. Enterprise, stream-based, information management system
US6342901B1 (en) 1998-12-22 2002-01-29 Xerox Corporation Interactive device for displaying information from multiple sources
US6778698B1 (en) 1999-06-11 2004-08-17 Pts Corporation Method and apparatus for digital image segmentation
WO2002017115A2 (en) 2000-08-21 2002-02-28 Thoughtslinger Corporation Simultaneous multi-user document editing system
US7373656B2 (en) 2000-10-27 2008-05-13 Sandisk Il Ltd. Automatic configuration for portable devices
AU2002318447A1 (en) 2001-06-26 2003-01-08 Mirror Worlds Technologies, Inc. Stream-based enterprise and desktop information management systems
US7454760B2 (en) 2002-04-22 2008-11-18 Rosebud Lms, Inc. Method and software for enabling n-way collaborative work over a network of computers
US7987491B2 (en) 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
US7911409B1 (en) 2003-10-07 2011-03-22 Adobe Systems Incorporated Independent views generated for multiple display devices by a software application
US7817163B2 (en) * 2003-10-23 2010-10-19 Microsoft Corporation Dynamic window anatomy
US7839419B2 (en) * 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
US7743382B2 (en) 2003-11-03 2010-06-22 Ramal Acquisition Corp. System for deadlock condition detection and correction by allowing a queue limit of a number of data tokens on the queue to increase
US7437371B2 (en) 2004-02-10 2008-10-14 Microsoft Corporation Systems and methods for the implementation of unordered and ordered collections in a data store
US6976029B2 (en) 2004-02-10 2005-12-13 Microsoft Corporation System and method for providing user defined types in a database system
US20050203877A1 (en) 2004-02-27 2005-09-15 Baggenstoss Paul M. Chain rule processor
US20050289505A1 (en) 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
WO2007065357A1 (fr) 2005-12-05 2007-06-14 Beijing Sursen Co., Ltd Système et procédé de traitement de documents
US20070208498A1 (en) * 2006-03-03 2007-09-06 Inrix, Inc. Displaying road traffic condition information and user controls
US8429300B2 (en) 2006-03-06 2013-04-23 Lg Electronics Inc. Data transferring method
US8111686B2 (en) * 2006-08-07 2012-02-07 Microsoft Corporation Aggregating endpoint capabilities for a user
US20090128567A1 (en) * 2007-11-15 2009-05-21 Brian Mark Shuster Multi-instance, multi-user animation with coordinated chat
US8314838B2 (en) 2007-12-28 2012-11-20 Motorola Mobility Llc System and method for collecting media associated with a mobile device
US8489474B2 (en) 2007-12-31 2013-07-16 Software Ag Systems and/or methods for managing transformations in enterprise application integration and/or business processing management environments
US7899798B2 (en) 2008-02-25 2011-03-01 Microsoft Corporation Observing and reporting changes in complex software dependencies
US9063755B2 (en) * 2008-04-07 2015-06-23 Express Mobile, Inc. Systems and methods for presenting information on mobile devices
US8527679B2 (en) 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
JP5148534B2 (ja) * 2009-03-03 2013-02-20 株式会社東芝 通信サーバ、装置及びセッション制御方法
US20100235769A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Smooth layout animation of continuous and non-continuous properties
US20100306657A1 (en) * 2009-06-01 2010-12-02 3Dlabs Inc., Ltd. Audio-Enhanced User Interface for Browsing
US8352397B2 (en) 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model
EP2325762A1 (en) 2009-10-27 2011-05-25 Exalead Method and system for processing information of a stream of information
US9258394B2 (en) 2009-11-12 2016-02-09 Arun Sobti & Associates, Llc Apparatus and method for integrating computing devices
US20110154197A1 (en) 2009-12-18 2011-06-23 Louis Hawthorne System and method for algorithmic movie generation based on audio/video synchronization
US8326880B2 (en) 2010-04-05 2012-12-04 Microsoft Corporation Summarizing streams of information
US8438533B2 (en) 2010-04-26 2013-05-07 Sag Ag Performance-related decision support for compositions of process modeling environments
US8819026B2 (en) 2010-08-27 2014-08-26 SCR Technologies, Inc. Sequential chain registry
WO2012030318A1 (en) 2010-09-03 2012-03-08 Packetvideo Corporation System and method for transferring media content
US8843239B2 (en) * 2010-11-19 2014-09-23 Nest Labs, Inc. Methods, systems, and related architectures for managing network connected thermostats
US20120159326A1 (en) 2010-12-16 2012-06-21 Microsoft Corporation Rich interactive saga creation
US9779097B2 (en) * 2011-04-28 2017-10-03 Sony Corporation Platform agnostic UI/UX and human interaction paradigm
US8786634B2 (en) 2011-06-04 2014-07-22 Apple Inc. Adaptive use of wireless display
US20130002708A1 (en) * 2011-07-01 2013-01-03 Nokia Corporation Method, apparatus, and computer program product for presenting interactive dynamic content in front of static content
US9258344B2 (en) 2011-08-01 2016-02-09 Intel Corporation Multi-hop single sign-on (SSO) for identity provider (IdP) roaming/proxy
KR20130133319A (ko) * 2012-05-23 2013-12-09 삼성전자주식회사 3d그래픽 사용자 인터페이스 제작 장치 및 방법
US9613084B2 (en) 2012-06-13 2017-04-04 Microsoft Technology Licensing, Llc Using cinematic techniques to present data
CN103516994A (zh) 2012-06-29 2014-01-15 深圳市快播科技有限公司 多屏适配器摄像头配置方法、多屏适配器及多屏互动系统
WO2014008386A2 (en) 2012-07-05 2014-01-09 Flextronics Ap, Llc Method and system for controlling supply chains
EP2688263A1 (en) * 2012-07-17 2014-01-22 Tele2 Sverige AB System and method for delegated authentication and authorization
US20140025650A1 (en) 2012-07-18 2014-01-23 Microsoft Corporation Abstract relational model for transforming data into consumable content
US9235327B2 (en) * 2013-04-29 2016-01-12 International Business Machines Corporation Applying contextual function to a graphical user interface using peripheral menu tabs
US20150046363A1 (en) 2013-08-07 2015-02-12 Flextronics Ap, Llc Method and Apparatus for Managing, Displaying, Analyzing, Coordinating, and Optimizing Innovation, Engineering, Manufacturing, and Logistics Infrastructures
US20150135067A1 (en) * 2013-11-14 2015-05-14 Wells Fargo Bank, N.A. Intelligent data presentation

Also Published As

Publication number Publication date
MX2016016525A (es) 2017-05-01
JP2017520827A (ja) 2017-07-27
RU2016151336A (ru) 2018-06-28
RU2698421C2 (ru) 2019-08-26
US9659394B2 (en) 2017-05-23
BR112016027025B1 (pt) 2022-12-20
EP3161687B1 (en) 2020-03-18
CA2948656A1 (en) 2016-01-07
KR20170023882A (ko) 2017-03-06
KR102359017B1 (ko) 2022-02-04
US20150379746A1 (en) 2015-12-31
EP3161687A1 (en) 2017-05-03
WO2016003848A1 (en) 2016-01-07
MX361305B (es) 2018-12-03
AU2015284403B2 (en) 2020-04-30
AU2015284403A1 (en) 2016-11-17
CA2948656C (en) 2022-06-21
RU2016151336A3 (ja) 2019-01-30
CN106462419A (zh) 2017-02-22
BR112016027025A2 (pt) 2021-06-08

Similar Documents

Publication Publication Date Title
JP6530426B2 (ja) 複数個のデバイスにわたる複合アプリケーション提示
JP6578302B2 (ja) 複合デバイス環境での出力の映画化
JP6546937B2 (ja) 複数個のデバイスにわたる複合変換チェーンアプリケーション
JP6557262B2 (ja) 変換チェーンインスタンスの結び付きの認可

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180523

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190718

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: 20190802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190826

R150 Certificate of patent or registration of utility model

Ref document number: 6578302

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250