(57)【要約】【課題】Ｗｅｂブラウザと、Ｗｅｂアプリケーションが同一のデバイスに存在する場合、アプリケーション連携機能における引数データの取得を、アプリケーション連携機能を提供するモジュールから直接行うことできる情報処理装置を提供する。【解決手段】ネットワーク上で動作する第１のアプリケーションと、装置内で動作する第２のアプリケーションとを連携させるための連携機能を備える情報処理装置であって、連携機能に第２のアプリケーションの呼び出しが指示された場合に、第１のアプリケーションからのデータを、所定の特定情報と関連付けて保持する保持手段と、連携機能から、第２のアプリケーションに対して、第１のアプリケーションからのデータを取得させるためのリクエストを発行する発行手段と、を有し、第２のアプリケーションは、リクエストに応じて、ＨＴＴＰを経由した通信を利用せずに、特定情報を利用したデータ取得を行う。【選択図】  図４
2016091234.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で動作する第１のアプリケーションと、装置内で動作する第２のアプリケーションとを連携させるための連携機能を備える情報処理装置であって、
前記連携機能に第２のアプリケーションの呼び出しが指示された場合に、前記第１のアプリケーションからのデータを、所定の特定情報と関連付けて保持する保持手段と、
前記連携機能から、前記第２のアプリケーションに対して、前記第１のアプリケーションからのデータを取得させるためのリクエストを発行する発行手段と、を有し、
前記第２のアプリケーションは、前記リクエストに応じて、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を経由した通信を利用せずに、前記特定情報を利用したデータ取得を行うことを特徴とする情報処理装置。
【請求項２】
前記連携機能に第３のアプリケーションの呼び出しが指示された場合に、前記第３のアプリケーションの動作している装置が、前記情報処理装置であるか否かを判定する判定手段をさらに備え、
前記第３のアプリケーションは、前記判定手段による判定結果に応じて、前記ＨＴＴＰを経由した通信を利用して、または、前記ＨＴＴＰを経由した通信を利用せずに、前記データ取得を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第３のアプリケーションは、前記判定手段により前記第３のアプリケーションの動作している装置が、前記情報処理装置と異なる別の情報処理装置であると判定された場合、前記ＨＴＴＰを経由した通信を利用して、前記データ取得を行うことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ネットワーク上の別の情報処理装置が備える連携機能から前記第２のアプリケーションの呼び出しが指示された場合、前記第２のアプリケーションは、ＨＴＴＰを経由した通信を利用して、前記データ取得を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記保持手段は、前記特定情報と関連付けた前記第１のアプリケーションからのデータをテーブルとして保持し、
前記第２のアプリケーションは、前記テーブルを参照して、前記データ取得を行うことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記特定情報は、前記第２のアプリケーションを呼び出すためのＵＲＬの少なくとも一部を含むことを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記連携機能は、情報処理装置で動作するＯＳの一部、またはブラウザにより提供されることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置は、少なくとも画像形成装置、車載カーナビゲーションシステム、スマートフォン、またはロボットのいずれかであることを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
ネットワーク上で動作する第１のアプリケーションと、装置内で動作する第２のアプリケーションとを連携させるための連携機能を備える情報処理装置における制御方法であって、
前記連携機能に第２のアプリケーションの呼び出しが指示された場合に、前記第１のアプリケーションからのデータを、所定の特定情報と関連付けて保持する保持工程と、
前記連携機能から、前記第２のアプリケーションに対して、前記第１のアプリケーションからのデータを取得させるためのリクエストを発行する発行工程と、を有し、
前記第２のアプリケーションは、前記リクエストに応じて、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を経由した通信を利用せずに、前記特定情報を利用したデータ取得を行うことを特徴とする制御方法。
【請求項１０】
請求項１〜８のいずれか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関し、特に、Ｗｅｂサーバーにより提供される操作画面を表示するＷｅｂブラウザを備えた情報処理装置に関する。
【背景技術】
【０００２】
一般的に、ＰＣなどの情報処理装置がネットワーク上のＷｅｂサーバーに接続され、Ｗｅｂサーバー上のＷｅｂアプリケーションにより提供される操作画面を情報処理装置の備えるＷｅｂブラウザ上に表示することが知られている。
【０００３】
この場合、まず、情報処理装置のＷｅｂブラウザが、Ｗｅｂサーバー上のＷｅｂアプリケーションに対して操作画面を要求（リクエスト）する。そして、Ｗｅｂアプリケーションが、情報処理装置からの要求に応えて、Ｗｅｂブラウザに操作画面を表示させるためのＨＴＭＬデータを情報処理装置に応答（レスポンス）する。情報処理装置のＷｅｂブラウザは、受信したＨＴＭＬデータを解析し、ＨＴＭＬデータの記述に基づいた操作画面を表示する。さらに、Ｗｅｂブラウザに表示された操作画面を介してユーザが指示を入力すると、Ｗｅｂブラウザは、入力された指示をＷｅｂサーバーに対して通知する。そして、通知を受けたＷｅｂサーバー上のＷｅｂアプリケーションが、ユーザによって入力された指示に従って処理を実行する。
【０００４】
また、このようなＷｅｂアプリケーションが複数ある場合、あるＷｅｂアプリケーションから別のＷｅｂアプリケーションをＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）的に呼び出し連携させる方法が検討されている。これは、Ｗｅｂ  Ｉｎｔｅｎｔｓに代表されるＷｅｂアプリケーション連携機能であり、この機能を用いることにより、あるＷｅｂアプリケーションから別のＷｅｂアプリケーションを直接呼び出すことが可能になり、ユーザの利便性を向上させることができる。
【０００５】
また、近年、スキャナやプリンタを備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）や、スマートフォン、車載カーナビゲーションシステムといった情報処理システムの中にも、Ｗｅｂブラウザを備えているものがある。さらに、特許文献１に示されるＷｅｂ  Ｉｎｔｅｎｔｓのようなアプリケーション連携を行う仕組みの搭載も検討されている。このようなアプリケーション連携の仕組みでは、呼び出し元のＷｅｂアプリケーションから、呼び出し先のＷｅｂアプリケーションに対して引数を渡して処理を呼び出すことが可能である。具体的には、アプリケーション連携とは、Ｗｅｂブラウザ上にロードした呼び出し元のＷｅｂアプリケーションのＷｅｂコンテンツから、Ｗｅｂブラウザ上にロードした呼び出し先のＷｅｂアプリケーションのＷｅｂコンテンツに対して引数を渡す。このとき、呼び出し先Ｗｅｂアプリケーションに対して、引数データを送信するためにＷｅｂブラウザ上にロードされた呼び出し元のＷｅｂアプリケーションから、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）通信を行う必要がある。
【０００６】
ところで、情報処理装置の中には、Ｗｅｂブラウザ機能に加えて、サーバー機能を備え、Ｗｅｂアプリケーションが動作するものがある。これにより、情報処理装置が提供するアプリケーションの画面をＷｅｂ技術で記述することが可能になり、組み込みアプリケーションと比較してアプリケーションの開発が容易になる。また、組み込みアプリケーションを、このようなＷｅｂアプリケーションにすることで情報処理装置外部からのアクセスも容易となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１１５８９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、アプリケーション連携機能において、呼び出し元のＷｅｂアプリケーションからサーバー上の呼び出し先のＷｅｂアプリケーションに引数データを渡すためには、ＪａｖａＳｃｒｉｐｔ（登録商標）からＨＴＴＰ通信を用いて送信する必要がある。特に、Ｗｅｂブラウザと、Ｗｅｂアプリケーションが同一のデバイスに存在するような場合、通常の組み込みアプリケーション同士の連携と比較して、引数データの取得に処理コストがかかってしまう。
【０００９】
本発明は、ＷｅｂブラウザとＷｅｂアプリケーションが同一のデバイスに存在する場合、アプリケーション連携機能における引数データの取得を、アプリケーション連携機能を提供するモジュールから直接行うことできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の情報処理装置は、ネットワーク上で動作する第１のアプリケーションと、装置内で動作する第２のアプリケーションとを連携させるための連携機能を備える情報処理装置であって、前記連携機能に第２のアプリケーションの呼び出しが指示された場合に、前記第１のアプリケーションからのデータを、所定の特定情報と関連付けて保持する保持手段と、前記連携機能から、前記第２のアプリケーションに対して、前記第１のアプリケーションからのデータを取得させるためのリクエストを発行する発行手段と、を有し、前記第２のアプリケーションは、前記リクエストに応じて、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を経由した通信を利用せずに、前記特定情報を利用したデータ取得を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＷｅｂブラウザとＷｅｂアプリケーションが同一のデバイスに存在する場合、アプリケーション連携機能における引数データの取得を、アプリケーション連携機能を提供するモジュールから直接行う情報処理装置を提供することができる。従って、引数データの取得を、Ｗｅｂブラウザを介したＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルを用いて行う必要がなくなり、処理コストを低減することができる。
【図面の簡単な説明】
【００１２】
【図１】情報処理装置が接続されるシステム全体の構成を示す図である。
【図２】情報処理装置のハードウェア構成を示すブロック図である。
【図３】情報処理装置のソフトウェア構成を示すブロック図である。
【図４】ローカル環境からＷｅｂアプリが呼び出された場合のシーケンス図である。
【図５】リモート環境からＷｅｂアプリが呼び出された場合のシーケンス図である。
【図６】アプリ連携モジュールの判断処理を示すフローチャートである。
【図７】引数データ送信Ｓｃｒｉｐｔの処理を示すフローチャートである。
【図８】データ管理テーブルとアプリ登録情報テーブルの一例を示す図である。
【図９】コンテンツ領域に描画されたＷｅｂアプリの画面の一例を示す図である。
【図１０】本発明の実施形態におけるＳｃｒｉｐｔの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面などを参照して説明する。
【００１４】
（第１実施形態）
図１は、情報処理システムの全体の構成を示す図である。図１に示す情報処理システムは、ネットワーク１００を介して接続される情報処理装置１０１および１０２から構成される。ネットワーク１００は、各装置間で通信を行うための基盤であって、有線または無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットなどであってよい。そして、インターネットで通信を行う場合、ネットワーク１００と情報処理装置１０１および１０２の間にゲートウェイ（不図示）が存在し、ゲートウェイは、アドレス変換を行う。例えば、ゲートウェイにはルーター等が含まれる。なお、情報処理装置１０１および１０２は、Ｗｅｂブラウザ機能を有すれば、画像形成装置（Ｍｕｌｔｉｐｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）や、車載カーナビゲーションシステム、スマートフォン、ロボットなどであってよい。さらに、本実施形態では、図１に示すように、接続される情報処理装置の数を限定するものではなく、様々な情報処理装置が複数台接続されていてもよい。
【００１５】
図２は、本実施形態に係る情報処理装置１０１および１０２のハードウェア構成を示すブロック図である。情報処理装置１０１および１０２は、本実施形態に係る処理を制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＣＰＵ２０１のワークエリアを提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２から構成される。さらに、プログラムや様々な設定を記憶する記憶装置２０３、ユーザがコマンドの入力を行うユーザ入力装置２０４、画面表示を行うＵＩ表示装置２０５、他機器とネットワークによる通信を行うネットワーク装置２０６、メインバス２００により構成されている。なお、本実施形態は、特に断らない限り、情報処理装置１０１は、ＣＰＵ２０１がメインバス２００を介してＲＡＭ２０２、記憶装置２０３、ユーザ入力装置２０４、ＵＩ表示装置２０５、ネットワーク装置２０６を制御する。
【００１６】
また、記憶装置２０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等であってよい。そして、タッチパネルディスプレイのようにＵＩ表示装置２０５がユーザ入力装置２０４を兼ねてもよい。さらに、情報処理装置の種類によっては、画像読み取り装置や、画像印刷装置、ＧＰＳモジュールなど機器固有の装置が取り付けられていてもよい。
【００１７】
図３は、本実施形態に係る情報処理装置１０１のソフトウェア構成を示すブロック図である。図３に示す各機能部は、情報処理装置１０１が有しているＣＰＵ２０１が制御プログラムを実行することにより実現される。情報処理装置１０１は、Ｗｅｂアプリケーション３１０、Ｗｅｂアプリケーション３４０、Ｗｅｂブラウザ３２０、アプリ管理モジュール３３０、を有する。なお、本実施形態における情報処理装置１０２は、情報処理装置１０１と同じ構成であるが、Ｗｅｂブラウザ機能及びＷｅｂアプリケーション連携機能を有すれば他の機能を有していなくてもよい。ここで、連携機能の実現例としては、「Ｗｅｂ  Ｉｎｔｅｎｔｓ」や「Ｗｅｂ  Ａｃｔｉｖｉｔｉｅｓ」など、ほかにも同様の機能を備える独自ＡＰＩを利用した方法が挙げられる。
【００１８】
Ｗｅｂアプリケーション３１０は、通信部３１１および処理部３１２を有する。通信部３１１は、ネットワーク装置２０６を制御してＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルに従って通信を行うソフトウェアモジュールである。処理部３１２は、通信部３１１を介して、Ｗｅｂブラウザ３２０からの要求を受け付け、処理を実行する。具体的には、処理部３１２は、Ｗｅｂブラウザ３２０に表示された操作画面を介して入力されたユーザからの入力情報を、通信部３１１を介して受け取る。そして、受け取った入力情報に従って、Ｗｅｂブラウザ３２０で表示すべき操作画面や結果画面を送信したり、情報処理装置固有の機能（不図示）を動作させる。
【００１９】
Ｗｅｂブラウザ３２０は、通信部３２１、解析部３２２、画面表示部３２３、処理部３２４を有する。通信部３２１は、ＨＴＴＰプロトコルに従って、ネットワーク装置２０６を介してＷｅｂアプリケーション３１０およびＷｅｂアプリケーション３４０と通信する。具体的には、通信部３２１は、Ｗｅｂブラウザ３２０で表示した操作画面を介して入力される情報を、Ｗｅｂアプリケーション３１０およびＷｅｂアプリケーション３４０に対するリクエストとして送信する。また、通信部３２１は、Ｗｅｂアプリケーション３１０およびＷｅｂアプリケーション３４０から送信されるレスポンスを受信する。画面表示部３２３は、解析部３２２による解析結果や、処理部３２４によるＪａｖａＳｃｒｉｐｔ（登録商標）の実行結果に基づいて、ＨＴＭＬデータをＵＩ表示装置２０５に操作画面を表示する。
【００２０】
処理部３２４は、解析部３２２による解析結果に基づいて、ＪａｖａＳｃｒｉｐｔ（登録商標）を実行したり、情報処理装置固有の機能（不図示）を実行する。特に、Ｗｅｂアプリケーション３１０から取得したレスポンスには、後述のアプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００が記述されている。そして、処理部３２４は、アプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００に従って、アプリ管理モジュール３３０の連携制御部３３２に対してアプリケーション連携の開始を要求する。
【００２１】
また、Ｗｅｂアプリケーション３４０から取得したレスポンスには、後述の引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０が記述されている。処理部３２４は、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０に従って、アプリ管理モジュール３３０の連携制御部３３２からアプリケーション連携の引数データを取得し、Ｗｅｂアプリケーション３４０に対して引数データを送信する。なお、アプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０については、後述する図１０で説明する。
【００２２】
アプリ管理モジュール３３０は、Ｗｅｂアプリケーション同士を連携させる機能を提供する。アプリ管理モジュール３３０は、紐付け判断部３３１、連携制御部３３２、アプリ情報管理部３３３を有する。紐付け判断部３３１は、Ｗｅｂアプリケーションからの要求に従って、Ｗｅｂアプリケーションに連携する引数データを渡す。このとき、Ｗｅｂアプリケーションからの要求には、Ｗｅｂアプリケーションの識別子が含まれる。紐付け判断部３３１は、アプリ情報管理部３３３に記憶している情報と、Ｗｅｂアプリケーションの識別子から、Ｗｅｂアプリケーションに渡す引数データを自動で紐付ける。
【００２３】
そして、Ｗｅｂアプリケーションの識別子とＵＲＬの関連を示す情報は、アプリ情報管理部３３３に、後述のＷｅｂアプリケーション登録情報テーブル８１０として保存される。また、アプリケーション連携機能が呼び出された際の呼び出し先ＷｅｂアプリケーションのＵＲＬと引数は、アプリ情報管理部３３３に、後述の引数データ管理テーブル８００として保存される。
【００２４】
なお、引数データは、アプリケーション連携機能の呼び出し状況により複数存在する可能性があるため、紐付け判断部３３１によってＵＲＬの前方一致を確認して紐付けを行う。例えば、渡される識別子が「ＷｅｂＡｐｐ１」の場合、Ｗｅｂアプリケーション登録情報テーブル８１０から識別子が「ＷｅｂＡｐｐ１」の行に記載されている登録ＵＲＬ「ｈｔｔｐ：／／ｃａｎｏｎ−ａｐｐ／ｐｒｉｎｔａｐｐ／」を取得する。そして、引数データ管理テーブル８００から、取得したＵＲＬに前方一致する呼び出しＵＲＬを持つ行の引数データ「ＰｒｉｎｔＤａｔａＡ」を取得し、これをＷｅｂアプリケーションに渡す。
【００２５】
連携制御部３３２は、Ｗｅｂブラウザ３２０の処理部３２４からの要求に基づいて、アプリケーション連携を開始する。具体的には、連携制御部３３２は、処理部３２４からの要求を受け付けると、要求に含まれる呼び出し先のＷｅｂアプリケーションのＵＲＬと引数データを、アプリ情報管理部３３３の引数データ管理テーブル８００に登録する。そして、Ｗｅｂブラウザ３２０の処理部３２４に対して、新しいタブを開いて呼び出し先Ｗｅｂアプリケーションのコンテンツをロードするように指示する。
【００２６】
また、処理部３２４から引数データ取得要求があった場合には、連携制御部３３２は、アプリ情報管理部３３３に登録されている引数データを渡す。また、呼び出し先Ｗｅｂアプリケーションの実行が終わると、呼び出し先Ｗｅｂアプリケーションからの処理結果を受け取り、呼び出し元Ｗｅｂアプリケーションに渡す。
【００２７】
アプリ情報管理部３３３は、後述の図８（Ａ）に示す引数データ管理テーブル８００および後述の図８（Ｂ）に示すＷｅｂアプリケーション登録情報テーブル８１０を保持し、Ｗｅｂアプリケーションおよびアプリケーション連携に関わる情報を記憶している。アプリ情報管理部３３３は、連携制御部３３２からの要求（依頼）に基づいて、テーブルの情報を読み出したり、テーブルに書き込む。本実施形態では、アプリ管理モジュールは、Ｗｅｂブラウザ３２０と独立して存在しているが、ＯＳの機能の一部またはＷｅｂブラウザ３２０の中に存在していてもよい。
【００２８】
Ｗｅｂアプリケーション３４０は、通信部３４１と処理部３４２とアプリ連携データ取得部３４３を含む。通信部３４１は、ネットワーク装置２０６を制御してＨＴＴＰプロトコルに従って通信を行うソフトウェアモジュールである。処理部３４２は、通信部３４１を介して、Ｗｅｂブラウザ３２０からの要求を受け付け、処理を実行する。具体的には、処理部３４２は、Ｗｅｂブラウザ３２０に表示された操作画面を介して入力されたユーザからの入力情報（要求）を、通信部３４１を介して受け取る。また、受け取った入力情報に従って、Ｗｅｂブラウザ３２０で表示すべき操作画面や結果画面をレスポンスとして送信したり、情報処理装置固有の機能（不図示）を動作させる。アプリ連携データ取得部３４３は、Ｗｅｂブラウザ３２０から画面取得要求があった場合に、アプリ管理モジュール３３０の紐付け判断部３３１に対して、引数データ取得要求を行う。なお、アプリ連携データ取得部３４３の詳細については、後述する図４、図５、および図７の説明の中で行う。
【００２９】
図４は、情報処理装置１０１のみでアプリケーション連携機能が動作する場合のシーケンス図である。すなわち、アプリケーション連携機能を用いて、情報処理装置１０１内のＷｅｂアプリケーション３４０とＷｅｂアプリケーション３１０を連携させる場合の処理の流れを示す。本実施形態では、Ｗｅｂアプリケーション３１０は、ドキュメント管理機能を有し、Ｗｅｂアプリケーション３４０は、情報処理装置固有の機能（不図示）を用いた印刷機能を有する。ただし、本実施形態は、各Ｗｅｂアプリケーションの機能を限定するものではなく、それぞれのアプリケーションがどのような機能を有していてもよい。
【００３０】
まず、ステップＳ４０１で、ユーザがＷｅｂブラウザ３２０を起動し、Ｗｅｂアプリケーション３１０にアクセスする。具体的には、Ｗｅｂブラウザ３２０は、Ｗｅｂアプリケーション３１０（第１のアプリケーション）に対してＨＴＴＰプロトコルのＧＥＴメソッドによる画面取得要求（リクエスト）を送信する。そして、ステップＳ４０２で、Ｗｅｂアプリケーション３１０は、Ｗｅｂアプリケーション３１０のメイン画面のコンテンツをＷｅｂブラウザ３２０にレスポンスとして返信する。Ｗｅｂブラウザ３２０は、ステップＳ４０２で返信されたレスポンスを受信し、ＵＩ表示装置２０５にＷｅｂアプリケーション３１０のメイン画面を表示する。
【００３１】
ここで、Ｗｅｂアプリケーション３１０のメイン画面を表示したＷｅｂブラウザ３２０の一例を図９に示す。画面には、コンテンツ領域９０１、プリントボタン９０４、タブの状態を表示するタブ領域９０２、およびＷｅｂブラウザ３２０を操作するためのツールバー９０３が表示される。コンテンツ領域９０１には、Ｗｅｂアプリケーション３１０のメイン画面が表示されており、その中には、ユーザが選択したドキュメントの印刷を開始するためのプリントボタン９０４が含まれる。
【００３２】
次に、ステップＳ４０３で、メイン画面に表示されたプリントボタン９０４を押下することで、プリントボタン９０４に紐付けられるアプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００が実行される。これにより、Ｗｅｂブラウザ３２０の処理部３２４から、アプリ管理モジュール３３０（保持手段）の連携制御部３３２に対してアプリケーション連携機能の呼び出しが実行される。ここでは、呼び出し先のＷｅｂアプリケーションをＷｅｂアプリケーション３４０（第２のアプリケーション）として明示的に指定した場合の流れを記載するが、いくつかのアプリケーションの候補からユーザによって選択させてもよい。アプリケーション連携機能の呼び出しでは、呼び出し先ＷｅｂアプリケーションとしてＷｅｂアプリケーション３４０のＵＲＬ（特定情報）と印刷データが引数データとしてアプリ管理モジュール３３０に渡される。
【００３３】
次に、ステップＳ４０４で、連携制御部３３２は、ステップＳ４０３で受信したＷｅｂアプリケーション連携機能呼び出し要求に従って、呼び出し先ＷｅｂアプリケーションのＵＲＬと印刷データを引数データ管理テーブル８００に保存する。そして、Ｗｅｂブラウザ３２０に対して、新しいタブを開いて呼び出し先ＵＲＬのコンテンツをロードするように指示する。
【００３４】
次に、ステップＳ４０５で、Ｗｅｂブラウザ３２０は、ステップＳ４０４で指示された内容に従って、新規タブを開き、開いたタブをアクティブな状態とする。新規に開いたタブ、および元のタブの状態はタブ領域９０２に表示される。そして、ステップＳ４０６で、Ｗｅｂブラウザ３２０（発行手段）は、ステップＳ４０５で開いた新規タブにコンテンツをロードするため、装置内で動作するＷｅｂアプリケーション３４０に対して、画面要求のリクエストを送信する。
【００３５】
次に、ステップＳ４０７で、Ｗｅｂアプリケーション３４０は、ステップＳ４０６でＷｅｂブラウザ３２０から画面要求のリクエストを受け付けると、アプリ管理モジュール３３０に対して、引数データ取得要求（リクエスト）を送信する。具体的には、アプリ連携データ取得部３４３から、紐付け判断部３３１が提供するＡＰＩを介してアプリ管理モジュール３３０に引数データ取得要求を送信する。このとき、Ｗｅｂアプリケーション３４０の識別子が、引数データ取得要求（リクエスト）と共に、アプリ管理モジュール３３０に送信される。
【００３６】
この引数データ取得要求は、ＨＴＴＰプロトコルを経由した通信を利用せずに、ＮａｔｉｖｅコードのＡＰＩを直接呼び出すことにより実現する。これにより、ＪａｖａＳｃｒｉｐｔ（登録商標）によるＨＴＴＰプロトコルを利用した引数データの取得に比べ、高速なアクセスが期待できる。次に、ステップＳ４０８で、連携制御部３３２は、ステップＳ４０７で受信した引数データ取得要求に従って、Ｗｅｂアプリケーション３４０に返信すべき引数データを紐付け、Ｗｅｂブラウザ３２０に対してレスポンスとして返信する。
【００３７】
ここで、アプリ連携モジュール３３０における紐付け処理の流れを図６に示す。まず、ステップＳ６０１で、アプリ連携モジュール３３０の連携制御部３３２は、Ｗｅｂアプリケーション３４０から引数データ取得要求（リクエスト）を受け付ける。このとき、Ｗｅｂアプリケーション３４０から、Ｗｅｂアプリケーション３４０の識別子が渡される。次に、ステップＳ６０２で、連携制御部３３２は、Ｗｅｂアプリケーション登録情報テーブル８１０から、Ｗｅｂアプリケーション３４０の識別子に一致するＷｅｂアプリケーションの登録ＵＲＬを取得する。
【００３８】
次に、ステップＳ６０３で、連携制御部３３１は、引数データ管理テーブル８００にステップＳ６０２で取得したＵＲＬが存在するか否かを判定する。ステップＳ６０２で取得したＵＲＬが存在する場合（ＹＥＳ）、ステップＳ６０４に進む。そして、ステップＳ６０４で、引数データ管理テーブル８００に登録されている、ステップＳ６０２で取得したＵＲＬに対応する引数データを、Ｗｅｂブラウザ３２０に返信する。一方、ステップＳ６０２で取得したＵＲＬが存在しない場合 （ＮＯ)、ステップＳ６０５に進む。そして、ステップＳ６０５で、ステップＳ６０２で取得したＵＲＬに対応する引数データがないことをＷｅｂブラウザ３２０に返信する。
【００３９】
なお、本実施形態では、Ｗｅｂアプリケーション３４０から渡される識別子を元に紐付けを行っているが、他の方法で紐付けを行ってもよい。例えば、ステップＳ４０４でアプリ管理モジュール３３０からＷｅｂブラウザ３２０にコンテンツロードの要求を出す際に、ＵＲＬのクエリーに紐付けのためのユニークＩＤを付けてもよい。この場合、Ｗｅｂアプリケーション３４０からアプリ管理モジュール３３０に引数取得の要求を出す際にユニークＩＤを付けることによって紐付けを行う。
【００４０】
ここで、図４の説明に戻って、ステップＳ４０９で、Ｗｅｂアプリケーション３４０は、処理中画面のコンテンツをＷｅｂブラウザ３１０に返信する。Ｗｅｂブラウザ３２０は、受信したコンテンツをＵＩ表示装置２０５に表示する。そして、ステップＳ４１０で、Ｗｅｂアプリケーション３４０は、ステップＳ４０８で引数データとして受信した印刷データの印刷を開始する。
【００４１】
次に、ステップＳ４１１で、Ｗｅｂブラウザ３２０は、Ｗｅｂアプリケーション３４０に対して印刷処理が完了したか否かを問い合わせる。具体的には、ステップＳ４０９で受信した処理中画面のコンテンツに含まれるＪａｖａＳｃｒｉｐｔ（登録商標）による問い合わせが行われる。そして、ステップＳ４１２で、Ｗｅｂアプリケーション３４０は、ステップＳ４１１で受信した問い合わせに対するレスポンスとして、印刷完了状態を通知する。印刷が完了していない場合、ステップＳ４１１の印刷処理が完了したか否かを問い合わせる処理が一定時間ごとに繰り返し実行される。
【００４２】
次に、ステップＳ４１３で、Ｗｅｂブラウザ３２０は、ステップＳ４０５で開いた新規タブを閉じる。そして、ステップＳ４１４で、Ｗｅｂブラウザ３２０は、アプリケーション連携によるＷｅｂアプリケーション３４０の処理結果を、アプリ管理モジュール３３０に返信する。本実施形態では、処理結果として印刷成功を示す“ＲｅｓｕｌｔＣｏｄｅ＝ＯＫ”を返信する。
【００４３】
次に、ステップＳ４１５で、アプリ管理モジュール３３０は、Ｗｅｂアプリケーション３１０のコンテンツに、ステップＳ４０３のアプリケーション連携機能の呼び出しに対するレスポンスとして、ステップＳ４１４で受信した処理結果を送信する。そして、ステップＳ４１６で、Ｗｅｂブラウザ３２０上で動作するＷｅｂアプリケーション３１０のコンテンツが、ステップＳ４１５で受信したアプリケーション連携による処理結果を表示する。
【００４４】
なお、本実施形態では、呼び出し元のＷｅｂアプリケーションであるＷｅｂアプリケーション３１０は、情報処理装置１０１内に存在しているが、ネットワーク上で動作するＷｅｂアプリケーションであってよい。
【００４５】
図５は、Ｗｅｂアプリケーション連携機能を用いて、情報処理装置１０２から、情報処理装置１０１のＷｅｂアプリケーション３４０を呼び出す場合のシーケンス図である。図４で示すシーケンス図と同様に、Ｗｅｂアプリケーション３１０は、ドキュメント管理機能を有し、Ｗｅｂアプリケーション３４０は、情報処理装置固有の機能（不図示）を用いた印刷機能を有する場合の処理の流れを示す。ただし、本実施形態は、各Ｗｅｂアプリケーションの機能を限定するものではなく、それぞれのアプリケーションが、どのような機能を有していてもよい。
【００４６】
また、本実施形態に係る情報処理装置１０２は、例えば、スマートフォンに代表されるモバイル端末などである。本実施形態では、モバイル端末である情報処理装置１０２から、印刷機能を備えた情報処理装置１０１へのアプリケーション連携機能呼び出しを例に説明する。ただし、本実施形態は、情報処理装置の種類を限定するものではなく、どのような種類であってもよい。例えば、情報処理装置１０１を、通信機能を備えた自動車とすると、モバイル端末から車載システムへのアプリケーション連携による情報取得、施錠・ドアガラス制御の遠隔操作などのユースケースが考えられる。
【００４７】
まず、ステップＳ５０１で、ユーザが情報処理装置１０２を操作して、情報処理装置１０２のＷｅｂブラウザ３２０を起動し、情報処理装置１０２内部のＷｅｂアプリケーション３１０にアクセスする。具体的には、Ｗｅｂブラウザ３２０は、Ｗｅｂアプリケーション３１０に対してＨＴＴＰプロトコルのＧＥＴメソッドによる画面取得要求を送信する。
【００４８】
そして、ステップＳ５０２で、情報処理装置１０２のＷｅｂアプリケーション３１０は、Ｗｅｂアプリケーション３１０のメイン画面のコンテンツを情報処理装置１０２のＷｅｂブラウザ３２０に返信する。Ｗｅｂブラウザ３２０は、ステップＳ５０２で返信されたレスポンスを受信し、ＵＩ表示装置２０５にＷｅｂアプリケーション３１０のメイン画面を表示する。また、メイン画面には、ユーザが選択したドキュメントの印刷を開始するためのプリントボタン９０４が含まれる。
【００４９】
次に、ステップＳ５０３で、ユーザがメイン画面に表示されたプリントボタン９０４を押下することで、プリントボタン９０４に紐付けられているＷｅｂアプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００がブラウザ実行される。これにより、情報処理装置１０２のＷｅｂブラウザ３２０の処理部３２４から、情報処理装置１０２のアプリ管理モジュール３３０に対してアプリケーション連携機能の呼び出しが実行される。このとき、呼び出し先Ｗｅｂアプリケーションとして、情報処理装置１０１のＷｅｂアプリケーション３４０のＵＲＬと、印刷データが引数データとして情報処理装置１０２のアプリ管理モジュール３３０に渡される。
【００５０】
次に、ステップＳ５０４で、情報処理装置１０２のアプリ連携モジュール３３０は、受信したＷｅｂアプリケーション連携機能呼び出し要求に従って、呼び出し先ＷｅｂアプリケーションのＵＲＬと印刷データを引数データ管理テーブル８００に保存する。そして、情報処理装置１０２のＷｅｂブラウザ３２０に対して、新しいタブを開いて呼び出し先ＵＲＬのコンテンツをロードするように指示する。
【００５１】
次に、ステップＳ５０５で、情報処理装置１０２のＷｅｂブラウザ３２０は、ステップＳ５０４で指示された内容に従って、新規タブを開き、開いたタブをアクティブな状態とする。新規に開いたタブおよび元のタブは、タブ領域９０２に表示される。そして、ステップＳ５０６で、情報処理装置１０２のＷｅｂブラウザ３２０は、ステップＳ５０５で開いた新規タブから情報処理装置１０１のＷｅｂアプリケーション３４０に対して、画面要求のリクエストを送信する。
【００５２】
次に、ステップＳ５０７で、情報処理装置１０１のＷｅｂアプリケーション３４０は、情報処理装置１０１内のアプリ管理モジュール３３０に対して、アプリ連携データ取得部３４３を介して、引数データ取得要求を送信する。そして、ステップＳ５０８で、情報処理装置１０１のアプリ連携モジュール３３０は、図６に示すアプリ連携モジュール３３０における紐付け処理に従って、Ｗｅｂアプリケーション３４０に返信すべき引数データを紐付けする。しかしながら、情報処理装置１０１の連携モジュール３３０の引数データ管理テーブル８００に、情報処理装置１０１のＷｅｂアプリケーション３４０に対応するデータが存在しない。このため、Ｗｅｂアプリケーション３４０を介して、情報処理装置１０２のＷｅｂブラウザ３２０に対して引数データが存在しないという情報を返信する。
【００５３】
次に、ステップＳ５０９で、情報処理装置１０１のＷｅｂアプリケーション３４０は、処理中画面のコンテンツを情報処理装置１０２のＷｅｂブラウザ３２０に返信する。このとき、ステップＳ５０８で引数データが存在しなかったため、処理中画面のコンテンツに、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０を含める。本実施形態では、引数データが存在するか否かで引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０をレスポンスに含めるか否かを判断しているが、必ずレスポンスに含めるようにしてもよい。
【００５４】
次に、ステップＳ５１０で、情報処理装置１０２のＷｅｂブラウザ３２０は、ステップＳ５０９で受信したコンテンツを画面に表示し、そのコンテンツに含まれる引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０を実行する。引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０は、後述のロケーション判断部１０１１を含み、ロケーション判断部１０１１は、Ｗｅｂアプリケーション３４０が動作するサーバーのアドレスがローカルループバックアドレスか否かを判定する。ＷｅｂブラウザとＷｅｂアプリケーションが、ローカルループバックアドレスで接続される環境を、以後ローカルループバック環境と記載する。本実施形態では、情報処理装置１０２のＷｅｂブラウザ３２０から情報処理装置１０１のＷｅｂアプリケーション３４０を呼び出しているため、ローカルループバック環境での動作ではないと判定する。
【００５５】
次に、ステップＳ５１１で、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０は、Ｗｅｂアプリケーション３４０がリモート環境で動作しているという判定を受け、アプリ管理モジュール３３０に対して、引数データ取得要求（リクエスト）を送信する。なお、ローカルループバック環境で動作している場合は、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０は、引数データ取得要求を行わない。
【００５６】
そして、ステップＳ５１２で、アプリ連携モジュール３３０は、ステップＳ５１１で受信した引数データ取得要求に従って、引数データをレスポンスとして返信する。本実施形態では、引数データとして印刷データが返される。次に、ステップＳ５１３で、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０は、ステップＳ５１２で受信した引数データを、情報処理装置１０１のＷｅｂアプリケーション３４０に対して送信する。情報処理装置１０１のＷｅｂアプリケーション３４０は、アプリ連携データ取得部３４３で引数データを受信する。
【００５７】
ここで、ステップＳ５１０からステップＳ５１３で示すＷｅｂアプリケーション３４０が動作するサーバーのアドレスがローカルループバックアドレスか否かを判定し、引数データを取得する処理の流れを、図７を用いて説明する。まず、ステップＳ７０１で、情報処理装置１０２のＷｅｂブラウザ３２０は、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０の実行を開始する。次に、ステップＳ７０２で、ステップＳ５１０に記載のＷｅｂアプリケーション３４０が動作するサーバーのアドレスを取得する。すなわち、実行中のコンテンツのロケーションの情報を取得する。そして、ステップＳ７０３で、ステップＳ５１０に記載のＷｅｂアプリケーション３４０が動作するサーバーのアドレスがローカルループバック環境であるか否かを判定する。
【００５８】
ステップＳ７０３の判定結果から、Ｗｅｂアプリケーション３４０が動作するサーバーのアドレスがローカルループバック環境の場合（ＹＥＳ）、ステップＳ７０４に進む。そして、ステップＳ７０４で、情報処理装置１０２のＷｅｂブラウザ３２０は、ローカルループバック環境で動作していることを情報処理装置１０２のＷｅｂアプリケーション３４０に送信する。本実施形態では、“ｉｓＬｏｃａｌ＝ｔｒｕｅ”というパラメータがＨＴＴＰプロトコルを利用して送信される。また、送信された内容は、Ｗｅｂアプリケーション３４０のアプリ連携データ取得部３４３で受信される。
【００５９】
一方、Ｗｅｂアプリケーション３４０が動作するサーバーのアドレスがローカルループバック環境でない場合（ＮＯ）、ステップＳ７０５に進む。そして、ステップＳ７０５で、情報処理装置１０２のＷｅｂブラウザ３２０は、情報処理装置１０２のアプリ管理モジュール３３０から引数データを取得し、情報処理装置１０１のＷｅｂアプリケーション３４０に送信する。Ｗｅｂアプリケーション３４０は、アプリ連携データ取得部３４３で引数データを取得する。
【００６０】
ここで、図５の説明に戻って、ステップＳ５１４で、情報処理装置１０１のＷｅｂアプリケーション３４０は、情報処理装置１０２のＷｅｂブラウザ３２０に対して引数データの取得が完了したことをレスポンスとして通知する。そして、ステップＳ５１５で、情報処理装置１０１のＷｅｂアプリケーション３４０は、ステップＳ５１４で引数データとして受信した印刷データの印刷を実行する。ステップＳ５１６で、情報処理装置１０２のＷｅｂブラウザ３２０は、情報処理装置１０１のＷｅｂアプリケーション３４０に対して、印刷処理が完了したか否かを問い合わせる。具体的には、ステップＳ５０９で受信したコンテンツに含まれるＪａｖａＳｃｒｉｐｔ（登録商標）によりＨＴＴＰプロトコルのＧＥＴメソッドにより問い合わせが行われる。
【００６１】
次に、ステップＳ５１７で、情報処理装置１０１のＷｅｂアプリケーション３４０は、情報処理装置１０２のＷｅｂブラウザ３２０にステップＳ５１６で受信した問い合わせに対して、処理結果として印刷完了状態を通知する。なお、印刷が完了していない場合は、Ｗｅｂブラウザに印刷未完了のステータスが返され、ステップＳ５１６の印刷処理が完了したか否かの問い合わせ処理が一定時間ごとに繰り返し実行される。そして、ステップＳ５１８で、情報処理装置１０２のＷｅｂブラウザ３２０は、ステップＳ５０５で開いた新規タブを閉じる。
【００６２】
ステップＳ５１９で、情報処理装置１０２のＷｅｂブラウザ３２０は、アプリケーション連携による情報処理装置１０１のＷｅｂアプリケーション３４０の処理結果を、情報処理装置１０２のアプリ管理モジュール３３０に返信する。そして、ステップＳ５２０で、情報処理装置１０２のアプリ管理モジュール３３０は、ステップＳ５１９で受信した処理結果を、ステップＳ５０３のアプリケーション連携の呼び出しに対するレスポンスとして、情報処理装置１０２のＷｅｂブラウザ３２０に送信する。そして、ステップＳ５２１で、情報処理装置１０２のＷｅｂブラウザ３２０上で動作するＷｅｂアプリケーション３１０のコンテンツは、ステップ５２０で受信した処理結果を表示する。
【００６３】
図８は、引数データ管理テーブル８００とＷｅｂアプリケーション登録情報テーブル８１０の一例を示す図である。図８（Ａ）は、引数データ管理テーブル８００の一例を示す図であり、所定のアプリケーション連携機能の呼び出し先のＵＲＬと、ＵＲＬと関連付けた引数データがセットで保存されている。そして、アプリ管理モジュール３３０の連携制御部３３２が呼び出された際に、アプリケーション連携機能の呼び出し先のＵＲＬと引数データが登録される。また、引数データ管理テーブル８００は、アプリ情報管理部３３３に保存されている。
【００６４】
図８（Ｂ）は、Ｗｅｂアプリケーション登録情報テーブル８１０の一例を示す図であり、Ｗｅｂアプリケーション識別子と、ＷｅｂアプリケーションのＵＲＬがセットで保存されている。これは、Ｗｅｂアプリケーション３１０やＷｅｂアプリケーション３４０が動作するために必要な登録情報である。なお、本実施形態では、予めＷｅｂアプリケーション３１０およびＷｅｂアプリケーション３４０が起動しており、Ｗｅｂアプリケーション登録情報テーブル８１０にＷｅｂアプリケーション識別子と、ＷｅｂアプリケーションのＵＲＬが保存されているものとする。また、Ｗｅｂアプリケーション登録情報テーブル８１０は、アプリ情報管理部３３３に保存されている。
【００６５】
図１０は、本実施形態におけるＪａｖａＳｃｒｉｐｔ（登録商標）の一例を示す図である。図１０（Ａ）は、アプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００の一例を示す図である。アプリケーション連携機能呼び出しＪａｖａＳｃｒｉｐｔ（登録商標）１０００を実行することにより、呼び出し先ＷｅｂアプリケーションのＵＲＬと引数データをアプリ管理モジュール３３０に渡し、アプリケーション連携機能を呼び出す。また、アプリケーション連携機能が終了した場合に処理結果を画面に表示する。
【００６６】
図１０（Ｂ）は、引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０の一例を示す図である。引数データ送信ＪａｖａＳｃｒｉｐｔ（登録商標）１０１０は、ロケーション判断部１０１１を含み、呼び出し先Ｗｅｂアプリケーションの動作するサーバーのアドレスが、ローカルループバックアドレスか否かを判定する。呼び出し先Ｗｅｂアプリケーションの動作するサーバーのアドレスがローカルループバックアドレスである場合は“ｉｓＬｏｃａｌ＝ｔｒｕｅ”をＷｅｂアプリケーションに送信する。呼び出し先Ｗｅｂアプリケーションの動作するサーバーのアドレスがローカルループバックアドレスでない場合は、アプリケーション連携の引数データを取得し、呼び出し先Ｗｅｂアプリケーションに送信する。
【００６７】
なお、呼び出し元の情報処理装置で実行される処理を中心に説明したが、呼び出し先のＷｅｂアプリケーションを備える情報処理装置で実行される処理を中心に説明する。この場合、例えば、ネットワーク上の別の情報処理装置の連携機能からＷｅｂアプリケーションが呼ばれた場合、ＨＴＴＰプロトコルを経由した通信で呼び出し元からデータを取得する。なぜなら、この場合、特定情報に関連するデータがローカルで管理されていないので、ＨＴＴＰプロトコルを経由した通信データを取得する必要があるからである。
【００６８】
以上、本実施形態によれば、ローカルループバック環境で動作するＷｅｂアプリケーションは、アプリケーション連携機能における引数データの取得を、直接アプリケーション連携機能を提供するモジュールから行うことできる。すなわち、Ｗｅｂブラウザと、Ｗｅｂアプリケーションが同一のデバイスに存在する場合、アプリケーション連携機能における引数データの取得を、アプリケーション連携機能を提供するモジュールから直接行うことできる情報処理装置を提供することができる。これにより、Ｗｅｂブラウザを介してＨＴＴＰプロトコルを経由した通信を利用せずに引数データの取得し、処理コストを低減することができる。
【００６９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７０】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2016091234.tif 000003
【図２】
2016091234.tif 000004
【図３】
2016091234.tif 000005
【図４】
2016091234.tif 000006
【図５】
2016091234.tif 000007
【図６】
2016091234.tif 000008
【図７】
2016091234.tif 000009
【図８】
2016091234.tif 000010
【図９】
2016091234.tif 000011
【図１０】
2016091234.tif 000012