(57)【要約】  モバイル装置又はパーソナルコンピュータなどのユーザ装置上のブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、コンピュータプログラム製品及びシステムを提供する。ホストシステムが、ブラウザによって表示されるデータを生成するホストウェブアプリケーションを提供できるとともに、アプリケーションプログラミングインターフェイス（ＡＰＩ）と一体化して、ブラウザによって実行された時にブラウザとローカル装置通信アプリケーションとの間の通信を可能にするようなコードをホストウェブアプリケーションに埋め込むことができる。その後、ローカル装置通信アプリケーションは、データがプリンタで印刷されるようにすることなどの、ローカル装置への通信を制御することができる。提供する方法は、ブラウザ及び／又はオペレーティングシステムのタイプに依存せずに実装することができる。【選択図】図３
2018502389.tif 000002
【特許請求の範囲】
【請求項１】
ローカル装置と、ユーザ装置上で動作するように構成されたブラウザとの間の通信を可能にするように前記ユーザ装置上で動作するよう構成されたコンピュータプログラム製品であって、該コンピュータプログラム製品は、
前記ブラウザによって生成された要求を受け取り、
前記要求が、前記ブラウザから前記コンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断し、
前記ブラウザから送信される前記データと、前記ローカル装置に関する情報とに基づいて生成された装置コマンドが前記ローカル装置に送信されるようにする、
ように構成される、
ことを特徴とするコンピュータプログラム製品。
【請求項２】
前記コンピュータプログラム製品は、前記ローカル装置がデフォルトのローカル装置であると判断する、
請求項１に記載のコンピュータプログラム製品。
【請求項３】
前記コンピュータプログラム製品は、
利用可能なローカル装置のリストを提供して、前記ユーザ装置のユーザインターフェイス上に前記ブラウザを介して表示されるようにし、
ユーザが前記ユーザインターフェイスを介して前記リストから選択を行ったことに基づいて、ローカル装置選択指示を受け取る、
ようにさらに構成され、前記ローカル装置は、前記ローカル装置選択指示に基づいて識別される、
請求項１に記載のコンピュータプログラム製品。
【請求項４】
前記コンピュータプログラム製品は、要求側のホストウェブアプリケーションに関する前記ローカル装置の許可ステータスを検証するようにさらに構成される、
請求項１に記載のコンピュータプログラム製品。
【請求項５】
前記ユーザ装置に、前記ブラウザを介して、ホストウェブアプリケーションと前記ローカル装置とに関するユーザ許可プロンプトを出力させ、
前記ブラウザを介した前記ユーザ許可プロンプトの前記出力に応答して認可指示を受け取り、
前記認可指示に基づいて、前記ホストウェブアプリケーション及び前記ローカル装置に関する許可ステータスを更新する、
ようにさらに構成される、
請求項１に記載のコンピュータプログラム製品。
【請求項６】
ホストウェブアプリケーションへのスクリプトの埋め込みを可能にするように構成されたローカル装置通信アプリケーションプログラミングインターフェイスをさらに含み、前記要求が、前記ブラウザから送信されるデータの前記通信要求を含むとの前記判断は、前記スクリプトを実行することを含み、前記ブラウザからの前記要求の受け取り、及び前記ローカル装置への前記装置コマンドの前記送信は、前記スクリプトの実行に応答して行われる、
請求項１に記載のコンピュータプログラム製品。
【請求項７】
前記装置コマンドの生成は、ハイパーテキストマークアップ言語（ＨＴＭＬ）を、該ＨＴＭＬから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む、
請求項１に記載のコンピュータプログラム製品。
【請求項８】
前記データは、前記ブラウザによって実行される非同期的ＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しを介して受け取られる、
請求項１に記載のコンピュータプログラム製品。
【請求項９】
前記ローカル装置はプリンタであり、該プリンタに送信される前記装置コマンドは、印刷コマンドである、
請求項１に記載のコンピュータプログラム製品。
【請求項１０】
前記プリンタは、ゼブラ専用言語（Ｚｅｂｒａ  Ｐｒｏｐｒｉｅｔａｒｙ  Ｌａｎｇｕａｇｅ）によって制御されるプリンタである、
請求項９に記載のコンピュータプログラム製品。
【請求項１１】
前記装置コマンドは、
前記ローカル装置が前記ユーザ装置にローカル装置構成情報を戻すこと、
前記ローカル装置が前記ユーザ装置にローカル装置ステータス情報を戻すこと、又は、
前記ローカル装置がローカル装置構成情報を印刷すること、
のうちの少なくとも１つを引き起こす、
請求項１に記載のコンピュータプログラム製品。
【請求項１２】
前記選択されたローカル装置からローカル装置応答を受け取るようにさらに構成される、
請求項１に記載のコンピュータプログラム製品。
【請求項１３】
ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にするシステムであって、
前記ユーザ装置上で動作するように構成されたローカル装置通信アプリケーションと、
ホストシステム上で動作するように構成されたホストウェブアプリケーションと、
前記ホストシステム上で動作するように構成されたローカル装置通信アプリケーションプログラミングインターフェイスと、
を備え、前記ローカル装置通信アプリケーションプログラミングインターフェイスは、前記ホストウェブアプリケーションと通信するように構成され、前記ホストウェブアプリケーションは、前記ブラウザによって表示されるデータを生成するとともに、前記ブラウザが前記ローカル装置通信アプリケーションと通信できるようにし、前記ローカル装置通信アプリケーションは、前記ブラウザから前記データを受け取り、該データを装置固有のフォーマットに変換し、該変換したデータを前記ローカル装置に送信するように構成される、
ことを特徴とするシステム。
【請求項１４】
前記ローカル装置通信アプリケーションは、利用可能なローカル装置を前記ブラウザに提供して表示されるようにし、ローカル装置選択指示を受け取るようにさらに構成され、前記ローカル装置は、前記ローカル装置選択指示に基づいて識別される、
請求項１３に記載のシステム。
【請求項１５】
前記データの変換は、ハイパーテキストマークアップ言語（ＨＴＭＬ）を、該ＨＴＭＬから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む、
請求項１３に記載のシステム。
【請求項１６】
前記ローカル装置はプリンタであり、該プリンタに送信される前記装置コマンドは、印刷コマンドである、
請求項１３に記載のシステム。
【請求項１７】
前記ローカル装置通信アプリケーションは、前記ローカル装置からのローカル装置応答を装置固有のフォーマットで受け取り、前記ローカル装置応答に基づいて、前記ブラウザによって表示されるメッセージが提供されるようにするようさらに構成される、
請求項１３に記載のシステム。
【請求項１８】
前記ローカル装置通信アプリケーションは、要求側のホストウェブアプリケーションに関する前記ローカル装置の許可ステータスを検証するようにさらに構成される、
請求項１３に記載のシステム。
【請求項１９】
前記ローカル装置通信アプリケーションは、
前記ユーザ装置に、前記ブラウザを介して、ホストウェブアプリケーションと前記ローカル装置とに関するユーザ許可プロンプトを出力させ、
前記ブラウザを介した前記ユーザ許可プロンプトの前記出力に応答して認可指示を受け取り、
前記認可指示に基づいて、前記ホストウェブアプリケーション及び前記ローカル装置に関する許可ステータスを更新する、
ようにさらに構成される、
請求項１３に記載のシステム。
【請求項２０】
前記データは、前記ブラウザによって実行される非同期的ＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しを介して受け取られる、
請求項１３に記載のシステム。
【請求項２１】
ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にする、コンピュータにより実行される方法であって、
前記ブラウザによって生成された要求を受け取るステップと、
前記要求が、前記ブラウザから前記コンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断するステップと、
前記ブラウザから送信される前記データと前記ローカル装置に関する情報とに基づいて生成された装置コマンドが前記ローカル装置に送信されるようにするステップと、
を含むことを特徴とするコンピュータにより実行される方法。
【請求項２２】
前記ブラウザから受け取った前記データを、ローカル装置のタイプに基づいて装置固有のフォーマットに変換するステップをさらに含む、
請求項２１に記載のコンピュータにより実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の様々な実施形態は、ユーザ装置のブラウザとローカル装置との間の通信を可能にすることに関する。本出願人は、ローカルプリンタを用いてユーザ装置上のブラウザからのコンテンツを印刷することに関連するいくつかの不備及び問題点を確認した。本出願人は、努力、工夫及び革新的考えの適用を通じ、本発明によって具体化される、以下で詳細に説明する解決策を構築することにより、これらの確認された問題点の多くを解決した。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】米国特許第８，７１７，２８５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、モバイル装置又はパーソナルコンピュータなどのユーザ装置上で動作するように構成されたブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、装置及びコンピュータプログラム製品を提供する。ユーザ装置上で動作するブラウザによって表示される多くのウェブサイトは、プリンタなどのローカルネットワーク装置と直接相互作用することができない。様々なシステムのウェブ開発者は、自社のウェブページのユーザがユーザ装置から合理的かつ安全に印刷を行えるようにしたいと望むことができる。ブラウザから直接印刷を行うための現在の実装は、オペレーティングシステム及び／又はブラウザ固有の方法を含む。例えば、ＡｃｔｉｖｅＸ（登録商標）及びＪａｖａ（登録商標）アプレットを実装すれば、ブラウザから直接印刷を行うことができるが、これらのアプリケーションは、全てのユーザ装置上で利用できるわけではなく、セキュリティの脆弱性を招く恐れもある。
【課題を解決するための手段】
【０００４】
本明細書に示す方法、コンピュータプログラム製品及び装置は、ユーザ装置上で動作するブラウザとプリンタなどのローカル装置との間の通信を可能にする合理的手法を提供する。本明細書に示す実施形態例は、ブラウザのタイプにもオペレーティングシステムにも依存しない。本明細書に示す実施形態例によれば、ホストシステムの開発者が、アプリケーションプログラミングインターフェイス（ＡＰＩ）との一体化を図ることにより、ユーザ装置上で動作するブラウザにホストシステムによって配信されたホストウェブアプリケーションが、ユーザ装置のインストール済みのローカル装置通信アプリケーションと通信するようにすることができる。この結果、ローカル装置通信アプリケーションは、他のローカル装置への通信及び／又は印刷をホストシステムによる指示通りに制御することができる。
【０００５】
ローカル装置と、ユーザ装置上で動作するように構成されたブラウザとの間の通信を可能にするようにユーザ装置上で動作するよう構成されたコンピュータプログラム製品であって、ブラウザによって生成された要求を受け取り、要求が、ブラウザからコンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断し、ブラウザから送信されるデータと、ローカル装置に関する情報とに基づいて生成された装置コマンドがローカル装置に送信されるようにするよう構成されたコンピュータプログラム製品を提供する。
【０００６】
いくつかの例では、コンピュータプログラム製品が、ローカル装置がデフォルトのローカル装置であると判断する。コンピュータプログラム製品は、利用可能なローカル装置のリストを提供して、ユーザ装置のユーザインターフェイス上にブラウザを介して表示されるようにし、ユーザがユーザインターフェイスを介してリストから選択を行ったことに基づいて、ローカル装置選択指示を受け取るようにさらに構成され、ローカル装置は、ローカル装置選択指示に基づいて識別される。いくつかの例では、コンピュータプログラム製品が、要求側のホストウェブアプリケーションに関するローカル装置の許可ステータスを検証するようにさらに構成される。
【０００７】
コンピュータプログラム製品は、ユーザ装置に、ブラウザを介して、ホストウェブアプリケーションとローカル装置とに関するユーザ許可プロンプトを出力させ、ブラウザを介したユーザ許可プロンプトの出力に応答して認可指示を受け取り、認可指示に基づいて、ホストウェブアプリケーション及びローカル装置に関する許可ステータスを更新するようにさらに構成される。
【０００８】
コンピュータプログラム製品は、ホストウェブアプリケーションへのスクリプトの埋め込みを可能にするように構成されたローカル装置通信アプリケーションプログラミングインターフェイスをさらに含み、要求が、ブラウザから送信されるデータの通信要求を含むとの判断は、スクリプトを実行することを含み、ブラウザからの要求の受け取り、及びローカル装置への装置コマンドの送信は、スクリプトの実行に応答して行われる。
【０００９】
いくつかの例では、装置コマンドの生成が、ハイパーテキストマークアップ言語（ＨＴＭＬ）を、ＨＴＭＬから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む。いくつかの例では、データが、ブラウザによって実行される非同期的ＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しを介して受け取られる。いくつかの例では、ローカル装置がプリンタであり、プリンタに送信される装置コマンドが印刷コマンドである。いくつかの例では、プリンタが、ゼブラ専用言語（Ｚｅｂｒａ  Ｐｒｏｐｒｉｅｔａｒｙ  Ｌａｎｇｕａｇｅ）によって制御される。
【００１０】
いくつかの例では、装置コマンドが、ローカル装置がユーザ装置にローカル装置構成情報を戻すこと、ローカル装置がユーザ装置にローカル装置ステータス情報を戻すこと、又はローカル装置がローカル装置構成情報を印刷すること、のうちの少なくとも１つを引き起こす。いくつかの例では、コンピュータプログラム製品が、選択されたローカル装置からローカル装置応答を受け取るようにさらに構成される。
【００１１】
また、ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にするシステムであって、ユーザ装置上で動作するように構成されたローカル装置通信アプリケーションと、ホストシステム上で動作するように構成されたホストウェブアプリケーションと、ホストシステム上で動作するように構成されたローカル装置通信アプリケーションプログラミングインターフェイスとを含み、ローカル装置通信アプリケーションプログラミングインターフェイスが、ホストウェブアプリケーションと通信するように構成され、ホストウェブアプリケーションが、ブラウザによって表示されるデータを生成するとともに、ブラウザがローカル装置通信アプリケーションと通信できるようにし、ローカル装置通信アプリケーションが、ブラウザからデータを受け取り、このデータを装置固有のフォーマットに変換し、変換したデータをローカル装置に送信するように構成される、システムも提供する。
【００１２】
ローカル装置通信アプリケーションは、利用可能なローカル装置をブラウザに提供して表示されるようにし、ローカル装置選択指示を受け取るようにさらに構成され、ローカル装置は、ローカル装置選択指示に基づいて識別される。いくつかの例では、データの変換が、ハイパーテキストマークアップ言語（ＨＴＭＬ）を、ＨＴＭＬから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む。
【００１３】
いくつかの例では、ローカル装置がプリンタであり、プリンタに送信される装置コマンドが印刷コマンドである。ローカル装置通信アプリケーションは、ローカル装置からのローカル装置応答を装置固有のフォーマットで受け取り、ローカル装置応答に基づいて、ブラウザによって表示されるメッセージが提供されるようにするようさらに構成される。ローカル装置通信アプリケーションは、要求側のホストウェブアプリケーションに関するローカル装置の許可ステータスを検証するようにさらに構成される。
【００１４】
いくつかの例では、ローカル装置通信アプリケーションが、ユーザ装置に、ブラウザを介して、ホストウェブアプリケーションとローカル装置とに関するユーザ許可プロンプトを出力させ、ブラウザを介したユーザ許可プロンプトの出力に応答して認可指示を受け取り、認可指示に基づいて、ホストウェブアプリケーション及びローカル装置に関する許可ステータスを更新するようにさらに構成される。
【００１５】
いくつかの例では、データが、ブラウザによって実行される非同期的ＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しを介して受け取られる。
【００１６】
また、ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にする、コンピュータにより実行される方法であって、ブラウザによって生成された要求を受け取るステップと、要求が、ブラウザからコンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断するステップと、ブラウザから送信されたデータとローカル装置に関する情報とに基づいて生成された装置コマンドがローカル装置に送信されるようにするステップとを含むコンピュータにより実行される方法も提供する。
【００１７】
いくつかの例では、請求項２１に記載のコンピュータにより実行される方法が、ブラウザから受け取ったデータを、ローカル装置のタイプに基づいて装置固有のフォーマットに変換するステップをさらに含む。
【図面の簡単な説明】
【００１８】
【図１】実施形態例によるシステムの概略図である。
【図２】実施形態例によるユーザ装置の概略図である。
【図３】実施形態例による動作及びデータのフローチャートである。
【図４】実施形態例による動作のフローチャートである。
【図５】実施形態例によるユーザインターフェイスを示す図である。
【図６】実施形態例によるユーザインターフェイスを示す図である。
【図７】実施形態例による動作のフローチャートである。
【図８】実施形態例による、ローカル装置によって印刷されるラベル例を示す図である。
【発明を実施するための形態】
【００１９】
本明細書に示す実施形態例によれば、モバイル装置又はパーソナルコンピュータなどのユーザ装置上で動作するように構成されたブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、コンピュータプログラム製品及びシステムが提供される。ホストシステムが、ブラウザによって表示されるデータを生成するホストウェブアプリケーションを提供できるとともに、ローカル装置の通信アプリケーションプログラミングインターフェイス（ＡＰＩ）と一体化して、ブラウザによって実行された時にブラウザとローカル装置通信アプリケーションとの間の通信を可能にするようなコードをホストウェブアプリケーションに埋め込むことができる。この結果、ローカル装置通信アプリケーションは、ブラウザによって提示されたデータがプリンタで印刷されるようにすることなどの、ローカル装置への通信を制御することができる。
【００２０】
本明細書で使用する「ローカル装置通信ＡＰＩ」は、ホストシステムに記憶された又はホストシステムが別様にアクセスできる、ブラウザとローカル装置通信アプリケーションとの間の通信を可能にするように構成された、ライブラリ又はその集合などのコンピュータプログラムコードを含むことができる。
【００２１】
本明細書で使用する「ローカル装置通信アプリケーション」は、ローカル装置通信ＡＰＩと連動するホストウェブアプリケーションによる指示通りにブラウザとローカル装置との間の通信を可能にするようにユーザ装置上で動作するよう構成されたアプリケーション又はアプリである。
【００２２】
本明細書で使用する「スクリプト」は、ローカル装置通信ＡＰＩと連動するホストウェブアプリケーションによる指示通りにクライアント又はブラウザによって実行されるように構成された、ＪａｖａＳｃｒｉｐｔ(登録商標)などのいずれかのコンピュータプログラムコードを含むことができる。
【００２３】
本明細書で使用する「装置要求」は、利用可能なローカル装置又はローカル装置に送信すべきデータに関する情報を要求する、ブラウザからローカル装置通信アプリケーションへのあらゆる通信を含むことができる。
【００２４】
本明細書で使用する「装置コマンド」は、ローカル装置通信アプリケーションからローカル装置に送信されるように構成されたコンピュータプログラムコードなどのあらゆる通信を含むことができる。いくつかの例では、装置コマンドを、「装置固有のコマンド」、又は特定のタイプのローカル装置専用にフォーマットされた装置コマンドとすることができ、そのタイプのローカル装置しか解釈できないものとすることができる。装置固有のコマンドは、印刷コマンドを含むことができる。
【００２５】
本明細書で使用する「データ」は、処理のためにローカル装置に送信すべき、ブラウザによって提供されるあらゆるデータを含むことができる。例えば、データは、ローカルプリンタによって印刷すべきコンテンツを定めるコンピュータプログラムコードを含むことができる。
【００２６】
本明細書で使用する「ローカル装置選択指示」は、ユーザ装置からデータを送信すべき特定のローカル装置を識別するあらゆる情報を含むことができる。ローカル装置選択指示は、例えばたった１つのローカル装置しか利用できない場合にはデフォルトとすることができる。或いは、ローカル装置選択指示は、予め設定されたデフォルトのローカル装置を示すこともできる。いくつかの例では、ユーザが、利用可能なローカル装置のリストから特定のローカル装置を選択することができる。
【００２７】
本明細書で使用する「ローカル装置応答」は、装置コマンドに応答して送信されるローカル装置からユーザ装置への通信を含むことができる。従って、ローカル装置応答は、装置コマンドの受け取り及び／又は処理の完了を確認することができる。
【００２８】
本明細書で使用する「許可ステータス」は、ホストウェブアプリケーション及び／又はホストシステムが特定のローカル装置にアクセスする許可を有しているか否かを示すあらゆる情報を含むことができる。許可ステータスは、ローカル装置通信アプリケーションが保持及び／又はアクセスすることができる。
【００２９】
本明細書で使用する「ユーザ許可プロンプト」は、ホストウェブアプリケーション及び／又はホストシステムがローカル装置にアクセスする許可を要求する、ユーザ装置のユーザに出力されるあらゆるメッセージを含むことができる。ユーザ許可プロンプトは、例えばブラウザを介してユーザに提供することができる。
【００３０】
従って、本明細書で使用する「認可指示」は、ホストウェブアプリケーション及び／又はホストシステムがローカル装置にアクセスする許可が与えられたことを示すあらゆるユーザ入力と見なすことができる。許可ステータスは、例えばブラウザを介して提供できる認可指示に基づいて更新することができる。
【００３１】
図１は、ユーザ装置上のブラウザとローカル装置との間の通信を可能にするシステム例１００の概略図である。ユーザ装置１０２は、スマートフォン及び／又はタブレットなどのいずれかのモバイル装置を含むことができ、パーソナルコンピュータ及びラップトップなどの他のコンピュータ装置に比べて相対的に軽量かつ小型であることを特徴とすることができる。従って、ユーザ装置１０２は、より大型で重いコンピュータ装置に比べてメモリ及び計算処理速度が制限されることがある。本明細書に示す実施形態例は、ユーザ装置１０２がモバイル装置として実装されている場合に特に有利であるが、これに加えて、又はこれとは別に、ユーザ装置１０２は、パーソナルコンピュータ、ラップトップ、及び／又はブラウザを実行できるいずれかの装置などの他のユーザ装置上に実装することもできる。さらに、実施形態例は、あらゆるオペレーティングシステムを実装することができる。
【００３２】
ユーザ装置１０２は、ユーザ装置１０２上で動作する他のアプリケーションとの相互作用、及び／又はネットワークを介した他の装置との相互作用などのためにローカルにインストールされたアプリケーション又は「アプリ」を実行することができる。通常、このようなアプリは、タブレット又はスマートフォンなどのユーザ装置上で実行するように設計される。例えば、Ａｐｐｌｅ社のｉＯＳ（登録商標）、Ｇｏｏｇｌｅ社のＡｎｄｒｏｉｓ（登録商標）、又はＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ８（登録商標）などのユーザ装置のオペレーティングシステム上で実行されるアプリを提供することができる。通常、これらのプラットフォームは、アプリ同士の通信、並びにアプリとユーザ装置の特定のハードウェアコンポーネント及びソフトウェアコンポーネント、サードパーティサービス及び／又はネットワークとの通信を可能にするフレームワークを提供する。例えば、上述したオペレーティングシステムの各々は、ロケーションサービス回路、有線及び無線ネットワークインターフェイス、ユーザの連絡先、及び他のアプリケーションと相互作用するためのフレームワークを、アプリ間の相互作用を改善しながら消費者のプライバシー及びセキュリティも保護する形で提供する。いくつかの実施形態では、オペレーティングシステムが、外部装置（例えば、ホームオートメーションシステム及び屋内ナビゲーションシステムなど）と相互作用するための改善された通信インターフェイスを提供することもできる。通常、アプリの外部で実行されるハードウェアモジュール及びソフトウェアモジュールとの通信は、装置のオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェイスを介して行われる。
【００３３】
ローカル装置通信アプリケーション１０４は、ユーザ装置１０２上で動作するアプリであり、ユーザ装置１０２上で、及び／又はローカルネットワーク１１２などのローカルネットワークを介して外部装置上で動作するブラウザ１０６と通信するように構成することができる。ローカル装置通信アプリケーション１０４については、図２に関連してさらに詳細に説明する。
【００３４】
ブラウザ１０６は、ユーザ装置１０２上に表示されるコンテンツを提供するように構成されたいずれかのアプリケーションを含むことができる。ブラウザ１０６としては、以下に限定されるわけではないが、Ｆｉｒｅｆｏｘ（登録商標）、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）、Ｃｈｒｏｍｅ（商標）、Ｏｐｅｒａ（商標）、及びＳａｆａｒｉ（登録商標）を挙げることができる。ブラウザ１０６は、モバイル版のブラウザとすることができ、パーソナルコンピュータ又はラップトップと共に使用されるように構成されたブラウザに比べて機能が制限されることもある。いくつかの例では、ユーザ装置１０２上に複数のモバイルブラウザ１０６が存在することができる。ブラウザ１０６は、ホストウェブアプリケーション１０７及び／又はホストシステム１０８によって提供されたコンテンツを表示するように構成することができる。
【００３５】
システム１００は、任意の数のホストシステム１０８を含むことができる。ホストシステム１０８は、ローカルネットワーク１１２を介してホストウェブアプリケーション１０７などのウェブアプリケーションをユーザ装置１０２に提供するように構成されたいずれかのコンピュータ装置、ネットワーク及び／又はサーバなどを含むことができる。ホストシステム１０８は、インターネットなどのネットワーク１１４を介してユーザ装置１０２と通信することができる。具体的には、ホストシステム１０８は、ネットワーク１１４を介して、ブラウザ１０６によって表示されるホストウェブアプリケーション１０７を提供することができる。
【００３６】
ホストウェブアプリケーション１０７は、ローカル装置通信ＡＰＩ１０９と一体化することができる。ローカル装置通信ＡＰＩ１０９は、ホストシステム１０８に記憶された又はホストシステム１０８が別様にアクセスできる、ブラウザ１０６とローカル装置通信アプリケーション１０４との間の通信を可能にするように構成された、ライブラリ又はその集合などのコンピュータプログラムコードを含むことができる。例えば、ローカル装置通信ＡＰＩ１０９は、本明細書で説明するメモリ２０４のものと同様の記憶装置に記憶することができる。実施形態例によれば、ローカル装置通信ＡＰＩ１０９は、ホストウェブアプリケーション１０７によって実装された時に、ブラウザ１０６とローカル装置通信アプリケーション１０４との間の通信を可能にする。従って、以下でさらに詳細に説明するように、ローカル装置通信ＡＰＩ１０９は、ホストウェブアプリケーション１０７によって生成されたコンテンツを、ブラウザ１０６による実行時にローカル装置通信アプリケーション１０４を介してローカル装置に送信できるようにローカル装置通信アプリケーション１０４と連動するような構成要素を、ホストシステム１０８の開発者がホストウェブアプリケーション１０７に容易に組み込めるようにする。いくつかの例では、ローカル装置通信ＡＰＩ１０９を、ホストシステム１０８上に実装することも、或いはサードパーティサーバ又はさらなるホストシステム１０８などのリモート装置上でアクセスされるようにすることもできる。この点、ホストシステム１０８は、分散システム又は分散ネットワークとして実装することができ、本明細書で説明する処理回路２０１と同様の処理回路を含むことができる。ホストシステム１０８は、ローカル装置通信ＡＰＩ１０９によって有効にされるウェブアプリケーション、コンテンツ及び機能を任意の数のユーザ装置１０２に提供することができる。
【００３７】
システム１００は、任意の数のローカル装置１１０をさらに含むことができる。ローカル装置１１０は、ローカルネットワーク１１２を介してユーザ装置１０２と通信するいずれかの外部装置を含むことができる。ローカル装置例１１０は、以下に限定するわけではないが、プリンタ、スキャナ、コンピュータ装置及び／又はユーザ装置などを含むことができる。ローカル装置通信アプリケーション１０４は、ユーザ装置１０２とローカル装置１１０との間の通信を可能にする。
【００３８】
従って、ローカルネットワーク１１２は、直接接続又は無線通信などによってユーザ装置１０２と通信するように構成された任意の数のローカル装置１１０を含むことができる。例えば、ローカルネットワーク１１２は、ローカルエリアネットワーク（ＬＡＮ）として実装することができ、ユニバーサルシリアルバス（ＵＳＢ）、シリアルポート及び／又はパラレルポートなどの直接接続によって装置間の通信を容易にすることができる。これに加えて、又はこれとは別に、ローカルネットワーク１１２は、ＺｉｇＢｅｅ（登録商標）、アクティブな近距離通信（ＮＦＣ）及び／又はその他の無線プロトコルによって通信を可能にするように構成することもできる。
【００３９】
いくつかの例では、ネットワーク１１２及び１１４を同じネットワークとすることができ、或いはローカルネットワーク１１２及び／又は１１４が互いの一部を含むこともできる。一方で、いくつかの実施形態では、ホストシステム１０８が、ローカル装置１１０と通信するのではなく、ネットワーク１１４を介してユーザ装置１０２と通信することもできる。従って、ローカル装置１１０は、必ずしもインターネット又はネットワーク１１４を介して利用可能なわけではなく、むしろ（上述したようなＬＡＮ及び／又は直接接続などとして実装できる）ローカルネットワーク１１２を介してユーザ装置１０２と通信することができる。いくつかの実施形態では、ネットワーク１１４がインターネットを含むことができる。
【００４０】
図２は、実施形態例によるユーザ装置例１０２の概略図である。いくつかの実施形態では、ユーザ装置１０２上で動作する処理回路２０１が、プロセッサ２０２、メモリ２０４、入力／出力回路２０６、通信回路２０８、ローカル装置通信アプリケーション１０４、及び／又はブラウザ１０６のうちのいずれかを含む回路チップとして具体化され、又はこれらを含むことができる。ローカル装置通信アプリケーション１０４は、ローカル装置構成回路２１０、ローカル装置サーバ回路２１２、及び／又はローカル装置ドライバ回路２１４のうちのいずれかをさらに含むことができ、いくつかの実施形態ではユーザ装置１０２のメモリ２０４及びプロセッサ２０２上に実装することができる。処理回路２０１は、（例えば、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせを用いて）本明細書で説明する動作を実行するように構成された回路チップ（例えば、集積回路チップ）として具体化することができる。回路チップは、本明細書で説明する機能を提供するための１又は２以上の動作を実行する手段を構成することができる。
【００４１】
プロセッサ２０２は、上記で紹介した処理機能及び以下でさらに詳細に説明する処理機能の一部又は全部を実行することができる。メモリ２０４は、ローカル装置１１０の構成及びローカル装置１１０に送信すべきデータなどのデータを記憶するために利用することができる。プロセッサ２０２は、様々な動作を実行しながら必要に応じてこのデータの記憶及びデータへのアクセスを行うことができる。
【００４２】
プロセッサ２０２は、多くの異なる方法で具体化することができる。例えば、プロセッサ２０２は、マイクロプロセッサ又はその他の処理要素、コプロセッサ、コントローラ、或いは、例えばＡＳＩＣ（特定用途向け集積回路）又はＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの集積回路を含む他の様々なコンピュータ装置又は処理装置のうちの１つ又は２つ以上などの様々な処理手段として具体化することができる。プロセッサ２０２は、単一のプロセッサとして示しているが、複数のプロセッサを含むこともできると理解されるであろう。これらの複数のプロセッサは、互いに動作可能に通信することができ、本明細書で説明するようなローカル装置通信アプリケーション１０４及び／又はユーザ装置１０２の１又は２以上の機能を実行するようにまとめて構成することができる。複数のプロセッサは、単一のコンピュータ装置上に具体化することも、或いは複数のコンピュータ装置にわたって分散することもできる。いくつかの実施形態例では、プロセッサ２０２を、メモリ２０４に記憶された命令、又はプロセッサ２０２が別様にアクセスできる命令を実行するように構成することができる。従って、プロセッサ２０２は、ハードウェアによって構成されるか、それともハードウェアとソフトウェアの組み合わせによって構成されるかに関わらず、本発明の実施形態による動作を実行しながら適宜に構成できる（例えば、処理回路２０１の形の回路内に物理的に具体化される）エンティティを表すことができる。従って、プロセッサ２０２は、例えばＡＳＩＣ又はＦＰＧＡなどとして具体化された場合、本明細書で説明する動作を実行するように明確に構成されたハードウェアとすることができる。或いは、別の例として、プロセッサ２０２がソフトウェア命令の実行者として具体化された場合、これらの命令が、本明細書で説明する１又は２以上の動作を実行するようにプロセッサ２０２を明確に構成することができる。
【００４３】
いくつかの実施形態例では、メモリ２０４が、例えば固定式又は取り外し式とすることができる揮発性及び／又は不揮発性メモリなどの１又は２以上の非一時的記憶装置を含むことができる。この点、メモリ２０４は、非一時的コンピュータ可読記憶媒体を含むことができる。メモリ２０４は、単一のメモリとして示しているが、１又は２以上の実施形態例による様々な機能をユーザ装置１０２が実行できるようにする情報、データ、アプリケーション及び／又は命令などを記憶するように構成された複数のメモリを含むこともできると理解されるであろう。例えば、メモリ２０４は、検出されたローカル装置のいずれかに関する許可情報及び系列情報を記憶するように構成することができる。また、メモリ２０４は、プロセッサ２０２が処理する入力データをバッファリングするように構成することもできる。これに加えて、又はこれとは別に、メモリ２０４は、プロセッサ２０２が実行する命令を記憶するように構成することもできる。さらに別の代替例として、メモリ２０４は、様々なファイル、コンテンツ又はデータを記憶できる１又は２以上のデータベースを含むこともできる。メモリ２０４のコンテンツの中でもとりわけ、ローカル装置通信アプリケーション１０４及び／又はブラウザ１０６などの、本明細書で説明する機能を実施するためにプロセッサ２０２が実行するアプリケーションを記憶することができる。
【００４４】
ローカル装置通信アプリケーション１０４は、ローカル装置構成回路２１０、ローカル装置サーバ回路２１２、及び／又はローカル装置ドライバ回路２１４を含むことができる。回路２１０、２１２及び／又は２１４の各々は、以下で説明するような機能を実行するように構成されたそれぞれの及び／又は共通のハードウェアを含み、ネットワークインターフェイスを介してユーザ装置１０２のそれぞれの回路及び構成要素と通信することができる。回路２１０、２１２及び／又は２１４は、プロセッサ２０２などの処理回路を利用してこのような動作を実行することができる。しかしながら、いくつかの実施形態では、回路２１０、２１２及び／又は２１４のいずれかが、以下でさらに詳細に説明する様々なそれぞれの機能を実行するために別個のプロセッサ、専用に構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）を含むこともできると理解されたい。従って、回路２１０、２１２及び／又は２１４は、これらの機能を実装するハードウェア又はソフトウェアのいずれかによって構成された装置のハードウェアコンポーネントを用いて実装される。
【００４５】
ローカル装置構成回路２１２は、ユーザ装置１０２と通信するような、又は具体的にはローカル装置通信アプリケーション１０４と通信するようなローカル装置１１０の構成を可能にすることができる。ローカル装置構成回路２１２は、ローカル装置１１０のネットワーク２１２をスキャンし、ホストウェブアプリケーション１０７及び／又はホストシステム１０８が特定のローカル装置１１０にアクセスできるようにする、ローカル装置１１０のシリアル番号などによる許可ステータス情報を保持するように構成することができる。この点、メモリ２０４は、シリアル番号、及び「承認」又は「未承認」などのステータスを示す対応する指標を記憶することができる。いくつかの例では、承認されたローカル装置のリストを記憶することができ、ローカル装置のシリアル番号の不在は、ローカル装置の許可ステータスが「未承認」であることを示すことができる。
【００４６】
この点、ローカル装置構成回路２１２は、ホストウェブアプリケーション１０７及び／又はホストシステム１０８のドメインが特定のローカル装置１１０にアクセスする許可の承諾又は拒否を行うようにユーザを促すユーザ許可プロンプトを提供するユーザインターフェイスを含み、又は生成することができる。構成は、ローカル装置通信アプリケーション１０４のインストールに応答して、或いはブラウザ１０６及び／又は後述するローカル装置サーバ回路２１２からの要求に応答して行うことができる。別の例として、ローカル装置通信アプリケーション１０４は、ローカル装置通信アプリケーション１０４によるホスト１０８へのローカル装置１１０のリストの提供を可能にするようにユーザを促すこともできる。これに加えて、又はこれとは別に、ユーザが情報の送信を明確に承認しなくても将来的にローカル装置１１０のリストを提供できるような設定をメモリ２０４に記憶することもできる。この結果、ホスト１０８は、ローカル装置１１０をブラウザ１０６に提供して表示し、及び／又は示されたローカル装置１１０のうちのいずれか１つに印刷を指示することができる。いくつかの例では、ホスト１０８がローカル装置１１０にアクセスできるようにするプロンプトをユーザが拒否した場合、アクセスが拒否された旨をユーザに警告するエラーメッセージをブラウザ１０６への表示などによって提供することができる。
【００４７】
一般に、ローカル装置サーバ回路２１４は、例えばブラウザ１０６が生成してポート９１００に送信された要求を、ローカルソケットを介してリスンする(listen)ことができる。ローカル装置の要求が行われると、ローカル装置サーバ回路２１４は、ローカル装置構成回路２１２と通信してデフォルト装置又は利用可能なローカル装置をブラウザ１０６に示し、ローカル装置ドライバ回路２１４を介して所望のローカル装置１１０に装置コマンドを転送する。
【００４８】
一般に、ローカル装置ドライバ回路２１４は、ローカル装置サーバ回路２１４からの命令を処理し、特定のローカル装置１１０に対応する装置固有のフォーマットにデータを変換し、ローカル装置１１０へのデータ及び／又は装置コマンドの送信を引き起こすように構成される。ローカル装置ドライバ回路２１４は、ローカル装置１１０から応答を受け取り、装置応答をローカル装置サーバ回路２１４及び／又はブラウザ１０６に通信するように構成することもできる。
【００４９】
いくつかの実施形態では、ユーザ装置１０２が、プロセッサ２０２と通信してユーザに出力を提供し、いくつかの実施形態ではユーザ入力の指示を受け取ることができる入力／出力回路２０６を含むことができる。例えば、入力／出力回路２０６は、ブラウザ１０６を介してウェブアプリケーションを表示し、及び／又は許可されたローカル装置に関する入力を受け取るために使用することができる。入力／出力回路２０６は、ユーザインターフェイスを含み、ディスプレイ、ウェブユーザインターフェイス及び／又はモバイルアプリケーションなどを含むことができる。いくつかの実施形態では、入力／出力回路２０６が、キーボード、マウス、ジョイスティック、タッチ画面、タッチエリア、ソフトキー、マイク、スピーカ、又はその他の入力／出力機構を含むこともできる。プロセッサ、及び／又はプロセッサを含む入力／出力回路２０６は、プロセッサがアクセスできるメモリ（例えば、メモリ２０４など）に記憶されたコンピュータプログラム命令（例えば、ソフトウェア及び／又はファームウェア）を通じて１又は２以上のユーザインターフェイス要素の１又は２以上の機能を制御するように構成することができる。
【００５０】
通信回路２０８は、ネットワークを介した通信を可能にする１又は２以上のインターフェイス機構を含むことができる。場合によっては、通信回路２０８を、ネットワークとの間で、及び／又は処理回路２０１と通信する他のいずれかの装置又はモジュールとの間でデータを受信及び／又は送信するように構成された、ハードウェア又はハードウェアとソフトウェアの組み合わせのいずれかで具体化される装置又は回路などのいずれかの手段とすることができる。一例として、通信回路２０８は、（例えば、ローカル装置ドライバ回路２１４を含む）ローカル装置通信アプリケーション１０４とローカル装置１１０との間の通信を可能にするように構成することができる。いくつかの実施形態では、通信回路２０８が、ユーザ装置１０２とホストシステム１０８との間の通信を可能にして、ブラウザ１０６が表示及び／又は処理するウェブアプリケーションコンテンツ及びコードなどのホストウェブアプリケーション１０７を提供するようにさらに構成される。従って、通信回路２０８は、例えばネットワーク１１２、１１４などを介した通信を可能にするサポートハードウェア及び／又はソフトウェアを含むことができる。
【００５１】
図３は、実施形態例による動作のフローチャート例である。表示３０２によって示すように、ユーザ装置１０２のユーザは、ブラウザ１０６を用いて、ホストウェブアプリケーション１０７が提供するウェブページにアクセスする。動作３０６において、ホストシステム１０８及び／又はホストウェブアプリケーション１０７は、ローカル装置通信ＡＰＩ１０９を呼び出して、ブラウザに送信する応答にスクリプトを埋め込む。スクリプトは、クライアント又はブラウザ１０６が実行するように構成された、ＪａｖａＳｃｒｉｐｔ(登録商標)などのいずれかのコンピュータプログラムコードを含むことができる。応答は、ホストシステム１０８及び／又はホストウェブアプリケーション１０７によって生成されたものなどの、ブラウザ１０６が処理及び／又は表示すべき追加コンテンツ又はコンピュータプログラムコードを含むことができる。
【００５２】
動作３１０において、ブラウザは、ホストウェブアプリケーション１０７及び／又はローカル装置通信ローカル装置通信アプリケーションＡＰＩ１０９からの応答を処理し、ユーザ装置１０２のブラウザに表示するコンテンツ及び／又は画像を提供する。この点、ブラウザが表示するコンテンツは、ローカル装置通信ＡＰＩ１０９によって提供されたコンピュータプログラムコード及び／又はスクリプトに加え、ホストウェブアプリケーション１０７がローカル装置通信ＡＰＩ１０９とは無関係に生成したコンテンツを含むことができる。いくつかの例では、ブラウザ１０６がスクリプトを実行すると要求同士の区別が可能になり、これによって以下で説明するようにローカル装置通信アプリケーション１０４宛ての要求がローカル装置通信アプリケーション１０４に送信されるようになる。
【００５３】
さらに、ホストウェブアプリケーション１０７によって提供されるコンテンツは、ローカル装置通信アプリケーション１０４に対する非同期的呼び出しからの応答とは無関係に提供することができる。ブラウザ１０６によって処理されるスクリプトは、ローカル装置通信アプリケーション１０４に対する（例えば、ローカル装置サーバ回路２１２に対する）、利用可能なローカル装置１１０を求める非同期的ＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しを含むことができる。このような要求は、装置要求と見なすことができる。装置要求は、利用可能なローカル装置を求める、及び／又はローカル装置１１０に送信すべきデータ及び／又は要求を示す、ローカル装置通信アプリケーション１０４へのあらゆる通信を含むことができる。いくつかの例では、さらなるユーザインタラクションを伴わずに自動的に装置要求を生成して送信することができる。いくつかの例では、ユーザが、ローカル装置１１０への通信を開始したい旨の要望を示し、ユーザ入力に応答して装置要求を生成して送信することができる。いくつかの例では、ユーザ入力を不要とすることもできる。
【００５４】
動作３１４によって示すように、ローカル装置通信アプリケーション１０４は、ローカル装置構成回路２１０などの、要求を受け取って処理する手段を含むことができる。
【００５５】
いくつかの例では、ローカル装置通信アプリケーション１０４が、デフォルトローカル装置が構成されたことを認識して、要求及び／又はデータを転送する。
【００５６】
いくつかの例では、ブラウザによって生成された要求を受け取ったことに応答して、利用可能な及び／又は許可された装置のローカルエリアネットワーク及び／又はローカル装置などのネットワーク（例えば、ローカルネットワーク１１２）をスキャンする。例えば、ローカル装置通信アプリケーション１０４は、ユーザ装置１０２に直接接続されたローカル装置、又はネットワークを介して利用できるローカル装置を識別することができる。従って、ローカル装置通信アプリケーション１０４は、プリンタ及び／又はファックスなどの利用可能なローカル装置のシリアル番号、装置タイプ及び／又はその他の識別情報を提供することができる。ローカル装置通信アプリケーション１０４が使用するローカル装置の構成に関するさらなる機能については、以下で図４などに関連してさらに詳細に説明する。いくつかの例では、ローカル装置をデフォルト設定することができ、必ずしも他の利用可能なローカル装置をブラウザに提供しなくてもよい。
【００５７】
いくつかの例では、動作３１８によって示すように、ブラウザ１０６が、ローカル装置通信アプリケーション１０４からローカル装置情報を受け取り、装置に関する情報をホストウェブアプリケーション１０７の指示通りに、及び／又はウェブアプリケーションを介したローカル装置通信ＡＰＩ１０９の指示通りにブラウザに表示する。例えば、図６を参照されたい。ブラウザへの応答は、ＪａｖａＳｃｒｉｐｔ(登録商標)  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）又は拡張マークアップ言語（ＸＭＬ）の形を取ることができる。従って、ローカル装置情報は、非同期的な通信の性質（例えば、Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ(登録商標)  ａｎｄ  ＸＭＬ（ＡＪＡＸ）及び／又はＡｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ(登録商標)  ａｎｄ  ＪＳＯＮ（ＡＪＡＪ））に起因して、他のコンテンツを邪魔することなく、又は他のコンテンツをリフレッシュすることなくウェブページ上に表示することができる。
【００５８】
いくつかの実施形態では、ユーザが、ブラウザによって提示された複数のローカル装置のうちの特定のローカル装置１１０を選択することができる。いくつかの例では、ユーザが、「印刷」、又はローカル装置通信アプリケーション１０４への要求を引き起こすように構成された別のインターフェイス要素を選択することができる。ローカル装置通信アプリケーション１０４に対して行われる要求は、ローカル装置選択指示を含むことができる。ローカル装置選択指示は、データを送信すべき特定のローカル装置１１０を識別するいずれかの情報を含むことができる。例えば、この要求は、ユーザが選択したローカルプリンタの識別子、及び印刷すべきデータ（例えば、ＨＴＭＬ、画像など）を含むことができる。いくつかの例では、ローカル装置選択指示を含めずに、ローカル装置通信アプリケーション１０４などがデフォルトのローカル装置を識別することもできる。
【００５９】
動作３２２によって示すように、ローカル装置通信アプリケーション１０４は、ローカル装置ドライバ回路２１０及び／又はプロセッサ２０２などの、ローカル装置１１０に指定された装置固有のフォーマットにデータを変換してローカル装置１１０に送信する手段を含むことができる。この点、ローカル装置ドライバ回路２１４は、選択されたローカル装置又はデフォルトローカル装置などの特定のローカル装置１１０に対応する装置コマンド及び／又はデータタイプを識別することができる。
【００６０】
例えば、ローカル装置１１０を、プリンタ制御言語であるＺｅｂｒａ  Ｐｒｏｇｒａｍｍｉｎｇ  ｌａｎｇｕａｇｅ（ＺＰＬ）などの専用言語によって制御される装置として識別することができる。
【００６１】
例えば、「ＨＴＭＬコンテンツの印刷方法及び装置（Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｉｎｔｉｎｇ  ＨＴＭＬ  Ｃｏｎｔｅｎｔ）」という名称の米国特許番号第８，７１７，２８５号には、ＨＴＭＬをプリンタ制御言語に変換する方法、装置及びコンピュータプログラム製品が記載されており、この文献はその全体が引用により本明細書に組み入れられる。従って、ＨＴＭＬを、ローカル装置１１０が解釈して処理できる専用言語及び／又は手続型言語に変換することができる。
【００６２】
具体的には、ローカル装置ドライバ回路２１４は、印刷すべきコンテンツを指定する受け取ったＨＴＭＬを拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）に変換し、拡張スタイルシート言語（ＸＳＬ）テンプレートに基づいてスタイル情報を生成することができる。ローカル装置ドライバ回路２１４は、ローカル装置１１０上でプリンタコマンドを実行すると、ＨＴＭＬによって指定されるスタイルでＨＴＭＬから導かれる位置にコンテンツがラスター化されるように、配置情報を抽出してＸＨＴＭＬからのコンテンツ及びスタイル情報を含むプリンタコマンドを生成する。この点、プリンタコマンドは、コンテンツを印刷すべき媒体に対するコンテンツの意図された位置付け又は配置をローカル装置１１０が解釈する元となるいずれかの情報又は装置コマンドを含む「位置決め情報」を含むことができる。データを装置固有の言語であるＺＰＬに変換することによってＺＰＬで生成されたプリンタコマンド例を以下に示す。ＺＰＬコマンドは、データから抽出された配置情報、スタイル情報及びコンテンツを含み、いくつかの例ではＨＴＭＬで提供することができる。
＾ＸＡ＾Ｃ１２８＾ＰＷ６３９＾ＦＴ５２８，７５＾Ａ＠Ｒ，１５０，１５０，Ｅ：ＭＹＲＤＲＥＧ．ｔｔｆ＾ＦＤＺｅｂｒａ＾ＦＳ＾ＦＴ６３９０＾Ａ＠Ｒ，−
３７，３７，Ｅ：ＭＹＲＤＲＥＧ．ｔｔｆ＾ＦＤ＾ＦＳ＾ＦＴ４３０，７５＾Ａ＠Ｒ，８３，８３，Ｅ：ＭＹＲＤＲＥＧ．ｔｔｆ＾ＦＤ
カスタムアプリケーション
Ｇｒｏｕｐ＾ＦＳ＾ＦＴ１１４，７５＾ＢＹ２，３．０＾Ｂ３Ｒ，Ｎ，２５０，Ｎ，Ｎ＾ＦＤ＊ＺＥＢＲＡＣＵＳＴＯＭＡＰＰＬＩＣＡＴＩＯＮＳＧＲＯＵＰ＊＾−ＦＳ＾ＸＺ
【００６３】
別の例として、ローカル装置通信アプリケーション１０４は、ブラウザ１０６によって提供されるポータブル・ドキュメント・フォーマット（ＰＤＦ）及び／又はＰＣＬ（ポイント・クラウド・ライブラリ）、ＰｏｓｔＳｃｒｉｐｔなどのページ記述言語をＺＰＬに変換することもできる。これにより、ＰＤＦ、ＰＣＬ及び／又はＰｏｓｔＳｃｒｉｐｔで表示されたコンテンツをＺＰＬ固有の装置上で印刷することができる。
【００６４】
従って、アプリ１０４及び／又はローカル装置ドライバ回路２１４は、ＨＴＭＬ、ＰＤＦ、ＰＣＬ及び／又はＰｏｓｔＳｃｒｉｐｔなどの１つのフォーマットのデータを上記のＺＰＬコマンドなどの手続型コマンドに変換するように予め構成しておくことができる。ユーザ装置１０２にインストールされると、ユーザ装置１０２を、ホストウェブアプリケーション１０７のさらなるカスタマイズ又は開発を伴わずに、ブラウザ１０６を介して提供されたデータを装置固有のフォーマットに変換するように構成することができる。
【００６５】
この点、ローカル装置通信アプリケーション１０４、又は具体的にはローカル装置ドライバ回路２１４は、装置ドライバを含むことができ、或いはユーザ装置１０２上で動作する装置ドライバと通信するように別様に構成することができる。ローカル装置通信アプリケーション１０４は、ブラウザ１０６から受け取ったデータをローカル装置１１０に対応するフォーマットに変換すると、ローカル装置１１０への装置固有のコマンド及び／又はデータの送信を開始することができる。
【００６６】
いくつかの実施形態では、ローカル装置通信アプリケーション１０４が、ローカル装置のためにフォーマットされたデータをブラウザから受け取り、必ずしもデータを別のフォーマットに変換する必要がないようにすることもできる。例えば、ローカル装置通信アプリケーション１０４は、ＺＰＬフォーマットのコマンドを受け取ることができる。例えば、＾ＨＨは、ローカル装置１１０などのプリンタにプリンタ構成を要求するために使用するＺＰＬコマンドであり、〜ＨＳは、プリンタステータス情報を要求するために使用するＺＰＬコマンドである。従って、ローカル装置１１０は、以下の動作３３０に関する説明のように、及び図８に示して以下で説明するように応答することができる。
【００６７】
動作３２６によって示すように、ローカル装置１１０は、ユーザ装置１０２から装置コマンドを受け取ることができる。この装置コマンドは、ローカル装置１１０によって処理することができ、ブラウザ１０６から装置固有のフォーマットに変換されたデータを含むことができる。例えば、ローカル装置１１０がプリンタである実施形態では、ローカル装置１１０が、ユーザ装置によって送信されたデータをローカル装置通信アプリケーション１０４による指示通りに印刷することができる。従って、印刷されたコンテンツは、ブラウザ１０６によって表示されるＨＴＭＬ又は他のコンテンツに類似することができる。このような例では、プリンタのための装置固有のコマンドを「印刷コマンド」と見なすことができる。いくつかの例では、装置固有のフォーマットの装置コマンド及び／又は印刷コマンドを、ＺＰＬなどの専用言語とすることができる。
【００６８】
いくつかの実施形態では、動作３３０によって示すように、ユーザ装置１０２が、ローカル装置通信アプリケーション１０４、ローカル装置ドライバ回路２１４、プロセッサ２０２及び／又は通信回路２０８などの、ローカル装置１１０からローカル装置応答を受け取って処理する手段を含むことができる。この点、ローカル装置応答は、ユーザ装置１０２に送信されるローカル装置１１０からの通信を含むことができる。従って、ローカル装置応答は、装置コマンドの受け取り及び／又は処理の完了を確認することができる。例えば、ローカル装置１１０は、印刷ジョブが完了したことを示すローカル装置応答をローカル装置ドライバ回路２１４に通信するように構成することができ、ローカル装置ドライバ回路２１４は、ローカル装置１１０によって提供された、確認及び／又はエラーメッセージを含む装置固有のコードを含むことができるローカル装置応答を処理するように構成することができる。ローカル装置ドライバ回路２１４は、ユーザにメッセージを表示することなどを目的とするさらなる通信をブラウザ１０６に送信できるようにローカル装置応答を提供することができる。従って、ローカル装置ドライバ回路２１４及び／又はローカル装置通信アプリケーション１０４は、ブラウザ１０６が表示するメッセージの提供を引き起こすことができる。いくつかの例では、ローカル装置１１０からのローカル装置応答が存在しない期間の経過後に、ローカル装置ドライバ回路２１４は、ローカル装置１１０からの応答がないことを示すように応答を生成することができる。
【００６９】
別の例として、ローカル装置１１０は、上述した＾ＨＨコマンドなどに応答して、プリンタ構成情報などのローカル装置ステータス情報をユーザ装置１２０に戻すことができる。プリンタ構成情報は、ローカル装置１１０の現在の状態、構成要素及び／又はハードウェアなどに関連するいずれかの設定情報又は構成情報を含むことができる。例えば、プリンタ構成情報は、暗さ、印刷モード、媒体タイプ、センサタイプ、ファームウェア及び／又はメモリカードなどを示すことができる。
【００７０】
さらに別の例として、ローカル装置１１０は、上述した＾ＨＳコマンドなどに応答して、プリンタステータス情報などのローカル装置ステータス情報をユーザ装置１２０に戻すことができる。従って、ローカル装置応答は、以下に限定するわけではないが、休止フラグ、温度インジケータ、受信バッファ内のフォーマット数及び／又はラベル長を含むプリンタステータス情報を含むことができる。これに加えて、又はこれとは別に、プリンタステータス情報は、以下に限定するわけではないが、破損ＲＡＭフラグ、用紙切れフラグ及び／又はバッファ容量不足フラグを含むエラー状態情報を含むことができる。
【００７１】
動作３３４によって示すように、ブラウザ１０６は、ローカル装置通信アプリケーション１０４（例えば、ローカル装置ドライバ回路２１４）から応答を受け取るように構成することができる。この応答は、ブラウザ１０６によって実行されるスクリプトが応答を処理し、ＡＪＡＸ及び／又はＡＪＡＪフレームワークによって提供される他のコンテンツに干渉することなくメッセージを表示できるように、ＸＭＬ及び／又はＪＳＯＮなどのフォーマットとすることができる。例えば、ブラウザ１０６は、印刷ジョブが完了した旨をユーザに表示し、及び／又はローカル装置１１０による装置コマンドへの応答失敗などのエラーメッセージを提供することができる。いくつかの例では、ブラウザ１０６が、ローカル装置構成情報及び／又はローカル装置ステータス情報などの、ローカル装置１１０から受け取ったデータを表示することができる。
【００７２】
いくつかの例では、ローカル装置構成情報及び／又はローカル装置ステータス情報などの、ユーザ装置１０２上でローカル装置１１０から受け取ったデータを、さらにホストシステム１０８に戻すことができる。従って、ホストウェブアプリケーション１０７は、その処理においてこの情報を利用することができる。例えば、ローカル装置１１０によって戻されたラベル長に基づいてラベルを作成するように調整を行うことができる。
【００７３】
上述した図３に示す動作は、実施形態例によるシステム１００の様々な構成要素間の動作例及び通信例を例示するために示したものである。図４は、ローカル装置通信アプリケーション１０４の構成と、ローカル装置構成回路２１０などの、ローカル装置通信アプリケーション１０４と通信するローカル装置１１０の構成とを示すフローチャート図である。
【００７４】
動作４０２によって示すように、ブラウザ１０６は、ホストシステム１０８のサーバなどのサーバ、及び／又はホストウェブアプリケーション１０７にウェブページを要求する。動作４０６によって示すように、ホストシステム１０８から提供されブラウザ１０６によって実行されるＪａｖａＳｃｒｉｐｔ(登録商標)が、利用可能なプリンタ（又は他のローカル装置）をローカル装置通信アプリケーション１０４に要求する。動作４１０及び４１４によって示すように、ローカル装置通信アプリケーション１０４が検出されない場合又は利用できない場合には、ユーザ装置１０２上のさらなるアプリケーションなどを用いて、アプリをインストールする命令をユーザに表示することができる。例えば、ユーザは、Ｇｏｏｇｌｅ  Ｐｌａｙ（商標）又は他の同様のアプリストアからアプリケーションをダウンロードすることができる。図５は、ローカル装置通信アプリケーション１０４がインストールされていない場合にブラウザ１０６によって生成されるインターフェイス例である。コンテンツ５０１は、ホストシステム１０８によって提供される、ブラウザ１０６が表示すべきいずれかのコンテンツを含むことができ、例えばホストウェブアプリケーション１０７によって生成される、ユーザがローカルプリンタで印刷したいと望むバーコードラベル（図示せず）を含むことができる。ローカル装置１１０を提供するローカル装置通信アプリケーション１０４を利用できないので、ドロップダウン５０２は空欄で表示することができる。メッセージ５０３は、ローカル装置通信アプリケーション１０４が存在せずダウンロードすべきである旨をユーザに示す。リンク５０４は、ユーザがローカル装置通信アプリケーション１０４をダウンロードできるように、ユーザ装置１０２のアプリストアにアクセスするリンクを提供する。いくつかの例では、インストールを容易にするために、ローカル装置通信アプリケーション１０４をデフォルト設定してアプリストアで選択することができる。
【００７５】
図４に戻ると、ローカル装置通信アプリケーション１０４がインストールされており、（又はローカル装置通信アプリケーション１０４のインストール後に）ユーザ装置１０２上で検出された場合、動作４１８によって示すように、ローカル装置通信アプリケーション１０４は、動作３１４に関して上述したようにプリンタ又は他のローカル装置１００のリストを提供することができる。動作４２２において、ＪａｖａＳｃｒｉｐｔ(登録商標)がプリンタを選択し、ローカル装置通信アプリケーション１０４にデータを送信する。換言すれば、ブラウザ１０６から開始したＪａｖａＳｃｒｉｐｔ(登録商標)呼び出しは、選択されたプリンタ又はローカル装置１１０をローカル装置通信アプリケーション１０４に示す。いくつかの例では、選択されるローカル装置１１０をユーザが選択することができ、或いは１つのローカル装置１１０のみが利用可能である場合、又はあるローカル装置が位置装置通信アプリケーション１０４ないでデフォルトローカル装置として設定されている場合などのいくつかの例では、ユーザからの入力を伴わずに選択をデフォルトのローカル装置１１０にデフォルト設定することができる。図６は、ローカル装置通信アプリケーション１０４がインストールされている場合にブラウザ１０６によって生成されるインターフェイス例である。この点、図６のインターフェイスは、ローカル装置通信アプリケーション１０４のインストール後に図５のインターフェイスが更新されたものとすることができる。この例では、利用可能なローカル装置１１０がドロップダウン５０２に追加されており、従ってユーザは、プリンタを選択した後に構成要素５１０を選択して、選択したプリンタ（例えば、ローカル装置１１０）へのコンテンツ５０１などのデータの転送を開始することができる。図７に、ローカル装置選択指示に関するさらなる詳細を示しており、これについては以下でさらに詳細に説明する。
【００７６】
図４に戻ると、動作４２６によって示すように、ローカル装置通信アプリケーション１０４は、元々のウェブサーバドメイン（例えば、ホストウェブアプリケーション１０７及び／又はホストシステム１０８）が、利用可能な各ローカル装置１１０に関する許可ステータスを有しているかどうか、及び／又はローカル装置１１０のローカルネットワーク１１２及び／又はユーザ装置１０２をスキャンすべきかどうかを判断することができる。この点、許可ステータスは、ホストウェブアプリケーション１０７及び／又はホストシステム１０８が特定のローカル装置１００にアクセスする許可を有しているかどうかを示すいずれかの情報を含むことができる。ローカル装置構成回路２１０などを含むローカル装置通信アプリケーション１０４は、このような通信が許可されている許可ドメイン、ホストウェブアプリケーション１０７及び／又はホストシステム１０８のリストを保持することができる。いくつかの例では、ホストシステム１０８が、許可されると、ユーザにさらに問い合わせることなくブラウザ１０６を通じてあらゆるローカル装置１１０にアクセスすることができる。これに加えて、又はこれとは別に、ローカル装置１１０のシリアル番号などをホストウェブアプリケーション１０７及び／又はホストシステム１０８に関連して記憶し、指定されたローカル装置１１０への要求を特定のドメイン、ホストウェブアプリケーション１０７及び／又はホストシステム１０８が（ホストウェブアプリケーション１０７及び／又はホストシステム１０８によって提供されたページを表示するブラウザ１０６を介して）開始できるかどうかを示すこともできる。
【００７７】
例えば、以前のセッションにおいてユーザ装置１０２のユーザによって許可が与えられていた場合、或いは特定のホストウェブアプリケーション１０７及び／又はホストシステム１０８がローカル装置１１０にアクセスするためのローカル装置通信アプリケーション１０４の初期構成によって許可が与えられていた場合、動作４３０において、動作３２２及び３２６に関して上述したように、選択されたローカル装置１１０（例えば、プリンタ）に装置コマンド及び／又はデータを送信することができる。いくつかの例では、未だ許可が与えられていなかった場合、動作４３４によって示すように、要求側のホストウェブアプリケーション１０７及び／又はホストシステム１０８がローカル装置１１０と通信できる旨を確認するようにユーザ装置１０２のユーザを促すことができる。この点、ユーザ装置のユーザに対して出力される、ホストウェブアプリケーション１０７及び／又はホストシステム１０８がローカル装置１１０にアクセスする許可を要求するあらゆるメッセージをユーザ許可プロンプトと見なすことができる。ユーザによって認可指示が行われ、ローカル装置通信アプリケーション１０４に提供されると、動作４３８及び４３０によって示すようにローカル装置１１０との通信を開始することができる。従って、認可指示は、ホストウェブアプリケーション１０７及び／又はホストシステム１０８がローカル装置１１０にアクセスする許可が与えられていることを示すいずれかのユーザ入力と見なすことができる。
【００７８】
いくつかの例では、ユーザが、ローカル装置１１０と通信するためのホストシステム１０８の要求を（ブラウザ１０６を介して）承認しないこともできる。このような例では、動作４２４によって示すように、ローカル装置通信アプリケーション１０４がローカル装置１１０へのデータ送信を進めることはない。このような機能は、ブラウザ１０６が悪意あるコードを実行してローカル装置通信アプリケーション１０４に送信しても、元々のドメイン又はホストシステム１０８がローカル装置１１０にアクセスすることをユーザが明確に許可しない限りローカル装置１１０を制御できないように、追加のセキュリティをもたらすことができる。
【００７９】
図７は、ローカル装置通信アプリケーション１０４が実行できる動作のフローチャート例である。動作７０２によって示すように、ブラウザは、アプリケーション（例えば、ローカル装置通信アプリケーション１０４）にプリンタなどのデフォルトローカル装置を要求する。従って、ローカル装置通信アプリケーション１０４は、ローカルポート上で要求をリスンすることなどによって要求を受け取る。動作７０４によって示すように、ローカル装置通信アプリケーション１０４は、デフォルトローカル装置が設定されているかどうかを判定する。デフォルトローカル装置がメモリ２０４などに記憶されている場合、ローカル装置通信アプリケーション１０４は、ブラウザ１０６によって提供された関連するコマンドをデフォルトローカル装置に送信できると判断する。
【００８０】
いくつかの実施形態では、動作７０８によって示すように、それでもなおブラウザ１０６のユーザが、デフォルトローカル装置以外の異なるローカル装置の使用を指示することもある。このような場合、又はデフォルトローカル装置が設定されていない場合、ローカル装置通信アプリケーション１０４は、動作７１０によって示すように、利用可能なローカル装置を求めてネットワークをスキャンすることができる。従って、ブラウザ１０６は、動作７１２によって示すように、ユーザにローカル装置を表示して選択できるようにすることができる。動作７１４において、ローカル装置が選択される一方で、ユーザは、動作７１６において、選択されたローカル装置を変更する機会を有する。いくつかの例では、動作７１８において、ユーザが、ブラウザによって提供された指定データを印刷することなどの、ローカル装置通信アプリケーション１０４が処理すべきコマンドを、選択されたローカル装置に対してさらに示すことができる。動作７２０によって示すように、ユーザは、選択された同じ装置にデータを送信し続けることも、或いは動作７１６において、選択されたローカル装置を変更する機会を有することもできる。
【００８１】
図８は、ローカル装置通信アプリケーション１０４がローカル装置１１０にコマンドを送信したことに応答してローカル装置１１０が印刷できるラベル例８００である。この例では、ローカル装置１１０が、ラベルにプリンタ構成情報を印刷している。別の例として、ローカル装置１１０は、（例えば、ローカル装置通信アプリケーション１０４を介して）ユーザ装置１０２にデータを戻し、ブラウザ１０６によってデータを表示することもできる。さらに別の例として、ローカル装置１１０からホストシステム１０８にデータを送信することもできる。
【００８２】
本明細書に示した実施形態は、ユーザ装置１０２からのコンテンツを印刷する方法を有利に改善する。実施形態例では、ユーザが、装置固有のドライバを検索してインストールすることなくローカル装置通信アプリケーション１０４をオンザフライで素早くインストールすることができる。さらに、実施形態例は、ＡＪＡＸ及び／又はＡＪＡＪなどのブラウザ及びオペレーティングシステムに依存しない方法を用いて実装できるので、様々なブラウザタイプ及びオペレーティングシステムに対応する。一方で、ＡｃｔｉｖｅＸ（登録商標）を用いて実装される別の方法は、例えばＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）にしか対応することができない。さらに、実施形態例は、ユーザ装置からのブラウザコンテンツを印刷する安全な解決策を提供するのに対し、Ｊａｖａ（登録商標）アプレットに依存する他の方法は、内在するセキュリティの脆弱性を示すことがある。
【００８３】
さらに、いくつかの実施形態では、ホストシステム１０８の開発者が、ローカル装置通信ＡＰＩ１０９により、ホストウェブアプリケーション１０７などのウェブアプリケーションをカスタマイズして装置ドライバなどのさらなるカスタマイズを伴わずにユーザ装置１０２のユーザに望ましい解決策を提供することができる。実施形態例では、ローカル装置通信アプリケーション１０４を用いて、ＨＴＭＬなどの標準プロトコルに基づいて、専用言語などの装置固有のコマンドをユーザ装置１０２上で直接生成することができる。従って、実施形態は、個々の解決策をカスタマイズする上での専用の装置制御ソフトウェアに対するホストシステム１０８の依存性を軽減する。従って、ホストシステム１０８の開発者は、ローカル装置通信アプリケーション１０４との、及びローカル装置１１０上での印刷能力との互換性を維持しながらウェブアプリケーションを強化し続けることができる。
【００８４】
上述したように、また本開示に基づいて理解されるように、本発明の実施形態は、コンピュータにより実行される方法、ユーザ装置及び／又はウェブサーバなどとして構成することができる。従って、実施形態は、ハードウェア、又はソフトウェアとハードウェアのあらゆる組み合わせを全体として含む様々な手段を含むことができる。さらに、実施形態は、記憶媒体内に具体化されたコンピュータ可読プログラム命令（例えば、コンピュータソフトウェア）を有する少なくとも１つの非一時的コンピュータ可読記憶媒体上のコンピュータプログラム製品の形を取ることもできる。非一時的ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリ、光学記憶装置又は磁気記憶装置を含むあらゆる好適なコンピュータ可読記憶媒体を利用することができる。
【００８５】
上記では、方法、装置、システム及びコンピュータプログラム製品のブロック図及びフローチャート図を参照しながら本発明の実施形態を説明した。回路図及び処理フローチャートの各ブロック、並びに回路図及び処理フローチャート内のブロック同士の組み合わせは、コンピュータプログラム命令を含む様々な手段によってそれぞれ実装することができると理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、或いはプロセッサ２０２、ローカル装置通信アプリケーション１０４（例えば、回路２１０、２１２及び／又は２１４）などの他のプログラム可能なデータ処理装置上にロードして機械を生産することにより、コンピュータプログラム製品が、コンピュータ又は他のプログラム可能なデータ処理装置上で実行されてフローチャートの１又は複数のブロックに指定される機能を実装する手段を生み出す命令を含むようにすることができる。
【００８６】
また、コンピュータ又は他のプログラム可能なデータ処理装置に特定の形で機能するように指示することができるこれらのコンピュータプログラム命令をコンピュータ可読記憶媒体（例えばメモリ２０４）に記憶することにより、コンピュータ可読記憶媒体に記憶された命令が、本明細書で説明した機能を実装するコンピュータ可読命令を含む製造の物品を生み出すようにすることもできる。また、これらのコンピュータプログラム命令をコンピュータ又は他のプログラム可能なデータ処理装置上にロードし、これらのコンピュータ又は他のプログラム可能な装置上で一連の動作ステップが行われるようにしてコンピュータ実装処理を生成することにより、コンピュータ又は他のプログラム可能な装置上で実行される命令が、本明細書で説明した機能を実装するステップをもたらすようにすることもできる。
【００８７】
従って、ブロック図及びフローチャート図のブロックは、指定された機能を実行する手段の組み合わせ、指定された機能を実行するステップの組み合わせ、及び指定された機能を実行するプログラム命令手段をサポートする。また、回路図及び処理フローチャートの各ブロック、並びに回路図及び処理フローチャート内のブロックの組み合わせは、指定された機能又はステップを実行する専用ハードウェアベースのコンピュータシステム、或いは専用ハードウェアとコンピュータ命令との組み合わせによって実装することができると理解されるであろう。
【００８８】
上述の説明及び関連する図面に示す教示の恩恵を受ける、これらの発明の実施形態が関連する当業者には、本明細書に記載した発明の多くの修正及びその他の実施形態が浮かぶであろう。従って、本発明の実施形態は、開示する特定の実施形態に限定されるものではなく、修正及びその他の実施形態も添付の特許請求の範囲に含まれると理解されたい。本明細書では特定の用語を使用しているが、これらは一般的かつ説明的な意味で使用したものにすぎず、限定を目的とするものではない。
【符号の説明】
【００８９】
３０２  ウェブページを要求
３０８  アプリケーションプログラミングインターフェイスを呼び出してホストウェブアプリケーションにスクリプトを埋め込む
３１０  ホストウェブアプリケーションを提供
３１４  要求を受け取って処理
３１８  ローカル装置を表示
３２２  データを装置固有のフォーマットに変換して送信
３２６  装置コマンドを処理
３３０  ローカル装置応答を処理
３３４  メッセージを表示
【図１】
2018502389.tif 000003
【図２】
2018502389.tif 000004
【図３】
2018502389.tif 000005
【図４】
2018502389.tif 000006
【図５】
2018502389.tif 000007
【図６】
2018502389.tif 000008
【図７】
2018502389.tif 000009
【図８】
2018502389.tif 000010
【国際調査報告】
2018502389.tif 000011
2018502389.tif 000012