JP2018502389A - ユーザ装置のブラウザとローカル装置との間の通信を可能にする方法 - Google Patents

ユーザ装置のブラウザとローカル装置との間の通信を可能にする方法 Download PDF

Info

Publication number
JP2018502389A
JP2018502389A JP2017533188A JP2017533188A JP2018502389A JP 2018502389 A JP2018502389 A JP 2018502389A JP 2017533188 A JP2017533188 A JP 2017533188A JP 2017533188 A JP2017533188 A JP 2017533188A JP 2018502389 A JP2018502389 A JP 2018502389A
Authority
JP
Japan
Prior art keywords
local device
browser
local
user
computer program
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
JP2017533188A
Other languages
English (en)
Inventor
クリストファー エンサイン
クリストファー エンサイン
リチャード バーグストロム
リチャード バーグストロム
Original Assignee
ゼットアイエイチ コーポレイション
ゼットアイエイチ コーポレイション
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 ゼットアイエイチ コーポレイション, ゼットアイエイチ コーポレイション filed Critical ゼットアイエイチ コーポレイション
Publication of JP2018502389A publication Critical patent/JP2018502389A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1289Remote printer device, e.g. being remote from client or server in server-client-printer device configuration, e.g. the server does not see the printer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

モバイル装置又はパーソナルコンピュータなどのユーザ装置上のブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、コンピュータプログラム製品及びシステムを提供する。ホストシステムが、ブラウザによって表示されるデータを生成するホストウェブアプリケーションを提供できるとともに、アプリケーションプログラミングインターフェイス(API)と一体化して、ブラウザによって実行された時にブラウザとローカル装置通信アプリケーションとの間の通信を可能にするようなコードをホストウェブアプリケーションに埋め込むことができる。その後、ローカル装置通信アプリケーションは、データがプリンタで印刷されるようにすることなどの、ローカル装置への通信を制御することができる。提供する方法は、ブラウザ及び/又はオペレーティングシステムのタイプに依存せずに実装することができる。【選択図】図3

Description

本発明の様々な実施形態は、ユーザ装置のブラウザとローカル装置との間の通信を可能にすることに関する。本出願人は、ローカルプリンタを用いてユーザ装置上のブラウザからのコンテンツを印刷することに関連するいくつかの不備及び問題点を確認した。本出願人は、努力、工夫及び革新的考えの適用を通じ、本発明によって具体化される、以下で詳細に説明する解決策を構築することにより、これらの確認された問題点の多くを解決した。
米国特許第8,717,285号明細書
従って、モバイル装置又はパーソナルコンピュータなどのユーザ装置上で動作するように構成されたブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、装置及びコンピュータプログラム製品を提供する。ユーザ装置上で動作するブラウザによって表示される多くのウェブサイトは、プリンタなどのローカルネットワーク装置と直接相互作用することができない。様々なシステムのウェブ開発者は、自社のウェブページのユーザがユーザ装置から合理的かつ安全に印刷を行えるようにしたいと望むことができる。ブラウザから直接印刷を行うための現在の実装は、オペレーティングシステム及び/又はブラウザ固有の方法を含む。例えば、ActiveX(登録商標)及びJava(登録商標)アプレットを実装すれば、ブラウザから直接印刷を行うことができるが、これらのアプリケーションは、全てのユーザ装置上で利用できるわけではなく、セキュリティの脆弱性を招く恐れもある。
本明細書に示す方法、コンピュータプログラム製品及び装置は、ユーザ装置上で動作するブラウザとプリンタなどのローカル装置との間の通信を可能にする合理的手法を提供する。本明細書に示す実施形態例は、ブラウザのタイプにもオペレーティングシステムにも依存しない。本明細書に示す実施形態例によれば、ホストシステムの開発者が、アプリケーションプログラミングインターフェイス(API)との一体化を図ることにより、ユーザ装置上で動作するブラウザにホストシステムによって配信されたホストウェブアプリケーションが、ユーザ装置のインストール済みのローカル装置通信アプリケーションと通信するようにすることができる。この結果、ローカル装置通信アプリケーションは、他のローカル装置への通信及び/又は印刷をホストシステムによる指示通りに制御することができる。
ローカル装置と、ユーザ装置上で動作するように構成されたブラウザとの間の通信を可能にするようにユーザ装置上で動作するよう構成されたコンピュータプログラム製品であって、ブラウザによって生成された要求を受け取り、要求が、ブラウザからコンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断し、ブラウザから送信されるデータと、ローカル装置に関する情報とに基づいて生成された装置コマンドがローカル装置に送信されるようにするよう構成されたコンピュータプログラム製品を提供する。
いくつかの例では、コンピュータプログラム製品が、ローカル装置がデフォルトのローカル装置であると判断する。コンピュータプログラム製品は、利用可能なローカル装置のリストを提供して、ユーザ装置のユーザインターフェイス上にブラウザを介して表示されるようにし、ユーザがユーザインターフェイスを介してリストから選択を行ったことに基づいて、ローカル装置選択指示を受け取るようにさらに構成され、ローカル装置は、ローカル装置選択指示に基づいて識別される。いくつかの例では、コンピュータプログラム製品が、要求側のホストウェブアプリケーションに関するローカル装置の許可ステータスを検証するようにさらに構成される。
コンピュータプログラム製品は、ユーザ装置に、ブラウザを介して、ホストウェブアプリケーションとローカル装置とに関するユーザ許可プロンプトを出力させ、ブラウザを介したユーザ許可プロンプトの出力に応答して認可指示を受け取り、認可指示に基づいて、ホストウェブアプリケーション及びローカル装置に関する許可ステータスを更新するようにさらに構成される。
コンピュータプログラム製品は、ホストウェブアプリケーションへのスクリプトの埋め込みを可能にするように構成されたローカル装置通信アプリケーションプログラミングインターフェイスをさらに含み、要求が、ブラウザから送信されるデータの通信要求を含むとの判断は、スクリプトを実行することを含み、ブラウザからの要求の受け取り、及びローカル装置への装置コマンドの送信は、スクリプトの実行に応答して行われる。
いくつかの例では、装置コマンドの生成が、ハイパーテキストマークアップ言語(HTML)を、HTMLから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む。いくつかの例では、データが、ブラウザによって実行される非同期的JavaScript(登録商標)呼び出しを介して受け取られる。いくつかの例では、ローカル装置がプリンタであり、プリンタに送信される装置コマンドが印刷コマンドである。いくつかの例では、プリンタが、ゼブラ専用言語(Zebra Proprietary Language)によって制御される。
いくつかの例では、装置コマンドが、ローカル装置がユーザ装置にローカル装置構成情報を戻すこと、ローカル装置がユーザ装置にローカル装置ステータス情報を戻すこと、又はローカル装置がローカル装置構成情報を印刷すること、のうちの少なくとも1つを引き起こす。いくつかの例では、コンピュータプログラム製品が、選択されたローカル装置からローカル装置応答を受け取るようにさらに構成される。
また、ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にするシステムであって、ユーザ装置上で動作するように構成されたローカル装置通信アプリケーションと、ホストシステム上で動作するように構成されたホストウェブアプリケーションと、ホストシステム上で動作するように構成されたローカル装置通信アプリケーションプログラミングインターフェイスとを含み、ローカル装置通信アプリケーションプログラミングインターフェイスが、ホストウェブアプリケーションと通信するように構成され、ホストウェブアプリケーションが、ブラウザによって表示されるデータを生成するとともに、ブラウザがローカル装置通信アプリケーションと通信できるようにし、ローカル装置通信アプリケーションが、ブラウザからデータを受け取り、このデータを装置固有のフォーマットに変換し、変換したデータをローカル装置に送信するように構成される、システムも提供する。
ローカル装置通信アプリケーションは、利用可能なローカル装置をブラウザに提供して表示されるようにし、ローカル装置選択指示を受け取るようにさらに構成され、ローカル装置は、ローカル装置選択指示に基づいて識別される。いくつかの例では、データの変換が、ハイパーテキストマークアップ言語(HTML)を、HTMLから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む。
いくつかの例では、ローカル装置がプリンタであり、プリンタに送信される装置コマンドが印刷コマンドである。ローカル装置通信アプリケーションは、ローカル装置からのローカル装置応答を装置固有のフォーマットで受け取り、ローカル装置応答に基づいて、ブラウザによって表示されるメッセージが提供されるようにするようさらに構成される。ローカル装置通信アプリケーションは、要求側のホストウェブアプリケーションに関するローカル装置の許可ステータスを検証するようにさらに構成される。
いくつかの例では、ローカル装置通信アプリケーションが、ユーザ装置に、ブラウザを介して、ホストウェブアプリケーションとローカル装置とに関するユーザ許可プロンプトを出力させ、ブラウザを介したユーザ許可プロンプトの出力に応答して認可指示を受け取り、認可指示に基づいて、ホストウェブアプリケーション及びローカル装置に関する許可ステータスを更新するようにさらに構成される。
いくつかの例では、データが、ブラウザによって実行される非同期的JavaScript(登録商標)呼び出しを介して受け取られる。
また、ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にする、コンピュータにより実行される方法であって、ブラウザによって生成された要求を受け取るステップと、要求が、ブラウザからコンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断するステップと、ブラウザから送信されたデータとローカル装置に関する情報とに基づいて生成された装置コマンドがローカル装置に送信されるようにするステップとを含むコンピュータにより実行される方法も提供する。
いくつかの例では、請求項21に記載のコンピュータにより実行される方法が、ブラウザから受け取ったデータを、ローカル装置のタイプに基づいて装置固有のフォーマットに変換するステップをさらに含む。
実施形態例によるシステムの概略図である。 実施形態例によるユーザ装置の概略図である。 実施形態例による動作及びデータのフローチャートである。 実施形態例による動作のフローチャートである。 実施形態例によるユーザインターフェイスを示す図である。 実施形態例によるユーザインターフェイスを示す図である。 実施形態例による動作のフローチャートである。 実施形態例による、ローカル装置によって印刷されるラベル例を示す図である。
本明細書に示す実施形態例によれば、モバイル装置又はパーソナルコンピュータなどのユーザ装置上で動作するように構成されたブラウザと、プリンタなどのローカル装置との間の通信を可能にする方法、コンピュータプログラム製品及びシステムが提供される。ホストシステムが、ブラウザによって表示されるデータを生成するホストウェブアプリケーションを提供できるとともに、ローカル装置の通信アプリケーションプログラミングインターフェイス(API)と一体化して、ブラウザによって実行された時にブラウザとローカル装置通信アプリケーションとの間の通信を可能にするようなコードをホストウェブアプリケーションに埋め込むことができる。この結果、ローカル装置通信アプリケーションは、ブラウザによって提示されたデータがプリンタで印刷されるようにすることなどの、ローカル装置への通信を制御することができる。
本明細書で使用する「ローカル装置通信API」は、ホストシステムに記憶された又はホストシステムが別様にアクセスできる、ブラウザとローカル装置通信アプリケーションとの間の通信を可能にするように構成された、ライブラリ又はその集合などのコンピュータプログラムコードを含むことができる。
本明細書で使用する「ローカル装置通信アプリケーション」は、ローカル装置通信APIと連動するホストウェブアプリケーションによる指示通りにブラウザとローカル装置との間の通信を可能にするようにユーザ装置上で動作するよう構成されたアプリケーション又はアプリである。
本明細書で使用する「スクリプト」は、ローカル装置通信APIと連動するホストウェブアプリケーションによる指示通りにクライアント又はブラウザによって実行されるように構成された、JavaScript(登録商標)などのいずれかのコンピュータプログラムコードを含むことができる。
本明細書で使用する「装置要求」は、利用可能なローカル装置又はローカル装置に送信すべきデータに関する情報を要求する、ブラウザからローカル装置通信アプリケーションへのあらゆる通信を含むことができる。
本明細書で使用する「装置コマンド」は、ローカル装置通信アプリケーションからローカル装置に送信されるように構成されたコンピュータプログラムコードなどのあらゆる通信を含むことができる。いくつかの例では、装置コマンドを、「装置固有のコマンド」、又は特定のタイプのローカル装置専用にフォーマットされた装置コマンドとすることができ、そのタイプのローカル装置しか解釈できないものとすることができる。装置固有のコマンドは、印刷コマンドを含むことができる。
本明細書で使用する「データ」は、処理のためにローカル装置に送信すべき、ブラウザによって提供されるあらゆるデータを含むことができる。例えば、データは、ローカルプリンタによって印刷すべきコンテンツを定めるコンピュータプログラムコードを含むことができる。
本明細書で使用する「ローカル装置選択指示」は、ユーザ装置からデータを送信すべき特定のローカル装置を識別するあらゆる情報を含むことができる。ローカル装置選択指示は、例えばたった1つのローカル装置しか利用できない場合にはデフォルトとすることができる。或いは、ローカル装置選択指示は、予め設定されたデフォルトのローカル装置を示すこともできる。いくつかの例では、ユーザが、利用可能なローカル装置のリストから特定のローカル装置を選択することができる。
本明細書で使用する「ローカル装置応答」は、装置コマンドに応答して送信されるローカル装置からユーザ装置への通信を含むことができる。従って、ローカル装置応答は、装置コマンドの受け取り及び/又は処理の完了を確認することができる。
本明細書で使用する「許可ステータス」は、ホストウェブアプリケーション及び/又はホストシステムが特定のローカル装置にアクセスする許可を有しているか否かを示すあらゆる情報を含むことができる。許可ステータスは、ローカル装置通信アプリケーションが保持及び/又はアクセスすることができる。
本明細書で使用する「ユーザ許可プロンプト」は、ホストウェブアプリケーション及び/又はホストシステムがローカル装置にアクセスする許可を要求する、ユーザ装置のユーザに出力されるあらゆるメッセージを含むことができる。ユーザ許可プロンプトは、例えばブラウザを介してユーザに提供することができる。
従って、本明細書で使用する「認可指示」は、ホストウェブアプリケーション及び/又はホストシステムがローカル装置にアクセスする許可が与えられたことを示すあらゆるユーザ入力と見なすことができる。許可ステータスは、例えばブラウザを介して提供できる認可指示に基づいて更新することができる。
図1は、ユーザ装置上のブラウザとローカル装置との間の通信を可能にするシステム例100の概略図である。ユーザ装置102は、スマートフォン及び/又はタブレットなどのいずれかのモバイル装置を含むことができ、パーソナルコンピュータ及びラップトップなどの他のコンピュータ装置に比べて相対的に軽量かつ小型であることを特徴とすることができる。従って、ユーザ装置102は、より大型で重いコンピュータ装置に比べてメモリ及び計算処理速度が制限されることがある。本明細書に示す実施形態例は、ユーザ装置102がモバイル装置として実装されている場合に特に有利であるが、これに加えて、又はこれとは別に、ユーザ装置102は、パーソナルコンピュータ、ラップトップ、及び/又はブラウザを実行できるいずれかの装置などの他のユーザ装置上に実装することもできる。さらに、実施形態例は、あらゆるオペレーティングシステムを実装することができる。
ユーザ装置102は、ユーザ装置102上で動作する他のアプリケーションとの相互作用、及び/又はネットワークを介した他の装置との相互作用などのためにローカルにインストールされたアプリケーション又は「アプリ」を実行することができる。通常、このようなアプリは、タブレット又はスマートフォンなどのユーザ装置上で実行するように設計される。例えば、Apple社のiOS(登録商標)、Google社のAndrois(登録商標)、又はMicrosoft社のWindows8(登録商標)などのユーザ装置のオペレーティングシステム上で実行されるアプリを提供することができる。通常、これらのプラットフォームは、アプリ同士の通信、並びにアプリとユーザ装置の特定のハードウェアコンポーネント及びソフトウェアコンポーネント、サードパーティサービス及び/又はネットワークとの通信を可能にするフレームワークを提供する。例えば、上述したオペレーティングシステムの各々は、ロケーションサービス回路、有線及び無線ネットワークインターフェイス、ユーザの連絡先、及び他のアプリケーションと相互作用するためのフレームワークを、アプリ間の相互作用を改善しながら消費者のプライバシー及びセキュリティも保護する形で提供する。いくつかの実施形態では、オペレーティングシステムが、外部装置(例えば、ホームオートメーションシステム及び屋内ナビゲーションシステムなど)と相互作用するための改善された通信インターフェイスを提供することもできる。通常、アプリの外部で実行されるハードウェアモジュール及びソフトウェアモジュールとの通信は、装置のオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェイスを介して行われる。
ローカル装置通信アプリケーション104は、ユーザ装置102上で動作するアプリであり、ユーザ装置102上で、及び/又はローカルネットワーク112などのローカルネットワークを介して外部装置上で動作するブラウザ106と通信するように構成することができる。ローカル装置通信アプリケーション104については、図2に関連してさらに詳細に説明する。
ブラウザ106は、ユーザ装置102上に表示されるコンテンツを提供するように構成されたいずれかのアプリケーションを含むことができる。ブラウザ106としては、以下に限定されるわけではないが、Firefox(登録商標)、Internet Explorer(登録商標)、Chrome(商標)、Opera(商標)、及びSafari(登録商標)を挙げることができる。ブラウザ106は、モバイル版のブラウザとすることができ、パーソナルコンピュータ又はラップトップと共に使用されるように構成されたブラウザに比べて機能が制限されることもある。いくつかの例では、ユーザ装置102上に複数のモバイルブラウザ106が存在することができる。ブラウザ106は、ホストウェブアプリケーション107及び/又はホストシステム108によって提供されたコンテンツを表示するように構成することができる。
システム100は、任意の数のホストシステム108を含むことができる。ホストシステム108は、ローカルネットワーク112を介してホストウェブアプリケーション107などのウェブアプリケーションをユーザ装置102に提供するように構成されたいずれかのコンピュータ装置、ネットワーク及び/又はサーバなどを含むことができる。ホストシステム108は、インターネットなどのネットワーク114を介してユーザ装置102と通信することができる。具体的には、ホストシステム108は、ネットワーク114を介して、ブラウザ106によって表示されるホストウェブアプリケーション107を提供することができる。
ホストウェブアプリケーション107は、ローカル装置通信API109と一体化することができる。ローカル装置通信API109は、ホストシステム108に記憶された又はホストシステム108が別様にアクセスできる、ブラウザ106とローカル装置通信アプリケーション104との間の通信を可能にするように構成された、ライブラリ又はその集合などのコンピュータプログラムコードを含むことができる。例えば、ローカル装置通信API109は、本明細書で説明するメモリ204のものと同様の記憶装置に記憶することができる。実施形態例によれば、ローカル装置通信API109は、ホストウェブアプリケーション107によって実装された時に、ブラウザ106とローカル装置通信アプリケーション104との間の通信を可能にする。従って、以下でさらに詳細に説明するように、ローカル装置通信API109は、ホストウェブアプリケーション107によって生成されたコンテンツを、ブラウザ106による実行時にローカル装置通信アプリケーション104を介してローカル装置に送信できるようにローカル装置通信アプリケーション104と連動するような構成要素を、ホストシステム108の開発者がホストウェブアプリケーション107に容易に組み込めるようにする。いくつかの例では、ローカル装置通信API109を、ホストシステム108上に実装することも、或いはサードパーティサーバ又はさらなるホストシステム108などのリモート装置上でアクセスされるようにすることもできる。この点、ホストシステム108は、分散システム又は分散ネットワークとして実装することができ、本明細書で説明する処理回路201と同様の処理回路を含むことができる。ホストシステム108は、ローカル装置通信API109によって有効にされるウェブアプリケーション、コンテンツ及び機能を任意の数のユーザ装置102に提供することができる。
システム100は、任意の数のローカル装置110をさらに含むことができる。ローカル装置110は、ローカルネットワーク112を介してユーザ装置102と通信するいずれかの外部装置を含むことができる。ローカル装置例110は、以下に限定するわけではないが、プリンタ、スキャナ、コンピュータ装置及び/又はユーザ装置などを含むことができる。ローカル装置通信アプリケーション104は、ユーザ装置102とローカル装置110との間の通信を可能にする。
従って、ローカルネットワーク112は、直接接続又は無線通信などによってユーザ装置102と通信するように構成された任意の数のローカル装置110を含むことができる。例えば、ローカルネットワーク112は、ローカルエリアネットワーク(LAN)として実装することができ、ユニバーサルシリアルバス(USB)、シリアルポート及び/又はパラレルポートなどの直接接続によって装置間の通信を容易にすることができる。これに加えて、又はこれとは別に、ローカルネットワーク112は、ZigBee(登録商標)、アクティブな近距離通信(NFC)及び/又はその他の無線プロトコルによって通信を可能にするように構成することもできる。
いくつかの例では、ネットワーク112及び114を同じネットワークとすることができ、或いはローカルネットワーク112及び/又は114が互いの一部を含むこともできる。一方で、いくつかの実施形態では、ホストシステム108が、ローカル装置110と通信するのではなく、ネットワーク114を介してユーザ装置102と通信することもできる。従って、ローカル装置110は、必ずしもインターネット又はネットワーク114を介して利用可能なわけではなく、むしろ(上述したようなLAN及び/又は直接接続などとして実装できる)ローカルネットワーク112を介してユーザ装置102と通信することができる。いくつかの実施形態では、ネットワーク114がインターネットを含むことができる。
図2は、実施形態例によるユーザ装置例102の概略図である。いくつかの実施形態では、ユーザ装置102上で動作する処理回路201が、プロセッサ202、メモリ204、入力/出力回路206、通信回路208、ローカル装置通信アプリケーション104、及び/又はブラウザ106のうちのいずれかを含む回路チップとして具体化され、又はこれらを含むことができる。ローカル装置通信アプリケーション104は、ローカル装置構成回路210、ローカル装置サーバ回路212、及び/又はローカル装置ドライバ回路214のうちのいずれかをさらに含むことができ、いくつかの実施形態ではユーザ装置102のメモリ204及びプロセッサ202上に実装することができる。処理回路201は、(例えば、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせを用いて)本明細書で説明する動作を実行するように構成された回路チップ(例えば、集積回路チップ)として具体化することができる。回路チップは、本明細書で説明する機能を提供するための1又は2以上の動作を実行する手段を構成することができる。
プロセッサ202は、上記で紹介した処理機能及び以下でさらに詳細に説明する処理機能の一部又は全部を実行することができる。メモリ204は、ローカル装置110の構成及びローカル装置110に送信すべきデータなどのデータを記憶するために利用することができる。プロセッサ202は、様々な動作を実行しながら必要に応じてこのデータの記憶及びデータへのアクセスを行うことができる。
プロセッサ202は、多くの異なる方法で具体化することができる。例えば、プロセッサ202は、マイクロプロセッサ又はその他の処理要素、コプロセッサ、コントローラ、或いは、例えばASIC(特定用途向け集積回路)又はFPGA(フィールドプログラマブルゲートアレイ)などの集積回路を含む他の様々なコンピュータ装置又は処理装置のうちの1つ又は2つ以上などの様々な処理手段として具体化することができる。プロセッサ202は、単一のプロセッサとして示しているが、複数のプロセッサを含むこともできると理解されるであろう。これらの複数のプロセッサは、互いに動作可能に通信することができ、本明細書で説明するようなローカル装置通信アプリケーション104及び/又はユーザ装置102の1又は2以上の機能を実行するようにまとめて構成することができる。複数のプロセッサは、単一のコンピュータ装置上に具体化することも、或いは複数のコンピュータ装置にわたって分散することもできる。いくつかの実施形態例では、プロセッサ202を、メモリ204に記憶された命令、又はプロセッサ202が別様にアクセスできる命令を実行するように構成することができる。従って、プロセッサ202は、ハードウェアによって構成されるか、それともハードウェアとソフトウェアの組み合わせによって構成されるかに関わらず、本発明の実施形態による動作を実行しながら適宜に構成できる(例えば、処理回路201の形の回路内に物理的に具体化される)エンティティを表すことができる。従って、プロセッサ202は、例えばASIC又はFPGAなどとして具体化された場合、本明細書で説明する動作を実行するように明確に構成されたハードウェアとすることができる。或いは、別の例として、プロセッサ202がソフトウェア命令の実行者として具体化された場合、これらの命令が、本明細書で説明する1又は2以上の動作を実行するようにプロセッサ202を明確に構成することができる。
いくつかの実施形態例では、メモリ204が、例えば固定式又は取り外し式とすることができる揮発性及び/又は不揮発性メモリなどの1又は2以上の非一時的記憶装置を含むことができる。この点、メモリ204は、非一時的コンピュータ可読記憶媒体を含むことができる。メモリ204は、単一のメモリとして示しているが、1又は2以上の実施形態例による様々な機能をユーザ装置102が実行できるようにする情報、データ、アプリケーション及び/又は命令などを記憶するように構成された複数のメモリを含むこともできると理解されるであろう。例えば、メモリ204は、検出されたローカル装置のいずれかに関する許可情報及び系列情報を記憶するように構成することができる。また、メモリ204は、プロセッサ202が処理する入力データをバッファリングするように構成することもできる。これに加えて、又はこれとは別に、メモリ204は、プロセッサ202が実行する命令を記憶するように構成することもできる。さらに別の代替例として、メモリ204は、様々なファイル、コンテンツ又はデータを記憶できる1又は2以上のデータベースを含むこともできる。メモリ204のコンテンツの中でもとりわけ、ローカル装置通信アプリケーション104及び/又はブラウザ106などの、本明細書で説明する機能を実施するためにプロセッサ202が実行するアプリケーションを記憶することができる。
ローカル装置通信アプリケーション104は、ローカル装置構成回路210、ローカル装置サーバ回路212、及び/又はローカル装置ドライバ回路214を含むことができる。回路210、212及び/又は214の各々は、以下で説明するような機能を実行するように構成されたそれぞれの及び/又は共通のハードウェアを含み、ネットワークインターフェイスを介してユーザ装置102のそれぞれの回路及び構成要素と通信することができる。回路210、212及び/又は214は、プロセッサ202などの処理回路を利用してこのような動作を実行することができる。しかしながら、いくつかの実施形態では、回路210、212及び/又は214のいずれかが、以下でさらに詳細に説明する様々なそれぞれの機能を実行するために別個のプロセッサ、専用に構成されたフィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)を含むこともできると理解されたい。従って、回路210、212及び/又は214は、これらの機能を実装するハードウェア又はソフトウェアのいずれかによって構成された装置のハードウェアコンポーネントを用いて実装される。
ローカル装置構成回路212は、ユーザ装置102と通信するような、又は具体的にはローカル装置通信アプリケーション104と通信するようなローカル装置110の構成を可能にすることができる。ローカル装置構成回路212は、ローカル装置110のネットワーク212をスキャンし、ホストウェブアプリケーション107及び/又はホストシステム108が特定のローカル装置110にアクセスできるようにする、ローカル装置110のシリアル番号などによる許可ステータス情報を保持するように構成することができる。この点、メモリ204は、シリアル番号、及び「承認」又は「未承認」などのステータスを示す対応する指標を記憶することができる。いくつかの例では、承認されたローカル装置のリストを記憶することができ、ローカル装置のシリアル番号の不在は、ローカル装置の許可ステータスが「未承認」であることを示すことができる。
この点、ローカル装置構成回路212は、ホストウェブアプリケーション107及び/又はホストシステム108のドメインが特定のローカル装置110にアクセスする許可の承諾又は拒否を行うようにユーザを促すユーザ許可プロンプトを提供するユーザインターフェイスを含み、又は生成することができる。構成は、ローカル装置通信アプリケーション104のインストールに応答して、或いはブラウザ106及び/又は後述するローカル装置サーバ回路212からの要求に応答して行うことができる。別の例として、ローカル装置通信アプリケーション104は、ローカル装置通信アプリケーション104によるホスト108へのローカル装置110のリストの提供を可能にするようにユーザを促すこともできる。これに加えて、又はこれとは別に、ユーザが情報の送信を明確に承認しなくても将来的にローカル装置110のリストを提供できるような設定をメモリ204に記憶することもできる。この結果、ホスト108は、ローカル装置110をブラウザ106に提供して表示し、及び/又は示されたローカル装置110のうちのいずれか1つに印刷を指示することができる。いくつかの例では、ホスト108がローカル装置110にアクセスできるようにするプロンプトをユーザが拒否した場合、アクセスが拒否された旨をユーザに警告するエラーメッセージをブラウザ106への表示などによって提供することができる。
一般に、ローカル装置サーバ回路214は、例えばブラウザ106が生成してポート9100に送信された要求を、ローカルソケットを介してリスンする(listen)ことができる。ローカル装置の要求が行われると、ローカル装置サーバ回路214は、ローカル装置構成回路212と通信してデフォルト装置又は利用可能なローカル装置をブラウザ106に示し、ローカル装置ドライバ回路214を介して所望のローカル装置110に装置コマンドを転送する。
一般に、ローカル装置ドライバ回路214は、ローカル装置サーバ回路214からの命令を処理し、特定のローカル装置110に対応する装置固有のフォーマットにデータを変換し、ローカル装置110へのデータ及び/又は装置コマンドの送信を引き起こすように構成される。ローカル装置ドライバ回路214は、ローカル装置110から応答を受け取り、装置応答をローカル装置サーバ回路214及び/又はブラウザ106に通信するように構成することもできる。
いくつかの実施形態では、ユーザ装置102が、プロセッサ202と通信してユーザに出力を提供し、いくつかの実施形態ではユーザ入力の指示を受け取ることができる入力/出力回路206を含むことができる。例えば、入力/出力回路206は、ブラウザ106を介してウェブアプリケーションを表示し、及び/又は許可されたローカル装置に関する入力を受け取るために使用することができる。入力/出力回路206は、ユーザインターフェイスを含み、ディスプレイ、ウェブユーザインターフェイス及び/又はモバイルアプリケーションなどを含むことができる。いくつかの実施形態では、入力/出力回路206が、キーボード、マウス、ジョイスティック、タッチ画面、タッチエリア、ソフトキー、マイク、スピーカ、又はその他の入力/出力機構を含むこともできる。プロセッサ、及び/又はプロセッサを含む入力/出力回路206は、プロセッサがアクセスできるメモリ(例えば、メモリ204など)に記憶されたコンピュータプログラム命令(例えば、ソフトウェア及び/又はファームウェア)を通じて1又は2以上のユーザインターフェイス要素の1又は2以上の機能を制御するように構成することができる。
通信回路208は、ネットワークを介した通信を可能にする1又は2以上のインターフェイス機構を含むことができる。場合によっては、通信回路208を、ネットワークとの間で、及び/又は処理回路201と通信する他のいずれかの装置又はモジュールとの間でデータを受信及び/又は送信するように構成された、ハードウェア又はハードウェアとソフトウェアの組み合わせのいずれかで具体化される装置又は回路などのいずれかの手段とすることができる。一例として、通信回路208は、(例えば、ローカル装置ドライバ回路214を含む)ローカル装置通信アプリケーション104とローカル装置110との間の通信を可能にするように構成することができる。いくつかの実施形態では、通信回路208が、ユーザ装置102とホストシステム108との間の通信を可能にして、ブラウザ106が表示及び/又は処理するウェブアプリケーションコンテンツ及びコードなどのホストウェブアプリケーション107を提供するようにさらに構成される。従って、通信回路208は、例えばネットワーク112、114などを介した通信を可能にするサポートハードウェア及び/又はソフトウェアを含むことができる。
図3は、実施形態例による動作のフローチャート例である。表示302によって示すように、ユーザ装置102のユーザは、ブラウザ106を用いて、ホストウェブアプリケーション107が提供するウェブページにアクセスする。動作306において、ホストシステム108及び/又はホストウェブアプリケーション107は、ローカル装置通信API109を呼び出して、ブラウザに送信する応答にスクリプトを埋め込む。スクリプトは、クライアント又はブラウザ106が実行するように構成された、JavaScript(登録商標)などのいずれかのコンピュータプログラムコードを含むことができる。応答は、ホストシステム108及び/又はホストウェブアプリケーション107によって生成されたものなどの、ブラウザ106が処理及び/又は表示すべき追加コンテンツ又はコンピュータプログラムコードを含むことができる。
動作310において、ブラウザは、ホストウェブアプリケーション107及び/又はローカル装置通信ローカル装置通信アプリケーションAPI109からの応答を処理し、ユーザ装置102のブラウザに表示するコンテンツ及び/又は画像を提供する。この点、ブラウザが表示するコンテンツは、ローカル装置通信API109によって提供されたコンピュータプログラムコード及び/又はスクリプトに加え、ホストウェブアプリケーション107がローカル装置通信API109とは無関係に生成したコンテンツを含むことができる。いくつかの例では、ブラウザ106がスクリプトを実行すると要求同士の区別が可能になり、これによって以下で説明するようにローカル装置通信アプリケーション104宛ての要求がローカル装置通信アプリケーション104に送信されるようになる。
さらに、ホストウェブアプリケーション107によって提供されるコンテンツは、ローカル装置通信アプリケーション104に対する非同期的呼び出しからの応答とは無関係に提供することができる。ブラウザ106によって処理されるスクリプトは、ローカル装置通信アプリケーション104に対する(例えば、ローカル装置サーバ回路212に対する)、利用可能なローカル装置110を求める非同期的JavaScript(登録商標)呼び出しを含むことができる。このような要求は、装置要求と見なすことができる。装置要求は、利用可能なローカル装置を求める、及び/又はローカル装置110に送信すべきデータ及び/又は要求を示す、ローカル装置通信アプリケーション104へのあらゆる通信を含むことができる。いくつかの例では、さらなるユーザインタラクションを伴わずに自動的に装置要求を生成して送信することができる。いくつかの例では、ユーザが、ローカル装置110への通信を開始したい旨の要望を示し、ユーザ入力に応答して装置要求を生成して送信することができる。いくつかの例では、ユーザ入力を不要とすることもできる。
動作314によって示すように、ローカル装置通信アプリケーション104は、ローカル装置構成回路210などの、要求を受け取って処理する手段を含むことができる。
いくつかの例では、ローカル装置通信アプリケーション104が、デフォルトローカル装置が構成されたことを認識して、要求及び/又はデータを転送する。
いくつかの例では、ブラウザによって生成された要求を受け取ったことに応答して、利用可能な及び/又は許可された装置のローカルエリアネットワーク及び/又はローカル装置などのネットワーク(例えば、ローカルネットワーク112)をスキャンする。例えば、ローカル装置通信アプリケーション104は、ユーザ装置102に直接接続されたローカル装置、又はネットワークを介して利用できるローカル装置を識別することができる。従って、ローカル装置通信アプリケーション104は、プリンタ及び/又はファックスなどの利用可能なローカル装置のシリアル番号、装置タイプ及び/又はその他の識別情報を提供することができる。ローカル装置通信アプリケーション104が使用するローカル装置の構成に関するさらなる機能については、以下で図4などに関連してさらに詳細に説明する。いくつかの例では、ローカル装置をデフォルト設定することができ、必ずしも他の利用可能なローカル装置をブラウザに提供しなくてもよい。
いくつかの例では、動作318によって示すように、ブラウザ106が、ローカル装置通信アプリケーション104からローカル装置情報を受け取り、装置に関する情報をホストウェブアプリケーション107の指示通りに、及び/又はウェブアプリケーションを介したローカル装置通信API109の指示通りにブラウザに表示する。例えば、図6を参照されたい。ブラウザへの応答は、JavaScript(登録商標) Object Notation(JSON)又は拡張マークアップ言語(XML)の形を取ることができる。従って、ローカル装置情報は、非同期的な通信の性質(例えば、Asynchronous JavaScript(登録商標) and XML(AJAX)及び/又はAsynchronous JavaScript(登録商標) and JSON(AJAJ))に起因して、他のコンテンツを邪魔することなく、又は他のコンテンツをリフレッシュすることなくウェブページ上に表示することができる。
いくつかの実施形態では、ユーザが、ブラウザによって提示された複数のローカル装置のうちの特定のローカル装置110を選択することができる。いくつかの例では、ユーザが、「印刷」、又はローカル装置通信アプリケーション104への要求を引き起こすように構成された別のインターフェイス要素を選択することができる。ローカル装置通信アプリケーション104に対して行われる要求は、ローカル装置選択指示を含むことができる。ローカル装置選択指示は、データを送信すべき特定のローカル装置110を識別するいずれかの情報を含むことができる。例えば、この要求は、ユーザが選択したローカルプリンタの識別子、及び印刷すべきデータ(例えば、HTML、画像など)を含むことができる。いくつかの例では、ローカル装置選択指示を含めずに、ローカル装置通信アプリケーション104などがデフォルトのローカル装置を識別することもできる。
動作322によって示すように、ローカル装置通信アプリケーション104は、ローカル装置ドライバ回路210及び/又はプロセッサ202などの、ローカル装置110に指定された装置固有のフォーマットにデータを変換してローカル装置110に送信する手段を含むことができる。この点、ローカル装置ドライバ回路214は、選択されたローカル装置又はデフォルトローカル装置などの特定のローカル装置110に対応する装置コマンド及び/又はデータタイプを識別することができる。
例えば、ローカル装置110を、プリンタ制御言語であるZebra Programming language(ZPL)などの専用言語によって制御される装置として識別することができる。
例えば、「HTMLコンテンツの印刷方法及び装置(Method and Apparatus for Printing HTML Content)」という名称の米国特許番号第8,717,285号には、HTMLをプリンタ制御言語に変換する方法、装置及びコンピュータプログラム製品が記載されており、この文献はその全体が引用により本明細書に組み入れられる。従って、HTMLを、ローカル装置110が解釈して処理できる専用言語及び/又は手続型言語に変換することができる。
具体的には、ローカル装置ドライバ回路214は、印刷すべきコンテンツを指定する受け取ったHTMLを拡張ハイパーテキストマークアップ言語(XHTML)に変換し、拡張スタイルシート言語(XSL)テンプレートに基づいてスタイル情報を生成することができる。ローカル装置ドライバ回路214は、ローカル装置110上でプリンタコマンドを実行すると、HTMLによって指定されるスタイルでHTMLから導かれる位置にコンテンツがラスター化されるように、配置情報を抽出してXHTMLからのコンテンツ及びスタイル情報を含むプリンタコマンドを生成する。この点、プリンタコマンドは、コンテンツを印刷すべき媒体に対するコンテンツの意図された位置付け又は配置をローカル装置110が解釈する元となるいずれかの情報又は装置コマンドを含む「位置決め情報」を含むことができる。データを装置固有の言語であるZPLに変換することによってZPLで生成されたプリンタコマンド例を以下に示す。ZPLコマンドは、データから抽出された配置情報、スタイル情報及びコンテンツを含み、いくつかの例ではHTMLで提供することができる。
^XA^C128^PW639^FT528,75^A@R,150,150,E:MYRDREG.ttf^FDZebra^FS^FT6390^A@R,−
37,37,E:MYRDREG.ttf^FD^FS^FT430,75^A@R,83,83,E:MYRDREG.ttf^FD
カスタムアプリケーション
Group^FS^FT114,75^BY2,3.0^B3R,N,250,N,N^FD*ZEBRACUSTOMAPPLICATIONSGROUP*^−FS^XZ
別の例として、ローカル装置通信アプリケーション104は、ブラウザ106によって提供されるポータブル・ドキュメント・フォーマット(PDF)及び/又はPCL(ポイント・クラウド・ライブラリ)、PostScriptなどのページ記述言語をZPLに変換することもできる。これにより、PDF、PCL及び/又はPostScriptで表示されたコンテンツをZPL固有の装置上で印刷することができる。
従って、アプリ104及び/又はローカル装置ドライバ回路214は、HTML、PDF、PCL及び/又はPostScriptなどの1つのフォーマットのデータを上記のZPLコマンドなどの手続型コマンドに変換するように予め構成しておくことができる。ユーザ装置102にインストールされると、ユーザ装置102を、ホストウェブアプリケーション107のさらなるカスタマイズ又は開発を伴わずに、ブラウザ106を介して提供されたデータを装置固有のフォーマットに変換するように構成することができる。
この点、ローカル装置通信アプリケーション104、又は具体的にはローカル装置ドライバ回路214は、装置ドライバを含むことができ、或いはユーザ装置102上で動作する装置ドライバと通信するように別様に構成することができる。ローカル装置通信アプリケーション104は、ブラウザ106から受け取ったデータをローカル装置110に対応するフォーマットに変換すると、ローカル装置110への装置固有のコマンド及び/又はデータの送信を開始することができる。
いくつかの実施形態では、ローカル装置通信アプリケーション104が、ローカル装置のためにフォーマットされたデータをブラウザから受け取り、必ずしもデータを別のフォーマットに変換する必要がないようにすることもできる。例えば、ローカル装置通信アプリケーション104は、ZPLフォーマットのコマンドを受け取ることができる。例えば、^HHは、ローカル装置110などのプリンタにプリンタ構成を要求するために使用するZPLコマンドであり、〜HSは、プリンタステータス情報を要求するために使用するZPLコマンドである。従って、ローカル装置110は、以下の動作330に関する説明のように、及び図8に示して以下で説明するように応答することができる。
動作326によって示すように、ローカル装置110は、ユーザ装置102から装置コマンドを受け取ることができる。この装置コマンドは、ローカル装置110によって処理することができ、ブラウザ106から装置固有のフォーマットに変換されたデータを含むことができる。例えば、ローカル装置110がプリンタである実施形態では、ローカル装置110が、ユーザ装置によって送信されたデータをローカル装置通信アプリケーション104による指示通りに印刷することができる。従って、印刷されたコンテンツは、ブラウザ106によって表示されるHTML又は他のコンテンツに類似することができる。このような例では、プリンタのための装置固有のコマンドを「印刷コマンド」と見なすことができる。いくつかの例では、装置固有のフォーマットの装置コマンド及び/又は印刷コマンドを、ZPLなどの専用言語とすることができる。
いくつかの実施形態では、動作330によって示すように、ユーザ装置102が、ローカル装置通信アプリケーション104、ローカル装置ドライバ回路214、プロセッサ202及び/又は通信回路208などの、ローカル装置110からローカル装置応答を受け取って処理する手段を含むことができる。この点、ローカル装置応答は、ユーザ装置102に送信されるローカル装置110からの通信を含むことができる。従って、ローカル装置応答は、装置コマンドの受け取り及び/又は処理の完了を確認することができる。例えば、ローカル装置110は、印刷ジョブが完了したことを示すローカル装置応答をローカル装置ドライバ回路214に通信するように構成することができ、ローカル装置ドライバ回路214は、ローカル装置110によって提供された、確認及び/又はエラーメッセージを含む装置固有のコードを含むことができるローカル装置応答を処理するように構成することができる。ローカル装置ドライバ回路214は、ユーザにメッセージを表示することなどを目的とするさらなる通信をブラウザ106に送信できるようにローカル装置応答を提供することができる。従って、ローカル装置ドライバ回路214及び/又はローカル装置通信アプリケーション104は、ブラウザ106が表示するメッセージの提供を引き起こすことができる。いくつかの例では、ローカル装置110からのローカル装置応答が存在しない期間の経過後に、ローカル装置ドライバ回路214は、ローカル装置110からの応答がないことを示すように応答を生成することができる。
別の例として、ローカル装置110は、上述した^HHコマンドなどに応答して、プリンタ構成情報などのローカル装置ステータス情報をユーザ装置120に戻すことができる。プリンタ構成情報は、ローカル装置110の現在の状態、構成要素及び/又はハードウェアなどに関連するいずれかの設定情報又は構成情報を含むことができる。例えば、プリンタ構成情報は、暗さ、印刷モード、媒体タイプ、センサタイプ、ファームウェア及び/又はメモリカードなどを示すことができる。
さらに別の例として、ローカル装置110は、上述した^HSコマンドなどに応答して、プリンタステータス情報などのローカル装置ステータス情報をユーザ装置120に戻すことができる。従って、ローカル装置応答は、以下に限定するわけではないが、休止フラグ、温度インジケータ、受信バッファ内のフォーマット数及び/又はラベル長を含むプリンタステータス情報を含むことができる。これに加えて、又はこれとは別に、プリンタステータス情報は、以下に限定するわけではないが、破損RAMフラグ、用紙切れフラグ及び/又はバッファ容量不足フラグを含むエラー状態情報を含むことができる。
動作334によって示すように、ブラウザ106は、ローカル装置通信アプリケーション104(例えば、ローカル装置ドライバ回路214)から応答を受け取るように構成することができる。この応答は、ブラウザ106によって実行されるスクリプトが応答を処理し、AJAX及び/又はAJAJフレームワークによって提供される他のコンテンツに干渉することなくメッセージを表示できるように、XML及び/又はJSONなどのフォーマットとすることができる。例えば、ブラウザ106は、印刷ジョブが完了した旨をユーザに表示し、及び/又はローカル装置110による装置コマンドへの応答失敗などのエラーメッセージを提供することができる。いくつかの例では、ブラウザ106が、ローカル装置構成情報及び/又はローカル装置ステータス情報などの、ローカル装置110から受け取ったデータを表示することができる。
いくつかの例では、ローカル装置構成情報及び/又はローカル装置ステータス情報などの、ユーザ装置102上でローカル装置110から受け取ったデータを、さらにホストシステム108に戻すことができる。従って、ホストウェブアプリケーション107は、その処理においてこの情報を利用することができる。例えば、ローカル装置110によって戻されたラベル長に基づいてラベルを作成するように調整を行うことができる。
上述した図3に示す動作は、実施形態例によるシステム100の様々な構成要素間の動作例及び通信例を例示するために示したものである。図4は、ローカル装置通信アプリケーション104の構成と、ローカル装置構成回路210などの、ローカル装置通信アプリケーション104と通信するローカル装置110の構成とを示すフローチャート図である。
動作402によって示すように、ブラウザ106は、ホストシステム108のサーバなどのサーバ、及び/又はホストウェブアプリケーション107にウェブページを要求する。動作406によって示すように、ホストシステム108から提供されブラウザ106によって実行されるJavaScript(登録商標)が、利用可能なプリンタ(又は他のローカル装置)をローカル装置通信アプリケーション104に要求する。動作410及び414によって示すように、ローカル装置通信アプリケーション104が検出されない場合又は利用できない場合には、ユーザ装置102上のさらなるアプリケーションなどを用いて、アプリをインストールする命令をユーザに表示することができる。例えば、ユーザは、Google Play(商標)又は他の同様のアプリストアからアプリケーションをダウンロードすることができる。図5は、ローカル装置通信アプリケーション104がインストールされていない場合にブラウザ106によって生成されるインターフェイス例である。コンテンツ501は、ホストシステム108によって提供される、ブラウザ106が表示すべきいずれかのコンテンツを含むことができ、例えばホストウェブアプリケーション107によって生成される、ユーザがローカルプリンタで印刷したいと望むバーコードラベル(図示せず)を含むことができる。ローカル装置110を提供するローカル装置通信アプリケーション104を利用できないので、ドロップダウン502は空欄で表示することができる。メッセージ503は、ローカル装置通信アプリケーション104が存在せずダウンロードすべきである旨をユーザに示す。リンク504は、ユーザがローカル装置通信アプリケーション104をダウンロードできるように、ユーザ装置102のアプリストアにアクセスするリンクを提供する。いくつかの例では、インストールを容易にするために、ローカル装置通信アプリケーション104をデフォルト設定してアプリストアで選択することができる。
図4に戻ると、ローカル装置通信アプリケーション104がインストールされており、(又はローカル装置通信アプリケーション104のインストール後に)ユーザ装置102上で検出された場合、動作418によって示すように、ローカル装置通信アプリケーション104は、動作314に関して上述したようにプリンタ又は他のローカル装置100のリストを提供することができる。動作422において、JavaScript(登録商標)がプリンタを選択し、ローカル装置通信アプリケーション104にデータを送信する。換言すれば、ブラウザ106から開始したJavaScript(登録商標)呼び出しは、選択されたプリンタ又はローカル装置110をローカル装置通信アプリケーション104に示す。いくつかの例では、選択されるローカル装置110をユーザが選択することができ、或いは1つのローカル装置110のみが利用可能である場合、又はあるローカル装置が位置装置通信アプリケーション104ないでデフォルトローカル装置として設定されている場合などのいくつかの例では、ユーザからの入力を伴わずに選択をデフォルトのローカル装置110にデフォルト設定することができる。図6は、ローカル装置通信アプリケーション104がインストールされている場合にブラウザ106によって生成されるインターフェイス例である。この点、図6のインターフェイスは、ローカル装置通信アプリケーション104のインストール後に図5のインターフェイスが更新されたものとすることができる。この例では、利用可能なローカル装置110がドロップダウン502に追加されており、従ってユーザは、プリンタを選択した後に構成要素510を選択して、選択したプリンタ(例えば、ローカル装置110)へのコンテンツ501などのデータの転送を開始することができる。図7に、ローカル装置選択指示に関するさらなる詳細を示しており、これについては以下でさらに詳細に説明する。
図4に戻ると、動作426によって示すように、ローカル装置通信アプリケーション104は、元々のウェブサーバドメイン(例えば、ホストウェブアプリケーション107及び/又はホストシステム108)が、利用可能な各ローカル装置110に関する許可ステータスを有しているかどうか、及び/又はローカル装置110のローカルネットワーク112及び/又はユーザ装置102をスキャンすべきかどうかを判断することができる。この点、許可ステータスは、ホストウェブアプリケーション107及び/又はホストシステム108が特定のローカル装置100にアクセスする許可を有しているかどうかを示すいずれかの情報を含むことができる。ローカル装置構成回路210などを含むローカル装置通信アプリケーション104は、このような通信が許可されている許可ドメイン、ホストウェブアプリケーション107及び/又はホストシステム108のリストを保持することができる。いくつかの例では、ホストシステム108が、許可されると、ユーザにさらに問い合わせることなくブラウザ106を通じてあらゆるローカル装置110にアクセスすることができる。これに加えて、又はこれとは別に、ローカル装置110のシリアル番号などをホストウェブアプリケーション107及び/又はホストシステム108に関連して記憶し、指定されたローカル装置110への要求を特定のドメイン、ホストウェブアプリケーション107及び/又はホストシステム108が(ホストウェブアプリケーション107及び/又はホストシステム108によって提供されたページを表示するブラウザ106を介して)開始できるかどうかを示すこともできる。
例えば、以前のセッションにおいてユーザ装置102のユーザによって許可が与えられていた場合、或いは特定のホストウェブアプリケーション107及び/又はホストシステム108がローカル装置110にアクセスするためのローカル装置通信アプリケーション104の初期構成によって許可が与えられていた場合、動作430において、動作322及び326に関して上述したように、選択されたローカル装置110(例えば、プリンタ)に装置コマンド及び/又はデータを送信することができる。いくつかの例では、未だ許可が与えられていなかった場合、動作434によって示すように、要求側のホストウェブアプリケーション107及び/又はホストシステム108がローカル装置110と通信できる旨を確認するようにユーザ装置102のユーザを促すことができる。この点、ユーザ装置のユーザに対して出力される、ホストウェブアプリケーション107及び/又はホストシステム108がローカル装置110にアクセスする許可を要求するあらゆるメッセージをユーザ許可プロンプトと見なすことができる。ユーザによって認可指示が行われ、ローカル装置通信アプリケーション104に提供されると、動作438及び430によって示すようにローカル装置110との通信を開始することができる。従って、認可指示は、ホストウェブアプリケーション107及び/又はホストシステム108がローカル装置110にアクセスする許可が与えられていることを示すいずれかのユーザ入力と見なすことができる。
いくつかの例では、ユーザが、ローカル装置110と通信するためのホストシステム108の要求を(ブラウザ106を介して)承認しないこともできる。このような例では、動作424によって示すように、ローカル装置通信アプリケーション104がローカル装置110へのデータ送信を進めることはない。このような機能は、ブラウザ106が悪意あるコードを実行してローカル装置通信アプリケーション104に送信しても、元々のドメイン又はホストシステム108がローカル装置110にアクセスすることをユーザが明確に許可しない限りローカル装置110を制御できないように、追加のセキュリティをもたらすことができる。
図7は、ローカル装置通信アプリケーション104が実行できる動作のフローチャート例である。動作702によって示すように、ブラウザは、アプリケーション(例えば、ローカル装置通信アプリケーション104)にプリンタなどのデフォルトローカル装置を要求する。従って、ローカル装置通信アプリケーション104は、ローカルポート上で要求をリスンすることなどによって要求を受け取る。動作704によって示すように、ローカル装置通信アプリケーション104は、デフォルトローカル装置が設定されているかどうかを判定する。デフォルトローカル装置がメモリ204などに記憶されている場合、ローカル装置通信アプリケーション104は、ブラウザ106によって提供された関連するコマンドをデフォルトローカル装置に送信できると判断する。
いくつかの実施形態では、動作708によって示すように、それでもなおブラウザ106のユーザが、デフォルトローカル装置以外の異なるローカル装置の使用を指示することもある。このような場合、又はデフォルトローカル装置が設定されていない場合、ローカル装置通信アプリケーション104は、動作710によって示すように、利用可能なローカル装置を求めてネットワークをスキャンすることができる。従って、ブラウザ106は、動作712によって示すように、ユーザにローカル装置を表示して選択できるようにすることができる。動作714において、ローカル装置が選択される一方で、ユーザは、動作716において、選択されたローカル装置を変更する機会を有する。いくつかの例では、動作718において、ユーザが、ブラウザによって提供された指定データを印刷することなどの、ローカル装置通信アプリケーション104が処理すべきコマンドを、選択されたローカル装置に対してさらに示すことができる。動作720によって示すように、ユーザは、選択された同じ装置にデータを送信し続けることも、或いは動作716において、選択されたローカル装置を変更する機会を有することもできる。
図8は、ローカル装置通信アプリケーション104がローカル装置110にコマンドを送信したことに応答してローカル装置110が印刷できるラベル例800である。この例では、ローカル装置110が、ラベルにプリンタ構成情報を印刷している。別の例として、ローカル装置110は、(例えば、ローカル装置通信アプリケーション104を介して)ユーザ装置102にデータを戻し、ブラウザ106によってデータを表示することもできる。さらに別の例として、ローカル装置110からホストシステム108にデータを送信することもできる。
本明細書に示した実施形態は、ユーザ装置102からのコンテンツを印刷する方法を有利に改善する。実施形態例では、ユーザが、装置固有のドライバを検索してインストールすることなくローカル装置通信アプリケーション104をオンザフライで素早くインストールすることができる。さらに、実施形態例は、AJAX及び/又はAJAJなどのブラウザ及びオペレーティングシステムに依存しない方法を用いて実装できるので、様々なブラウザタイプ及びオペレーティングシステムに対応する。一方で、ActiveX(登録商標)を用いて実装される別の方法は、例えばInternet Explorer(登録商標)にしか対応することができない。さらに、実施形態例は、ユーザ装置からのブラウザコンテンツを印刷する安全な解決策を提供するのに対し、Java(登録商標)アプレットに依存する他の方法は、内在するセキュリティの脆弱性を示すことがある。
さらに、いくつかの実施形態では、ホストシステム108の開発者が、ローカル装置通信API109により、ホストウェブアプリケーション107などのウェブアプリケーションをカスタマイズして装置ドライバなどのさらなるカスタマイズを伴わずにユーザ装置102のユーザに望ましい解決策を提供することができる。実施形態例では、ローカル装置通信アプリケーション104を用いて、HTMLなどの標準プロトコルに基づいて、専用言語などの装置固有のコマンドをユーザ装置102上で直接生成することができる。従って、実施形態は、個々の解決策をカスタマイズする上での専用の装置制御ソフトウェアに対するホストシステム108の依存性を軽減する。従って、ホストシステム108の開発者は、ローカル装置通信アプリケーション104との、及びローカル装置110上での印刷能力との互換性を維持しながらウェブアプリケーションを強化し続けることができる。
上述したように、また本開示に基づいて理解されるように、本発明の実施形態は、コンピュータにより実行される方法、ユーザ装置及び/又はウェブサーバなどとして構成することができる。従って、実施形態は、ハードウェア、又はソフトウェアとハードウェアのあらゆる組み合わせを全体として含む様々な手段を含むことができる。さらに、実施形態は、記憶媒体内に具体化されたコンピュータ可読プログラム命令(例えば、コンピュータソフトウェア)を有する少なくとも1つの非一時的コンピュータ可読記憶媒体上のコンピュータプログラム製品の形を取ることもできる。非一時的ハードディスク、CD−ROM、フラッシュメモリ、光学記憶装置又は磁気記憶装置を含むあらゆる好適なコンピュータ可読記憶媒体を利用することができる。
上記では、方法、装置、システム及びコンピュータプログラム製品のブロック図及びフローチャート図を参照しながら本発明の実施形態を説明した。回路図及び処理フローチャートの各ブロック、並びに回路図及び処理フローチャート内のブロック同士の組み合わせは、コンピュータプログラム命令を含む様々な手段によってそれぞれ実装することができると理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、或いはプロセッサ202、ローカル装置通信アプリケーション104(例えば、回路210、212及び/又は214)などの他のプログラム可能なデータ処理装置上にロードして機械を生産することにより、コンピュータプログラム製品が、コンピュータ又は他のプログラム可能なデータ処理装置上で実行されてフローチャートの1又は複数のブロックに指定される機能を実装する手段を生み出す命令を含むようにすることができる。
また、コンピュータ又は他のプログラム可能なデータ処理装置に特定の形で機能するように指示することができるこれらのコンピュータプログラム命令をコンピュータ可読記憶媒体(例えばメモリ204)に記憶することにより、コンピュータ可読記憶媒体に記憶された命令が、本明細書で説明した機能を実装するコンピュータ可読命令を含む製造の物品を生み出すようにすることもできる。また、これらのコンピュータプログラム命令をコンピュータ又は他のプログラム可能なデータ処理装置上にロードし、これらのコンピュータ又は他のプログラム可能な装置上で一連の動作ステップが行われるようにしてコンピュータ実装処理を生成することにより、コンピュータ又は他のプログラム可能な装置上で実行される命令が、本明細書で説明した機能を実装するステップをもたらすようにすることもできる。
従って、ブロック図及びフローチャート図のブロックは、指定された機能を実行する手段の組み合わせ、指定された機能を実行するステップの組み合わせ、及び指定された機能を実行するプログラム命令手段をサポートする。また、回路図及び処理フローチャートの各ブロック、並びに回路図及び処理フローチャート内のブロックの組み合わせは、指定された機能又はステップを実行する専用ハードウェアベースのコンピュータシステム、或いは専用ハードウェアとコンピュータ命令との組み合わせによって実装することができると理解されるであろう。
上述の説明及び関連する図面に示す教示の恩恵を受ける、これらの発明の実施形態が関連する当業者には、本明細書に記載した発明の多くの修正及びその他の実施形態が浮かぶであろう。従って、本発明の実施形態は、開示する特定の実施形態に限定されるものではなく、修正及びその他の実施形態も添付の特許請求の範囲に含まれると理解されたい。本明細書では特定の用語を使用しているが、これらは一般的かつ説明的な意味で使用したものにすぎず、限定を目的とするものではない。
302 ウェブページを要求
308 アプリケーションプログラミングインターフェイスを呼び出してホストウェブアプリケーションにスクリプトを埋め込む
310 ホストウェブアプリケーションを提供
314 要求を受け取って処理
318 ローカル装置を表示
322 データを装置固有のフォーマットに変換して送信
326 装置コマンドを処理
330 ローカル装置応答を処理
334 メッセージを表示

Claims (22)

  1. ローカル装置と、ユーザ装置上で動作するように構成されたブラウザとの間の通信を可能にするように前記ユーザ装置上で動作するよう構成されたコンピュータプログラム製品であって、該コンピュータプログラム製品は、
    前記ブラウザによって生成された要求を受け取り、
    前記要求が、前記ブラウザから前記コンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断し、
    前記ブラウザから送信される前記データと、前記ローカル装置に関する情報とに基づいて生成された装置コマンドが前記ローカル装置に送信されるようにする、
    ように構成される、
    ことを特徴とするコンピュータプログラム製品。
  2. 前記コンピュータプログラム製品は、前記ローカル装置がデフォルトのローカル装置であると判断する、
    請求項1に記載のコンピュータプログラム製品。
  3. 前記コンピュータプログラム製品は、
    利用可能なローカル装置のリストを提供して、前記ユーザ装置のユーザインターフェイス上に前記ブラウザを介して表示されるようにし、
    ユーザが前記ユーザインターフェイスを介して前記リストから選択を行ったことに基づいて、ローカル装置選択指示を受け取る、
    ようにさらに構成され、前記ローカル装置は、前記ローカル装置選択指示に基づいて識別される、
    請求項1に記載のコンピュータプログラム製品。
  4. 前記コンピュータプログラム製品は、要求側のホストウェブアプリケーションに関する前記ローカル装置の許可ステータスを検証するようにさらに構成される、
    請求項1に記載のコンピュータプログラム製品。
  5. 前記ユーザ装置に、前記ブラウザを介して、ホストウェブアプリケーションと前記ローカル装置とに関するユーザ許可プロンプトを出力させ、
    前記ブラウザを介した前記ユーザ許可プロンプトの前記出力に応答して認可指示を受け取り、
    前記認可指示に基づいて、前記ホストウェブアプリケーション及び前記ローカル装置に関する許可ステータスを更新する、
    ようにさらに構成される、
    請求項1に記載のコンピュータプログラム製品。
  6. ホストウェブアプリケーションへのスクリプトの埋め込みを可能にするように構成されたローカル装置通信アプリケーションプログラミングインターフェイスをさらに含み、前記要求が、前記ブラウザから送信されるデータの前記通信要求を含むとの前記判断は、前記スクリプトを実行することを含み、前記ブラウザからの前記要求の受け取り、及び前記ローカル装置への前記装置コマンドの前記送信は、前記スクリプトの実行に応答して行われる、
    請求項1に記載のコンピュータプログラム製品。
  7. 前記装置コマンドの生成は、ハイパーテキストマークアップ言語(HTML)を、該HTMLから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む、
    請求項1に記載のコンピュータプログラム製品。
  8. 前記データは、前記ブラウザによって実行される非同期的JavaScript(登録商標)呼び出しを介して受け取られる、
    請求項1に記載のコンピュータプログラム製品。
  9. 前記ローカル装置はプリンタであり、該プリンタに送信される前記装置コマンドは、印刷コマンドである、
    請求項1に記載のコンピュータプログラム製品。
  10. 前記プリンタは、ゼブラ専用言語(Zebra Proprietary Language)によって制御されるプリンタである、
    請求項9に記載のコンピュータプログラム製品。
  11. 前記装置コマンドは、
    前記ローカル装置が前記ユーザ装置にローカル装置構成情報を戻すこと、
    前記ローカル装置が前記ユーザ装置にローカル装置ステータス情報を戻すこと、又は、
    前記ローカル装置がローカル装置構成情報を印刷すること、
    のうちの少なくとも1つを引き起こす、
    請求項1に記載のコンピュータプログラム製品。
  12. 前記選択されたローカル装置からローカル装置応答を受け取るようにさらに構成される、
    請求項1に記載のコンピュータプログラム製品。
  13. ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にするシステムであって、
    前記ユーザ装置上で動作するように構成されたローカル装置通信アプリケーションと、
    ホストシステム上で動作するように構成されたホストウェブアプリケーションと、
    前記ホストシステム上で動作するように構成されたローカル装置通信アプリケーションプログラミングインターフェイスと、
    を備え、前記ローカル装置通信アプリケーションプログラミングインターフェイスは、前記ホストウェブアプリケーションと通信するように構成され、前記ホストウェブアプリケーションは、前記ブラウザによって表示されるデータを生成するとともに、前記ブラウザが前記ローカル装置通信アプリケーションと通信できるようにし、前記ローカル装置通信アプリケーションは、前記ブラウザから前記データを受け取り、該データを装置固有のフォーマットに変換し、該変換したデータを前記ローカル装置に送信するように構成される、
    ことを特徴とするシステム。
  14. 前記ローカル装置通信アプリケーションは、利用可能なローカル装置を前記ブラウザに提供して表示されるようにし、ローカル装置選択指示を受け取るようにさらに構成され、前記ローカル装置は、前記ローカル装置選択指示に基づいて識別される、
    請求項13に記載のシステム。
  15. 前記データの変換は、ハイパーテキストマークアップ言語(HTML)を、該HTMLから導出されるコンテンツ、スタイル及び位置決め情報を含む印刷コマンドに変換することを含む、
    請求項13に記載のシステム。
  16. 前記ローカル装置はプリンタであり、該プリンタに送信される前記装置コマンドは、印刷コマンドである、
    請求項13に記載のシステム。
  17. 前記ローカル装置通信アプリケーションは、前記ローカル装置からのローカル装置応答を装置固有のフォーマットで受け取り、前記ローカル装置応答に基づいて、前記ブラウザによって表示されるメッセージが提供されるようにするようさらに構成される、
    請求項13に記載のシステム。
  18. 前記ローカル装置通信アプリケーションは、要求側のホストウェブアプリケーションに関する前記ローカル装置の許可ステータスを検証するようにさらに構成される、
    請求項13に記載のシステム。
  19. 前記ローカル装置通信アプリケーションは、
    前記ユーザ装置に、前記ブラウザを介して、ホストウェブアプリケーションと前記ローカル装置とに関するユーザ許可プロンプトを出力させ、
    前記ブラウザを介した前記ユーザ許可プロンプトの前記出力に応答して認可指示を受け取り、
    前記認可指示に基づいて、前記ホストウェブアプリケーション及び前記ローカル装置に関する許可ステータスを更新する、
    ようにさらに構成される、
    請求項13に記載のシステム。
  20. 前記データは、前記ブラウザによって実行される非同期的JavaScript(登録商標)呼び出しを介して受け取られる、
    請求項13に記載のシステム。
  21. ユーザ装置上で動作するように構成されたブラウザからローカル装置へのデータの通信を容易にする、コンピュータにより実行される方法であって、
    前記ブラウザによって生成された要求を受け取るステップと、
    前記要求が、前記ブラウザから前記コンピュータプログラム製品を介して送信されるデータの通信要求を含むと判断するステップと、
    前記ブラウザから送信される前記データと前記ローカル装置に関する情報とに基づいて生成された装置コマンドが前記ローカル装置に送信されるようにするステップと、
    を含むことを特徴とするコンピュータにより実行される方法。
  22. 前記ブラウザから受け取った前記データを、ローカル装置のタイプに基づいて装置固有のフォーマットに変換するステップをさらに含む、
    請求項21に記載のコンピュータにより実行される方法。
JP2017533188A 2014-12-19 2015-11-18 ユーザ装置のブラウザとローカル装置との間の通信を可能にする方法 Pending JP2018502389A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/577,201 2014-12-19
US14/577,201 US12021917B2 (en) 2014-12-19 2014-12-19 Method for enabling communication between a user device browser and a local device
PCT/US2015/061299 WO2016099773A1 (en) 2014-12-19 2015-11-18 Method for enabling communication between a user device browser and a local device

Publications (1)

Publication Number Publication Date
JP2018502389A true JP2018502389A (ja) 2018-01-25

Family

ID=54834912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017533188A Pending JP2018502389A (ja) 2014-12-19 2015-11-18 ユーザ装置のブラウザとローカル装置との間の通信を可能にする方法

Country Status (8)

Country Link
US (1) US12021917B2 (ja)
JP (1) JP2018502389A (ja)
KR (1) KR101959862B1 (ja)
CN (1) CN107111465A (ja)
DE (1) DE112015005673B4 (ja)
GB (1) GB2547380B (ja)
MX (1) MX2017006344A (ja)
WO (1) WO2016099773A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133399A (ja) * 2018-01-31 2019-08-08 京セラドキュメントソリューションズ株式会社 画像形成システム及び画像形成方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159603B2 (en) 2015-04-15 2021-10-26 Hyland Switzerland Sàrl Cross-platform module for loading across a plurality of device types
US10567518B2 (en) * 2015-06-26 2020-02-18 Western Digital Technologies, Inc. Automatic discovery and onboarding of electronic devices
CN110941401A (zh) * 2018-09-25 2020-03-31 北京京东尚科信息技术有限公司 一种打印方法和装置
CN109542366B (zh) * 2018-10-26 2022-03-15 金蝶云科技有限公司 基于浏览器的打印方法、装置、设备和存储介质
US11487643B1 (en) * 2018-11-12 2022-11-01 Xilinx, Inc. Debugging for integrated scripting applications
EA202192917A1 (ru) * 2019-05-10 2022-02-10 ДжейТи ИНТЕРНЕШНЛ С.А. Конфигурирование персонального вычислительного устройства для связи с устройством, генерирующим аэрозоль
CN110730208A (zh) * 2019-09-16 2020-01-24 深圳市国信合成科技有限公司 一种本地设备调用方法、装置、存储介质及设备
CN111355783A (zh) * 2020-02-19 2020-06-30 樊果(上海)教育科技有限公司 基于浏览器驱动器的在线教育***
US11327698B2 (en) 2020-06-25 2022-05-10 Zebra Technologies Corporation Method, system and apparatus for cloud-based printing
US11562052B2 (en) * 2020-08-31 2023-01-24 Procore Technologies, Inc. Computing system and method for verification of access permissions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216367A (ja) * 2002-01-21 2003-07-31 Canon Inc 情報処理装置及び情報処理方法及び印刷制御プログラム
JP2005205834A (ja) * 2004-01-26 2005-08-04 Seiko Epson Corp ホストベースプリンタ、印刷システム及びプリンタドライバ
JP2007241489A (ja) * 2006-03-07 2007-09-20 Brother Ind Ltd 印刷システム、印刷制御プログラム、印刷制御方法、および印刷装置
JP2012168684A (ja) * 2011-02-14 2012-09-06 Seiko Epson Corp ネットワークシステム、インターフェースボードおよびネットワークシステムの印刷処理方法
JP2014021948A (ja) * 2012-07-24 2014-02-03 Seiko Epson Corp デバイス制御装置、デバイス装置、制御方法および制御プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262437A1 (en) * 1999-04-24 2005-11-24 Patterson Dennis M Process for creating and printing customized document at end user computer and printer
US20030041102A1 (en) * 2001-08-27 2003-02-27 Simpson Shell S. Methods and systems for scaling inappropriately-sized documents in a distributed environment
US7307745B2 (en) * 2002-01-21 2007-12-11 Canon Kabushiki Kaisha Web-based print server and client
US6924903B2 (en) * 2002-12-20 2005-08-02 Transact Technologies Incorporated Interface for voucher and coupon printing
US7312887B2 (en) * 2003-01-03 2007-12-25 Toshiba Corporation Internet print protocol print dispatch server
US7199895B2 (en) * 2003-01-23 2007-04-03 Hewlett-Packard Development Company, L.P. Processing a printer control command
JP2007122093A (ja) * 2005-10-24 2007-05-17 Canon Inc 印刷制御装置及び印刷制御方法ならびに印刷制御方法を実行するプログラム
ES2333633B1 (es) * 2007-05-07 2011-02-10 Vodafone España, S.A. Acceso desde un terminal remoto a la informacion de un terminal movil.
US20090089811A1 (en) * 2007-09-27 2009-04-02 Andrew Rodney Ferlitsch Persistent per URL print settings
US20090307076A1 (en) * 2008-05-13 2009-12-10 Manickababu Muthugopalakrishnan System and method for distributing coupon content and transactional advertisements
JP2009303008A (ja) * 2008-06-16 2009-12-24 Konica Minolta Business Technologies Inc プリントシステム、画像形成装置、プルプリント方法およびプルプリントプログラム
US8132877B2 (en) * 2008-07-31 2012-03-13 Xerox Corporation User adaptable ink status conveyance system
NZ591880A (en) 2008-10-27 2013-12-20 Sato Kk Label printer api using program scripting language
US8717285B1 (en) 2009-10-28 2014-05-06 Amazon Technologies, Inc. Orientation lock
CN102693100B (zh) * 2011-02-10 2015-06-24 精工爱普生株式会社 网络***、接口板、网络***的打印控制方法
JP2013175175A (ja) * 2012-02-01 2013-09-05 Agreeya Mobility Inc 印刷方法及びシステム
US9052863B2 (en) 2012-08-14 2015-06-09 Seiko Epson Corporation ePOS printing
EP2972758A4 (en) * 2013-03-15 2016-11-09 Mentor Graphics Corp CLOUD SERVICES PLATFORM

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216367A (ja) * 2002-01-21 2003-07-31 Canon Inc 情報処理装置及び情報処理方法及び印刷制御プログラム
JP2005205834A (ja) * 2004-01-26 2005-08-04 Seiko Epson Corp ホストベースプリンタ、印刷システム及びプリンタドライバ
JP2007241489A (ja) * 2006-03-07 2007-09-20 Brother Ind Ltd 印刷システム、印刷制御プログラム、印刷制御方法、および印刷装置
JP2012168684A (ja) * 2011-02-14 2012-09-06 Seiko Epson Corp ネットワークシステム、インターフェースボードおよびネットワークシステムの印刷処理方法
JP2014021948A (ja) * 2012-07-24 2014-02-03 Seiko Epson Corp デバイス制御装置、デバイス装置、制御方法および制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133399A (ja) * 2018-01-31 2019-08-08 京セラドキュメントソリューションズ株式会社 画像形成システム及び画像形成方法

Also Published As

Publication number Publication date
US12021917B2 (en) 2024-06-25
GB2547380B (en) 2021-10-20
KR101959862B1 (ko) 2019-03-19
GB201707891D0 (en) 2017-06-28
DE112015005673T5 (de) 2017-09-07
DE112015005673B4 (de) 2023-09-21
WO2016099773A1 (en) 2016-06-23
CN107111465A (zh) 2017-08-29
US20160182604A1 (en) 2016-06-23
KR20170083138A (ko) 2017-07-17
GB2547380A (en) 2017-08-16
MX2017006344A (es) 2017-08-21

Similar Documents

Publication Publication Date Title
JP2018502389A (ja) ユーザ装置のブラウザとローカル装置との間の通信を可能にする方法
US10798269B2 (en) System comprising a server for providing a service to an image forming apparatus, and authentication thereof
US8189225B1 (en) Printing to a cloud printer via NFC
US10642559B2 (en) Image forming device that determines whether additional information is necessary to execute a print job received from a terminal device, and image forming system and non-transitory readable recording medium
JP6388375B2 (ja) 情報処理装置及びその制御方法
US9557948B2 (en) Information processing apparatus for activating a printer driver upon completion of user authentication
JP2016081485A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2013175175A (ja) 印刷方法及びシステム
US11947847B2 (en) Application for acquiring and displaying processing status of print data
US9274777B2 (en) Method and apparatus for universal control of networked devices
JP2014016674A (ja) 出力システム、出力制御装置及び出力制御プログラム
US20170034385A1 (en) Image forming apparatus including short-distance wireless communication unit, method of controlling the same, and storage medium
US9781088B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP2023026490A (ja) 情報処理装置、方法、及びプログラム
US10484569B2 (en) Information processing apparatus, recording medium, and control method for displaying information by a browser
JP2009054153A (ja) ドキュメント処理装置のドライバをカスタム化するシステムおよび方法
US10079873B2 (en) Information processing apparatus and method
US20230092279A1 (en) Printing system, print server, and printing control method
JP5909993B2 (ja) 印刷制御システム及びプログラム
JP2007172468A (ja) 印刷用プログラム、印刷システム、及び印刷装置
KR20140025561A (ko) 데이터 전송 장치와 화상형성장치 및 그 방법
JP2014102745A (ja) 画像形成装置および画像形成装置制御方法
CN104956315A (zh) 运行安装在外部服务器中的应用的方法和执行该方法的图像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180501

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20190227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191021