(57)【要約】【課題】  機種ごと、あるいはキャリアごとの開発の手間を低減できるセンタ装置を提供する。【解決手段】  端末装置に対して通信可能に接続されるセンタ装置であって、分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得し、当該取得した処理指示データに基づいて、その指示に係る分岐処理と、当該分岐処理に応じた画面の提示処理とを、端末装置３に実行させる端末装置用プログラムを生成し、その生成した端末装置用プログラムを端末装置３に対して送出するセンタ装置である。【選択図】        図１
2006203690.tif 000002
【特許請求の範囲】
【請求項１】
端末装置に対して通信可能に接続されるセンタ装置であって、
分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得する手段と、
前記取得した処理指示データに基づいて、前記指示に係る分岐処理と、当該分岐処理に応じた画面の提示処理とを、前記端末装置に実行させる端末装置用プログラムを生成するプログラム生成手段と、
前記生成した端末装置用プログラムを前記端末装置に対して送出する手段と、
を含むことを特徴とするセンタ装置。
【請求項２】
請求項１に記載のセンタ装置において、
前記分岐処理の指示は、分岐の条件に係る分岐パラメータの配列を含み、
前記プログラム生成手段は、当該配列に含まれる分岐パラメータごとに、分岐の条件を判断させる端末装置用プログラムを生成し、
前記配列に含まれる分岐パラメータごとの分岐処理の結果の配列を受信し、所定の処理を実行する、
ことを特徴とするセンタ装置。
【請求項３】
請求項１に記載のセンタ装置において、
前記処理指示データには、複数の分岐処理の指示と、各分岐処理の指示ごとに、それぞれの分岐処理の結果に応じて提示されるべき画面を記述した、複数の画面記述情報セットが含まれ、
前記分岐処理の各々には、分岐の条件に係る分岐パラメータの配列の定義が含まれ、
前記プログラム生成手段は、分岐処理ごとに定義される分岐パラメータの配列が、互いに連関する旨の指示が、前記処理指示データに含まれている場合には、注目配列に含まれる分岐パラメータに係る分岐処理が行われたときに、注目配列以外の少なくとも一つの配列において、当該分岐処理に係る分岐パラメータに対応する分岐パラメータを用いた所定の処理を行うべき旨の指示を、前記端末装置用プログラムに含める、
ことを特徴とするセンタ装置。
【請求項４】
端末装置に対して通信可能に接続されるセンタ装置であって、
前記端末装置において入力される情報に係る分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得する手段と、
前記取得した処理指示データに基づいて、情報受け入れ処理と、分岐処理と、当該分岐処理に応じた画面の提示処理とを、前記端末装置に実行させる端末装置用プログラムを生成するプログラム生成手段と、
前記生成した端末装置用プログラムを前記端末装置に対して送出する手段と、
を含み、前記プログラム生成手段が、前記情報受け入れ処理において、情報の入力態様に応じて、処理を異ならせる旨の指示を含む端末装置用プログラムを生成することを特徴とするセンタ装置。
【請求項５】
分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得し、前記取得した処理指示データに基づいて、前記指示に係る分岐処理と、当該分岐処理に応じた画面の提示処理とを、端末装置に実行させる端末装置用プログラムを生成し、前記生成した端末装置用プログラムを前記端末装置に対して送出することを特徴とする端末装置用プログラムの提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハンディターミナルや携帯電話機などの端末装置において実行されるべきプログラムを提供するセンタ装置に関する。
【背景技術】
【０００２】
近年では、業務で利用されるバーコードリーダを始め、種々の家庭電化製品といった、多くの機器がマイクロコンピュータによって制御されている。また、インターネット技術など通信技術の発展に伴って、こうした各種機器に通信機能が搭載され、ネットワークを介してデータを送受信する機能を有するようになってきている。
【０００３】
例えば、バーコードリーダの例でいえば、読み込んだバーコードに基づいて計数処理を行い、その計数の結果を指示に応じてセンタ側に配置されたコンピュータに送信する機能を有したものがある。
【０００４】
また、別の代表的な例は、携帯電話機におけるｉｍｏｄｅ（登録商標）である。この例では、携帯電話機にいわゆるウエブ・ブラウザやＪａｖａ（登録商標）実行環境をインストールしておきパケット交換網のセンタ側装置がインターネット上のサーバからＨＴＭＬ（Hyper Text Markup Language）で記述された文書を取得し、これをそのまま携帯電話機に配信する。携帯電話機ではＨＴＭＬを解釈して画面表示を行う。
【０００５】
こうした機器の中にはさらに、ＨＴＭＬを利用して、機器に搭載されたキーの機能を切り替えるもの（特許文献１）がある。また、多くのインターネット通信販売などのサイトでは、ユーザが端末側で入力したデータをサーバ側で受信して検証し、検証の結果、データの入力に誤りがあるなど、再入力の必要がある場合は、それを促すためのＨＴＭＬ文書をさらに端末側に配信する、ということが行われている。
【特許文献１】再公表９８／００６０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のバーコードリーダや携帯電話機等の端末装置では、機種ごと、あるいは携帯電話機のキャリアごとに、異なるプログラムを用意しなければならない。例えばＪａｖａ（登録商標）を利用したアプリケーション実行環境であっても、ダウンロードの方式や個々のキャリアごとの実装態様に相違があるため、携帯電話機におけるキャリアごとに異なるプログラムが用意され、利用者がそれぞれのキャリアに適合したアプリケーションを、センタ装置からダウンロードして利用しているのが現状である。
【０００７】
この事情は他の家庭用電化製品でも同じであって、各家庭用電化製品の制御プログラムは、ほぼ、その機種ごとに開発を行っているのが現状である。
【０００８】
本発明は上記実情に鑑みて為されたもので、機種ごと、あるいはキャリアごとの開発の手間を低減できるセンタ装置を提供することをその目的の一つとする。
【課題を解決するための手段】
【０００９】
上記従来例の問題点を解決するための本発明は、端末装置に対して通信可能に接続されるセンタ装置であって、分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得する手段と、前記取得した処理指示データに基づいて、前記指示に係る分岐処理と、当該分岐処理に応じた画面の提示処理とを、前記端末装置に実行させる端末装置用プログラムを生成するプログラム生成手段と、前記生成した端末装置用プログラムを前記端末装置に対して送出する手段と、を含むことを特徴としている。
【００１０】
またここで、前記分岐処理の指示は、分岐の条件に係る分岐パラメータの配列を含み、前記プログラム生成手段は、当該配列に含まれる分岐パラメータごとに、分岐の条件を判断させる端末装置用プログラムを生成し、前記配列に含まれる分岐パラメータごとの分岐処理の結果の配列を受信し、所定の処理を実行する、こととしてもよい。
【００１１】
また、前記処理指示データには、複数の分岐処理の指示と、各分岐処理の指示ごとに、それぞれの分岐処理の結果に応じて提示されるべき画面を記述した、複数の画面記述情報セットが含まれ、前記分岐処理の各々には、分岐の条件に係る分岐パラメータの配列の定義が含まれ、前記プログラム生成手段は、分岐処理ごとに定義される分岐パラメータの配列が、互いに連関する旨の指示が、前記処理指示データに含まれている場合には、注目配列に含まれる分岐パラメータに係る分岐処理が行われたときに、注目配列以外の少なくとも一つの配列において、当該分岐処理に係る分岐パラメータに対応する分岐パラメータを用いた所定の処理を行うべき旨の指示を、前記端末装置用プログラムに含める、こととしてもよい。
【００１２】
また、上記従来例の問題点を解決するための本発明は、端末装置に対して通信可能に接続されるセンタ装置であって、前記端末装置において入力される情報に係る分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得する手段と、前記取得した処理指示データに基づいて、情報受け入れ処理と、分岐処理と、当該分岐処理に応じた画面の提示処理とを、前記端末装置に実行させる端末装置用プログラムを生成するプログラム生成手段と、前記生成した端末装置用プログラムを前記端末装置に対して送出する手段と、を含み、前記プログラム生成手段が、前記情報受け入れ処理において、情報の入力態様に応じて、処理を異ならせる旨の指示を含む端末装置用プログラムを生成することを特徴としている。
【００１３】
さらに本発明の一態様に係る端末装置用プログラムの提供方法は、分岐処理の指示と、当該分岐処理の結果に応じて提示されるべき複数の画面を記述した画面記述情報セットとを含む処理指示データを取得し、前記取得した処理指示データに基づいて、前記指示に係る分岐処理と、当該分岐処理に応じた画面の提示処理とを、端末装置に実行させる端末装置用プログラムを生成し、前記生成した端末装置用プログラムを前記端末装置に対して送出することを特徴としている。
【発明を実施するための最良の形態】
【００１４】
［基本の処理］
本発明の実施の形態について図面を参照しながら説明する。本実施の形態に係るセンタ装置２は、図１に示すように、サーバ装置１と、端末装置３とに接続され、全体としてソフトウエア実行システムを形成する。なお、ここでは端末装置３は一つだけ図示しているが、複数あっても構わない。また、サーバ装置１とセンタ装置２とは、インターネットを介して接続される、別体の装置として示しているが、同じコンピュータによってこれらが実装されていてもよい。また、端末装置３は、制御部３１と、記憶部３２と、表示部３３と、操作部３４と、通信部３５とを含む。
【００１５】
［サーバ装置］
サーバ装置１は、一般的なウエブサーバである。このサーバ装置１は、分岐処理の指示を含む指示情報、並びに、少なくとも一つの表示画面を規定する情報（画面記述情報）を記述した指示処理データを保持している。本実施の形態では、指示情報に分岐処理の指示が含まれる場合、当該分岐処理の結果に応じて提供されるべき複数の画面記述情報が、画面記述情報セットとして含まれる。
【００１６】
サーバ装置１は、ＨＴＴＰ（Hyper Text Transfer Protocol）による要求を受けて、当該要求に係る指示処理データを、要求元に対して配信する。
【００１７】
なお、ここで指示処理データは、ＸＭＬ（eXtensible Markup Language）を用いて記述されるものとする。また、画面記述情報によって画面に表示される要素のうち、ユーザが行う指示操作を受け付けるもの（ボタンや入力欄、メニュー等）を以下、操作案内要素と呼ぶ。本実施の形態においては、このサーバ装置１が提供する画面記述情報が端末装置３側から見たときのアプリケーションのユーザインタフェースを規定することになる。
【００１８】
［センタ側装置］
センタ側装置２は、ＣＰＵ、記憶部、表示部を有してなる一般的なサーバコンピュータであり、予めインストールされたプログラムに従って動作する。このセンタ側装置２のプログラムの内容は、図２に示すような機能ブロック図を利用して説明できる。すなわちセンタ側装置２のプログラムは、制御部２１と、モデム管理部２２と、モデム制御部２３と、モデム部２４と、ＨＴＴＰクライアント部２５と、情報変換部２６とを含んで構成されている。
【００１９】
制御部２１は、モデム管理部２２から入力されるモデム管理情報と、モデム制御部２３から入力されるモデムの状態を表すモデム状態情報と、ＨＴＴＰクライアント部２５から入力される、サーバ装置１との通信状態を表すサーバ側状態情報と、をそれぞれ記録する。
【００２０】
モデム管理部２２は、制御部２１が記録しているモデム状態情報を読み出して、管理者に対して当該モデム状態情報を表示する。また、管理者からモデムの状態を設定するための指示を受け付けて、当該指示をモデム管理情報として制御部２１に出力する。
【００２１】
モデム制御部２３は、モデム部２４に対して端末装置３からのアクセスがあったか否かを一定時間ごとに問い合わせ（ポーリング）しており、端末装置３からのアクセスを受け付けたモデム部２４が、端末装置３から受信した情報を情報変換部２６に出力する。また、このモデム制御部２３は、情報変換部２６から、端末装置３用のプログラムの入力を受けて、当該プログラムをモデム部２４に出力する。
【００２２】
モデム部２４は、センタ側装置２が備えているモデム（ここでいうモデムは、電話回線網を介してデータを送受するためにデータをアナログ信号に変調して送受信するものだけでなく、単に符号／複号を行う、一般的なＬＡＮトランシーバなども含み、ここでは単数ないし複数あるものとしている）ごとに設けられ、端末装置３側からアクセスを受け付けて、当該端末装置３から受信したデータをバッファし、モデム制御部２３からのポーリングを受けて、当該バッファしたデータをモデム制御部２３に出力する。また、モデム制御部２３から入力されたデータをアクセス中の端末装置３に対して送信する。具体的に、このモデム部２４は、モデムが８０２．１１ｂなどの無線ＬＡＮ規格を利用するものであれば、アクセスのあった端末装置３側のＭＡＣアドレスやＩＰアドレスを記憶して、当該ＭＡＣアドレス又はＩＰアドレスに対してモデム制御部２３から入力される情報等を送信することになる。
【００２３】
なお、モデム制御部２３は、モデム部２４が複数ある場合は、各モデム部２４を順次選択しながらポーリングして、選択しているモデム部２４がバッファしている情報を情報変換部２６に出力し、情報変換部２６から端末装置３用のプログラムが入力されると、当該プログラムを現在選択しているのモデム部２４に出力して、次のモデム部２４を選択してポーリングを行うという処理を繰り返すようにしてもよい。
【００２４】
ＨＴＴＰクライアント部２５は、情報変換部２６から入力されるＵＲＬ（Uniform Resource Locators）に対応する指示処理データの要求をＨＴＴＰプロトコルによってサーバ装置１に送信する。そして、サーバ装置１から、要求した指示処理データを受信して、当該受信した指示処理データを情報変換部２６に出力する。
【００２５】
情報変換部２６は、指示処理データに基づいて、端末装置３側で実行可能なプログラム（端末装置３用プログラム）を生成する。この情報変換部２６の動作については、後に詳しく述べる。
【００２６】
［モデム状態情報及びモデム管理情報］
ここでモデム状態情報及びモデム管理情報について説明する。本実施の形態ではモデムはグループに分けて群管理される。ここでグループは任意に設定することができ、例えばユーザ側に複数の事業所がある場合、各事業所ごとのグループとすることもできる。この場合は、第１の事業所に属する端末装置３からは、当該事業所に対応するグループに分けられたモデムのいずれかに対して発信をするようにすればよい。具体的には、各モデムには識別子を付与し、各端末装置３には、対応するグループのモデムの識別子を保持させ、そのいずれかと通信をするように設定する。
【００２７】
本実施の形態では、モデムは、グループ識別子（gid）と、ＩＰアドレスとで識別される。モデム状態情報及びモデム識別情報は、これらグループ識別子とＩＰアドレスとをキーとして管理され、例えばモデム状態情報は、各モデムが利用するＴＣＰプロトコルのポート番号と、状態コード（status）、及びコメントをキーに関連づけてなる。ここで状態コードは、オンライン（通信中）となっているか、オフラインであるかの別を主として示す。
【００２８】
また、モデム管理情報は、グループ識別子とＩＰアドレスとをキーとして、モデムの追加（新たなモデムを登録する）するための情報や、モデムの設定内容を変更（オンラインをオフラインに変更する、ＩＰアドレスやポート番号を変更する等）するための情報等である。
【００２９】
本実施の形態では、モデム管理部２２は、ウエブサーバとしての機能を備えて、モデム状態情報を提供すべき旨の要求を受けて、モデムの状態情報を要求元に対してウエブページとして配信するようにしてもよい。
【００３０】
［画面表示プログラム］
次に、情報変換部２６の処理の内容について説明する。情報変換部２６は、指示処理データに含まれる画面記述情報部分に基づいて、端末装置３用の画面表示プログラムモジュールを生成する。本実施の形態では、分岐処理の結果に応じて、指示処理データに複数の画面記述情報が含まれ得る。情報変換部２６は、指示処理データに含まれる複数の画面記述情報のそれぞれに対応して、複数の画面表示用プログラムモジュールを生成する。
【００３１】
例えば、画面記述情報には、図３（ａ）から（ｆ）に示すような複数の種類の画面要素の規定が含まれ得る。図３（ａ）は、テキスト表示、（ｂ）は、ボタン表示、（ｃ）は入力欄表示、（ｄ）はスプラッシュ・スクリーン（一定時間だけ表示される画像）、（ｅ）は選択メニュー、（ｆ）は、ヒント表示の要素を表し、それぞれ指示処理データとしてのＸＭＬ文書における（ａ）<text>タグ、（ｂ）<button>タグ、（ｃ）<input>タグ、（ｄ）<splash>タグ、（ｅ）<Select ... option> タグ、（ｆ）<hint>タグに対応する。
【００３２】
情報変換部２６は、画面上に表示されるボタンを指示するＸＭＬ文書要素として、「button」タグを用いた画面要素の記述が、「<button mode=aaa size=bbb x=ccc y=ddd buttontype=fff url=ggg>eee</button>」のようになっているとき、これを端末装置３側で解釈可能なものとして予め定められたデータ形式に変換し、例えば図３（ｂ）に示すようなデータストリームとする。図３には、テキスト、ボタン、入力欄、スプラッシュスクリーン、選択メニュー、ヒント情報の６種類の画面要素に関する記述がそれぞれ情報変換部２６によってどのような指示に変換されるかを示している。
【００３３】
例えば、図３（ｂ）は、タイプ（Type）情報が「２」となっており、ボタンであることを示し、続いてボタンの表示態様を表すモード（mode）、サイズ（size）、画面上の表示位置座標を表す「x」及び「y」、ボタンとして表示されるテキスト（上の例でいう「eee」の部分）と、ボタンのタイプ（プッシュボタンか、ラジオボタンなどの選択用ボタンかなど）をあらわすボタンタイプ（buttontype）、そしてそのボタンがクリックされたときに読み出されるべきＵＲＬ（もしあれば）を表す「url」などからなるデータ形式である。また、テキストやＵＲＬなど、固定長でないデータのデリミタは「0xFE 0xDC」となっている。
【００３４】
本実施の形態において特徴的なことの一つは、操作案内要素の一つである入力欄のインタフェースを規定するデータ形式（及びそれに対応するＸＭＬのＤＴＤの記述）において、バーコード入力の可否を表す「barcode」と、入力値の最大、最小を定める「min」及び「max」といった、操作入力されるべき情報に関する条件（操作条件）、及び操作条件を満足するか否かに応じて行われるべき処理を特定する情報（goodhintやbadhint）を含めていることである（図３（ｃ））。
【００３５】
［分岐処理のプログラム］
また、本実施の形態の情報変換部２６は、処理指示データに含まれる分岐処理の指示と、分岐処理の結果に応じた画面の提示処理とを端末装置３に実行させる。ここで分岐処理は、条件に応じて動作を異ならせる処理をいう。
【００３６】
本実施の形態の例では、分岐処理は、端末装置３において入力される値と、分岐処理の指示で指定する値との比較に基づく分岐を行う処理として規定される。具体的に本実施の形態の分岐処理の指示は、図４に示すように、「compareタグ」によって規定される。このcompareタグには、少なくとも一つの比較要素（comparegroupタグで囲まれる一連の記述；Ｐ）が含まれる。そして各比較要素には、比較の対象となる値の群（comparevalueタグ；Ａ）と、分岐指示群（compareoptionタグ；Ｂ）とを含む。分岐指示群は、端末装置３において入力された値との比較条件、及び各比較条件を満足する場合に提示するべき画面に係る画面記述情報を特定する情報を少なくとも一つ含む。つまり、この分岐指示群は、分岐の条件に係る分岐パラメータを規定したもので、分岐指示群は、当該分岐パラメータの配列に相当する。
【００３７】
なお本実施の形態では、説明のため、比較条件が次の７種類であるとする。すなわち、
（１）比較の対象となる値と、入力された値とが等しい、
（２）入力された値が、比較の対象となる値より大きい、
（３）入力された値が、比較の対象となる値より小さい、
（４）比較の対象となる値の群に、入力された値が含まれる、
（５）比較の対象となる値の群に、入力された値が含まれない、
（６）比較の対象となる値は、照合（比較）済みである、
（７）比較の対象となる値は、照合（比較）済みでない、
の７種類であるとする。
【００３８】
情報変換部２６は、比較の対象となる値の群を配列として記憶するステップと、値の入力欄を表示するステップと、値が入力されるごとに、分岐指示群に含まれる順に、比較条件に基づいて、記憶した配列と、入力された値とを比較するステップと、比較順で最初に満足する比較条件に対応する画面記述情報に基づいて、画面を表示するステップと、を実行させる端末装置３用のプログラムを生成する。
【００３９】
例えば、図４に示す処理指示データの一部から、分岐処理を含む端末装置３用プログラムを生成する例を用いて、このプログラムの生成処理の内容を説明する。
【００４０】
情報変換部２６は、処理指示データのうちから<compare>タグを見いだすと、比較処理のための初期化処理を行うプログラムモジュール（初期化モジュール）を生成する。初期化処理のプログラムコードにおいては、例えば、比較の対象として指定される値の群（<comparevalue>タグで指定された値の群）に含まれる値の数に対応し、各値に係る比較処理を完了したか否かを表す複数のフラグ情報を格納する領域と、次の比較の対象となる値を指定するポインタ値とを記憶する領域とを確保する。また、入力欄ごとに、入力された値と、それに対する比較処理の結果とを記憶するための領域を確保する。
【００４１】
具体例として、図４の例では、<compare>タグのオプションとして最初の比較の対象となる値を指定するオプション（start）が指定されている（ここでは「１」）。また、値の数を指定するオプション（total）によって、比較するべき値の数が指定されている（ここでは「５」）。そこで、情報変換部２６は、次の端末装置３用プログラムを生成する。すなわち、（ａ）５つのフラグ情報を格納する領域と、ポインタ情報を格納する領域とを確保し、（ｂ）ポインタ情報としては初期値「１」（startオプションで指定された値）を設定し、（ｃ）フラグ情報としては、いずれも、未だ比較されていないことを表す値（「未比較」）を設定して初期化する、といった（ａ）から（ｃ）の各ステップを実行する初期化モジュールを生成する。
【００４２】
また、情報変換部２６は、<compare>タグに関連して記述されている画面情報記述（ここでは<compare>タグに対応する終了タグ（</compare>）の直後に記述されている画面情報記述とする）に基づいて、入力欄を表示させ、入力を受け入れるための入力インタフェース処理を行うプログラムモジュール（インタフェース処理モジュール）を生成する。また、ここで表示する入力欄（<input>タグに対応する画面要素）の各々と、<compare>タグ内に含まれる<comparegroup>タグで規定される分岐指示群とを関連付ける。ここでは、各々記述順序（出現順序）に従い、対応付けが行われるものとする。なお、図４では、<comparegroup>の数に対応して第１、第２の２つの入力欄を表示する指示（２つの<input>タグ）が含まれている。
【００４３】
さらに情報変換部２６は、表示させた入力欄の各々に対応付けて、各入力欄に値が入力されたときに、各入力欄に対応する<comparegroup>タグに含まれる分岐指示群（対応分岐指示群）に基づく比較処理を実行させるプログラムモジュール（比較処理モジュール）を生成する。この比較処理モジュールのプログラムコードでは、値が入力された入力欄に対応する対応分岐指示群に含まれる複数の比較条件について、入力された値を用いて比較条件を満足するか否かを順次、判断する。
【００４４】
具体的な例として、図４に示した例であれば、情報変換部２６は、２つの入力欄を表示するプログラムを生成する。そして、第１の入力欄（先の<comparegroup>タグに対応する入力欄）に値が入力されると、当該入力欄に対応する対応分岐指示群を参照し、まず条件番号「１」、つまり、（１）比較の対象となる値のうち、ポインタ情報によって特定される値と、入力された値とが等しいか否かを判断する。また、この条件番号には、条件が満足された場合の処理について何ら指定がないので、条件を満足した場合には特に表示画面に変化はない。
【００４５】
また、この条件を満足しない場合、次の分岐指示を参照し、（図４の例で）条件番号「２」、つまり（２）入力された値が、比較の対象となる値より大きいか否かを判断する。この条件を満足する場合は、指定されている画面（subxmlとして指定されている、2.xmlで表される画面）を表示する。
【００４６】
以下、同様に、この（２）の条件も満足しない場合は、次の分岐指示を参照し、（図４の例で）条件番号「３」、つまり（３）入力された値が、比較の対象となる値より小さいか否かを判断する。この条件を満足する場合は、指定されている画面（subxmlとして指定されている、3.xmlで表される画面）を表示する。
【００４７】
端末装置３は、このプログラムコードに従って、比較条件の記述順で最初に満足する比較条件に対応する画面記述情報に基づいて、画面を表示することになる。
【００４８】
さらに図４に示した例では、比較処理の前後に、どのような処理を行うかを指定可能とするため、<comparegroup>タグのオプションとして、入力値に関する前処理を規定する情報（operation）を関連付ける例と、各比較条件に対応付けて、比較条件を満足したときに、その後に行うべき後処理を規定する情報（forward）を関連付ける例とを示している。
【００４９】
ここでは、前処理を規定するoperationのオプションでは、operation=2として指定されたとき、入力された値を、現在の入力欄の値に加算する前処理を行うことを意味するものとする。また、後処理を規定するforwardのオプションでは、forward=1のとき、ポインタ情報をインクリメントして、次の値の比較に移行する処理を行うものとし、forward=2のときは、ポインタ情報をそのままとして、現在比較の対象としている値との比較処理を継続するものとし、forward=3のときには、再度operationオプションで指定された処理を実行するものとする。
【００５０】
この場合、図４に示した例によると、端末装置３が次のように動作するよう、プログラムコードが生成される。すなわち、第２の入力欄に値が入力されると、まず前処理として、入力された値と、現在第２の入力欄に設定されている値とが加算されて、当該加算結果を第２の入力欄に上書きする。そして、当該第２の入力欄に対応する対応分岐指示群を参照し、まず、条件番号「３」、つまり（３）第２の入力欄に上書きされた値が、ポインタ情報によって特定される値（比較の対象となる値）より小さいか否かを判断する。この条件を満足する場合については、処理の指示がないので、そのまま処理を続行することになる。
【００５１】
また、この条件を満足しない場合は、次の分岐指示を参照し、条件番号「１」、つまり、（１）比較の対象となる値と、第２の入力欄に上書きされた値とが等しいか否かを判断する。この条件が満足されたときには、forwardオプションの指定に従って、ポインタ情報をインクリメントして、次の値を比較する処理を行う。このとき、各入力欄に入力された値を記憶部に確保した領域に格納する。さらに、ポインタ情報の値が、比較の対象として指定されている値の群に含まれる値の数を超えた場合（図４の例ではポインタ情報の値が「５」を超えたとき）には、処理を終了し、各入力欄に入力された値と、それぞれに対する比較処理の結果とを含む配列を、処理の結果としてセンタ装置２側へ返信する。
【００５２】
また、この条件も満足しない場合は、次の分岐指示を参照し、条件番号「２」、つまり、（２）第２の入力欄に上書きされた値が、比較の対象となる値より大きいか否かを判断する。この条件を満足する場合は、指定されている画面（subxmlとして指定されている、2.xmlで表される画面）を表示する。また、この条件を満足する場合、2.xmlで表された画面を表示した後、forwardオプションの指定に従って、現在の比較対象との照合を続行する。
【００５３】
センタ装置の情報変換部２６は、これらのような分岐処理を行わせるプログラムモジュール、並びに、画面記述情報に基づく画面表示プログラムモジュールを生成した後、各プログラムモジュールを含めたプログラムコードを生成して、端末装置３側へ配信することになる。
【００５４】
［情報変換部２６の他の処理］
本実施の形態においては、さらに、情報変換部２６が、端末装置３における処理の結果の入力を受け入れて、当該処理の結果に基づく処理を実行する。例えば、端末装置３において、上記分岐処理が行われる場合は、端末装置３は、比較の対象となる値の群に含まれる各値に対応した判断の結果が受信される。情報変換部２６は、この判断の結果の配列の入力を受けて、この判断の結果の配列をハードディスク等に保持し、集計処理等、他の処理に供する。
【００５５】
［端末装置］
端末装置３の制御部３１は、記憶部３２に格納されているプログラムに従って動作し、通信部３５から入力される指示を解釈して、当該指示に従って各部を制御する。この制御部３１の具体的動作の内容は後から詳しく述べる。
【００５６】
記憶部３２は、ＲＡＭ（Random Access Memory）やフラッシュメモリなど、プログラムを保持する、コンピュータ読み取り可能な情報記憶媒体であり、また、少なくとも一部に読み書き可能な部分を含み、制御部３１の動作に必要な情報を記憶する、ワークメモリとしても動作する。
【００５７】
操作部３４は、キーパッドやバーコードリーダなどであり、ユーザの操作に応じて情報入力を受け入れ、当該受け入れた情報を制御部３１に出力する。本実施の形態では、この操作部３４が、キーパッド（テンキーなど数値入力キーを含む）３４ａと、バーコードリーダ３４ｂとを含んで構成されているものとする。
【００５８】
表示部３３は、制御部３１から入力される指示に従って情報を表示するディスプレイである。具体的にこの表示部３３は、液晶ドットマトリクスディスプレイなどがあるが、これに限られるものではない。通信部３５は、センタ側装置２から受信される指示を制御部３１に出力し、また、制御部３１から入力される指示に従って、情報をセンタ側装置２に対して送信する。
【００５９】
ここで、図４に示した例を参照しながら、端末装置３にて実行される処理の流れを示す。端末装置３の制御部３１は、センタ装置２から、図４の記述に基づいて変換されたプログラムを受信する。そして、このプログラムを記憶部３２に格納し、当該格納したプログラムに従い、次の動作を行う。
【００６０】
まず、比較処理のための初期化処理が行われる。この初期化処理では、比較の対象として指定される値の群（<comparevalue>タグで指定された値の群）に含まれる値の個数（図４の例では５個）に対応し、各値に係る比較処理を完了したか否かを表す複数のフラグ情報を格納する領域と、次の比較の対象となる値を指定するポインタ値とを記憶する領域とを記憶部３２に確保する。また、入力欄ごとに、入力された値と、それに対する比較処理の結果とを記憶するための領域を、記憶部３２に確保する。また、ポインタ情報は「１」（startオプションで指定された値）に初期化し、フラグ情報としては、いずれも、未だ比較されていないことを表す「未比較」に初期化する。
【００６１】
次に、制御部３１は、<compare>タグの直後に記述されている画面情報記述に基づいて、入力欄を表示する。図４では、<comparegroup>の数に対応して第１、第２の２つの入力欄（<input>タグに対応する）が表示される。
【００６２】
制御部３１は、この状態で、値の入力を待機する。利用者が、操作部３４を操作して情報を入力すると、制御部３１は、情報の入力を受けた入力欄に対応する分岐処理を実行する。
【００６３】
例えば、利用者が第１の入力欄に「Ａ」を入力すると、制御部３１は、第１の入力欄に対応する処理を開始し、まず（１）比較の対象となる値と、入力された値「Ａ」とが等しいか否かを判断する。ここではポインタ情報の値が「１」であるので、比較の対象となる値は「Ａ」となる。この場合、この比較の対象となる値と、入力された値とが等しいので、条件を満足するものと判断される。
【００６４】
制御部３１は、この場合、さらに値の入力を待機する。利用者が次に、第２の入力欄に「１」を入力すると、制御部３１は、<compare>タグのオプションに基づいて、現在の第２の入力欄の値（特に指定がない場合は「０」に初期化されているとする）に「１」を加算する。ここでは加算の結果は「１」となる。制御部３１は、この加算の結果を第２の入力欄に上書きする。
【００６５】
そして制御部３１は、第２の入力欄に対応する処理を開始する。この場合、図４に示す記述順序に従って比較処理用のプログラムコードが生成されているので、まず、（３）第２の入力欄に上書きされた値が、ポインタ情報によって特定される値（比較の対象となる値）より小さいか否かを判断する。ここでは、ポインタ情報が「１」のままであるので、比較の対象となる値は「１０」（２番目の<comparegroup>における<comparevalue>の第１番目の値）となる。つまり、この条件を満足することとなる。この処理については、特に指定がないので、そのまま値の入力を待機することになる。
【００６６】
利用者がさらに、第２の入力欄に「９」を入力すると、制御部３１は、第２の入力欄の現在の値「１」に「９」を加算した値「１０」を得て、第２の入力欄に、値「１０」を上書きする。
【００６７】
そして、（３）第２の入力欄に上書きされた値が、ポインタ情報によって特定される値（比較の対象となる値）より小さいか否かを判断する。ここでは、ポインタ情報が「１」のままであるので、比較の対象となる値は「１０」である。つまり、この条件は満足されない。
【００６８】
そこで制御部３１は、次の分岐指示を参照し、（１）比較の対象となる値と、第２の入力欄に上書きされた値とが等しいか否かを判断する。ここでは、両者が等しいので、この条件が満足されることとなる。制御部３１は、この条件に関連するforwardオプションの指定に従って、現在のポインタ情報によって示される値に対応するフラグ情報を「比較済み」に設定する。そして、ポインタ情報をインクリメントして、「２」とする。また、各入力欄に入力された値と比較の結果（双方とも「等しい」ことを表す情報）とを記憶部３２に確保した領域に格納する。
【００６９】
以下、同様にして比較の対象となった値の群のそれぞれについて処理を実行し、各値との比較処理の結果が得られた時点で、処理を終了し、入力された値と比較の結果とをセンタ装置２に対して送信する。
【００７０】
なお、入力された値が照合済み（比較済み）であるか否かの判断は次のようにして行う。すなわち、対象となる値の群のうちから入力された値を検索し、当該入力された値が含まれる位置（先頭からの位置でよい）を取得する。そして、取得した位置の情報に基づいて、当該位置に対応するフラグ情報を参照し、フラグ情報の値が照合済み（比較済み）であるか否かを参照して、判断を行う。
【００７１】
また、入力された値が、比較の対象となる値の群に含まれるか否かについては、指定された値の群のうちから、入力された値を検索し、見いだされた場合には含まれていると判断し、見いだされない場合は含まれていないと判断することになる。
【００７２】
また仮に、ポインタ情報が「２」の場合に、利用者が第１の入力欄に「Ｘ」を入力したとすると、入力された値がポインタ情報が示す比較対象の値「Ｂ」に等しくないので、2.xml又は3.xmlで規定される画面を表示する。
【００７３】
ここでは2.xmlや3.xmlでは、「入力された値が異なります」などの文字列の表示とともに、下の入力画面に「戻る」ためのボタンや、入力欄を初期値にリセットするためのボタン等が併せて表示される。
【００７４】
なお、この図４の例では各値が比較対象の値とそれぞれ「等しい」こととなるまで処理が続けられるので、センタ装置２に対して送信される、比較処理の結果の値は、「１，１，１，１，１」、など、いずれも条件番号「１」、つまり「等しい」との判断が行われたことを示す値となる。
【００７５】
本実施の形態によると、端末装置３が、入力された値に応じて分岐処理等を行うことになる。つまり、一定量の情報の入力操作を端末装置３側で実行することができる。これにより、センタ装置２との通信を継続的に確保する必要がなくなり、利便性をさらに向上できる。
【００７６】
なお、ここまでの説明では、センタ装置２の情報変換部２６が生成するプログラムとして、分岐処理において、複数の比較条件が互いに関連付けられている例について説明した。つまり、一つの分岐指示群において指定される比較対象の値の群と、他の分岐指示群において指定されている比較対象の値の群とが、互いに連関している旨の指示が暗黙に行われているものとして、当該分岐指示群のうち、いずれかを注目指示群として、当該注目指示群に係る比較対象の値の群（注目配列）に含まれる分岐パラメータに係る分岐処理が行われたときに、この注目配列以外の少なくとも一つの配列（注目指示群以外の分岐指示群の比較対象の値の群）において、当該分岐処理に係る分岐パラメータに対応する分岐パラメータを用いた所定の処理を行うべき旨のプログラムコードが生成されていた。このため、図４の例であれば、第１の入力欄と第２の入力欄とに入力された各値は、いずれも対応する比較対象の値の群の中で、同じポインタ情報によって特定される値（一方が「Ａ」のとき、他方は「１０」など）と比較されていた。
【００７７】
しかしながら本実施の形態は、これに限られるものではなく、各<comparegroup>の比較処理において用いられる比較対象の値の群は、互いに連関しないものとして設定されてもよい。具体的な例として、この設定は、<compare>タグにおいて、連関するか否かを示すオプション（例えばrelatedオプション）の値を用いて行われる。すなわち、relatedオプションの値が「１」であれば連関するものとし、「２」であれば連関しないものとする。連関させない場合は、各入力欄ごとに個別のポインタ情報が用いられ、例えば一方の入力欄において入力された値が、その入力欄に対応して列挙された値の群のうち、１番目の値と比較されているときに、他の入力欄において入力された値が、当該入力欄に対応して列挙された値の群のうち、２番目の値と比較される、などの処理が可能となる。
【００７８】
さらに、本実施の形態では、端末装置３における情報入力の際に、利用者の入力操作の態様に応じて処理内容を異ならせてもよい。具体的な例として、図４に示した例に対応して、入力操作の態様に応じて処理を異ならせる場合の指示処理データの例を図５に示す。
【００７９】
図５では、分岐処理に係る第２の入力欄を表示を指示する<input>タグのオプションとして、「自動入力」を表すsubmitオプションが設けられている。ここではsubmitオプションに対応する値は、operationの値と同じ意味であるとする。この「自動入力」は、第１の入力欄の値が入力されたときに、（利用者が何ら操作を行うことなく）第２の入力欄においても予め定めた値（図５の例では、defaultオプションの値）が入力されたものとして処理を実行することを意味する。
【００８０】
例えば、図５に示した例では、まず利用者が第１の入力欄に値「Ａ」を入力したときに、当該値「Ａ」と比較対象の値との比較による分岐処理を実行する。そして、このとき、第２の入力欄に値が入力されなくとも、予め定めた値（図５の例では「１」）が第２の入力欄に入力されたものとして、第２の入力欄に係る分岐処理を行う。図５の例では、第２の入力欄に値が入力される度に、入力された値が累算されるので、第１の入力欄に値を入力する度に第２の入力欄の数値が「１」、「２」…と増分することになる。
【００８１】
このように「自動入力」を表すオプションを用いる例では、バーコードリーダを用いて、第１の入力欄に値を入力した回数が、第２の入力欄に反映される。また、このように「自動入力」のオプションが指定されているときには、情報変換部２６は、前回入力された値と、今回入力された値とが異なる場合に、ポインタ情報をインクリメントして、比較対象の値の群のうち、次の値と比較する処理を行う。このとき、各入力欄に入力された値を記憶部に確保した領域に格納する。さらに、ポインタ情報の値が、比較の対象として指定されている値の群に含まれる値の数を超えた場合（図５の例ではポインタ情報の値が「５」を超えたとき）には、処理を終了し、各入力欄に入力された値と、それぞれに対する比較処理の結果とを含む配列を、処理の結果としてセンタ装置２側へ返信する。
【００８２】
このように図５の例の場合、第１の入力欄に、情報を繰り返し入力する態様と、第１の入力欄と第２の入力欄とに値を入力する態様とで、処理が異なることになる。これにより、例えば第１の入力欄と第２の入力欄とにそれぞれ情報を入力する場合と、バーコードリーダを用いて、第１の入力欄に入力するべき情報を繰り返し入力する場合とで異なる処理が実行される。
【００８３】
［動作］
次に、本実施の形態に係るセンタ装置２を含むソフトウエア実行システムの動作について説明する。本実施の形態では、サーバ装置１側にアプリケーションプログラムをインストールすることになる。このアプリケーションプログラムは、ＨＴＴＰプロトコルにより入出力用の情報を配信可能な状態で記述される。具体的には、このアプリケーションプログラムは、Ｊａｖａ（登録商標）、及びそのサーブレットのほか、ＪａｖａＳｃｒｉｐｔ、ＰＨＰ、ＡＳＰ（Active Server Pages）等のスクリプト言語によっても記述できる。以下の例では、Ｊａｖａ（登録商標）によって、在庫管理のアプリケーションプログラムを記述した場合について説明する。ここでは商品の品番の情報と、その数量の情報とを受け付けて、アプリケーションプログラム側で各商品の数量を集計する、という簡単な例を考える。
【００８４】
サーバ装置１にインストールされる指示処理データは、情報入力のために品番と数量との入力欄と「入力」ボタン及び「集計」ボタンを配したインタフェースを規定するＸＭＬ文書である。また、サーバ装置１には、情報の集計を行うＪａｖａ（登録商標）プログラムが格納される。
【００８５】
このインタフェースを規定するＸＭＬ文書は、図５に示したようなものとなる。この図５の例では、第１の入力欄が品番の入力欄として、また第２の入力欄が数量の入力欄として利用される。
【００８６】
このうち、品番の入力欄においては、バーコード入力が可能（barcode="yes"）となっており、数量の入力欄では、バーコード入力が不可（barcode="no"）とされている。
【００８７】
端末装置３には、このＸＭＬ文書のＵＲＬを予め指定しておき、初期化操作が行われたときに、当該指定されたＵＲＬからデータを取得する要求を送信させる。この要求は、センタ装置２に対して送信され、センタ装置２では、当該要求を受け付けてモデムの一つがオンラインとなり、当該要求をバッファする。
【００８８】
センタ装置２のモデム制御部２３がこのモデムを次にポーリングしたときに、当該要求は、モデム制御部２３によって読み出されて、情報変換部２６に出力される。情報変換部２６は、この要求がＵＲＬからのデータ取得要求であることを検出（例えばデータが「http」で始まる文字列であるなど、ＵＲＬそのものであったときに、そのように検出する）し、そのデータ取得要求に係るＵＲＬをＨＴＴＰクライアント部２５に出力する。
【００８９】
そしてＨＴＴＰクライアント部２５は、当該ＵＲＬからデータを取得するＨＴＴＰプロトコルによる要求をサーバ装置１側に送出する。サーバ装置１では、当該ＨＴＴＰプロトコルによる要求に応答して、対応するＸＭＬ文書を要求元であるセンタ装置２に配信する。
【００９０】
そしてセンタ装置２のＨＴＴＰクライアント部２５が当該ＸＭＬ文書を受信することとなる。このＸＭＬ文書は、情報変換部２６により端末装置３用のプログラムに変換される。ここでは、図５に示した指示処理データに基づいて端末装置３用のプログラムが生成される場合を例として述べる。
【００９１】
情報変換部２６は、このプログラムをモデム制御部２３に出力し、モデム制御部２３は、当該プログラムをモデム部２４を介して端末装置３に送信する。
【００９２】
端末装置３の制御部３１は、通信部３５が受信したこのプログラムの入力を受けて、記憶部３２に格納し、処理を開始する。
【００９３】
端末装置３の制御部３１は、入力された指示の順に従って、まず、最初に入力された操作案内要素に係る指示である、品番の入力欄にカーソルを移動して待機する。なおキーパットの操作によって、カーソルを移動できるようにしておくこととしてもよい。この場合カーソルの移動順序は指示に含まれる画面要素の順序としてもよい。
【００９４】
利用者が操作部３３のバーコードリーダを操作して在庫品に係るバーコードを読みとると、当該バーコードリーダが読みとった情報が制御部３１に出力される。制御部３１は、当該情報を第１の入力欄に表示するとともに、当該入力された値と、比較対象となった値との比較による分岐処理を実行する。そして、このとき、第２の入力欄に値が入力されなくとも、予め定めた値（図５の例では「１」）が第２の入力欄に入力されたものとして、第２の入力欄に係る分岐処理を行う。
【００９５】
ここで利用者が品番として、「Ａ」以外の品番を読み込んだ場合、図５に示した分岐処理により、端末装置３側の処理としてエラーを表示することができる。また、品番「Ａ」を読み取るごとに、第２の入力欄の値が「１」ずつインクリメントされることになる。
【００９６】
そして、比較対象となった各値に係る分岐処理が完了すると、入力された値（品番及び数量）のリストと、比較結果のリストとを通信部３５を介してセンタ装置２に送信する。
【００９７】
そしてセンタ装置２の情報変換部２６は、これら、入力された値のリストと判断の結果の配列の入力とを受けて、この判断の結果の配列をハードディスク等に保持し、集計処理等、他の処理に供する。具体的には、サーバ装置１に当該入力された情報を配信して、集計処理を行わせる。
【００９８】
このように本実施の形態では、端末装置３の代わりにセンタ側装置２がウエブサーバとの通信や各種処理を実行し、その結果を端末装置３側に送信して表示させるようになっている。また、端末装置３側では、ユーザの利便性に配慮して、ある操作案内要素を用いて入力された情報について、入力される値について指定された分岐処理を実行する。つまり、端末装置３の機種ごとに、インタプリタのプログラムだけ予め開発しておけば、機種を入れ替える等の場合も、当該入れ替え後の機種にインタプリタのプログラムをインストールするだけで、サーバ装置１にインストールされている従来通りのプログラムはそのまま利用でき、システム全体の製造コストを削減できる。
【００９９】
また、ここではＪａｖａ（登録商標）プログラムのように、クライアント側で処理が実行される場合について説明したが、サーバ側で処理が実行されるスクリプト言語などでは、センタ側装置２の情報変換部２６が、ＵＲＬとともにパラメータリストを受信したときに、当該ＵＲＬに対してパラメータリストをクエリーとして合成し、ＨＴＴＰクライアント部２５に出力し、サーバ装置１が、当該合成されたＵＲＬに基づいて処理を行うようにすればよい。
【０１００】
［データセキュリティ］
さらにここまでの説明において、サーバ装置１とセンタ装置２との間の通信は、セキュアＨＴＴＰ（https）を利用して、通信内容を暗号化してもよい。さらに、センタ装置２と端末装置３との間の通信についても、例えばＡＥＳ等の所定の暗号化方法を用いて、その通信内容を暗号化してもよい。
【０１０１】
［障害復帰］
さらに、センタ装置２を複数備えて、いわばフォールトトレラントの構成とすることとしてもよい。フォールトトレラント技術に関しては、広く知られているものをそのまま利用することができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施の形態に係るシステムの一例を表す構成ブロック図である。
【図２】センタ側装置２の例を表す機能ブロック図である。
【図３】端末装置３にて解釈可能なデータ形式の一例を表す説明図である。
【図４】指示処理データの一例を表す説明図である。
【図５】指示処理データの別の例を表す説明図である。
【符号の説明】
【０１０３】
１  サーバ装置、２  センタ側装置、３  端末装置、２１，３１  制御部、２２  モデム管理部、２３  モデム制御部、２４  モデム部、２５  ＨＴＴＰクライアント部、２６  情報変換部、３２  記憶部、３３  表示部、３４  操作部、３５  通信部。
【図１】
2006203690.tif 000003
【図２】
2006203690.tif 000004
【図３】
2006203690.tif 000005
【図４】
2006203690.tif 000006
【図５】
2006203690.tif 000007