(57)【要約】【課題】  ＷＥＢアプリケーション機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与する。【解決手段】  受光部と、復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを用いて、復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、通信部を介して取得した構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、表示部と、を備え、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第１のコードデータが予め記憶され、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第１のコードデータを参照しつつ、第２のコードデータを実行する。【選択図】          図３
2011118702.tif 000002
【特許請求の範囲】
【請求項１】
読取対象からの反射光を受光して、受光信号を生成する受光部と、
前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、
前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、
前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、
構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、
前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、
前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、
前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第１のコードデータを予め記憶するコードデータ記憶部を有し、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータとを、前記通信部を介して前記サーバから取得し、前記コードデータ記憶部に記憶された前記第１のコードデータを参照しつつ、前記第２のコードデータを実行することを特徴とする光学的情報読取装置。
【請求項２】
表示画面と操作部を備え、ユーザが当該表示画面を視認しつつ当該操作部を操作することによって、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された前記第２のコードデータとが出力されるコードデータ出力装置が前記サーバに接続可能に構成され、
前記実行部は、前記コードデータ出力装置から前記サーバに対して出力された構造化文書および前記第２のコードデータを、前記通信部を介して取得することを特徴とする請求項１記載の光学的情報読取装置。
【請求項３】
前記通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備え、
前記実行部は、前記識別部の識別結果に基づいて、前記構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換することを特徴とする請求項１又は２記載の光学的情報読取装置。
【請求項４】
前記実行部が前記サーバから取得する構造化文書は、実行可能な形式へ変換されていることを特徴とする請求項１から３のいずれか記載の光学的情報読取装置。
【請求項５】
読取対象からの反射光を受光して、受光信号を生成する受光部と、前記受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、前記情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、前記テーブルを用いて前記復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、前記通信部を介して取得した構造化文書を解析し、当該構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、前記実行部の実行結果に基づいて、前記構造化文書の内容を表示する表示部と、前記受光部の動作と前記検索部の動作を規定するスクリプトが実行可能な形式へ変換された第１のコードデータを予め記憶するコードデータ記憶部と、を備える光学的情報読取装置を用いた光学的情報読取方法であって、
前記実行部は、ユーザによって作成された、前記構造化文書と、当該構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータとを、前記通信部を介して前記サーバから取得した後に、前記コードデータ記憶部に記憶された前記第１のコードデータを参照しつつ、前記第２のコードデータを実行することを特徴とする光学的情報読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１次元コードや２次元コードなどの情報を光学的に読み取る光学的情報読取装置及び光学的情報読取方法に関する。
【背景技術】
【０００２】
従来から、倉庫において在庫管理データの収集や、店頭に陳列された商品データの収集、宅配システムの出荷・集荷データの入力等において、バーコードスキャナ機能を有するハンディターミナルが利用されている。ハンディターミナルは、特定の用途に応じて予めプログラミングされたアプリケーションを動作可能とするものであり、このプログラミング作業は、ハンディターミナルとは別に、テキストエディタやデバッグツールが充実し、メモリ資源の豊富なパーソナルコンピュータ上で行われる場合が多い。例えば、ハンディターミナルのアプリケーションを記述するソースプログラムは、Ｃ言語などの構造化プログラミング言語によって記述することができる。パーソナルコンピュータで作成されたソースプログラムは、デバッグおよびプログラム修正が繰り返された後、コンパイラによって実行形式のプログラムに変換され、有線又は無線ＬＡＮなどの通信ネットワークを介してコンピュータからハンディターミナルに転送される。ハンディターミナルは、転送されてきた実行形式のプログラムをフラッシュＲＯＭ等の不揮発性メモリに記憶するとともに、ユーザのキー入力操作に基づいて、これをＲＡＭ等の揮発性メモリに読み出して（ロードして）、アプリケーションを実行する。
【０００３】
ここで、上述したハンディターミナルの更なる高機能化を目的として、ハンディターミナル上でＷＥＢブラウザ（ＷＥＢアプリケーション）を実行可能にする技術がある。ＷＥＢブラウザは、ＨＴＭＬなどのハイパーテキスト記述言語を用いてドキュメントにハイパーリンク（他のドキュメントＵＲＩへの参照）を埋め込むことによって、ＷＥＢサーバ上にあるドキュメント同士を参照可能にするためのアプリケーションである。ハンディターミナル上でＷＥＢブラウザを実行することができれば、例えば、ＷＥＢサーバに対して在庫管理のログデータを逐次送信したり、ＷＥＢサーバ認証を利用してハンディターミナルに利用者制限機能を付加したり、必要に応じてＷＥＢサーバに在庫検索の要求データを送信し、ＷＥＢサーバから在庫検索の結果データを受信したりするなど、様々な高機能化を実現することができる。
【０００４】
例えば特許文献１に開示されたＰＯＳ（Ｐｏｉｎｔ Ｏｆ Ｓａｌｅｓ）端末には、ＰＯＳデバイスのデータ入出力機能を付加したＰＯＳ端末専用のＷＥＢブラウザソフトが組み込まれており、標準のＨＴＭＬ規約にしたがって制御可能となっている。具体的には、ＰＯＳ端末は、ＷＥＢブラウザを用いてサーバに対してＨＴＭＬデータを要求し、サーバに記憶されているＨＴＭＬファイルを取得し、ＨＴＭＬファイルの字句解析を行うことによって、ハンディターミナルのモニタにＨＴＭＬファイルの内容が表示される。
【０００５】
また、例えば特許文献２に開示された商品販売システムによれば、ＪａｖａＳｃｒｉｐｔを利用して、例えばユーザのオフライン操作でプルダウンメニューを表示するなど、動的なウェブページを実現することができるようになっている。具体的には、ユーザ端末は、ＪａｖａＳｃｒｉｐｔが埋め込まれたＨＴＭＬファイルをサーバから取得すると、自身のＷＥＢブラウザに組み込まれたインタープリタによって、ＪａｖａＳｃｒｉｐｔの記述部分をバイトコード化し（ＷＥＢブラウザが解釈可能なコードに変換し）、その後、そのバイトコード化されたＪａｖａＳｃｒｉｐｔを実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２５１６７４号公報
【特許文献２】特開２００６−１４６３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、ハンディターミナルのＷＥＢブラウザを通じて表示されるＷＥＢページ（メニュー画面など）は階層構造になっており、複数のページから構成される。ハンディターミナルが複数のＨＴＭＬファイル及び／又はＪａｖａＳｃｒｉｐｔファイルをサーバから順次取得して、ＷＥＢブラウザを通じてそれらを表示する際には、ＨＴＭＬファイル及び／又はＪａｖａＳｃｒｉｐｔファイルを取得するたびにＪａｖａＳｃｒｉｐｔの記述部分がバイトコード化される。特に、上述したプルダウンメニューの表示機能だけでなく、例えばバーコード読取機能や端末内ＤＢへのアクセス機能など、ハンディターミナル特有の機能がＪａｖａＳｃｒｉｐｔで記述されたＨＴＭＬファイル及び／又はＪａｖａＳｃｒｉｐｔファイルを取得した場合、ＪａｖａＳｃｒｉｐｔの記述量が多いことに起因して、バイトコード化に多くの時間（例えば数百ｍｓなど）が掛かってしまい、ハンディターミナルの応答性が低下してしまう。その結果、ユーザがストレスを感じ、ハンディターミナルの利便性の低下に繋がる。
【０００８】
この点、例えば上述した特許文献１にも開示されているように、ＪａｖａＳｃｒｉｐｔの記述部分がバイトコード化された後、バイトコード化されたＪａｖａＳｃｒｉｐｔとともにＨＴＭＬファイルを一つのＷＥＢページとしてキャッシュしておくことは可能である。これにより、キャッシュされたＨＴＭＬファイルやＪａｖａＳｃｒｉｐｔを再利用することによって、ＪａｖａＳｃｒｉｐｔの記述部分をバイトコード化する処理を省けるため、ハンディターミナルの応答性の低下を防ぐことができる。
【０００９】
しかしながら、一般のコンピュータと同様に、ハンディターミナルにもキャッシュ可能なＷＥＢページの数に制限があり、一定数のＷＥＢページがキャッシュされた後は、再びＷＥＢページをサーバから取得して、ＪａｖａＳｃｒｉｐｔの記述部分をバイトコード化する必要がある。例えば、バーコード読取を行った後、ハンディターミナル上で様々な作業を行うために複数のＷＥＢページを表示させてしまうと、一つ前の作業を行うためのＷＥＢページがキャッシュアウトしてしまう場合がある。例えば、発注作業をするためのＷＥＢページＡを表示させ、これをキャッシュインし、今度は棚卸し作業をするためのＷＥＢページＢを表示させ、これをキャッシュインし、更に今度は、検品作業をするためのＷＥＢページＣを表示させ、これをキャッシュインしたとする。ハンディターミナルに搭載されるメモリの関係上、例えばＷＥＢページのキャッシュ数は２ページであるとすると、最も直近にキャッシュインされたＷＥＢページＢとＷＥＢページＣがキャッシュされることになる。この場合、再びユーザがＷＥＢページＡを用いて発注作業をしようとすると、再びサーバからＷＥＢページＡを取得（キャッシュイン）して、ＪａｖａＳｃｒｉｐｔの記述部分をバイトコード化しなければならない。このように、単にＷＥＢページをキャッシュするだけでは、ハンディターミナルの応答性の低下を防ぐことは困難である。
【００１０】
本発明は、以上の点に鑑みてなされたものであり、その目的は、ＷＥＢブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することが可能な光学的情報読取装置および光学的情報読取方法を提供する。
【課題を解決するための手段】
【００１１】
本発明に係る光学的情報読取装置は、読取対象からの反射光を受光して、受光信号を生成する受光部と、受光信号に基づいて、読取対象に含まれる情報コードを復号する復号部と、情報コードと読取対象の名称とが対応付けられたテーブルを記憶するテーブル記憶部と、テーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する検索部と、構造化言語により記述された構造化文書を提供するサーバと通信可能な通信部と、通信部を介して取得した構造化文書を解析し、その構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換して実行する実行部と、実行部の実行結果に基づいて、構造化文書の内容を表示する表示部と、を備える光学的情報読取装置であって、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第１のコードデータを予め記憶するコードデータ記憶部を有し、実行部は、ユーザによって作成された、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータとを、通信部を介してサーバから取得し、コードデータ記憶部に記憶された第１のコードデータを参照しつつ、第２のコードデータを実行する。
【００１２】
このような構成によれば、光学的情報読取装置のコードデータ記憶部には、受光部の動作と検索部の動作を規定するスクリプトが実行可能な形式へ変換された第１のコードデータが記憶されているので、通信部を介してサーバから、構造化文書と、その構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータを取得したときに、スクリプトを実行可能な形式のコードデータへ変換する処理を行うことなく、第１のコードデータを参照しつつ第２のコードデータを実行する処理を行うことができる。したがって、光学的情報読取装置にＷＥＢブラウザを付加した場合であっても、応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。特に、受光部の動作と検索部の動作を規定するスクリプトの記述量が多い場合であっても、そのスクリプトは、実行可能な形式へ変換された第１のコードデータとして予めコードデータ記憶部に記憶されているので、新たにＷＥＢページがキャッシュインされるときであっても、そのスクリプトをサーバから受信する受信処理と、受信したスクリプトを実行可能な形式へ変換する処理が不要になる。その結果、応答性の低下を防ぐことができる。
【００１３】
また、本発明に係る光学的情報読取装置では、表示画面と操作部を備え、ユーザがその表示画面を視認しつつ操作部を操作することによって、構造化文書と、構造化文書に関連付けられたスクリプトが実行可能な形式へ変換された第２のコードデータとが出力されるコードデータ出力装置がサーバに接続可能に構成され、実行部は、コードデータ出力装置からサーバに対して出力された構造化文書および第２のコードデータを、通信部を介して取得するような構成としてもよい。
【００１４】
これにより、構造化文書に関連付けられたスクリプトを実行可能な形式の第２のコードデータへ変換する処理を、サーバではなく、コードデータ出力装置に行わせることができる（サーバにおいて、実行可能な形式の第２のコードデータへ変換する処理を行わなくてよい）。その結果、サーバは、コードデータ出力装置から出力された第２のコードデータを保持しておくだけでよい。そうすると、多数の光学的情報読取装置がサーバにアクセスしてきた場合であっても、サーバは第２のコードデータをスムーズに送信することができ、光学的情報読取装置の応答性の低下を防ぐことができる。
【００１５】
また、本発明に係る光学的情報読取装置では、通信部を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する識別部を備えるとともに、実行部は、識別部の識別結果に基づいて、構造化文書に関連付けられたスクリプトを実行可能な形式のコードデータへ変換する。これにより、光学的情報読取装置が実行可能な形式の第２のコードデータに変換されていないスクリプトを受信した場合であっても、識別部の識別結果を踏まえ、必要に応じて第２のコードデータに変換される。したがって、実行可能な形式のコードデータに変換されたスクリプトであっても、実行可能な形式のコードデータに変換されていないスクリプトであっても、受信可能な（エラーになることなく処理可能な）光学的情報読取装置を提供することができる。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、ＷＥＢブラウザ機能を付加する際に応答性が低下することを防ぎ、ひいては利便性の向上に寄与することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係るハンディターミナルを有するシステムのシステム構成例を示す図である。
【図２】図１に示すシステムのハードウェア的な機能構成例を示す図である。
【図３】図１に示すシステムにおける情報処理の流れを示すフローチャートである。
【図４】プログラム作成装置のモニタに表示される画面例を示す図である。
【図５】図１に示すシステムにおける情報処理の流れを示すフローチャートである。
【図６】サーバからダウンロードされるＨＴＭＬ文書の一例を示す図である。
【図７】サーバからダウンロードされるバイトコード化されたスクリプトの一例を示す図である。
【図８】ハンディターミナルのコードデータ記憶部に予め記憶され、バイトコード化されているスクリプトの一例を示す図である。
【図９】図６に示すＨＴＭＬ文書によって、ハンディターミナルの液晶ディスプレイに表示される表示画面の一例を示す図である。
【図１０】ハンディターミナルの運用時に行われる処理を示す図である。
【図１１】図８及び図９に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図１２】図８及び図９に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【図１３】図８及び図９に示すスクリプトに基づいて、ハンディターミナルの液晶ディスプレイに表示される表示画面が遷移する様子を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態に係る光学的情報読取装置について、図面に基づいて具体的に説明する。
【００１９】
［システム構成］
図１は、本発明の実施の形態に係るハンディターミナル１００を有するシステムのシステム構成例を示す図である。なお、本実施形態では、光学的情報読取装置の一例としてハンディターミナル１００を採用している。また、本実施形態では、バーコードスキャナ機能を有するハンディターミナル１００を子機とし、ハンディターミナル１００でスキャンされたバーコードのデータが送られるサーバ２００を親機とし、サーバ２００で商品の在庫管理（発注管理）を行う在庫管理システムの例を示しているが、その他、入出庫の管理、検品・ピッキング管理など、各種目的に応じたハンディターミナルシステムを構築することができる。
【００２０】
図１に示す在庫管理システムは、ハンディターミナル１００とサーバ２００を有しており、ハンディターミナル１００とサーバ２００とは、アクセスポイント（図中の“ＡＰ”で示す）４００又は置き台（いわゆるクレードル）５００を介して、それぞれ無線又は有線により通信可能に接続される。なお、図１に示すようなネットワーク接続では、例えばイーサネット（登録商標）によるＴＣＰ／ＩＰプロトコルなどの通信プロトコルを採用することができる。また、アクセスポイント４００を介した無線接続の通信方式については、例えばＩＥＥＥ８０２．１１ｂの方式のみならず、ＩＥＥＥ８０２．１１ｇやブルートゥースや赤外線通信方式など、各種通信方式を採用することができる。また、図１では特に図示していないが、ルータやハブを介したネットワーク接続を構築することもできる。
【００２１】
ハンディターミナル１００は、商用電源や通信ネットワークに常には接続されていない、いわゆるコードレスのハンディターミナルであって、工場や倉庫における商品やその包装箱等に付されているバーコードや２次元コード等の情報コードを読み取る目的で使用される。また、ユーザは、ハンディターミナル１００を把持して、例えば筐体の背面に設けられた読取窓（図示せず）を情報コードに対向させて、例えば筐体の側面に設けられたトリガキー１００ａを押すことによって、その情報コードを読み取る。また、コードレスのハンディターミナル１００には充電池（図示せず）が内蔵されており、その電池からの電力供給を受けて、ハンディターミナル１００単独で、情報コードの読取処理や商品の検索処理を実行することができるようになっている。
【００２２】
また、ハンディターミナル１００は、いわゆるリッチクライアント方式（或いはファットクライアント方式）によって、端末自体がプログラム実行機能を有しており、サーバ２００と通信が確立されていない状態でも、例えば情報コードの読取処理や商品の検索処理などの各種処理を行うことができる（オフライン操作が可能となっている）。また、ハンディターミナル１００の表面には、各種処理結果や通信結果が表示される液晶ディスプレイ１００ｂや、ユーザが液晶ディスプレイ１００ｂを見ながら各種操作を行う操作キー１００ｃが設けられている。
【００２３】
一方、サーバ２００は、ハンディターミナル１００に対してＨＴＭＬ文書やＸＨＴＭＬ文書、ＸＭＬ文書を提供するＷＥＢサーバであって、例えば汎用コンピュータやメインフレーム等を利用することができる。図１では、モニタ付属のサーバを図示しているが、モニタが接続されないサーバであってもよいし、モニタに加えて入出力デバイスが接続されるサーバであってもよい。アクセスポイント４００は、データ転送の中継を行う機器であって、無線と無線、或いは、無線と有線の橋渡しを行う。図１では、無線と有線の橋渡しを行っている。なお、アクセスポイント４００には、単純にデータ転送の中継を行うのみのブリッジタイプのものと、ルーティング機能やＮＡＴ機能を有するルータタイプのものがあるが、本発明を適用するにあたっては何れのタイプのものであってもよい。置き台５００は、ハンディターミナル１００を載置することによって、ハンディターミナル１００とサーバ２００との有線通信を確立するための置き台である。置き台５００は、図示しない商用電源に接続されており、ハンディターミナル１００が載置されると、ハンディターミナル１００に内蔵の充電池が充電されるようになっている。また、置き台５００は、サーバ２００が接続されているＬＡＮやＷＡＮなどのネットワークと接続するための通信ポートを備えており、この通信ポートを介して、ハンディターミナル１００とサーバ２００とが通信可能になる。このように、置き台５００は、ハンディターミナル１００に内蔵（又は装着）される充電地を充電する機能と、ハンディターミナル１００及びサーバ２００と通信する機能とを有している。なお、図１では、ハンディターミナル１００と置き台５００とはシリアル通信を行い、置き台５００とサーバ２００とはイーサ・パケットデータにより通信するが、例えばハンディターミナル自体にデータ変換機能をもたせることによって、ハンディターミナル１００とサーバ２００とが直接イーサ・パケットデータをやり取りすることも可能である。
【００２４】
図１に示すシステムでは、ハンディターミナル１００、サーバ２００、アクセスポイント４００、置き台５００に加えて、プログラム作成装置３００もネットワークに接続可能となっている。プログラム作成装置３００は、汎用のパーソナルコンピュータに、ハンディターミナル１００上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムを作成するためのプログラムがインストールされたものである。プログラム作成装置３００上で作成されたアプリケーションプログラムは、例えば操作キー１００ｃの操作に基づく作業の流れや、液晶ディスプレイ１００ｂに表示される表示内容などが規定されており、ハンディターミナル１００に転送される。詳細は後述するが、プログラム作成装置３００は特定のプログラム言語によらず、モニタ３００ａ上でＧＵＩを通じてアプリケーションプログラムを作成することができるので、ユーザは感覚的に所望のアプリケーションの振る舞いを定義することができる。もちろん、ユーザはプログラムエディタを使用して、Ｃ言語やスクリプト言語によりプログラムを直接記述して、アプリケーションプログラムを作成することもできる。
【００２５】
また、プログラム作成装置３００は、ハンディターミナル１００上で動作するアプリケーションの振る舞いを定義するアプリケーションプログラムだけでなく、ハンディターミナル１００が通信可能に接続されるサーバ２００上で動作する応用プログラムの振る舞いを定義することもできる。サーバ２００上で動作するプログラムは、通信ライブラリなどが含まれ、基本的にユーザによって編集されない基本プログラムと、ユーザがサーバ２００に所望の動作を行わせるために編集される応用プログラムと、から構成され、プログラム作成装置３００上で作成されるのは後者の応用プログラムである。基本プログラムと応用プログラムは独立したプログラムになっており、両者の間は、共有メモリ、メールスロット、パイプ、ソケット通信などの手段を用いて通信が行われる。これにより、ユーザがプログラム作成装置３００で作成した応用プログラムにバグがあり、動作が停止してしまった場合であっても、基本プログラムの動作は継続可能であるため、システムを維持することができる。
【００２６】
［機能構成］
図２は、図１に示すシステムのハードウェア的な機能構成例を示す図である。なお、図２では、アクセスポイント４００や置き台５００は省略している。
【００２７】
図２において、ハンディターミナル１００は、制御部１０１と、受光部１０２と、復号部１０３と、表示部１０４と、操作部１０５と、通信部１０６と、実行部１０７と、識別部１０８と、検索部１０９と、記憶部１１０と、を有している。制御部１０１は、ＣＰＵやＲＯＭ（フラッシュＲＯＭ等の読み書き可能な不揮発性のＲＯＭを含む），ＲＡＭなどから構成され、内部バスを介して上述したハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ＲＯＭに記憶されているプログラムに従って各種ソフトウェアの機能を実現する。また、ＳＲＡＭ等の揮発性メモリで構成されたＲＡＭは、プログラムが実行される際にロードモジュールが展開され、プログラムの実行時に発生する一時的なデータを記憶するワーキングエリアとして機能する。なお、詳細は後述する復号部１０３、実行部１０７、識別部１０８、検索部１０９は、制御部１０１に含まれるＣＰＵの一機能としてソフトウェア的に実現することもできるし、制御部１０１に含まれるＣＰＵとは異なるＣＰＵ（専用のプロセッサ）の機能として実現することもできる。
【００２８】
受光部１０２は、ＣＣＤやフォトダイオード等の受光素子を有しており、商品に付されたバーコードに対してＬＥＤ等の光を出射して、そのバーコードからの反射光を受光して、それを光電変換して得られる受光信号を生成する。受光部１０２において、受光信号はコンデンサ等で直流成分が排除され、増幅回路を介してゲイン値に応じて増幅され、Ａ／Ｄ変換によってデジタル信号に変換された後、復号部１０３へ入力される。なお、本実施形態では、ＬＥＤ等の光を用いて１次元バーコードを読み取る例について説明するが、例えばＣＭＯＳやＣＣＤなどのイメージセンサを用いてＱＲコードなどの２次元コードを読み取るような受光部１０２としてもよい。この場合、受光部１０２は、２次元コードからの反射光をイメージセンサで受光する。
【００２９】
復号部１０３は、受光部１０２から取得したデジタル信号（受光信号）のデコード処理を行う。より具体的には、復号部１０３は、受光信号を微分処理することによって、受光信号のエッジ部分を抽出する。そして、バンドパスフィルタ等で特定の周波数帯域に存在する信号のみを取り出し、所定の閾値より大きい信号をオンに、所定の閾値より小さい信号をオフとするパルス信号を生成する。その後、そのパルス信号の内容から、バーコードの開始点や終了点を示す情報を読み取ったり、パリティ情報を読み取ったり、実体的なバーコード情報を読み取ったりして、制御部１０１のコマンドに応じてデコード処理を行う。このように、復号部１０３は、受光信号に基づいて、読取対象に含まれる情報コードを復号する。
【００３０】
表示部１０４は、上述した液晶ディスプレイ１００ｂが含まれ、制御部１０１からの表示制御コマンドに基づいて、ユーザが在庫管理作業を行うための各種画面が表示される。表示部１０４に表示される表示内容は、プログラム作成装置３００上で作成され、ハンディターミナル１００に転送されたアプリケーションプログラムによって規定されている。操作部１０５は、ハーディターミナル１００に対して各種入力操作を行うためのものであって、上述したトリガキー１００ａや操作キー１００ｃなどが含まれる。ユーザがトリガキー１００ａを押したことを契機として、制御部１０１は操作部１０５からその操作信号を受信し、受光部１０２に対し、復号部１０３を介して或いは直接読取コマンドを送信する。読取コマンドを受信した受光部１０２は、バーコードに対してＬＥＤ等の光を出射して、受光信号を生成する。そして、上述したように、制御部１０１は復号部１０３に対して復号コマンドを送信し、デコード処理を行う。
【００３１】
通信部１０６は、外部の通信ネットワークと通信可能に接続されており、制御部１０１からの通信コマンドに基づいて、上述したように、アクセスポイント４００と無線通信を行ったり、置き台５００とシリアル通信を行ったりする。なお、制御部１０１は、ＴＣＰ／ＩＰ変換を実行する機能を実現するためのプログラムを有している。
【００３２】
実行部１０７は、サーバ２００から取得したＨＴＭＬ文書の字句解析を行うとともに、そのＨＴＭＬ文書に含まれたＪａｖａＳｃｒｉｐｔ等のスクリプトをバイトコード化して実行する機能を有している。具体的には、ハンディターミナル１００には、サーバ２００から送られてきたＨＴＭＬ文書によって規定されるウェブページを閲覧するためのウェブブラウザアプリ１１１がインストールされており、このウェブブラウザアプリ１１１はフラッシュＲＯＭ等からなる記憶部１１０に記憶されている。ウェブブラウザアプリ１１１のインストールによって、ハンディターミナル１００はサーバ２００との関係で、ウェブクライアントとして機能する。制御部１０１が、ウェブブラウザアプリ１１１を記憶部１１０からＲＡＭにロードして実行することによって、ソフトウェア的に実行部１０７が生成される。なお、本実施形態における実行部１０７は、スクリプトのみをバイトコード化して実行する機能を有するようにしているが、例えば、スクリプトだけでなくＨＴＭＬ文書も併せてバイトコード化して、実行する機能を有するようにしてもよい。
【００３３】
制御部１０１は、ウェブブラウザアプリ１１１を実行し、ＴＣＰ／ＩＰプロトコルに従って、通信部１０６を介してサーバ２００にＨＴＭＬ文書の取得要求を送信し、その応答として、サーバ２００から送信されたＨＴＭＬ文書を、通信部１０６を介して受信し、実行部１０７に渡す。この取得要求を送信するタイミングは、ハンディターミナル１００の電源投入時、液晶ディスプレイ１００ｂ上で、ユーザが操作キー１００ｃを用いて所定のハイパーリンクを選択した時または所定のボタンをクリックした時、或いは、ログデータを送信する時などである。
【００３４】
実行部１０７は、制御部１０１から取得したＨＴＭＬ文書からＤＯＭ（Ｄｏｃｕｍｅｎｔ
Ｏｂｊｅｃｔ Ｍｏｄｅｌ）を生成する（パースを行う）。ＤＯＭは木構造からなり、ＨＴＭＬ文書の内部情報を操作するためのＡＰＩである。なお、一般的なＨＴＭＬ文書は、クローズタグの省略等がされている場合があるため、これを補完する等の補正処理を行った上でＤＯＭが生成される。そして、生成されたＤＯＭに基づいて、ＨＴＭＬ文書の記述を解析し実行する（字句解析を行う）。このとき、ＨＴＭＬ文書にスクリプトが記述されている場合、或いは、そのＨＴＭＬ文書から呼び出されるスクリプトファイルが存在する場合には、そのスクリプトをバイトコード化して実行する。具体的には、スクリプトの内容にしたがって、ＤＯＭを変更したり、制御部１０１及び通信部１０６を介してサーバ２００と通信したりする。制御部１０１は、実行部１０７の実行結果を受け取って、ＨＴＭＬ文書をレンダリングし、テキストや画像を表示部１０４に送って液晶ディスプレイ１００ｂに表示させる。
【００３５】
なお、制御部１０１，通信部１０６，実行部１０７は、ＪａｖａＳｃｒｉｐｔを利用してサーバ２００と非同期通信を行って、サーバ２００との間でＸＭＬデータのやり取りを行うＡｊａｘ（Asynchronous JavaScript＋ＸＭＬ）による通信を行うことができる。これにより、ハンディターミナル１００は、サーバ２００と非同期通信を行って、テキストデータや画像データを取得し、液晶ディスプレイ１００ｂの表示画面の一部分を更新させたり、ログデータをサーバ２００に非同期で送り続けたりすることができる。
【００３６】
識別部１０８は、サーバ２００から取得したスクリプトファイルがバイトコードに変換されているか否かを識別する機能を有しており、制御部１０１は、識別部１０８の識別結果に基づいて、サーバ２００から取得したスクリプトファイルがバイトコードに変換されていれば、実行部１０７にバイトコード化は不要である旨の指示を出し、サーバ２００から取得したスクリプトファイルがバイトコードに変換されていなければ、実行部１０７にバイトコード化は必要である旨の指示を出す。このように、識別部１０８は、通信部１０６を介して取得した構造化文書に関連付けられたスクリプトが、実行可能な形式のコードデータに変換されているか否かを識別する機能を有している。
【００３７】
検索部１０９は、復号部１０３によって復号されたバーコードに対応付けられた商品名称を検索する機能を有する。具体的には、記憶部１１０は、バーコードと商品名称とが対応付けられたテーブルが記憶するテーブル記憶部１１２を有しており、検索部１０９は、このテーブルを参照しつつ、バーコードと対応付けられた商品名を検索する。すなわち、検索部１０９は、このテーブルを用いて復号部により復号された情報コードに対応付けられた読取対象の名称を検索する。そして、検索結果は制御部１０１に送られ、表示部１０４を介して液晶ディスプレイ１００ｂにその商品名が表示される。
【００３８】
記憶部１１０は、上述したように、ウェブブラウザアプリ１１１を記憶するとともに、テーブル記憶部１１２を有している。加えて、コードデータ記憶部１１３を有している。コードデータ記憶部１１３は、制御部１０１が通信部１０６を介してサーバ２００から取得し、バイトコード化されたスクリプトファイルを、第１のコードデータとして記憶しておくためのものである。或いは、ＳＤカードなどからＷＥＢブラウザの起動前に組み込まれ、バイトコード化されたスクリプトファイルを、第１のコードデータとして記憶しておくためのものである。特に、この第１のコードデータは、少なくとも受光部１０２の動作と検索部１０９の動作を規定するスクリプトが実行部１０７において実行可能な形式へ変換された（バイトコード化された）コードデータである。サーバ２００から、ユーザによって作成されたＨＴＭＬ文書に関連付けられたスクリプトが実行可能な形式へ変換されたコードデータを第２のコードデータとして取得し、実行部１０７において第２のコードデータが実行される際に、第１のコードデータが参照される。つまり、実行部１０７において、第１のコードデータと第２のコードデータが合成される処理が行われる。
【００３９】
一方で、サーバ２００は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行うＣＰＵ２０１と、起動プログラムや初期化プログラム等が格納されたＲＯＭ２０２と、ＣＰＵ２０１が各種プログラムを実行する際のワークエリアとして機能するＲＡＭ２０３と、外部の通信ネットワークと通信可能に接続される通信部２０４と、表示部２０５及び入力部２０６と、補助記憶手段として機能するＨＤＤ（Hard Disk Drive）２０７とを有しており、これらの間の通信は、データバスやアドレスバスなどのバスを介して行われる。なお、モニタ等の表示部２０５やマウスやキーボード等の入力部２０６は、省略することもできる。
【００４０】
サーバ２００のＨＤＤ２０６には、各種アプリケーションを実行するための機能や、表示部２０５又はハンディターミナル１００の液晶ディスプレイ１００ｂにおいて、入力フォームや各種ボタン等のＧＵＩを利用するための機能などを提供するとともに、サーバ２００全体を統合的に管理するＯＳ（Operating System）がインストールされている（図示せず）。また、ＯＳ上で実行されるアプリケーション（アプリ）として、ハンディターミナル１００のウェブブラウザアプリ１１１からの要求に応じて、ＨＴＭＬ文書やスクリプト、画像などの情報をハンディターミナル１００に送信するウェブアプリ２０７１がインストールされている。ウェブアプリ２０７１のインストールによって、サーバ２００はウェブサーバとして機能し得る。各アプリケーションは、アプリケーションプログラムがＨＤＤ２０７からＲＡＭ２０３にロード（展開）され、各アプリケーションプログラムに基づきＣＰＵ２０１によって実行される。
【００４１】
また、サーバ２００のＨＤＤ２０７は、在庫管理の対象となる商品に関する情報（商品名や商品数）を登録するための商品ＤＢ２０７２と、ハンディターミナル１００に送信するＨＴＭＬ文書やスクリプト、画像などの情報が格納される文書画像ＤＢ２０７３を有している。サーバ２００のＣＰＵ２０１は、ＴＣＰ／ＩＰプロトコルにしたがって、ＨＴＴＰによる命令やＨＴＭＬ文書の送受信を行う。そして、ハンディターミナル１００からの要求に応じて、ＨＤＤ２０７に記憶されているＨＴＭＬ文書や画像の中から要求に対応するＨＴＭＬ文書を読み出し、ハンディターミナル１００に返送する。また、ハンディターミナル１００からの要求に応じて、商品ＤＢ２０７２からデータを取得してハンディターミナル１００に送ったり、商品ＤＢ２０７２にデータを登録したりする。
【００４２】
プログラム作成装置３００は、ＣＰＵやＲＯＭ，ＲＡＭなどから構成され、ハードウェア各部の制御を行うための制御部３０１と、補助記憶手段として機能する記憶部３０２と、ＬＡＮポートなど外部の通信ネットワークと通信可能に接続される通信部３０３と、モニタ３００ａ等の表示部３０４およびマウスやキーボード等の操作部３０５とを有している。
【００４３】
特に、プログラム作成装置３００は、モニタ３００ａ上でＧＵＩを通じて記述されたスクリプトをバイトコード化する変換部３０６を有している。すなわち、変換部３０６は、所定のＨＴＭＬ文書に関連付けられたスクリプトがハンディターミナル１００上で実行可能な形式へ変換されたバイトコードを出力する機能を有している。制御部３０１は、変換部３０６によって出力されるバイトコードを受信し、通信部３０３を介してハンディターミナル１００やサーバ２００に送信する。
【００４４】
［処理の流れ］
図３は、図１に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図３は、プログラム作成装置３００においてバイトコードが出力されるまでの処理を示している。
【００４５】
図３に示すように、まず、ユーザはプログラム作成装置３００を用いて、ハンディターミナル１００の液晶ディスプレイ１００ｂに表示される表示内容や動きを規定するための作業を行う。図４は、プログラム作成装置３００のモニタ３００ａに表示される画面例を示す。ユーザは、操作部３０５を操作することによって、ツールボックス６０１をクリックし、テキストボックスやラジオボタン、コンボボックスやリストボックスなど、所望の部品を選択して、作業エリア６００にドラッグ＆ドロップする。これにより、ハンディターミナル１００の液晶ディスプレイ１００ｂに表示されるウェブページの表示内容や動き（例えば、コンボボックスをクリックするとプルダウンで選択項目のリストが一覧表示される等の動き）を規定することができる。このようなドラッグ＆ドロップを複数回繰り返して、ハンディターミナル１００の液晶ディスプレイ１００ｂに表示されるウェブページを作成する。図４では、担当者ＩＤ入力用の画面と品番／数量入力用の画面を作成している過程の様子を示しており、アプリケーションエクスプローラの表示エリア６０２に、担当者ＩＤ入力（用のページ）６０３と、品番／数量入力（用のページ）６０４が表示されている。
【００４６】
ユーザは、ＧＵＩを通じてドラッグ＆ドロップによるウェブページの作成が終了すると、ハンディターミナル１００上で動作するアプリケーションとして振る舞うための（ＨＴＭＬ文書および）スクリプトを生成する（ステップＳ１）。具体的には、スクリプト生成ボタン６０５をクリックすることによって、ユーザが作成したウェブページのスクリプトが自動生成される。作成されたスクリプトは、アウトプットウィンドウ６０６に自動的に表示される。また、アウトプットウィンドウ６０６には、タグの切り替えにより、例えばログデータとして「Ａｐｐ．ｈｔｍｌ，Ａｐｐ．ｊｓを作成しました。」といったテキストが表示される。このように、プログラム作成装置３００の制御部３０１は、操作部３０５の操作信号に基づいてＨＴＭＬ文書やスクリプトを自動生成する機能を有している。
【００４７】
ＨＴＭＬ文書やスクリプトの生成が終了すると、ユーザは、コンパイルボタン６０７をクリックする。そうすると、ステップＳ１で生成されたスクリプトがバイトコード化される（ステップＳ２）。具体的には、制御部３０１は、ステップＳ１で生成し、記憶部３０１に記憶しておいたスクリプトを読み出して、変換部３０６（図２）に転送する。そして、変換部３０６は、そのスクリプトをコンパイルする。なお、必要に応じてリンクも行う。これにより、例えば「．ｊｓｂ」の拡張子を有し、バイトコード化されたファイルが生成され、制御部３０１を介して記憶部３０２に記憶される。
【００４８】
スクリプトのバイトコード化が完了すると、バイトコード化されたファイルに識別子が付与される（ステップＳ３）。この識別子としては、ユーザが所望のＩＤを付与することも可能であるが、本実施形態では、プログラム作成装置３００において、バイトコード化されたファイル名（例えば「user.jsb」）から拡張子を除いた名称（例えば「user」）が自動的に付与されるようになっている。なお、シミュレーションボタン６０８をクリックすることにより、バイトコード化されたスクリプトが正常に動作するか否かを確かめることができる。
【００４９】
最後に、サーバ２００とプログラム作成装置３００を通信可能に接続した状態で、ユーザが送信ボタン６０９をクリックすると、バイトコード化されたスクリプトがサーバ２００へ転送され、出力される（ステップＳ４）。具体的には、制御部３０１は、操作部３０５からの操作信号に基づいて、記憶部３０２からバイトコード化されたスクリプトを読み出して、通信部３０３を介してサーバ２００に送信する。これを受信したサーバ２００は、文書画像ＤＢ２０７３に記憶しておき、上述したように、ハンディターミナル１００から取得要求があったときにハンディターミナル１００に対して送信する。
【００５０】
また、本実施形態では、バーコード読取機能や端末内検索機能などが記述され、かつ、バイトコード化されたスクリプトが、予めハンディターミナル１００のコードデータ記憶部１１３に記憶されている。このスクリプトは、例えばプログラム作成装置３００にインストールされたプログラム作成エディタを使用してスクリプトを記述し、スクリプトコンパイルを行うことによって作成する。そして、ハンディターミナル１００とプログラム作成装置３００を通信可能に接続した状態で、ユーザは操作部３０５を操作することによってバイトコード化されたスクリプトがハンディターミナル１００に転送される。このように、本実施形態では、ハンディターミナル１００に予め記憶しておくスクリプトは、図４に示す画面を表示するソフトウェアとは別のソフトウェアによって作成されるようにしている。これにより、ハンディターミナル１００に予め記憶しておくスクリプトを、ユーザが誤って編集してしまい、ハンディターミナル１００が誤動作してしまうのを防ぐことができる。なお、もちろん、このスクリプトを図４に示す画面を表示するソフトウェア上で作成し、バイトコード化し、出力するようにしても構わない。また、ＳＤカードなどから予めインストールして（組み込んで）おいても構わない。要は、第１のコードデータとして予めハンディターミナル１００のコードデータ記憶部に記憶されるスクリプトは、ユーザが簡単には編集できないように構成されているため、ユーザが誤って編集してしまうのを防ぐことが可能となっている。
【００５１】
図５は、図１に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図５は、ハンディターミナル１００の運用開始前に行われる準備処理を示している。
【００５２】
図５に示すように、まずはサーバ２００へのログインが行われる（ステップＳ１１）。具体的には、例えばユーザがハンディターミナル１００の電源を投入すると、制御部１０１は、ＲＯＭに記憶された初期化プログラム等（ハンディターミナル１００の初期設定）に従って、通信部１０６を介して予め定められた手順でサーバ２００にログイン要求を行う。例えば、ハンディターミナル１００の端末ＩＤやシリアル番号などをサーバ２００に対して通知する。サーバ２００は、このログイン要求に対し、ＭＡＣアドレスを用いた端末認証を行ったり、ユーザにパスワードの入力を求めたりして、所定のログイン処理を行う。
【００５３】
次に、コンテンツのダウンロードを行う（ステップＳ１２）。具体的には、制御部１０１は、ウェブブラウザアプリ１１１を実行し、ＲＯＭに記憶された運用開始前準備プログラムに従って文書や画像の取得要求をし、所定のＨＴＭＬ文書やバイトコード化されたスクリプト（バイトコードデータ）をダウンロードする。図６は、サーバ２００からダウンロードされるＨＴＭＬ文書の一例（一部のみを示す概要）を示し、図７は、サーバ２００からダウンロードされるバイトコード化されたスクリプトの一例（一部のみを示す概要）を示している。図８は、ハンディターミナル１００のコードデータ記憶部１１３に予め記憶され、バイトコード化されているスクリプトの一例（一部のみを示す概要）を示している。なお、図７及び図８では、説明の便宜上、容易に読解できるスクリプトを示しているが、一般には、バイトコード化されたスクリプトの容易に読解できないコード（バイトコード）になっている。また、ダウンロードするコンテンツがＺＩＰ圧縮されている場合には、制御部１０１において解凍（展開）処理が行われる。
【００５４】
次に、字句解析を行う（ステップＳ１３）。具体的には、制御部１０１は、実行部１０７にＨＴＭＬ文書（図６）を転送し、実行部１０７は、ＨＴＭＬ文書からＤＯＭを生成し、そのＤＯＭに基づいてＨＴＭＬ文書の記述を解析して実行する。本実施形態では、図６に示すＨＴＭＬ文書に関連付けられた図７に示すスクリプトは、プログラム作成装置３００において既にバイトコード化されているため、制御部１０１から実行部１０７に転送されず、その結果、実行部１０７おいてバイトコード化の処理も行われない。これにより、バイトコード化に必要な処理時間を省くことができる。
【００５５】
最後に、制御部１０１は、実行部１０７からＨＴＭＬ文書の字句解析の実行結果を受け取って、ＲＡＭへの展開を行う（ステップＳ１４）。また、バイトコード化されている図７に示すスクリプトについては、（ステップＳ１３をスキップして）そのままＲＡＭへの展開を行う。このように、制御部１０１は、ＲＡＭ上において、図６に示すＨＴＭＬ文書の字句解析結果と、バイトコード化されている図７に示すスクリプトとを展開し、実行できる状態にする。そして、制御部１０１は、図６に示すＨＴＭＬ文書の字句解析結果に基づいて、ＨＴＭＬ文書をレンダリングし、テキストや画像を表示部１０４に送って液晶ディスプレイ１００ｂに表示させる。
【００５６】
一方、ハンディターミナル１００のコードデータ記憶部１１３には、例えば図８に示すような、既にバイトコード化されているライブラリ（スクリプト）が記憶されている。制御部１０１は、ＲＡＭに展開された図７に示すスクリプトを実行する際に、コードデータ記憶部１１３に記憶されている図８に示すスクリプトを参照しつつ（例えばＲＡＭに展開して）、実行する。なお、図７に示すスクリプトは、上述したように「user」という識別子が付与され、ユーザ特有の画面や動作（表示画面や画面遷移など）を規定するための記述であり、図８に示すスクリプトは、ハンディターミナル１００特有の動作（バーコード読取や商品検索）を規定するための記述である。そして、いずれかのスクリプトだけではハンディターミナル１００を正常に動作させることはできず、識別子「user」で特定されるスクリプト（図７）と、ハンディターミナル１００特有の動作を規定するために内蔵された（予めハンディターミナル１００に記憶された）スクリプト（図８）とを制御部１０１が合成（マージ）することによって初めて、ユーザ所望のＷＥＢブラウザ機能搭載のハンディターミナル１００を正常に動作させることができる。また、ユーザが編集可能な図７に示すスクリプトについては、制御部１０１がサーバ２００から取得するようなシステムとすることによって、複数台のハンディターミナル１００がアクセスしてきた場合であっても、（予めバイトコード化された上でサーバ２００に格納されているため）速やかに図７に示すスクリプトを提供することができ、ひいてはハンディターミナル１００上での動作準備が完了するまでの時間（すなわち、制御部１０１によって図７や図８に示すスクリプトが実行され、ユーザからのトリガ入力待ちの状態になるまでの時間）を減らすことができる。
【００５７】
図９は、図６に示すＨＴＭＬ文書によって、ハンディターミナル１００の液晶ディスプレイ１００ｂに表示される表示画面の一例（あくまで概要を示すイメージ図である）を示している。図９に示すように、液晶ディスプレイ１００ｂには、テキストボックス１（の表示エリア８０１）やテキストボックス２（の表示エリア８０２）が表示されている。これは、ＨＴＭＬ文書に、例えば図６に示すコード７０１やコード７０２のような記述があることによって、表示されることになる。図７に示すスクリプトには、例えば「TextBox1.onFocusIn=BarcodeEnable();」といった一文７０３が記述され、これにより、液晶ディスプレイ１００ｂ上でカーソルがテキストボックス１を選択したとき、バーコード読取が有効状態となる。すなわち、図８に示す関数７０６「function BarcodeEnable()」が呼び出され、トリガキー１００ａが押されるのを待機する状態となる。また、図７に示すスクリプトには、例えば「TextBox1.onEditEnd=MasterSearch();」といった一文７０４が記述され、これにより、バーコード読取が完了してEditEndが発生した時点で、図８に示す関数７０５が呼び出され、自動的に端末内検索が行われる。
【００５８】
次に、このような関数７０５や関数７０６によって実現される、ハンディターミナル１００の運用に関する処理の流れを説明する。図１０は、図１に示すシステムにおける情報処理の流れを示すフローチャートである。特に、図１０は、ハンディターミナル１００の運用時に行われる処理を示している。また、図１１〜図１３は、図８及び図９に示すスクリプトに基づいて、ハンディターミナル１００の液晶ディスプレイ１００ｂに表示される表示画面が遷移する様子を示している。
【００５９】
図１０に示すように、まず、バーコード読取が行われる（ステップＳ２１）。より具体的には、制御部１０１は、トリガキー１００ａが押されたことを契機として、受光部１０２に対して読取コマンドを送信することによって、バーコード読取を行って、その読取結果を記憶部１１０に記憶する。図７及び図８を用いて説明すれば、制御部１０１は、ＲＡＭに展開され、バイトコード化されているスクリプトを実行し、上述したようにバーコード読取を有効状態とし、トリガキー１００ａが押されて操作部１０４から操作信号を受信したことを契機として、受光部１０２を介してバーコード読取を行い、復号部１０３を介して復号を行い、その結果であるバーコード読取結果をテキストボックス１の表示エリア８０１に表示する。例えば図１１に示すように、テキストボックス１の表示エリア８０１に、バーコード読取結果である「ＡＢＣ１２３４５６７８」などの情報コードが表示される。
【００６０】
次に、端末内検索が行われる（ステップＳ２２）。具体的には、制御部１０１は、ステップＳ２１において記憶部１１０に記憶されたバーコード読取結果を読み出して、検索部１０９に渡す。検索部１０９は、テーブル記憶部１１２に記憶された、情報コードと読取対象の名称（商品名）とが対応付けられたテーブルを参照して、取得したバーコード読取結果が何の商品名であるかを識別する。図７及び図８を用いて説明すれば、制御部１０１は、ＲＡＭに展開され、バイトコード化されているスクリプトを実行し、上述したように自動的に端末内検索を行い、その検索結果をテキストボックス２の表示エリア８０２に表示する。例えば図１２に示すように、テキストボックス２の表示エリア８０２に、「ＡＢＣ１２３４５６７８」と対応付けられた商品名「バーコードハンディ」が表示される。以上のステップＳ２１およびステップＳ２２は、サーバ２００と通信が確立されていない状態で行われる。一方、以降のステップＳ２３〜ステップＳ２５は、サーバ２００との通信が前提となる処理である。ユーザは、このステップＳ２１及びステップＳ２２の処理がハンディターミナル１００で行われることによって、サーバ２００と通信不能の状況であっても、バーコードが付された商品は何であるかを認識することができる。そして、商品は何であるかに加えて、その商品の在庫数などを確認したい場合には、以降のステップＳ２３〜ステップＳ２５の処理が行われる。
【００６１】
次に、問い合わせデータ送信の処理が行われる（ステップＳ２３）。具体的には、制御部１０１は、ステップＳ２２において識別された商品名「バーコード」をテーブル記憶部１１２から読み出して、通信部１０６を介してサーバ２００へ送信する。このときの送信タイミングは、ハンディターミナル１００が置き台５００に載置されたときであってもよいし、無線通信であれば何らかの操作キー１００ｃが押された時であってもよい。また、商品名の情報を送るときに、ログデータを送ってもよい。通信部２０４を介してこれを受信したサーバ２００のＣＰＵ２０１は、商品ＤＢ２０７２を検索して、その在庫数を確認する。そして、ＣＰＵ２０１は、例えば文書画像ＤＢ２０７３に記憶されている「バーコードハンディ」の画像データと、その在庫数を示すテキストデータとを、通信部２０４を介してハンディターミナル１００に送信する。
【００６２】
ハンディターミナル１００の制御部１０１は、問い合わせ結果データを受信すると（ステップＳ２４）、液晶ディスプレイ１００ｂ上でコンテンツの部分更新を行う（ステップＳ２５）。例えば図１３に示すように、液晶ディスプレイ１００ｂの下方に、「バーコードハンディ」の画像が表示され、その画像の下に在庫数が表示される。図１３では、在庫数は５個と表示されている。これにより、ユーザは「バーコードハンディ」の在庫数は５個であることを認識することができる。
【００６３】
ここで、ステップＳ２３〜ステップＳ２５の処理について更に説明すると、ハンディターミナル１００とサーバ２００とはJavaScriptを利用して非同期通信を行っており、両者の間でＸＭＬデータのやり取りを行う、いわゆるＡｊａｘ（Asynchronous JavaScript+XML）の技術（XML HTTPRequest機能）を用いている。したがって、ハンディターミナル１００は、サーバ２００と同期通信を行ってＨＴＭＬ文書をリロード等する必要がなく、その結果、字句解析も不要となるので、その分、サーバ２００との通信における応答性（応答速度）を高めることができる。
【００６４】
［実施形態の効果］
以上説明したように、本実施形態に係るハンディターミナル１００においては、運用開始前に準備処理が行われた後に（図５）、実際の運用処理が行われる（図１０）。図５および図１０では、ハンディターミナル１００を使った発注作業の例を示しているが、実際には、発注作業の他にも、棚卸し作業や検品作業などが考えられる。棚卸し作業は、複数の商品に対してバーコード読取を行って、各商品の在庫数をサーバ２００の商品ＤＢ２０７２に格納していく作業であり、検品作業は、パッケージの中に含まれる商品の種類や数が合っているかどうかをサーバ２００の商品ＤＢ２０７２に予め規定されたデータと照合していく作業である（例えば、商品Ａ×３、商品Ｂ×５を一纏まりのパッケージにしたい場合等）。したがって、図９，図１１〜図１３で示す表示画面の他にも、例えば数十パターンの表示画面が存在する。そうすると、発注作業を行う際に、図５および図１０のフローチャートに示す情報処理が行われ、棚卸し作業を行う際にも図５および図１０のフローチャートに示す情報処理が行われ、検品作業を行う際にも図５および図１０のフローチャートに示す情報処理が行われることになるが、本実施形態に係るハンディターミナル１００によれば、図５に示すステップＳ１３やステップＳ１４の処理において、スクリプトをバイトコード化する処理が不要であるため、その処理に時間が掛かってしまうことに起因したハンディターミナル１００の応答性低下を防ぐことができる。その結果、ハンディターミナル１００の利便性の低下を防ぐことができる。
【００６５】
また、バーコード読取の機能を担う受光部１０２と、テーブル記憶部１１２を用いて端末内ＤＢアクセス機能を担う検索部１０９との動作を規定するスクリプト（図８）が、実行可能な形式に変換された上で予めコードデータ記憶部１１２に記憶されている。そして、サーバ２００からＨＴＭＬ文書（図６）やバイトコード化されたスクリプト（図７）を取得して実行する際に、コードデータ記憶部１１２に記憶されているスクリプトを参照しつつ実行する。このように、図７に示すスクリプトと図８に示すスクリプトが揃うことによって、実際の運用処理（図１０）を行うことができる。
【００６６】
また、実行部１０７がサーバ２００から取得するＨＴＭＬ文書が、実行可能な形式へ変換されていることによって、ＨＴＭＬ文書をバイトコード化する手間も省け、ハンディターミナル１００の応答性向上に寄与することができる。
【符号の説明】
【００６７】
１００  ハンディターミナル
２００  サーバ
３００  プログラム作成装置
４００  アクセスポイント
５００  置き台
【図１】
2011118702.tif 000003
【図２】
2011118702.tif 000004
【図３】
2011118702.tif 000005
【図５】
2011118702.tif 000006
【図６】
2011118702.tif 000007
【図７】
2011118702.tif 000008
【図８】
2011118702.tif 000009
【図９】
2011118702.tif 000010
【図１０】
2011118702.tif 000011
【図１１】
2011118702.tif 000012
【図１２】
2011118702.tif 000013
【図１３】
2011118702.tif 000014
【図４】
2011118702.tif 000015