JP6934937B2 - コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス - Google Patents

コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス Download PDF

Info

Publication number
JP6934937B2
JP6934937B2 JP2019514120A JP2019514120A JP6934937B2 JP 6934937 B2 JP6934937 B2 JP 6934937B2 JP 2019514120 A JP2019514120 A JP 2019514120A JP 2019514120 A JP2019514120 A JP 2019514120A JP 6934937 B2 JP6934937 B2 JP 6934937B2
Authority
JP
Japan
Prior art keywords
context
page
application
related information
app
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
JP2019514120A
Other languages
English (en)
Other versions
JP2019537766A (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.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Banma Zhixing Network Hongkong Co Ltd
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 Banma Zhixing Network Hongkong Co Ltd filed Critical Banma Zhixing Network Hongkong Co Ltd
Publication of JP2019537766A publication Critical patent/JP2019537766A/ja
Priority to JP2021092676A priority Critical patent/JP2021152921A/ja
Application granted granted Critical
Publication of JP6934937B2 publication Critical patent/JP6934937B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • 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/445Program loading or initiating
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Selective Calling Equipment (AREA)

Description

他の出願の相互参照
本願は、2016年10月13日出願の中国特許出願第201610895318.X号「A CONTEXT−BASED APP OPERATING METHOD,MEANS,TERMINAL DEVICE AND SYSTEM」の優先権を主張する。当該出願は、すべての目的のために参照により本明細書に組み込まれる。
本願は、一般に、端末デバイス技術の分野に関し、特に、コンテキストアウェアコンピューティング技術に関する。
端末デバイス技術がますます多くのデバイスタイプ(例えば、スクリーンベースのデバイス、スクリーンレスデバイス、ウェアラブルデバイス、および、家庭用デバイスなど)を包含するよう発展するにつれて、ますます多くの人々がかかる端末デバイスのユーザになり、ますます多くの機能およびサービスがかかる端末デバイスで利用可能になってきた。現在、端末デバイスで提供されるサービスは、一般に、アプリケーション(アプリとも呼ばれる)の形態で提供され、一方で、端末デバイスで提供されるサービスにアクセスするためのインターフェースが、一般に、端末デバイスのホームスクリーンまたはデスクトップスクリーンに表示される。また、様々なユーザサービスが、特定のタイプのユーザのニーズに応えることに特化した様々なアプリを通して提供される。例えば、チャットサービスが、インスタントメッセージングアプリを通して提供され、オンラインショッピングサービスが、電子商取引ユーザアプリを通して提供される。ユーザは、ユーザのニーズに従って様々なサービスを提供する様々なアプリを手動で起動することができる。現在、コンテキストを切り替える際、ユーザは、或るコンテキストベースのアプリから別のコンテキストベースのアプリへ手動で切り替える必要があり、これは、不便で、時間が掛かることがあり、コンテキストベースサービスに対するユーザのニーズの根本的な変化に対応するのに時機を失することもある。
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションのためのシステムモデル例を示すブロック図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションのためのシステムモデル例のコンポーネントを示す関連図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションの例を示すブロック図。
本開示の1または複数の実施形態における、図1のシステム100のコンテキストエージェントフレームワーク例の様々なコンポーネントを示すブロック図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションのライフサイクル例を示す状態図。
本開示の1または複数の実施形態における、図1のコンテキストエージェントエンジン106によって制御されるコンテキストアウェアアプリの状態遷移の例を示す概略図。
本開示の1または複数の実施形態における、ページ間の相互作用の例を示す機能ブロック図。
本開示の1または複数の実施形態における、ページの状態遷移の例を示す概略図。
本開示の1または複数の実施形態における、ページの状態遷移の別の例を示す概略図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションの実行例を示す機能ブロック図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーション例を実行するための処理を示すフローチャート。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションを実行するための処理の別の例を示すフローチャート。
本開示の1または複数の実施形態における、2つのデバイスにわたって実装されたコンテキストアウェアアプリケーションの例を示す概略図。
本開示の1または複数の実施形態における、複数のデバイス上で実行されるコンテキストアウェアアプリのための処理の例を示すフローチャート。
本開示の1または複数の実施形態における、2つのコンテキスト下でのコンテキストアウェアアプリのページ遷移の例を示す概略図。
本開示の1または複数の実施形態における、コンテキストアウェアアプリケーションのためにプログラムされたコンピュータシステムの一実施形態を示す機能図。
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
「第1」、「第2」などの用語は、本願の記載および請求項ならびに図面において、類似した対象を区別するために用いられ、必ずしも特定の順番または順序を記載する意図はないことに注意されたい。このように用いられたデータは、適切な状況で交換可能であり、その場合、本明細書に記載の本願の実施形態は、本明細書に図示または記載した順序以外の順序でも実施できることを理解されたい。さらに、「含む」および「有する」という用語、ならびに、それらの任意の変化形は、非排他的な包含を網羅するよう意図されたものであり;例えば、一連の工程またはユニットを含む処理、方法、システム、製品、または、装置が、明確に列挙された工程またはユニットに必ずしも限定されることはなく、明確に列挙されていない他の工程またはユニット、もしくは、これらの処理、方法、システム、製品、または、装置に固有の他の工程またはユニットを含んでもよい。
本明細書で用いられる用語「端末デバイス」は、マルチメディア機能およびサービスなどのアプリケーションを利用可能なコンピュータデバイスのことである。端末デバイスの例は、スマートフォン、タブレット、ウェアラブルデバイス、セットトップボックス、パーソナルコンピュータ、スマートテレビ、スマート家電、デスクトップコンピュータ、ラップトップコンピュータ、インターネット・オブ・シングズ(IoT)オブジェクト、などを含む。端末デバイスは、オーディオ、ビデオ、データなどのサービスをユーザに提供するよう構成されうる。いくつかの実施形態において、端末デバイスは、さらに、タッチスクリーンなどのディスプレイを組み込むよう構成されうる。様々な実施形態において、端末デバイスは、様々なオペレーティングシステムをインストールするよう構成されてよく、オペレーティングシステムは、スマートオペレーティングシステム(IOS、Android、および、Alibaba(商標)Cloud OSなど)を含むが、これらに限定されない。
本明細書で用いられる用語「コンポーネント」、「サービス」、「モデル」、「アプリケーション」、および、「システム」は、ハードウェア、ハードウェアおよびソフトウェアの組みあわせ、ソフトウェア、または、実行中のソフトウェア、のいずれかであるコンピュータ関連のエンティティを指す。例えば、コンポーネントは、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および/または、コンピュータでありうるが、これらに限定されない。1または複数のコンポーネントが、プロセスおよび/または実行のスレッドの中に存在してよく、コンポーネントは、1つのコンピュータに局在してよい、および/または、2以上のコンピュータ間に分散されてよい。
本明細書で用いられる用語「インターネット・オブ・シングズ」(IoT)は、多数のオブジェクト(コンピュータまたはコンピュータネットワークに限定されない)が、ネットワーク(例えば、インターネット)を介して、読み取り可能、認識可能、場所の特定可能、および、制御可能になりうるアーキテクチャを実装する技術を指す。IoTネットワークのオブジェクトの例は、RFIDを備えたデバイス、赤外線センサを備えたデバイス、グローバルポジショニングシステム(GPS)を備えたデバイス、レーザスキャナを備えたデバイスなど、多様な情報収集デバイスを含みうる。ユビキタス接続の時代に、ユーザの端末デバイスは、スクリーンを備えたデバイス、スクリーンのないデバイス、家庭用デバイス、ウェアラブルデバイスなどを含むようますます多様化している。
図1は、本開示の一実施形態における、コンテキストアウェアアプリケーションのためのシステムモデル例を示すブロック図である。システム100は、コンテキストエージェントホスト102、コンテキストエージェントフレームワーク104、および、コンテキストエージェントエンジン106を備える。一実施形態において、コンテキストアウェアアプリのためのシステム100は、標準的なアプリ開発モデルを用いて実装される。本明細書で用いられているように、コンテキストとは、ユーザが自身の動作を実行している設定および/または条件のことである。この例において、コンテキストエージェントエンジン106およびコンテキストエージェントフレームワーク104は、下の層から提供されたコンテキスト情報を収集または検出できるようにシステム層に実装されるソフトウェアコードである。また、コンテキストエージェントフレームワーク104は、リアクティブプログラミングモデル、すなわち、観察可能なデータストリームを備えた非同期プログラミングパラダイムを提供するために、動的プログラミング言語(Javascript from a reactiveX library(RxJS)など)を用いて実装される。さらに、オブジェクト(様々なIoTデバイスなど)と相互接続するための統一プロトコルが、システムの一部として実装される。様々な端末デバイスおよびそこに提供された様々なサービスを接続および制御することにより、システム100は、ユーザが、プロアクティブかつ自動的なコンテキストアウェアアプリケーションのサービスを受けることを可能にする。コンテキストエージェントホスト102は、コンテキスト検出機能を備えたアプリコンテナである。本明細書で用いられているように、アプリコンテナとは、1セットのプロセスおよびリソース(メモリ、CPU、ディスクなど)をグループ化し、ホストおよび任意のその他のコンテナから隔離する軽量仮想環境を提供するオペレーティングシステム仮想化のソフトウェアコードのことである。コンテキストエージェントホスト102は、ページから継承し、ページは、最も高い親レベルのアプリユニット(ローカルサービスおよびリモートサービスの抽象化に共通した要素を定義するベースオブジェクトクラス)であり、その詳細については、図2Bを参照して後に説明する。開発者は、コンテキストエージェントホスト102のインスタンスを用いてアプリコンテキストを構成し、アプリコンテキストは、次にアプリとしてシステムで実行する。図に示すように、コンテキストエージェントホスト102は、コンテキストエージェントA 122、コンテキストエージェントB 124、コンテキストエージェントC 126を備え、これらは、それぞれ、コンテキストアプリA、コンテキストアプリB、および、コンテキストアプリCを表す。
コンテキストエージェントフレームワーク104は、下層のコンテキスト解析「エンジン(コンテキストエージェントエンジン106など)と通信するアプリケーションフレームワークである。下位のシステム層が、上位のシステム層(例えば、コンテキストエージェントホスト102など)のアプリケーションまたはサービスにコンテキストを検出する機能およびコンテキストアウェアサービスを提供する機能を提供する際、コンテキストエージェントフレームワーク104を通して提供する。
この例において、コンテキストエージェントフレームワーク104は、信号ストリーム142、サブスクリプション146、アクチュエータ144、および、エージェントインスタンス148を、コンポーネントとして備える。これらのコンポーネントの各々は、例えば、JavascriptのリアクティブXライブラリ(RxJS)によってサポートされたJavascriptなどの動的プログラミング言語を利用して、コンテキストに対応する処理ロジックを扱うよう構成される。コンテキストエージェントフレームワーク104については、図2Cを参照して詳述する。
コンテキストエージェントエンジン106は、コンテキストエンジンのシステムサービスであり、これは、システムに組み込まれた(例えば、システムの一部である)スタンドアロンサービスとして実装されうる。コンテキストエージェントエンジン106は、システムの上層にあるコンテキストベースのアプリ(例えば、コンテキストエージェントホスト102)を管理するよう構成される。コンテキストエージェントエンジン106については、図2Eを参照して詳述する。
この例において、コンテキストエージェントエンジン106は、エージェント管理162、実行スケジューリング163、セキュリティゲートキーパ164、ストリーム管理165、サブスクリプション管理166、および、アクチュエータ管理167を、コンポーネントとして含む。これらのコンポーネントの詳細については、図2Cを参照して後に詳述する。
図2Aは、本開示の一実施形態における、コンテキストアウェアサービスのためのシステムモデル例のコンポーネントを示す関連ブロック図である。図に示すように、コンテキストエージェントホスト2102は、コンテキストエージェントA2122およびコンテキストエージェントB2124のインスタンスを備えており、その機能の継承のためにコンテキストエージェントフレームワーク2104に依存する。コンテキストエージェントホスト2102も、コンテキストエージェントエンジン2016によっても管理され、その詳細については、図2Eを参照して説明する。
図2Bは、本開示の一実施形態における、図1のシステムモデル100に従って開発されたコンテキストアウェアアプリ例を示すブロック図である。図に示すように、コンテキストアウェアアプリケーション2200は、クラウドアプリパッケージ2202、ページ2204、ページリング2206、および、任意選択的なページカバー2208をコンポーネントとして備える。
まず、開発者は、図1のコンテキストエージェントホスト102から派生したコンテキストアウェアアプリを構築する。かかるコンテキストアウェアアプリは、例えば、クラウドアプリパッケージ2202の形態で提供されてよく、クラウドアプリパッケージ2202は、コンテキストの操作に対応する完全なアプリパッケージ(例えば、それ自身の上で実行されうるファイルの完全なセット)である。いくつかの実施形態において、クラウドアプリパッケージは、ドメイン名で識別される。
ページ2204は、最も高い親レベルのアプリのユニット(例えば、ベースオブジェクトクラス)である。換言すると、ページ2204は、アプリが導き出される最もベースレベルのアプリユニットである。この例において、コンテキストエージェントホスト2201は、コンテキストを検出する機能およびコンテキストアウェアサービスを提供する機能をページ2204から継承する。
ページカバー2208は、コンテキストアウェアアプリケーションにユーザインターフェースを提供するよう構成された仮想化コンポーネントであり、ユーザインターフェースは、ユーザとデバイスとの間の相互作用を可能にするよう構成される。ページカバー2208は、コンテキストにサービスする過程でユーザ入力を取得するかもしくはフィードバックまたはオプションをユーザに提供するための要件がないことがあるという意味で任意選択的である。
ページリンク2206は、アプリ間の通信のためのプロトコルである。ページリンク2206は、コンテキストアウェアアプリを呼び出すため、または、その他のアプリと通信するために利用できる.ページリンク2206は、インテントメカニズムまたはサービスメカニズムなどのメカニズムを用いて実装されうる。
この例において、クラウドアプリパッケージ2202は、ドメインAへの参照によって識別され、実行に向けて端末デバイス上にダウンロードおよびインストールされる。アプリケーションコンテキストが検出された後、1または複数のページを含むコンテキストアウェアアプリが、コンテキストに対応するサービスを提供するために実行される。さらに、ヒューマンマシンインターフェースを通して、コンテキストアウェアアプリは、さらに、ユーザによるアプリの制御を容易にするために、ユーザとの相互作用を提供する。
図2Cは、本開示の一実施形態における、図1のシステムモデル100のコンテキストエージェントフレームワーク例104の様々なコンポーネントを示すブロック図である。コンテキストエージェントフレームワーク2300は、信号ストリーム2302、アクチュエータ2304、サブスクリプション2305、エージェント(図示せず)、および、エージェントインスタンス2308を備える。
エージェントは、コンテキストの検出および論理処理がそれによって記述される完全なコンテキスト論理ユニット(例えば、ソフトウェアプロセス)である。
エージェントインスタンスは、特定の環境および特定のデバイスに対してインスタンス化されたエージェントのインスタンスである。
信号ストリームは、様々なデバイスおよびシステムのI/Oインターフェースなどのソースから受信される信号(温度信号、湿度信号、モーション信号など)のストリームである。信号ストリームの信号に対する動作を通して、上位のシステム層のアプリケーションに、コンテキストを検出する機能が与えられる。また、エージェントは、信号ストリームを用いてコンテキストを検出するために処理ロジックコンポーネントを組織化するよう構成される。
サブスクリプションは、様々な信号をそれらに対応するコンテキストに対応付けるサブスクリプション関係である。テーブル、構成ファイルなどが、対応関係を維持するために利用されうる。サブスクリプションを通して、検出された信号が、決定されたコンテキストに相関し、コンテキストは、次に、対応するコンテキストベースアプリに相関する。
アクチュエータは、コンテキストアウェアサービスの特定の実行可能なタスクである。それは、システムがコンテキストを検出することによってコンテキストの対応する論理処理を実行する時に実行される実際のサービスである。例えば、アクチュエータは、天候が暑くて湿度が高いことを検出した後、エアコンをつけるようタスクを課されうる。
コンテキストエージェントエンジンは、すべてのコンテキストアウェアアプリを管理し、それらのライフサイクルを維持するよう構成される。アプリのライフサイクルについては、図2Dを参照して詳述する。
図2Dは、本開示の一実施形態における、コンテキストアウェアアプリケーションのライフサイクル例を示す状態図である。アプリは、Created、Running、Frozen、および、Disposedという状態を含むライフサイクルを経験する。
Created2402は、アプリが作成された状態であり、この状態のコンテキストアウェアアプリは、すでにユーザ対象デバイス上にインストールされていることを示す。
Running2404は、実行の状態であり、その間、アプリは、エージェントによって記述されたロジックに従って動作を実行する。
Frozen2406は、動作停止の状態であり、その間、アプリはもはや、システムリソースを利用しないか、または、全くコンテキストサービスを提供しない。この状態では、以前にアプリによって確保または利用されていたシステムリソースは、完全に解放される、部分的に解放される、または、全く解放されない、のいずれかでありうる。しかしながら、アプリは、実行状態2404に復帰または復元することができ、ここで、アプリは、コンテキストエージェントエンジンによって実行され続ける。
Disposed2408は、実行の完了および終了の状態である。アプリ処理が終了し、すべてのリソースが解放される。
図2Eは、本開示の一実施形態における、図1のコンテキストエージェントエンジン106によって制御されるコンテキストアウェアアプリの状態遷移の例を示す概略図である。この例では、まず、コンテキストエージェントホスト2502が、コンテキストエージェントエンジン2504およびエージェントコントロールUI2506を用いて生成される。その後、コンテキストエージェントエンジン2504は、コンテキストエージェントホスト2502を停止状態に設定してよく、後に、コンテキストエージェントホスト2502を実行状態に戻す。コンテキストエージェントエンジン2504は、さらに、コンテキストエージェントホスト2502を制御してその実行を終了させ、それに対応して、ダイナミックページマネージャサービス(DPMS)にもサービスを停止させる。いくつかの実施形態において、一般にサービスプロセスとして実装されるDPMSは、ページインスタンスを実行するための管理サービスとして用いられる。コンテキストエンジン2504は、インテントメカニズム、バインダメカニズム、匿名共有メモリメカニズム、または、プロセス間の通信のための任意の適切なメカニズムなど、プロセス間通信メカニズムを用いてコンテキストエージェントホスト2502へイベントの形態で上述の制御を通信しうる。DPMSについては、後に詳述する。
次に、モバイルオペレーティングシステムであるYunOS(Aliyun OSとも呼ばれる)に基づいたページ管理の一例について記載する。記載した技術は、IOS、Androidなど、その他のオペレーティングシステムにも適用可能である。
(1)ページ
本明細書で用いられるページとは、アプリのベースユニットの形態でローカルサービスおよびリモートサービスを抽象化するサービスコンポーネントのことである。様々なデータおよび機能をパッケージングすることにより、ページが、様々な種類のサービスを提供する。いくつかの実施形態において、1つのコンテキストアウェアサービスまたはアプリが、2以上のページを備えてもよい。例えば、コンテキストアウェアアプリが、UI(ユーザインターフェース)のサービスを提供するために1つのページ、画像取得のために別のページ、および/または、アカウント認証などのバックグラウンドサービスのために別のページを備えてよい。実行中のページを、本明細書では、ページインスタンスと呼ぶこととする。それは、ローカルサービスまたはリモートサービスを実行するための実行エンティティであり、DPMSを用いて作成されうる。例えば、ページAによって送信されたページBへのページリンクを受信した後、DPMSは、ページBのインスタンスを作成する。また、ページインスタンスは、DPMSによってスケジューリングまたは管理され、DPMSは、さらに、ページインスタンスのライフサイクルを維持する。
各ページは、YunOSにおいて一意識別子を有する。例えば、ページは、URI(ユニフォーム・リソース識別子)を用いて識別することができ、URIは、識別子の一意性を生み出す様々な適切な技術を用いて生成される。URIは、対応するページを一意的に決定するためのアドレスリンクとして機能する。例えば、ページによって提供されるサービスを区別するために、サービスのタイトル、サービスのコンテンツ、サービスの提供方法、サービスのプロバイダなど、関連情報が、対応するURIに埋め込まれ、ページに割り当てられうる。
企業Aによって提供されるカレンダーサービスを例に取ると、企業Aのカレンダーサービスに対応するページに割り当てられるURIは、以下のように構成されうる:
Page://calendar.a.com
上記において、「Page://」は、ページに対応するアドレスとしてのこのアドレスを、wwwサイトまたはFTPサイトなど他のタイプのアドレスから区別するために用いられる。「calendar」は、提供されるサービスのタイトルを示し、一方、「a」は、サービスプロバイダについての情報が企業Aであることを示す。
コンテキストのニーズに応じて、ページが、複数のページインスタンスの作成を必要としてもよい。同じページの異なるインスタンスを区別するために、一意ページIDが、さらに、識別のために各ページインスタンスに割り当てられる。かかる識別子は、ページインスタンスが作成された時に割り当てられうる。ページインスタンスは、ページの実行状態であり、すなわち、ローカルまたはリモートサービスの実行エンティティである。再び、DPMSは、ページインスタンスのライフサイクルを作成、スケジューリング、および、管理する。同様に、ページIDが、情報要素(ページリンク)に埋め込まれ、送信されうる。
図2Fは、本開示の一実施形態における、ページ間の相互作用の例を示す機能ブロック図である。この例において、ページA 2602は、(例えば、ページリンクに含まれる)イベントをページB 2604に送信し、ページB 2604から返されたデータを取得する。また、ページA2602は、UI 2608を通してユーザ2606と相互作用する。また、図に示すように、ページA 2602はサービスAを提供し、ページB 2604はサービスBを提供する。ページA 2602は、UI 2608の形態で表示インターフェースをユーザ2606に提供し、UI 2608を通して、サービスAの結果がユーザ2606に提供され、ユーザ2606からの様々な入力が受信される。さらに、ページB 2604は、主にバックグラウンドで実行し、他のページにサービスサポートを提供するよう構成される。
さらに、ページは、開発および破棄されうるものであり、したがって、開発および破棄の間に3つの状態を有する。
Createdは、ページが作成されたことを示す状態である。ページは、作成(すなわち、インスタンス化)された後に、作成状態に入る。
Runningは、ページが生成された後の実行の状態である。この状態では、イベントおよび/またはデータが、ページ間で伝送され、それぞれの受信側ページによって処理される。
Stoppedは、ページが非アクティブ化されたことを示す状態である。この状態では、ページは、イベントおよび/またはデータを他のページとやり取りしない。
図2Gは、本開示の一実施形態における、ページの状態切り替えの例を示す。ページは、上述の異なる状態の間で切り替わることができる。また、ライフイベント通知が、切り替え後にページの状態を構成するために、切り替え時に受信される。DPMSは、ページ状態切り替えおよびライフイベント通知を制御する。
図に示すように、ページ(図示せず)がonStartイベント2703を受信すると、そのページは、Created状態2702を離れ、Running状態2704に入る。ページは、onStopイベント2705を受信すると、Running状態2704を離れ、Stopped状態2706に入る。Running状態2704にある時、ページは、onLinkインターフェース2707を介して他のページによって送信されたページリンクを受信する。onStartイベント2703は、Running状態2704に入り始めるようページに指示するために用いられるライフイベント通知である。onStopイベント2705は、Stopped状態2706に入り始めるようページに指示するために用いられるライフイベント通知である。
図2Hは、本開示の一実施形態における、ページの状態遷移の別の例を示す。UI(ユーザインターフェース)を有するページについて、Running状態は、以下の3つのサブ状態の内の1つでありうる:
Hiddenは、ページがバックグラウンドで実行し、ユーザに対して表示されていない時のサブ状態である。
Shown−inactive(明らかに非インタラクティブ)は、あらゆるユーザ入力に応答しないモードでページがユーザに表示されている時のサブ状態である。
Shown−active(明らかにインタラクティブ)は、ユーザ入力に応答するモードでページがユーザに表示されている時のサブ状態である。
例えば、ページAは、フルスクリーンウィンドウに表示され;ページBは、部分スクリーンウィンドウに表示される。ページBがページAの上に表示されている時、ページAは、Shown−inactiveサブ状態にあり、ページBは、Shown−activeサブ状態にある。
ライフイベントの通知を通して、ページは、異なる状態の間および異なるサブ状態の間で切り替わる。
図2Hに示すように、Hiddenサブ状態2802にあるページ(図示せず)がonShownイベント2801を受信した後、それは、Shown−inactiveサブ状態2804に入る。Shown−inactiveサブ状態2804にあるページがonHideイベント2803を受信した後、それは、Hiddenサブ状態2802に戻る。Shown−inactiveサブ状態2804にあるページがonActiveイベント2805を受信した後、それは、Shown−activeサブ状態2806に入る。Shown−activeサブ状態2806にあるページがonInactiveイベント2807を受信した後、それは、Shown−inactiveサブ状態2804に入る。
(2)ページリンク
ページリンクは、ページ間での伝送のための情報要素である。情報(イベント、データなどであるが、これらに限定されない)が、ページリンクを用いてページ間で伝送される。イベントおよびデータのかかる伝送は、プロセス間および/またはスレッド間の通信プロトコルに従って、API(アプリケーションプログラミングインターフェース)の構成されたセットを用いて実施されうる。また、ページリンクの利用により、YunOSは、それらの通信に従ってサービスコンポーネント間の関係を記録する。ターゲットページのURIは、(例えば、構成ファイルに格納された)ページリンク内に構成され、イベント、データ、および/または、サービスの情報も、ページリンクに含まれうる。
ページは、柔軟にページリンクを通して相関され、様々なコンテキストアウェアサービスの実施を達成する。
(3) DPMS
本明細書で用いられるDPMS(ダイナミックページマネージャサービス)とは、システムが提供するサービスコンポーネント管理エンティティのことである。DPMSは、作成から始まり破棄に至るページのライフサイクルを管理する。DPMSは、ページのランタイムスケジューリング、および、ページリンクを介してのページ間の相互作用も管理する。
図3は、本開示の一実施形態における、コンテキストアウェアアプリの実行例を示す機能ブロック図である。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。
上述のサービスコンポーネント管理を用いて、システムは、サービスコンポーネント管理インスタンスおよびN個(Nは2以上の整数)のサービスコンポーネントを含むよう準備される。このシステムに基づいて、サービスコンポーネント管理コンポーネントは、或るサービスコンポーネントによって別のサービスコンポーネントに向けて送信された情報エンティティを受信し、処理のために第2サービスコンポーネントに情報エンティティを送信するよう構成されうる。
上述のシステムを用いて、コンテキストアウェアアプリケーションが、コンテキストに従ってユーザに提供されうる。
コンテキストエージェントが開発されると、上述のシステムに基づいた自動コンテキストアウェアサービスが、本開示の実施形態に従って提供されうる。一実施形態において、信号を受信すると、コンテキストエージェントフレームワークは、信号に対応するコンテキスト関連情報を検出し、特定のコンテキスト関連情報のための処理ロジックを決定する。結果として、コンテキストエージェントホストは、決定された処理ロジックに対処するためにコンテキストアウェアアプリを実行するようタスクを課される。かかるコンテキストアウェアアプリは、様々なアプリケーションを含みうる。例えば、温度が30°を超えることをユーザの携帯電話が検出すると、対応するコンテキストアウェアサービスまたはアプリは、ユーザの家のエアコンを始動させる。別の例として、ユーザの家が施錠され留守であるという信号をセキュリティシステムが検出すると、対応するコンテキストアウェアアプリが、電力を節約するためにユーザの家の特定の家電製品(電気など)をオフにする。
いくつかの実施形態において、コンテキスト関連情報は、対応するコンテキストアウェアアプリによって操作される処理ロジックを決定するために用いられ、コンテキストアウェアアプリは、コンテキスト内で提供されるサービスに対応する。この構成において、コンテキスト関連情報は、例えば、要求されたシステム信号、ロジック処理タスク、対応するコンテキストアプリなどを含むがこれらに限定されない対応するサービスによって実施される処理ロジックを識別するために利用できる。
本明細書で用いられるシステム信号とは、デバイス内のデータ要素のことである。システム信号は、デバイスのデータと、デバイスによって受信されたデータと、を含む。例えば、デバイスデータは、デバイスソフトウェア命令データ、センサ信号、および、様々な種類のインターフェースデータなど、デバイス上のソフトウェアデータおよびハードウェアデータを含む。デバイスによって受信されたデータは、様々なコマンドデータ、ハードウェアデータ、および、デバイスによって受信されたインターフェースデータを含む。例えば、イヤホンがデバイスに接続されたことを示すインターフェースデータをデバイスが検出すると、メディアプレイヤーアプリが、歌または音声ファイルを再生するためにアクティブ化される。別の例において、デバイスが利用可能な外部Bluetooth(登録商標、以下同じ)信号を検出すると、デバイスは、対応するBluetoothイヤホンまたはその他のBluetoothデバイスを、Bluetooth信号を提供するBluetoothネットワークに接続する。さらに別の例において、デバイスが天気アプリから特定の温度の温度データを検出すると、デバイスは、エアコンシステムをオンにする。いくつかのタイプ例のデータが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、様々な種類のデータを取得して、様々な対応するコンテキスト関連情報を決定する工程に適用できることに注意されたい。
この例において、デバイスは、例えば、対応するセンサ、サービスなどを用いて、様々なタイプのシステム信号を受信するよう構成される。かかる信号は、電話着信の信号、様々なセンサによって検知されてセンサから送信された信号、ユーザの位置の信号、インターネットサービスによって生成された信号などを含みうるが、これらに限定されない。1または複数のシステム信号302を受信した後、コンテキスト関連情報304が、1または複数のシステム信号を用いて決定される。一実施形態において、コンテキストアウェアアプリによって対処される各コンテキストは、対応するシステム信号をサブスクライブするので、コンテキスト関連情報は、対応する対象コンテキストアウェアアプリ306を決定するために用いられ、対象コンテキストアウェアアプリ306は、次に、コンテキストに対処するために実行される。例えば、空調コンテキストは、温度信号をサブスクライブし、照明条件コンテキストは、オン/オフ信号、バルブの明るさの程度、モニタリング信号などをサブスクライブする。したがって、対応する対象コンテキストアウェアアプリは、コンテキスト関連情報に基づいて決定され、その結果として、コンテキストに対応するサービスを提供するために実行される。いくつかの実施形態において、対象コンテキストアウェアアプリ306は、コンテキストアウェアアプリユニット(例えば、ページ)307の少なくとも1つのインスタンスを含む。次に、対象コンテキストアウェアアプリは、コンテキスト関連情報に対応する動作308を実行するために呼び出される。例えば、上述のようにそれぞれのコンテキスト関連情報を受信すると、制御アプリは、空調をオンにして27°まで温度を下げるように、無線接続され制御されたエアコンに通知し、無線接続され制御された照明をオンまたはオフにするように、照明制御アプリに通知しうる。
図4は、本開示の一実施形態における、コンテキストアウェアアプリを実行するための処理の例を示すフローチャートである。処理400は、例えば、図1のシステム100によって実施されうるが、これに限定れない。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。
処理400は、コンテキスト関連情報が、取得されたシステム信号に基づいて決定される工程402で開始する。システム信号は、コンテキスト検出システムで受信された様々なタイプのデータ、IoTネットワークなどのネットワークで生成された様々なタイプのデータ、などを含む。例えば、端末デバイスで受信されるシステム信号は、センサ(例えば、温度センサ、湿度センサ、モーションセンサ、など)によって受信されたデータに関連するセンサ信号、デバイスコマンド信号(例えば、電源オン/オフ信号、表示信号、など)、ホームセキュリティシステムから生成された信号、照明システムによって生成された信号、などでありうる。
工程404で、コンテキスト関連情報に対応する対象コンテキストアウェアアプリが実行され、対象コンテキストアウェアアプリは、少なくとも1つのアプリユニットを備える。この例において、コンテキストアウェアアプリは、コンテキスト関連情報に対応するよう予め構成される。各コンテキスト関連情報は、1または複数のシステム信号に対応するようリンクされうる。メッセージングのパターンとして、サブスクリプションは、ソースによって発行されてサブスクライバによって受信されるメッセージのデータ構造を定義する。したがって、かかるメッセージは、データフィールドと、データフィールドに対応するデータ記述フィールドとを含むように定義される。例えば、メッセージは、データフィールド内に30というデータを含み、データ記述フィールド内に「温度センサ1」の記述を含みうる。例えば、メッセージは、データフィールド内に50%というデータを含み、データ記述フィールド内に「湿度センサ1」の記述を含みうる。ここで、上述のサブスクリプションは、信号を対応するコンテキスト関連情報に対応付ける対応関係を格納するために用いられる。換言すると、コンテキスト関連情報は、サブスクリプション関係を用いて信号に基づいて決定され、その結果として、対応するコンテキストアウェアアプリが決定される。各コンテキストアウェアアプリは、少なくとも1つのアプリユニット(ページ)と、コンテキストを検知し、それに従ってサービスを提供するよう構成されたベースコンポーネントと、を備える。
工程406で、対象コンテキストアウェアアプリを用いて、コンテキスト関連情報に対応する動作が実行される。
システムの実行中、受信された様々なタイプのシステム信号が、上述のサブスクリプション関係を用いて、それぞれのコンテキスト関連情報に対応付けられる。次いで、コンテキスト関連情報に対応するコンテキストアウェアアプリが、対象コンテキストアウェアアプリとして決定され、このアプリは、次に実行される。対象コンテキストアウェアアプリは、コンテキスト関連情報に従ってコンテキストベースサービスを提供するために用いられる。例えば、かかる対象コンテキストアウェアアプリの動作は、エアコンシステムをオンにする、照明をオフにする、音楽を再生する、などを行うよう構成されうる。したがって、自動コンテキスト検出および自動コンテキストアウェアアプリ実行は、IoT技術に適用可能であり、これは、コンテキストに応答する動作の自動実行を達成するためのIoTネットワークにおけるオブジェクトの間の相互通信につながり、結果として、コンテキストへのタイムリーかつ敏感な応答およびユーザ体験の向上を生み出す。
この例において、コンテキストアウェアアプリは、1または複数のアプリユニットを備える。特に、コンテキストアプリは、特定のコンテキストをサービスするために1または複数のページを組み合わせるよう構成されうる。コンテキスト関連情報に対応するページは、コンテキスト関連情報に基づいて決定され、一方、対応するサービスは、上述のページリンクおよびDPMSを用いてページを実行することによって提供される。
本開示の様々な実施形態に従って、IoTネットワークに適用された場合、IoTネットワークのシステムデバイスは、自身または他のシステムデバイスのいずれかを制御する。対応するコンテキストを決定することによってそれに対処するために、IoTネットワーク内の様々なシステム信号が受信され、相関される。家庭用ネットワーウを例に取ると、照明システム、セキュリティシステム、スマート家電(例えば、スマートキッチン家電)、などからのシステム信号は、ネットワークの指定サーバを通して分散されうる。ユーザのスマートフォンが上述の家庭用ネットワークを監視するよう構成されている場合、家庭用ネットワークのすべてのシステム信号が、スマートフォンに送信される。スマートフォンは、システム信号に対応するコンテキスト関連情報を決定し、その後、コンテキスト関連情報を分散および処理するよう構成される。本開示の実施形態は、様々なデバイスから提供される信号およびサービスの統合を達成するために、システム信号および対応するコンテキスト関連情報に基づいて様々なコンテキストを開発する際に適用可能である。デバイス自体を制御するかまたは他のデバイスを制御することにより、統合された開発、制御、管理、および、メンテナンスのためのシステムが、自動コンテキストアウェアアプリケーションに提供される。
図5は、本開示の一実施形態における、コンテキストアウェアアプリケーションを実行するための処理の別の例を示すフローチャートである。処理500は、例えば、図1のシステム100によって実施されうる。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。
処理500は、システム信号がデバイスで受信される工程502で始まる。
工程504で、受信されたシステム信号に対応する少なくとも1つのコンテキスト関連情報が、サブスクリプション関係に基づいて決定される。
システム信号は、任意の適切なマッピングロジックまたはデータ構造を用いて、コンテキスト関連情報に相関するよう予め構成される。この例において、システム信号は、上述のサブスクリプションを介して予め構成されたコンテキスト関連情報に対応するよう構成される。換言すると、各コンテキストによってサブスクライブされたシステム信号は、コンテキストに対応するコンテキスト関連情報がサブスクリプション関係を参照して決定されるように、サブスクリプション関係の形態で格納される。デバイスがシステム信号を受信すると、そのデバイスは、特定のシステム信号にサブスクライブする少なくとも1つのコンテキスト関連情報を決定するために、サブスクリプション関係を検索する。例えば、温度センサまたは温度アプリから温度を示す信号を受信すると、デバイスは、I/Oインターフェース情報(温度センサインターフェース)またはソースプロバイダ情報(アプリの記述)に基づいて、信号が温度関連データであると判定する。システム信号は、少なくとも1つのアプリケーションコンテキスト(システム信号をサブスクライブする)のためのコンテキスト関連情報を決定するために、サブスクリプション関係をルックアップするために用いられる。ここでも、デバイスは、照明システムデバイスもしくは任意のその他のデバイスまたはスマートデバイスなど、IoTネットワークの任意の種類のオブジェクトまたはデバイスでありうる。
この例において、各アプリケーションコンテキストは、1または複数のシステム信号をサブスクライブすると共に、アプリケーションのためのコンテキスト条件を構成することができるよう構成される。例えば、コンテキスト条件は、他のシステム信号の閾値を設定できる。したがって、これらのコンテキスト条件は、それぞれのアプリケーションコンテキストに対応しており、コンテキスト関連情報内に格納されてよく、コンテキスト関連情報は、システム信号をトリガするためのスクリーニングに用いられる。すなわち、システム信号をサブスクライブする1または複数のコンテキスト関連情報を決定した後、このコンテキスト関連情報によってサブスクライブされた他の信号が受信されたか否か、および、このコンテキスト関連情報内に含まれるコンテキスト条件がトリガされたか否かが、さらに判定される。
例えば、温度信号に対応する温度が30°を超え、エアコンシステムを用いて冷却を開始するコンテキスト条件を満たすことを示す温度信号を、スマートフォンが受信した時、スマートフォンは、エアコンシステムを冷却モードでオンにすると共に、或る期間にわたって温度を維持するなど、その他の対応する動作を実行する。別の例において、車両が走り始めたことを示す信号を、ナビゲーション機能を備えたスマートフォンが受信すると、スマートフォンは、車載システムをアクティブ化し、スマートフォンによって以前にナビゲートされたルートを参照してナビゲーションを開始する。さらに別の例において、ヘッドホンが接続されたことを示すシステム信号を、スマートフォンが受信すると、スマートフォンは、楽曲、オーディオブック、音声データなどを再生するためにメディアアプリを起動する。
また、本開示の実施形態は、受信された1または複数のシステム信号を統合して、1または複数のシステム信号に対応するコンテキスト関連情報を決定することにも適用されてよい。例えば、ユーザの家庭用ネットワークの場合に、温度が予め構成された温度よりも高いことを示す第1信号およびテレビがオンであることを示す第2信号を受信した後、テレビセットが配置されたリビングルームでユーザがテレビを観ているとのコンテキストが決定される。その結果として、エアコンがリビングルームでオンにされる。別の例において、キッチンオーブンがオンであることを示す第1システム信号およびキッチンのガスコンロおよびレンジフードが動作中であることを示す第2システム信号を受信した後、ユーザがキッチンで料理中であるとのコンテキストが決定される。その結果として、キッチンのスマート冷蔵庫が、音楽を再生するよう動作される。1または複数のシステム信号を用いて、システム信号をサブスクライブするコンテキスト情報を決定し、決定されたコンテキスト情報を用いて、コンテキストに対処するためにアプリ内に構成された動作を自動的に実行するようコンテキストアウェアアプリを配備することで、自動コンテキストアウェアサービスが、ユーザに提供されうる。
工程506で、コンテキスト関連情報に対応するアプリユニットが、デバイスに関連するデバイス情報に基づいて決定される。
デバイス情報が、コンテキスト関連情報に対応する対象コンテキストアウェアアプリを決定するために用いられる。次いで、対象コンテキストアウェアアプリは、実行に向けてシステムにロードされる。同じコンテキスト関連情報に対応しても、異なるコンテキストアウェアアプリは、異なるデバイスで実行される。例えば、温度が30°を超え、温度を下げる必要性を示すコンテキスト情報について、空調を制御するのは、常に、起動されるコンテキストアウェアサービスである。しかしながら、どの特定のデバイスが検出された高温のコンテキストにあるのかに応じて、異なる冷却アプリが、異なるモードおよび冷却機能を備えた異なるエアコンシステムを制御するのに必要とされる。特に、家庭用ネットワークについては、目標冷却温度まで温度を下げるために起動されるのは、家庭用エアコンである。ユーザによって現在運転されている自動車については、おそらく、家庭用ネットワークでの目標冷却温度とは異なって予め構成された目標冷却温度まで、温度を下げるために起動されるのは、車載エアコンである。そして、オフィス環境については、オフィスの温度を冷却するために調節されるのは、オフィスのセントラルエアコンである。
工程508で、アプリユニットに対応するコンテキストアウェアアプリが、対象コンテキストアプリとして決定される。
コンテキスト情報が決定された後、システム信号に対応するコンテキスト情報を検出するためのデバイス、および、コンテキスト関連情報に対応する動作を実行するためのデバイスが決定される。デバイス情報を考慮して、デバイス情報に対応する1または複数のアプリユニットが、コンテキスト情報に対処するために決定される。したがって、コンテキスト情報を考慮して、デバイスは、1または複数のページを実行するよう構成され、1または複数のページの実行の協調が、対象コンテキストアウェアサービスを達成する。特に、ページの協調は、ページリンクを用いてページのインスタンスを実行するようDPMSを実行することで実施されうる。
工程510で、アプリユニットがデバイス上でローカルに利用可能か否かが判定される。
対象コンテキストアウェアアプリが、ページに対応する動作を実行する前に、デバイスがページのローカルコピーを有するか否かが判定される。有する場合、処理500は工程514に進み、そうでない場合、処理500は工程512に進む。
工程512で、アプリユニットが、サーバなどのアプリソースから取得される。
ページがローカルに利用可能ではないと判定された場合、デバイスは、アプリソース(例えば、サーバ)に要求を送信し、そこからページを取得する。このページ要求は、アプリユニットのユニットID(ページID)と、その他の関連パラメータと、を含む。サーバは、ユニットIDを用いてアプリユニットをルックアップすると、デバイスにアプリユニットを送り返す。
工程514で、アプリユニットはデバイス上にロードされる。
工程516で、対象コンテキストアウェアアプリを用いて、コンテキスト関連情報に対応する動作が実行される。
この例において、デバイス上へのページのローディングは、上述のページリンクなどのプロトコルを用いて、アプリユニットに対応する対象コンテキストアウェアアプリを実行するためにページのインスタンスを実行するようDPMSを呼び出すことで実施される。対象コンテキストアウェアアプリの実行は、コンテキスト情報に対応する動作を実行する。
工程518で、対象コンテキストアプリのアプリインターフェースが表示され、このインターフェースは、ユーザから動作情報を受信するよう構成されている。
いくつかの実施形態において、対象コンテキストアウェアアプリの実行中、コンテキストアウェアアプリのヒューマンマシンインターフェース(例えば、対象コンテキストアウェアアプリのために構成されたアプリインターフェース)が、さらに表示される。ユーザインターフェースを用いて、アプリによって対処されるコンテキストに対応する動作が、ユーザに通信され、加えて、ユーザが対象コンテキストアウェアアプリと相互作用することが可能になる。
したがって、表示インターフェースは、アプリインターフェースを介してユーザによって実行される動作に対応する動作入力情報をユーザから受信するため、ならびに、動作情報に関するフィードバック情報または出力情報を提供するために利用されうる。
例えば、エアコンシステムが27°まで温度を下げたことを、インターフェース表示が示した時に、ユーザは、インターフェースを用いて、このコンテキスト下で、エアコンをオフにするかまたはエアコンシステムに他の温度を設定するかを選択することができる。別の例において、家に誰もおらず、照明がオフになっていることを、セキュリティシステムが示す時に、ユーザは、インターフェースを用いて、玄関灯をオンにすることができる。
工程520で、対象コンテキストアウェアアプリに関連する他のコンテキストアウェアアプリが決定される。動作命令が、他のコンテキストアウェアアプリに関連する他のデバイス上で他のコンテキストアウェアアプリを実行するために、これらの他のデバイスに送信される。
いくつかの実施形態において、コンテキストアウェアアプリによって対処される特定のコンテキストは、コンテキストに応答する動作の実行を制御するために、複数のデバイスの間での協調を必要とする。例えば、温度信号がスマートフォンで受信され、コンテキストが決定された場合、対応する動作は、エアコンシステムをオンまたはオフにする、中庭のドアを閉める、リビングルームのブラインドを下げるなどの動作でありうる。別の例において、セキュリティシステムがシステムコマンドを受信した場合、動作は、同じ照明システム内で、特定の照明(勉強部屋の照明)をオンにして、特定の照明(玄関灯)をオフにする動作でありうる。したがって、対象コンテキストアウェアアプリを決定した後、コンテキスト情報を考慮して、対象コンテキストアウェアアプリに関連する他のコンテキストアウェアアプリと、それら他のコンテキストアウェアアプリに関連する他のデバイスとを、さらに決定する必要がある。動作命令が、これら他のデバイスに送信され、これら他のデバイスでシステム信号として受信される。他のデバイスは、受信した命令を用いて、コンテキスト関連情報を検出し、コンテキスト関連情報に対応する他の動作を実行するために他のコンテキストアウェアアプリを呼び出す。ここでも、コンテキストアウェアアプリ間の相互作用を実施するため、例えば、別のコンテキストアウェアアプリの呼び出しを実行するため、または、他のアプリに接続するために、ページリンクが利用されうる。
図6は、本開示の一実施形態における、2つのデバイスにわたって実装されたコンテキストアウェアアプリケーションの例を示す。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。
工程602:第1デバイスが第1信号を受信する。
工程604で、第1デバイスは、サブスクリプション関係に従って、第1コンテキスト関連情報をルックアップする。
工程606で、第1デバイスは、第1コンテキスト関連情報に対応する第1コンテキストアウェアアプリを実行する。
工程608で、第1コンテキストアウェアアプリは、第2デバイスへ動作命令を送信する。
工程610で、第2デバイスは、動作命令に対応する第2信号に基づいてサブスクリプション関係をルックアップし、第2信号に対応する第2コンテキスト関連情報を決定する。
工程612で、第2デバイスは、第2コンテキスト関連情報に対応する第2コンテキストアウェアアプリを実行する。
工程614で、第2コンテキストアウェアアプリは、それに応じて第2動作を実行する。
いくつかの実施形態では、工程414で、ユーザが、第2デバイスによる動作と相互作用できるように、第2ユーザインターフェースが第1デバイスのディスプレイに統合される。
図7は、本開示の一実施形態における、複数のデバイス上で実行されるコンテキストアウェアアプリのための処理の例を示すフローチャートである。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。
処理700は、第1デバイスが、取得した第1信号に従って第1コンテキスト関連情報を決定する工程702で始まる。
工程704で、第1デバイスは、第1コンテキスト関連情報に対応する第1コンテキストアウェアアプリの実行を通して、第2デバイスへ動作命令を送信する。
ここで用いられているように、第1デバイスによって受信されるシステム信号は、第1信号と呼ばれ、第2デバイスによって受信されるシステム信号は、第2信号と呼ばれる。実行時、第1デバイスは、第1信号を受信し、第1信号は、要求、命令、または、サーバから受信された何らかの他のシステム信号であってよく、あるいは、その信号は、デバイスのセンサによって検出されたデータなどのシステム信号、もしくは、そのデバイスまたはリモートネットワークのデバイスまたは他のユーザのデバイスなどの上で実行するアプリからのシステム信号であってもよい。1または複数の信号が受信されると、1または複数の信号は、対応する第1コンテキスト関連情報を決定するために用いられる。換言すると、1または複数の信号の各々をサブスクライブする対応するコンテキスト関連情報が、サブスクリプション関係からルックアップされ、第1コンテキスト関連情報として決定される。次に、第1コンテキスト関連情報に対応する第1コンテキストアウェアアプリが取得され、次に、対応する第1動作を実行するために実行される。第1コンテキストアウェアアプリが、他のコンテキストアウェアアプリで提供されるサービスを必要とすると判定された場合、アプリ間またはサービス間の通信プロトコル(例えば、上述のページリンク)が、第2デバイス上で第2コンテキストアウェアアプリを呼び出すため、および、第2デバイスに動作命令を送信するために用いられる。
工程706で、第2デバイスは、第1デバイスから受信した動作命令に対応する第2信号を受信し、それにより、第2信号に従って第2コンテキスト関連情報を決定する。
工程708で、第2デバイスは、対応する第2動作を実行するために、第2コンテキスト関連情報に対応する第2コンテキストアウェアアプリを実行する。
第2デバイスは、第1デバイスによって送信された動作命令に対応する第2信号を受信する。第2信号は、第2コンテキスト情報を決定するために用いられる。一例において、第2デバイスは、サブスクリプション関係を用いて、第2信号をサブスクライブするコンテキスト情報をルックアップする。さらに、コンテキスト情報およびサブスクライブされた他の信号の各々のコンテキスト条件が決定される。コンテキスト情報がサブスクライブするすべてのシステム信号が受信され、予め構成されたコンテキスト条件すべてが満たされると、コンテキスト情報は、第2コンテキスト情報として決定される。ここでも、第2コンテキスト関連情報に対応する第2コンテキストアウェアアプリが決定され、次に、対応する第2動作を実行するために実行される。
コンテキストアウェアアプリケーションのための上述のシステムに基づいて、コンテキストアウェアアプリが、以下の例において複数の協調するデバイス上で実行される。デバイスのコンテキストエージェントフレームワークの信号ストリームが、様々なシステム信号および他のデバイスからの信号を収集して処理する。次いで、サブスクリプションを参照して、様々な信号が、対応するコンテキスト決定およびコンテキストアウェアアプリケーションに対応付けられる。次に、論理ユニット(エージェント)に基づいて、コンテキストの決定およびその論理処理が行われる。その後、サービスタスク(アクチュエータ)が決定され、エージェントのインスタンス(エージェントインスタンス)を実行するために実行され、エージェントインスタンスは、特定のデバイスおよびコンテキストに対応する。エージェントインスタンスを用いて、上位のシステム層のコンテキストアウェアアプリ(コンテキストエージェント)が、アプリ間相互作用プロトコル(ページリンク)に基づいて呼び出される。コンテキストエージェントは、コンテキスト情報を検出してコンテキストアウェアサービスを提供するよう構成されたアプリユニット(ページ)を備える。ページが、コンテキスト情報に対応する動作を実行するために実行される。ユーザ相互作用が必要である場合、インターフェースが、表示モジュール(ページカバー)を用いて構成される。したがって、ページカバーは、コンテキストアウェアアプリにヒューマンマシンインターフェースを提供する。さらに、ページリンクは、複数のデバイスおよび複数のアプリの協調によって提供されるコンテキストアウェアサービスを達成するなどのために、他のアプリとの通信に利用されうる。コンテキスト決定およびサービス提供の過程で、コンテキストエンジン(コンテキストエージェントエンジン)が、上位のシステム層のコンテキストアプリを制御すると共にコンテキストアプリのライフサイクルを維持するよう、コンテキストエージェントホストを管理するために用いられる。様々な信号管理が、或る状態から別の状態へのコンテキストアプリの遷移を維持するために利用されうる。
コンテキストアウェアサービスの2つの例を以下に示す。両方の例において、コンテキストアウェアアプリまたはコンテキストアウェアサービスが、クラウドアプリの形態で開発者によって開発され、そのインストールパッケージは、アプリセンタまたはアプリストア(ページセンタとも言う)のプラットフォームにアップロードされうる。特に、クラウドアプリパッケージは、エージェントコード(アプリコード)およびマニフェスト(リスト)を含む。
第1の例では、ロボットからの信号処理に関する第1クラウドアプリ1パッケージが、ページセンタにアップロードされる。次いで、ロボットに対応する信号が検出され、その後、ロボットに対応するアプリがページセンタでルックアップされる。その後、ページセンタは、コンテキスト解析エンジンをデバイスに転送する。コンテキスト解析エンジンは、sindLinkを用いて、DPMS/SPMS(スタティックページマネージャサービス)を決定し、DPMS/SPMSは、対応するアプリをルックアップするために用いられる。対応するアプリがローカルデバイスで利用可能ではない場合、ダウンロードの要求がページセンタに送信される。そうでない場合、sindLinkが、ロボットのアプリを呼び出すために用いられる。アプリのために構成されたインターフェースがある場合、アプリインターフェースも表示される。アプリインターフェースとの相互作用の間、要求されたアプリユニットは、コンテキストアウェアアプリの実行に向けて、ページセンタからダウンロードされるか、または、対応するローカルコピーから呼び出されうる。
第2の例では、株式情報に関する第2クラウドアプリ2パッケージが、ページセンタにアップロードされ、その後、株式情報をルックアップするための信号が発行される。次に、株式情報に関連するアプリがページセンタで特定され、ページセンタは、次に、デバイスのコンテキスト解析エンジンにアプリを転送する。次に、コンテキスト解析エンジンは、sindLinkを用いて、DPMS/SPMS(スタティックページマネージャサービス)を決定し、DPMS/SPMSは、対応するコンテキストアウェアアプリをルックアップするために用いられる。コンテキストアウェアアプリがローカルデバイスで利用可能ではない場合、ダウンロードの要求がページセンタに送信される。そうでない場合、sindLinkが、株式アプリを呼び出すために用いられる。株式アプリのために構成されたインターフェースがある場合、アプリインターフェースは、それに従って表示される。アプリインターフェースとの相互作用の間、要求されたアプリユニットは、コンテキストアウェアアプリの実行に向けて、ページセンタからダウンロードされるか、または、アプリユニットの対応するローカルコピーから呼び出されうる。
アプリコンテキストに必要な1または複数のページが決定された後、DPMSは、ページを実行するために用いられる。DPMSは、SPMSからページを取得し、SPMSは、ページパッケージのローカルコピーが利用可能である場合にはローカルディスクからページを取得し、そうでない場合にはページセンタから取得する。ページが利用可能になった場合、DPMSは、ページ実行プロセス(ページプロセス)を実行し、ユーザにサービスを提供するために、任意の対応するユーザインターフェースを表示する。
本開示の一実施形態では、ページの形態のサービスコンポーネントが、様々なサービスをユーザに提供するよう構成される。したがって、端末デバイスで、コンテキストアプリは、対応するサービスをユーザに提供するために複数のページの組みあわせで構成されうる。第1ページから第2ページへの遷移が、DPMS時間の次元に基づいて実行されてよく、その後、対応するページがそれに従って実行される。
図8は、本開示の一実施形態における、2つのコンテキスト下でのコンテキストアウェアアプリのページ遷移の例を示す概略図である。コンテキストアウェアアプリが図示されているが、本開示の実施形態は、対応するコンテキストアウェアサービスをユーザに提供するために、任意のアプリの実行に適用できることに注意されたい。第1コンテキスト(アプリコンテキスト1)において、ユーザは、ページ2に向けたページリンクを生成してそのページリンクをDPMSを介してページ2に送信するようページ1をトリガするために、ビジネスアプリのユーザインターフェースと相互作用する。ページ1によって送信されたページリンクを受信した後、ページ2は、ページ3に向けたページリンクを処理および生成し、DPMSを介してページ3にそのページリンクを送信する。このページリンクの受信および処理の後、ページ3は、ページ4に向けたページリンクを生成してDPMSを介してページ4にページリンクを送信するだけではなく、DPMSを介してページ8に送信されるページ8に向けたページリンクも生成する。ページリンクを受信した後、ページ4は、それを処理して、ページ3に処理結果を送り返す。
別のコンテキスト(アプリコンテキスト2)において、ユーザは、ページ2に向けたページリンクを生成してそのページリンクをDPMSを介してページ2に送信するようページ5をトリガするために、ビジネスアプリのために構成されたUIと相互作用する。ページ5によって送信されたページリンクを受信した後、ページ2は、ページ6に向けたページリンクを処理および生成し、DPMSを介してページ6にそのページリンクを送信する。ページリンクを受信した後、ページ6は、それを処理して、ページ7に向けたページリンクを生成し、DPMSを介してページ7にそれを送信する。ページ7は、ページリンクを受信した後、それを処理し、ページ10に向けたページリンクを生成して、DPMSを介してページ10へそれを送信する。ページ10は、ページリンクを受信した後、それを処理して、ページ7に処理結果を送り返す。
例えば、ユーザ旅行ガイドページから生成されたシステム信号に基づいて、ユーザが旅行を計画中であるとのコンテキストが決定される。この時点で、このコンテキストは、航空機チケットアプリ、ホテルアプリ、支払いアプリ、天気予報アプリ、などのサービスの提供に関連する他のタイプのページを提供するために用いられる。旅行ガイドページから天気予報ページに移行して旅行ガイドページに戻り、航空機チケットページ、ホテルページ、そして、支払いページに移行することにより、ユーザは、もはや、旅行ガイドアプリからこれらの関連する他のアプリに手動で切り替える必要はない。ページからページへ移行することができ、ページ間の連鎖関係性がコンテキストに対応することで、様々な種類のサービスが、特定のコンテキスト下でユーザに提供される。本開示の実施形態で、上述のアプリ開発システムモデルは、開発者が、コンテキストアウェアサービスまたはアプリを開発し、幅広いサービスおよびその便利な動作をユーザに提供できるように様々なデバイスおよびサービスを相関させることを可能にする。
図9は、本開示の一実施形態における、コンテキストアウェアアプリケーションのためにプログラムされたコンピュータシステムの一実施形態を示す機能図である。コンピュータシステム900は、必要に応じて、図1のシステム100および図4〜図7の処理を実施するために利用できる。 明らかに、コンテキストアウェアアプリケーションのためのシステムおよび方法を実施するために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。コンピュータシステム900は、プロセッサ91およびメモリ92を備える。プロセッサ91は、上述の処理を実施するために、メモリ92に格納されたコンピュータコードを実行する。
メモリ92は、端末デバイス動作を支援してデータを格納するよう構成される。データの例は、端末デバイス上の動作に用いられる任意のアプリまたはメソッド命令(メッセージ、画像、および、ビデオなど)を含む。メモリ92は、ランダムアクセスメモリ(RAM)または不揮発性メモリ(磁気ディスク記憶デバイスなど)であってよい。
任意選択的に、プロセッサ91は、処理コンポーネント90内に構成される。コンピュータシステム900は、さらに、通信コンポーネント93、電源コンポーネント94、マルチメディアコンポーネント95、オーディオコンポーネント96、入力/出力インターフェース97、および/または、センサコンポーネント98を備えてよい。
処理コンポーネント90は、コンピュータシステム900の全体の動作を制御する。処理コンポーネント90は、命令を実行するための1または複数のプロセッサ91を備えうる。さらに、処理コンポーネント90は、処理コンポーネント90と他のコンポーネントとの間の相互作用を容易にするための1または複数のモジュールを備えてよい。例えば、処理コンポーネント90は、マルチメディアコンポーネント95と処理コンポーネント90との間の相互作用を容易にするためのマルチメディアモジュールを備えてよい。
電源コンポーネント94は、コンピュータシステム900の様々なコンポーネントに電力を供給する。電源94は、電源管理システムと、1または複数の電源と、コンピュータシステム900への電力の生成、管理、および、分配に関するその他のコンポーネントと、を備えうる。
マルチメディアコンポーネント95は、コンピュータシステム900とユーザとの間に提供された出力インターフェース表示スクリーンを備える。いくつかの実施形態において、表示スクリーンは、液晶ディスプレイ(LCD)またはタッチパネル(TP)を備えてよい。表示スクリーンがタッチパネルを備える場合、表示スクリーンは、ユーザから入力信号を受信するためのタッチスクリーンとして実装されてよい。タッチパネルは、タッチパネル上のタッチ、スライド動作、および、ジェスチャを検出するための1または複数のタッチセンサを備える。タッチセンサは、タッチまたはスライド動作の境界を検出するだけではなく、タッチまたはスライド動作に関する持続時間および圧力を測定することもできる。
オーディオコンポーネント96は、音声信号を出力および/または入力するよう構成される。例えば、オーディオコンポーネント96は、マイク(MIC)を備える。コンピュータシステム900が動作モード(例えば、音声認識モード)にある時、マイクは、外部音声信号を受信するよう構成される。受信された音声信号は、さらに、ストレージデバイス92に格納されるかまたは通信コンポーネント93によって送信されうる。いくつかの実施形態において、オーディオコンポーネント96は、さらに、音声信号の出力のためにスピーカを備える。
入力/出力インターフェース97は、処理コンポーネント90と周辺インターフェースモジュールとの間のインターフェースを提供する。周辺インターフェースモジュールは、キーボード、クリックホイール、ボタンなどであってよい。これらのボタンは、ボリュームボタン、スタートボタン、および、ロックボタンを含むが、これらに限定されない。
センサコンポーネント98は、1または複数のセンサを備え、コンピュータシステム900の様々な態様の状態評価を提供するために用いられる。例えば、センサコンポーネント98は、端末デバイスのオン/オフ状態、コンポーネントの相対位置、および、ユーザとコンピュータデバイス900との間の接触の有無を検出してよい。センサコンポーネント98は、近接センサを備えてよく、近接センサは、ユーザと端末デバイスとの間の距離の測定を含め、物理的接触がない時に近接する物体の存在を検出するよう構成される。いくつかの実施形態において、センサコンポーネント98は、さらに、カメラを備えてもよい。
通信コンポーネント93は、コンピュータシステム900と他のデバイスとの間の有線または無線通信を容易にするよう構成される。コンピュータシステム900は、Wi−Fi、2G、3G、または、それらの組みあわせなどの通信規格に基づいて無線ネットワークにアクセスできる。コンピュータシステム900は、SIMカードを挿入するためのSIMカードスロットを備えてよく、SIMカードは、端末デバイスがGPRSネットワークに登録し、インターネットとサーバとの間の通信を確立することを可能にする。
説明および実際面で本明細書に開示した発明を考慮すると、当業者であれば、本願の実施のための他のスキームを容易に考えつく。本願は、本願の一般原理に従う本願のあらゆる変形例、用途、または、適応例を網羅し、本願によって開示されていない技術分野における公知または慣習的技術手段を含むことを意図する。説明および実施形態は、単に例示と見なされる。本願の真の射程範囲および思想は、以下の特許請求の範囲で示される。
用語「備える」または「含む」またはそれらの活用形は、非排他的な意味に取られることにも注意されたい。したがって、一連の要素を備える処理、方法、製品、または、装置は、それらの要素を備えるだけでなく、明示的に挙げられていない他の要素、もしくは、かかる処理、方法、製品、または、装置に内在する要素をも備える。さらなる限定がなければ、「(単数の名詞)を備える」という表現によって限定される要素は、さらなる同一の要素が、かかる要素を備える処理、方法、製品、または、デバイスに存在することを排除しない。
以上は、本願の好ましい実施形態にすぎず、本願を限定することはない。実施される任意の変形、等価的な置換、または、改良が、本願の保護範囲内に含まれる。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。本発明は、例えば、以下の形態によって実現されてもよい。
[形態1]
方法であって、
取得されたシステム信号に基づいてコンテキスト関連情報を決定する工程と、
複数のアプリケーションの中で、前記コンテキスト関連情報に対応する対象アプリケーションを選択する工程と、
前記コンテキスト関連情報に対応する前記対象アプリケーションを実行する工程と、
を備え、
前記対象アプリケーションは、少なくとも1つのアプリケーションユニットを備え、
前記コンテキスト関連情報に対応する前記対象アプリケーションを実行する工程は、前記対象アプリケーションを用いて、対応する動作を実行する工程を含む、方法。
[形態2]
形態1に記載の方法であって、前記コンテキスト関連情報を決定する工程は、
デバイスのインターフェースから前記システム信号を受信する工程と、
前記システム信号を前記コンテキスト関連情報に対応付けるサブスクリプション情報に少なくとも部分的に基づいて、前記システム信号に対応する少なくとも1つのコンテキスト関連情報を決定する工程と、
を含む、方法。
[形態3]
形態2に記載の方法であって、前記少なくとも1つのコンテキスト関連情報を決定する工程は、
前記システム信号を用いて前記サブスクリプション情報内を検索して、前記少なくとも1つのコンテキスト関連情報を決定する工程を含み、
前記コンテキスト関連情報は、前記システム信号をサブスクリプトする、方法。
[形態4]
形態2に記載の方法であって、さらに、
前記コンテキスト関連情報のコンテキスト条件に従って、前記コンテキスト関連情報から、1または複数のトリガされるコンテキスト関連情報を選択する工程を備え、
前記1または複数のトリガされるコンテキスト関連情報は、前記コンテキスト条件を満たす、方法。
[形態5]
形態1に記載の方法であって、前記対象アプリケーションを実行する工程は、
デバイスを用いて、前記コンテキスト関連情報に対応する前記対象アプリケーションを決定する工程と、
実行に向けて前記対象アプリケーションをロードする工程と、
を含む、方法。
[形態6]
形態5に記載の方法であって、前記デバイスを用いて、前記対象アプリケーションを決定する工程は、
前記デバイスのデバイス情報を用いて、前記コンテキスト関連情報に対応する前記少なくとも1つのアプリケーションユニットを決定する工程と、
前記少なくとも1つのアプリケーションユニットに対応するアプリケーションを前記対象アプリケーションとして決定する工程と、
を含む、方法。
[形態7]
形態1に記載の方法であって、さらに、
前記少なくとも1つのアプリケーションユニットがローカルで利用できない場合に、前記少なくとも1つのアプリケーションユニットをサーバから取得する工程を備える、方法。
[形態8]
形態1に記載の方法であって、前記対象アプリケーションの状態は、created状態、running状態、frozen状態、および、stopped状態を含む、方法。
[形態9]
形態1に記載の方法であって、前記コンテキスト関連情報に対応する前記対象アプリケーションを実行する工程は、
前記コンテキスト関連情報に対応する前記対象アプリケーションを実行する工程と、
前記対象アプリケーションの状態を制御する工程と、
を含む、方法。
[形態10]
形態1に記載の方法であって、さらに、
前記対象アプリケーションのためのアプリケーションインターフェースを表示する工程を備え、
ユーザコマンド情報が、前記アプリケーションインターフェースを介して受信される、方法。
[形態11]
形態1に記載の方法であって、さらに、
前記対象アプリケーションに相関する少なくとも1つの他のアプリケーションを決定する工程と、
前記少なくとも1つの他のアプリケーションが前記デバイス上で実行されうるように、前記少なくとも1つの他のアプリケーションに関連するデバイスに命令を送信する工程と、
を備える、方法。
[形態12]
アプリケーションを動作させるための方法であって、
第1デバイスによって、取得された第1信号に従って第1コンテキスト関連情報を決定する工程と、
前記第1デバイスによって、前記第1コンテキスト関連情報に対応する第1アプリケーションを実行する工程と、
前記第1デバイスによって、命令を第2デバイスへ送信する工程と、
を備え、
前記命令は、第2コンテキスト関連情報に対応する第2アプリケーションを実行して、対応する第2動作を行うために、前記第2デバイスによって用いられる、方法。
[形態13]
形態12に記載の方法であって、システム信号が、前記第1デバイスで受信される前記第1信号および/または第2信号を含み、コンテキスト関連情報が、前記第1コンテキスト関連情報および/または前記第2コンテキスト関連情報を含む、方法。
[形態14]
形態13に記載の方法であって、さらに、
前記システム信号を受信する工程と、
サブスクリプション関係に少なくとも部分的に基づいて、前記システム信号に対応する少なくとも1つのコンテキスト関連情報を決定する工程と、
を備える、方法。
[形態15]
形態13に記載の方法であって、
前記第1コンテキスト関連情報に対応する前記第1アプリケーションを実行する工程は、
前記第1コンテキスト関連情報に対応する前記第1アプリケーションを決定する工程と、
実行に向けて前記第1アプリケーションをロードする工程と、
を含み、
前記第2コンテキスト関連情報に対応する前記第2アプリケーションを実行する工程は、
前記第2コンテキスト関連情報に対応する前記第2アプリケーションを決定する工程と、
実行に向けて前記第2アプリケーションをロードする工程と、
を含む、方法。
[形態16]
形態12に記載の方法であって、前記第1アプリケーションは、created状態、running状態、frozen状態、および、stopped状態という状態を含み、
前記第1コンテキスト関連情報に対応する前記第1アプリケーションを実行する工程は、
前記第1コンテキスト関連情報に対応する第1対象アプリケーションを実行する工程と、
前記第1対象アプリケーションの状態を制御する工程と、
を含む、方法。
[形態17]
形態12に記載の方法であって、前記第2アプリケーションは、created状態、running状態、frozen状態、および、stopped状態という状態を含み、
前記第2コンテキスト関連情報に対応する前記第2アプリケーションを実行する工程は、
前記第2コンテキスト関連情報に対応する第2対象アプリケーションを実行する工程と、
前記第2対象アプリケーションの状態を制御する工程と、
を含む、方法。
[形態18]
形態12に記載の方法であって、さらに、
前記第1アプリケーションおよび/または前記第2アプリケーションのためのアプリケーションインターフェースを表示する工程と、
前記アプリケーションインターフェースを通して、ユーザ動作情報を受信する工程と、
を備え、
前記アプリケーションインターフェースは、第1アプリケーションインターフェースおよび/または第2アプリケーションインターフェースを含む、方法。
[形態19]
コンテキストベースのアプリケーションのためのデバイスであって、
1または複数のプロセッサであって、
取得されたシステム信号に基づいてコンテキスト関連情報を決定する工程と、
前記コンテキスト関連情報に対応する対象アプリケーションを実行する工程であって、前記対象アプリケーションは、少なくとも1つのアプリケーションユニットを備える、工程と、
前記対象アプリケーションを用いて、対応する動作を実行する工程と、を実行するよう構成された、1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成された1または複数のメモリと、
を備える、デバイス。
[形態20]
第1デバイスおよび第2デバイスを備えたアプリケーションシステムであって、
前記第1デバイスは、
取得された第1信号に従って第1コンテキスト関連情報を決定する工程と、
前記第1コンテキスト関連情報に対応する第1アプリケーションを実行する工程と、
命令を第2デバイスに送信する工程と、を実行するよう構成され、
前記第2デバイスは、
前記命令に対応する第2信号を受信する工程であって、第2コンテキスト関連情報が、前記第2信号に従って取得される、工程と、
前記第2コンテキスト関連情報に対応する第2アプリケーションを実行して、対応する第2動作を行う工程と、を実行するよう構成される、アプリケーションシステム。
[形態21]
アプリケーションのためのコンピュータプログラム製品であって、有形で持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
取得されたシステム信号に基づいてコンテキスト関連情報を決定するためのコンピュータ命令と、
前記コンテキスト関連情報に対応する対象アプリケーションを実行するためのコンピュータ命令であって、前記対象アプリケーションは、少なくとも1つのアプリケーションユニットを備える、コンピュータ命令と、
前記対象アプリケーションを用いて、対応する動作を実行するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。

Claims (7)

  1. アプリケーションを動作させるためのコンピュータプログラムであって、
    第1デバイスによって、取得された第1信号に従って第1コンテキスト関連情報を決定する機能と、
    前記第1デバイスによって、前記第1コンテキスト関連情報に対応する第1アプリケーションを実行する機能と、
    前記第1デバイスによって、命令を第2デバイスへ送信する機能と、
    をコンピュータに実現させ、
    前記命令は、前記第1アプリケーションの実行を通じて生成され、第2コンテキスト関連情報に対応する第2アプリケーションを実行して、対応する第2動作を行うために、前記第2デバイスによって用いられる、コンピュータプログラム。
  2. 請求項に記載のコンピュータプログラムであって、システム信号が、前記第1デバイスで受信される前記第1信号および/または第2信号を含み、コンテキスト関連情報が、前記第1コンテキスト関連情報および/または前記第2コンテキスト関連情報を含む、コンピュータプログラム。
  3. 請求項に記載のコンピュータプログラムであって、さらに、
    前記システム信号を受信する機能と、
    サブスクリプション関係に少なくとも部分的に基づいて、前記システム信号に対応する少なくとも1つのコンテキスト関連情報を決定する機能と、
    を前記コンピュータの実現させる、コンピュータプログラム
  4. 請求項に記載のコンピュータプログラムであって、
    前記第1コンテキスト関連情報に対応する前記第1アプリケーションを実行する機能は、
    前記第1コンテキスト関連情報に対応する前記第1アプリケーションを決定する機能と、
    実行に向けて前記第1アプリケーションをロードする機能と、
    を含み、
    前記第2コンテキスト関連情報に対応する前記第2アプリケーションを実行する機能は、
    前記第2コンテキスト関連情報に対応する前記第2アプリケーションを決定する機能と、
    実行に向けて前記第2アプリケーションをロードする機能と、
    を含む、コンピュータプログラム。
  5. 請求項に記載のコンピュータプログラムであって、前記第1アプリケーションは、created状態、running状態、frozen状態、および、stopped状態という状態を含み、
    前記第1コンテキスト関連情報に対応する前記第1アプリケーションを実行する機能は、
    前記第1コンテキスト関連情報に対応する第1対象アプリケーションを実行する機能と、
    前記第1対象アプリケーションの状態を制御する機能と、
    を含む、コンピュータプログラム。
  6. 請求項に記載のコンピュータプログラムであって、前記第2アプリケーションは、created状態、running状態、frozen状態、および、stopped状態という状態を含み、
    前記第2コンテキスト関連情報に対応する前記第2アプリケーションを実行する機能は、
    前記第2コンテキスト関連情報に対応する第2対象アプリケーションを実行する機能と、
    前記第2対象アプリケーションの状態を制御する機能と、
    を含む、コンピュータプログラム。
  7. 請求項に記載のコンピュータプログラムであって、さらに、
    前記第1アプリケーションおよび/または前記第2アプリケーションのためのアプリケーションインターフェースを表示する機能と、
    前記アプリケーションインターフェースを通して、ユーザ動作情報を受信する機能と、
    を前記コンピュータに実現させ、
    前記アプリケーションインターフェースは、第1アプリケーションインターフェースおよび/または第2アプリケーションインターフェースを含む、コンピュータプログラム。
JP2019514120A 2016-10-13 2017-10-10 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス Active JP6934937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021092676A JP2021152921A (ja) 2016-10-13 2021-06-02 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201610895318.X 2016-10-13
CN201610895318.XA CN107948393A (zh) 2016-10-13 2016-10-13 基于场景的应用操作方法、装置、终端设备和操作系统
US15/728,328 2017-10-09
US15/728,328 US10642627B2 (en) 2016-10-13 2017-10-09 Systems, methods, and devices for context-aware applications
PCT/US2017/055897 WO2018071394A1 (en) 2016-10-13 2017-10-10 Systems, methods, and devices for context-aware applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021092676A Division JP2021152921A (ja) 2016-10-13 2021-06-02 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス

Publications (2)

Publication Number Publication Date
JP2019537766A JP2019537766A (ja) 2019-12-26
JP6934937B2 true JP6934937B2 (ja) 2021-09-15

Family

ID=61902222

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019514120A Active JP6934937B2 (ja) 2016-10-13 2017-10-10 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス
JP2021092676A Pending JP2021152921A (ja) 2016-10-13 2021-06-02 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021092676A Pending JP2021152921A (ja) 2016-10-13 2021-06-02 コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス

Country Status (6)

Country Link
US (1) US10642627B2 (ja)
EP (1) EP3526973A4 (ja)
JP (2) JP6934937B2 (ja)
CN (1) CN107948393A (ja)
TW (1) TWI738832B (ja)
WO (1) WO2018071394A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377195B (zh) * 2019-07-15 2022-09-30 腾讯科技(深圳)有限公司 展示交互功能的方法和装置
US11016873B1 (en) 2019-11-26 2021-05-25 Salesforce.Com, Inc. Self executing and self disposing signal for imperative programming languages
CN112162787A (zh) * 2020-09-04 2021-01-01 上海擎感智能科技有限公司 开启应用的方法、终端及计算机可读存储介质
CN112905264A (zh) * 2021-03-24 2021-06-04 北京小米移动软件有限公司 应用处理方法、装置以及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187964A1 (en) * 2001-10-31 2003-10-02 The University Court Of The University Of Glasgow Method and system for updating data on an information appliance based on changes in local and remote data sources
US20040225654A1 (en) 2003-05-09 2004-11-11 International Business Machines Corporation Techniques for invoking services based on patterns in context determined using context mining
JP2005182181A (ja) * 2003-12-16 2005-07-07 Ntt Docomo Inc コンテキストフィルタリング装置、コンテキストフィルタリング方法及びコンテキストフィルタリングプログラム
JP4455383B2 (ja) * 2005-03-31 2010-04-21 エヌ・ティ・ティ・コムウェア株式会社 サービス提供システム
US7424488B2 (en) 2006-06-27 2008-09-09 International Business Machines Corporation Context-aware, adaptive approach to information selection for interactive information analysis
KR20090064937A (ko) 2007-12-17 2009-06-22 한국전자통신연구원 상황 인지 시스템 및 그 시스템에서의 상황 인지 방법
US8554718B2 (en) 2008-02-12 2013-10-08 Rockstar Consortium Us Lp Method and system for client context dissemination for web-based applications
KR101019322B1 (ko) 2008-10-22 2011-03-07 성균관대학교산학협력단 상황 인지 역할 기반 접근 제어 시스템 및 그 제어방법
US9286108B2 (en) * 2008-10-30 2016-03-15 Oracle America, Inc. Method to track application context and application identification
CN101782768A (zh) * 2010-02-09 2010-07-21 华南理工大学 一种基于上下文感知的智能家居系统
JP5887721B2 (ja) * 2011-06-10 2016-03-16 富士通株式会社 情報配信装置、情報処理端末、情報配信方法、情報処理方法、情報配信プログラム、および情報処理プログラム
US9507630B2 (en) * 2012-02-09 2016-11-29 Cisco Technology, Inc. Application context transfer for distributed computing resources
US9438818B2 (en) * 2012-06-20 2016-09-06 Qualcomm Incorporated Device and method for multimedia communications with picture orientation information
US9726498B2 (en) * 2012-11-29 2017-08-08 Sensor Platforms, Inc. Combining monitoring sensor measurements and system signals to determine device context
US20140171116A1 (en) * 2012-12-14 2014-06-19 Anthony G. LaMarca Location-aware mobile application management
US9317972B2 (en) * 2012-12-18 2016-04-19 Qualcomm Incorporated User interface for augmented reality enabled devices
US9501666B2 (en) * 2013-04-29 2016-11-22 Sri International Polymorphic computing architectures
US9275221B2 (en) 2013-05-01 2016-03-01 Globalfoundries Inc. Context-aware permission control of hybrid mobile applications
CN104184961A (zh) * 2013-05-22 2014-12-03 辉达公司 用于生成全景视频的移动设备和系统
JP2015011594A (ja) * 2013-06-28 2015-01-19 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、アプリケーション起動方法及びコンピュータプログラム
US20150113567A1 (en) * 2013-10-23 2015-04-23 Verizon Patent And Licensing Inc. Method and apparatus for a context aware remote controller application
US9965365B2 (en) * 2013-12-31 2018-05-08 Lite-On, Inc. Power supply failover system and method
CN104182232B (zh) * 2014-08-22 2017-12-15 华为技术有限公司 一种创建上下文感知应用的方法及用户终端
CN105631069B (zh) * 2014-10-30 2019-06-18 腾讯科技(深圳)有限公司 智能设备控制方法及装置
CN104407702A (zh) * 2014-11-26 2015-03-11 三星电子(中国)研发中心 基于情境感知执行动作的方法、装置和系统
CN104486416B (zh) * 2014-12-16 2018-01-26 三星电子(中国)研发中心 一种智能家居服务规则的综合利用系统及方法
JP6638189B2 (ja) * 2015-01-07 2020-01-29 富士通株式会社 連携方法、情報処理端末、及びプログラム

Also Published As

Publication number Publication date
WO2018071394A1 (en) 2018-04-19
EP3526973A1 (en) 2019-08-21
TW201814515A (zh) 2018-04-16
JP2019537766A (ja) 2019-12-26
EP3526973A4 (en) 2020-06-17
JP2021152921A (ja) 2021-09-30
US20180107491A1 (en) 2018-04-19
CN107948393A (zh) 2018-04-20
TWI738832B (zh) 2021-09-11
US10642627B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
US11985716B2 (en) Discovery of connected devices to determine control capabilities and meta-information
JP2021152921A (ja) コンテキストアウェアアプリケーションのためのシステム、方法、および、デバイス
Li et al. Programming IoT devices by demonstration using mobile apps
AU2016301394B2 (en) Managing a device cloud
CN107948231B (zh) 基于场景的服务提供方法、系统和操作系统
TW201826869A (zh) 設備關聯方法、裝置、終端設備和作業系統
EP3726376B1 (en) Program orchestration method and electronic device
US20180198872A1 (en) Method, system and device for providing service
Nakamura et al. Application framework for efficient development of sensor as a service for home network system
US10715603B2 (en) Systems and methods for sharing application data between isolated applications executing on one or more application platforms
CN107079042B (zh) 用于上下文感知设备管理的方法和客户端设备
US20180101574A1 (en) Searching index information for application data
EP3999951A1 (en) Providing a user-centric application
JP6546088B2 (ja) 物理オブジェクトと通信デバイスとの間の許可された通信を確立するための方法
JP7412564B2 (ja) オペレーティングシステムレベル分散型アンビエントコンピューティング
US20180060092A1 (en) Group Data and Priority in an Individual Desktop
Bernardos et al. Enhancing interaction with smart objects through mobile devices
JP7562675B2 (ja) 状況的プライバシーのためのオペレーティングシステムレベルのアシスタント機能
US10397223B2 (en) Method for establishing an authorized communication between a physical object and a communication device enabling a write access
CN116166740A (zh) 一种数据同步管理方法、系统和电子设备
Vo A framework for task-oriented user interaction with smart environments using mobile devices
Turley et al. Embedded Systems-Connecting Everyone to Everything
Ghanam et al. Object-specific interfaces in smart homes
Otero Calviño et al. Ambiences: on-the-fly usage of available resources through personal devices
Thomsen Home Appliance Integration by Pervasive Computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200714

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201111

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20201222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210602

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210611

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210622

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210824

R150 Certificate of patent or registration of utility model

Ref document number: 6934937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250