JP2017033397A - 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム - Google Patents

操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム Download PDF

Info

Publication number
JP2017033397A
JP2017033397A JP2015154326A JP2015154326A JP2017033397A JP 2017033397 A JP2017033397 A JP 2017033397A JP 2015154326 A JP2015154326 A JP 2015154326A JP 2015154326 A JP2015154326 A JP 2015154326A JP 2017033397 A JP2017033397 A JP 2017033397A
Authority
JP
Japan
Prior art keywords
unit
data
application execution
event
information sharing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015154326A
Other languages
English (en)
Inventor
寿之 大亦
Toshiyuki Omata
寿之 大亦
千草 山村
Chigusa Yamamura
千草 山村
馬場 秋継
Akitsugu Baba
秋継 馬場
松村 欣司
Kinji Matsumura
欣司 松村
上原 道宏
Michihiro Uehara
道宏 上原
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.)
Japan Broadcasting Corp
Original Assignee
Nippon Hoso Kyokai NHK
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 Nippon Hoso Kyokai NHK filed Critical Nippon Hoso Kyokai NHK
Priority to JP2015154326A priority Critical patent/JP2017033397A/ja
Publication of JP2017033397A publication Critical patent/JP2017033397A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】ユーザーによる様々な種類の操作を収集して共有し、アプリケーション側で、統一的な枠組みで利用することができるようにする。
【解決手段】操作情報共有装置における受信部は、操作に基づいて発生した操作データを操作入力装置から受信する。入力装置識別部は、操作データの送信元である操作入力装置を識別して識別情報を出力する。データ変換部は、操作データに入力装置識別部によって与えられた前記識別情報を付加し、操作イベントとして出力する。操作イベント送出部は、データ変換部から出力される操作イベントを、ネットワークを介して送出する。そして、アプリ実行装置側では、この操作イベントを受信するとともに、ジェスチャーに変換する。
【選択図】図2

Description

本発明は、操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラムに関する。
近年、スマートフォン、タブレット、スマートウォッチ、スマートテレビなどネットワークに接続して利用するデバイスが増えている。さらには、IoT(Internet of Things)の普及に伴い、今後さらに多種多様なデバイスの利活用が想定される。スマートフォン、タブレット、スマートウォッチなどのデバイスでは、ユーザーインタフェースとしてタッチスクリーンが一般的に利用されているが、今後は加速度センサーやイメージセンサーなど様々なセンサーのインタフェースとしての利用も予想される。多様なネットワーク対応デバイスが普及すると、個人ユーザーがそれぞれのデバイスの様々なユーザーインタフェースを用いてサービスにアクセスしながらも、複数のユーザーがそのサービスを一緒に利用するという状況が想定される。
このような状況下において、多様なユーザーインタフェースで入力された多様なユーザー操作のデータを共有して利用するための技術や、ネットワーク接続機能を有するデバイスと有しないデバイスからのデータを一元的に管理するための技術が求められる。
特許文献1には、手書きのストローク情報を複数のデバイスから収集し、収集した情報を複数のデバイス上共有する技術が記載されている。
特開2014−110061号公報
しかしながら特許文献1に記載された技術では、共有するユーザー操作が手書きのストロークに限定されており、多様なユーザーインタフェースを用いた多様なユーザー操作に対応できない。
本発明は、上記の課題認識に基づいて行なわれたものであり、様々な種類の操作を収集して共有し、利用することのできる操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラムを提供するものである。
[1]上記の課題を解決するため、本発明の一態様による操作情報共有装置は、ユーザーによる操作に基づいて発生した操作データを操作入力装置から受信する受信部と、前記操作データの送信元である操作入力装置を識別して識別情報を出力する入力装置識別部と、前記操作データに前記入力装置識別部によって与えられた前記識別情報を付加し、操作イベントとして出力するデータ変換部と、前記データ変換部から出力される前記操作イベントを、ネットワークを介して送出する操作イベント送出部と、を具備することを特徴とする。
[2]また、本発明の一態様は、上記の操作情報共有装置において、前記データ変換部は、同一の前記操作入力装置からの同一種別の操作データを連続的に受け取ったときには、当該一連の操作に関して、操作開始、操作中、操作終了のいずれかを表す情報を付加して、前記操作イベントとして出力する、ことを特徴とする。
[3]また、本発明の一態様は、上記の操作情報共有装置において、前記受信部は、前記操作データを、ネットワーク経由で、またはネットワークを経由せずに、いずれでも受信できる、ことを特徴とする。
[4]また、本発明の一態様によるアプリ実行装置は、アプリケーションを実行するためのアプリケーション実行部と、外部装置との間で通信コネクションを確立して、ユーザーによる操作に基づいて発生した操作データと当該操作データの送信元である操作入力装置を識別するための識別情報とを含んだ操作イベントを、前記外部装置から受信する操作イベント受信部と、を具備することを特徴とする。
[5]また、本発明の一態様は、上記のアプリ実行装置において、前記操作イベント受信部が受信した前記操作イベントに基づいてジェスチャーの種別を判定し得られたジェスチャー種別の情報を、前記アプリケーション実行部において実行される前記アプリケーションに提供するジェスチャー変換部、をさらに具備することを特徴とする。
[6]また、本発明の一態様は、上記のアプリ実行装置において、前記ジェスチャー変換部は、前記操作イベントに基づいて前記ジェスチャーの種別を判定するためのパラメーターを設定可能とする、ことを特徴とする。
[7]また、本発明の一態様は、ユーザーによる操作に基づいて発生した操作データを送信する操作入力装置と、上記のいずれかの操作情報共有装置と、上記のいずれかのアプリ実行装置と、を具備することを特徴とする操作情報共有システムである。
[8]また、本発明の一態様は、上記のいずれかの操作情報共有装置と、上記のいずれかのアプリ実行装置と、の機能を備える情報処理装置である。
[9]また、本発明の一態様は、コンピューターを、上記のいずれかの操作情報共有装置として機能させるためのプログラムである。
[10]また、本発明の一態様は、アプリケーションを実行するためのアプリケーション実行部を備えるコンピューターを、上記のいずれかのアプリ実行装置として機能させるためのプログラム。
本発明によれば、多様なユーザーインタフェースを持つ多様な操作入力装置(デバイス)におけるユーザー操作に関する情報を、操作情報共有装置が取得し、複数のアプリ実行装置(デバイス)に送出する。アプリ実行装置は、操作イベントを受信できる。
アプリ実行装置における操作イベント受信部をプログラムで実現する場合には、そのプログラムを組み込んだアプリケーション(例えば、JavaScript(登録商標)による実行コードを含んだウェブアプリケーション)を、様々なアプリ実行装置で実行させることができる。これにより、アプリ実行装置は、他の装置(操作入力装置)の操作データを利用するアプリケーションを実現できる。
操作情報共有装置が、ネットワークに接続されていない操作入力装置からの操作データも処理できる場合には、ネットワーク接続非対応のセンサーデバイスも操作入力装置として用いることができる。
アプリ実行装置におけるジェスチャー変換部が、ジェスチャーの種別を判定するためのパラメーターを設定可能とする場合には、サービスやデバイスに応じて適切な値を柔軟に設定することができる。
本発明の実施形態による操作情報共有システムの概略構成を示すブロック図である。 同実施形態による操作情報共有装置の概略機能構成を示すブロック図である。 同実施形態によるアプリ実行装置の概略機能構成を示すブロック図である。 同実施形態による操作データの構成とデータ例とを示す概略図である。 同実施形態による操作イベントのデータ構成とデータ例とを示す概略図である。 同実施形態による操作情報共有装置とアプリ実行装置との間でのデータ等のやり取りの概略手順を示すシーケンスチャートである。
[第1実施形態]
次に、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態による操作情報共有システムの概略構成を示すブロック図である。同図に示すように、操作情報共有システム1は、操作情報共有装置10と、単数または複数の操作入力装置11および12と、単数または複数のアプリ実行装置15とを含んで構成される。なお、「アプリ」はアプリケーションプログラムの略である。
操作情報共有装置10は、アプリ実行装置15の各々との間で、通信ネットワークを介して接続される。また、操作情報共有装置10は、操作入力装置12の各々との間で、通信ネットワークを介して接続される。また、操作情報共有装置10は、操作入力装置11の各々と、通信ネットワークを介さずに直接接続される。
操作情報共有装置10は、操作入力装置11や操作入力装置12から渡される操作入力の情報を集約し、ネットワークを介してそれらの情報を共有できるようにする装置である。操作情報共有装置10は、操作入力装置11や操作入力装置12から収集した操作データを処理し、通信ネットワークを介してアプリ実行装置15に供給する。操作情報共有装置10は、例えば、パーソナルコンピューター(PC)を用いて実現される。なお、操作情報共有装置10のより詳細な機能等については、後で別図を参照しながら詳述する。
操作入力装置11および12は、ユーザーによる操作に基づき、その操作の情報を取得または生成し、操作情報共有装置10に渡す。操作入力装置11および12は、ユーザーによる操作を検知するためのセンサーを備えている。ここで、センサーとは、例えば人の指等によるタッチを検出するタッチセンサーや、加速度を検出する加速度センサーや、その他のセンサーである。タッチセンサーや加速度センサー自体は、既存技術により実現されるものである。操作入力装置11および12は、例えば、それらのセンサーを備えたスマートフォン(スマホ)あるいはタブレット端末として構成される。あるいは、操作入力装置11および12は、それらのセンサーを備え、画像ないしは映像を表示するための表示装置(例えば、液晶表示装置や有機EL表示装置)として構成される。操作入力装置11および12は、ユーザーによる操作を検知すると、入力された操作データを操作情報共有装置10に送信する。操作入力装置11と12との相違点は、この操作データを操作情報共有装置10に送信する際のインタフェースである。操作入力装置11は、通信ネットワーク(例えば、インターネットプロトコルを用いたIPネットワーク)を介さず、直接、操作情報共有装置10と結合され、操作データを渡す。操作入力装置11は、例えば、USB(ユニバーサル・シリアル・バス)等のインタフェースを経由して、操作情報共有装置10と独自のプロトコルで通信する。一方、操作入力装置12は、通信ネットワーク(例えば、IPネットワーク)を介して、操作情報共有装置10との間でHTTP(ハイパーテキスト転送プロトコル)やウェブソケット(WebSocket)などといった標準的なネットワークプロトコルで通信する。
アプリ実行装置15は、ユーザーがサービスを利用するためのアプリ(アプリケーションプログラム)を実行する環境を備えた装置である。アプリのプラットフォームとして、例えば、AndroidやiOSなどの様々なものが考えられる。本実施形態においては、アプリ実行装置15は、ウェブブラウザの機能を備え、そのブラウザ上でウェブアプリを動作させることができるようになっている。ウェブアプリは、例えば、HTML(ハイパーテキストマークアップ言語)とJavaScript(ジャバスクリプト,登録商標)を用いて記述される。アプリ実行装置15が備えるウェブブラウザは、HTMLで記述された文書データを解釈して表示させたり、JavaScriptで記述された実行コードを実行させたりする機能を有している。アプリ実行装置15は、例えば、テレビ放送の受信機能を備えたテレビ受像機として構成される。あるいは、アプリ実行装置15は、スマートフォンやタブレット端末として構成される。
図1に記載される各装置(操作情報共有装置10、操作入力装置11、操作入力装置12、アプリ実行装置15)のうちのいずれかの複数の装置の機能をまとめて一つの装置として実現しても良い。一例として、アプリ実行装置15がテレビ受像機であり、操作入力装置11がそのテレビ受像機の表示部(液晶表示装置)に設けられたタッチセンサー付き小型デバイスであるといった形態が考えられる。ただし、複数の装置の機能をまとめて一つの装置として実現する組み合わせは、これに限定されない。
図2は、操作情報共有装置10の概略機能構成を示すブロック図である。図示するように、操作情報共有装置10は、操作入力装置インタフェース部101(受信部)と、ネットワーク入力インタフェース部102(受信部)と、操作イベント処理部110と、操作イベント送出部121と、ネットワーク出力インタフェース部125と、を含んで構成される。また、操作イベント処理部110は、データ変換部111と、入力装置識別部112と、を含んで構成される。以下に、これら各部の詳細について説明する。
操作入力装置インタフェース部101とネットワーク入力インタフェース部102は、それぞれ、ユーザーによる操作に基づいて発生した操作データを外部の操作入力装置から受信する受信部として機能する。つまり、受信部は、操作データを、ネットワーク経由で、またはネットワークを経由せずに、いずれの方法ででも受信できる。
操作入力装置インタフェース部101は、操作入力装置11と接続するためのインタフェース機能を有する。操作入力装置インタフェース部101が用いるインタフェースは、操作入力装置11と接続性が担保できるものである。操作入力装置インタフェース部101は、操作入力装置11から受信した操作データを、操作イベント処理部110に渡す。
ネットワーク入力インタフェース部102は、例えばIPネットワークを介して操作入力装置12からの操作データを受信するためのネットワークインタフェース機能を有する。ネットワーク入力インタフェース部102は、HTTPやウェブソケットなどといった標準的なネットワークプロトコルを用いて、転送されてくる操作データを受信する。そして、ネットワーク入力インタフェース部102は、操作入力装置12から受信した操作データを、操作イベント処理部110に渡す。
操作イベント処理部110は、操作入力装置インタフェース部101およびネットワーク入力インタフェース部102から操作データを受信する。そして、操作イベント処理部110は、受信した操作データを、操作イベント送出部121によって処理可能な形態のデータに変換する。操作イベント処理部110によって変換された後のデータを、以後、操作イベントと呼ぶ。操作イベント処理部110が受信する操作データと、操作イベント処理部110によって変換された後の操作イベントデータとについては、後で別図を参照しながら詳述する。
操作イベント送出部121は、操作イベント処理部110から渡される操作イベントを、ネットワーク出力インタフェース部125を経由してアプリ実行装置15に送出する。
具体的には、操作イベント送出部121は、データ変換部111から出力される操作イベントを、ネットワークを介して送出する。操作情報共有装置10からアプリ実行装置15にデータを送信するための通信プロトコルとして、例えば、標準的なウェブブラウザが対応しているウェブソケット(WebSocket)を用いる。そして、操作イベント送出部121は、アプリ実行装置15に含まれる操作イベント受信部181(後述)からからのリクエストを受信したときに、このリクエストに応答する。そして、このリクエストに基づいて、操作イベント送出部121は、両者間の接続が解除されるまでの間、通信路を確保するとともに、当該リクエストの送信元であるアプリ実行装置15に対して、操作イベントのデータを順次送出する。
なお、操作イベント送出部121と、アプリ実行装置15側の操作イベント受信部181との間の通信を行うために、上記ウェブソケット以外の通信プロトコルを適宜用いても良い。
ネットワーク出力インタフェース部125は、上記の操作イベント送出部121がアプリ実行装置15に対して操作イベントのデータを送信するためのインタフェース機能を備える。ネットワーク出力インタフェース部125は、上記のウェブソケットにより伝送されるデータを、より下位のプロトコルを用いて転送する。
なお、ネットワーク出力インタフェース部125の機能とネットワーク入力インタフェース部102の機能とを共通化しても良い。
前述の操作イベント処理部110は、データ変換部111と、入力装置識別部112とを含んで構成される。
データ変換部111は、受信した操作データに入力装置識別部112によって与えられる識別情報(操作入力装置を識別する情報)を付加し、操作イベントとして出力する。データ変換部111は、また、操作イベントの種別(event_type)を操作イベントに付加する。イベントの種別は、操作データの基となったセンサーの種別を表す情報を含むものである。例えば、タッチセンサーの場合、イベントの種別は、その操作が「touch」であることを表す情報を含む。また、操作入力装置から同一種別の操作データが連続的に入力された場合、種別として一連の操作開始、操作中、終了の情報を、操作の種別として付加する。例えば、タッチセンサーが検知した操作イベントであって、その一連の操作の開始時点における操作イベントに関しては、イベント種別は「touchstart」である。その一連の操作の操作中における操作イベントに関しては、イベント種別は「touchmove」である。その一連の操作の終了時点における操作イベントに関しては、イベント種別は「touchend」である。
入力装置識別部112は、操作データの送信元である操作入力装置を識別して識別情報を出力する。入力装置識別部112は、その識別情報をデータ変換部111に供給する。なお、入力装置識別部112は、操作入力装置のアドレス(例えば、IPアドレス)や、デバイス名等によって、あるいは操作入力装置との間で確立されているコネクションを識別する情報(例えば、コネクションの論理的な名前など)によって、操作入力装置を識別する。
図3は、アプリ実行装置の概略機能構成を示すブロック図である。図示するように、アプリ実行装置15は、ネットワークインタフェース部151と、ウェブブラウザ部160(アプリケーション実行部)と、提示部191と、を含んで構成される。アプリ実行装置15内のウェブブラウザ部160がアプリを実行させる。
ネットワークインタフェース部151は、アプリ実行装置15と操作情報共有装置10とが通信ネットワークを介して通信を行うための機能を備えている。
ウェブブラウザ部160は、アプリケーションを実行させる機能を備えている。アプリは、HTMLと、JavaScriptと、CSS(カスケーディング・スタイル・シート)とで構成される一般的なウェブアプリである。ウェブブラウザ部160は、ネットワークインタフェース部151を介して、外部の装置(操作情報共有装置10など)との間でデータの送受信を行える。
提示部191は、ウェブブラウザ部160から出力される画像や映像や音声などを外部のユーザーに対して提示する機能を備える。提示部191は、例えば、液晶ディスプレイ装置等の表示手段を備えるよう構成される。
なお、アプリ実行装置15をテレビ受像機として構成する場合、提示部191は、上記のアプリからの出力をユーザーに提示するとともに、放送信号から抽出された映像や音声をもユーザーに提示する。
ウェブブラウザ部160についてさらに詳細に説明する。
ウェブブラウザ部160は、HTML処理部171と、CSS処理部172と、JavaScript実行部180とを含んで構成される。さらに、JavaScript実行部180は、操作イベント受信部181とジェスチャー変換部182とを含んで構成される。
HTML処理部171は、HTMLで記述されたコンテンツを解釈し、テキストや画像や映像などを、定められた書式で画面等に配置する。なお、HTML処理部171がコンテンツ(テキストや画像や映像など)の配置を決定する際には、下記のCSS処理部172が決定する表示属性にも従う。
CSS処理部172は、階層化されたクラスごとに定義される属性を解決し、コンテンツ(テキストや画像や映像など)の提示のための属性(サイズや、位置や、色や、その他の属性)を決定する。
JavaScript実行部180は、JavaScriptによって記述された実行コードを、例えばインタープリター形式で実行する。JavaScriptのコードは、独立したファイルとして存在する場合もあり、またHTMLのファイルの中に埋め込まれる場合もある。
操作イベント受信部181は、操作情報共有装置10の操作イベント送出部121から送られてくる操作イベントのデータを受信する機能を備える。操作イベント受信部181は、ネットワークインタフェース部151を通して、操作イベント送出部121からの操作イベントを受信する。つまり、操作イベント受信部181は、外部装置との間で通信コネクションを確立して、ユーザーによる操作に基づいて発生した操作データと当該操作データの送信元である操作入力装置を識別するための識別情報とを含んだ操作イベントを、外部の操作情報共有装置10から受信する。
ジェスチャー変換部182は、操作イベント受信部181が受信した操作イベント(または、複数の操作イベントの列)を、所定のルールに基づいてジェスチャーに変換する。ここで、ジェスチャーとは、操作イベントや、時系列にしたがった一連の操作イベント列から解釈される、より高次元な操作の単位である。なお、ジェスチャーの詳細については後述する。つまり、ジェスチャー変換部182は、操作イベント受信部181が受信した操作イベントに基づいて、ジェスチャーの種別を判定し得られたジェスチャー種別の情報を、ウェブブラウザ部160において実行されるアプリケーションに提供する。
また、ジェスチャー変換部182は、操作イベントに基づいてジェスチャーの種別を判定するためのパラメーターを設定可能とするが、このパラメーターの詳細については後述する。
操作イベント受信部181とジェスチャー変換部182の各々は、一例として、プログラムの機能として実現される。
操作イベント受信モジュール(モジュールは、プログラムの論理的なまとまりの単位)をJavaScript実行部180上で実行することにより、操作イベント受信部181が機能する。操作イベント受信モジュールには、操作情報共有装置10より送出される操作イベントを受信するためのコードが記述されている。また、ジェスチャー変換モジュールをJavaScript実行部180上で実行することにより、ジェスチャー変換部182が機能する。ジェスチャー変換モジュールには、受信した操作イベントをジェスチャーに変換するためのコードが記述されている。
これらの操作イベント受信モジュールおよびジェスチャー変換モジュールは、例えば、アプリの一部として組み込まれる形で配布される。
図4は、操作データの構成とデータ例とを示す概略図である。同図に示す操作データは、操作入力装置(11または12)から、操作情報共有装置10に送られるデータである。また、この操作データは、操作情報共有装置10内の操作イベント処理部110が受け取るデータである。図示するデータ例は、操作入力装置(11または12)が備えるタッチセンサーによって得られる時系列のデータである。同図における1行分のデータが、ある一時点におけるタッチセンサーからの出力に対応している。各行は、idと、xと、yとの、3つのデータ項目を含んでいる。idは、指を識別する情報である。本例では、id=0という値が、第0番目の指によるタッチであることを表している。xは、タッチセンサーにおいて検出されたx座標の値を表す情報である。yは、そのタッチセンサーにおいて検出されたy座標の値を表す情報である。タッチセンサーは、xおよびyからなる2次元の座標により、タッチが検知された位置を示す。つまり、図示するデータは4行のデータを含んでいる。これらのデータは、id=0で識別される1本の指に関して、(x,y)=(100,200)という座標で表される位置においてタッチ操作を開始し、(x,y)=(103,200)の位置まで移動することを表している。
図5は、操作イベントのデータ構成とデータ例とを示す概略図である。同図に示す操作イベントは、操作情報共有装置10内の操作イベント処理部110が操作データを基に変換して生成するデータである。具体的には、操作イベント処理部110内のデータ変換部111がこのデータ変換処理を行う。
図示するデータ例において、キーワード「device」は、デバイス名を表す。本データ例においてデバイス名の値は「touchsensorA」である。このデバイス名の情報は、予め操作情報共有装置10に登録されていた情報に基づいて、データ変換部111が付加した情報である。このデバイス名は、入力装置識別部112に予め登録されている。そして、デバイスの接続中にはそのデバイスが操作情報共有装置によって認識されている。操作入力装置(11または12)からの操作データが操作イベント処理部110に入力された時点で、操作イベント処理部110は、デバイスを把握し適切なデバイス名を操作イベントに記述する。また、キーワード「event_type」は、操作イベントの種別を表す。操作イベントの種別は、センサーの種別(タッチセンサーや加速度センサーなど)ごとに定義されるものである。操作イベントの種別は、操作入力装置(11または12)側で宣言される場合と、操作情報共有装置10の入力装置識別部112においてデバイスと関連付けて登録しておく場合とがある。図示する例において、操作イベントの種別は、「touchstart」、「touchmove」、「touchend」の3種類である。「touchstart」はタッチの開始(操作開始)を表し、「touchmove」はタッチ操作によって指が移動している状況(操作中)であることを表し、「touchend」はタッチの終了(操作終了)を表す。操作入力装置(11または12)側からは、ユーザーの操作時には、操作データが時系列に(ほぼ一定時間間隔で)連続的に入力される。したがって、データ変換部111は、それらの時系列のデータが一連の動作であるか否かの判定も行う。つまり、データ変換部111は、同一の操作入力装置(11または12)からの同一種別の操作データを連続的に受け取ったときには、当該一連の操作に関して、操作開始、操作中、操作終了のいずれかを表す情報を付加して、操作イベントとして出力する。なお、ここで、同一種別の操作データとは、例えば、連続する操作がいずれも「タッチ操作」である場合などである。
なお、図5のデータの各行における「id」および「x,y」のデータは、図4にも示した操作データから引き継いだ情報である。
なお、操作データと操作イベントについて、ここではJSON(ジェイソン、JavaScript Object Notation)形式で記述されているが、他の記述形式を用いても構わない。
次に装置間での処理のシーケンスについて説明する。
図6は、操作情報共有装置10とアプリ実行装置15との間でのデータ等のやり取りの概略手順を示すシーケンスチャートである。以下、同図に沿って手順を説明する。
まずステップS1において、アプリ実行装置15側のウェブブラウザ部160は、アプリを起動する。そして、JavaScript実行部180は、JavaScriptのコードをロードする。
次にステップS2において、アプリ実行装置15側の操作イベント受信部181は、操作情報共有装置10側に対して、操作イベント取得リクエストを送る。そして、操作イベント受信部181は、操作情報共有装置10側からの応答を待つ。操作情報共有装置10側の操作イベント送出部121は、操作イベント受信部181から送られた操作イベント取得リクエストを受信する。
次にステップS3において、操作情報共有装置10側の操作イベント送出部121は、上記の操作イベント取得リクエストを送信してきたアプリ実行装置15を、送出先の一つとして登録する。これにより、当該アプリ実行装置は、操作イベントの送付先リストに加わる。より具体的には、操作情報共有装置10は、操作イベント取得リクエストを受理するとともに、アプリ実行装置15のIPアドレスなどデバイスを認識するための情報を登録し、ウェブソケットで操作イベントのデータを送信するための通信路を確立する。
次にステップS4において、操作情報共有装置10側の操作イベント送出部121は、ステップS2において受信した操作イベント取得リクエストに対する応答を、アプリ実行装置15側に対して送信する。この応答は、リクエスト完了通知と呼ばれる。このリクエスト完了通知は、アプリ実行装置15側がリクエストした操作イベントのデータを、そのアプリ実行装置15に対して送出する準備が完了したことを通知するものである。アプリ実行装置15側の操作イベント受信部181は、このリクエスト完了通知を受信する。そして、後続して送られてくるはずの操作イベントのデータを待つ。
次にステップS5とS6とS7の各ステップにおいて、操作情報共有装置側の操作イベント送出部121は、操作イベントのデータを、アプリ実行装置15に対して操作イベントのデータを送信する。そして、これらの各ステップにおいて、アプリ実行装置15側の操作イベント受信部181は、この操作イベントのデータを受信する。また、操作イベント受信部181は、受信した操作イベントのデータを順次、ジェスチャー変換部182に渡す。ジェスチャー変換部182は、操作イベントをジェスチャーに変換するべきタイミングが到来するまで、受け取った操作イベントを例えば待ち行列形式の記憶手段に一時的に保管しておく。
なお、ジェスチャー変換部182が操作イベントをジェスチャーに変換するべきタイミングであるか否かとは無関係に、操作情報共有装置10内の操作イベント送出部121は、操作イベントを次々にアプリ実行装置15に向けて送り続ける。
次にステップS8において、アプリ実行装置15側のジェスチャー変換部182は、その時点までに蓄積されている操作イベントの列を、ジェスチャーに変換するべきタイミングであることを判断する。そして、ジェスチャー変換部182は、蓄積されている操作イベントの列に基づいて、操作ジェスチャーを判定する。そして、ジェスチャー変換部182は、入力された操作イベント(の列)を変換した結果として、ジェスチャーを出力する。なお、操作イベントからジェスチャーへの変換の詳細については、後述する。
ステップS8においてジェスチャー変換部182によって操作イベントのジェスチャーへの変換が行われているか否かに関わらず、操作情報共有装置10側の操作イベント送出部121は、操作イベントを順次、送出していく。
同図においては、ステップS9において、またこのステップS9に後続する複数のステップの各々において、操作情報共有装置10側の操作イベント送出部121は、操作イベントのデータをアプリ実行装置15に向けて送出する。
そして、以後は、操作情報共有装置10とアプリ実行装置15との間の通信接続が終了するまで、操作イベント送出部121は、操作イベントを送り続ける。そして、アプリ実行装置15側のジェスチャー変換部182は、然るべきタイミングが来たときに、操作イベントをジェスチャーに変換して出力する処理を行う。
なお、上記の一連の処理において、ジェスチャー変換部182から出力される操作ジェスチャーのデータは、アプリ実行装置15で実行されているアプリの他の部分に渡される。ジェスチャー変換部182を含むアプリがJavaScriptのプログラムとして実行される場合には、ジェスチャー変換部182(ジェスチャー変換モジュール)は、関数戻り値として、あるいはプロセス間通信等の手段で、変換結果であるジェスチャーを他のモジュールに渡す。
上述したシーケンスでは、操作情報共有装置10と1台のアプリ実行装置15とのやりとりを説明したが、操作情報共有装置10は、複数のアプリ実行装置15に対して、同時並行的に操作イベントを送出することもできる。その場合、操作情報共有装置10は、アプリ実行装置15からの操作イベント取得リクエストを随時受け付け、そのアプリ実行装置15との通信路を確立し、操作イベントを送出する。その間、操作情報共有装置10は、他のアプリ実行装置15との間でも並行して同様の処理を行う。
次に、ジェスチャー変換部182によるジェスチャー判定の詳細について説明する。ジェスチャー変換部182は、受信した連続する操作イベントのデータに基づいて、操作の特徴量を抽出し、ジェスチャーを判定する。以下で、タッチ操作の操作イベントに基づいて、タップ、長押し、フリック、ピンチ、回転といったジェスチャーを判定する例を説明する。ジェスチャー変換部182は、特徴量を抽出するためのパラメーターを予め設定できるようになっている。サービスの種類やデバイスの種類などに応じてこのパラメーターの値を変更することが可能である。また、ジェスチャー変換部182は、判定の結果として、ジェスチャーの種別のほかに、付加的な値を返す。
(1)タップ
タップは、指先で一度触れる操作である。タップ操作に関するパラメーターは、1回のタップとして許容される操作時間(時間の長さの上限)と、1回のタップ中に許容されるx方向およびy方向それぞれの変位(変位の上限)である。ジェスチャー変換部182は、1回のタッチ操作が、パラメーターで指定される操作時間以下であり、且つ、その間の変位がパラメーターで許容される範囲内である時に、ジェスチャーの種別が「タップ」であると判定する。そして、ジェスチャー変換部182は、ジェスチャー種別「タップ」とともに、タップしたポイントを識別するIDと、タップしたポイントの座標(x,y)とを、戻り値として返す。
(2)長押し
長押しは、指先で所定時間以上押し続ける操作である。長押し操作に関するパラメーターは、長押しと判定されるための最低継続時間と、1回の長押し中に許容されるx方向およびy方向それぞれの変位(変位の上限)である。ジェスチャー変換部182は、タッチ操作が、パラメーターで指定される最低継続時間以上であり、且つ、その間の変位がパラメーターで許容される範囲内である時に、ジェスチャーの種別が「長押し」であると判定する。そして、ジェスチャー変換部182は、ジェスチャー種別「長押し」とともに、長押ししたポイントを識別するIDと、長押ししたポイントの座標(x,y)とを、戻り値として返す。
(3)フリック
フリックは、タッチセンサー面上に一旦置いた指をスライドさせて離す操作である。
フリック操作に関するパラメーターは、フリックとして許容される最大操作時間と、フリックとして許容される最小の変位量(x方向への変位、y方向への変位、またはx方向とy方向の変位を合成した変位量)である。ジェスチャー変換部182は、タッチ操作が、パラメーターで指定される最大操作時間以下であり、且つ、その間の変位がパラメーターで指定される最小変位量以上である時に、ジェスチャーの種別が「フリック」であると判定する。そして、ジェスチャー変換部182は、ジェスチャー種別「フリック」とともに、フリックしたポイントを識別するIDと、フリックした開始ポイントの座標(x,y)と、フリックによる変位量(dx,dy)を、戻り値として返す。
(4)ピンチ
ピンチは、2本の指を近づけたり離したりする操作である。ピンチ操作に関するパラメーターは、ピンチであると判定する最小の縮尺と、2点間のイベント発生の時間差として許容される最大時間である。なお、上記の縮尺とは、2本の指によるタッチの位置に関して、最も近づいているときの2点間の距離と、最も遠いときの2点間の距離との比率である。ジェスチャー変換部182は、2点におけるタッチの連続した操作であり、最も近づいているときの2点間の距離と最も遠いときの2点間の距離との比率がパラメーターで指定される縮尺以上であり、且つ、その2点におけるイベント発生の時間差がパラメーターで指定される許容最大時間以下である時に、ジェスチャーの種別が「ピンチ」であると判定する。そして、ジェスチャー変換部182は、ジェスチャー種別「ピンチ」とともに、ピンチしたポイントを識別するIDと、2点間の中心座標(x,y)と、ピンチ開始時における2点間の距離に対するピンチ終了時の2点間の距離の縮尺の値とを、戻り値として返す。
(5)回転
回転は、2本の指をタッチセンサー面に付けたまま面上で回転させる操作である。回転操作に関するパラメーターは、回転であると判定する最小の回転角度と、2点間のイベント発生の時間差として許容される最大時間である。なお、上記の回転角度とは、タッチしている2点を結ぶ直線の、回転開始時から回転終了時までの変位角の量である。ジェスチャー変換部182は、2点におけるタッチの連続した操作であり、回転角度がパラメーターで指定された最小回転角度以上であり、且つ、その2点におけるイベント発生の時間差がパラメーターで指定される許容最大時間以下である時に、ジェスチャーの種別が「回転」であると判定する。そして、ジェスチャー変換部182は、ジェスチャー種別「回転」とともに、回転したポイントを識別するIDと、2点間の中心座標(x,y)と、回転開始時の2点を結ぶ直線に対する回転終了時の2点を結ぶ直線の回転角度差とを、戻り値として返す。
次に、上述した実施形態に関して、複数の変形例を説明する。
[変形例1]
ジェスチャー変換部182をプログラムによって実現する場合、ジェスチャー種別ごとにモジュール化して、それらのモジュールをライブラリ等から選択してアプリケーションに組み込めるようにしても良い。また、ジェスチャー変換部がジェスチャーの判定に用いるためのパラメーターを、可変とすることができる。これらのパラメーターの値も、例えばアプリケーションごとに異なる値を設定するようにできる。これらにより、アプリケーション開発者に対して、利用するジェスチャーを取捨選択したり、柔軟に操作をハンドリングする手段を提供したりすることが可能となる。
[変形例2]
上記実施形態ではタッチセンサーによって検知されるタッチ操作を中心に説明した。タッチセンサー以外にも、例えば、加速度センサーや、画像センサーなどを用いて、操作をハンドリングすることができる。加速度センサーを用いる場合には、例えば、操作入力装置を傾ける操作や、操作入力装置を振ったり投げたりする操作などを検出して、ジェスチャーの種別としてアプリケーションに渡すことができる。画像センサーを用いる場合には、例えば、指を用いたサインや、身体によるポーズや、顔の表情などを操作として検出して、ジェスチャーの種別としてアプリケーションに渡すことができる。
[変形例3]
上記実施形態で説明した複数の装置の機能をまとめて、1台の装置として構成しても良い。例えば、操作入力装置(11または12)と、アプリ実行装置15との機能をまとめて1台の装置(デバイス、情報処理装置)として構成しても良い。また、例えば、操作入力装置(11または12)と、操作情報共有装置10との機能をまとめて1台の装置として構成しても良い。また、操作情報共有装置10とアプリ実行装置15との機能をまとめて1台の装置として構成しても良い。
[変形例4]
上記実施形態では、操作イベントを操作情報共有装置10側から送出して、それらの操作イベントに基づいてアプリ実行装置15側でジェスチャーへの変換を行っていた。代わりに、ジェスチャーの判定を操作情報共有装置10側で行い、判定されたジェスチャーの種別および付加的な値を、アプリ実行装置側に順次送出する形態としても良い。この場合、アプリ実行装置側では、操作イベント受信部181の代わりにジェスチャー受信部(不図示)を設けて、受信したジェスチャーの情報をアプリケーションに提供するようにする。
なお、上述した実施形態およびその変形例における操作情報共有装置、操作入力装置、アプリ実行装置の機能の全部または一部を、コンピューターで実現するようにしても良い。その場合、これらの機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、テレビ受像機や、インターネット端末や、それらの機能を複合した情報機器等に利用することができる。
1 操作情報共有システム
10 操作情報共有装置
11 操作入力装置
12 操作入力装置
15 アプリ実行装置
101 操作入力装置インタフェース部(受信部)
102 ネットワーク入力インタフェース部(受信部)
110 操作イベント処理部
111 データ変換部
112 入力装置識別部
121 操作イベント送出部
125 ネットワーク出力インタフェース部
151 ネットワークインタフェース部
160 ウェブブラウザ部(アプリケーション実行部)
171 HTML処理部
172 CSS処理部
180 JavaScript実行部
181 操作イベント受信部
182 ジェスチャー変換部
191 提示部

Claims (10)

  1. ユーザーによる操作に基づいて発生した操作データを操作入力装置から受信する受信部と、
    前記操作データの送信元である操作入力装置を識別して識別情報を出力する入力装置識別部と、
    前記操作データに前記入力装置識別部によって与えられた前記識別情報を付加し、操作イベントとして出力するデータ変換部と、
    前記データ変換部から出力される前記操作イベントを、ネットワークを介して送出する操作イベント送出部と、
    を具備することを特徴とする操作情報共有装置。
  2. 前記データ変換部は、同一の前記操作入力装置からの同一種別の操作データを連続的に受け取ったときには、当該一連の操作に関して、操作開始、操作中、操作終了のいずれかを表す情報を付加して、前記操作イベントとして出力する、
    ことを特徴とする請求項1に記載の操作情報共有装置。
  3. 前記受信部は、前記操作データを、ネットワーク経由で、またはネットワークを経由せずに、いずれでも受信できる、
    ことを特徴とする請求項1に記載の操作情報共有装置。
  4. アプリケーションを実行するためのアプリケーション実行部と、
    外部装置との間で通信コネクションを確立して、ユーザーによる操作に基づいて発生した操作データと当該操作データの送信元である操作入力装置を識別するための識別情報とを含んだ操作イベントを、前記外部装置から受信する操作イベント受信部と、
    を具備することを特徴とするアプリ実行装置。
  5. 前記操作イベント受信部が受信した前記操作イベントに基づいてジェスチャーの種別を判定し得られたジェスチャー種別の情報を、前記アプリケーション実行部において実行される前記アプリケーションに提供するジェスチャー変換部、
    をさらに具備することを特徴とする請求項4に記載のアプリ実行装置。
  6. 前記ジェスチャー変換部は、前記操作イベントに基づいて前記ジェスチャーの種別を判定するためのパラメーターを設定可能とする、
    ことを特徴とする請求項5に記載のアプリ実行装置。
  7. ユーザーによる操作に基づいて発生した操作データを送信する操作入力装置と、
    請求項1から3までのいずれか一項に記載の操作情報共有装置と、
    請求項4から6までのいずれか一項に記載のアプリ実行装置と、
    を具備することを特徴とする操作情報共有システム。
  8. 請求項1から3までのいずれか一項に記載の操作情報共有装置と、
    請求項4から6までのいずれか一項に記載のアプリ実行装置と、
    の機能を備える情報処理装置。
  9. コンピューターを、
    請求項1から3までのいずれか一項に記載の操作情報共有装置として機能させるためのプログラム。
  10. アプリケーションを実行するためのアプリケーション実行部を備えるコンピューターを、
    請求項4から6までのいずれか一項に記載のアプリ実行装置として機能させるためのプログラム。
JP2015154326A 2015-08-04 2015-08-04 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム Pending JP2017033397A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015154326A JP2017033397A (ja) 2015-08-04 2015-08-04 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015154326A JP2017033397A (ja) 2015-08-04 2015-08-04 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム

Publications (1)

Publication Number Publication Date
JP2017033397A true JP2017033397A (ja) 2017-02-09

Family

ID=57988197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015154326A Pending JP2017033397A (ja) 2015-08-04 2015-08-04 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP2017033397A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160044A (ja) * 2017-03-22 2018-10-11 富士ゼロックス株式会社 情報処理装置及びプログラム
WO2021246089A1 (ja) * 2020-06-01 2021-12-09 国立研究開発法人産業技術総合研究所 ジェスチャ認識装置、システム及びそのプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070234222A1 (en) * 2006-03-29 2007-10-04 Kabushiki Kaisha Toshiba Screen transmission device, screen display method and computer readable medium
US20110074713A1 (en) * 2009-09-30 2011-03-31 Sony Corporation Remote operation device, remote operation system, remote operation method and program
JP2014106807A (ja) * 2012-11-28 2014-06-09 Konica Minolta Inc データ処理装置、操作受付方法およびブラウジングプログラム
WO2014136380A1 (ja) * 2013-03-04 2014-09-12 株式会社デンソー タッチパネル操作装置及びタッチパネル操作装置における操作イベント判定方法
JP2015125614A (ja) * 2013-12-26 2015-07-06 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070234222A1 (en) * 2006-03-29 2007-10-04 Kabushiki Kaisha Toshiba Screen transmission device, screen display method and computer readable medium
JP2007265236A (ja) * 2006-03-29 2007-10-11 Toshiba Corp 画面送信装置および画面表示方法
US20110074713A1 (en) * 2009-09-30 2011-03-31 Sony Corporation Remote operation device, remote operation system, remote operation method and program
JP2011077863A (ja) * 2009-09-30 2011-04-14 Sony Corp 遠隔操作装置、遠隔操作システム、遠隔操作方法およびプログラム
JP2014106807A (ja) * 2012-11-28 2014-06-09 Konica Minolta Inc データ処理装置、操作受付方法およびブラウジングプログラム
WO2014136380A1 (ja) * 2013-03-04 2014-09-12 株式会社デンソー タッチパネル操作装置及びタッチパネル操作装置における操作イベント判定方法
JP2014170390A (ja) * 2013-03-04 2014-09-18 Denso Corp タッチパネル操作装置及びタッチパネル操作装置における操作イベント判定方法
JP2015125614A (ja) * 2013-12-26 2015-07-06 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160044A (ja) * 2017-03-22 2018-10-11 富士ゼロックス株式会社 情報処理装置及びプログラム
WO2021246089A1 (ja) * 2020-06-01 2021-12-09 国立研究開発法人産業技術総合研究所 ジェスチャ認識装置、システム及びそのプログラム
US11893161B2 (en) 2020-06-01 2024-02-06 National Institute Of Advanced Industrial Science And Technology Gesture recognition based on user proximity to a camera
JP7489048B2 (ja) 2020-06-01 2024-05-23 国立研究開発法人産業技術総合研究所 ジェスチャ認識装置、システム及びそのプログラム

Similar Documents

Publication Publication Date Title
US11122151B2 (en) Multi-protocol gateway for connecting sensor devices to cloud
US9268987B2 (en) Method of recognizing QR code in image data and apparatus and method for converting QR code in content data into touchable object
KR101733115B1 (ko) 원격 스크린내 콘텐츠 원격 제어 방법 및 장치
JP6368033B2 (ja) 端末、サーバ、および端末制御方法
JP2016015150A5 (ja)
JP2017526022A (ja) 対応機器の対象アプリケーションを操作するための方法及び機器
JP6120422B2 (ja) コミュニケーション支援装置、方法、及びコンピュータプログラム
WO2019105391A1 (zh) 无线局域网络的连接方法、设备及计算机可读存储介质
WO2022199434A1 (zh) 设备间目标传输方法、装置及电子设备
JP2017033397A (ja) 操作情報共有装置、アプリ実行装置、操作情報共有システム、情報処理装置、およびプログラム
US20170026617A1 (en) Method and apparatus for real-time video interaction by transmitting and displaying user interface correpsonding to user input
JP2017004473A (ja) 画面転送制御システム、画面転送制御プログラム及び画面転送制御方法
EP2843553A2 (en) Information processing terminal and control method therefor, and program
CN104506909A (zh) 一种捕屏遥控方法及装置
US20140085486A1 (en) Information processing terminal, information processing method, and apparatus control system
WO2018010222A1 (zh) 信息共享方法、信息共享装置和终端
CN109413257B (zh) 电子装置及其数据分享方法
US20190096130A1 (en) Virtual mobile terminal implementing system in mixed reality and control method thereof
US20210064396A1 (en) Remote operating system
CN113038251B (zh) 一种控制方法和控制装置
CN111913574A (zh) 用于控制设备的方法、装置、电子设备和计算机可读介质
JP5611380B2 (ja) 端末装置、入力制御方法、及びプログラム
JP5647714B1 (ja) 表示制御装置、表示制御方法、及びプログラム
JP2018006947A (ja) 通信装置、通信システム、及び通信プログラム
CN106033246B (zh) 一种数据传输方法及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180702

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191029