(57)【要約】【課題】  ウェブおよび他のアプリケーション用の非標準Ｉ／Ｏデバイスを使用してデータを入力および出力するための方法およびシステムを提供すること。【解決手段】  一態様では、非標準入力デバイスからの非標準入力データがクライアント側で受け取られ、かつ、非標準入力データがクライアント上で実行中の標準ブラウザに等価の標準入力データとして提供されるため、標準ブラウザは、ネットワークを介してクライアントと通信しているサーバ上で実行中のアプリケーションに、入力データをサブミットすることができる。他の態様では、サーバがユーザから要求を受け取り、要求されたデータおよび命令がクライアントに送信され、クライアント上で実行中の標準ブラウザがデータおよび命令を受け取って、このデータを、クライアントと通信している非標準出力デバイスによって出力されるように送信することができる。【選択図】      図１
2005025738.tif 000002
【特許請求の範囲】
【請求項１】
非標準入力デバイスから標準ブラウザへ入力データを提供するための方法であって、
クライアント側で前記非標準入力デバイスから非標準入力データを受け取るステップと、
前記非標準入力データを前記クライアント上で実行中の前記標準ブラウザに等価の標準入力データとして提供するステップであって、前記標準ブラウザが、ネットワークを介して前記クライアントと通信しているサーバ上で実行中のアプリケーションに、前記入力データをサブミットすることができるものである方法。
【請求項２】
前記サーバ上でページ・データを生成するステップをさらに有する方法であって、前記ページ・データが、前記標準入力データを受け取る前記標準ブラウザ内にウェブ・ページを表示するために前記クライアントに送られるものである、請求項１に記載の方法。
【請求項３】
前記ページ・データが、前記ウェブ・ページのフィールド内に前記標準入力データを提供するための前記標準ブラウザ内で実行中のプログラムに関する命令を含む、請求項２に記載の方法。
【請求項４】
前記非標準入力データが、前記非標準入力デバイスと通信することが可能な前記クライアント上で実行中のスタンドアロン型アプリケーションによって受け取られる、請求項１に記載の方法。
【請求項５】
前記ブラウザが、前記スタンドアロン型アプリケーションから前記非標準入力データを受け取り、かつ前記標準ブラウザによって表示されるウェブ・ページの少なくとも１つのフィールド内に前記非標準入力データを標準入力データとして配置する、プログラムを実行中である、請求項４に記載の方法。
【請求項６】
前記ブラウザ内で実行中の前記プログラムがＪａｖａアプレットである、請求項５に記載の方法。
【請求項７】
前記標準ブラウザによって表示される前記ウェブ・ページが、前記プログラムによって前記入力データが配置される少なくとも１つのフィールドを有するフォームである、請求項５に記載の方法。
【請求項８】
前記スタンドアロン型アプリケーションがＪａｖａアプリケーションであり、また、前記非標準入力デバイスを読み取るために使用されるデバイス・ドライバがＪａｖａＰＯＳを含む、請求項４に記載の方法。
【請求項９】
前記ブラウザ内で実行中のプログラムが、前記サーバから前記ブラウザにダウンロードされたデータによって構成される、請求項５に記載の方法。
【請求項１０】
前記ブラウザが、前記サーバからダウンロードされた前記データによって定義されるウェブ・フォームを表示し、前記ウェブ・フォームが前記サーバ上でカスタムＪＳＰタグによって生成されるものである、請求項９に記載の方法。
【請求項１１】
前記非標準入力デバイスがスキャナである、請求項１に記載の方法。
【請求項１２】
前記非標準入力デバイスが磁気ストライプ・リーダ（ＭＳＲ）である、請求項１に記載の方法。
【請求項１３】
非標準入力デバイスから標準ブラウザへ入力データを提供するためのシステムであって、
前記非標準入力デバイスから非標準入力データを受け取り、かつ前記非標準入力データを前記クライアント上で実行中の前記標準ブラウザに等価の標準入力データとして提供するように動作可能なクライアントと、
アプリケーションを実行中であり、ネットワークを介して前記クライアントと通信しているサーバとを有し、前記アプリケーションが、前記クライアント上で実行中の前記標準ブラウザからサブミットされた前記入力データを受け取るように動作可能であるものとする、システム。
【請求項１４】
スタンドアロン型アプリケーションが前記クライアント上で実行されるものであり、前記スタンドアロン型アプリケーションが、前記非標準入力デバイスと通信し、かつ前記非標準入力データを受け取るように動作可能であるものとする、請求項１３に記載のシステム。
【請求項１５】
前記ブラウザが、前記スタンドアロン型アプリケーションから前記非標準入力データを受け取り、かつ前記標準ブラウザによって表示されるウェブ・ページの少なくとも１つのフィールド内に前記非標準入力データを標準入力データとして配置する、プログラムを実行中である、請求項１４に記載のシステム。
【請求項１６】
前記ブラウザ内で実行中の前記プログラムがＪａｖａアプレットである、請求項１５に記載のシステム。
【請求項１７】
前記標準ブラウザによって表示される前記ウェブ・ページが、前記プログラムによって前記入力データが配置される少なくとも１つのフィールドを有するフォームである、請求項１５に記載のシステム。
【請求項１８】
前記スタンドアロン型アプリケーションがＪａｖａアプリケーションであり、また、前記非標準入力デバイスを読み取るために使用されるデバイス・ドライバがＪａｖａＰＯＳを含む、請求項１４に記載のシステム。
【請求項１９】
前記ブラウザ内で実行中のプログラムが、前記サーバから前記ブラウザにダウンロードされたページ・データによって構成され、前記ページ・データが前記サーバ上でＪＳＰタグによって生成されるものである、請求項１５に記載のシステム。
【請求項２０】
前記ブラウザが、前記サーバからダウンロードされた前記データによって定義されるウェブ・フォームを表示し、前記ウェブ・フォームが前記サーバ上でカスタムＪＳＰタグによって生成されるものである、請求項１９に記載のシステム。
【請求項２１】
前記非標準入力デバイスがスキャナである、請求項１３に記載のシステム。
【請求項２２】
前記非標準入力デバイスが磁気ストライプ・リーダ（ＭＳＲ）である、請求項１３に記載のシステム。
【請求項２３】
非標準入力デバイスからの入力データを標準ブラウザに提供するためにコンピュータによって実施されることになるプログラム命令を含むコンピュータ読み取り可能媒体であって、前記プログラム命令が、
前記クライアント側で非標準入力デバイスから非標準入力データを受け取るステップと、
前記非標準入力データを前記クライアント上で実行中の前記標準ブラウザに等価の標準入力データとして提供するステップとを有するものであって、前記標準ブラウザが、ネットワークを介して前記クライアントと通信しているサーバ上で実行中のアプリケーションに、前記入力データをサブミットすることができるものである、コンピュータ読み取り可能媒体。
【請求項２４】
前記非標準入力データが、前記非標準入力デバイスと通信することが可能な前記クライアント上で実行中のスタンドアロン型アプリケーションによって受け取られる、請求項２３に記載のコンピュータ読み取り可能媒体。
【請求項２５】
前記ブラウザが、前記スタンドアロン型アプリケーションから前記非標準入力データを受け取り、かつ前記標準ブラウザによって表示されるウェブ・ページの少なくとも１つのフィールド内に前記非標準入力データを標準入力データとして配置する、プログラムを実行中である、請求項２４に記載のコンピュータ読み取り可能媒体。
【請求項２６】
前記ブラウザ内で実行中の前記プログラムがＪａｖａアプレットである、請求項２５に記載のコンピュータ読み取り可能媒体。
【請求項２７】
前記標準ブラウザによって表示される前記ウェブ・ページが、前記プログラムによって前記入力データが配置される少なくとも１つのフィールドを有するフォームである、請求項２５に記載のコンピュータ読み取り可能媒体。
【請求項２８】
前記スタンドアロン型アプリケーションがＪａｖａアプリケーションであり、また、前記非標準入力デバイスを読み取るために使用されるデバイス・ドライバがＪａｖａＰＯＳを含む、請求項２４に記載のコンピュータ読み取り可能媒体。
【請求項２９】
前記ブラウザ内で実行中のプログラムが、前記サーバから前記ブラウザにダウンロードされたページ・データによって構成され、前記ページ・データが前記サーバ上でＪＳＰタグによって生成されるものである、請求項２５に記載のコンピュータ読み取り可能媒体。
【請求項３０】
前記ブラウザが、前記サーバからダウンロードされた前記データによって定義されるウェブ・フォームを表示し、前記ウェブ・フォームが前記サーバ上でカスタムＪＳＰタグによって生成されるものである、請求項２９に記載のコンピュータ読み取り可能媒体。
【請求項３１】
前記非標準入力デバイスがスキャナである、請求項２３に記載のコンピュータ読み取り可能媒体。
【請求項３２】
前記非標準入力デバイスが磁気ストライプ・リーダ（ＭＳＲ）である、請求項２３に記載のコンピュータ読み取り可能媒体。
【請求項３３】
出力データを非標準出力デバイスに提供するための方法であって、
ユーザからの要求をサーバ側で受け取るステップであって、前記要求が、前記サーバと通信しているクライアントへ前記サーバからデータを送信するように要求するものであるステップと、
前記要求されたデータおよび命令を前記クライアントに送信するステップであって、前記命令が、前記データがどのように非標準出力デバイスに出力されるかを管理するものであって、前記クライアント上で実行中の標準ブラウザが前記データおよび命令を受け取り、また前記データが前記命令に従って、出力されるものとして前記非標準出力デバイスに送信されることが可能であって、前記非標準出力デバイスが前記クライアントと通信しているものである、方法。
【請求項３４】
前記データが、前記クライアント上で実行中であり、かつ前記非標準出力デバイスと通信しているスタンドアロン型アプリケーションによって、前記標準ブラウザから受け取られるものであって、また、前記データを前記スタンドアロン型アプリケーションから前記非標準出力デバイスへ送信するステップをさらに有する、請求項３３に記載の方法。
【請求項３５】
前記ブラウザが、前記データを前記スタンドアロン型アプリケーションに提供するプログラムを実行中である、請求項３４に記載の方法。
【請求項３６】
前記ブラウザ内で実行中の前記プログラムがＪａｖａアプレットである、請求項３５に記載の方法。
【請求項３７】
前記スタンドアロン型アプリケーションがＪａｖａアプリケーションであり、また、文書を出力するために使用されるデバイス・ドライバがＪａｖａＰＯＳを含む、請求項３５に記載の方法。
【請求項３８】
前記非標準入力デバイスがレシート・テープ・プリンタである、請求項３３に記載の方法。
【請求項３９】
前記クライアントに命令が与えられると、前記標準ブラウザにグラフィック・コントロールを表示させるものであり、前記グラフィカル・コントロールが前記ユーザによって選択されると、前記データのうちの少なくとも一部が前記ブラウザの出力機能とは無関係な出力のために前記非標準出力デバイスに送信される、請求項３３に記載の方法。
【請求項４０】
前記クライアントに命令が与えられると、前記クライアントのユーザからのどのような入力もなしに、前記非標準出力デバイスで前記クライアントに前記文書を出力させるものである、請求項３３に記載の方法。
【請求項４１】
前記クライアントに命令が与えられると、前記クライアントに、前記標準ブラウザ内で前記文書を表示させ、かつ前記非標準出力デバイスで前記文書を出力させるものである、請求項３３に記載の方法。
【請求項４２】
前記データを前記非標準出力デバイスに送信する前に、前記データを所定のフォーマットにフォーマット化するステップをさらに含む、請求項３３に記載の方法。
【請求項４３】
出力データを非標準出力デバイスに提供するための方法であって、
クライアント上で実行中の標準ブラウザでデータおよび命令を受け取るステップであって、前記データが前記クライアントと通信しているサーバから要求されたものであるステップと、
前記要求されたデータを、前記標準ブラウザから前記クライアントと通信している非標準出力デバイスへ提供するステップであって、前記受け取った命令が、前記データがどのように前記非標準出力デバイスに出力されるかを管理するものであるステップとを有する方法。
【請求項４４】
前記データが、前記標準ブラウザから、前記クライアント上で実行中であり、かつ前記非標準出力デバイスと通信しているスタンドアロン型アプリケーションに提供されるものであって、また、前記データを前記スタンドアロン型アプリケーションから前記非標準出力デバイスへ送信するステップをさらに有する、請求項４３に記載の方法。
【請求項４５】
前記ブラウザが、前記データを前記スタンドアロン型アプリケーションに提供するプログラムを実行中である、請求項４４に記載の方法。
【請求項４６】
前記ブラウザ内で実行中の前記プログラムがＪａｖａアプレットである、請求項４５に記載の方法。
【請求項４７】
前記スタンドアロン型アプリケーションがＪａｖａアプリケーションであり、また、文書を出力するために使用されるデバイス・ドライバがＪａｖａＰＯＳを含む、請求項４５に記載の方法。
【請求項４８】
前記クライアントが命令を受け取ると、前記標準ブラウザにグラフィック・コントロールを表示させるものであり、前記グラフィカル・コントロールが前記ユーザによって選択されると、前記データのうちの少なくとも一部が前記ブラウザの出力機能とは無関係な出力のために前記非標準出力デバイスに送信される、請求項４３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・システムへのデータの入力および出力に関し、より具体的には、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂのアプリケーションおよびページ用の非標準Ｉ／Ｏデバイスを使用したデータの入力および出力に関する。
【背景技術】
【０００２】
Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂアプリケーションは、一般に、インターネットなどのネットワークを介したデータ通信を含む様々なタスクで使用される。多くのアプリケーションでは、サーバまたは他のコンピュータ上で実行中のウェブ・アプリケーションが、フォームまたは他のタイプのウェブ・ページを提示することによって、クライアント・デバイスからデータを取り出す。データには、ＭｉｃｒｏｓｏｆｔのＩｎｔｅｒｎｅｔ  ＥｘｐｌｏｒｅｒまたはＮｅｔｓｃａｐｅ  ＣｏｍｍｕｎｉｃａｔｉｏｎｓのＮｅｔｓｃａｐｅなどの標準のウェブ・ブラウザ・プログラムを使用して、クライアント・コンピュータのディスプレイ上に表示されるフォームに入力できる情報が含まれる。ウェブ・フォームには、ユーザに特定の情報を求めるいくつかのフィールドまたはブランクが含まれる場合が多い。ユーザがそれぞれのフィールドが要求する情報を決定すること、および入力デバイスを使用してその情報を入力することは容易である。
【０００３】
通常、ユーザは、キーボード、マウス、トラックボールなどの標準的な入力デバイスを使用して、これらのウェブ・フォームにデータを入力することができる。たとえばユーザは、マウスまたはトラックボールを動かしてフォーム内の空白フィールド上にカーソルを置き、キーボード入力デバイスを使用してそのフィールドに情報を入力することができる。同様に、ＴＡＢなどのキーボード・キーを使用して、フォーム上のフィールド間でカーソルを移動させることができる。
【０００４】
一部のユーザは、「非標準」入力デバイスを使用してコンピュータ・システムにデータを入力することができる。たとえば、商品の在庫を販売または追跡する業務または他の企業で、コンピュータを使用することができる。販売された商品または保存された在庫品に関する情報をコンピュータに入力して、データベースを維持することができる。このような種類のアプリケーションでは、販売時点情報管理（ＰＯＳ／Ｐｏｉｎｔ−ｏｆ−Ｓａｌｅ）Ｉ／Ｏアタッチメントを使用して、商品または在庫に関するデータを簡単に入力することができる。たとえば小売店では、店員が光学式スキャナを使用して製品上のバー・コードまたは他のコード化された記号をスキャンし、このスキャナがコード化された情報を読み取ってその情報をコンピュータに送信し、これを格納および処理することができる。他の環境では、磁気ストライプ・リーダ（ＭＳＲ）を使用して、カード（クレジット・カードなど）または他の製品上に施された磁気ストライプからデータを磁気的に読み取ることができる。
【０００５】
これらのタイプの非標準入力デバイスでは、データを即時かつ容易にコンピュータ・システムに入力することが可能であり、また商品の仕入れおよび販売を迅速に行うことができる。しかし、ユーザにとっては、スキャナまたはＭＳＲ入力デバイスから読み出されたデータを、コンピュータ上で動作しているブラウザ・プログラム内に提供されたウェブ・フォームへ単純かつ容易に入力する方法はない。ユーザはウェブ・フォームのフィールドに手作業で情報を入力しなければならないため、単純な入力作業に多大な遅延や経費を費やすことになる。しかし、ウェブ・サーバおよびフォームは、たとえばローカル・エリア・ネットワークやインターネット上の多くの業務で一般的に使用されている。
【０００６】
そこで試みられた解決策の１つとして、Ｓｙｍｂｏｌ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．は、カスタム入力タグなどの、別の標準ＨＴＭＬタグ上で追加の属性をサポートするカスタム・ウェブ・ブラウザを作成した。これを使用すると、ウェブ・ページ中の属性がスキャナに対して、たとえばカスタム・ブラウザへデータを入力させることができるようになる。しかし、このアプリケーションのためにブラウザ自体を変更しなければならないため、限られた数のプラットフォームのみがブラウザを実行してこの機能を保存することが可能であり、既存の標準をすべてサポートすることはできない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、コンピュータと非標準の入力および出力デバイスと間でデータを入力および出力するための、より堅固かつフレキシブルな、プラットフォームに依存しない方法が求められている。
【課題を解決するための手段】
【０００８】
本発明のアプリケーションは、ウェブおよび同様のアプリケーション用の非標準Ｉ／Ｏデバイスを使用してデータを入力および出力するための装置および方法を提供するものである。本発明の第１の態様では、非標準入力デバイスから標準ブラウザへ入力データを提供するための方法に、非標準入力デバイスからの非標準入力データをクライアント側で受け取ること、およびその非標準入力データをクライアント上で実行中の標準ブラウザに等価の標準入力データとして提供することが含まれるため、標準ブラウザは、ネットワークを介してクライアントと通信しているサーバ上で実行中のアプリケーションにその入力データをサブミット（ｓｕｂｍｉｔ）することができる。第２の態様では、非標準入力デバイスからの入力データを標準ブラウザに提供するためのシステムに、非標準入力デバイスから非標準入力データを受け取り、その非標準入力データをクライアント上で実行中の標準ブラウザに等価の標準入力データとして提供するように動作可能なクライアントと、アプリケーションを実行中であり、ネットワークを介してクライアントと通信しているサーバとが含まれ、当該アプリケーションは、クライアント上で実行中の標準ブラウザからサブミットされた入力データを受け取るように動作可能である。第３の態様では、コンピュータ読み取り可能媒体に、非標準入力デバイスからの入力データを標準ブラウザに提供するためにコンピュータによって実施されることになるプログラム命令が含まれ、当該プログラム命令は、非標準入力デバイスからの非標準入力データをクライアント側で受け取るステップと、その非標準入力データをクライアント上で実行中の標準ブラウザに等価の標準入力データとして提供するステップとを含むステップを実行するものであるため、標準ブラウザは、ネットワークを介してクライアントと通信しているサーバ上で実行中のアプリケーションにその入力データをサブミットすることができる。第４の態様では、出力データを非標準出力デバイスに提供するための方法に、サーバと通信しているクライアントへサーバからデータを送信するように要求する、ユーザからの要求をサーバ側で受け取ること、ならびに当該データおよび命令をクライアントに送信することが含まれ、当該命令は、データがどのように非標準出力デバイスに出力されるかを管理するものである。クライアント上で実行中の標準ブラウザがデータおよび命令を受け取り、データは前記命令に従って、前記クライアントと通信している非標準出力デバイスによって出力されるものとして送信されることが可能である。
【０００９】
本発明は、ウェブおよび他のアプリケーション用の非標準Ｉ／Ｏデバイスを使用して、データを入力および出力するための方法および装置を提供するものである。クライアントのブラウザをどのような方法で修正する必要もないため、非標準デバイスからの入力および非標準デバイスへの出力を容易かつフレキシブルに達成することができる。さらに本発明は、クライアントとサーバとの間で効率的な通信を可能にするものであるため、性能をほとんどまたはまったく低下させることなしに、サーバが非標準入力を受け取り、非標準出力を命じることできる。
【発明を実施するための最良の形態】
【００１０】
本発明は、コンピュータ・システムへのデータの入力および出力に関し、より具体的には、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂのアプリケーションおよびページ用の非標準Ｉ／Ｏデバイスを使用したデータの入力および出力に関する。以下の説明は、通常の当業者の一人が本発明を作成および使用できるようにするために提示するものであり、特許明細書およびその要件との関連においてなされるものである。本明細書に記載された好ましい実施形態および包括的な原理および特徴に対する様々な修正は、当業者には容易に明らかとなろう。したがって本発明は、示された実施形態に限定されることを意図するものではなく、本明細書に記載された原理および特徴に適合する最も広い範囲が与えられるものである。
【００１１】
図１は、本発明と共に使用するのに好適なシステム１０を示すブロック図である。システム１０は、サーバ１２、クライアント１４、および非標準入力デバイス１６を含む。サーバ１０は、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ／インターネットまたはローカル・エリア・ネットワーク（ＬＡＮ）などのネットワークを介してデータを他のコンピュータに提供し、他の機能を実行することのできる、ウェブ・アプリケーションを実行するウェブ・サーバとすることができる。サーバ１２は、サーバ・プログラムを実行し、標準ネットワーク・プロトコルに従った標準フォーマットでデータを送信および受信する。たとえば、好ましい実施の１つは、サーバ１２がＪａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ（商標）のエンジンおよび実施を含むものである。当業者であれば周知のように、Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）技術は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．のＪａｖａ（商標）サーブレット技術の拡張であり、Ｊａｖａサーブレットは、ウェブ・サーバ上で動作し、実行中にウェブ・ページを構築する、プラットフォームに依存しないサーバ側のプログラムおよびモジュールである。Ｊａｖａ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）の機能は、ウェブ・プログラマが正規の静的ＨＴＭＬコードと動的に生成されたＨＴＭＬコードとを混合できるものであり、サーブレットのみを使用してウェブ・ページを作成するのではない、ウェブ・ページを作成する簡略化された方法である。ＪＳＰページは、ＸＭＬタグおよびＪａｖａプログラミング言語で作成されたスクリプトレットを使用する。ＪＳＰページは、特定のプラットフォームまたはウェブ・サーバに限定されるものではない。
【００１２】
ＪＳＰタグは、ウェブ・ページに関するコンテンツを生成することのできる論理を封入するか、そうでない場合はタグを含むウェブ・ページの外観または挙動を修正する、ＸＭＬに似たタグである。さらに、アプリケーション論理は、ページがＪＳＰタグを使用してアクセスするサーバ・ベースのリソース内に常駐することができる。ＪＳＰ仕様には、多くの異なる機能およびアプリケーションに関する多くの標準ライブラリ・タグが含まれる。本発明で使用されるカスタム・タグは、カスタム動的機能を提供するためのＪＳＰ言語の拡張として使用される。
【００１３】
図１に記載された実施形態では、好ましいことに、サーバ１２がいくつかのカスタムＪＳＰタグを実行して本発明の機能の一部を提供する（以下で記載するように、アプレットおよびスタンドアロン型アプリケーションが追加の機能を提供する）。具体的には、ＪＳＰカスタム・タグをサーバ１２に提供して、クライアントにダウンロードされる命令を生成することができる。これについては、以下でより詳細に説明する。
【００１４】
本発明の代替実施形態では、ＪＳＰタグを使用する必要がない。たとえば、ＪａｖａＳｃｒｉｐｔ（商標）ステートメントまたは異なる言語のステートメントを直接使用して、記載された実施形態でのＪＳＰタグと同じ機能を実施することができる（実際には、ＪＳＰタグがＪａｖａＳｃｒｉｐｔステートメントを生成する）。
【００１５】
クライアント１４は、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂなどのネットワークを介してサーバ１２と通信することのできるコンピュータまたは電子デバイスである。クライアント１４は、標準ネットワーク・ケーブルまたはワイヤを介するか、あるいは無線技術によって、サーバ１２と通信することができる。クライアント１４は、ウェブ・ページをダウンロードおよび表示するために主に使用されるウェブ・クライアントであるか、または他の様々なタスクを実行することができる、より汎用のコンピュータとすることができる。たとえば、クライアント１４を倉庫または店内に設置して使用し、在庫表の入力およびサーバ１２に送られて記憶される情報のカタログ化専用に使用することが可能である。クライアント１４上で実行されるプログラムおよびプロセスについては、以下でより詳細に説明する。クライアント１４の一般的な実施の中には、パーム・パイロット、携帯情報端末（ＰＤＡ）、およびラップトップ・コンピュータなどのポータブル・コンピュータ、あるいはデスクトップのコンピュータ、端末、またはワークステーションが含まれる。クライアント１４は、ウェブ・ページおよび他の情報をユーザに表示する、ディスプレイ・デバイス（モニタ、ＬＣＤフラット・スクリーンなど）を含む。
【００１６】
非標準入力デバイス１６はクライアント１４と通信しており、接続ワイヤを含む接続を介して、あるいは無線（光、無線通信など）で、データをデバイス１６からクライアント１４へと送ることができる。一部の実施形態では、デバイスを構築するためなどに、データをクライアント１４からデバイス１６へと送ることもできる。入力デバイス１６は、キーボード、マウス、トラックボール、タッチ・スクリーン、あるいは、ウェブ・ブラウザまたはクライアント１４上の同様のプログラムにデータを入力するために一般的に使用される他の入力デバイスではないため、「非標準」である（こうした標準入力デバイスは、本発明のクライアント１４と通信することもできるが、図１には示されていない）。本発明のこの実施形態に特に関連する２つの非標準入力デバイス１６が、スキャナと磁気ストライプ・リーダ（ＭＳＲ）である。バー・コード・スキャナなどのスキャナは、バー・コード、パターンなどといった、物理オブジェクト上に表示されたコード化された情報または他の形式の情報を読み取ることができる。通常、スキャナは光学式メカニズムを使用して、製品上に表示された情報全体にわたってスキャナの読取り部分を動かすことによって情報を読み取る。多くのスキャナはハンドヘルド・デバイスであり、製品からのデータの入力が簡単である。多くの他のタイプのスキャナも使用することができる。ＭＳＲデバイスは、クレジット・カード、ＡＴＭカードなどといった、カードまたは他のオブジェクト上に施された磁気ストライプから情報を読み取る際に使用される。ユーザは、磁気ストライプを有するカード端をリーダ・デバイスの中を通してスライドさせるだけで、情報を読み取ることができる。多くのＭＳＲデバイスは、磁気ストライプ中に提供された複数の独立したデータ・トラックから読み取ることができる。他の実施形態では、「ピンパッド」（キーパッド）、スマートカード・リーダなどといった他のタイプの非標準入力デバイス１６を使用することができる。
【００１７】
非標準入力デバイス１６は、デバイス１６によって読み取られたデータをクライアント１４に提供する。記載された実施形態では、クライアント１４（たとえばスタンドアロン型アプリケーション２０）が、非標準入力デバイス１６と通信可能なデバイス・ドライバ・ソフトウェアを実行する。たとえば、デバイス・ドライバはＪａｖａＰＯＳ（商標）で実施することが可能であり、これは、たとえばスキャナ、ＰＯＳ端末、ＭＳＲデバイスなどといった、小売店および他のビジネスで一般に提供されているデバイスが使用し、これらのデバイスが標準的な方法で他のコンピュータ・アプリケーションと通信できるようにするために販売時点情報管理（ＰＯＳ）環境およびアプリケーション用に開発された、幅広く使用されているプラットフォームに依存しない標準である。他の実施形態では、他のタイプの適切なデバイス・ドライバを使用することができる。
【００１８】
アプリケーション・プログラム２０は、好ましいことに、デバイス・ドライバ１８によって読み取られたデータを受け取るクライアント１４上で実行中である。このアプリケーション・プログラム２０は、非標準入力デバイスからのデータをクライアント１４上で実行中のブラウザ２２にソケットを介して提供する、スタンドアロン型アプリケーションとすることができる。記載された実施形態では、アプリケーション・プログラムはＪａｖａＰＯＳを使用して非標準入力デバイス１６からデータを読み取ることができるため、プラットフォームに依存しないＪａｖａアプリケーションであるが、他の実施形態では、アプリケーションは適切なデバイス・ドライバを有し、任意の望ましいプログラミング言語で提供することが可能であり、ブラウザ内のアプレットに対してソケットをオープンさせることができる（以下で説明）。
【００１９】
ウェブ・ブラウザ２２はクライアント１４上で実行可能であり、クライアント１４のユーザに対して、情報を表示するため、および／またはクライアント１４、サーバ１２、および任意の他の接続されたコンピュータと対話するための、インターフェースを提供する。ブラウザ２２は、ネットワークを介して情報を受け取ることが可能であり、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂを介して伝送されるウェブ・ページ中に情報を表示するために使用されるＨＴＭＬおよび／またはＸＭＬなどの標準の言語またはプロトコルに従って、その情報を所定のフォーマットでレンダリングおよび表示することが可能であって、さらに、ネットワークを介してデータおよびウェブ・ページを他のコンピュータに送ることができる。ブラウザ２２は「標準」ブラウザであり、すなわちブラウザは容易に使用可能であって現在ウェブ・ブラウジング用に使用されており、ｈｔｔｐ接続を介して通信するが、通常は非標準入力デバイス１６からのデータを受け取るためのどのようなインターフェースも含んでいない。典型的な標準ブラウザには、Ｎｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｒｐ．のＮｅｔｓｃａｐｅおよびＭｉｃｒｏｓｏｆｔ  ＣｏｒｐのＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒが含まれる。
【００２０】
好ましい実施形態では、ブラウザ２２が、サーバ１２からダウンロードされた「ページ・データ」から導出されたウェブ・フォーム２４のウェブ・ページを表示する。フォーム２４は、様々なフォーマットおよび外観のうちのいずれを取ることもできる。たとえば、１つのフォーマットでは、データを入力することのできるいくつかのフィールド２６をフォーム２４内に提供する。典型的なフォームの場合、ユーザはキーボードまたはマウスなどの標準入力デバイスを使用して、それぞれのフィールドにデータを入力しなければならない。本発明は、ユーザが、非標準入力デバイス１６からフォーム２４の適切なフィールドに情報を入力できるようにするものである。
【００２１】
記載された実施形態では、ブラウザ２２は１つまたは複数のアプレット２８を実行中である。サーブレットと同様に、Ｊａｖａアプレットは、クライアントによってダウンロードが可能なクライアント（サーバではない）上で実行中のプラットフォームに依存しないプログラムである。アプレット２８は、スタンドアロン型アプリケーション２０からソケットを介してデータを受け取るように、およびブラウザによって表示されたフォーム２４の適切なフィールド２６にそのデータを入力するように構成される。アプレットは、フォームのフィールドに記入する際に、標準のインターフェースまたはプロトコルを使用することができる。たとえば、記載された実施の１つではＬｉｖｅＣｏｎｎｅｃｔ（商標）を使用することが可能であり、これはＮｅｔｓｃａｐｅブラウザのためにＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，Ｉｎｃ．によって定義されたＪａｖａＳｃｒｉｐｔアプレット・インターフェースである。別の方法として、他の標準インターフェースを使用することもできる。記載された実施形態では、アプレットは、どのフォームおよびフィールドを特定のデータの宛先とすべきであるかをＪａｖａＳｃｒｉｐｔが指定できるようにする１組のパブリック・セッター・メソッド（ｐｕｂｌｉｃ  ｓｅｔｔｅｒ  ｍｅｔｈｏｄ）を使用して、命令を通じて構成することができる。アプレット２８は、完成したフォーム２４をオプションで「サブミット」（通知（ｐｏｓｔ））すること、すなわちサーバ１２上で実行中のウェブ・プログラムにフォーム・データを送信することもできる。一実施では、クライアント１４にデータを入力する非標準入力デバイス１６のそれぞれのタイプについて、異なるアプレットを実行することができる。他の実施では、単一のアプレット２８が、複数タイプの非標準入力デバイス１６からのデータを処理することができる。
【００２２】
好ましいことに、サーバ１２上で実行中のウェブ・プログラムは、構成情報、すなわちスクリプトなどの命令を提供して、ブラウザ内で実行中のアプレット２８を構成することができる。たとえば、サーバ上の１つまたは複数のカスタムＪＳＰタグおよび／またはパブリックＪＳＰメソッドをＪＳＰエンジンが処理することにより、サーバ１２によってブラウザ２２に下方送信される命令を生成することができる。命令が実行されると、特定の非標準入力デバイスからデータを受け取るはずである特定のフォームおよびそのフォーム内のフィールドが識別され、サーバ１２によって送信されたデータからブラウザ２２がウェブ・ページをレンダリングした後に、アプレット２８がこの構成情報を使用することができる。さらにこの構成情報は、ウェブ・フォームをレンダリングおよび表示させるためにブラウザにダウンロードされる、ＨＴＭＬおよび他の標準ウェブ・ページ・データでもある。たとえば構成命令は、ＪａｖａＳｃｒｉｐｔ機能を使用して、上記で述べた機能をアプレットに実行させることができる。別の方法では、他の言語またはフォーマットの命令を使用することもできる。
【００２３】
本発明は、ユーザがプラットフォームに依存しないインターフェースおよび標準のウェブ技術（たとえばＨＴＭＬ、Ｊａｖａプラグイン、ＪａｖａＰＯＳ、ＪａｖａＳｅｒｖｅｒＰａｇｅｓ、または同等の技術）を使用して、非標準入力デバイスから標準ブラウザへ、およびブラウザからサーバ上のウェブ・アプリケーションへ、データを入力できるようにするものである。ブラウザは、どのような特殊な機能も実行する必要がなく、さらに受信中のデータが非標準入力デバイスから受け取られたことを知る必要さえもないものであって、（記載された実施形態では）アプレットおよびスタンドアロン型アプリケーションは非標準入力データを取得して、これを標準データとしてブラウザに提供する。これにより、既存の技術を使用しているユーザに対して最大のフレキシビリティが与えられる。さらに、サーバ上のウェブ・アプリケーションのプログラマは、本発明のカスタムＪＳＰタグ（以下で説明）をウェブ・アプリケーション内に容易に配置することが可能であり、これによってフォームが生成され、非標準デバイスからの入力データがフォームに記入されることになる。
【００２４】
本発明のこの実施形態は、ソケットを介して非標準入力デバイス１６からの入力データをサーバ１２に直接提供するという実施を通じて、かなりの利点をもたらすものでもある。記載された実施形態では、フォームと共にブラウザ／アプレットの標準の「ｈｔｔｐ」接続を介してデータが入ってくるため、受信中のデータのソースが非標準入力デバイス１６であることをサーバ１２上のウェブ・アプリケーションに意識させることがない。異なる非標準ソケットを介して入力データが入力デバイスからサーバ１３に直接提供された場合、ウェブ・プログラムは、フォームが受信されるときに通過するブラウザの標準ｈｔｔｐソケットに合わせて非標準入力データ・ソケットを調整しなければならず、その結果、ウェブ・プログラムはデータをキャッシュしなければならなくなり、効率が大幅に低下する。また、ネットワーク内の多くのファイアウォールは、非標準ポートを介したネットワーク・トラフィックができなくなる。
【００２５】
本発明で使用するのに好適なカスタムＪＳＰタグおよび他のリソースの例を以下に列挙する。他の標準およびコンピュータ言語を使用しても、これらのタグおよびリソースと同様の機能を得ることができる。以下に示されたカスタムＪＳＰタグは、ＪＳＰで使用される標準の"form"タグを置き換えるものである。カスタム・タグは<form>タグ用のラッパー（ｗｒａｐｐｅｒ）であるため、カスタム属性に加えて、"action"および"method"などの典型的なフォーム属性を取ることもできる。さらにこれは、このカスタム・タグの開始タグと終了タグの間に、標準のフォーム・タグの開始タグと終了タグの間に入れることのできるどのようなステートメントも入れられることを示唆するものでもある。
【００２６】
スキャナからブラウザ２２へのデータの入力のために本発明で使用することのできる<scanner>タグ用の構文の一例が、ＪＳＰタグ形式で以下に示されている。
【数１】
2005025738.tif 000003
上式で、
"form"は、生成されたフォームを識別するものであり、すなわちこの値はフォームの"name"属性および"ID"属性として使用され、
"frame"は、ウェブ・フォームを含むフレームの識別であり、
"field"は、データを受け取ることになる入力フィールドのＩＤである。このフィールドはここでは参照されているが生成されないため、<scanner>タグの本体で定義および特徴付けされる必要があることに留意されたい。
"autoPost"（オプション、デフォルト値＝"true"）は、データが受け取られ、"field"属性で指定されたフィールドに入れられるとすぐに、フォームを通知（すなわちサーバ１２にサブミット）すべきかどうかを示し、
"action"は、生成されたフォームの"action"属性の値となる。"action"属性は、たとえばフィールドに入力されたデータを処理するサーバ１２上のサーブレット名を指定することが可能であり、さらに、
"method"は、生成されたフォームの"method"属性の値となる。"method"属性は、たとえばフォームまたはフィールドを"post"（通知）するか、あるいはフォームまたはフィールドを"get"（取得）するかを指定することができる。
【００２７】
フォームの本体は、フォーム内の入力フィールドの特徴、ならびに、ボタン、グラフィック、または他のインターフェース・フィーチャなどの、ページ上の任意の他のフィーチャを指定するものである。
【００２８】
前述のように<scanner>タグを使用することに加えて、アプレットのいくつかのパブリック・メソッドを追加機能のために呼び出すことができる。これらのメソッドはかなり多くのフレキシビリティを加えるものであり、スキャナ・データを受け取ることのできるフォームについて複数のフィールドがある場合に使用可能である。メソッドの例は以下に示されている。これらのパブリック・メソッドは、本発明のＪＳＰタグが、ブラウザ２２によってレンダリングされたスキャナからの入力データを適切なフォームおよびフォームのフィールドに適用するようにアプレット２８を構成できるようにするものである。これらのパブリック・メソッドは、カスタムＪＳＰタグが使用されない実施形態でも使用可能である。
【００２９】
SetFrame(String)は、スキャナ・データを受け取ることになるフォームおよび入力フィールドを含むフレームを識別する。
【００３０】
SetForm(String)は、スキャナ・データを受け取ることになる入力フィールドを含むフォームを識別する。
【００３１】
SetField(String)は、スキャナ・データを受け取ることになる入力フィールドを識別する。フォーム内の複数フィールドのうちのそれぞれのフィールドが、それ自体の異なる識別子を有することができる。
【００３２】
SetAutoPost(boolean)は、スキャナ・データが受け取られるとすぐにフォームをサブミットすべきであるかどうかを指定する。
【００３３】
SetEnabled(boolean)は、スキャナを使用可能または使用不可とすべきであるかどうかを指定する。
【００３４】
<msr>カスタムＪＳＰタグを使用して、ＭＳＲデータの受信側となることになるフォーム内で、たとえば各フィールドが様々なＭＳＲトラックのうちの１つに対応する、様々なフィールドを識別することができる。カスタム・タグは<form>タグ用のラッパーであるため、カスタム属性に加えて、"action"および"method"などの典型的なフォーム属性を取ることもできる。さらにこれは、<msr>の開始タグと終了タグの間に、等価のフォーム・タグの間に入れることのできるどのようなステートメントも入れられることを示唆するものでもある。
【００３５】
磁気ストライプ・リーダからブラウザ２２へのデータの入力のために使用される、<msr>タグ用の構文の一例が、ＪＳＰタグ形式で以下に示されている。
【数２】
2005025738.tif 000004
上式で、"form"、"frame"、"autoPost"、"action"、および"method"属性は、前述の<scanner>タグ用の等価の属性と同様であるものとすることができる。
【００３６】
track1Field、track2Field、およびtrack3Field属性は、ＭＳＲのトラック１、２、および３のそれぞれからデータを受け取ることになる、入力フィールドのＩＤである。これらのフィールドはここでは指定されているが生成されないため、<msr>タグの本体で定義および特徴付けできるものであることに留意されたい。
【００３７】
フォームの本体は、フォーム内の入力フィールドの特徴、ならびに、ボタン、グラフィック、または他のインターフェース・フィーチャなどの、ページ上の任意の他のフィーチャを指定するものである。
【００３８】
前述のように<msr>タグを使用することに加えて、アプレットのいくつかのパブリック・メソッドを前述の<scanner>タグの場合と同様に呼び出すことができる。これらのメソッドはかなり多くのフレキシビリティを加えるものであり、ＭＳＲデータを受け取ることのできるフォームについて複数のフィールドがある場合に使用可能である。これらメソッドの例については、以下で説明する。
【００３９】
SetMSRFrame、SetMSRForm、SetMSRAutoPost、およびSetMSREnabledは、スキャナの使用に関して上記で述べたそれらの同等物と同様に使用することができる。
【００４０】
SetTrack1Field (String)、SetTrack2Field (String)、およびSetTrack3Field (String) を使用して、トラック１、トラック２などからＭＳＲデータを受け取ることになる入力フィールドを識別することができる（そのトラックからのトラックデータが期待されない場合、これらを空白文字列に設定することができる）。
【００４１】
さらに、一実施形態例では、アプレット２８に特別なプロパティ（オブジェクト）を追加することができる。この特別なオブジェクトを使用して、ＭＳＲのどのトラックがＭＳＲタグを含むＪＳＰページに関連することになるかを表すことができる。タグがロードされ、アプレット・セッター・メソッドがＭＳＲトラック用に呼び出されると、ウェブ・ページが特定のトラックを含むかどうかを反映するようにこのオブジェクトを更新することができる。たとえば、"track1Field"および"track3Field"が指定された場合、アプレット内のこのオブジェクトは、これらのトラックのみがフォームまたはウェブ・アプリケーションに関連するものであるという事実を表すことになる。このオブジェクトの値は、フォームに記入するためおよびサーバ１２上の受信側サーブレットに送信するために、どのトラックを使用するかをアプレット２８が後で知ることができるもの、あるいは、アプレットが、関連するトラックを読み取るだけのためにＪＰＯＳドライバを介してＭＳＲデバイス１６を構成することができるものである。たとえば、一実施形態では、このオブジェクトを"trackstoRead"と呼ぶことが可能であり、ゲッター（ｇｅｔｔｅｒ）・メソッドを用いてアクセス可能なブール値のベクトルである、java.util.BitSetオブジェクトとして実施することができる。他の実施を、たとえば、様々な言語、ストラクチャ、またはメソッドを使用するなど、様々な実施形態で提供することができる。
【００４２】
図２は、たとえば標準ブラウザ内で、クライアントによって表示されるフォームあるいは他のウェブ・ページまたは文書に非標準入力デバイスからのデータを入力するための、本発明の方法１００を示す流れ図である。この方法（ならびに本明細書に記載された他の方法および機能）のステップを実施するプログラミング命令、データ、またはコードは、本明細書に記載された適切なコンピュータまたは電子デバイスにアクセス可能な、メモリ、ハードディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、記憶デバイス、または他の媒体などといった、１つまたは複数のコンピュータ読取り可能媒体に格納することができる。
【００４３】
プロセスは１０２で始まり、ステップ１０４では、サーバ１２上のウェブ・アプリケーションが「ページ・データ」を生成し、これには、ウェブ・フォームに適切な入力データならびにフォーム自体に関するデータが記入されるために必要なスクリプトまたは命令が含まれる。たとえば、図１に記載された実施形態では、ＪＳＰタグが、フォームのフィールドに記入するようにアプレット２９を構成するために必要なＪａｖａＳｃｒｉｐｔ命令を生成し、さらにフォームおよびそのフィーチャをＨＴＭＬおよび／またはＸＭＬで生成する。
【００４４】
ステップ１０６では、ウェブ・アプリケーションからのページ・データがネットワーク接続などの通信リンクを介してクライアント１４で受け取られる。ブラウザがこのページ・データを受け取るが、ページ・データを受け取ったときにアプレット２８がすでにブラウザ内に常駐しており、かつ使用可能であることが好ましい。たとえば、ページ・データは、アプレットを含むフレームとは別のブラウザのフレーム内にダウンロードすることが可能である。ステップ１０８では、  ブラウザ２２が、ウェブ・アプリケーションから受け取ったページ・データからウェブ・フォーム２４をレンダリングおよび表示する。ブラウザは、ページ・データ内の標準ＨＴＭＬおよび他の標準命令を解釈する。ステップ１１０では、ブラウザ２２内で実行中のアプレット２８が、（前述のように、当初はＪＳＰタグによって、かつパブリック機能を使用して生成された）ページ・データに提供された命令によって構成されるため、アプレットは、非標準入力デバイス１６によって入力された任意のデータをフォーム２４のどのフィールドに入れるのかがわかることになる。
【００４５】
ステップ１１２では、本明細書では非標準入力デバイス１６からの入力データとして表される任意の非標準入力データがクライアント１４によって受け取られているかどうかを、プロセスがチェックする。受け取られていない場合、プロセスはステップ１１４で非標準入力データを待つ（さらに、クライアントは任意の他の標準機能を実行する）。非標準入力データがクライアントに入力されると、ステップ１１６では、その入力データが、たとえばＪａｖａＰＯＳを使用するＪａｖａアプリケーションなどのスタンドアロン型アプリケーション２０によって受け取られる。ステップ１１８では、アプリケーション２０がソケット（好ましくは、このソケットはアプレットの初期設定中に確立されている）を介して入力データをアプレットに送信する。ステップ１２０では、アプレットが、ウェブ・アプリケーションによって提供された命令（規則および関数）を使用して、フォーム２４の適切なフィールドに入力データを挿入する。ブラウザ２２は、オプションで、フォーム２４の表示内の適切なフィールドにこの入力データを表示することが可能であるか、または、入力データが表示されないようにフィールドを「非表示」として定義することが可能である。たとえば一実施形態では、下記のＪａｖａＳｃｒｉｐｔコード（または等価のコード）を使用して、アプレット２８にスキャナ・データをフォームに入力させ、そのフォームを通知させることができる。
【数３】
2005025738.tif 000005
このコードは、本来、"win"と呼ばれるオブジェクトを使用して、アプレットによって受け取られたＪＳＰタグ命令で指定された、ブラウザの特定のフォームおよびフレーム内の特定フィールドを参照させるものであり、このフィールドには、"dataString"によって参照され"value"に割り当てられた着信スキャナ・データが記入されることになる。このフォームがＪＳＰタグによって示されたサーバに自動的に送信されることになっている場合、このフォームは（スキャナ・データを含み）サブミットされる。ＭＳＲデータが入力された場合、着信データ内のデータの特定トラックを参照することが可能であり、アプレットに関する命令がデータの特定トラックをフォーム内の特定フィールドに関連付けることができる。他の実施形態では、他の実施を使用することができる。たとえば、アプレット２８がＪａｖａＳｃｒｉｐｔ命令を呼び出し、着信データをＪａｖａＳｃｒｉｐｔ機能に渡すことが可能であり、これが１つまたは複数のフォームの適切なフィールドにデータを入れることができる。
【００４６】
アプレット２８およびブラウザ２２がすべての入力データを受け取ってフォーム２４を完了させた（たとえばすべてのフィールドが記入された）後、あるいは、他の基準が満たされるかまたはユーザがフォームをサブミットすることを決めた場合、ユーザは（たとえば、ページ上に表示されたボタンを用いるか、または何らかの他のコマンドによって）、フォーム内の入力データをサーバ１２およびウェブ・アプリケーションにサブミットするためのコマンドを選択することができる。このデータは、ステップ１２２でサーバ１２に送信される。別の方法では、いったんフォームが完全に記入される（あるいは１つまたは複数の他の所定の基準が満たされる）と、ユーザが任意の手動コマンドを発行する必要なしに、アプレット２８がそのフォーム・データを自動的にサーバに送信することができる。その後、プロセスは１２４で完了する。適用可能であれば、その後、記入されることになる他のフォームをサーバからクライアントに送信することができる。
【００４７】
図３は、非標準出力デバイスで使用するための本発明の他の実施形態１５０を示すブロック図である。この実施形態は、図１のそれと多くの点で類似している。システム１５０は、サーバ１５２、クライアント１５４、および非標準入力デバイス１５６を含む。サーバ１５２は、ネットワークを介して他のコンピュータにデータを提供することが可能なウェブ・アプリケーションを実行する、ウェブ・サーバとすることができる。図１のシステム１０と同様に、Ｊａｖａ  Ｓｅｒｖｅｒ  ＰａｇｅｓおよびカスタムＪＳＰタグの実施が使用可能であるか、あるいはＪａｖａＳｃｒｉｐｔ機能のライブラリを使用してアプレットの構成およびアプレットとの通信が可能であるか、あるいは他の言語の関数および命令を使用することができる。クライアント１５４は、好ましくはディスプレイ・デバイスを含むコンピュータまたは電子デバイスであり、サーバ１５２と通信することが可能であって、特殊なウェブ・クライアントまたはより汎用のコンピュータとすることができる。
【００４８】
非標準出力デバイス１５６はクライアント１５４と通信しており、ここではワイヤ接続を介するかまたは無線で、クライアント１５４から出力デバイス１５６へとデータを伝送することができる。いくつかの実施形態では、出力デバイス１５６からクライアント１５４へとデータを伝送することもできる（ステータス情報など）。出力デバイス１５６は、ディスプレイ・デバイスまたは標準プリンタ（一般にコンピュータに接続されているようなレーザ・プリンタ、インクジェット・プリンタなど）などの標準出力デバイスではないという意味では「非標準」であるが、本発明ではさらにこうした標準出力デバイスもクライアント１５４と通信することができる（図３には図示せず）。たとえば、ＰＯＳアプリケーションで使用される非標準出力デバイスの１つがレシート・テープ・プリンタであり、特殊な用紙またはテープ上にレシート・テープ・プリンタによって特殊な印刷が実行されるものである。ＰＯＳ環境および他の環境では、本発明を用いて他の非標準出力デバイスを使用することができる。非標準出力デバイス１５６は、クライアント１５４によって送信された、出力されることになるデータを受け取る。
【００４９】
記載された実施形態では、クライアント１５４上のスタンドアロン型アプリケーション１６０が、非標準出力デバイス１５６との通信を可能にするデバイス・ドライバ・ソフトウェアを実行することができる。たとえば、アプリケーション１６０がＪａｖａプログラムの場合、前述のようにデバイス・ドライバをＪａｖａＰＯＳで実施することができる。他の実施形態では、他のタイプの適切なデバイス・ドライバを使用することができる。アプリケーション・プログラム１６０は、デバイス１５６に送信されることになる出力データをアプレット１６８からソケットを介して受け取ることができる。
【００５０】
ウェブ・ブラウザ１６２はクライアント１５４上で実行可能であり、クライアント１５４のユーザに、クライアント１５４、サーバ１５２、および任意の他の接続されたコンピュータと対話するためのインターフェースを提供する。ブラウザ１６２は、ＨＴＭＬなどの標準言語またはプロトコルに従って、所定の形式で情報を受信、レンダリング、および表示することができる。図１を参照しながら説明したように、ブラウザ１６２は「標準」ブラウザであるものとすることができる。ブラウザ１６２は、サーバ１５２からダウンロードされたデータからウェブ・ページ１６４を受信および表示する。ウェブ・ページ１６４は様々なデータを含むことができる。
【００５１】
記載された実施形態では、ブラウザ１６２は１つまたは複数のアプレット１６８を実行中である。ブラウザはサーバ１５２からデータを受け取り、そのデータを（たとえば、カスタムＪＳＰタグでラップされているかまたはラップされていないことのあるＪａｖａＳｃｒｉｐｔ機能を使用して）アプレット１６８が入手することができる。アプレットはソケットを介してデータをスタンドアロン型アプリケーション１６０に提供する。一実施では、クライアント１５４にデータを入力する非標準出力デバイスのそれぞれのタイプについて、異なるアプレットを実行することが可能であり、複数のデバイス１５６が使用される場合は、複数のアプレットが実行可能である。他の実施では、単一のアプレット１６８が複数タイプの非標準出力デバイス１５６へのデータを処理することが可能であり、デバイスのうちの１つに送信するように構成することができる。
【００５２】
好ましいことに、サーバ１５２上で実行中のウェブ・プログラムが、ブラウザ内で実行中のアプレット１６８を構成することができる。たとえば、サーバ上でＪＳＰ  ＳｅｒｖｅｒＰａｇｅｓ言語を使用して実行されるＪＳＰタグは、サーバ１５２によってブラウザ１６２に送信されるデータを生成し、そのデータのすべてまたは一部を出力デバイス１５６へ送信するようアプレットに指示することができる。
【００５３】
本発明は、ユーザが、プラットフォームに依存しないインターフェースおよび標準のウェブ技術（たとえば、ＨＴＭＬ、Ｊａｖａプラグイン、ＪａｖａＰＯＳ、ＪａｖａＳｅｒｖｅｒＰａｇｅｓ、または同等の技術）を使用して、標準ブラウザまたは同様のアプリケーションから非標準出力デバイス１５６にデータを出力できるようにするものである。ブラウザはどのような特別な機能も実行する必要がなく、表示されているデータが非標準出力デバイスによって出力されるものであることさえも知る必要がない。これにより、既存の製品および技術を使用しているユーザに最大限のフレキシビリティが与えられる。
【００５４】
図４は、図３に示されたシステムを使用して、標準ブラウザまたは同様のアプリケーションによって表示された文書からのデータを、非標準出力デバイスから出力するための本発明の方法２００を示す流れ図である。プロセスは２０２で開始され、ステップ２０４では、ユーザがそのデータを要求していることを示すために、ユーザによってクライアント１５４からサーバ１５２上のウェブ・アプリケーションへと要求が送られる。たとえばユーザが、サーバ上に格納されているかまたはサーバによって生成される製品および価格のリストまたは表あるいは任意の他の情報を、表示および出力しようとする場合がある。要求は、ユーザからの手動要求であるか、または１つまたは複数の条件に基づいた自動要求であるものとすることができる。
【００５５】
ステップ２０６では、サーバ上のウェブ・アプリケーションがユーザによって要求されたデータを含む「文書」を生成し、さらに文書を非標準出力デバイスに出力できるようにする命令（たとえば、ＪａｖａＳｃｒｉｐｔ命令またはスクリプト）も生成する（本明細書では文書および命令をまとめて「ページ・データ」と呼ぶ）。ウェブ・アプリケーションは文書および命令を（たとえばＪＳＰタグを使用して）生成することができるか、あるいはサーバにアクセス可能なストアド・メモリまたはストレージ・デバイスから文書を取り出すことができる。記載された実施形態では、ウェブ・アプリケーションが、ボタンなどの出力コントロールを表示するためにブラウザに命令を提供することも可能であり、ユーザはこれを選択して、非標準出力デバイスから文書を出力することができる。出力コントロールはユーザによって選択されると、ＪａｖａＳｃｒｉｐｔ（または同様の）機能を呼び出して、文書（出力）データをアプレット１６８に提供させることが可能であり、そこでアプレット１６８が文書を非標準出力デバイスに送信する。一実施形態では、図１および２の実施形態について上記で述べたカスタムＪＳＰタグと同様に、カスタムＪＳＰタグを使用して文書および命令を生成することができる。たとえば、「レシート・テープ」タグは、レシート・テープ・プリンタ１５６に適切な文書データを提供し、これが印刷できるようにするための命令を、アプレット１６８に提供することができる。
【００５６】
ステップ２０８では、サーバのページ・データが（たとえばネットワーク接続または他の通信リンクを介して）クライアント１５４によって受け取られ、ページ・データからの文書がブラウザ１６２によってレンダリングおよび表示される。したがって、ステップ２０６でウェブ・アプリケーションによって生成されたフォーマット化された文書がブラウザ上に表示され、ユーザがこれを閲覧する。いくつかの実施形態では、サーバからの文書をブラウザによって表示されることなく非標準デバイス１５６上に出力することができる。記載された実施形態では、ブラウザは、グラフィック・ボタンなどのコントロールをクライアント上に表示するためのページ・データ中の命令も使用して、ユーザによってコントロールが選択されたときに非標準出力デバイスによって文書が出力できるようにする。他の実施形態では、非標準出力デバイスによって出力されるものとして、または他の条件に基づくものとして、ユーザがそれを実行するためのコマンドを発行する必要なしに、文書を自動的に送信することができるため、ブラウザがグラフィック・コントロールを表示する必要はない。
【００５７】
ステップ２１０では、文書データが出力されるものかどうかをプロセスがチェックする。これは様々な実施形態またはモードで、様々な方法で決定することができる。たとえば記載された実施では、最初に文書を表示して、ページをデバイス１５６に出力するというユーザの確認を要求することができる（たとえば、確認をＪａｖａＳｃｒｉｐｔで要求することができる）。ユーザ確認は、ブラウザによって表示されたグラフィック・ボタンまたは他のコントロールの選択とすることができる。異なる実施では、このステップでのユーザ確認は不要であり、文書は直接出力される。
【００５８】
前述のようなユーザによるグラフィック・ボタンの選択が、ブラウザ自体に提供された「印刷」または他の出力コマンドあるいは機能の選択とは同じでないことに留意されたい。本発明の出力機能は、ブラウザ機能の範囲外にある。本発明の利点の一部は、本発明によって出力されるデータを、現在ブラウザによって表示されているデータのサブセットまたはスーパーセットとすることができる（または、本発明の出力がブラウザの表示とは無関係であるため、出力データをまったく表示する必要がない場合がある）こと、あるいは、サーバによって（および／またはユーザによって、たとえばいくつかの実施形態では、ユーザがブラウザに表示された出力コントロールを選択した後、ＪａｖａＳｃｒｉｐｔ命令がユーザの基本設定（ｐｒｅｆｅｒｅｎｃｅ）に対して作用できるか、またはユーザの基本設定をアプレット１６８に送信できる）送信された命令によって示されたときに、ブラウザによって表示される形式とは異なる形式とすることができることである。さらに、サーバ上のウェブ・アプリケーションは移植可能である場合があり、使用されているクライアントの特定のプラットフォームおよび特定のブラウザの如何にかかわらず、非標準出力デバイス上に出力を提供することができる。
【００５９】
文書データが出力されるものでない場合、ステップ２１２では、（クライアント１４はその通常の操作があればそれを実行しながら）プロセスがデータを出力するようにとのユーザからのコマンドを待つ。文書が出力されるとプロセスはステップ２１４に進み、文書内の出力データが入手されてアプレット１６８に送信される。たとえば、ＪａｖａＳｃｒｉｐｔ機能を呼び出して文書内の適切なデータを入手し、（たとえば、表示されたコントロールをユーザが選択したときに）これをアプレットに送信することができる。
【００６０】
ステップ２１６では、出力データがアプレット１６８からスタンドアロン型アプリケーション１６０に送信される。オプションで、アプレットが、着信した出力データをサブセット、ソーティングなどといった所望のフォーマットに再フォーマットすることができる。たとえば、ブラウザによって表示された３列のデータのうち２列のみを印刷するか、あるいは、サーバの命令および／またはユーザの基本設定に基づいてデータを異なる方法で分類または配置することができる。所望であれば、サーバからのページ・データ内の適切な命令を使用して、たとえば、データを自動的に非標準出力デバイスにフラッシュする、最後の出力用にデータをバッファリングする、多くの出力デバイスの中から１つを選択する、などといった所望の機能向けに、アプレット１６８をあらかじめ構成しておくことができる。
【００６１】
ステップ２１８では、スタンドアロン型アプリケーションが出力データを非標準出力データに変換し、その出力データを、たとえば印刷などといった出力のために非標準出力デバイスに送信する。記載された実施形態では、スタンドアロン型アプリケーションは、ＪａｖａＰＯＳを使用して出力デバイス１５６と通信するＪａｖａアプリケーションであるが、他の実施形態では、他の言語および標準を使用することができる。その後、プロセスは２２０で完了する。
【００６２】
図４のプロセスの異なる実施形態では、ユーザはクライアント１５４側でデータを入力することが可能であり、その後ユーザは非標準出力デバイスを使用してそのデータを出力しようとする。たとえばユーザは、サーバ１５２上のウェブ・アプリケーションに前述のようなデータを受け取るように要求を送信することが可能であり、データを受け取った後、ユーザはデータに注釈を付け、注釈付けされたフォームで出力しようとする。データおよび注釈は、ユーザのガイドラインおよび／またはサーバからの命令に従ってアプレットによってフォーマット化され、非標準出力デバイスによって出力されることが可能である。
【００６３】
以上、本発明について、示された実施形態に従って説明してきたが、当業者であれば当該実施形態の変形が可能であること、ならびにそれらの変形が本発明の趣旨および範囲内となることを容易に理解されるであろう。したがって当業者であれば、添付の特許請求の範囲の趣旨および範囲を逸脱することなく、多くの修正を行うことができる。
【図面の簡単な説明】
【００６４】
【図１】非標準入力デバイスから標準ブラウザにデータを提供するための、本発明のシステムを示すブロック図である。
【図２】非標準入力デバイスから標準ブラウザによって表示されたフォームまたは他のウェブ・ページにデータを入力するための、本発明の方法を示す流れ図である。
【図３】標準ブラウザから非標準出力デバイスにデータを提供するための、本発明のシステムを示すブロック図である。
【図４】非標準出力デバイスを使用してデータを出力するための、本発明の方法を示す流れ図である。
【符号の説明】
【００６５】
１２    サーバ
１４    クライアント
１６    非標準入力デバイス
１８    ＪａｖａＰＯＳ
２０    Ｊａｖａアプリケーション
２２    ブラウザ
２４    フォーム
２６    フィールド
２８    アプレット
【図１】
2005025738.tif 000006
【図２】
2005025738.tif 000007
【図３】
2005025738.tif 000008
【図４】
2005025738.tif 000009