光学的情報読取装置及び光学的情報読取方法
【課題】 WEBアプリケーション機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与する。
【解決手段】 受光部と、復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを用いて、復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、通信部を介して取得した構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、表示部と、を備え、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータが予め記憶され、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第1のコードデータを参照しつつ、第2のコードデータを実行する。
【解決手段】 受光部と、復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを用いて、復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、通信部を介して取得した構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、表示部と、を備え、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータが予め記憶され、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第1のコードデータを参照しつつ、第2のコードデータを実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1次元コードや2次元コードなどの情報を光学的に読み取る光学的情報読取装置及び光学的情報読取方法に関する。
【背景技術】
【0002】
従来から、倉庫において在庫管理データの収集や、店頭に陳列された商品データの収集、宅配システムの出荷・集荷データの入力等において、バーコードスキャナ機能を有するハンディターミナルが利用されている。ハンディターミナルは、特定の用途に応じて予めプログラミングされたアプリケーションを動作可能とするものであり、このプログラミング作業は、ハンディターミナルとは別に、テキストエディタやデバッグツールが充実し、メモリ資源の豊富なパーソナルコンピュータ上で行われる場合が多い。例えば、ハンディターミナルのアプリケーションを記述するソースプログラムは、C言語などの構造化プログラミング言語によって記述することができる。パーソナルコンピュータで作成されたソースプログラムは、デバッグおよびプログラム修正が繰り返された後、コンパイラによって実行形式のプログラムに変換され、有線又は無線LANなどの通信ネットワークを介してコンピュータからハンディターミナルに転送される。ハンディターミナルは、転送されてきた実行形式のプログラムをフラッシュROM等の不揮発性メモリに記憶するとともに、ユーザのキー入力操作に基づいて、これをRAM等の揮発性メモリに読み出して(ロードして)、アプリケーションを実行する。
【0003】
ここで、上述したハンディターミナルの更なる高機能化を目的として、ハンディターミナル上でWEBブラウザ(WEBアプリケーション)を実行可能にする技術がある。WEBブラウザは、HTMLなどのハイパーテキスト記述言語を用いてドキュメントにハイパーリンク(他のドキュメントURIへの参照)を埋め込むことによって、WEBサーバ上にあるドキュメント同士を参照可能にするためのアプリケーションである。ハンディターミナル上でWEBブラウザを実行することができれば、例えば、WEBサーバに対して在庫管理のログデータを逐次送信したり、WEBサーバ認証を利用してハンディターミナルに利用者制限機能を付加したり、必要に応じてWEBサーバに在庫検索の要求データを送信し、WEBサーバから在庫検索の結果データを受信したりするなど、様々な高機能化を実現することができる。
【0004】
例えば特許文献1に開示されたPOS(Point Of Sales)端末には、POSデバイスのデータ入出力機能を付加したPOS端末専用のWEBブラウザソフトが組み込まれており、標準のHTML規約にしたがって制御可能となっている。具体的には、POS端末は、WEBブラウザを用いてサーバに対してHTMLデータを要求し、サーバに記憶されているHTMLファイルを取得し、HTMLファイルの字句解析を行うことによって、ハンディターミナルのモニタにHTMLファイルの内容が表示される。
【0005】
また、例えば特許文献2に開示された商品販売システムによれば、JavaScriptを利用して、例えばユーザのオフライン操作でプルダウンメニューを表示するなど、動的なウェブページを実現することができるようになっている。具体的には、ユーザ端末は、JavaScriptが埋め込まれたHTMLファイルをサーバから取得すると、自身のWEBブラウザに組み込まれたインタープリタによって、JavaScriptの記述部分をバイトコード化し(WEBブラウザが解釈可能なコードに変換し)、その後、そのバイトコード化されたJavaScriptを実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−251674号公報
【特許文献2】特開2006−146351号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般に、ハンディターミナルのWEBブラウザを通じて表示されるWEBページ(メニュー画面など)は階層構造になっており、複数のページから構成される。ハンディターミナルが複数のHTMLファイル及び/又はJavaScriptファイルをサーバから順次取得して、WEBブラウザを通じてそれらを表示する際には、HTMLファイル及び/又はJavaScriptファイルを取得するたびにJavaScriptの記述部分がバイトコード化される。特に、上述したプルダウンメニューの表示機能だけでなく、例えばバーコード読取機能や端末内DBへのアクセス機能など、ハンディターミナル特有の機能がJavaScriptで記述されたHTMLファイル及び/又はJavaScriptファイルを取得した場合、JavaScriptの記述量が多いことに起因して、バイトコード化に多くの時間(例えば数百msなど)が掛かってしまい、ハンディターミナルの応答性が低下してしまう。その結果、ユーザがストレスを感じ、ハンディターミナルの利便性の低下に繋がる。
【0008】
この点、例えば上述した特許文献1にも開示されているように、JavaScriptの記述部分がバイトコード化された後、バイトコード化されたJavaScriptとともにHTMLファイルを一つのWEBページとしてキャッシュしておくことは可能である。これにより、キャッシュされたHTMLファイルやJavaScriptを再利用することによって、JavaScriptの記述部分をバイトコード化する処理を省けるため、ハンディターミナルの応答性の低下を防ぐことができる。
【0009】
しかしながら、一般のコンピュータと同様に、ハンディターミナルにもキャッシュ可能なWEBページの数に制限があり、一定数のWEBページがキャッシュされた後は、再びWEBページをサーバから取得して、JavaScriptの記述部分をバイトコード化する必要がある。例えば、バーコード読取を行った後、ハンディターミナル上で様々な作業を行うために複数のWEBページを表示させてしまうと、一つ前の作業を行うためのWEBページがキャッシュアウトしてしまう場合がある。例えば、発注作業をするためのWEBページAを表示させ、これをキャッシュインし、今度は棚卸し作業をするためのWEBページBを表示させ、これをキャッシュインし、更に今度は、検品作業をするためのWEBページCを表示させ、これをキャッシュインしたとする。ハンディターミナルに搭載されるメモリの関係上、例えばWEBページのキャッシュ数は2ページであるとすると、最も直近にキャッシュインされたWEBページBとWEBページCがキャッシュされることになる。この場合、再びユーザがWEBページAを用いて発注作業をしようとすると、再びサーバからWEBページAを取得(キャッシュイン)して、JavaScriptの記述部分をバイトコード化しなければならない。このように、単にWEBページをキャッシュするだけでは、ハンディターミナルの応答性の低下を防ぐことは困難である。
【0010】
本発明は、以上の点に鑑みてなされたものであり、その目的は、WEBブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することが可能な光学的情報読取装置および光学的情報読取方法を提供する。
【課題を解決するための手段】
【0011】
本発明に係る光学的情報読取装置は、読取対象からの反射光を受光して、受光信号を生成する受光部と、受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、テーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、通信部を介して取得した構造化文書を解析し、その構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、実行部の実行結果に基づいて、構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部を有し、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第1のコードデータを参照しつつ、第2のコードデータを実行する。
【0012】
このような構成によれば、光学的情報読取装置のコードデータ記憶部には、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータが記憶されているので、通信部を介してサーバから、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータを取得したときに、スクリプトを実行可能な形式のコードデータへ変換する処理を行うことなく、第1のコードデータを参照しつつ第2のコードデータを実行する処理を行うことができる。したがって、光学的情報読取装置にWEBブラウザを付加した場合であっても、応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。特に、受光部の動作と検索部の動作を規定するスクリプトの記述量が多い場合であっても、そのスクリプトは、実行可能な形式へ変換された第1のコードデータとして予めコードデータ記憶部に記憶されているので、新たにWEBページがキャッシュインされるときであっても、そのスクリプトをサーバから受信する受信処理と、受信したスクリプトを実行可能な形式へ変換する処理が不要になる。その結果、応答性の低下を防ぐことができる。
【0013】
また、本発明に係る光学的情報読取装置では、表示画面と操作部を備え、ユーザがその表示画面を視認しつつ操作部を操作することによって、構造化文書と、構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとが出力されるコードデータ出力装置がサーバに接続可能に構成され、実行部は、コードデータ出力装置からサーバに対して出力された構造化文書および第2のコードデータを、通信部を介して取得するような構成としてもよい。
【0014】
これにより、構造化文書に関連付けられたスクリプトを実行可能な形式の第2のコードデータへ変換する処理を、サーバではなく、コードデータ出力装置に行わせることができる(サーバにおいて、実行可能な形式の第2のコードデータへ変換する処理を行わなくてよい)。その結果、サーバは、コードデータ出力装置から出力された第2のコードデータを保持しておくだけでよい。そうすると、多数の光学的情報読取装置がサーバにアクセスしてきた場合であっても、サーバは第2のコードデータをスムーズに送信することができ、光学的情報読取装置の応答性の低下を防ぐことができる。
【0015】
また、本発明に係る光学的情報読取装置では、通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備えるとともに、実行部は、識別部の識別結果に基づいて、構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換する。これにより、光学的情報読取装置が実行可能な形式の第2のコードデータに変換されていないスクリプトを受信した場合であっても、識別部の識別結果を踏まえ、必要に応じて第2のコードデータに変換される。したがって、実行可能な形式のコードデータに変換されたスクリプトであっても、実行可能な形式のコードデータに変換されていないスクリプトであっても、受信可能な(エラーになることなく処理可能な)光学的情報読取装置を提供することができる。
【発明の効果】
【0016】
以上説明したように、本発明によれば、WEBブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態に係るハンディターミナルを有するシステムのシステム構成例を示す図である。
【図2】図1に示すシステムのハードウェア的な機能構成例を示す図である。
【図3】図1に示すシステムにおける情報処理の流れを示すフローチャートである。
【図4】プログラム作成装置のモニタに表示される画面例を示す図である。
【図5】図1に示すシステムにおける情報処理の流れを示すフローチャートである。
【図6】サーバからダウンロードされるHTML文書の一例を示す図である。
【図7】サーバからダウンロードされるバイトコード化されたスクリプトの一例を示す図である。
【図8】ハンディターミナルのコードデータ記憶部に予め記憶され、バイトコード化されているスクリプトの一例を示す図である。
【図9】図6に示すHTML文書によって、ハンディターミナルの液晶ディスプレイに表示される表示画面の一例を示す図である。
【図10】ハンディターミナルの運用時に行われる処理を示す図である。
【図11】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図12】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図13】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態に係る光学的情報読取装置について、図面に基づいて具体的に説明する。
【0019】
[システム構成]
図1は、本発明の実施の形態に係るハンディターミナル100を有するシステムのシステム構成例を示す図である。なお、本実施形態では、光学的情報読取装置の一例としてハンディターミナル100を採用している。また、本実施形態では、バーコードスキャナ機能を有するハンディターミナル100を子機とし、ハンディターミナル100でスキャンされたバーコードのデータが送られるサーバ200を親機とし、サーバ200で商品の在庫管理(発注管理)を行う在庫管理システムの例を示しているが、その他、入出庫の管理、検品・ピッキング管理など、各種目的に応じたハンディターミナルシステムを構築することができる。
【0020】
図1に示す在庫管理システムは、ハンディターミナル100とサーバ200を有しており、ハンディターミナル100とサーバ200とは、アクセスポイント(図中の“AP”で示す)400又は置き台(いわゆるクレードル)500を介して、それぞれ無線又は有線により通信可能に接続される。なお、図1に示すようなネットワーク接続では、例えばイーサネット(登録商標)によるTCP/IPプロトコルなどの通信プロトコルを採用することができる。また、アクセスポイント400を介した無線接続の通信方式については、例えばIEEE802.11bの方式のみならず、IEEE802.11gやブルートゥースや赤外線通信方式など、各種通信方式を採用することができる。また、図1では特に図示していないが、ルータやハブを介したネットワーク接続を構築することもできる。
【0021】
ハンディターミナル100は、商用電源や通信ネットワークに常には接続されていない、いわゆるコードレスのハンディターミナルであって、工場や倉庫における商品やその包装箱等に付されているバーコードや2次元コード等の情報コードを読み取る目的で使用される。また、ユーザは、ハンディターミナル100を把持して、例えば筐体の背面に設けられた読取窓(図示せず)を情報コードに対向させて、例えば筐体の側面に設けられたトリガキー100aを押すことによって、その情報コードを読み取る。また、コードレスのハンディターミナル100には充電池(図示せず)が内蔵されており、その電池からの電力供給を受けて、ハンディターミナル100単独で、情報コードの読取処理や商品の検索処理を実行することができるようになっている。
【0022】
また、ハンディターミナル100は、いわゆるリッチクライアント方式(或いはファットクライアント方式)によって、端末自体がプログラム実行機能を有しており、サーバ200と通信が確立されていない状態でも、例えば情報コードの読取処理や商品の検索処理などの各種処理を行うことができる(オフライン操作が可能となっている)。また、ハンディターミナル100の表面には、各種処理結果や通信結果が表示される液晶ディスプレイ100bや、ユーザが液晶ディスプレイ100bを見ながら各種操作を行う操作キー100cが設けられている。
【0023】
一方、サーバ200は、ハンディターミナル100に対してHTML文書やXHTML文書、XML文書を提供するWEBサーバであって、例えば汎用コンピュータやメインフレーム等を利用することができる。図1では、モニタ付属のサーバを図示しているが、モニタが接続されないサーバであってもよいし、モニタに加えて入出力デバイスが接続されるサーバであってもよい。アクセスポイント400は、データ転送の中継を行う機器であって、無線と無線、或いは、無線と有線の橋渡しを行う。図1では、無線と有線の橋渡しを行っている。なお、アクセスポイント400には、単純にデータ転送の中継を行うのみのブリッジタイプのものと、ルーティング機能やNAT機能を有するルータタイプのものがあるが、本発明を適用するにあたっては何れのタイプのものであってもよい。置き台500は、ハンディターミナル100を載置することによって、ハンディターミナル100とサーバ200との有線通信を確立するための置き台である。置き台500は、図示しない商用電源に接続されており、ハンディターミナル100が載置されると、ハンディターミナル100に内蔵の充電池が充電されるようになっている。また、置き台500は、サーバ200が接続されているLANやWANなどのネットワークと接続するための通信ポートを備えており、この通信ポートを介して、ハンディターミナル100とサーバ200とが通信可能になる。このように、置き台500は、ハンディターミナル100に内蔵(又は装着)される充電地を充電する機能と、ハンディターミナル100及びサーバ200と通信する機能とを有している。なお、図1では、ハンディターミナル100と置き台500とはシリアル通信を行い、置き台500とサーバ200とはイーサ・パケットデータにより通信するが、例えばハンディターミナル自体にデータ変換機能をもたせることによって、ハンディターミナル100とサーバ200とが直接イーサ・パケットデータをやり取りすることも可能である。
【0024】
図1に示すシステムでは、ハンディターミナル100、サーバ200、アクセスポイント400、置き台500に加えて、プログラム作成装置300もネットワークに接続可能となっている。プログラム作成装置300は、汎用のパーソナルコンピュータに、ハンディターミナル100上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムを作成するためのプログラムがインストールされたものである。プログラム作成装置300上で作成されたアプリケーションプログラムは、例えば操作キー100cの操作に基づく作業の流れや、液晶ディスプレイ100bに表示される表示内容などが規定されており、ハンディターミナル100に転送される。詳細は後述するが、プログラム作成装置300は特定のプログラム言語によらず、モニタ300a上でGUIを通じてアプリケーションプログラムを作成することができるので、ユーザは感覚的に所望のアプリケーションの振る舞いを定義することができる。もちろん、ユーザはプログラムエディタを使用して、C言語やスクリプト言語によりプログラムを直接記述して、アプリケーションプログラムを作成することもできる。
【0025】
また、プログラム作成装置300は、ハンディターミナル100上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムだけでなく、ハンディターミナル100が通信可能に接続されるサーバ200上で動作する応用プログラムの振る舞いを定義することもできる。サーバ200上で動作するプログラムは、通信ライブラリなどが含まれ、基本的にユーザによって編集されない基本プログラムと、ユーザがサーバ200に所望の動作を行わせるために編集される応用プログラムと、から構成され、プログラム作成装置300上で作成されるのは後者の応用プログラムである。基本プログラムと応用プログラムは独立したプログラムになっており、両者の間は、共有メモリ、メールスロット、パイプ、ソケット通信などの手段を用いて通信が行われる。これにより、ユーザがプログラム作成装置300で作成した応用プログラムにバグがあり、動作が停止してしまった場合であっても、基本プログラムの動作は継続可能であるため、システムを維持することができる。
【0026】
[機能構成]
図2は、図1に示すシステムのハードウェア的な機能構成例を示す図である。なお、図2では、アクセスポイント400や置き台500は省略している。
【0027】
図2において、ハンディターミナル100は、制御部101と、受光部102と、復号部103と、表示部104と、操作部105と、通信部106と、実行部107と、識別部108と、検索部109と、記憶部110と、を有している。制御部101は、CPUやROM(フラッシュROM等の読み書き可能な不揮発性のROMを含む),RAMなどから構成され、内部バスを介して上述したハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ROMに記憶されているプログラムに従って各種ソフトウェアの機能を実現する。また、SRAM等の揮発性メモリで構成されたRAMは、プログラムが実行される際にロードモジュールが展開され、プログラムの実行時に発生する一時的なデータを記憶するワーキングエリアとして機能する。なお、詳細は後述する復号部103、実行部107、識別部108、検索部109は、制御部101に含まれるCPUの一機能としてソフトウェア的に実現することもできるし、制御部101に含まれるCPUとは異なるCPU(専用のプロセッサ)の機能として実現することもできる。
【0028】
受光部102は、CCDやフォトダイオード等の受光素子を有しており、商品に付されたバーコードに対してLED等の光を出射して、そのバーコードからの反射光を受光して、それを光電変換して得られる受光信号を生成する。受光部102において、受光信号はコンデンサ等で直流成分が排除され、増幅回路を介してゲイン値に応じて増幅され、A/D変換によってデジタル信号に変換された後、復号部103へ入力される。なお、本実施形態では、LED等の光を用いて1次元バーコードを読み取る例について説明するが、例えばCMOSやCCDなどのイメージセンサを用いてQRコードなどの2次元コードを読み取るような受光部102としてもよい。この場合、受光部102は、2次元コードからの反射光をイメージセンサで受光する。
【0029】
復号部103は、受光部102から取得したデジタル信号(受光信号)のデコード処理を行う。より具体的には、復号部103は、受光信号を微分処理することによって、受光信号のエッジ部分を抽出する。そして、バンドパスフィルタ等で特定の周波数帯域に存在する信号のみを取り出し、所定の閾値より大きい信号をオンに、所定の閾値より小さい信号をオフとするパルス信号を生成する。その後、そのパルス信号の内容から、バーコードの開始点や終了点を示す情報を読み取ったり、パリティ情報を読み取ったり、実体的なバーコード情報を読み取ったりして、制御部101のコマンドに応じてデコード処理を行う。このように、復号部103は、受光信号に基づいて、読取対象に含まれる情報コードを復号する。
【0030】
表示部104は、上述した液晶ディスプレイ100bが含まれ、制御部101からの表示制御コマンドに基づいて、ユーザが在庫管理作業を行うための各種画面が表示される。表示部104に表示される表示内容は、プログラム作成装置300上で作成され、ハンディターミナル100に転送されたアプリケーションプログラムによって規定されている。操作部105は、ハーディターミナル100に対して各種入力操作を行うためのものであって、上述したトリガキー100aや操作キー100cなどが含まれる。ユーザがトリガキー100aを押したことを契機として、制御部101は操作部105からその操作信号を受信し、受光部102に対し、復号部103を介して或いは直接読取コマンドを送信する。読取コマンドを受信した受光部102は、バーコードに対してLED等の光を出射して、受光信号を生成する。そして、上述したように、制御部101は復号部103に対して復号コマンドを送信し、デコード処理を行う。
【0031】
通信部106は、外部の通信ネットワークと通信可能に接続されており、制御部101からの通信コマンドに基づいて、上述したように、アクセスポイント400と無線通信を行ったり、置き台500とシリアル通信を行ったりする。なお、制御部101は、TCP/IP変換を実行する機能を実現するためのプログラムを有している。
【0032】
実行部107は、サーバ200から取得したHTML文書の字句解析を行うとともに、そのHTML文書に含まれたJavaScript等のスクリプトをバイトコード化して実行する機能を有している。具体的には、ハンディターミナル100には、サーバ200から送られてきたHTML文書によって規定されるウェブページを閲覧するためのウェブブラウザアプリ111がインストールされており、このウェブブラウザアプリ111はフラッシュROM等からなる記憶部110に記憶されている。ウェブブラウザアプリ111のインストールによって、ハンディターミナル100はサーバ200との関係で、ウェブクライアントとして機能する。制御部101が、ウェブブラウザアプリ111を記憶部110からRAMにロードして実行することによって、ソフトウェア的に実行部107が生成される。なお、本実施形態における実行部107は、スクリプトのみをバイトコード化して実行する機能を有するようにしているが、例えば、スクリプトだけでなくHTML文書も併せてバイトコード化して、実行する機能を有するようにしてもよい。
【0033】
制御部101は、ウェブブラウザアプリ111を実行し、TCP/IPプロトコルに従って、通信部106を介してサーバ200にHTML文書の取得要求を送信し、その応答として、サーバ200から送信されたHTML文書を、通信部106を介して受信し、実行部107に渡す。この取得要求を送信するタイミングは、ハンディターミナル100の電源投入時、液晶ディスプレイ100b上で、ユーザが操作キー100cを用いて所定のハイパーリンクを選択した時または所定のボタンをクリックした時、或いは、ログデータを送信する時などである。
【0034】
実行部107は、制御部101から取得したHTML文書からDOM(Document
Object Model)を生成する(パースを行う)。DOMは木構造からなり、HTML文書の内部情報を操作するためのAPIである。なお、一般的なHTML文書は、クローズタグの省略等がされている場合があるため、これを補完する等の補正処理を行った上でDOMが生成される。そして、生成されたDOMに基づいて、HTML文書の記述を解析し実行する(字句解析を行う)。このとき、HTML文書にスクリプトが記述されている場合、或いは、そのHTML文書から呼び出されるスクリプトファイルが存在する場合には、そのスクリプトをバイトコード化して実行する。具体的には、スクリプトの内容にしたがって、DOMを変更したり、制御部101及び通信部106を介してサーバ200と通信したりする。制御部101は、実行部107の実行結果を受け取って、HTML文書をレンダリングし、テキストや画像を表示部104に送って液晶ディスプレイ100bに表示させる。
【0035】
なお、制御部101,通信部106,実行部107は、JavaScriptを利用してサーバ200と非同期通信を行って、サーバ200との間でXMLデータのやり取りを行うAjax(Asynchronous JavaScript+XML)による通信を行うことができる。これにより、ハンディターミナル100は、サーバ200と非同期通信を行って、テキストデータや画像データを取得し、液晶ディスプレイ100bの表示画面の一部分を更新させたり、ログデータをサーバ200に非同期で送り続けたりすることができる。
【0036】
識別部108は、サーバ200から取得したスクリプトファイルがバイトコードに変換されているか否かを識別する機能を有しており、制御部101は、識別部108の識別結果に基づいて、サーバ200から取得したスクリプトファイルがバイトコードに変換されていれば、実行部107にバイトコード化は不要である旨の指示を出し、サーバ200から取得したスクリプトファイルがバイトコードに変換されていなければ、実行部107にバイトコード化は必要である旨の指示を出す。このように、識別部108は、通信部106を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する機能を有している。
【0037】
検索部109は、復号部103によって復号されたバーコードに対応付けられた商品名称を検索する機能を有する。具体的には、記憶部110は、バーコードと商品名称とが対応付けられたテーブルが記憶するテーブル記憶部112を有しており、検索部109は、このテーブルを参照しつつ、バーコードと対応付けられた商品名を検索する。すなわち、検索部109は、このテーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する。そして、検索結果は制御部101に送られ、表示部104を介して液晶ディスプレイ100bにその商品名が表示される。
【0038】
記憶部110は、上述したように、ウェブブラウザアプリ111を記憶するとともに、テーブル記憶部112を有している。加えて、コードデータ記憶部113を有している。コードデータ記憶部113は、制御部101が通信部106を介してサーバ200から取得し、バイトコード化されたスクリプトファイルを、第1のコードデータとして記憶しておくためのものである。或いは、SDカードなどからWEBブラウザの起動前に組み込まれ、バイトコード化されたスクリプトファイルを、第1のコードデータとして記憶しておくためのものである。特に、この第1のコードデータは、少なくとも受光部102の動作と検索部109の動作を規定するスクリプトが実行部107において実行可能な形式へ変換された(バイトコード化された)コードデータである。サーバ200から、ユーザによって作成されたHTML文書に関連付けられたスクリプトが実行可能な形式へ変換されたコードデータを第2のコードデータとして取得し、実行部107において第2のコードデータが実行される際に、第1のコードデータが参照される。つまり、実行部107において、第1のコードデータと第2のコードデータが合成される処理が行われる。
【0039】
一方で、サーバ200は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行うCPU201と、起動プログラムや初期化プログラム等が格納されたROM202と、CPU201が各種プログラムを実行する際のワークエリアとして機能するRAM203と、外部の通信ネットワークと通信可能に接続される通信部204と、表示部205及び入力部206と、補助記憶手段として機能するHDD(Hard Disk Drive)207とを有しており、これらの間の通信は、データバスやアドレスバスなどのバスを介して行われる。なお、モニタ等の表示部205やマウスやキーボード等の入力部206は、省略することもできる。
【0040】
サーバ200のHDD206には、各種アプリケーションを実行するための機能や、表示部205又はハンディターミナル100の液晶ディスプレイ100bにおいて、入力フォームや各種ボタン等のGUIを利用するための機能などを提供するとともに、サーバ200全体を統合的に管理するOS(Operating System)がインストールされている(図示せず)。また、OS上で実行されるアプリケーション(アプリ)として、ハンディターミナル100のウェブブラウザアプリ111からの要求に応じて、HTML文書やスクリプト、画像などの情報をハンディターミナル100に送信するウェブアプリ2071がインストールされている。ウェブアプリ2071のインストールによって、サーバ200はウェブサーバとして機能し得る。各アプリケーションは、アプリケーションプログラムがHDD207からRAM203にロード(展開)され、各アプリケーションプログラムに基づきCPU201によって実行される。
【0041】
また、サーバ200のHDD207は、在庫管理の対象となる商品に関する情報(商品名や商品数)を登録するための商品DB2072と、ハンディターミナル100に送信するHTML文書やスクリプト、画像などの情報が格納される文書画像DB2073を有している。サーバ200のCPU201は、TCP/IPプロトコルにしたがって、HTTPによる命令やHTML文書の送受信を行う。そして、ハンディターミナル100からの要求に応じて、HDD207に記憶されているHTML文書や画像の中から要求に対応するHTML文書を読み出し、ハンディターミナル100に返送する。また、ハンディターミナル100からの要求に応じて、商品DB2072からデータを取得してハンディターミナル100に送ったり、商品DB2072にデータを登録したりする。
【0042】
プログラム作成装置300は、CPUやROM,RAMなどから構成され、ハードウェア各部の制御を行うための制御部301と、補助記憶手段として機能する記憶部302と、LANポートなど外部の通信ネットワークと通信可能に接続される通信部303と、モニタ300a等の表示部304およびマウスやキーボード等の操作部305とを有している。
【0043】
特に、プログラム作成装置300は、モニタ300a上でGUIを通じて記述されたスクリプトをバイトコード化する変換部306を有している。すなわち、変換部306は、所定のHTML文書に関連付けられたスクリプトがハンディターミナル100上で実行可能な形式へ変換されたバイトコードを出力する機能を有している。制御部301は、変換部306によって出力されるバイトコードを受信し、通信部303を介してハンディターミナル100やサーバ200に送信する。
【0044】
[処理の流れ]
図3は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図3は、プログラム作成装置300においてバイトコードが出力されるまでの処理を示している。
【0045】
図3に示すように、まず、ユーザはプログラム作成装置300を用いて、ハンディターミナル100の液晶ディスプレイ100bに表示される表示内容や動きを規定するための作業を行う。図4は、プログラム作成装置300のモニタ300aに表示される画面例を示す。ユーザは、操作部305を操作することによって、ツールボックス601をクリックし、テキストボックスやラジオボタン、コンボボックスやリストボックスなど、所望の部品を選択して、作業エリア600にドラッグ&ドロップする。これにより、ハンディターミナル100の液晶ディスプレイ100bに表示されるウェブページの表示内容や動き(例えば、コンボボックスをクリックするとプルダウンで選択項目のリストが一覧表示される等の動き)を規定することができる。このようなドラッグ&ドロップを複数回繰り返して、ハンディターミナル100の液晶ディスプレイ100bに表示されるウェブページを作成する。図4では、担当者ID入力用の画面と品番/数量入力用の画面を作成している過程の様子を示しており、アプリケーションエクスプローラの表示エリア602に、担当者ID入力(用のページ)603と、品番/数量入力(用のページ)604が表示されている。
【0046】
ユーザは、GUIを通じてドラッグ&ドロップによるウェブページの作成が終了すると、ハンディターミナル100上で動作するアプリケーションとして振る舞うための(HTML文書および)スクリプトを生成する(ステップS1)。具体的には、スクリプト生成ボタン605をクリックすることによって、ユーザが作成したウェブページのスクリプトが自動生成される。作成されたスクリプトは、アウトプットウィンドウ606に自動的に表示される。また、アウトプットウィンドウ606には、タグの切り替えにより、例えばログデータとして「App.html,App.jsを作成しました。」といったテキストが表示される。このように、プログラム作成装置300の制御部301は、操作部305の操作信号に基づいてHTML文書やスクリプトを自動生成する機能を有している。
【0047】
HTML文書やスクリプトの生成が終了すると、ユーザは、コンパイルボタン607をクリックする。そうすると、ステップS1で生成されたスクリプトがバイトコード化される(ステップS2)。具体的には、制御部301は、ステップS1で生成し、記憶部301に記憶しておいたスクリプトを読み出して、変換部306(図2)に転送する。そして、変換部306は、そのスクリプトをコンパイルする。なお、必要に応じてリンクも行う。これにより、例えば「.jsb」の拡張子を有し、バイトコード化されたファイルが生成され、制御部301を介して記憶部302に記憶される。
【0048】
スクリプトのバイトコード化が完了すると、バイトコード化されたファイルに識別子が付与される(ステップS3)。この識別子としては、ユーザが所望のIDを付与することも可能であるが、本実施形態では、プログラム作成装置300において、バイトコード化されたファイル名(例えば「user.jsb」)から拡張子を除いた名称(例えば「user」)が自動的に付与されるようになっている。なお、シミュレーションボタン608をクリックすることにより、バイトコード化されたスクリプトが正常に動作するか否かを確かめることができる。
【0049】
最後に、サーバ200とプログラム作成装置300を通信可能に接続した状態で、ユーザが送信ボタン609をクリックすると、バイトコード化されたスクリプトがサーバ200へ転送され、出力される(ステップS4)。具体的には、制御部301は、操作部305からの操作信号に基づいて、記憶部302からバイトコード化されたスクリプトを読み出して、通信部303を介してサーバ200に送信する。これを受信したサーバ200は、文書画像DB2073に記憶しておき、上述したように、ハンディターミナル100から取得要求があったときにハンディターミナル100に対して送信する。
【0050】
また、本実施形態では、バーコード読取機能や端末内検索機能などが記述され、かつ、バイトコード化されたスクリプトが、予めハンディターミナル100のコードデータ記憶部113に記憶されている。このスクリプトは、例えばプログラム作成装置300にインストールされたプログラム作成エディタを使用してスクリプトを記述し、スクリプトコンパイルを行うことによって作成する。そして、ハンディターミナル100とプログラム作成装置300を通信可能に接続した状態で、ユーザは操作部305を操作することによってバイトコード化されたスクリプトがハンディターミナル100に転送される。このように、本実施形態では、ハンディターミナル100に予め記憶しておくスクリプトは、図4に示す画面を表示するソフトウェアとは別のソフトウェアによって作成されるようにしている。これにより、ハンディターミナル100に予め記憶しておくスクリプトを、ユーザが誤って編集してしまい、ハンディターミナル100が誤動作してしまうのを防ぐことができる。なお、もちろん、このスクリプトを図4に示す画面を表示するソフトウェア上で作成し、バイトコード化し、出力するようにしても構わない。また、SDカードなどから予めインストールして(組み込んで)おいても構わない。要は、第1のコードデータとして予めハンディターミナル100のコードデータ記憶部に記憶されるスクリプトは、ユーザが簡単には編集できないように構成されているため、ユーザが誤って編集してしまうのを防ぐことが可能となっている。
【0051】
図5は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図5は、ハンディターミナル100の運用開始前に行われる準備処理を示している。
【0052】
図5に示すように、まずはサーバ200へのログインが行われる(ステップS11)。具体的には、例えばユーザがハンディターミナル100の電源を投入すると、制御部101は、ROMに記憶された初期化プログラム等(ハンディターミナル100の初期設定)に従って、通信部106を介して予め定められた手順でサーバ200にログイン要求を行う。例えば、ハンディターミナル100の端末IDやシリアル番号などをサーバ200に対して通知する。サーバ200は、このログイン要求に対し、MACアドレスを用いた端末認証を行ったり、ユーザにパスワードの入力を求めたりして、所定のログイン処理を行う。
【0053】
次に、コンテンツのダウンロードを行う(ステップS12)。具体的には、制御部101は、ウェブブラウザアプリ111を実行し、ROMに記憶された運用開始前準備プログラムに従って文書や画像の取得要求をし、所定のHTML文書やバイトコード化されたスクリプト(バイトコードデータ)をダウンロードする。図6は、サーバ200からダウンロードされるHTML文書の一例(一部のみを示す概要)を示し、図7は、サーバ200からダウンロードされるバイトコード化されたスクリプトの一例(一部のみを示す概要)を示している。図8は、ハンディターミナル100のコードデータ記憶部113に予め記憶され、バイトコード化されているスクリプトの一例(一部のみを示す概要)を示している。なお、図7及び図8では、説明の便宜上、容易に読解できるスクリプトを示しているが、一般には、バイトコード化されたスクリプトの容易に読解できないコード(バイトコード)になっている。また、ダウンロードするコンテンツがZIP圧縮されている場合には、制御部101において解凍(展開)処理が行われる。
【0054】
次に、字句解析を行う(ステップS13)。具体的には、制御部101は、実行部107にHTML文書(図6)を転送し、実行部107は、HTML文書からDOMを生成し、そのDOMに基づいてHTML文書の記述を解析して実行する。本実施形態では、図6に示すHTML文書に関連付けられた図7に示すスクリプトは、プログラム作成装置300において既にバイトコード化されているため、制御部101から実行部107に転送されず、その結果、実行部107おいてバイトコード化の処理も行われない。これにより、バイトコード化に必要な処理時間を省くことができる。
【0055】
最後に、制御部101は、実行部107からHTML文書の字句解析の実行結果を受け取って、RAMへの展開を行う(ステップS14)。また、バイトコード化されている図7に示すスクリプトについては、(ステップS13をスキップして)そのままRAMへの展開を行う。このように、制御部101は、RAM上において、図6に示すHTML文書の字句解析結果と、バイトコード化されている図7に示すスクリプトとを展開し、実行できる状態にする。そして、制御部101は、図6に示すHTML文書の字句解析結果に基づいて、HTML文書をレンダリングし、テキストや画像を表示部104に送って液晶ディスプレイ100bに表示させる。
【0056】
一方、ハンディターミナル100のコードデータ記憶部113には、例えば図8に示すような、既にバイトコード化されているライブラリ(スクリプト)が記憶されている。制御部101は、RAMに展開された図7に示すスクリプトを実行する際に、コードデータ記憶部113に記憶されている図8に示すスクリプトを参照しつつ(例えばRAMに展開して)、実行する。なお、図7に示すスクリプトは、上述したように「user」という識別子が付与され、ユーザ特有の画面や動作(表示画面や画面遷移など)を規定するための記述であり、図8に示すスクリプトは、ハンディターミナル100特有の動作(バーコード読取や商品検索)を規定するための記述である。そして、いずれかのスクリプトだけではハンディターミナル100を正常に動作させることはできず、識別子「user」で特定されるスクリプト(図7)と、ハンディターミナル100特有の動作を規定するために内蔵された(予めハンディターミナル100に記憶された)スクリプト(図8)とを制御部101が合成(マージ)することによって初めて、ユーザ所望のWEBブラウザ機能搭載のハンディターミナル100を正常に動作させることができる。また、ユーザが編集可能な図7に示すスクリプトについては、制御部101がサーバ200から取得するようなシステムとすることによって、複数台のハンディターミナル100がアクセスしてきた場合であっても、(予めバイトコード化された上でサーバ200に格納されているため)速やかに図7に示すスクリプトを提供することができ、ひいてはハンディターミナル100上での動作準備が完了するまでの時間(すなわち、制御部101によって図7や図8に示すスクリプトが実行され、ユーザからのトリガ入力待ちの状態になるまでの時間)を減らすことができる。
【0057】
図9は、図6に示すHTML文書によって、ハンディターミナル100の液晶ディスプレイ100bに表示される表示画面の一例(あくまで概要を示すイメージ図である)を示している。図9に示すように、液晶ディスプレイ100bには、テキストボックス1(の表示エリア801)やテキストボックス2(の表示エリア802)が表示されている。これは、HTML文書に、例えば図6に示すコード701やコード702のような記述があることによって、表示されることになる。図7に示すスクリプトには、例えば「TextBox1.onFocusIn=BarcodeEnable();」といった一文703が記述され、これにより、液晶ディスプレイ100b上でカーソルがテキストボックス1を選択したとき、バーコード読取が有効状態となる。すなわち、図8に示す関数706「function BarcodeEnable()」が呼び出され、トリガキー100aが押されるのを待機する状態となる。また、図7に示すスクリプトには、例えば「TextBox1.onEditEnd=MasterSearch();」といった一文704が記述され、これにより、バーコード読取が完了してEditEndが発生した時点で、図8に示す関数705が呼び出され、自動的に端末内検索が行われる。
【0058】
次に、このような関数705や関数706によって実現される、ハンディターミナル100の運用に関する処理の流れを説明する。図10は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図10は、ハンディターミナル100の運用時に行われる処理を示している。また、図11〜図13は、図8及び図9に示すスクリプトに基づいて、ハンディターミナル100の液晶ディスプレイ100bに表示される表示画面が遷移する様子を示している。
【0059】
図10に示すように、まず、バーコード読取が行われる(ステップS21)。より具体的には、制御部101は、トリガキー100aが押されたことを契機として、受光部102に対して読取コマンドを送信することによって、バーコード読取を行って、その読取結果を記憶部110に記憶する。図7及び図8を用いて説明すれば、制御部101は、RAMに展開され、バイトコード化されているスクリプトを実行し、上述したようにバーコード読取を有効状態とし、トリガキー100aが押されて操作部104から操作信号を受信したことを契機として、受光部102を介してバーコード読取を行い、復号部103を介して復号を行い、その結果であるバーコード読取結果をテキストボックス1の表示エリア801に表示する。例えば図11に示すように、テキストボックス1の表示エリア801に、バーコード読取結果である「ABC12345678」などの情報コードが表示される。
【0060】
次に、端末内検索が行われる(ステップS22)。具体的には、制御部101は、ステップS21において記憶部110に記憶されたバーコード読取結果を読み出して、検索部109に渡す。検索部109は、テーブル記憶部112に記憶された、情報コードと読取対象の名称(商品名)とが対応付けられたテーブルを参照して、取得したバーコード読取結果が何の商品名であるかを識別する。図7及び図8を用いて説明すれば、制御部101は、RAMに展開され、バイトコード化されているスクリプトを実行し、上述したように自動的に端末内検索を行い、その検索結果をテキストボックス2の表示エリア802に表示する。例えば図12に示すように、テキストボックス2の表示エリア802に、「ABC12345678」と対応付けられた商品名「バーコードハンディ」が表示される。以上のステップS21およびステップS22は、サーバ200と通信が確立されていない状態で行われる。一方、以降のステップS23〜ステップS25は、サーバ200との通信が前提となる処理である。ユーザは、このステップS21及びステップS22の処理がハンディターミナル100で行われることによって、サーバ200と通信不能の状況であっても、バーコードが付された商品は何であるかを認識することができる。そして、商品は何であるかに加えて、その商品の在庫数などを確認したい場合には、以降のステップS23〜ステップS25の処理が行われる。
【0061】
次に、問い合わせデータ送信の処理が行われる(ステップS23)。具体的には、制御部101は、ステップS22において識別された商品名「バーコード」をテーブル記憶部112から読み出して、通信部106を介してサーバ200へ送信する。このときの送信タイミングは、ハンディターミナル100が置き台500に載置されたときであってもよいし、無線通信であれば何らかの操作キー100cが押された時であってもよい。また、商品名の情報を送るときに、ログデータを送ってもよい。通信部204を介してこれを受信したサーバ200のCPU201は、商品DB2072を検索して、その在庫数を確認する。そして、CPU201は、例えば文書画像DB2073に記憶されている「バーコードハンディ」の画像データと、その在庫数を示すテキストデータとを、通信部204を介してハンディターミナル100に送信する。
【0062】
ハンディターミナル100の制御部101は、問い合わせ結果データを受信すると(ステップS24)、液晶ディスプレイ100b上でコンテンツの部分更新を行う(ステップS25)。例えば図13に示すように、液晶ディスプレイ100bの下方に、「バーコードハンディ」の画像が表示され、その画像の下に在庫数が表示される。図13では、在庫数は5個と表示されている。これにより、ユーザは「バーコードハンディ」の在庫数は5個であることを認識することができる。
【0063】
ここで、ステップS23〜ステップS25の処理について更に説明すると、ハンディターミナル100とサーバ200とはJavaScriptを利用して非同期通信を行っており、両者の間でXMLデータのやり取りを行う、いわゆるAjax(Asynchronous JavaScript+XML)の技術(XML HTTPRequest機能)を用いている。したがって、ハンディターミナル100は、サーバ200と同期通信を行ってHTML文書をリロード等する必要がなく、その結果、字句解析も不要となるので、その分、サーバ200との通信における応答性(応答速度)を高めることができる。
【0064】
[実施形態の効果]
以上説明したように、本実施形態に係るハンディターミナル100においては、運用開始前に準備処理が行われた後に(図5)、実際の運用処理が行われる(図10)。図5および図10では、ハンディターミナル100を使った発注作業の例を示しているが、実際には、発注作業の他にも、棚卸し作業や検品作業などが考えられる。棚卸し作業は、複数の商品に対してバーコード読取を行って、各商品の在庫数をサーバ200の商品DB2072に格納していく作業であり、検品作業は、パッケージの中に含まれる商品の種類や数が合っているかどうかをサーバ200の商品DB2072に予め規定されたデータと照合していく作業である(例えば、商品A×3、商品B×5を一纏まりのパッケージにしたい場合等)。したがって、図9,図11〜図13で示す表示画面の他にも、例えば数十パターンの表示画面が存在する。そうすると、発注作業を行う際に、図5および図10のフローチャートに示す情報処理が行われ、棚卸し作業を行う際にも図5および図10のフローチャートに示す情報処理が行われ、検品作業を行う際にも図5および図10のフローチャートに示す情報処理が行われることになるが、本実施形態に係るハンディターミナル100によれば、図5に示すステップS13やステップS14の処理において、スクリプトをバイトコード化する処理が不要であるため、その処理に時間が掛かってしまうことに起因したハンディターミナル100の応答性低下を防ぐことができる。その結果、ハンディターミナル100の利便性の低下を防ぐことができる。
【0065】
また、バーコード読取の機能を担う受光部102と、テーブル記憶部112を用いて端末内DBアクセス機能を担う検索部109との動作を規定するスクリプト(図8)が、実行可能な形式に変換された上で予めコードデータ記憶部112に記憶されている。そして、サーバ200からHTML文書(図6)やバイトコード化されたスクリプト(図7)を取得して実行する際に、コードデータ記憶部112に記憶されているスクリプトを参照しつつ実行する。このように、図7に示すスクリプトと図8に示すスクリプトが揃うことによって、実際の運用処理(図10)を行うことができる。
【0066】
また、実行部107がサーバ200から取得するHTML文書が、実行可能な形式へ変換されていることによって、HTML文書をバイトコード化する手間も省け、ハンディターミナル100の応答性向上に寄与することができる。
【符号の説明】
【0067】
100 ハンディターミナル
200 サーバ
300 プログラム作成装置
400 アクセスポイント
500 置き台
【技術分野】
【0001】
本発明は、1次元コードや2次元コードなどの情報を光学的に読み取る光学的情報読取装置及び光学的情報読取方法に関する。
【背景技術】
【0002】
従来から、倉庫において在庫管理データの収集や、店頭に陳列された商品データの収集、宅配システムの出荷・集荷データの入力等において、バーコードスキャナ機能を有するハンディターミナルが利用されている。ハンディターミナルは、特定の用途に応じて予めプログラミングされたアプリケーションを動作可能とするものであり、このプログラミング作業は、ハンディターミナルとは別に、テキストエディタやデバッグツールが充実し、メモリ資源の豊富なパーソナルコンピュータ上で行われる場合が多い。例えば、ハンディターミナルのアプリケーションを記述するソースプログラムは、C言語などの構造化プログラミング言語によって記述することができる。パーソナルコンピュータで作成されたソースプログラムは、デバッグおよびプログラム修正が繰り返された後、コンパイラによって実行形式のプログラムに変換され、有線又は無線LANなどの通信ネットワークを介してコンピュータからハンディターミナルに転送される。ハンディターミナルは、転送されてきた実行形式のプログラムをフラッシュROM等の不揮発性メモリに記憶するとともに、ユーザのキー入力操作に基づいて、これをRAM等の揮発性メモリに読み出して(ロードして)、アプリケーションを実行する。
【0003】
ここで、上述したハンディターミナルの更なる高機能化を目的として、ハンディターミナル上でWEBブラウザ(WEBアプリケーション)を実行可能にする技術がある。WEBブラウザは、HTMLなどのハイパーテキスト記述言語を用いてドキュメントにハイパーリンク(他のドキュメントURIへの参照)を埋め込むことによって、WEBサーバ上にあるドキュメント同士を参照可能にするためのアプリケーションである。ハンディターミナル上でWEBブラウザを実行することができれば、例えば、WEBサーバに対して在庫管理のログデータを逐次送信したり、WEBサーバ認証を利用してハンディターミナルに利用者制限機能を付加したり、必要に応じてWEBサーバに在庫検索の要求データを送信し、WEBサーバから在庫検索の結果データを受信したりするなど、様々な高機能化を実現することができる。
【0004】
例えば特許文献1に開示されたPOS(Point Of Sales)端末には、POSデバイスのデータ入出力機能を付加したPOS端末専用のWEBブラウザソフトが組み込まれており、標準のHTML規約にしたがって制御可能となっている。具体的には、POS端末は、WEBブラウザを用いてサーバに対してHTMLデータを要求し、サーバに記憶されているHTMLファイルを取得し、HTMLファイルの字句解析を行うことによって、ハンディターミナルのモニタにHTMLファイルの内容が表示される。
【0005】
また、例えば特許文献2に開示された商品販売システムによれば、JavaScriptを利用して、例えばユーザのオフライン操作でプルダウンメニューを表示するなど、動的なウェブページを実現することができるようになっている。具体的には、ユーザ端末は、JavaScriptが埋め込まれたHTMLファイルをサーバから取得すると、自身のWEBブラウザに組み込まれたインタープリタによって、JavaScriptの記述部分をバイトコード化し(WEBブラウザが解釈可能なコードに変換し)、その後、そのバイトコード化されたJavaScriptを実行する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−251674号公報
【特許文献2】特開2006−146351号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般に、ハンディターミナルのWEBブラウザを通じて表示されるWEBページ(メニュー画面など)は階層構造になっており、複数のページから構成される。ハンディターミナルが複数のHTMLファイル及び/又はJavaScriptファイルをサーバから順次取得して、WEBブラウザを通じてそれらを表示する際には、HTMLファイル及び/又はJavaScriptファイルを取得するたびにJavaScriptの記述部分がバイトコード化される。特に、上述したプルダウンメニューの表示機能だけでなく、例えばバーコード読取機能や端末内DBへのアクセス機能など、ハンディターミナル特有の機能がJavaScriptで記述されたHTMLファイル及び/又はJavaScriptファイルを取得した場合、JavaScriptの記述量が多いことに起因して、バイトコード化に多くの時間(例えば数百msなど)が掛かってしまい、ハンディターミナルの応答性が低下してしまう。その結果、ユーザがストレスを感じ、ハンディターミナルの利便性の低下に繋がる。
【0008】
この点、例えば上述した特許文献1にも開示されているように、JavaScriptの記述部分がバイトコード化された後、バイトコード化されたJavaScriptとともにHTMLファイルを一つのWEBページとしてキャッシュしておくことは可能である。これにより、キャッシュされたHTMLファイルやJavaScriptを再利用することによって、JavaScriptの記述部分をバイトコード化する処理を省けるため、ハンディターミナルの応答性の低下を防ぐことができる。
【0009】
しかしながら、一般のコンピュータと同様に、ハンディターミナルにもキャッシュ可能なWEBページの数に制限があり、一定数のWEBページがキャッシュされた後は、再びWEBページをサーバから取得して、JavaScriptの記述部分をバイトコード化する必要がある。例えば、バーコード読取を行った後、ハンディターミナル上で様々な作業を行うために複数のWEBページを表示させてしまうと、一つ前の作業を行うためのWEBページがキャッシュアウトしてしまう場合がある。例えば、発注作業をするためのWEBページAを表示させ、これをキャッシュインし、今度は棚卸し作業をするためのWEBページBを表示させ、これをキャッシュインし、更に今度は、検品作業をするためのWEBページCを表示させ、これをキャッシュインしたとする。ハンディターミナルに搭載されるメモリの関係上、例えばWEBページのキャッシュ数は2ページであるとすると、最も直近にキャッシュインされたWEBページBとWEBページCがキャッシュされることになる。この場合、再びユーザがWEBページAを用いて発注作業をしようとすると、再びサーバからWEBページAを取得(キャッシュイン)して、JavaScriptの記述部分をバイトコード化しなければならない。このように、単にWEBページをキャッシュするだけでは、ハンディターミナルの応答性の低下を防ぐことは困難である。
【0010】
本発明は、以上の点に鑑みてなされたものであり、その目的は、WEBブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することが可能な光学的情報読取装置および光学的情報読取方法を提供する。
【課題を解決するための手段】
【0011】
本発明に係る光学的情報読取装置は、読取対象からの反射光を受光して、受光信号を生成する受光部と、受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、テーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、通信部を介して取得した構造化文書を解析し、その構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、実行部の実行結果に基づいて、構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部を有し、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第1のコードデータを参照しつつ、第2のコードデータを実行する。
【0012】
このような構成によれば、光学的情報読取装置のコードデータ記憶部には、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータが記憶されているので、通信部を介してサーバから、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータを取得したときに、スクリプトを実行可能な形式のコードデータへ変換する処理を行うことなく、第1のコードデータを参照しつつ第2のコードデータを実行する処理を行うことができる。したがって、光学的情報読取装置にWEBブラウザを付加した場合であっても、応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。特に、受光部の動作と検索部の動作を規定するスクリプトの記述量が多い場合であっても、そのスクリプトは、実行可能な形式へ変換された第1のコードデータとして予めコードデータ記憶部に記憶されているので、新たにWEBページがキャッシュインされるときであっても、そのスクリプトをサーバから受信する受信処理と、受信したスクリプトを実行可能な形式へ変換する処理が不要になる。その結果、応答性の低下を防ぐことができる。
【0013】
また、本発明に係る光学的情報読取装置では、表示画面と操作部を備え、ユーザがその表示画面を視認しつつ操作部を操作することによって、構造化文書と、構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとが出力されるコードデータ出力装置がサーバに接続可能に構成され、実行部は、コードデータ出力装置からサーバに対して出力された構造化文書および第2のコードデータを、通信部を介して取得するような構成としてもよい。
【0014】
これにより、構造化文書に関連付けられたスクリプトを実行可能な形式の第2のコードデータへ変換する処理を、サーバではなく、コードデータ出力装置に行わせることができる(サーバにおいて、実行可能な形式の第2のコードデータへ変換する処理を行わなくてよい)。その結果、サーバは、コードデータ出力装置から出力された第2のコードデータを保持しておくだけでよい。そうすると、多数の光学的情報読取装置がサーバにアクセスしてきた場合であっても、サーバは第2のコードデータをスムーズに送信することができ、光学的情報読取装置の応答性の低下を防ぐことができる。
【0015】
また、本発明に係る光学的情報読取装置では、通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備えるとともに、実行部は、識別部の識別結果に基づいて、構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換する。これにより、光学的情報読取装置が実行可能な形式の第2のコードデータに変換されていないスクリプトを受信した場合であっても、識別部の識別結果を踏まえ、必要に応じて第2のコードデータに変換される。したがって、実行可能な形式のコードデータに変換されたスクリプトであっても、実行可能な形式のコードデータに変換されていないスクリプトであっても、受信可能な(エラーになることなく処理可能な)光学的情報読取装置を提供することができる。
【発明の効果】
【0016】
以上説明したように、本発明によれば、WEBブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態に係るハンディターミナルを有するシステムのシステム構成例を示す図である。
【図2】図1に示すシステムのハードウェア的な機能構成例を示す図である。
【図3】図1に示すシステムにおける情報処理の流れを示すフローチャートである。
【図4】プログラム作成装置のモニタに表示される画面例を示す図である。
【図5】図1に示すシステムにおける情報処理の流れを示すフローチャートである。
【図6】サーバからダウンロードされるHTML文書の一例を示す図である。
【図7】サーバからダウンロードされるバイトコード化されたスクリプトの一例を示す図である。
【図8】ハンディターミナルのコードデータ記憶部に予め記憶され、バイトコード化されているスクリプトの一例を示す図である。
【図9】図6に示すHTML文書によって、ハンディターミナルの液晶ディスプレイに表示される表示画面の一例を示す図である。
【図10】ハンディターミナルの運用時に行われる処理を示す図である。
【図11】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図12】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図13】図8及び図9に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態に係る光学的情報読取装置について、図面に基づいて具体的に説明する。
【0019】
[システム構成]
図1は、本発明の実施の形態に係るハンディターミナル100を有するシステムのシステム構成例を示す図である。なお、本実施形態では、光学的情報読取装置の一例としてハンディターミナル100を採用している。また、本実施形態では、バーコードスキャナ機能を有するハンディターミナル100を子機とし、ハンディターミナル100でスキャンされたバーコードのデータが送られるサーバ200を親機とし、サーバ200で商品の在庫管理(発注管理)を行う在庫管理システムの例を示しているが、その他、入出庫の管理、検品・ピッキング管理など、各種目的に応じたハンディターミナルシステムを構築することができる。
【0020】
図1に示す在庫管理システムは、ハンディターミナル100とサーバ200を有しており、ハンディターミナル100とサーバ200とは、アクセスポイント(図中の“AP”で示す)400又は置き台(いわゆるクレードル)500を介して、それぞれ無線又は有線により通信可能に接続される。なお、図1に示すようなネットワーク接続では、例えばイーサネット(登録商標)によるTCP/IPプロトコルなどの通信プロトコルを採用することができる。また、アクセスポイント400を介した無線接続の通信方式については、例えばIEEE802.11bの方式のみならず、IEEE802.11gやブルートゥースや赤外線通信方式など、各種通信方式を採用することができる。また、図1では特に図示していないが、ルータやハブを介したネットワーク接続を構築することもできる。
【0021】
ハンディターミナル100は、商用電源や通信ネットワークに常には接続されていない、いわゆるコードレスのハンディターミナルであって、工場や倉庫における商品やその包装箱等に付されているバーコードや2次元コード等の情報コードを読み取る目的で使用される。また、ユーザは、ハンディターミナル100を把持して、例えば筐体の背面に設けられた読取窓(図示せず)を情報コードに対向させて、例えば筐体の側面に設けられたトリガキー100aを押すことによって、その情報コードを読み取る。また、コードレスのハンディターミナル100には充電池(図示せず)が内蔵されており、その電池からの電力供給を受けて、ハンディターミナル100単独で、情報コードの読取処理や商品の検索処理を実行することができるようになっている。
【0022】
また、ハンディターミナル100は、いわゆるリッチクライアント方式(或いはファットクライアント方式)によって、端末自体がプログラム実行機能を有しており、サーバ200と通信が確立されていない状態でも、例えば情報コードの読取処理や商品の検索処理などの各種処理を行うことができる(オフライン操作が可能となっている)。また、ハンディターミナル100の表面には、各種処理結果や通信結果が表示される液晶ディスプレイ100bや、ユーザが液晶ディスプレイ100bを見ながら各種操作を行う操作キー100cが設けられている。
【0023】
一方、サーバ200は、ハンディターミナル100に対してHTML文書やXHTML文書、XML文書を提供するWEBサーバであって、例えば汎用コンピュータやメインフレーム等を利用することができる。図1では、モニタ付属のサーバを図示しているが、モニタが接続されないサーバであってもよいし、モニタに加えて入出力デバイスが接続されるサーバであってもよい。アクセスポイント400は、データ転送の中継を行う機器であって、無線と無線、或いは、無線と有線の橋渡しを行う。図1では、無線と有線の橋渡しを行っている。なお、アクセスポイント400には、単純にデータ転送の中継を行うのみのブリッジタイプのものと、ルーティング機能やNAT機能を有するルータタイプのものがあるが、本発明を適用するにあたっては何れのタイプのものであってもよい。置き台500は、ハンディターミナル100を載置することによって、ハンディターミナル100とサーバ200との有線通信を確立するための置き台である。置き台500は、図示しない商用電源に接続されており、ハンディターミナル100が載置されると、ハンディターミナル100に内蔵の充電池が充電されるようになっている。また、置き台500は、サーバ200が接続されているLANやWANなどのネットワークと接続するための通信ポートを備えており、この通信ポートを介して、ハンディターミナル100とサーバ200とが通信可能になる。このように、置き台500は、ハンディターミナル100に内蔵(又は装着)される充電地を充電する機能と、ハンディターミナル100及びサーバ200と通信する機能とを有している。なお、図1では、ハンディターミナル100と置き台500とはシリアル通信を行い、置き台500とサーバ200とはイーサ・パケットデータにより通信するが、例えばハンディターミナル自体にデータ変換機能をもたせることによって、ハンディターミナル100とサーバ200とが直接イーサ・パケットデータをやり取りすることも可能である。
【0024】
図1に示すシステムでは、ハンディターミナル100、サーバ200、アクセスポイント400、置き台500に加えて、プログラム作成装置300もネットワークに接続可能となっている。プログラム作成装置300は、汎用のパーソナルコンピュータに、ハンディターミナル100上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムを作成するためのプログラムがインストールされたものである。プログラム作成装置300上で作成されたアプリケーションプログラムは、例えば操作キー100cの操作に基づく作業の流れや、液晶ディスプレイ100bに表示される表示内容などが規定されており、ハンディターミナル100に転送される。詳細は後述するが、プログラム作成装置300は特定のプログラム言語によらず、モニタ300a上でGUIを通じてアプリケーションプログラムを作成することができるので、ユーザは感覚的に所望のアプリケーションの振る舞いを定義することができる。もちろん、ユーザはプログラムエディタを使用して、C言語やスクリプト言語によりプログラムを直接記述して、アプリケーションプログラムを作成することもできる。
【0025】
また、プログラム作成装置300は、ハンディターミナル100上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムだけでなく、ハンディターミナル100が通信可能に接続されるサーバ200上で動作する応用プログラムの振る舞いを定義することもできる。サーバ200上で動作するプログラムは、通信ライブラリなどが含まれ、基本的にユーザによって編集されない基本プログラムと、ユーザがサーバ200に所望の動作を行わせるために編集される応用プログラムと、から構成され、プログラム作成装置300上で作成されるのは後者の応用プログラムである。基本プログラムと応用プログラムは独立したプログラムになっており、両者の間は、共有メモリ、メールスロット、パイプ、ソケット通信などの手段を用いて通信が行われる。これにより、ユーザがプログラム作成装置300で作成した応用プログラムにバグがあり、動作が停止してしまった場合であっても、基本プログラムの動作は継続可能であるため、システムを維持することができる。
【0026】
[機能構成]
図2は、図1に示すシステムのハードウェア的な機能構成例を示す図である。なお、図2では、アクセスポイント400や置き台500は省略している。
【0027】
図2において、ハンディターミナル100は、制御部101と、受光部102と、復号部103と、表示部104と、操作部105と、通信部106と、実行部107と、識別部108と、検索部109と、記憶部110と、を有している。制御部101は、CPUやROM(フラッシュROM等の読み書き可能な不揮発性のROMを含む),RAMなどから構成され、内部バスを介して上述したハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ROMに記憶されているプログラムに従って各種ソフトウェアの機能を実現する。また、SRAM等の揮発性メモリで構成されたRAMは、プログラムが実行される際にロードモジュールが展開され、プログラムの実行時に発生する一時的なデータを記憶するワーキングエリアとして機能する。なお、詳細は後述する復号部103、実行部107、識別部108、検索部109は、制御部101に含まれるCPUの一機能としてソフトウェア的に実現することもできるし、制御部101に含まれるCPUとは異なるCPU(専用のプロセッサ)の機能として実現することもできる。
【0028】
受光部102は、CCDやフォトダイオード等の受光素子を有しており、商品に付されたバーコードに対してLED等の光を出射して、そのバーコードからの反射光を受光して、それを光電変換して得られる受光信号を生成する。受光部102において、受光信号はコンデンサ等で直流成分が排除され、増幅回路を介してゲイン値に応じて増幅され、A/D変換によってデジタル信号に変換された後、復号部103へ入力される。なお、本実施形態では、LED等の光を用いて1次元バーコードを読み取る例について説明するが、例えばCMOSやCCDなどのイメージセンサを用いてQRコードなどの2次元コードを読み取るような受光部102としてもよい。この場合、受光部102は、2次元コードからの反射光をイメージセンサで受光する。
【0029】
復号部103は、受光部102から取得したデジタル信号(受光信号)のデコード処理を行う。より具体的には、復号部103は、受光信号を微分処理することによって、受光信号のエッジ部分を抽出する。そして、バンドパスフィルタ等で特定の周波数帯域に存在する信号のみを取り出し、所定の閾値より大きい信号をオンに、所定の閾値より小さい信号をオフとするパルス信号を生成する。その後、そのパルス信号の内容から、バーコードの開始点や終了点を示す情報を読み取ったり、パリティ情報を読み取ったり、実体的なバーコード情報を読み取ったりして、制御部101のコマンドに応じてデコード処理を行う。このように、復号部103は、受光信号に基づいて、読取対象に含まれる情報コードを復号する。
【0030】
表示部104は、上述した液晶ディスプレイ100bが含まれ、制御部101からの表示制御コマンドに基づいて、ユーザが在庫管理作業を行うための各種画面が表示される。表示部104に表示される表示内容は、プログラム作成装置300上で作成され、ハンディターミナル100に転送されたアプリケーションプログラムによって規定されている。操作部105は、ハーディターミナル100に対して各種入力操作を行うためのものであって、上述したトリガキー100aや操作キー100cなどが含まれる。ユーザがトリガキー100aを押したことを契機として、制御部101は操作部105からその操作信号を受信し、受光部102に対し、復号部103を介して或いは直接読取コマンドを送信する。読取コマンドを受信した受光部102は、バーコードに対してLED等の光を出射して、受光信号を生成する。そして、上述したように、制御部101は復号部103に対して復号コマンドを送信し、デコード処理を行う。
【0031】
通信部106は、外部の通信ネットワークと通信可能に接続されており、制御部101からの通信コマンドに基づいて、上述したように、アクセスポイント400と無線通信を行ったり、置き台500とシリアル通信を行ったりする。なお、制御部101は、TCP/IP変換を実行する機能を実現するためのプログラムを有している。
【0032】
実行部107は、サーバ200から取得したHTML文書の字句解析を行うとともに、そのHTML文書に含まれたJavaScript等のスクリプトをバイトコード化して実行する機能を有している。具体的には、ハンディターミナル100には、サーバ200から送られてきたHTML文書によって規定されるウェブページを閲覧するためのウェブブラウザアプリ111がインストールされており、このウェブブラウザアプリ111はフラッシュROM等からなる記憶部110に記憶されている。ウェブブラウザアプリ111のインストールによって、ハンディターミナル100はサーバ200との関係で、ウェブクライアントとして機能する。制御部101が、ウェブブラウザアプリ111を記憶部110からRAMにロードして実行することによって、ソフトウェア的に実行部107が生成される。なお、本実施形態における実行部107は、スクリプトのみをバイトコード化して実行する機能を有するようにしているが、例えば、スクリプトだけでなくHTML文書も併せてバイトコード化して、実行する機能を有するようにしてもよい。
【0033】
制御部101は、ウェブブラウザアプリ111を実行し、TCP/IPプロトコルに従って、通信部106を介してサーバ200にHTML文書の取得要求を送信し、その応答として、サーバ200から送信されたHTML文書を、通信部106を介して受信し、実行部107に渡す。この取得要求を送信するタイミングは、ハンディターミナル100の電源投入時、液晶ディスプレイ100b上で、ユーザが操作キー100cを用いて所定のハイパーリンクを選択した時または所定のボタンをクリックした時、或いは、ログデータを送信する時などである。
【0034】
実行部107は、制御部101から取得したHTML文書からDOM(Document
Object Model)を生成する(パースを行う)。DOMは木構造からなり、HTML文書の内部情報を操作するためのAPIである。なお、一般的なHTML文書は、クローズタグの省略等がされている場合があるため、これを補完する等の補正処理を行った上でDOMが生成される。そして、生成されたDOMに基づいて、HTML文書の記述を解析し実行する(字句解析を行う)。このとき、HTML文書にスクリプトが記述されている場合、或いは、そのHTML文書から呼び出されるスクリプトファイルが存在する場合には、そのスクリプトをバイトコード化して実行する。具体的には、スクリプトの内容にしたがって、DOMを変更したり、制御部101及び通信部106を介してサーバ200と通信したりする。制御部101は、実行部107の実行結果を受け取って、HTML文書をレンダリングし、テキストや画像を表示部104に送って液晶ディスプレイ100bに表示させる。
【0035】
なお、制御部101,通信部106,実行部107は、JavaScriptを利用してサーバ200と非同期通信を行って、サーバ200との間でXMLデータのやり取りを行うAjax(Asynchronous JavaScript+XML)による通信を行うことができる。これにより、ハンディターミナル100は、サーバ200と非同期通信を行って、テキストデータや画像データを取得し、液晶ディスプレイ100bの表示画面の一部分を更新させたり、ログデータをサーバ200に非同期で送り続けたりすることができる。
【0036】
識別部108は、サーバ200から取得したスクリプトファイルがバイトコードに変換されているか否かを識別する機能を有しており、制御部101は、識別部108の識別結果に基づいて、サーバ200から取得したスクリプトファイルがバイトコードに変換されていれば、実行部107にバイトコード化は不要である旨の指示を出し、サーバ200から取得したスクリプトファイルがバイトコードに変換されていなければ、実行部107にバイトコード化は必要である旨の指示を出す。このように、識別部108は、通信部106を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する機能を有している。
【0037】
検索部109は、復号部103によって復号されたバーコードに対応付けられた商品名称を検索する機能を有する。具体的には、記憶部110は、バーコードと商品名称とが対応付けられたテーブルが記憶するテーブル記憶部112を有しており、検索部109は、このテーブルを参照しつつ、バーコードと対応付けられた商品名を検索する。すなわち、検索部109は、このテーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する。そして、検索結果は制御部101に送られ、表示部104を介して液晶ディスプレイ100bにその商品名が表示される。
【0038】
記憶部110は、上述したように、ウェブブラウザアプリ111を記憶するとともに、テーブル記憶部112を有している。加えて、コードデータ記憶部113を有している。コードデータ記憶部113は、制御部101が通信部106を介してサーバ200から取得し、バイトコード化されたスクリプトファイルを、第1のコードデータとして記憶しておくためのものである。或いは、SDカードなどからWEBブラウザの起動前に組み込まれ、バイトコード化されたスクリプトファイルを、第1のコードデータとして記憶しておくためのものである。特に、この第1のコードデータは、少なくとも受光部102の動作と検索部109の動作を規定するスクリプトが実行部107において実行可能な形式へ変換された(バイトコード化された)コードデータである。サーバ200から、ユーザによって作成されたHTML文書に関連付けられたスクリプトが実行可能な形式へ変換されたコードデータを第2のコードデータとして取得し、実行部107において第2のコードデータが実行される際に、第1のコードデータが参照される。つまり、実行部107において、第1のコードデータと第2のコードデータが合成される処理が行われる。
【0039】
一方で、サーバ200は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行うCPU201と、起動プログラムや初期化プログラム等が格納されたROM202と、CPU201が各種プログラムを実行する際のワークエリアとして機能するRAM203と、外部の通信ネットワークと通信可能に接続される通信部204と、表示部205及び入力部206と、補助記憶手段として機能するHDD(Hard Disk Drive)207とを有しており、これらの間の通信は、データバスやアドレスバスなどのバスを介して行われる。なお、モニタ等の表示部205やマウスやキーボード等の入力部206は、省略することもできる。
【0040】
サーバ200のHDD206には、各種アプリケーションを実行するための機能や、表示部205又はハンディターミナル100の液晶ディスプレイ100bにおいて、入力フォームや各種ボタン等のGUIを利用するための機能などを提供するとともに、サーバ200全体を統合的に管理するOS(Operating System)がインストールされている(図示せず)。また、OS上で実行されるアプリケーション(アプリ)として、ハンディターミナル100のウェブブラウザアプリ111からの要求に応じて、HTML文書やスクリプト、画像などの情報をハンディターミナル100に送信するウェブアプリ2071がインストールされている。ウェブアプリ2071のインストールによって、サーバ200はウェブサーバとして機能し得る。各アプリケーションは、アプリケーションプログラムがHDD207からRAM203にロード(展開)され、各アプリケーションプログラムに基づきCPU201によって実行される。
【0041】
また、サーバ200のHDD207は、在庫管理の対象となる商品に関する情報(商品名や商品数)を登録するための商品DB2072と、ハンディターミナル100に送信するHTML文書やスクリプト、画像などの情報が格納される文書画像DB2073を有している。サーバ200のCPU201は、TCP/IPプロトコルにしたがって、HTTPによる命令やHTML文書の送受信を行う。そして、ハンディターミナル100からの要求に応じて、HDD207に記憶されているHTML文書や画像の中から要求に対応するHTML文書を読み出し、ハンディターミナル100に返送する。また、ハンディターミナル100からの要求に応じて、商品DB2072からデータを取得してハンディターミナル100に送ったり、商品DB2072にデータを登録したりする。
【0042】
プログラム作成装置300は、CPUやROM,RAMなどから構成され、ハードウェア各部の制御を行うための制御部301と、補助記憶手段として機能する記憶部302と、LANポートなど外部の通信ネットワークと通信可能に接続される通信部303と、モニタ300a等の表示部304およびマウスやキーボード等の操作部305とを有している。
【0043】
特に、プログラム作成装置300は、モニタ300a上でGUIを通じて記述されたスクリプトをバイトコード化する変換部306を有している。すなわち、変換部306は、所定のHTML文書に関連付けられたスクリプトがハンディターミナル100上で実行可能な形式へ変換されたバイトコードを出力する機能を有している。制御部301は、変換部306によって出力されるバイトコードを受信し、通信部303を介してハンディターミナル100やサーバ200に送信する。
【0044】
[処理の流れ]
図3は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図3は、プログラム作成装置300においてバイトコードが出力されるまでの処理を示している。
【0045】
図3に示すように、まず、ユーザはプログラム作成装置300を用いて、ハンディターミナル100の液晶ディスプレイ100bに表示される表示内容や動きを規定するための作業を行う。図4は、プログラム作成装置300のモニタ300aに表示される画面例を示す。ユーザは、操作部305を操作することによって、ツールボックス601をクリックし、テキストボックスやラジオボタン、コンボボックスやリストボックスなど、所望の部品を選択して、作業エリア600にドラッグ&ドロップする。これにより、ハンディターミナル100の液晶ディスプレイ100bに表示されるウェブページの表示内容や動き(例えば、コンボボックスをクリックするとプルダウンで選択項目のリストが一覧表示される等の動き)を規定することができる。このようなドラッグ&ドロップを複数回繰り返して、ハンディターミナル100の液晶ディスプレイ100bに表示されるウェブページを作成する。図4では、担当者ID入力用の画面と品番/数量入力用の画面を作成している過程の様子を示しており、アプリケーションエクスプローラの表示エリア602に、担当者ID入力(用のページ)603と、品番/数量入力(用のページ)604が表示されている。
【0046】
ユーザは、GUIを通じてドラッグ&ドロップによるウェブページの作成が終了すると、ハンディターミナル100上で動作するアプリケーションとして振る舞うための(HTML文書および)スクリプトを生成する(ステップS1)。具体的には、スクリプト生成ボタン605をクリックすることによって、ユーザが作成したウェブページのスクリプトが自動生成される。作成されたスクリプトは、アウトプットウィンドウ606に自動的に表示される。また、アウトプットウィンドウ606には、タグの切り替えにより、例えばログデータとして「App.html,App.jsを作成しました。」といったテキストが表示される。このように、プログラム作成装置300の制御部301は、操作部305の操作信号に基づいてHTML文書やスクリプトを自動生成する機能を有している。
【0047】
HTML文書やスクリプトの生成が終了すると、ユーザは、コンパイルボタン607をクリックする。そうすると、ステップS1で生成されたスクリプトがバイトコード化される(ステップS2)。具体的には、制御部301は、ステップS1で生成し、記憶部301に記憶しておいたスクリプトを読み出して、変換部306(図2)に転送する。そして、変換部306は、そのスクリプトをコンパイルする。なお、必要に応じてリンクも行う。これにより、例えば「.jsb」の拡張子を有し、バイトコード化されたファイルが生成され、制御部301を介して記憶部302に記憶される。
【0048】
スクリプトのバイトコード化が完了すると、バイトコード化されたファイルに識別子が付与される(ステップS3)。この識別子としては、ユーザが所望のIDを付与することも可能であるが、本実施形態では、プログラム作成装置300において、バイトコード化されたファイル名(例えば「user.jsb」)から拡張子を除いた名称(例えば「user」)が自動的に付与されるようになっている。なお、シミュレーションボタン608をクリックすることにより、バイトコード化されたスクリプトが正常に動作するか否かを確かめることができる。
【0049】
最後に、サーバ200とプログラム作成装置300を通信可能に接続した状態で、ユーザが送信ボタン609をクリックすると、バイトコード化されたスクリプトがサーバ200へ転送され、出力される(ステップS4)。具体的には、制御部301は、操作部305からの操作信号に基づいて、記憶部302からバイトコード化されたスクリプトを読み出して、通信部303を介してサーバ200に送信する。これを受信したサーバ200は、文書画像DB2073に記憶しておき、上述したように、ハンディターミナル100から取得要求があったときにハンディターミナル100に対して送信する。
【0050】
また、本実施形態では、バーコード読取機能や端末内検索機能などが記述され、かつ、バイトコード化されたスクリプトが、予めハンディターミナル100のコードデータ記憶部113に記憶されている。このスクリプトは、例えばプログラム作成装置300にインストールされたプログラム作成エディタを使用してスクリプトを記述し、スクリプトコンパイルを行うことによって作成する。そして、ハンディターミナル100とプログラム作成装置300を通信可能に接続した状態で、ユーザは操作部305を操作することによってバイトコード化されたスクリプトがハンディターミナル100に転送される。このように、本実施形態では、ハンディターミナル100に予め記憶しておくスクリプトは、図4に示す画面を表示するソフトウェアとは別のソフトウェアによって作成されるようにしている。これにより、ハンディターミナル100に予め記憶しておくスクリプトを、ユーザが誤って編集してしまい、ハンディターミナル100が誤動作してしまうのを防ぐことができる。なお、もちろん、このスクリプトを図4に示す画面を表示するソフトウェア上で作成し、バイトコード化し、出力するようにしても構わない。また、SDカードなどから予めインストールして(組み込んで)おいても構わない。要は、第1のコードデータとして予めハンディターミナル100のコードデータ記憶部に記憶されるスクリプトは、ユーザが簡単には編集できないように構成されているため、ユーザが誤って編集してしまうのを防ぐことが可能となっている。
【0051】
図5は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図5は、ハンディターミナル100の運用開始前に行われる準備処理を示している。
【0052】
図5に示すように、まずはサーバ200へのログインが行われる(ステップS11)。具体的には、例えばユーザがハンディターミナル100の電源を投入すると、制御部101は、ROMに記憶された初期化プログラム等(ハンディターミナル100の初期設定)に従って、通信部106を介して予め定められた手順でサーバ200にログイン要求を行う。例えば、ハンディターミナル100の端末IDやシリアル番号などをサーバ200に対して通知する。サーバ200は、このログイン要求に対し、MACアドレスを用いた端末認証を行ったり、ユーザにパスワードの入力を求めたりして、所定のログイン処理を行う。
【0053】
次に、コンテンツのダウンロードを行う(ステップS12)。具体的には、制御部101は、ウェブブラウザアプリ111を実行し、ROMに記憶された運用開始前準備プログラムに従って文書や画像の取得要求をし、所定のHTML文書やバイトコード化されたスクリプト(バイトコードデータ)をダウンロードする。図6は、サーバ200からダウンロードされるHTML文書の一例(一部のみを示す概要)を示し、図7は、サーバ200からダウンロードされるバイトコード化されたスクリプトの一例(一部のみを示す概要)を示している。図8は、ハンディターミナル100のコードデータ記憶部113に予め記憶され、バイトコード化されているスクリプトの一例(一部のみを示す概要)を示している。なお、図7及び図8では、説明の便宜上、容易に読解できるスクリプトを示しているが、一般には、バイトコード化されたスクリプトの容易に読解できないコード(バイトコード)になっている。また、ダウンロードするコンテンツがZIP圧縮されている場合には、制御部101において解凍(展開)処理が行われる。
【0054】
次に、字句解析を行う(ステップS13)。具体的には、制御部101は、実行部107にHTML文書(図6)を転送し、実行部107は、HTML文書からDOMを生成し、そのDOMに基づいてHTML文書の記述を解析して実行する。本実施形態では、図6に示すHTML文書に関連付けられた図7に示すスクリプトは、プログラム作成装置300において既にバイトコード化されているため、制御部101から実行部107に転送されず、その結果、実行部107おいてバイトコード化の処理も行われない。これにより、バイトコード化に必要な処理時間を省くことができる。
【0055】
最後に、制御部101は、実行部107からHTML文書の字句解析の実行結果を受け取って、RAMへの展開を行う(ステップS14)。また、バイトコード化されている図7に示すスクリプトについては、(ステップS13をスキップして)そのままRAMへの展開を行う。このように、制御部101は、RAM上において、図6に示すHTML文書の字句解析結果と、バイトコード化されている図7に示すスクリプトとを展開し、実行できる状態にする。そして、制御部101は、図6に示すHTML文書の字句解析結果に基づいて、HTML文書をレンダリングし、テキストや画像を表示部104に送って液晶ディスプレイ100bに表示させる。
【0056】
一方、ハンディターミナル100のコードデータ記憶部113には、例えば図8に示すような、既にバイトコード化されているライブラリ(スクリプト)が記憶されている。制御部101は、RAMに展開された図7に示すスクリプトを実行する際に、コードデータ記憶部113に記憶されている図8に示すスクリプトを参照しつつ(例えばRAMに展開して)、実行する。なお、図7に示すスクリプトは、上述したように「user」という識別子が付与され、ユーザ特有の画面や動作(表示画面や画面遷移など)を規定するための記述であり、図8に示すスクリプトは、ハンディターミナル100特有の動作(バーコード読取や商品検索)を規定するための記述である。そして、いずれかのスクリプトだけではハンディターミナル100を正常に動作させることはできず、識別子「user」で特定されるスクリプト(図7)と、ハンディターミナル100特有の動作を規定するために内蔵された(予めハンディターミナル100に記憶された)スクリプト(図8)とを制御部101が合成(マージ)することによって初めて、ユーザ所望のWEBブラウザ機能搭載のハンディターミナル100を正常に動作させることができる。また、ユーザが編集可能な図7に示すスクリプトについては、制御部101がサーバ200から取得するようなシステムとすることによって、複数台のハンディターミナル100がアクセスしてきた場合であっても、(予めバイトコード化された上でサーバ200に格納されているため)速やかに図7に示すスクリプトを提供することができ、ひいてはハンディターミナル100上での動作準備が完了するまでの時間(すなわち、制御部101によって図7や図8に示すスクリプトが実行され、ユーザからのトリガ入力待ちの状態になるまでの時間)を減らすことができる。
【0057】
図9は、図6に示すHTML文書によって、ハンディターミナル100の液晶ディスプレイ100bに表示される表示画面の一例(あくまで概要を示すイメージ図である)を示している。図9に示すように、液晶ディスプレイ100bには、テキストボックス1(の表示エリア801)やテキストボックス2(の表示エリア802)が表示されている。これは、HTML文書に、例えば図6に示すコード701やコード702のような記述があることによって、表示されることになる。図7に示すスクリプトには、例えば「TextBox1.onFocusIn=BarcodeEnable();」といった一文703が記述され、これにより、液晶ディスプレイ100b上でカーソルがテキストボックス1を選択したとき、バーコード読取が有効状態となる。すなわち、図8に示す関数706「function BarcodeEnable()」が呼び出され、トリガキー100aが押されるのを待機する状態となる。また、図7に示すスクリプトには、例えば「TextBox1.onEditEnd=MasterSearch();」といった一文704が記述され、これにより、バーコード読取が完了してEditEndが発生した時点で、図8に示す関数705が呼び出され、自動的に端末内検索が行われる。
【0058】
次に、このような関数705や関数706によって実現される、ハンディターミナル100の運用に関する処理の流れを説明する。図10は、図1に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図10は、ハンディターミナル100の運用時に行われる処理を示している。また、図11〜図13は、図8及び図9に示すスクリプトに基づいて、ハンディターミナル100の液晶ディスプレイ100bに表示される表示画面が遷移する様子を示している。
【0059】
図10に示すように、まず、バーコード読取が行われる(ステップS21)。より具体的には、制御部101は、トリガキー100aが押されたことを契機として、受光部102に対して読取コマンドを送信することによって、バーコード読取を行って、その読取結果を記憶部110に記憶する。図7及び図8を用いて説明すれば、制御部101は、RAMに展開され、バイトコード化されているスクリプトを実行し、上述したようにバーコード読取を有効状態とし、トリガキー100aが押されて操作部104から操作信号を受信したことを契機として、受光部102を介してバーコード読取を行い、復号部103を介して復号を行い、その結果であるバーコード読取結果をテキストボックス1の表示エリア801に表示する。例えば図11に示すように、テキストボックス1の表示エリア801に、バーコード読取結果である「ABC12345678」などの情報コードが表示される。
【0060】
次に、端末内検索が行われる(ステップS22)。具体的には、制御部101は、ステップS21において記憶部110に記憶されたバーコード読取結果を読み出して、検索部109に渡す。検索部109は、テーブル記憶部112に記憶された、情報コードと読取対象の名称(商品名)とが対応付けられたテーブルを参照して、取得したバーコード読取結果が何の商品名であるかを識別する。図7及び図8を用いて説明すれば、制御部101は、RAMに展開され、バイトコード化されているスクリプトを実行し、上述したように自動的に端末内検索を行い、その検索結果をテキストボックス2の表示エリア802に表示する。例えば図12に示すように、テキストボックス2の表示エリア802に、「ABC12345678」と対応付けられた商品名「バーコードハンディ」が表示される。以上のステップS21およびステップS22は、サーバ200と通信が確立されていない状態で行われる。一方、以降のステップS23〜ステップS25は、サーバ200との通信が前提となる処理である。ユーザは、このステップS21及びステップS22の処理がハンディターミナル100で行われることによって、サーバ200と通信不能の状況であっても、バーコードが付された商品は何であるかを認識することができる。そして、商品は何であるかに加えて、その商品の在庫数などを確認したい場合には、以降のステップS23〜ステップS25の処理が行われる。
【0061】
次に、問い合わせデータ送信の処理が行われる(ステップS23)。具体的には、制御部101は、ステップS22において識別された商品名「バーコード」をテーブル記憶部112から読み出して、通信部106を介してサーバ200へ送信する。このときの送信タイミングは、ハンディターミナル100が置き台500に載置されたときであってもよいし、無線通信であれば何らかの操作キー100cが押された時であってもよい。また、商品名の情報を送るときに、ログデータを送ってもよい。通信部204を介してこれを受信したサーバ200のCPU201は、商品DB2072を検索して、その在庫数を確認する。そして、CPU201は、例えば文書画像DB2073に記憶されている「バーコードハンディ」の画像データと、その在庫数を示すテキストデータとを、通信部204を介してハンディターミナル100に送信する。
【0062】
ハンディターミナル100の制御部101は、問い合わせ結果データを受信すると(ステップS24)、液晶ディスプレイ100b上でコンテンツの部分更新を行う(ステップS25)。例えば図13に示すように、液晶ディスプレイ100bの下方に、「バーコードハンディ」の画像が表示され、その画像の下に在庫数が表示される。図13では、在庫数は5個と表示されている。これにより、ユーザは「バーコードハンディ」の在庫数は5個であることを認識することができる。
【0063】
ここで、ステップS23〜ステップS25の処理について更に説明すると、ハンディターミナル100とサーバ200とはJavaScriptを利用して非同期通信を行っており、両者の間でXMLデータのやり取りを行う、いわゆるAjax(Asynchronous JavaScript+XML)の技術(XML HTTPRequest機能)を用いている。したがって、ハンディターミナル100は、サーバ200と同期通信を行ってHTML文書をリロード等する必要がなく、その結果、字句解析も不要となるので、その分、サーバ200との通信における応答性(応答速度)を高めることができる。
【0064】
[実施形態の効果]
以上説明したように、本実施形態に係るハンディターミナル100においては、運用開始前に準備処理が行われた後に(図5)、実際の運用処理が行われる(図10)。図5および図10では、ハンディターミナル100を使った発注作業の例を示しているが、実際には、発注作業の他にも、棚卸し作業や検品作業などが考えられる。棚卸し作業は、複数の商品に対してバーコード読取を行って、各商品の在庫数をサーバ200の商品DB2072に格納していく作業であり、検品作業は、パッケージの中に含まれる商品の種類や数が合っているかどうかをサーバ200の商品DB2072に予め規定されたデータと照合していく作業である(例えば、商品A×3、商品B×5を一纏まりのパッケージにしたい場合等)。したがって、図9,図11〜図13で示す表示画面の他にも、例えば数十パターンの表示画面が存在する。そうすると、発注作業を行う際に、図5および図10のフローチャートに示す情報処理が行われ、棚卸し作業を行う際にも図5および図10のフローチャートに示す情報処理が行われ、検品作業を行う際にも図5および図10のフローチャートに示す情報処理が行われることになるが、本実施形態に係るハンディターミナル100によれば、図5に示すステップS13やステップS14の処理において、スクリプトをバイトコード化する処理が不要であるため、その処理に時間が掛かってしまうことに起因したハンディターミナル100の応答性低下を防ぐことができる。その結果、ハンディターミナル100の利便性の低下を防ぐことができる。
【0065】
また、バーコード読取の機能を担う受光部102と、テーブル記憶部112を用いて端末内DBアクセス機能を担う検索部109との動作を規定するスクリプト(図8)が、実行可能な形式に変換された上で予めコードデータ記憶部112に記憶されている。そして、サーバ200からHTML文書(図6)やバイトコード化されたスクリプト(図7)を取得して実行する際に、コードデータ記憶部112に記憶されているスクリプトを参照しつつ実行する。このように、図7に示すスクリプトと図8に示すスクリプトが揃うことによって、実際の運用処理(図10)を行うことができる。
【0066】
また、実行部107がサーバ200から取得するHTML文書が、実行可能な形式へ変換されていることによって、HTML文書をバイトコード化する手間も省け、ハンディターミナル100の応答性向上に寄与することができる。
【符号の説明】
【0067】
100 ハンディターミナル
200 サーバ
300 プログラム作成装置
400 アクセスポイント
500 置き台
【特許請求の範囲】
【請求項1】
読取対象からの反射光を受光して、受光信号を生成する受光部と、
前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、
前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、
前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、
構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、
前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、
前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、
前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部を有し、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、前記通信部を介して前記サーバから取得し、前記コードデータ記憶部に記憶された前記第1のコードデータを参照しつつ、前記第2のコードデータを実行することを特徴とする光学的情報読取装置。
【請求項2】
表示画面と操作部を備え、ユーザが当該表示画面を視認しつつ当該操作部を操作することによって、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された前記第2のコードデータとが出力されるコードデータ出力装置が前記サーバに接続可能に構成され、
前記実行部は、前記コードデータ出力装置から前記サーバに対して出力された構造化文書および前記第2のコードデータを、前記通信部を介して取得することを特徴とする請求項1記載の光学的情報読取装置。
【請求項3】
前記通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備え、
前記実行部は、前記識別部の識別結果に基づいて、前記構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換することを特徴とする請求項1又は2記載の光学的情報読取装置。
【請求項4】
前記実行部が前記サーバから取得する構造化文書は、実行可能な形式へ変換されていることを特徴とする請求項1から3のいずれか記載の光学的情報読取装置。
【請求項5】
読取対象からの反射光を受光して、受光信号を生成する受光部と、前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部と、を備える光学的情報読取装置を用いた光学的情報読取方法であって、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、前記通信部を介して前記サーバから取得した後に、前記コードデータ記憶部に記憶された前記第1のコードデータを参照しつつ、前記第2のコードデータを実行することを特徴とする光学的情報読取方法。
【請求項1】
読取対象からの反射光を受光して、受光信号を生成する受光部と、
前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、
前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、
前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、
構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、
前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、
前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、
前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部を有し、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、前記通信部を介して前記サーバから取得し、前記コードデータ記憶部に記憶された前記第1のコードデータを参照しつつ、前記第2のコードデータを実行することを特徴とする光学的情報読取装置。
【請求項2】
表示画面と操作部を備え、ユーザが当該表示画面を視認しつつ当該操作部を操作することによって、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された前記第2のコードデータとが出力されるコードデータ出力装置が前記サーバに接続可能に構成され、
前記実行部は、前記コードデータ出力装置から前記サーバに対して出力された構造化文書および前記第2のコードデータを、前記通信部を介して取得することを特徴とする請求項1記載の光学的情報読取装置。
【請求項3】
前記通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備え、
前記実行部は、前記識別部の識別結果に基づいて、前記構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換することを特徴とする請求項1又は2記載の光学的情報読取装置。
【請求項4】
前記実行部が前記サーバから取得する構造化文書は、実行可能な形式へ変換されていることを特徴とする請求項1から3のいずれか記載の光学的情報読取装置。
【請求項5】
読取対象からの反射光を受光して、受光信号を生成する受光部と、前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第1のコードデータを予め記憶するコードデータ記憶部と、を備える光学的情報読取装置を用いた光学的情報読取方法であって、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第2のコードデータとを、前記通信部を介して前記サーバから取得した後に、前記コードデータ記憶部に記憶された前記第1のコードデータを参照しつつ、前記第2のコードデータを実行することを特徴とする光学的情報読取方法。
【図1】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図4】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図4】
【公開番号】特開2011−118702(P2011−118702A)
【公開日】平成23年6月16日(2011.6.16)
【国際特許分類】
【出願番号】特願2009−275872(P2009−275872)
【出願日】平成21年12月3日(2009.12.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
【公開日】平成23年6月16日(2011.6.16)
【国際特許分類】
【出願日】平成21年12月3日(2009.12.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
[ Back to top ]