JP6358063B2 - 要求送信方法、情報処理装置、及びプログラム - Google Patents

要求送信方法、情報処理装置、及びプログラム Download PDF

Info

Publication number
JP6358063B2
JP6358063B2 JP2014244160A JP2014244160A JP6358063B2 JP 6358063 B2 JP6358063 B2 JP 6358063B2 JP 2014244160 A JP2014244160 A JP 2014244160A JP 2014244160 A JP2014244160 A JP 2014244160A JP 6358063 B2 JP6358063 B2 JP 6358063B2
Authority
JP
Japan
Prior art keywords
web application
gadget
external device
web
request
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
JP2014244160A
Other languages
English (en)
Other versions
JP2016110204A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014244160A priority Critical patent/JP6358063B2/ja
Priority to US14/954,000 priority patent/US10341346B2/en
Publication of JP2016110204A publication Critical patent/JP2016110204A/ja
Application granted granted Critical
Publication of JP6358063B2 publication Critical patent/JP6358063B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

本発明は、要求送信方法、情報処理装置、及びプログラムに関する。
スマートフォン等のスマート端末と連携可能な外部機器が増加している。スマート端末と連携可能な外部機器の一例として、スマート端末のカメラ機能、ストレージ機能、又はディスプレイ機能等拡張可能な周辺機器が挙げられる。以下、スマート端末と連携可能な外部機器を「ガジェット」という。
ガジェットをスマート端末に接続する際には認証が必要となる。例えば、無線LANタイプのガジェットであれば、ユーザによってスマート端末に手入力されるSSID及びパスワードを用いて認証が行われる。また、NFC(Near field communication)タッチや、同時ボタン方式によって認証が行われるガジェットも有る。認証に利用されたパスワードは、スマート端末とガジェットとの間で記憶され、再接続時には認証は不要となる。
他方において、ガジェットと接続してサービスを提供するアプリケーションに関して変化が起きている。例えば、アプリケーションの開発言語が、Java(登録商標)、Object−C、又はC++等のネイティブ(Native)言語から、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、及びJavaScript(登録商標)等にシフトしつつある。HTML、CSS、及びJavaScript(登録商標)等は、OS(Operating System)等のプラットフォームに対する依存度が低く、1つのソースコードで、複数のプラットフォームに対応することが可能だからである。なお、HTML、CSS、及びJavaScript(登録商標)等が構成するアプリケーションは、Webアプリケーション(以下、「Webアプリ」という。)と呼ばれている。Webアプリは、Hosted AppsとPackaged Web appsとに分類される。
Hosted Appsは、WebブラウザがWebサーバにアクセスすると、Webサーバから返信されるWebアプリである。一方、Packaged Web appsは、Webアプリを構成するHTML、CSS、及びJavaScript(登録商標)等のファイルが、パッケージという形式にまとめられて配布され、ユーザの端末のローカル環境にインストールされるWebアプリである。Packaged Web appsは、Webブラウザ上で動作する点において、Hosted Appsと共通する。但し、Packaged Web appsは、オフラインのWebアプリとして実現されることも可能である。以下において、単に「Webアプリ」として言及されるアプリケーションは、Packaged Web appsである。
Webアプリの開発言語とされているHTML、CSS、及びJavaScript(登録商標)等は、インターネット環境において発展してきた言語であるため、サービスAPI(Application Program Interface)の呼び出し等にIPアドレスが関わっている。ガジェットに関しても、このような背景に鑑みて、IPアドレスに基づくAPI(REST(Representational State Transfer)ベースのAPI)が公開されている。例えば、以下のURL(Uniform Resource Locator)は、それぞれ、ガジェットが公開しているAPIの一例である。
http://<ガジェットのipアドレス>/api3/ PW?x=<pwd>&m=1
http://<ガジェットのipアドレス>/api/1.0/
POSTメッセージで送るデータ {"method":"shot","params",[]}
特表2006−524973号公報 特開2010−152917号公報
無線LANタイプのガジェットのAPIは、無線LAN経由で呼び出される。したがって、WebアプリがガジェットのAPIを呼び出すためには、当該Webアプリには無線LANへのアクセス権が必要とされる。スマート端末においては、アプリケーションごとに、無線LANへのアクセス権がユーザによって設定される。但し、Webアプリの場合、その実行基盤であるWebブラウザがアクセス権の授与対象となる。したがって、無線LANへのアクセス権がWebブラウザに与えられていれば、Webブラウザ上で動作する全てのWebアプリがガジェットにアクセス可能となる。
しかしながら、或るガジェットへアクセス可能なWebアプリを、特定のWebアプリにのみ限定したい場合も考えられる。例えば、企業内において利用されるガジェット内に、企業情報等の機密情報が記憶されている場合、不特定のWebアプリに当該ガジェットへのアクセスが許可されてしまうと、機密情報の漏洩の虞がある。
Webアプリによる外部へのアクセスを制限するための一つの手法としてCSP(Content Security Policy)が有る。CSPでは、各Webアプリがアクセス可能なIPアドレスの一覧がホワイトリストとして設けられる。CSPは、Packaged Web Appsでも標準採用されている。そこで、CSPを用いて、或るガジェットへのアクセスを特定のWebアプリにのみ限定することが考えられる。すなわち、一部のWebアプリのホワイトリストに当該ガジェットのIPアドレスを含め、他のWebアプリのホワイトリストには当該IPアドレスを含めないことで、当該ガジェットにアクセス可能なWebアプリを、特定のWebアプリに限定することができる。
しかしながら、ガジェットによっては、そのIPアドレス体系が、スマート端末とガジェットとが接続するたびに変化する場合が有る。このようなガジェットのIPアドレスは、スマート端末との接続が完了するまで判明しない。したがって、CSPで保護されたWebアプリに関して、このようなガジェットへのアクセスを許可するためには、IPアドレスが判明するたびに(すなわち、接続が行われるたびに)当該IPアドレスが当該Webアプリのホワイトリストに設定される必要が有る。ホワイトリストの更新には、当該ホワイトリストに対応するWebアプリの停止が要求される。したがって、スマート端末と接続するガジェットの数が増加すると、Webアプリが停止する頻度が高くなり、スマート端末の操作性が低下する可能性が有る。
そこで、一側面では、Webアプリケーションと外部機器との連携を円滑化すること目的とする。
一つの案では、要求送信方法は、1以上のWebアプリケーションがインストールされたコンピュータが、無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定し、検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成し、前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当て、前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する、処理を実行する。
一側面によれば、Webアプリケーションと外部機器との連携を円滑化することができる。
本発明の実施の形態におけるシステム構成例を示す図である。 本実施の形態におけるユーザ端末のハードウェア構成例を示す図である。 本発明の実施の形態における連携管理サーバ及びユーザ端末の機能構成例を示す図である。 Webアプリの起動処理の処理手順の一例を説明するための図である。 ガジェットの検出時に実行される処理手順の一例を説明するための図である。 検出リストの一例を示す図である。 連携情報記憶部の構成例を示す図である。 ガジェット一覧記憶部の構成例を示す図である。 端末情報記憶部の構成例を示す図である。 第一の連携処理の処理手順の一例を説明するための図である。 ドライバの定義内容の一例を示す図である。 ガジェットに対応するアイコンの表示例を示す図である。 ドライバの無効化に伴ってアイコンが消去される例を示す図である。 第二の連携処理の処理手順の一例を説明するための図である。 ドライバのアイコンの操作例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。図1において、連携管理サーバ20は、無線LAN(Local Area Network)等の無線通信を介して1以上のユーザ端末10と通信可能である。また、ユーザ端末10は、ガジェット30a及びガジェット30b等、1以上のガジェット30と、無線LAN又はBlueTooth(登録商標)等の無線通信を介して通信可能である。なお、説明の便宜上、図1に示されるシステム構成は、或る企業内(以下、「企業A」という。)において構築されていることとする。
ユーザ端末10は、ユーザによって直接操作される端末である。ユーザ端末10の一例として、スマートフォン及びタブレット端末等のスマート端末が挙げられる。但し、PC(Personal Computer)等、他の種類の情報処理装置であって、無線通信が可能な情報処理装置が、ユーザ端末10として利用されてもよい。本実施の形態において、ユーザ端末10は、無線通信を介してガジェット30と連携した処理を実行する。なお、ユーザ端末10のユーザは、例えば、企業Aの従業員である。
ガジェット30は、ユーザ端末10と連携する外部機器の一例である。例えば、ユーザ端末10のカメラ機能、ストレージ機能、又はディスプレイ機能等を拡張可能な周辺機器が、ガジェット30として用いられてもよい。又は、エアコン等の家電機器が、ガジェット30として用いられてもよい。
連携管理サーバ20は、各ユーザ端末10がガジェット30と連携(ガジェット30にアクセス)するために必要な情報や、各ユーザ端末10にインストールされたWebアプリケーション(以下、「Webアプリ」という。)に連携(アクセス)が許可されるガジェット30を示す情報等を管理するコンピュータである。すなわち、本実施の形態では、企業Aのシステム管理者によって、各ユーザ端末10にインストールされるWebアプリの中で、各ガジェット30との連携が許可されるWebアプリが判断される。
なお、Webアプリとは、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、及びJavaScript(登録商標)等を構成要素とするアプリケーションである。本実施の形態において、Webアプリとは、Packaged Web apps形式のWebアプリをいう。
図2は、本実施の形態におけるユーザ端末のハードウェア構成例を示す図である。図2において、ユーザ端末10は、CPU101、メモリ102、補助記憶装置103、タッチパネル104、及び無線通信装置105等を有する。
補助記憶装置103は、ユーザ端末10にインストールされたプログラム等を記憶する。メモリ102は、プログラムの起動指示があった場合に、補助記憶装置103からプログラムを読み出して記憶する。CPU101は、メモリ102に記憶されたプログラムに従ってユーザ端末10に係る機能を実現する。
タッチパネル104は、入力機能と表示機能との双方を備えた電子部品であり、情報の表示や、ユーザからの入力の受け付け等を行う。タッチパネル104は、表示装置111及び入力装置112等を含む。
表示装置111は、液晶ディスプレイ等であり、タッチパネル104の表示機能を担う。入力装置112は、表示装置111に対する接触物の接触を検出するセンサを含む電子部品である。接触物の接触の検出方式は、静電方式、抵抗膜方式、又は光学方式等、公知の方式のいずれであってもよい。なお、接触物とは、タッチパネル104の接触面(表面)に接触する物体をいう。斯かる物体の一例として、ユーザの指や専用又は一般のペン等が挙げられる。
無線通信装置105は、無線通信を行うために必要とされる電子部品である。
図3は、本発明の実施の形態における連携管理サーバ及びユーザ端末の機能構成例を示す図である。図3において、連携管理サーバ20は、情報送信部21及び端末認証部22を有する。これら各部は、連携管理サーバ20にインストールされたプログラムが、連携管理サーバ20のCPUに実行させる処理により実現される。連携管理サーバ20は、また、端末情報記憶部23、連携情報記憶部24、及びガジェット一覧記憶部25等を利用する。これら各記憶部は、連携管理サーバ20の補助記憶装置、又は連携管理サーバ20にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
情報送信部21は、連携情報記憶部24に記憶されている情報(以下、「連携情報」という。)や、ガジェット一覧記憶部25に記憶されている情報(以下、「ガジェット一覧情報」という。)を、ユーザ端末10からの要求に応じて返信する。連携情報とは、ユーザ端末10にインストールされたWebアプリ13のうち、各ガジェット30との連携が許可される(各ガジェット30へのアクセスが許可される)Webアプリ13を示す情報である。ガジェット一覧情報は、ガジェット30ごとのガジェット情報の一覧である。ガジェット情報とは、ユーザ端末10がガジェット30と通信するために必要とされる情報である。例えば、SSID(Service Set Identifier)及びパスワード等がガジェット情報に含まれる。
端末認証部22は、連携情報及びガジェット一覧情報を要求するユーザ端末10に関して認証を行う。認証は、端末情報記憶部23を参照して行われる。
ユーザ端末10は、アプリ起動部11、ブラウザ部12、Webアプリ13a、13b、及び13c等の1以上のWebアプリ13、ローカルサーバ部14a、14b、及び14c等のWebアプリ13ごとのローカルサーバ部14、ガジェット検出部15、設定部16、並びにAPI生成部17等を有する。これら各部は、ユーザ端末10にインストールされた1以上のプログラムがCPU101に実行させる処理により実現される。ユーザ端末10は、また、連携情報キャッシュ部111及びガジェット一覧キャッシュ部112等の記憶部を有する。これらの記憶部は、補助記憶装置103又はメモリ102等を用いて実現可能である。
アプリ起動部11は、ユーザ端末10にインストールされているWebアプリ13のうち、起動対象として選択されたWebアプリ13の起動処理を実行する。アプリ起動部11は、Webアプリ13の起動処理の過程において、起動対象のWebアプリ13のコンテンツデータにIPアドレス及びボート番号との組み合わせ(すなわち、URL(Uniform Resource Locator))を割り当てる。Webアプリ13のコンテンツデータとは、HTMLファイル、CSSファイル、及びJavaScript(登録商標)ファイル等の集合であり、補助記憶装置103に記憶されている。アプリ起動部11は、また、起動処理において、起動対象のWebアプリ13に対応するローカルサーバ部14のスレッドを生成する。
ブラウザ部12は、Webブラウザとして機能する。ブラウザ部12は、Webアプリ13の実行環境でもある。すなわち、ブラウザ部12は、Webアプリ13のコンテンツデータの内容を解析し、当該コンテンツデータに基づく画像の表示や、当該コンテンツデータに基づく処理の実行等を行う。なお、本実施の形態において、ブラウザ部12は、CSP(Content Security Policy)に基づいて、各Webアプリ13による外部へのアクセスを制限する。したがって、基本的に、各Webアプリ13によるアクセス先は、Webアプリ13ごとのホワイトリストに含まれているIPアドレスに制限される。
ローカルサーバ部14は、ユーザ端末10内においてWebサーバとして機能する。すなわち、ローカルサーバ部14は、ソケット通信用のポート(以下、「サーバポート」という。)を生成(オープン)し、サーバポートへのHTTP(HyperText Transfer Protocol)リクエストを待機する。ローカルサーバ部14は、サーバポートを介して、ブラウザ部12からのWebアプリ13のコンテンツデータの取得要求(HTTPリクエスト)が受信されると、当該コンテンツデータを含む応答(HTTPレスポンス)をブラウザ部12に返信する。或るローカルサーバ部14のサーバポートのIPアドレスは、当該ローカルサーバ部14が対応するWebアプリ13のコンテンツデータに対して割り当てられたIPアドレスと同じである。したがって、コンテンツデータの取得要求には、当該コンテンツデータに割り当てられたIPアドレスが指定される。したがって、ブラウザ部12は、当該コンテンツデータのダウンロード元が、当該IPアドレスに係るドメインに属するWebアプリ13であると認識する。
ローカルサーバ部14は、また、Webアプリ13によるガジェット30へのアクセスを仲介又は代行する。具体的には、ローカルサーバ部14は、Webアプリ13からのガジェット30へのアクセス要求を受け付けるためのインタフェースとして、ソケット通信用のポート(以下、「APIポート」という。)を生成(オープン)する。APIポートは、各ローカルサーバ部14において、ガジェット30ごとに生成される。APIポートには、ローカルサーバ部14が対応するWebアプリ13のコンテンツデータと同じIPアドレスが割り当てられる。すなわち、アプリ起動部11は、実質的に、Webアプリ13のコンテンツデータと、当該Webアプリ13に対応するローカルサーバ部14のAPIポートとに対して、同じIPアドレスを割り当てる。
Webアプリ13のアクセス先は、ブラウザ部12によって、基本的には当該Webアプリ13に対応するホワイトリスト(CSPのホワイトリスト)の範囲に制限される。但し、CSPにおいても、同一オリジンポリシー(Same-Origin Policy)が有効である。すなわち、ブラウザ部12は、Webアプリ13のオリジン(コンテンツデータのダウンロード元)のIPアドレスに係るドメインの範囲内であれば、ホワイトリストに拘わらず、当該Webアプリ13によるアクセスを許可する。したがって、或るWebアプリ13が、当該Webアプリ13に対応するローカルサーバ部14のAPIポートにアクセスしようとした場合、当該アクセスは、ブラウザ部12によって許可される。ブラウザ部12から見れば、当該アクセスは、当該Webアプリ13のオリジンと同じドメイン内に対するアクセスに該当するからである。
ローカルサーバ部14は、Webアプリ13によって或るAPIポートがアクセスされると、当該APIポートに対応するガジェット30にアクセス。すなわち、当該ガジェット30が公開しているAPIを構成するメソッドの呼び出しが行われる。その結果、Webアプリ13は、実質的にガジェット30にアクセスすることができる。なお、ガジェット30が公開しているAPIを構成するメソッドのうち、ローカルサーバ部14が呼び出すべきメソッドは、当該APIポートの連携元のWebアプリ13によって指定される。
ガジェット検出部15は、無線通信を介してガジェット30の存在を検出する。設定部16は、ガジェット検出部15によってガジェット30が検出されると、連携管理サーバ20から連携情報及びガジェット一覧情報をダウンロードする。ダウンロードされた情報は、連携情報キャッシュ部111又はガジェット一覧キャッシュ部112に記憶される。
設定部16は、また、検出されたガジェット30に対応するAPIポートの生成を、API生成部17に要求する。API生成部17は、検出されたガジェット30へのアクセスが許可されているWebアプリ13を特定し、当該Webアプリ13に対応するローカルサーバ部14に、当該ガジェット30に対応するAPIポートの生成を要求する。
以下、ユーザ端末10が実行する処理手順について説明する。図4は、Webアプリの起動処理の処理手順の一例を説明するための図である。
例えば、表示装置111に表示されているアイコンの選択等によって、当該アイコンに係るWebアプリ13の起動指示が入力されると(S101でYes)、アプリ起動部11は、起動対象のWebアプリ13(ここでは、Webアプリ13aとする。)のコンテンツデータの格納場所の識別名を特定する(S102)。格納場所の識別名とは、例えば、ファイル名又はフォルダ名である。ここでは、コンテンツデータを格納した書庫ファイルのファイル名が、格納場所の識別名として用いられることとする。なお、当該ファイル名は、Webアプリ13のアイコンに関連付けられてユーザ端末10に記憶されている。
続いて、アプリ起動部11は、Webアプリ13aに対応するIPアドレス、ポート番号、及びcookie(クッキー)を生成する。IPアドレス及びポート番号は、各Webアプリ13間で重複しない値が割り当てられる。cookieは、Webアプリ13aの認証に利用される、パスワードのような情報である。したがって、cookieについても、各Webアプリ13間で重複しない値が生成される。なお、Webアプリ13aに対応するIPアドレス及びポート番号は、Webアプリ13aのコンテンツデータに対するIPアドレス及びポート番号である。
続いて、アプリ起動部11は、Webアプリ13aに対応するローカルサーバ部14aのスレッドを生成する(S104)。当該ローカルサーバ部14aには、ステップS102において特定されたファイル名、並びにステップS103において生成されたIPアドレス、ポート番号、及びcookieが設定される。ローカルサーバ部14aは、起動されると、設定されたIPアドレス及びポート番号に対応するサーバポートを生成(開設)し(S131)、当該サーバポートへのアクセスを待機する。
続いて、アプリ起動部11は、Webアプリ13aのIPアドレス、ポート番号、及びcookieを指定して、Webアプリ13aの起動をブラウザ部12に要求する(S105)。
ブラウザ部12は、Webアプリ13aの起動要求に応じ、Webアプリ13aとして機能するプロセスを生成する(S111)。当該プロセスには、Webアプリ13aのIPアドレス、ポート番号、及びcookieが設定される。なお、当該プロセスは、ブラウザ部12としてのプロセスの子プロセスである。したがって、当該プロセスは、ブラウザ部12の一部(ブラウザ部12においてWebアプリ13aとして機能する部分)であるといえる。但し、以下では、便宜上、当該プロセスが実行する処理について、Webアプリ13aが実行主体であるとして説明する。なお、各Webアプリ13は、スレッドとして起動されてもよい。ブラウザ部12が、Webアプリ13ごとにプロセスを起動するのか又はスレッドを起動するのかについては、ブラウザ部12の実装に依存する。
Webアプリ13aは、起動されると、ブラウザ部12から設定されたIPアドレス及びポート番号に係るサーバポート宛に、コンテンツデータの取得要求(HTTPリクエスト)を送信する(S121)。ローカルサーバ部14aは、サーバポートを介して当該取得要求を受信すると、ステップS104において設定されているファイル名に係るファイルから、コンテンツデータを読み出す(S132)。なお、当該ファイル名が、書庫ファイルである場合、当該書庫ファイルに書庫化されているファイル群から、コンテンツデータが読み出される。続いて、ローカルサーバ部14aは、読み出されたコンテンツデータを含む応答(HTTPレスポンス)を、Webアプリ13aに返信する(S133)。なお、ステップS121における取得要求には、Webアプリ13aに設定されたcookieが含まれてもよい。ローカルサーバ部14aは、当該cookieが、自らに設定されたcookieに一致する場合に、コンテンツデータを返信するようにしてもよい。
Webアプリ13aは、コンテンツデータを受信すると(S122)、当該コンテンツデータに基づいて、Webアプリ13aの画像を表示させる(S123)。続いて、Webアプリ13aは、ガジェット30との連携処理を開始する(S124)。
続いて、ガジェット30の検出に応じて実行される処理手順について説明する。図5は、ガジェットの検出時に実行される処理手順の一例を説明するための図である。
ガジェット検出部15は、一定時間が経過するごとに(S201でYes)、電波スキャンを実行する(S202)。その結果、電波スキャンによって検出されたガジェット30ごとのSSID及びMACアドレス等のリスト(以下、「検出リスト」という。)が得られる。続いて、ガジェット検出部15は、検出リストを設定部16に送信する(S203)。
図6は、検出リストの一例を示す図である。図6に示されるように、検出リストは、検出されたガジェット30ごとに、SSID及びMACアドレスを含む。但し、例えば、BlueTooth(登録商標)等、SSIDを利用しない通信方式によって検出されたガジェット30については、SSIDは含まれない。
設定部16は、検出リストを受信すると(S211)、連携情報及びガジェット一覧情報に関して、連携管理サーバ20との同期をとる(S212)。すなわち、設定部16は、当該ユーザ端末10の端末IDを含む、連携情報及びガジェット一覧情報の取得要求を連携管理サーバ20に送信する。端末IDとは、ユーザ端末10ごとの識別情報であり、例えば、補助記憶装置103に記憶されている。連携管理サーバ20の情報送信部21は、連携情報記憶部24に記憶されている連携情報の中で、当該ユーザ端末10に対応する連携情報を返信する。
図7は、連携情報記憶部の構成例を示す図である。図7に示されるように、連携情報記憶部24は、各端末IDに対応付けて、当該端末IDに係るユーザ端末10に連携が許可されるガジェット30を示す情報を記憶する。すなわち、「○」が記録されているセルは、当該セルが属する行に係るユーザ端末10の全てのWebアプリ13に、当該セルが属する列に係るガジェット30との連携が許可されることを示す。また、「○(XXXのみ)」が記録されているセルは、当該セルが属する行に係るユーザ端末10のWebアプリ13のうち「XXX」に該当するWebアプリ13のみに、当該セルが属する列に係るガジェット30と連携が許可されることを示す。なお、「XXX」には、複数のWebアプリ13の識別情報が列挙されてもよい。また、「X」が記録されているセルは、当該セルが属する行に係るユーザ端末10の全てのWebアプリ13に、当該セルが属する列に係るガジェット30との連携が許可されないことを示す。
ステップS212において、情報送信部21は、情報の取得要求に含まれている端末IDに対応する行に係る連携情報を返信する。
また、図8は、ガジェット一覧記憶部の構成例を示す図である。図8に示されるように、ガジェット一覧記憶部25は、ガジェット30ごとにガジェット情報を記憶する。ガジェット情報には、ガジェット名、SSID、パスワード、MACアドレス、接続方法、及びドライバ名等が含まれる。
ガジェット名は、ガジェット30の識別名である。但し、ガジェット名は、ガジェット情報に含まれなくてもよい。SSIDは、ガジェット30に対するSSIDである。パスワードは、ガジェット30に対するパスワードである。MACアドレスは、ガジェット30のMACアドレスである。接続方法は、無線通信でのガジェット30との接続方法である。なお、接続方法における「BLT」は、BlueTooth(登録商標)を示す。ドライバ名は、ドライバを格納するファイルのファイル名である。ドライバとは、APIポートの呼び出しをWebアプリに実行させ、その結果として、ガジェット30が公開するAPIの呼び出しに必要な情報を、ローカルサーバ部14に伝達するためのプログラムコードである。本実施の形態において、ドライバは、JavaScript(登録商標)によって実装される。
ステップS212において、情報送信部21は、ガジェット一覧記憶部25に記憶されているガジェット情報の一覧と、各ガジェット情報のドライバ名によって識別されるドライバのファイルとを返信する。なお、ユーザ端末10からの取得要求に、検出されたガジェット30のSSID又はMACアドレスの一覧が含まれてもよい。情報送信部21は、当該SSID又は当該MACアドレスに対応するガジェット情報及びドライバのみを返信してもよい。
設定部16は、返信された連携情報を連携情報キャッシュ部111に記憶し、返信されたガジェット一覧情報及びドライバ群を、ガジェット一覧キャッシュ部112に記憶する。
なお、連携情報及びガジェット一覧情報が返信される前に、端末認証部22が、端末情報記憶部23を参照して、取得要求に係る認証が行を行う。認証が成功した場合に、連携情報及びガジェット一覧情報が返信される。
図9は、端末情報記憶部の構成例を示す図である。図9に示されるように、端末情報記憶部23は、端末IDに対応付けて、認証方式及び認証情報を記憶する。認証方式は、認証の方式を示す。認証情報は、認証方式に基づく認証において利用される情報である。例えば、図9に示される例では、ユーザ端末10が有するがRSA(Rivest Shamir Adleman)鍵が、認証情報に登録されている公開鍵に対応するものであるか否かが、チャレンジ&レスポンスで検証される。
続いて、設定部16は、連携情報キャッシュ部111から連携情報を取得すると共に、検出リストに含まれる各SSID又は各MACアドレスに対応するガジェット情報を、ガジェット一覧キャッシュ部112から取得する(S213)。すなわち、検出されたガジェット30のガジェット情報が取得される。なお、ここではドライバのファイルは取得されなくてもよい。続いて、設定部16は、ガジェット30に対応するAPIの生成を、API生成部17に要求する(S214)。当該要求には、ステップS213において取得された連携情報と、ガジェット情報の一覧とが指定される。
続いて、API生成部17は、起動されているWebアプリ13ごとに、ステップS221〜S223を実行する。ステップS221において、API生成部17は、起動されているWebアプリ13の中で、処理対象とするWebアプリ13を一つ選択する。以下、選択されたWebアプリ13を「対象アプリ」という。続いて、API生成部17は、APIの生成要求に指定されている連携情報に基づいて、対象アプリに連携が許可されるガジェット30ごとに、ガジェット名を特定する(S222)。続いて、API生成部17は、対象アプリに対応するローカルサーバ部14に対して、APIポートの生成を要求する(S223)。当該要求には、ステップS222において特定された各ガジェット名に対応するガジェット情報が含まれる。なお、ドライバを格納したファイルは当該要求に含まれなくてもよい。
各ローカルサーバ部14は、APIポートの生成要求に応じ、APIポートの過不足を判定する(S231)。すなわち、ステップS231は、ガジェット検出部15によるステップS202に同期して一定時間ごとに実行される。したがって、前回までに検出されたガジェット30に関してはAPIポートが生成されている場合が有る。また、前回検出されガジェット30の一覧と今回検出されたガジェット30の一覧とが異なる可能性が有る。また、設定部16によるステップS212についても、ステップS202に同期して一定時間ごとに実行される。したがって、前回の検出時と、今回の検出時とにおいて、各Webアプリ13に連携が許可されるガジェット30が異なる可能性が有る。システム管理者によって、連携情報が更新されている可能性が有るからである。
そこで、ステップS231では、既に生成されている各APIポートに対応するガジェット情報と、APIポートの生成要求に指定されたガジェット情報の一覧とが比較され、後者にのみ含まれているガジェット情報と、前者にのみ含まれているガジェット情報とが特定される。後者にのみ含まれているガジェット情報は、新たに検出されたガジェット30、又は新たに連携が許可されたガジェット30のガジェット情報である。また、前者にのみ含まれているガジェット情報は、検出されなくなったガジェット30、又は新たに連携が禁止されたガジェット30の情報である。当該ガジェット情報に対応するAPIポートは、不要なAPIポートということになる。
不要なAPIポートが有る場合(S232でYes)、ローカルサーバ部14は、該当するAPIポートのそれぞれをクローズする(S233)。また、新規のガジェット情報が有る場合(S234でYes)、ローカルサーバ部14は、新規のガジェット情報のそれぞれに対応するポート番号を生成する(S235)。当該ポート番号は、当該ローカルサーバ部14が生成済みのポートであって、かつ、現時点においても有効なポートのポート番号と重複しない値であればよい。また、ステップS235において複数のポート番号が生成される場合、生成される各ポート番号は、相互に重複しない値であればよい。続いて、ローカルサーバ部14は、ステップS235において生成されたポート番号ごとに、APIポートを生成する(S236)。この際、当該ローカルサーバ部14のサーバポートのIPアドレスと同じIPアドレスが、生成される各APIポートに割り当てられる。続いて、ローカルサーバ部14は、ステップS236において生成されたAPIポートに対応付けて、当該APIポートに対応するガジェット情報を、例えば、メモリ102に記憶する(S237)。
続いて、図4のステップS124の詳細について説明する。図10は、第一の連携処理の処理手順の一例を説明するための図である。図10は、図4のステップS123に続いて実行される処理であるため、図10におけるWebアプリ13は、便宜上、Webアプリ13aであるとする。但し、図10に示される処理手順は、起動中の各Webアプリ13及び各Webアプリ13に対応するローカルサーバ部14によって並列的に実行される。
ステップS301において、Webアプリ13aは、APIポートのポート番号の一覧の取得要求(HTTPリクエスト)を、ローカルサーバ部14aのサーバポート宛に送信する。ローカルサーバ部14aは、サーバポートを介して当該取得要求を受信すると(S311)、ローカルサーバ部14aが現在オープン中の各APIポートのポート番号を含む応答(HTTPリクエスト)を返信する(S312)。複数のAPIポートがオープン中である場合、複数のポート番号が返信される。なお、ステップS311における取得要求には、Webアプリ13aに設定されたcookieが含まれてもよい。ローカルサーバ部14aは、当該cookieが、自らに設定されたcookieに一致する場合に、ポート番号を返信するようにしてもよい。
続いて、Webアプリ13aは、今回のステップS302において受信されたポート番号の一覧の中で、前回のステップS302において受信されたポート番号の一覧に含まれていないポート番号の有無を判定する(S302)。すなわち、新たに連携可能となったガジェット30の有無が判定される。該当するポート番号が無い場合(S303でNo)、ステップS308に進む。該当するポート番号が有る場合(S303でYes)、Webアプリ13aは、当該ポート番号に対応するガジェット30に対するドライバの取得要求(HTTPリクエスト)を、ローカルサーバ部14aのサーバポート宛に送信する(S304)。当該取得要求には、該当するポート番号が含まれる。該当するポート番号が複数有る場合、複数のポート番号が当該取得要求に含まれる。
ローカルサーバ部14aは、サーバポートを介して当該取得要求を受信すると(S314)、当該取得要求に含まれているポート番号ごとに、当該ポート番号に対応するドライバをガジェット一覧キャッシュ部112から取得する(読み出す)(S315)。或るAPIポートのポート番号に対応するドライバは、当該APIポートに対応付けられてメモリ102に記憶されているガジェット情報に含まれているドライバ名に基づいて特定可能である。続いて、ローカルサーバ部14aは、取得された各ドライバを含む応答(HTTPレスポンス)を、Webアプリ13aに返信する(S316)。Webアプリ13aは、当該応答を受信する(S305)。
図11は、ドライバの定義内容の一例を示す図である。図11において、ドライバ510は、WiFi(Wireless Fidelity)(登録商標)対応レンズカメラであるガジェット30に対応するドライバである。
ドライバ510において、記述511は、変数portに対してAPIポートのポート番号を代入することを示す。但し、記述511において、代入されるポート番号は、変数化されている。すなわち、本実施の形態において、「$PORT$」は、ドライバ510に対して割り当てられたAPIポートのポート番号によって置換されるべき(当該ポート番号が適用されるべき)部分を示すキーワードである。ポート番号が変数化されているのは、ドライバ510の作成者は、ドライバ510の作成時において、当該ポート番号を知ることができないからである。
記述512は、ドライバ510に対応するガジェット30に対応するAPIポートにアクセスするメソッド群のうちの一つのメソッドのメソッド名が「Takephoto」であることを示す。記述513は、当該メソッドが実行された場合のアクセス先が括弧内に指定されたURLであることを示す。当該URLにおいて、<ガジェットが公開するAPI1>の部分には、実際には、APIポートに対するアクセスに応じてローカルサーバ部14によって呼び出されるべきガジェット30のAPIのメソッド名が具体的に記述されている。また、記述513において、「IP()」は、ドライバ510(スクリプト)の実行時において、ブラウザ部12(Webブラウザ)の環境変数から、当該スクリプトを実行するWebアプリ13のIPアドレスを取得する関数である。すなわち、ドライバ510の実行時において、「IP()」は、Webアプリ13aのIPアドレスに置換される。したがって、記述513では、ドライバ510に対応するガジェット30に対してローカルサーバ部14が生成したAPIポートがアクセス先であることが定義されている。
記述514は、括弧内の情報を、記述513において指定されたアクセス先へ送信することを示す。当該括弧内には、実際には、「ガジェット30が公開するAPI1」に対する引数を示す文字列が、具体的に記述されている。
記述522、523、及び524は、記述512、513、及び514と同様の定義である。但し、記述522〜524では、記述512〜514が対応するAPI(ガジェット30のメソッド)とは異なるAPI(ガジェット30のメソッド)に対応するドライバ510のメソッドに関する定義である。
続いて、Webアプリ13aは、受信された各ドライバに対して、当該ドライバに対応するポート番号を適用する(S306)。すなわち、各ドライバにおいて、「$PORT$」の部分が、当該ドライバに対応するポート番号によって置換される。なお、ドライバ510の記述513におけるIP()が、例えば、「$IP$」等のキーワードによって記述されていてもよい。すなわち、IPアドレスに関しても変数化されていてもよい。この場合、Webアプリ13aは、ドライバ510の「$IP$」を、Webアプリ13aに設定されたIPアドレスによって置換する。
続いて、Webアプリ13aは、ドライバを有効化する(S307)。すなわち、ドライバとしてのスクリプトが、Webアプリ13aの構成要素として、メモリ102に読み込まれる。その結果、例えば、当該ドライバの実行指示をユーザから受け付けるためのアイコンが、表示装置111に表示されてもよい。
図12は、ガジェットに対応するアイコンの表示例を示す図である。図12では、WiFi(登録商標)対応レンズカメラであるガジェット30aと、WiFi(登録商標)対応SDカードであるガジェット30bとが検出され、それぞれに対するドライバが有効化された場合の表示例が示されている。この場合、それぞれのドライバに対応するアイコンc1及びアイコンc2が、例えば、画面の上方から落下してきて画面下部に表示される。
続いて、Webアプリ13aは、前回のステップS302において受信されたポート番号の一覧の中で、今回のステップS302において受信されたポート番号の一覧には含まれていないポート番号の有無を判定する(S308)。すなわち、連携が不可能になったガジェット30の有無が判定される。該当するポート番号が有る場合(S308でYes)、Webアプリ13aは、当該ポート番号に対応するドライバを無効化する(S309)。例えば、Webアプリ13aの構成要素としてメモリ102に展開されているドライバが、メモリ102から削除される。その結果、当該ドライバに対応するアイコンも消去される。
図13は、ドライバの無効化に伴ってアイコンが消去される例を示す図である。図13では、ガジェット30aが検出されなくなった結果、ガジェット30aに対応するアイコンc1が消去された例が示されている。
なお、図10において、ステップS301以降は、繰り返し実行される。例えば、ステップS301以降は、一定時間間隔で実行されてもよい。
続いて、図4のステップS124において、図10の処理と並行して実行される処理について説明する。図14は、第二の連携処理の処理手順の一例を説明するための図である。
Webアプリ13aは、ドライバのアイコンが操作されてドライバに含まれるメソッドのうち、いずれかのメソッドの実行指示が入力されたことを検知すると(S401でYes)、選択されたメソッドを実行する(S402)。
図15は、ドライバのアイコンの操作例を示す図である。図15では、アイコンc1が選択されて、メニューm1が表示されている例が示されている。メニューm1には、アイコンc1に対応するドライバ510に含まれている各メソッドがメニュー項目として含まれている。すなわち、メニューm1には、「TakePhoto」メソッドと、「Startrecording」メソッドとが、メニュー項目として含まれている。ユーザは、所望のメソッドを選択することにより、当該メソッドの実行指示を入力することができる。
続いて、Webアプリ13aは、選択されたメソッド内に定義されているスクリプトを実行する(S402)。例えば、「TakePhotho」が選択された場合、図11のドライバ510における記述511〜514が実行される。その結果、ローカルサーバ部14aのAPIポートのうち、ドライバ510に対応するポート番号に係るAPIポートの<ガジェット30が公開するAPI1>のパス宛に、<ガジェット30が公開するAPI1の引数>を含むHTTPリクエストが送信される。なお、当該HTTPリクエストには、Webアプリ13aに設定されたcookieが含まれる。
ローカルサーバ部14aは、オープン中のAPIポートのうちのいずれかのAPIポートを介してHTTPリクエストが受信されると(S411でYes)、当該HTTPリクエストに含まれているcookieの正当性を検証する(S412)。具体的には、ローカルサーバ部14aが保持しているcookieと、当該HTTPリクエストに含まれているcookieとが照合される。照合の結果、両者が異なる場合(S412でNo)、ローカルサーバ部14aは、エラーの発生を検出する(S417)。この場合、ステップS417において、ローカルサーバ部14aは、エラーを示すHTTPレスポンスを返信する。
一方、両者が一致する場合(S412でYes)、HTTPリクエストの送信元がWebアプリ13aであることが確認されたことになる。そこで、ローカルサーバ部14aは、ステップS411においてアクセスされたAPIポートに対応付けられて記憶されているガジェット情報に含まれているSSID又はMACアドレス、及びパスワード等を用いて、当該ガジェット情報に含まれている接続方法に従って、当該SSID又は当該MACアドレスに係るガジェット30と無線通信を介して接続する(S413)。その結果、当該ガジェット30のIPアドレスが判明する。そこで、ローカルサーバ部14aは、ステップS411において受信されたHTTPリクエストに基づいて特定される、ガジェット30のAPIに対して、ガジェット30のIPアドレスを適用する(S415)。したがって、ユーザ端末10とガジェット30とが接続するたびに、ガジェット30のIPアドレスが変化する場合であっても、接続の都度、ガジェット30に割り当てられるIPアドレスが、ガジェット30のAPIに対して適用される。
続いて、ローカルサーバ部14aは、ガジェット30のAPIを呼び出すことにより、ガジェット30へ要求を送信し、当該要求に対する応答をガジェット30から受信する(S416)。応答の内容は、ガジェット30と、呼び出されたAPIとに応じて異なる。WiFi(登録商標)対応レンズカメラに対して撮像を要求するAPIが呼び出された場合、撮像結果である画像データが応答に含まれているかもしれない。WiFi(登録商標)対応SDカードに対して情報の読み出しを要求するAPIが呼び出された場合、読み出された情報が応答に含まれているかもしれない。
続いて、ローカルサーバ部14aは、ステップS411において受信されたHTTPリクエストに対するHTTPレスポンスを返信する(S418)。当該HTTPレスポンスには、ガジェット30からの応答が含まれる。Webアプリ13aは、当該HTTPレスポンスを受信すると(S403)、例えば、当該HTTPレスポンスに含まれているガジェット30からの応答を利用した処理を実行する。
上述したように、本実施の形態によれば、Webアプリ13と同じドメイン内に、ガジェット30のAPI(WebAPI)が設けられる。したがって、CSPによってWebアプリ13のアクセス先が制限されている場合でも、同一オリジンポリシーによって、当該Webアプリ13は、当該APIを呼び出すことができる。その結果、Webアプリ13とガジェット30との連携を円滑化することができる。
また、各Webアプリ13には、相互に異なるIPアドレスが割り当てられる。したがって、各Webアプリ13にとって、他のWebアプリ13に対応するローカルサーバ部14のAPIポートへのアクセスが困難となる。各Webアプリ13は、他のWebアプリ13のIPアドレスを知るのが困難であるし、CSPによる制限や、同一オリジンポリシー等によって、他のWebアプリ13のIPアドレスへのアクセスが禁止されるからである。その結果、各Webアプリ13にとって、自らにはアクセスが許可されていないガジェット30へのアクセスが困難となる。すなわち、Webアプリ13ごとに、アクセス可能なガジェット30を異ならせることができる。
更に、図14のステップS412に示されるように、各Webアプリ13がガジェット30のAPIを呼び出す際は、ローカルサーバ部14によって、呼び出し元のWebアプリ13の正当性が判定される。斯かる機構によっても、各Webアプリ13にとって、自らにはアクセスが許可されていないガジェット30へのアクセスが困難となる。
また、本実施の形態では、ガジェット30ごとにドライバが予め作成され、当該ドライバが、Webアプリ13の構成要素として動的に追加される。したがって、当該ガジェット30への連携に関する定義が実装されていない既存のWebアプリ13であっても、ドライバとの連携が可能となる。
換言すれば、Webアプリ13には、ドライバと同様の定義を有するスクリプトが構成要素として予め含まれていてもよい。この場合、当該Webアプリ13に対して、当該ドライバが組み込まれる処理(図10のS304、S305、S307、S309等)は実行されなくてもよい。ステップS306では、Webアプリ13の定義内の当該ガジェット30との連携部分に対して、ポート番号の適用が実行されればよい。
また、ローカルサーバ部14は、必ずしもWebアプリ13ごとに起動されなくてもよい。例えば、一つのローカルサーバ部14が、Webアプリ13ごとに異なるIPアドレスを有するサーバポートを生成し、Webアプリ13ごとに異なるIPアドレスを有するAPIポートを生成してもよい。そうすることによっても、各Webアプリ13のドメインを区別することができる。
また、本実施の形態では、企業内における利用シーンを想定したが、個人的な利用に関して本実施の形態が適用されてもよい。この場合、連携管理サーバ20は設けらずに、連携情報キャッシュ部111及びガジェット一覧キャッシュ部112には、予め当該ユーザ端末10に関連する情報が記憶されていてもよい。この場合、各Webアプリ13による各ガジェット30へのアクセスの許否は、ユーザ端末10のユーザによって設定されてもよい。
なお、本実施の形態において、ユーザ端末10は、情報処理装置の一例である。API生成部17は、特定部の一例である。ローカルサーバ部14は、生成部及び送信部の一例である。アプリ起動部11は、割当部の一例である。ポート番号は、インタフェースの識別情報の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
1以上のWebアプリケーションがインストールされたコンピュータが、
無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定し、
検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成し、
前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当て、
前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する、
処理を実行することを特徴とする要求送信方法。
(付記2)
前記割り当てる処理は、前記Webアプリケーションごとに異なるIPアドレスを割り当てる、
ことを特徴とする付記1記載の要求送信方法。
(付記3)
前記生成する処理は、無線通信を介して検出された外部機器ごとに前記インタフェースを生成する、
ことを特徴とする付記1又は2記載の要求送信方法。
(付記4)
前記コンピュータが、
前記インタフェースの呼び出しを前記コンピュータに実行させるための情報が記述されたプログラムコードにおいて、呼び出し対象のインタフェースの識別情報が指定される部分に、当該プログラムコードに関連付けられている識別情報に係る外部機器に対して生成されたインタフェースの識別情報を適用し、
前記Webアプリケーションの構成要素として、前記プログラムコードを追加する、
処理を実行することを特徴とする付記1乃至3いずれか一項記載の要求送信方法。
(付記5)
1以上のWebアプリケーションがインストールされた情報処理装置であって、
無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定する特定部と、
検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成する生成部と、
前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当てる割当部と、
前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する送信部と、
を有することを特徴とする情報処理装置。
(付記6)
前記割当部は、前記Webアプリケーションごとに異なるIPアドレスを割り当てる、
ことを特徴とする付記5記載の情報処理装置。
(付記7)
前記生成部は、無線通信を介して検出された外部機器ごとに前記インタフェースを生成する、
ことを特徴とする付記5又は6記載の情報処理装置。
(付記8)
前記インタフェースの呼び出しを前記コンピュータに実行させるための情報が記述されたプログラムコードにおいて、呼び出し対象のインタフェースの識別情報が指定される部分に、当該プログラムコードに関連付けられている識別情報に係る外部機器に対して生成されたインタフェースの識別情報を適用して、前記Webアプリケーションの構成要素として、前記プログラムコードを追加する追加部を有する、
ことを特徴とする付記5乃至7いずれか一項記載の要求送信方法。
(付記9)
1以上のWebアプリケーションがインストールされたコンピュータに、
無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定し、
検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成し、
前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当て、
前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する、
処理を実行させることを特徴とするプログラム。
(付記10)
前記割り当てる処理は、前記Webアプリケーションごとに異なるIPアドレスを割り当てる、
ことを特徴とする付記9記載のプログラム。
(付記11)
前記生成する処理は、無線通信を介して検出された外部機器ごとに前記インタフェースを生成する、
ことを特徴とする付記9又は10記載のプログラム。
(付記12)
前記コンピュータに、
前記インタフェースの呼び出しを前記コンピュータに実行させるための情報が記述されたプログラムコードにおいて、呼び出し対象のインタフェースの識別情報が指定される部分に、当該プログラムコードに関連付けられている識別情報に係る外部機器に対して生成されたインタフェースの識別情報を適用し、
前記Webアプリケーションの構成要素として、前記プログラムコードを追加する、
処理をさせることを特徴とする付記9乃至11いずれか一項記載のプログラム。
10 ユーザ端末
11 アプリ起動部
12 ブラウザ部
13 Webアプリ
14 ローカルサーバ部
15 ガジェット検出部
16 設定部
17 API生成部
20 連携管理サーバ
21 情報送信部
22 端末認証部
23 端末情報記憶部
24 連携情報記憶部
25 ガジェット一覧記憶部
30 ガジェット
101 CPU
102 メモリ
103 補助記憶装置
104 タッチパネル
105 無線通信装置
111 連携情報キャッシュ部
112 ガジェット一覧キャッシュ部

Claims (6)

  1. 1以上のWebアプリケーションがインストールされたコンピュータが、
    無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定し、
    検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成し、
    前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当て、
    前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する、
    処理を実行することを特徴とする要求送信方法。
  2. 前記割り当てる処理は、前記Webアプリケーションごとに異なるIPアドレスを割り当てる、
    ことを特徴とする請求項1記載の要求送信方法。
  3. 前記生成する処理は、無線通信を介して検出された外部機器ごとに前記インタフェースを生成する、
    ことを特徴とする請求項1又は2記載の要求送信方法。
  4. 前記コンピュータが、
    前記インタフェースの呼び出しを前記コンピュータに実行させるための情報が記述されたプログラムコードにおいて、呼び出し対象のインタフェースの識別情報が指定される部分に、当該プログラムコードに関連付けられている識別情報に係る外部機器に対して生成されたインタフェースの識別情報を適用し、
    前記Webアプリケーションの構成要素として、前記プログラムコードを追加する、
    処理を実行することを特徴とする請求項1乃至3いずれか一項記載の要求送信方法。
  5. 1以上のWebアプリケーションがインストールされた情報処理装置であって、
    無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定する特定部と、
    検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成する生成部と、
    前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当てる割当部と、
    前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する送信部と、
    を有することを特徴とする情報処理装置。
  6. 1以上のWebアプリケーションがインストールされたコンピュータに、
    無線通信を介して外部機器が検出されると、前記1以上のWebアプリケーションの中で前記外部機器にアクセスが許可されるWebアプリケーションを、外部機器ごとに当該外部機器へのアクセスが許可されるWebアプリケーションを示す情報を記憶した第一の記憶部を参照して特定し、
    検出された外部機器への要求を、特定されたWebアプリケーションから受け付けるためのインタフェースを生成し、
    前記特定されたWebアプリケーションのコンテンツデータと、前記インタフェースとに同じIPアドレスを割り当て、
    前記コンテンツデータが読み出されて起動されたWebアプリケーションから、前記インタフェースを介して前記要求を受信し、当該要求を無線通信を介して前記検出された外部機器に送信する、
    処理を実行させることを特徴とするプログラム。
JP2014244160A 2014-12-02 2014-12-02 要求送信方法、情報処理装置、及びプログラム Active JP6358063B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014244160A JP6358063B2 (ja) 2014-12-02 2014-12-02 要求送信方法、情報処理装置、及びプログラム
US14/954,000 US10341346B2 (en) 2014-12-02 2015-11-30 Information processing method, information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014244160A JP6358063B2 (ja) 2014-12-02 2014-12-02 要求送信方法、情報処理装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016110204A JP2016110204A (ja) 2016-06-20
JP6358063B2 true JP6358063B2 (ja) 2018-07-18

Family

ID=56079927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014244160A Active JP6358063B2 (ja) 2014-12-02 2014-12-02 要求送信方法、情報処理装置、及びプログラム

Country Status (2)

Country Link
US (1) US10341346B2 (ja)
JP (1) JP6358063B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835864B (zh) 2016-05-11 2023-04-25 创新先进技术有限公司 一种启动应用的方法和系统
US10560482B2 (en) * 2017-07-08 2020-02-11 Vmware, Inc. Network access by applications in an enterprise managed device system
US10110551B1 (en) * 2017-08-14 2018-10-23 Reza Toghraee Computer-implemented system and methods for providing IPoE network access using software defined networking
CN111918132B (zh) * 2020-07-27 2022-09-23 海信视像科技股份有限公司 一种显示设备及多接口设备判断方法
US11196665B1 (en) * 2020-11-12 2021-12-07 Sap Se Routing application calls
US20220263828A1 (en) * 2021-02-17 2022-08-18 Target Brands, Inc. Client-side blocking and reporting of unauthorized network transmissions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789111B1 (en) * 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
US20040083015A1 (en) 2002-06-04 2004-04-29 Srinivas Patwari System for multimedia rendering in a portable device
WO2005015340A2 (en) 2003-04-25 2005-02-17 Qualcomm, Incorporated System for controlling a camera resource in a portable device
US20050097248A1 (en) 2003-10-29 2005-05-05 Kelley Brian H. System and method for establishing a communication between a peripheral device and a wireless device
FR2876751B1 (fr) * 2004-10-15 2007-01-19 Centre Nat Rech Scient Cnrse Appareil pour convertir l'energie des vagues en energie electrique
JP4950606B2 (ja) * 2005-09-30 2012-06-13 トレンドマイクロ株式会社 通信システム、セキュリティ管理装置およびアクセス制御方法
US7748609B2 (en) * 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US8875243B1 (en) * 2011-01-27 2014-10-28 Sprint Communications Company L.P. Identity abstraction providing limited cross-domain access
US9716743B2 (en) * 2011-09-02 2017-07-25 Microsoft Technology Licensing, Llc Accessing hardware devices using web server abstractions
TWI451272B (zh) * 2012-05-02 2014-09-01 Arcadyan Technology Corp 整合週邊裝置之通用型驅動方法與系統
CN102929835B (zh) * 2012-10-10 2018-03-27 中兴通讯股份有限公司 设备管理方法及装置
US9501666B2 (en) * 2013-04-29 2016-11-22 Sri International Polymorphic computing architectures
JP5742914B2 (ja) * 2013-11-05 2015-07-01 カシオ計算機株式会社 情報制御装置、端末装置及びプログラム

Also Published As

Publication number Publication date
US10341346B2 (en) 2019-07-02
JP2016110204A (ja) 2016-06-20
US20160156629A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
JP6358063B2 (ja) 要求送信方法、情報処理装置、及びプログラム
US11509708B2 (en) Application sharing method and apparatus
US11921996B2 (en) Information processing terminal and control method
KR102224760B1 (ko) 자동 애플리케이션 업데이트
US10120998B2 (en) Virtual browsing environment
US20200236513A1 (en) Message extension app store
EP3700237A1 (en) Messaging application interacting with one or more extension applications
CN110869907B (zh) 一种浏览应用页面的方法及终端
US9438663B2 (en) Relay apparatus, information processing apparatus, information processing system, and recording medium storing information processing program
US9524089B1 (en) Common web component
US10846381B2 (en) Authentication selection for information processing apparatus, information processing method, and non-transitory computer readable medium
US8949947B2 (en) Network system and non-transitory computer-readable storage medium
US20140223570A1 (en) Information processing apparatus, information processing system, and license management method
US20150067669A1 (en) Method for managing application and electronic device thereof
CN104052796A (zh) 处理插件的方法、装置、系统及终端
JP6455278B2 (ja) マッシュアップ方法、マッシュアッププログラム、及び端末
US20150161407A1 (en) Information processing apparatus and information management method
US9253228B2 (en) Cloud computing method, computing apparatus and server using the same
US20190311017A1 (en) Information interaction method and device and computer readable storage medium thereof
JP2013191196A (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2016126651A (ja) 連携方法、情報処理端末、及びプログラム
US20160044137A1 (en) Information processing terminal and control method therefor
US20150128129A1 (en) Method and device for installing application
CA3126777A1 (en) System and method to control a media client using a message service
JP7163453B2 (ja) コンピュータシステムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180604

R150 Certificate of patent or registration of utility model

Ref document number: 6358063

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150