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