JP6603238B2 - サービスのクライアント側統合フレームワーク - Google Patents

サービスのクライアント側統合フレームワーク Download PDF

Info

Publication number
JP6603238B2
JP6603238B2 JP2016559978A JP2016559978A JP6603238B2 JP 6603238 B2 JP6603238 B2 JP 6603238B2 JP 2016559978 A JP2016559978 A JP 2016559978A JP 2016559978 A JP2016559978 A JP 2016559978A JP 6603238 B2 JP6603238 B2 JP 6603238B2
Authority
JP
Japan
Prior art keywords
provider
service
user
computing device
services
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
JP2016559978A
Other languages
English (en)
Other versions
JP2017520035A (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 JP2017520035A publication Critical patent/JP2017520035A/ja
Application granted granted Critical
Publication of JP6603238B2 publication Critical patent/JP6603238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • 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/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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

Description

[0001] モバイルコンピューティングデバイスの利用における一態様として、デバイスに1つまたは複数のサービスを実行する種々のアプリが含まれており、さらにユーザがこのようなアプリをインストールするというものがある。一般に「アプリ」とは、1つのタスクまたは関連タスクの小さい集合を実行するための小さい専用ソフトウェアプログラムである。モバイルデバイス上の一連のアプリが複数のベンダーのプログラムとして提供されているのは、よくあることである。さらに、それぞれのアプリは、典型的には、他のアプリまたはアプリケーションとは別々に動作するよう設計されるため、各々がユーザデータ(個人情報を含む、デバイスユーザに関連するデータ)の固有の集合を維持することになる。
[0002] 一人の人物/ユーザが、モバイルコンピューティングデバイスに加えて、他のコンピューティングデバイスを所有および/使用しているのもごく当たり前である。例えば、ユーザが、一日の間に、スマートフォンの他に、タブレットコンピュータ、ラップトップコンピュータ、ゲーム機、およびデスクトップコンピュータといった1つまたは複数の他のコンピューティングデバイスを使用することもある。(それぞれがコンピューティングデバイスである)これらのデバイスの各々は、互いに異なる能力を有し、保有することになる少なくとも一部のアプリおよび/またはアプリケーションは他のすべてのデバイスにインストールされるとは限らない。一方、いくつかのデバイスまたはすべてのデバイスの間でアプリが一部重複することもある。さらに、これらのコンピューティングデバイスの各々は、そのユーザに関する個人情報(パスワード、選好、人口統計学的属性情報、アカウント情報、所在地など)を格納および/または維持している。
[0003] 一連のアプリはユーザのために機能/サービスの堅牢な集合を提供しうるが、アプリの各々によって提供されるサービスおよびコンテンツの統合点は、ユーザである場合が多い。しかし、自分のコンピューティングデバイス(または複数のコンピューティングデバイス)に自分のことを理解させて、その理解を基に各自の固有のニーズおよびコンテキストに合わせたパーソナル化されたアシスタンスを提供させたいと考えるユーザは、増えている。
[0004] 以下の「概要」は、「発明を実施するための形態」において以下にさらに説明される概念の選択を簡略化された形態で紹介するために提供される。この「概要」は、特許請求の範囲の主題の重要な特徴または必須の特徴を特定することを意図しているものではなく、特許請求の範囲の主題の範囲を制限することを意図するものでもない。
[0005] 開示される主題の態様によれば、アプリおよびサービスのクライアント側統合を提供するシステムおよび方法が提供される。コンピューティングデバイス上での統合フレームワークの実行により、種々のアプリ、アプリケーション、サービス、センサなどの統合が提供される。統合フレームワークは、サービスを求める要求を受け取ると、統合フレームワークに登録されている複数のプロバイダ各々の複数のサービスのレジストリにアクセスする。統合フレームワークに登録されているサービスの各々は、信頼レベルの階層の信頼レベルに関連づけられている。統合フレームワークは、信頼レベルの階層に従い、信頼レベルの最も信頼できるレベルから開始して、より信頼できない信頼レベルへと、要求されたサービスのプロバイダが見つかるまで、または要求されたサービスのプロバイダを見つけることなく階層のすべてのレベルが探索されるまで、要求されたサービスのプロバイダをレジストリで反復的に探索する。
[0006] 開示される主題の上記の態様および付随的な利点の多くは、以下の図面と併せて以下の説明を参照することによって、より深い理解がなされ、さらに容易に理解されるであろう。
[0007]開示される主題の態様を実装するのに好適な例示的ネットワーク環境を示す図である。 [0008]アプリおよびサービスのクライアント側統合を提供する際にコンピューティングデバイス上で実行されている、種々のコンポーネントおよびプロセスを示す図である。 [0009]モバイルコンピューティングデバイス上のアプリおよびサービスの信頼のレベルおよび実行順序を示す図である。 [0010]パーソナル化の進行(と共に比例して増加する個人情報へのアクセス量)に応じた個人情報セキュリティの関係を示すグラフ図である。 [0011]開示される主題の態様による、アプリおよびサービスを実行する例示的なルーチンの流れ図である。 [0012]開示される主題の態様による、クライアント側統合フレームワークとインタラクションを行う例示的なルーチンの流れ図である。 [0013]クライアント側統合フレームワークの階層にアプリおよびサービスを統合する例示的なルーチンの流れ図である。 [0014]より信頼できるレベルのサービスが利用可能であっても、より外側のレベルのサービスを利用すべきか否かに関して評価する、例示的なルーチンの流れ図である。 [0015]開示される主題の態様を実装するのに好適な例示的モバイルコンピューティングデバイスのブロック図である。
[0016] 明確にするため、本文書における「例示的」という用語は、何かの例示または実例となるものと解釈されるべきであり、その何かの理想的な例示および/または主たる例示と解釈されるべきではない。「個人情報」という用語は、関連づけられたユーザの情報、データ、メタデータ、選好、行動に加え、そのユーザと対話する際のルールにも対応している。一般に個人情報とは、関連づけられたユーザのいくつかの側面を表す、当該ユーザに関する情報である。個人情報は、(限定ではなく例示を意図するものであるが)性別、年齢、学歴、人口統計学的属性データ、居住地国、市民権などのデータを含みうる。個人情報は、選好および興味、専門知識、能力なども含む場合がある。さらに、個人情報は、パーソナルアシスタンスを提供する際に、関連づけられたユーザと対話するための(関連づけられたユーザによって確立されたルールならびに以下に説明する分析を通じて知得および/または推察されるルールを含む)ルールを含む場合がある。
[0017] 前述のように、「アプリ」という用語は、典型的には、コンピューティングデバイス上で1つのタスクまたは関連タスクの小さい集合を実行するための小さい専用ソフトウェアプログラムへの言及である。アプリは、コンピューティングデバイス上にプリインストールされている場合も、コンピューティングデバイスのユーザの指示に従ってインストールされる場合もある。「アプリケーション」という用語は、コンピューティングデバイス上で1つまたは複数のタスクを実行するソフトウェアプログラムへの言及である。典型的には、アプリケーションは、アプリよりも適用範囲の点で広範かつ堅牢であるが、アプリもアプリケーションも共にソフトウェアプログラムである。アプリもアプリケーションも共にソフトウェアプログラムであり、この両方共、開示される主題の態様を実装するのに好適なコンピューティングデバイスの上にインストールされうることから、用語に関して簡潔化を図るため、(特に異なる指摘がない限り)以降の「アプリ」という用語への言及は、アプリおよびアプリケーションの両方を包含するものと解釈されたい。
[0018] 以下に説明するように、統合フレームワークは、コンピューティングデバイス上に共にローカルに配置されたアプリおよびセンサだけでなく、(兄弟デバイスなどの)他のデバイスの上で利用可能なアプリおよびセンサも統合する。言うまでもなく、アプリおよびセンサ、デバイスなどは、個別にデータ、データストリーム、機能性、アクティビティなどを提供することができる。本開示の目的のために、統合フレームワークに登録されている種々のアプリ、センサ、デバイスなどのデータ、データストリーム、機能性、機能、アクティビティは、プロバイダ(アプリ、センサ、デバイスなど)によって提供されるサービス(データ、ストリーム、機能性など)と称することとする。
[0019] パーソナル化されたアシスタンスを提供する一つの解決策は、多数のサブスクライバにパーソナル化されたアシスタンスを提供することのできるオンラインサービスを配備することである。そのために、世界中から収集される大量のデータを収集、格納、照合、分析、および操作する多数のコンピュータおよび/またプロセッサを利用する。このようなモノリシックなモデルでは、ユーザの各種のコンピュータの上のアプリがすべて、このモノリシックなオンラインサービスに依拠して、ユーザの所望するサービスを提供する。典型的には、サブスクライバ(パーソナル化されたアシスタンスを受けることを望む者)は、アプリを介してオンラインサービスに種々の個人情報を提供しており、オンラインサービスがサブスクライバの生活を数多くの側面から観察して可能な限り多くの個人情報を獲得するのを許している。サブスクライバが(特に自身のコンピュータに関して)行うほぼあらゆるアクティビティが捕捉され、さらなる個人情報を特定するために分析される。このようなアクティビティは、オンライン行動、購入、選好、所属先、銀行取引情報などを含むが、これらに限定されない。オンラインサービスは次いで、収集し維持している自身のサブスクライバの蓄積された個人情報に基づき、その演算能力を使ってパーソナル化されたアシスタンスを提供する。
[0020] 前述のような大規模なモノリシックオンラインサービスを運営するには高額な費用がかかる。そのような大規模なオンラインサービスの運用を続けるためには、オンラインサービス側に収益源が必要である。一方で、サブスクライバ/個々のユーザは、パーソナル化されたアシスタンスを無償で受けたいと望んでいる。モノリシックなオンラインサービスは、パーソナル化されたサービスの対価をサブスクライバに直接課金するのではなく、サブスクライバの個人情報から収益を得られる仕組みを作ることで収益源を生み出す。このような収益化を一般に「広告原資による」または「ベンダー原資による」と言う。オンラインサービスが自身のサブスクライバの個人情報を収益化する方法は、サブスクライバの中から、(オンラインサービスが受け取り、知り得た、サブスクライバの個人情報によって判断されるような)種々の個性、趣味、人口統計学的属性、およびその他の属性を持つ個人を特定し、そのような個人を対象に広告主に代わって広告を流すことによって、特定した情報から収益を生み出すというものである。言うまでもなく、(前述の)モノリシックなオンラインサービスが、そのサブスクライバを対象とする広告を売るのは、サブスクライバの個人情報から収益を生み出せる一つの方法に過ぎない。あるいは、オンラインサービスは、単に連絡先のリストおよび/または情報を売ることもできる。もちろん、サブスクライバに関する連絡先のリストおよび/または情報を売ることは、個人のプライバシーに関する懸念を生む。
[0021] サブスクライバは、パーソナル化されたアシスタンスを「無償で」受けるのを歓迎する傾向が強いため、頻繁に提示される広告も許容してしまう。さらに、サブスクライバは、オンラインサービスが自分たちの個人情報をどの程度保有し、収益化/第三者(例えば、広告主、ベンダー、各種の組織など)に公開しているのか、ほとんど意識しておらず、それに気づいたとすれば、不安にかられるであろう。もちろん、オンラインサービス側では、サブスクライバには損害を与えないと主張することによってサブスクライバを懐柔するだろうが、オンラインサービス側は矛盾している。つまり、オンラインサービスは、そのサブスクライバの個人情報を(広告、連絡先リストの販売などを問わず)第三者に提供することによって収益を挙げている。さらに、第三者に提供される個人情報が具体的になればなるほど、オンラインサービス側にもたらされる金銭的報酬は増える。ところが、さらされる個人情報が具体的になるにつれて、個人情報をさらされた本人に対する迷惑行為のリスクと可能性も高まるのである。
[0022] 言うまでもなく、個人情報を(ユーザの個人情報の取扱いに節度を示すかどうかに関わらず)既知の第三者にさらすことのリスクを考慮に入れないとしても、多数のユーザ/サブスクライバの個人情報を大量に格納するだけで、オンラインサービスが、なりすまし犯罪者をひきつけ、おびき寄せる格好のターゲットを提供してしまうことは、不幸な事件が後を絶たないことからも明らかである。したがって、パーソナル化されたアシスタンスのレベルは、本人について知られている個人情報の量と直接的な相関関係がありうる一方で、(個人情報の漏えいまたは悪用のリスクに対する)本人の個人的なセキュリティも、本人についてオンラインサービスが保有する個人情報の量に左右される。図4に示すように、理想としては、高度な個人的セキュリティ(すなわち、個人情報におけるセキュリティ)かつ高度なパーソナル化であるが、モノリシックなオンラインサービスでは、パーソナル化のレベルが上がるにつれて、(本人の個人情報に関する)個人的セキュリティのレベルが下がるというのが現実である。
[0023] モノリシックなオンラインサービスと対照的なものとして、開示される主題の態様に従う、個人の所有する1つのコンピューティングデバイス(または複数のコンピューティングデバイス)の上で動作するパーソナルデーモンについては、2014年2月24日に出願された「Local Personal Daemon」という名称の、関連する米国特許出願第14/187567号に記載されている。関連出願に記載されているように、「デーモン」は、定義としては、コンピュータユーザの直接の制御下で実行されるのではなく、コンピューティングデバイスのバックグラウンドで実行される、コンピューティングデバイス上で動作する実行のプロセスまたはスレッドである。しかし、デーモンがコンピューティングデバイスのバックグラウンドで動作する間、コンピュータユーザはデーモンと対話し、この対話を通じてデーモンのアクティビティを指示することができる。さらに、「パーソナルデーモン」は、パーソナル化されたアシスタンスを提供する際に、コンピュータユーザの個人情報に対してアクセス、取得、推察、維持、および作用を行うデーモンである。パーソナルデーモンは、関連づけられたユーザのアクティビティを数多くの側面から観察して、ユーザに関するさらなる個人情報を(可能な限り、いつどこでも)特定し、推察し、かつ/または学習するだけでなく、ユーザに代わり行動するための、すなわち、ユーザにパーソナル化されたアシスタンスを提供するためのルールを推察し、学習する。さらに、パーソナルデーモンは、ユーザとのダイアログおよびその他の対話を通じて、特に、推察された情報および/またはユーザに代わって行動するためのルールに関して、ユーザに関する個人情報を学習および/または確認してもよい。これには、ユーザに関して以前導かれた推察を確認すること、ユーザの選好その他の個人情報を要求することなどが含まれる。「ローカルパーソナルデーモン」とは、「ローカルで」すなわち、ユーザのコンピューティングデバイスの上で動作するパーソナルデーモンである。ローカルパーソナルデーモンは、ユーザのコンピューティングデバイスの上で動作するが、ネットワーク上のサービスおよび情報にアクセスできることから、ローカルパーソナルデーモンは「クラウド端」の動作と言われる。本開示の目的のために、「パーソナルデーモン」および「ローカルパーソナルデーモン」は同義であると見なされたい。
[0024] 「パーソナルアシスタンス」という用語は、関連づけられたユーザにパーソナルアシスタンスを提供するパーソナルデーモンというコンテキストにおいて、基本的にユーザに代わり1つまたは複数のアクションを実行することと解釈されるべきである。典型的には、ただし必ずしもそうとは限らないが、パーソナルアシスタンスは、ユーザの現在のコンテキストの側面に関連する1つまたは複数のイベントによってトリガされる。限定ではなく例示を意図するものであるが、パーソナルアシスタンスの1つまたは複数のアクションには、以下が含まれうる。すなわち、ユーザに特定のアクションをとるように推奨すること、ユーザに代わりデータおよび/またはサービスを取得すること、ユーザのアクティビティの分析に基づく個人情報の推察についてユーザに確認すること、パーソナルデーモンがユーザに代わりアクションをとることへの許可についてユーザに確認すること、ユーザに1つまたは複数のイベントに関する通知を提供すること、ユーザの現在のアクティビティとは異なる選択肢を提供すること、場所を提案すること、ユーザに代わりコンピューティングデバイスに対してアクションを実行すること、別のおよび/または関連するアクティビティもしくはアイテムを推奨することなどである。サブスクライバの個人情報を収集し、収益化するモノリシックなオンラインサービスを利用する場合とは異なり、パーソナルデーモンは、ユーザによって定められたルールおよび指示に従う場合を除き、関連づけられたユーザの個人情報を他の第三者実体と共有することはない。
[0025] 開示される主題の態様によれば、ユーザのコンピューティングデバイスの上で動作しているパーソナルデーモンは、ユーザのコンピューティングデバイスの上で、またはこれを介して利用できる種々のサービスの統合点となる。コンピューティングデバイスは、コンピューティングデバイスに関連づけられたユーザにパーソナル化されたアシスタンスを提供する際にパーソナルデーモンが依拠する、クライアント側統合フレームワークを含んでいる。当業者であれば理解するように、このコンテキストにおいて「フレームワーク」とは、特定の機能性の集合を提供する、(コンピューティングデバイス上で実行可能な)一連の実行可能なプロセスおよびサービスである。本開示の場合、そのような機能性は、ローカルサービスとローカルコンピューティングデバイス上には常駐しないサービスとの両方を含むサービスの統合である。この統合フレームワークは、クラウドにおけるリモートデバイスではなく、ユーザの(すなわちクライアントの)コンピューティングデバイスに実装されるため、「クライアント側」統合フレームワークである。ただし、統合フレームワークは、リモートソースと協調し、リモートソースからサービスを取得することができる。そのようなクライアント側統合フレームワークが、特許出願「Local Personal Daemon」で検討されたOn{Event}フレームワークである。開示される主題の態様によれば、以下にさらに詳細に検討するように、統合フレームワークは、サービスを取得するための「ローカル優先の」パターンを実装する。
[0026] ここで図1を参照すると、図1は、開示される主題の態様を実装するのに好適な例示的ネットワーク環境100のブロック図である。図に示す通り、ネットワーク環境100は、1つまたは複数のユーザコンピューティングデバイス102〜106を含んでいる。ユーザ101に関連づけられたユーザコンピューティングデバイス102のように、ユーザコンピューティングデバイスの少なくともいくつかは、パーソナルデーモンおよび対応する統合フレームワークをホストするように好適に構成されている。当業者には容易に理解されるように、好適なユーザコンピューティングデバイスには、限定ではなく例示を意図するものであるが、以下が含まれる。すなわち、タブレットコンピューティングデバイス、コンピューティングデバイス102などのスマートフォンデバイス、いわゆる「ファブレット」コンピューティングデバイス(すなわち、典型的なタブレットコンピューティングデバイスとスマートフォンデバイスとにまたがる機能性を有するコンピューティングデバイス)、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス、携帯情報端末、ゲーム機などである。
[0027] ネットワーク環境100は、ユーザコンピューティングデバイス102〜106が、ネットワーク全体に分散されたネットワークにアクセス可能なデバイスおよび/またはサービスとの通信ならびにこれらへのアクセスを可能にする、ネットワーク110もまた備えている。例えば、図1に示すように、ネットワーク110には、ネットワークサービスプロバイダ112〜116も通信可能に接続されている。ネットワークサービスプロバイダとは、ユーザ101などのユーザを含む他者に1つまたは複数のサービスを提供する、(コンピューティングデバイスが対応している)オンラインサービスである。このようなネットワークサービスプロバイダ112〜116には、限定ではなく例示を意図するものであるが、以下が含まれる。すなわち、ネットワークサービスプロバイダ116などのソーシャルネットワークサービスプロバイダ、検索エンジン114などの検索エンジン、交通情報プロバイダ112などの交通情報プロバイダ、ニュースサービス(図示せず)、気象情報サービス(図示せず)、オンラインゲームサービス(図示せず)、バンキングサービス(図示せず)などである。実際のところ、所望されるどのような種類のサービスでも(無償または有償で)オンラインサービスから得られるように思われる。
[0028] 開示される主題の態様によれば、以下にさらに詳細に検討するように、統合フレームワークを有する(ユーザコンピューティングデバイス102などの)ユーザコンピューティングデバイスは、「クラウド端」のデバイスとして実装される。これは、ローカル処理が発生する一方で、コンピューティングデバイスは、ネットワーク110を介して他のコンピューティングデバイスおよびネットワークサービスプロバイダからサービスを取得できることを意味する。
[0029] 多くのユーザが複数のコンピューティングデバイスを所持/利用していることは、当業者には容易に理解されよう。実際、一人のユーザが、例を挙げれば、スマートフォンに加え、タブレットコンピューティングデバイス、ラップトップコンピュータ、および/またはデスクトップコンピュータを所持しているのは、よくあることである。開示される主題の態様によれば、コンピューティングデバイス102などのコンピューティングデバイスの上で動作しているパーソナルデーモンは、関連づけられたコンピュータユーザ101に関する個人情報を、同様に構成された「兄弟コンピューティングデバイス」と共有するように構成することができる。兄弟コンピューティングデバイスとは、同じユーザに関連づけられ、それぞれが統合フレームワークで構成されているコンピューティングデバイスである。例えば、ユーザコンピューティングデバイス102〜104は、コンピュータユーザ101のための兄弟コンピューティングデバイスとすることができる。以下にさらに詳細に検討するように、兄弟コンピューティングデバイス上の統合フレームワークに登録されたサービスは、このようなサービスが他の供給源から得られるサービスよりも概して優先されるような信頼のレベルを享受する。
[0030] 好適なユーザコンピューティングデバイスの構成に関しては、図2に、ユーザコンピューティングデバイス102などのように、アプリおよびサービスのクライアント側統合を提供するにあたり好適に構成されたユーザコンピューティングデバイスの上にホストされている、種々のコンポーネントおよびプロセスの図200を示す。ユーザコンピューティングデバイス102は、コンピューティングデバイス上で実行中の(または実行可能な)アプリ202〜210などの1つまたは複数のアプリまたはサービスを含んでいる。コンピューティングデバイス102上のアプリには、関連づけられたユーザ101に代わり動作しているパーソナルデーモン206が含まれている。
[0031] 好適に構成されたユーザコンピューティングデバイス102の上では、統合フレームワーク220も動作している。統合フレームワーク220は、拡張可能なイベント/アクションフレームワークである。すなわち、このフレームワークは、(例示的なセンサ222〜232などの)1つまたは複数のセンサまたはサービスに関してイベントの発生を検出し、これに応答して、検出したイベントに関連づけられた1つまたは複数のアクションをユーザコンピューティングデバイス上で実行する。センサ222〜232は、地理的センサ、加速度センサ、タイマ、ネットワークイベントセンサ、電源センサ、プロセッサ負荷センサ、光および音声センサなどの、ユーザコンピューティングデバイス上のハードウェアセンサに対応している。言うまでもなく、アプリおよびサービス202〜210もまた、チェックイン、「いいね」、テキストメッセージなどの一定の条件に基づいてイベントを生成するという点において、ソフトウェアセンサとして登録されてもよい。統合フレームワーク220は、次の点において拡張可能である。すなわち、ソフトウェアセンサを含むセンサがフレームワークに追加/登録可能であり、アクションがサービスとして追加および/または削除可能であるという点、ならびに(統合フレームワーク220を含む)他のアプリおよびアプリケーションが、センサの検知するイベントに対してサブスクライブ可能であるという点である。このため、図示されていないが、統合フレームワーク220は、1つまたは複数のアプリまたはアプリケーションがセンサのサービスにサブスクライブできるようにするサブスクリプションインターフェイス、ならびにサービスのプロバイダ(アプリ、アプリケーション、センサ、デバイスなど)が、提供されるサービスおよびサービスの呼出方法を統合フレームワークに「パブリッシュ」できるようにするパブリッシャインターフェイスを含んでいる。統合フレームワーク220はまた、種々のセンサ/サービス222〜232がフレームワークへ通知を送信するための入力インターフェイス(図示せず)も含んでいる。統合フレームワーク220はまた、前述のサービスのプロバイダに加え、スクリプト、コンピュートグラフ、および/または既存のプロバイダに対するオーケストレーションを含む、従来のものより新しい他のプロバイダを利用してもよい。
[0032] 統合フレームワーク220の拡張可能性に関しては、アプリ(またはアプリケーション)およびサービスは、他のセンサ、サービス、および/またはアプリからのイベントにサブスクライブするように、統合フレームワークに登録されうると理解されたい。サブスクライブされたイベントの通知を受け取ると、サブスクライブ側のアプリおよびサービスは次いで、サブスクライブされた供給源からの情報を利用して、さらなるデータおよび/または機能性を生成してもよい。言うまでもなく、これらサブスクライブ側のアプリおよびサービスは、統合フレームワーク220を通じて生成するデータ、サービス、および/または機能性をパブリッシュして、さらに他のアプリがそれらのサービスにサブスクライブできるようにしてもよい。要するに、1つのアプリ(またはアプリケーションまたはサービス)が、他のアプリおよびサービスのサービス/データ/機能性のコンシューマとして統合フレームワーク220に登録すると共に、他のサービスおよびアプリによって利用されうるサービスまたはデータまたは機能性のパブリッシャ/プロデューサとしても登録してよい。
[0033] 開示される主題の種々の実施形態において、および設計実装の特徴として、アプリ(またはサービス)が別のアプリ(またはセンサまたはサービス)のコンシューマとしてサブスクライブするとき、統合フレームワーク220は、統合フレームワーク220がそれ以上関与することなくサブスクライブされたサービスを受ける、サブスクライブ側のアプリの情報および/または能力を提供することができる。言うまでもなく、代替実施形態において、統合フレームワーク220は、生成側サービスと消費側サービスとの間の「リンクする」態様を提供することができる。
[0034] サブスクライブ側/消費側サービスは、生成側サービスのうち、すべてにサブスクライブしてもよいし、ある種のサービス(またはデータまたは機能性)を提供する特定のサービスにサブスクライブしてもよい。例えば、サブスクライブ側のサービスまたはアプリは、ローカルコンピューティングデバイス上のバッテリーの現在の電力レベルを検出する/報告するセンサと、センサのデータを消費して、ローカルコンピューティングデバイスが現在の電力レベルを前提に現在の処理レベルで動作を継続できる時間に関してさらなる詳細データを生成する、パブリッシュ側サービスとの両方に対してサブスクライブしてもよい。統合フレームワーク220のもとで、アプリは、所望のデータ/サービス/機能性の種類に基づき、特定の生成側サービス/アプリに対してサブスクライブしてもよいし、あるいは、生成側サービス/アプリの集合に対してサブスクライブしてもよい。
[0035] 開示される主題の態様によれば、コンピューティングデバイス102上で利用可能な(ハードウェアとソフトウェア両方のセンサおよびサービスを含む)センサおよびサービス222〜232は、統合フレームワーク220に登録される。アプリ、デバイス、またはセンサの登録は、登録された実体によって提供される1つのサービス(または複数のサービス)の性質を統合フレームワークに通知することを含んでおり、フレームワークによってトリガされ、受領される可能性のあるイベントの性質をフレームワークに通知する。前述の通り、統合フレームワーク220への登録により、サービスのプロバイダがサービス提供のために呼び出し可能となるよう、フレームワークに対して当該プロバイダとの通信の方法が通知される。レジストリ内の情報により、他のアプリ、アプリケーション、またはサービスは、システム全体で提供されるデータおよび/またはサービスを把握できるようになり、さらに、登録されたサービス/センサによって生成される1つのイベント(または複数のイベント)にサブスクライブするか、または登録されたアプリ/アプリケーション/センサを実行して、そのサービスおよびデータを活用することができる。関連づけられたユーザのために種々のアプリおよびサービスの統合点として機能するパーソナルデーモン206は、ユーザにパーソナルアシスタンスを提供する際に、統合フレームワーク220のアプリおよびサービスにサブスクライブする。
[0036] 開示される主題の種々の実施形態によれば、統合フレームワーク220に対するサービスの登録は、コンピューティングデバイスへのサービスのインストールプロセスの一環として行われる。一実施形態によれば、統合フレームワーク220に対する登録は、サービスに関連づけられたマニフェストに従って行われうる。あるいは、サービスは、初期化/インストールプロセスの一環として、統合フレームワークとの間でその登録情報を通信するように構成されてもよい。あるいは、統合フレームワーク220は、サービスのインストール時に登録情報のグローバルリストを照会するように構成されてもよい。さらなる代替実施形態においては、関連づけられたユーザが、サービスの登録情報を統合フレームワーク220に手作業で追加してもよい。
[0037] 開示される主題の態様によれば、各プロバイダのサービスに関する情報を格納することに加えて、統合フレームワークに登録されたそれぞれのサービスが信頼レベルの階層の信頼レベルに関連づけられる。信頼レベルは、概して、関連づけられたユーザがそのサービスに関して抱いている信頼を示すものである。ここで図3を参照すると、ローカルサービス(すなわち、統合フレームワーク220を有するコンピューティングデバイス上に存在するサービス)は、典型的には、図3で「私」レベル302として特徴づけられている、信頼の最上位レベルに関連づけられている。既に述べたように、ローカルデバイス上にないサービスも統合フレームワーク220に登録することができる。実際、兄弟コンピューティングデバイス上のサービスは、同じく上位の信頼のレベル、すなわち、図3で「私のもの」レベル304と称される、2番目に信頼できるレベルに位置づけられている。関連づけられたユーザが信頼できると見なしうるサービス、例えば、ユーザがメンバーとなっているまたは関連づけられたユーザにアクセス権限のあるネットワークの上のデバイスから得られるサービスには、より下位の信頼のレベル、すなわち、図3で「私たちのもの」レベル306と称される、3番目の信頼のレベルを与えることができる。統合フレームワーク220がコンピューティングデバイス102上で利用可能であっても、必ずしもより上位の信頼のレベルに関連づけられていないサービスは、典型的には、図3で「他者」レベル308と称される、信頼の最下位レベルに含められる。
[0038] 開示される主題の態様によれば、サービスを求める要求が統合フレームワーク220によって受領されると、統合フレームワークは、通常、最も信頼できる、すなわち、信頼の「私」レベルに存在するサービスで要求を満たそうと試みる。最も信頼できるレベルで一致するサービスを見つけることができないと、統合フレームワーク220は、矢印312で示すように、要求を満たすために、順次、外側のレベルへと対象を広げていく。もちろん、そのサービスがローカルコンピューティングデバイス上で利用可能であるにもかかわらず、ローカルデバイス上に存在しないサービスプロバイダからサービスを取得するほうが有利である場合もある。例えば(限定ではなく例示を意図するものであるが)、バッテリー電力が低く、特定のサービスが相当の電力量を消費することがわかっている場合は、ローカルコンピューティングデバイス以外のコンピューティングデバイスからそのサービスを取得すると有利であろう。同様に、ローカルコンピューティングデバイス上のプロバイダ/センサ(信頼の「私」レベル302に相当するもの)からサービスを取得するか、それともより外側の信頼のレベル、特に信頼の「私のもの」レベル304からサービスを取得するのかを決定する際は、処理可用性および処理能力、メモリ制約、データ可用性、ネットワーク帯域幅、ネットワーク接続速度、時刻などすべてが考慮されうる。
[0039] 図3には、アドホック信頼レベル310も示されている。開示される主題の態様によれば、ユーザは、相互通信、別のデバイスへのデータ提供などの目的で、別のデバイスとのアドホックネットワーク(例えば、2つのモバイルデバイス間の一時的なネットワーク)を一時的に確立することができる。そのため、統合フレームワーク220は、接続が継続する間、アドホックネットワーク上のデバイスのアプリ/サービス/センサに、信頼の「アドホック」レベル310を一時的に関連づけることができる。図3のアドホックレベル310は、「アドホック」レベル310が「私のもの」レベル304と「私たちのもの」レベル306との中間に位置することを示しているが、言うまでもなく、これは例示のみを目的としており、開示される主題を限定するものと見なされるべきではない。「アドホック」レベル310が与えられている信頼のレベルは、信頼レベルの階層における他の場所に構成可能なように配置されてもよいし、関連づけられたユーザによって手作業で決定されてもよい。
[0040] 開示される主題の種々の実施形態に従い、図3に関する上記の項では、統合フレームワーク220が、ローカルコンピューティングデバイス上でサービスが利用可能ではないとき(または実行できる可能性がないとき)、どのようにして外部のコンピューティングデバイスにサービスを求めるかについて説明したが、統合フレームワーク内のメッセージは他のコンピューティングデバイスには送信されない。一般的には、統合フレームワーク220が、検知したイベントまたは信号に基づき、リモートデバイスからサービスを取得しようとするとき、リモートデバイスにサービスを求める要求を出すためにリモートデバイスとの通信専用の1つまたは複数のサービスが呼び出される。
[0041] 図3に関して上記に説明したパターンについて言えば、サービスの位置を特定する際に「私」レベルから始めて、信頼レベルに従って外側へ広げていくパターンを、ユーザ自身のモバイルコンピューティングデバイスに実装すると有利であると思われるが、異なるポリシーを適用するのが妥当である場合もある。例えば、親は、子のモバイルコンピューティングデバイス上で利用可能である種々の機能を把握しておきたい、または制御したいと望むかもしれない。そのような状況では、親が子のために定めたポリシーに基づき、サービスを探す順序を変えてもよい。例えば、(ローカルコンピューティングデバイスのサービス以上に)最も信頼できると見なされる種々のサービスを親が特定してもよいし、統合フレームワーク220が要求されたサービスを探す信頼のレベルを親が制限するなどしてもよい。もちろん、企業においても、従業員に提供するモバイルデバイスに対してポリシーを実施することが望まれるであろう。
[0042] ここで図5を参照すると、図5は、ユーザのモバイルコンピューティングデバイス102の上の統合フレームワーク220によって実装されうるような、開示される主題の態様による、サービスを取得する例示的なルーチン500の流れ図である。最初にブロック502において、統合フレームワーク220に登録されているサービスのプロバイダにサービスを求める要求が受領される。ブロック504において、ローカルサービス、すなわち、最も信頼できる信頼レベル(信頼の「私」レベル302)のサービスから、要求を満たすようなプロバイダ/サービスの探索が開始される。ブロック506において、(最初は、最も信頼できるレベルから始まる)現在のレベルに対して、要求を満たすような登録済みサービスの探索が行われる。判定ブロック508において、現在の信頼のレベルでサービスが見つかるか否かに関する決定が行われる。「いいえ」の場合、ルーチン500は、以下に説明する判定ブロック412へ進む。一方、要求されたサービスが見つかった場合、すなわち、現在のレベルのプロバイダによって実施されうる場合、ルーチン500はブロック510へ進み、ここで、見つかったサービスのプロバイダに対して命令が出される。その後、ルーチン500は終了する。
[0043] 判定ブロック512において、サービスを探索する対象となる、別の、より下位の信頼のレベルが存在するか否かに関する決定が行われる。「いいえ」の場合、つまり、要求されたサービスが利用可能ではない場合、ブロック514において、ルーチンは、要求されたサービスが見つからなかった旨の表示を返す。一方、探索対象の別のレベルが存在する場合、ルーチン500はブロック516へ進み、ここで(図3に関して既に述べたような)次の信頼のレベルが選択され、このプロセスは前述のブロック506へ戻る。
[0044] ここで図6を参照すると、図6は、パーソナルデーモンによって行われるような、開示される主題の態様による、クライアント側統合フレームワークと対話する例示的なルーチン600の流れ図である。最初にブロック602において、統合フレームワークに登録されているアプリまたはサービスに関するサービス情報を求める要求が出される。ブロック604において、サービスに関する情報が受領される。判定ブロック606において、要求されたサービス情報によって、現在利用可能なものが特定されるか(他方の選択肢は、サービスが利用可能ではないというものである)否かに関する決定が行われる。「はい」の場合、ルーチンはブロック608へ進み、ここで、特定されたサービスに対して要求が出される。その後、ルーチン600は終了する。
[0045] 図7は、クライアント側統合フレームワーク220の階層にサービスを統合する例示的なルーチン700の流れ図である。最初にブロック702において、統合フレームワーク220は、サービス(または前述の入力インターフェイスを介したアプリもしくセンサ)に関する情報を受け取る。ブロック704において、統合フレームワーク220は、サービスに関連づけられる、信頼レベルの階層の信頼レベルを決定する。前述のように、信頼レベルは、サービスが、ローカルデバイス上、兄弟デバイス上、デバイスの信頼できるネットワークの上、アドホックネットワーク上、またはその他で利用できるか否かに対応させることができる。ブロック706において、統合フレームワーク220のレジストリは、関連づけられた信頼レベルを含む情報で更新される。その後、ルーチン700は終了する。
[0046] ここで、ルーチン500のブロック510に関して図5から説明してきた評価について取り上げる。図8は、(例えば、ローカルコンピューティングデバイス上の)より信頼できるレベルのサービスが利用可能であっても、より外側のレベルのサービスを利用すべきか否かを評価する、例示的なルーチン800の流れ図である。最初にブロック802において、(例えばローカルコンピューティングデバイス上の、最も信頼できるレベルに対応するような)現在のレベルで利用可能なサービスが、信頼階層の別のレベルでも利用可能か否かに関する決定が行われる。「いいえ」の場合、ブロック804において、現在のレベルのサービスが利用されることになり、ルーチン800は終了する。一方、より外側の信頼のレベルでサービスが利用可能である場合、ルーチンはブロック806へ進む。
[0047] ブロック806において、より外側のレベルのサービスの利用に関する種々の基準について評価が行われる。前述のように、これらの基準としては、(限定ではなく、例示を意図するものであるが)以下が含まれる。すなわち、現在の演算処理のバッテリー電力は低いかどうか、ある種のサービスが大量の電力を消費するとわかっているかどうか、別のコンピューティングデバイスおよびローカルコンピューティングデバイスの処理可用性および処理能力、メモリ制約、ローカルコンピューティングデバイスと別のコンピューティングデバイスとのデータ可用性の対比、現在のデバイスのネットワーク帯域容量、ローカルコンピューティングデバイスのネットワーク接続速度、時刻、データセキュリティの問題などである。この評価(またはこれらの評価)に基づき、判定ブロック808において、より外側のレベルのサービスを利用すべきか否かに関する決定が行われる。「いいえ」の場合、ルーチン800はブロック804へ戻り、ここで、現在のレベルのサービスが利用される旨の表示が返され、その後、ルーチン800は終了する。「はい」の場合、ブロック810において、現在のレベルよりも(信頼の階層における)より外側のレベルのサービスを利用する旨の表示が返される。その後、ルーチン800は終了する。
[0048] 前述の種々のルーチンおよびプロセスに関しては、これらのルーチン/プロセスは、種々のタスクを完了するための個別のステップに関して表現されているが、これらのステップは本質的に論理的なものと見なされるべきであり、特定の実装における任意の実ステップおよび/または個別のステップに対応していることも、対応していないこともある。また、これらのステップが種々のルーチンにおいて提示される順序も、ステップが実行されうる唯一の順序と解釈されるべきではない。さらに、これらのルーチンは、開示される主題の種々の新規な特徴を含んでいるが、ルーチンの実行において他のステップ(記載せず)も実行されうる。さらに、当業者であれば理解するであろうが、これらのルーチンの論理的ステップは、互いに組み合わせることも、複数のステップで構成することもできる。ルーチン500〜800のステップは、並列的にも直列的にも実行することができる。しばしば、ただし必ずしもではないが、種々のルーチンの機能性は、図8に関して説明したように、コンピューティングデバイス上で実行されるソフトウェア(例えば、アプリケーション、システムサービス、ライブラリなど)において実施される。種々の実施形態において、種々のルーチンの全部または一部も、コンピュータシステム上のシステムオンチップ、専用設計プロセッサおよび/または論理回路などを含むが、これらに限定されないハードウェアモジュールにおいて実施されうる。
[0049] これらのルーチン/プロセスは、典型的には、ルーチン、機能、ループ構造、if−thenおよびif−then−else文などのセレクタ、代入、算術計算などを含む実行可能コードとして実装される。ルーチン各々の厳密な実装は、プログラミング言語、コンパイラ、ターゲットプロセッサ、動作環境、およびリンクを含む、種々の実装構成および判定に依拠している。当業者であれば容易に理解するであろうが、これらのルーチンにおける論理的ステップはいくつもの手法で実装することが可能であり、上記の論理的説明によって同様の結果を十分に達成可能である。
[0050] 開示される主題の数多くの新規な態様は、(コンピュータプログラムとも称される)アプリケーション、アプリ(概して単一の用途または狭い用途を意図した、小さいアプリケーション)、および/または方法において実施されるルーチンとして表現されているが、これらの態様はまた、コンピュータ可読記憶媒体とも称されるコンピュータ可読媒体に格納されたコンピュータ実行可能命令として実施されてもよい。当業者であれば理解するように、コンピュータ可読媒体は、コンピュータ実行可能命令を後のリトリーブおよび実行のためにホストすることができる。コンピュータ可読記憶装置に格納されたコンピュータ実行可能命令が実行されるとき、これらは、種々のルーチンに関して上記に説明したステップ、方法、およびルーチンを含む、種々のステップ、方法、および/または機能性を実行する。コンピュータ可読媒体の例としては、以下を含むが、これらに限定されない。すなわち、ブルーレイディスク、デジタルビデオディスク(DVD)、コンパクト(CD)、光ディスクカートリッジなどの光学記憶媒体、ハードディスクドライブ、フロッピーディスク、磁気テープなどを含む磁気記憶媒体、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、メモリカード、サムドライブなどのメモリ記憶装置、クラウドストレージ(すなわち、オンラインストレージサービス)などである。ただし、本開示の目的のために、搬送波および伝播信号は、コンピュータ可読媒体から明示的に除外する。
[0051] 図9は、開示される主題の態様を実装するのに好適な例示的モバイルコンピューティングデバイスのブロック図である。例示的なモバイルコンピューティングデバイス900は、プロセッサ902(または処理装置)とシステムバス910によって相互接続されたメモリ904とを備えている。容易に理解されるように、メモリ904は、(必ずしもではないが)典型的には揮発性メモリ906および不揮発性メモリ908の両方を備えている。揮発性メモリ906は、メモリに電力が供給されている限り、情報を保持または格納している。対照的に、不揮発性メモリ908は、電源を利用できなくても情報を格納しておく(または持続的に保存する)ことが可能である。一般的に言って、RAMおよびCPUキャッシュメモリは揮発性メモリ906の例であるのに対し、ROM、ソリッドステートメモリデバイス、メモリ記憶装置、および/またはメモリカードは不揮発性メモリ908の例である。
[0052] プロセッサ902は、種々の機能、特に関連づけられたユーザにパーソナルアシスタンスを提供するパーソナルデーモン206の実行に関わる機能を実行する際に、メモリ904からリトリーブされた命令を実行する。プロセッサ902は、シングルプロセッサ、マルチプロセッサ、シングルコアユニット、およびマルチコアユニットなど、市販されている種々のプロセッサのいずれによる構成としてもよい。さらに、当業者であれば理解するであろうが、開示される主題の新規な態様は、携帯情報端末、ウェアラブルコンピューティングデバイス、スマートフォンデバイス、タブレットコンピューティングデバイス、ファブレットコンピューティングデバイス、ラップトップコンピュータ、デスクトップコンピュータなどを含むが、これらに限定されない他のコンピュータシステム構成で実施することができる。
[0053] システムバス910は、モバイルデバイスの種々のコンポーネントが相互に通信を行うためのインターフェイスを提供する。システムバス910は、(内部コンポーネントおよび外部コンポーネントの両方を含む)種々のコンポーネントを相互に接続できる、数種類のバス構造のいずれでもよい。コンピューティングデバイス900は、コンピューティングデバイス900を他のネットワークアクセス可能コンピュータ、オンラインサービス、および/またはネットワークエンティティ、ならびにコンピュータネットワーク110上の他のデバイスと相互に接続するための、ネットワーク通信コンポーネント912をさらに備えている。ネットワーク通信コンポーネント912は、有線接続、無線接続、またはその両方を介してネットワーク110上の種々のコンピュータおよびデバイスと通信を行うように構成することができる。
[0054] コンピューティングデバイス900は、実行可能アプリ/アプリケーション916もまた含んでいる。当業者であれば理解するように、アプリケーションは、コンピューティングデバイス900などのコンピューティングデバイスの上で、(プロセッサ上での実行により)1つまたは複数のタスクを実行する、一連の実行可能命令に対応している。アプリケーションは、必ずしもではないが、典型的には、コンピューティングデバイスのユーザの指示で実行される。アプリケーションは、(アプリケーションの構成物によって意図された)種々のタスクを実行する際に、コンピューティングデバイス上で利用可能な機能を組み合わせる。「アプリ」という用語は、時にアプリケーションの短縮語として用いられるが、そうでない場合、アプリも同様に1つまたは複数のタスクを実行するための一連の実行可能命令に対応している。ただし、アプリケーションとは対照的に、アプリは、必ずしもではないが典型的には、しばしば範囲の狭いトピック/機能に絞られたタスクの限定された集合を対象とする。アプリの範囲は、典型的には、アプリケーションのそれよりも制限されているため、アプリは、典型的には、システムリソースに関して必要なフットプリントがより小さく、リソースが限られているコンピューティングデバイスによる実行により適している場合が多い。アプリ/アプリケーション918は、典型的にはメモリ904に格納されているが、例示のみを意図すると、メモリ904とは無関係に呼び出される。
[0055] 例示的なコンピューティングデバイス900は、センサ918もまた備えている。典型的には、センサは、コンピューティングデバイス900に関連する特定のイベントを検知する、種々のハードウェアデバイスに対応している。センサ918には、限定ではなく例示を意図するものであるが、加速度センサ、ハプティックセンサ、静電容量センサ、音声センサ、光ファイバセンサ、タイマ、温度センサ、電力センサ(AC/DCセンサ、電圧センサなど)、無線信号センサ、ジオロケーションセンサ、磁気センサ、高度計、気圧センサなどが含まれる。センサは、インターネットルーティングデータ、HTTPリクエスト/レスポンスのインスペクション、MACアドレス、セルラ/無線三角測量などの通信情報に依拠しうる。当業者であれば理解するように、好適に構成されたコンピューティングデバイス900は、ハードウェアセンサ918の種々の組合せとすることができる。さらに、これらのハードウェアセンサおよび(以下で検討する)ソフトウェアセンサは、ユーザコンテキストをモニタする際に統合フレームワーク220を経由して用いられる。前述のように、統合フレームワーク220は、拡張可能なイベント/アクションフレームワークである。すなわち、このフレームワークは、(センサ918を含む)1つまたは複数のセンサに関して発生するイベントを検出し、これに応答して、検出したイベントに関連づけられたアクションをコンピューティングデバイス900上で実行する。このフレームワークは、ソフトウェアセンサを含むセンサを追加できるという点、および検知されるイベントに対してサブスクライバがサブスクライブできるという点で拡張可能である。統合フレームワーク220は、統合レジストリを含む自身の情報を統合データストア914に格納する。
[0056] 統合フレームワーク220に関しては、当業者は、このフレームワークを実装する種々の代替例が存在しうることを理解するであろうが、一実施形態において、フレームワーク220は、Node.js DevelopersのNode.jsテクノロジー上に構築されたバックグラウンドサービスとして実装される。Node.jsテクノロジーは、センサ918などのハードウェアセンサに加えてソフトウェアセンサとインターフェイスをとれるように、拡張可能性と堅牢性を備えている。アプリ/アプリケーション916を含むアプリおよびアプリケーションは、JavaScript(登録商標)コードによりNode.jsプロセスとインターフェイスをとる。言うまでもなく、統合フレームワーク220はNode.js以外のテクノロジーを用いても実装できるが、Node.jsを用いると有利であるのは、コンピューティングデバイス900などのホストコンピューティングデバイスにおけるフットプリントが比較的小さく、多種多様なオペレーティングシステムプラットフォーム上に配備できるような構成を有しており、JavaScript(登録商標)プログラミング言語は幅広くサポートされているためである。
[0057] 例示的なコンピューティングデバイス900の種々のコンポーネントに関しては、当業者であれば理解するであろうが、これらのコンポーネントは、コンピューティングデバイスのメモリに格納された実行可能なソフトウェアモジュールとしても、(SoC−システムオンチップを含む)ハードウェアモジュールとしても、または両者の組合せとしても実装することができる。さらに、種々のコンポーネントの各々は、1つまたは複数のコンピュータシステムと連携して動作する、独立した協調的なプロセスまたはデバイスとして実装することができる。言うまでもなく、例示的なコンピューティングデバイス900に関してこれまで説明してきた種々のコンポーネントは、説明された種々の機能を実行するための論理コンポーネントと見なすべきであることもさらに理解されたい。当業者であれば容易に理解できるように、論理的なコンポーネントおよび/またはサブシステムは、個別の実コンポーネントと直接、一対一に対応していても、対応していなくてもよい。実実施形態において、各コンピュータシステムの種々のコンポーネントは、互いに組み合わされても、複数の実コンポーネントにわたって分散されてもよいし、かつ/またはコンピュータネットワーク上の協調プロセスとして実装されてもよい。
[0058] 開示される主題の種々の新規な態様について説明してきたが、これらの態様は例示であり、限定するものとして解釈すべきではないことを理解されたい。種々の態様の変形例および代替例は、開示される主題の範囲から逸脱することなく実施されうる。

Claims (11)

  1. 少なくともプロセッサとメモリとを備えるユーザのコンピューティングデバイスの上で実行する統合フレームワークによって実装されるコンピュータ実施方法であって、
    前記統合フレームワークで前記ユーザからサービスを求める要求を受け取ることであって、前記サービスは、前記統合フレームワーク以外のサービスであり、(i)前記ユーザのコンピューティングデバイス、または(ii)前記ユーザのコンピューティングデバイスの外部にあるデバイスのうちの少なくとも1つに存在する、ことと、
    前記統合フレームワークを用いて、(i)前記ユーザのコンピューティングデバイス、または(ii)前記ユーザのコンピューティングデバイスの外部にあるデバイスのうちの少なくとも1つに存在する複数のサービスのレジストリにアクセスすることであって、前記複数のサービスの各々が信頼レベルの階層の信頼レベルに関連づけられていることと、
    信頼レベルの前記階層に従い、前記信頼レベルの最も信頼できるレベルから開始して、より信頼できない信頼レベルのプロバイダが探索されるよりも前に、より信頼できる信頼レベルに関連づけられたプロバイダが探索されるように、前記要求されたサービスのプロバイダが見つかるまで、または前記要求されたサービスのプロバイダを見つけることなく前記階層のすべてのレベルが探索されるまで、前記要求されたサービスのプロバイダを前記レジストリで反復的に探索することと、
    前記要求されたサービスのプロバイダを見つけると、前記統合フレームワークから前記要求されたサービスの前記見つかったプロバイダに対し命令が発行され、前記要求に応答して前記見つかったプロバイダが前記サービスを前記ユーザのコンピューティングデバイスに提供することを要求することと
    を含む、コンピュータ実施方法。
  2. 前記複数のサービスのプロバイダのうち最も信頼できる信頼レベルに関連づけられたプロバイダが、前ユーザのコンピューティングデバイスの上で利用可能なプロバイダである、請求項1に記載のコンピュータ実施方法。
  3. 前記複数のサービスのプロバイダのうち2番目に信頼できる信頼レベルに関連づけられたプロバイダが、兄弟コンピューティングデバイス上で利用可能なプロバイダである、請求項2に記載のコンピュータ実施方法。
  4. 記複数のサービスのプロバイダのうち3番目に信頼できる信頼レベルに関連づけられたプロバイダが、前記関連づけられたユーザにアクセス権限があるネットワークのデバイスの上で利用可能なプロバイダである、請求項に記載のコンピュータ実施方法。
  5. 前記要求されたサービスが前記ユーザのコンピューティングデバイス上で利用可能な第1のプロバイダおよび兄弟コンピューティングデバイス上で利用可能な第2のプロバイダから利用可能であり、かつ、前記方法が、
    1つまたは複数の基準に従い、前記サービスを前記第1のプロバイダと前記第2のプロバイダのいずれから取得すべきか評価することと、
    前記1つまたは複数の基準に従い、前記サービスを前記第2のプロバイダから取得すると決定すると、前記第2のプロバイダを前記要求されたサービスの前記見つかったプロバイダとして決定することとをさらに含む、請求項に記載のコンピュータ実施方法。
  6. 前記1つまたは複数の基準が、前記ユーザのコンピューティングデバイス上で利用可能な電力の決定、前記ユーザのコンピューティングデバイスおよび前記兄弟コンピューティングデバイスが利用可能なリソースの決定、または前記ユーザのコンピューティングデバイスが利用可能なネットワーク接続の決定のいずれか1つを含む、請求項に記載のコンピュータ実施方法。
  7. 少なくともプロセッサとメモリとを備えるコンピューティングシステムの上の統合フレームワークによって実行されるときに、請求項1からに関して上記に記載された方法のいずれか1つを実行するコンピュータ実行可能命令を担持する、コンピュータ可読媒体。
  8. プロセッサとメモリとを備えるコンピュータシステムであって、前記プロセッサが前記メモリに格納されている命令を、追加コンポーネントの一部としてまたは追加コンポーネントと共に実行し、前記追加コンポーネントが、
    各センサがサービスのプロバイダである、前記コンピュータシステム上に配置された複数のセンサと、
    各アプリがサービスのプロバイダである、前記コンピュータシステム上にインストールされた複数のアプリと、
    前記コンピュータシステム上のサービスのプロバイダのレジストリを維持する統合フレームワークであって、サービスの前記プロバイダが前記複数のセンサと前記複数のアプリとを含み、前記コンピュータシステムの外部のデバイスからのサービスの複数のプロバイダをさらに含み、前記レジストリ内のサービスの前記プロバイダの各々が信頼レベルの階層の信頼レベルに関連づけられ統合フレームワークと
    を含み前記プロセッサは、サービスを求める要求に応答して、前記統合フレームワークに、
    信頼レベルの前記階層に従い、前記信頼レベルの最も信頼できるレベルから開始して、より信頼できない信頼レベルのサービスのプロバイダが探索されるよりも前に、より信頼できる信頼レベルに関連づけられたサービスのプロバイダが探索されるように、前記要求されたサービスのプロバイダが見つかるまで、または前記要求されたサービスのプロバイダを見つけることなく前記階層のすべてのレベルが探索されるまで、前記要求されたサービスのプロバイダを前記レジストリで反復的に探索することと、
    前記要求されたサービスのプロバイダを見つけると、前記要求されたサービスの前記見つかったプロバイダに対、前記要求に応答して前記プロセッサに前記サービスを提供するように命令を発行ること
    行わせる命令を実行する、コンピュータシステム。
  9. 信頼レベルの前記階層の最も信頼できる信頼レベルに関連づけられたサービスのプロバイダが、前記コンピュータシステム上で利用可能なサービスのプロバイダであり、かつ、信頼レベルの前記階層の2番目に信頼できる信頼レベルに関連づけられたサービスのプロバイダが、兄弟コンピューティングデバイス上で利用可能なサービスのプロバイダである、請求項に記載のコンピュータシステム。
  10. 前記コンピュータシステムがユーザに関連づけられており、かつ、信頼レベルの前記階層の3番目に信頼できる信頼レベルに関連づけられたサービスのプロバイダが、前記関連づけられたユーザにアクセス権限があるネットワークのデバイスの上で利用可能なサービスのプロバイダである、請求項に記載のコンピュータシステム。
  11. 前記統合フレームワークが、前記要求されたサービスが前記コンピュータシステム上で利用可能なサービスの第1のプロバイダおよび兄弟コンピュータシステム上で利用可能なサービスの第2のプロバイダから利用可能であると決定するように構成され、
    1つまたは複数の基準に従い、前記サービスをサービスの前記第1のプロバイダとサービスの前記第2のプロバイダのいずれから取得すべきか評価することと、
    前記1つまたは複数の基準に従い、前記サービスをサービスの前記第2のプロバイダから取得すると決定すると、前記第2のプロバイダを前記要求されたサービスの前記見つかったプロバイダとして決定することとを行うようにさらに構成された、請求項10に記載のコンピュータシステム。
JP2016559978A 2014-04-30 2015-04-24 サービスのクライアント側統合フレームワーク Active JP6603238B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/265,656 US9560055B2 (en) 2014-04-30 2014-04-30 Client-side integration framework of services
US14/265,656 2014-04-30
PCT/US2015/027406 WO2015167940A1 (en) 2014-04-30 2015-04-24 Client-side integration framework of services

Publications (2)

Publication Number Publication Date
JP2017520035A JP2017520035A (ja) 2017-07-20
JP6603238B2 true JP6603238B2 (ja) 2019-11-06

Family

ID=53059489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016559978A Active JP6603238B2 (ja) 2014-04-30 2015-04-24 サービスのクライアント側統合フレームワーク

Country Status (11)

Country Link
US (2) US9560055B2 (ja)
EP (1) EP3138259B1 (ja)
JP (1) JP6603238B2 (ja)
KR (1) KR102296097B1 (ja)
CN (2) CN106464675B (ja)
AU (2) AU2015253520B2 (ja)
BR (1) BR112016023700A2 (ja)
CA (1) CA2944031C (ja)
MX (1) MX361226B (ja)
RU (1) RU2693637C2 (ja)
WO (1) WO2015167940A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150348126A1 (en) * 2014-05-30 2015-12-03 Transilio, Inc. Personalized user engagement system using operating system notification script
US10673852B2 (en) * 2014-12-23 2020-06-02 Mcafee, Llc Self-organizing trusted networks
US10341384B2 (en) * 2015-07-12 2019-07-02 Avago Technologies International Sales Pte. Limited Network function virtualization security and trust system
CN105827691B (zh) * 2016-03-08 2019-08-13 中国联合网络通信集团有限公司 物联网设备控制方法及装置
US10063666B2 (en) * 2016-06-14 2018-08-28 Futurewei Technologies, Inc. Modular telecommunication edge cloud system
US9936360B1 (en) 2017-06-28 2018-04-03 Motorola Solutions, Inc. Apparatus and method for real-time public safety evidentiary data collection
US9998895B1 (en) 2017-06-28 2018-06-12 Motorola Solutions, Inc. Apparatus and method for real-time public safety evidentiary data collection
US10306341B2 (en) 2017-06-28 2019-05-28 Motorola Solutions, Inc. Method and apparatus for determining sensor data reliability at an incident scene for real-time and post-incident processing
US10871950B2 (en) 2019-05-16 2020-12-22 Microsoft Technology Licensing, Llc Persistent annotation of syntax graphs for code optimization
US11536476B2 (en) 2020-05-12 2022-12-27 Johnson Controls Tyco IP Holdings LLP Building system with flexible facility operation
US20210407690A1 (en) 2020-06-25 2021-12-30 Johnson Controls Technology Company Systems and methods for a trusted consumer service
WO2022075878A1 (ru) * 2020-10-08 2022-04-14 Общество С Ограниченной Ответственностью "Альбато" Способ реализации приложения встраиваемых приложений
CN112965765B (zh) * 2021-02-02 2024-01-16 深圳市优必选科技股份有限公司 服务调用方法、装置、电子设备及存储介质
CN114979280B (zh) * 2022-05-27 2024-04-19 中国银行股份有限公司 注册中心访问方法及装置
US20230418969A1 (en) * 2022-06-22 2023-12-28 International Business Machines Corporation Data privacy workload distribution in a multi-tenant hybrid cloud computing environment
US11809918B1 (en) * 2022-06-22 2023-11-07 Contentful GmbH App actions in a content management system

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021403A (en) 1996-07-19 2000-02-01 Microsoft Corporation Intelligent user assistance facility
US6141754A (en) * 1997-11-28 2000-10-31 International Business Machines Corporation Integrated method and system for controlling information access and distribution
US6230313B1 (en) 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
WO2001045005A1 (en) 1999-12-14 2001-06-21 Yodlee.Com, Inc. Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
JP4759269B2 (ja) 2003-05-16 2011-08-31 株式会社エヌ・ティ・ティ・ドコモ 個別サービス選択
US20050097087A1 (en) 2003-11-03 2005-05-05 Punaganti Venkata Murali K. System and method for providing a unified framework for service discovery
KR100576935B1 (ko) 2003-12-22 2006-05-10 한국전자통신연구원 온톨로지 기반의 애드혹 서비스 검색 시스템 및 방법
US7664081B2 (en) 2004-12-22 2010-02-16 Nokia Corporation Wireless gateway for enabling wireless devices to discover and interact with various short-range services/devices
US20060235795A1 (en) * 2005-04-19 2006-10-19 Microsoft Corporation Secure network commercial transactions
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US20070083378A1 (en) 2005-10-11 2007-04-12 Microsoft Corporation Secure application programming interface
US7721322B2 (en) * 2005-11-22 2010-05-18 Oracle International Corporation Enterprise service-to-service trust framework
US8131718B2 (en) 2005-12-13 2012-03-06 Muse Green Investments LLC Intelligent data retrieval system
US7613426B2 (en) 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
EP1835417A1 (en) 2006-03-13 2007-09-19 Alcatel Lucent Web service with associated lexical tree
US20070264991A1 (en) 2006-05-15 2007-11-15 Microsoft Corporation Services near me: discovering and connecting to available wireless services utilizing proximity discovery
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8560400B1 (en) 2006-12-28 2013-10-15 Sprint Communications Company L.P. Context-based service delivery
US20110182205A1 (en) 2006-12-28 2011-07-28 Martin Gerdes Method and apparatus for service discovery
CN101072116B (zh) * 2007-04-28 2011-07-20 华为技术有限公司 业务选择方法、装置、系统及客户端应用服务器
US20080313639A1 (en) 2007-06-13 2008-12-18 Krishna Kumar Policy based scheduling of software applications
WO2009021265A1 (en) 2007-08-16 2009-02-19 Indaran Proprietary Limited Method and apparatus for presenting content
US20090063686A1 (en) 2007-08-30 2009-03-05 Schmidt Brian K Automated service discovery and dynamic connection management
EP2043009A1 (en) 2007-09-28 2009-04-01 Alcatel Lucent Method for building semantic referential gathering semantic service descriptions
WO2009060263A1 (en) 2007-11-08 2009-05-14 Nokia Corporation Connectivity architecture for service discovery
US7987163B2 (en) 2008-02-12 2011-07-26 Bae Systems Information And Electronic Systems Integration Inc. Apparatus and method for dynamic web service discovery
CN100591015C (zh) * 2008-03-11 2010-02-17 南京邮电大学 基于信任模型的动态访问控制方法
US20100009703A1 (en) 2008-07-14 2010-01-14 Wuiper, Inc. System and method for real world interface to online social networks
US8572691B2 (en) * 2008-07-17 2013-10-29 International Business Machines Corporation Selecting a web service from a service registry based on audit and compliance qualities
US8649776B2 (en) 2009-01-13 2014-02-11 At&T Intellectual Property I, L.P. Systems and methods to provide personal information assistance
US20100281427A1 (en) 2009-04-30 2010-11-04 Riddhiman Ghosh Selecting one of plural user profile personae based on context
US8612435B2 (en) 2009-07-16 2013-12-17 Yahoo! Inc. Activity based users' interests modeling for determining content relevance
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
JP5564968B2 (ja) * 2010-02-05 2014-08-06 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
KR101533876B1 (ko) * 2010-03-05 2015-07-03 인터디지탈 패튼 홀딩스, 인크 장치에 대한 보안을 제공하는 방법 및 장치
US8340651B1 (en) 2010-03-26 2012-12-25 Sprint Communications Company L.P. Reconciling contact information between users
CN101984590A (zh) * 2010-03-29 2011-03-09 北京邮电大学 一种基于信任证书的网格业务资源分配和调度方法
US8316038B2 (en) 2010-06-02 2012-11-20 Hewlett-Packard Development Company, L.P. Collecting and analyzing user activities on mobile computing devices
US8386929B2 (en) 2010-06-22 2013-02-26 Microsoft Corporation Personal assistant for task utilization
WO2012000553A1 (en) 2010-07-01 2012-01-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for service sharing
EP2410441A1 (en) * 2010-07-16 2012-01-25 Research In Motion Limited Registration of applications and unified media search
CN101902474B (zh) * 2010-07-21 2012-11-14 清华大学 基于标签替换的自治域间IPv6真实源地址验证方法
US9122744B2 (en) 2010-10-11 2015-09-01 Next It Corporation System and method for providing distributed intelligent assistance
US8478306B2 (en) 2010-11-10 2013-07-02 Google Inc. Self-aware profile switching on a mobile computing device
US20120209413A1 (en) 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
AP3764A (en) * 2011-05-27 2016-07-31 Nokia Corp Method and apparatus for sharing connectivity settings via social networks
WO2012166213A1 (en) * 2011-06-03 2012-12-06 Telecommunication Systems, Inc. Crowd-sourced resource selection in a social network
US20120316956A1 (en) 2011-06-07 2012-12-13 Microsoft Corporation Client-Server Joint Personalization for Private Mobile Advertising
US8417233B2 (en) 2011-06-13 2013-04-09 Mercury Mobile, Llc Automated notation techniques implemented via mobile devices and/or computer networks
US20120323794A1 (en) 2011-06-15 2012-12-20 Microsoft Corporation Monetization strategies in privacy-conscious personalization
US9026814B2 (en) 2011-06-17 2015-05-05 Microsoft Technology Licensing, Llc Power and load management based on contextual information
US8838072B2 (en) 2011-08-11 2014-09-16 Samsung Electronics Co., Ltd. Apparatus and method for mobile personal assistant
US20130080184A1 (en) 2011-09-23 2013-03-28 Alliance Health Networks, Inc. Managing healthcare information for members of a social network
US9100453B2 (en) * 2011-10-08 2015-08-04 Broadcom Corporation Social device security in a social network
US20130159377A1 (en) 2011-12-15 2013-06-20 AsystMe, LLC Proactive automated personal assistant
US8718726B2 (en) 2012-03-16 2014-05-06 Apple Inc. Methods and apparatus for reducing call drop rate
US20140033204A1 (en) 2012-07-26 2014-01-30 Qnx Software Systems Limited Background Services Launcher For Dynamic Service Provisioning
US20140040171A1 (en) 2012-07-31 2014-02-06 Triapodi Ltd Content-based demographic estimation of users of mobile devices and usage thereof
US9495537B2 (en) 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US20140108307A1 (en) 2012-10-12 2014-04-17 Wipro Limited Methods and systems for providing personalized and context-aware suggestions
WO2014070878A1 (en) * 2012-11-01 2014-05-08 Wyngspan, Inc. Systems and methods of establishing and measuring trust relationships in a community of online users
US9354790B2 (en) 2013-01-14 2016-05-31 International Business Machines Corporation Dynamically selecting and ordering facets and facet values in a user interface based on user preference
US20140236935A1 (en) * 2013-02-20 2014-08-21 Thursday Market, Inc. Service Provider Matching
US11061973B2 (en) 2013-06-14 2021-07-13 Microsoft Technology Licensing, Llc Incorporating user usage of consumable content into recommendations

Also Published As

Publication number Publication date
MX2016014093A (es) 2017-02-09
CN106464675A (zh) 2017-02-22
CA2944031C (en) 2023-08-01
RU2016142285A (ru) 2018-04-27
AU2019201885A1 (en) 2019-04-11
CN110753046A (zh) 2020-02-04
EP3138259A1 (en) 2017-03-08
RU2016142285A3 (ja) 2018-11-06
RU2693637C2 (ru) 2019-07-03
AU2015253520A1 (en) 2016-10-06
US9781128B2 (en) 2017-10-03
CN110753046B (zh) 2021-11-30
EP3138259B1 (en) 2018-01-31
KR102296097B1 (ko) 2021-09-01
KR20160145633A (ko) 2016-12-20
CA2944031A1 (en) 2015-11-05
US9560055B2 (en) 2017-01-31
BR112016023700A2 (pt) 2017-08-15
US20150319176A1 (en) 2015-11-05
MX361226B (es) 2018-11-29
US20170099298A1 (en) 2017-04-06
CN106464675B (zh) 2019-11-12
AU2019201885B2 (en) 2020-07-02
WO2015167940A1 (en) 2015-11-05
AU2015253520B2 (en) 2018-12-20
JP2017520035A (ja) 2017-07-20

Similar Documents

Publication Publication Date Title
JP6603238B2 (ja) サービスのクライアント側統合フレームワーク
KR102267270B1 (ko) 인센티브 기반 앱 실행 기법
KR102271786B1 (ko) 개인 데몬의 훈련 가속화
US9842228B2 (en) Local personal daemon
US20150373144A1 (en) Personal Daemon Interaction through Escalating Disclosure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191010

R150 Certificate of patent or registration of utility model

Ref document number: 6603238

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