以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
図1は、本実施の形態にかかるデータ通信システムの構成の具体例を示す図である。
図1を参照して、本実施の形態にかかるデータ通信システムは、サービス提供サーバ(以下、単にサーバと言う)2とクライアント装置1とを含んで構成され、サーバ2とクライアント装置1とは、インターネット、公衆回線網、あるいは放送網を介して通信を行なう。また、図1には示されていないものの、サーバ2とクライアント装置1とはLAN(Local Area Network)等の専用回線を介して通信を行なってもよいし、無線通信を行なってもよい。
サーバ2は、入力フォームをクライアント装置1に対して配布し、その入力フォームを利用して作成されたデータをクライアント装置1から受信することにより、受信したデータに基づいた処理を実施するサービスをクライアント装置1に対して提供する。
本実施の形態においては、サーバ2は、クライアント装置1である携帯電話1に対して懸賞応募用の入力フォームを配布し、その入力フォームを利用して作成、送信されたデータをクライアント装置1である携帯電話1から受信することにより、携帯電話1から懸賞の応募を受付ける。
クライアント装置1は、サーバ2から提供された入力フォームを利用して必要なデータを取得し、送信用のデータを作成してサーバ2に対して送信する。図1に示されるように、クライアント装置1は携帯電話やPDA(Personal Digital Assistants)、パーソナルコンピュータ、テレビジョン受像機、およびファクシミリ送受信機など、データを送受信する機能を備えるデータ処理装置が該当し、以下の説明においては、クライアント装置1が携帯電話1であるものとして説明を行なう。
また、サーバ2は、懸賞の応募を受付けるサービスを実施するサーバであるものとして説明を行なうが、サーバ2も、いわゆるサーバに限定されず、携帯電話やPDA、パーソナルコンピュータ、テレビジョン受像機、プリンタ、複写機、およびファクシミリ送受信機など、データを所定のデータ形式で送受信し、そのデータに対して所定の処理を施すデータ処理装置であればよい。
次に、図2に、本データ通信システムに含まれるクライアント装置1である携帯電話1のハードウェア構成について具体例を示す。
図2を参照して、本実施の形態のデータ通信システムに含まれる携帯電話1は、ユーザとのインタフェースである入出力部140と、CPU(Central Processing Unit)等から構成されて、この携帯電話1の全体を制御する制御部120と、他の装置と通信するための通信部110と、ROM(Read Only Memory)やRAM(Random Access Memory)などから構成されて、制御部120において実行されるプログラムや、そのプログラムの中間データおよび他のコンピュータから受信したデータ等を記憶する記憶部130とを含んで構成される。
さらに上述の入出力部140は、「1」、「2」などの数字ボタンおよび「R」、「L」などの方向ボタンなどを含むキーコード入力デバイス142と、ユーザに情報を表示するLCD(Liquid Crystal Display)などのディスプレイ144と、音声を入力するマイクロフォン146と、音声を出力するスピーカ148と、画像を撮影して入力するカメラ149とを含む。
また、制御部120は、その内部にタイマを含む。
このような携帯電話1において、ユーザがサーバ2から得た入力フォームの表示および送信データの作成を行なう処理は、携帯電話1のハードウェア、記憶部130に記憶され制御部120により実行されるソフトウェアおよび入力フォームデータにより実現される。なお、図2に示した携帯電話1自体の動作は周知である。
また、本データ通信システムに含まれるサーバ2は、一般的なパーソナルコンピュータ等で構築されるサーバであり、その構成についてここでの詳細な説明は行なわない。
次に、図3に、携帯電話1の記憶部130に記憶される各プログラムの構成の具体例を示し、携帯電話1におけるデータ処理の流れを説明する。
図3を参照して、携帯電話1の記憶部130に記憶されるプログラムには、データ解析プログラム1300と、入力フォーム処理エンジンプログラム1310と、音声データ録音プログラム1320と、アドレス帳プログラム1330と、ファイル取得プログラム1340と、画像撮影プログラム1350と、テキスト編集プログラム1360と、WWW(World Wide Web)プログラム1370と、メールプログラム1380と、FTP(File Transfer Protocol)プログラム1390とが含まれる。
図3を用いて説明されるデータ処理は、制御部120が記憶部130に記憶される各プログラムを実行することによって、携帯電話1において実現される。
具体的には、図3を参照して、始めに、制御部120は、データ解析プログラム1300を実行させることで、通信部110において受信したデータを解析し、入力フォームデータであるか他のデータであるかを判別する処理を実行させる。
データ解析プログラム1300での処理の結果、通信部110において受信したデータが入力フォームデータである場合、制御部120は、入力フォーム処理エンジンプログラム1310を実行させることで、通信部110において受信した入力フォームデータを処理する。なお、ここでの入力フォーム処理エンジンプログラム1310の機能構成については後述する。
次に、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、音声データ録音プログラム1320を実行させ、マイクロフォン146からの音声の入力とキーコード入力デバイス142からの各種指示とを受付ける。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、アドレス帳プログラム1330を実行させ、記憶部130に記憶されたメールアドレスや電話番号を取得する。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、ファイル取得プログラム1340を実行させ、記憶部130に記憶されたファイルを取得する。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、画像撮影プログラム1350を実行させ、カメラ149からの画像の入力とキーコード入力デバイス142からの各種指示とを受付ける。また、動画を撮影する際には、さらにマイクロフォン146からの音声の入力も受付ける。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、テキスト編集プログラム1360を実行させ、キーコード入力デバイス142からのテキスト情報と各種指示とを受付ける。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、WWW(World Wide Web)プログラム1370を実行させ、キーコード入力デバイス142からのテキスト情報と各種指示とを受付け、通信部110を介してサーバ2とデータのやり取りを行なう。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、メールプログラム1380を実行させ、キーコード入力デバイス142からのテキスト情報と各種指示とを受付け、通信部110を介してサーバ2へメールを送信させる。
また、制御部120は、入力フォーム処理エンジンプログラム1310での処理結果に基づいて、FTP(File Transfer Protocol)プログラム1390を実行させ、キーコード入力デバイス142からのテキスト情報と各種指示とを受付け、通信部110を介してサーバ2とデータのやり取りを行なう。
次に、入力フォーム処理エンジンプログラム1310の機能構成について説明する。図3に示される入力フォーム処理エンジンプログラム1310の機能構成は、制御部120が入力フォーム処理エンジンプログラム1310を実行することで発揮される機能である。
図3を参照して、入力フォーム処理エンジンプログラム1310を構成する機能には、入力フォームデータ取得部1311と、UI(ユーザインタフェース)処理部1312と、データ保存部1313と、送信データ処理部1314と、イベント管理部1315とが含まれる。
入力フォームデータ取得部1311は、通信部110において受信した入力フォームデータを読込んで構文を解析し、入力フォームデータに含まれるUI記述データをUI処理部1312へ、送信データ処理記述データを送信データ処理部1314へ渡す。
なお、UI記述データとは、所定の言語で記述された、ユーザがデータを入力するためのユーザインタフェースをクライアント装置のディスプレイに表示させるデータであり、送信データ処理記述データとは、アクセス方法を規定するアクセス情報を記述したデータである。アクセス方法には、クライアント装置から特定のサーバへ送信するデータのデータ構造や、データ記述言語や、送信方法や、送信先などが含まれ、送信データ処理記述データを用いることで、そのアクセス方法に準じた送信用のデータが作成されて、所定の送信先に送信される。
イベント管理部1315は、キーコード入力デバイス142から入力されるイベントなど、イベントの発生を監視し、検出されたイベントを解析する。そして、イベントの内容を示す検出情報をUI処理部1312に渡す。
UI処理部1312は、入力フォームデータ取得部1311から渡された入力フォームデータのUI記述データに基づいて、ユーザがデータを入力するためのユーザインタフェースをディスプレイ144に表示するための処理を実行する。さらに、イベント管理部1315から渡された検出情報に応じて、音声データ録音プログラム1320、アドレス帳プログラム1330、ファイル取得プログラム1340、画像撮影プログラム1350、およびテキスト編集プログラム1360を実行させて、各プログラムよりデータを取得する。そして、UI処理部1312は、取得したデータをデータ保存部1313へ渡す。
データ保存部1313は、UI処理部1312から渡されたデータより必要なデータを抽出して、記憶部130にデータを保存する。また、送信データ作成のため、データを送信データ処理部1314へ渡す。
送信データ処理部1314は、データ保存部1313から渡されたデータと、入力フォームデータ取得部1311から渡された入力フォームデータの送信データ処理記述データとに基づいて、サーバ2へ送信するデータを作成し、WWWプログラム1370、メールプログラム1380、またはFTPプログラム1390を実行させて、作成したデータをサーバ2へ送信する。
なお、本実施の形態においては、サーバ2から提供された入力フォームデータを携帯電話1において処理する場合について説明するが、入力フォームデータは携帯電話1の記憶部130に記憶されていてもよく、その場合、図3に示される入力フォーム処理エンジンプログラム1310を構成する各部が機能され、記憶部130から読出して取得した入力フォームデータが処理される。また、入力フォームデータを提供する装置はサーバ2に限定されず、図1には示されない他の装置であってもよい。さらに、入力フォームデータは、CD−ROM(Compact Disk-Read Only Memory)やメモリカードなどの記録媒体に記録されて提供されてもよい。
次に、本実施の形態にかかる携帯電話1での入力フォームデータの処理について、図4のフローチャートを用いて説明する。図4のフローチャートに示される処理は、携帯電話1の制御部120が、図3に構成が示される入力フォーム処理エンジンプログラム1310を記憶部130から読出して実行し、図3に示される入力フォーム処理エンジンプログラム1310を構成する各部を機能させて実現される。
図4を参照して、始めに、初期化が実行された後(S10)、通信部110でインターネットを介してサーバ2よりデータが受信されると(S11でYES)、データ解析プログラム1300が起動されることで、ステップS10で受信されたデータが解析されて、そのデータが入力フォームデータであるか否かが判別される(S12)。判別の結果、受信されたデータが入力フォームデータでない場合には(S12でNO)、処理はステップS19に移行し、図3には示されない、そのデータに応じたプログラムが起動されて、そのデータに応じた処理が実行される。
ステップS12での判別の結果、受信されたデータが入力フォームデータである場合には(S12でYES)、制御部120は入力フォーム処理エンジンプログラム1310を起動し、入力フォームデータ取得部1311は、入力フォームデータを読込む(S13)。さらに、入力フォームデータ取得部1311は、入力フォームデータを構文解析する(S14)。なお、ここでの構文解析の方法については、本発明において限定されるものでなく、利用されているデータ記述言語に応じた一般的な構文解析方法であってよい。
ステップS14での構文解析の後、入力フォームデータ取得部1311は、UI記述データをUI処理部1312へ、送信データ処理記述データを送信データ処理部1314へ書出す(S15)。
次に、UI処理部1312は、ステップS15で書出されたUI記述データに基づき、ユーザがデータ入力するユーザインタフェースをディスプレイ144に表示するための処理であるUI表示処理を行なう(S16)。
次に、イベント管理部1315はイベントの発生を監視する(S17)。ステップS17で発生が検出されるイベントは、ユーザがデータ送信を行なうためにデータ入力の終了を指示する操作や、音声データ録音プログラム1320、アドレス帳プログラム1330、ファイル取得プログラム1340、画像撮影プログラム1350、およびテキスト編集プログラム1360の機能を起動するためのUIとして利用されるボタンを押下するキー操作などを含む、キーコード入力デバイス142から入力されるイベントなどが該当する。そして、ステップS17においてイベントの発生が検出されると(S17でYES)、UI処理部1312で、当該イベントに応じた処理が実行される(S18)。
なお、ステップS18のイベントに応じた処理は、処理の途中で通話プログラムなどに割込まれたり、またユーザの都合や電池の消耗により中断されたりした場合、その時点の再生または編集位置と変更中の状態とを記憶部130に保存して処理を中断し、後に再開する際には、記憶部130から保存された再生または編集位置と変更中の状態とを読込んで中断前の再生または編集位置から、復帰できるように構成されていることが好ましい。
次に、上述のステップS18で実行されるイベントに応じた処理について、図5のフローチャートを用いて説明する。
図5を参照して、上述のステップS17では、イベント管理部1315はイベントの発生を検出するとその内容を解析し、イベントの内容を示す検出情報がUI処理部1312に送られる。
ステップS17で検出されたイベントがデータ送信を行なうなどするためにデータ入力の終了を指示するための操作でない場合(S21でNO)、UI処理部1312は、必要なプログラム1320〜1360を実行させて、データを入力する処理を実行する(S22)。そして、ステップS22で入力されたデータに基づいてUI記述データを書換える処理を実施し(S23)、処理を図4のステップS17へ戻す。
ステップS22で実行されるデータ入力処理とは、テキスト入力フィールドへのテキスト入力や、パスワード入力フォームへのパスワード入力や、チェックボックスによる選択肢からの選択、ラジオボタンによる選択肢からの選択、および/またはファイル選択機能によるファイル選択などによるデータ入力を実施するための処理が該当する。本実施の形態においては、一般的に行なわれているXHTML(eXtensible HyperText Markup Language)によって入力されたデータが記述されるデータ入力処理が想定されている。
一方、ステップS17で検出されたイベントが、送信を行なうなどするためにデータ入力の終了を指示するための操作であった場合(S21でYES)、UI処理部1312はデータ保存部1313へ入力されたデータを渡して記憶部130に保存する。さらに、送信データ処理部1314は記憶部130に保存されたデータを読出して、送信用のデータを書出す処理を実行する(S24)。ステップS24で実行される送信用データ書出処理の詳細は後述する。
そして、送信データ処理部1314は、ステップS24で書出した送信用のデータと入力フォームデータの送信データ処理記述データとに基づいて、通信部110よりサーバ2に対してそのデータを送信する(S25)。ステップS25で実行されるデータ送信処理は、通常、制御部120がWWWプログラム1370、メールプログラム1380、またはFTPプログラム1390が起動され、それらの送信機能が利用されて実行される。
以上で、携帯電話1での入力フォームデータの処理が終了する。
次に、上述のステップS24で実行される送信用データ書出処理について、図6のフローチャートを用いて説明する。
図6を参照して、UI処理部1312は、ステップS23で書換えられたUI記述データの中からユーザが入力したデータを抽出し、データ保存部1313へ渡す(S31)。たとえば、UI記述データがXHTMLによる記述形式のデータである場合には、ステップS31でユーザが入力したデータはフォームデータ形式で抽出されてデータ保存部1313へ渡されることになる。
データ保存部1313は、UI処理部1312から渡されたデータを解析し、そのデータの中から、入力項目の属性名を示す識別子と属性値とが対になった形式の入力項目ごとの入力データを抽出する。そして、データ保存部1313において、抽出された入力項目ごとの入力データが記憶部130へ保存されると共に、送信データ処理部1314へ渡される(S32)。
次に、送信データ処理部1314において、ステップS32で抽出された入力項目ごとの入力データについて、すべてがステップS35で実行される書換処理に用いられたかが判定される(S33)。未処理のデータがある場合(S33においてNO)、送信データ処理部1314は、未処理の入力データに含まれる属性名を示す識別子と、入力フォームデータの送信データ処理データに記述されている、送信用のデータの入力項目の属性名を示す識別子とが一致するか否かを判定する(S34)。
そのデータに含まれる識別子と送信データ処理データに記述されている識別子とが一致しない場合には(S34でNO)、処理をステップS33に戻し、さらに他の未処理のデータについて、識別子が一致するか否かを判別する。
一方、そのデータに含まれる識別子と送信データ処理データに記述されている識別子とが一致する場合(S34においてYES)、送信データ処理部1314は、送信用のデータの該当する入力項目の部分を、識別子が一致した属性値に書換える(S35)。そして、処理を再びステップS33に戻し、さらに他の未処理のデータについて、識別子が一致するか否かを判別する。
ステップS33の判定の結果、ステップS32で抽出された入力データについて、すべてが上述の書換処理に用いられたことが判定されると(S33でYES)、送信データ処理部1314は送信用のデータを書出し(S36)、図5のステップS25へ処理を戻す。
次に、以上の処理の流れを、画面遷移および入力フォームデータの具体例を用いて説明する。
図7に、サーバ2から提供される入力フォームデータに含まれるUI記述データの具体例を示す。
図7に示されるUI記述データは、懸賞へ応募するために必要な氏名、性別、年齢、メールアドレス、郵便番号、住所等のユーザ情報を入力するユーザインタフェースを表示させるためのデータである。図7に示されるように、本実施の形態においては、入力フォームデータはHTML形式のデータであるものとし、図7に示されるUI記述データは、XTHMLによる一般的な記述データであるため、ここでの詳細な説明は行なわない。なお、図7に示されるUI記述データに基づいて携帯電話1のディスプレイ144に表示されるユーザ情報を入力するユーザインタフェースの具体例を図8に示す。
図8にも示されるように、図7に示されるUI記述データには、ユーザ情報の入力項目として、「氏名」を構成する「姓」および「名」、「性別」の選択肢である「男性」または「女性」、「年齢」、「メールアドレス」、「郵便番号」、および「住所」が含まれる。そして、それらの入力項目ごと入力データは、入力されたテキストデータ(または選択された選択肢)である属性値と、その項目の属性名を示す識別子とが対となった形式であることが、図7に示されるUI記述データに記述されている。
図9に、サーバ2から提供される入力フォームデータに含まれる送信データ処理記述データの具体例を示す。
図9に示される送信データ処理記述データは、図8に示されたユーザインタフェースを利用してユーザが入力した懸賞応募用のユーザ情報に基づいて、サーバ2へ送信する送信用のデータを作成するためのデータである。
図9に示される送信データ処理記述データには、UI記述データに記述される各入力項目の属性名を示す識別子が順に記述され、その識別子に対になった属性値を順に並べて送信用のデータを作成するためのデータの構成が記述されている。
図10は、図7で示されるUI記述データに基づいて表示されたユーザインタフェース(図9)に対して、ユーザによるユーザ情報の入力が完了した状態の具体例を示す図である。つまり、図5のフローチャートのステップS21において、ユーザがデータ入力の終了を指示するための操作を行なう直前の状態の具体例を示している。この状態においてユーザがデータ入力の終了を指示するための操作としてたとえばSelectボタンを押下するなどを行なうと(ステップS21でYES)、ステップS24の送信用データ書出処理が実施される。
先述のように、ステップS24の送信用データ書出処理が開始すると、図6のフローチャートのステップS31において、ユーザが入力したデータを抽出する処理が実行される。具体的には、UI処理部1312が入力データをフォームデータ形式のデータとして抽出してデータ保存部1313へ渡し、データ保存部1313で抽出データがデコードされる。データ保存部1313においては、図11に示されるように、UI処理部1312から渡された抽出データから、入力データとして属性名を示す識別子とその属性値との対が抽出される。図11に示される入力データは記憶部130に保存される。また、送信データ処理部1314に渡される。
ステップS33〜S35での送信用のデータの作成処理においては、具体的には、送信データ処理部1314は図11に示される入力データの中から識別子「last_name」を抽出し、送信データ処理記述データに記述「${last_name}」に該当する部分が含まれるか否かを判定する。図9に具体例が示される送信データ処理記述データには記述「${last_name}」に該当する部分が存在するため、送信データ処理部1314は、その該当部分を、図11において識別子「last_name」に対応付けられている属性値である文字列「山田」に書換える。
同様に送信データ処理記述データに含まれる記述「${first_name}」は文字列「太郎」に、記述「${sex}」は選択肢「male」に、記述「${age}」は文字列「31」に、記述「${mail}」は文字列「taro@aaa.co.jp」に、記述「${zip1}」は文字列「545」に、記述「${zip2}」は文字列「8522」に、記述「${address}」は文字列「大阪市阿倍野区長池町22番22号」に、それぞれ書換える。
このようにして、ステップS33〜S35では、図9に具体例が示される送信データ処理記述データに含まれるすべての識別子を入力データにおいて対応付けられている属性値に置換えて、図12に示されるような、サーバ2へ送信する送信用のデータを完成する。
なお、送信データ処理記述データに記述されるアクセス情報は、図9に示されるように、送信用のデータのデータ構成のみでなく、図13に示されるような送信方法や送信先が含まれていてもよい。図13に示される送信データ処理記述データでは、一行目にデータ送信方法と送信先とが記述されている。具体的には、データ送信方法としてHTTPのGETメソッドを利用することが記述され、送信先としてURL(Uniform Resource Locators)「WWW.AAA.co.jp/prize」が記述されている。この場合、ステップS25において、送信データ処理部1314は、WWWプログラム1370へ必要なデータを渡してエンコードさせ、指定されたURLへデータを送信させる。
図14は、送信データ処理記述データに含めることのできる送信方法の記述例を示す図である。送信方法は、図13にも示されたように、一行目に、URI(Uniform Resource Identifier)とMethodとで記述される。具体的な送信方法としては、図14を参照して、URI Schemeが「http:」の場合、Methodが「get」「put」「post」を指定することができ、それぞれHTTPプロトコルのメソッドに対応したデータエンコードを実施し、送信する送信方法である。また、URI Schemeが「mailto:」の場合は、SMTP(Simple Mail Transfer Protocol)、つまり電子メールでデータを送信する送信方法である。この場合、送信データにファイルが含まれる場合は、添付ファイルとして送信される。また、URI Schemeが「ftp:」の場合、FTP(File Transfer Protocol)にてデータ送信される。
上述のように、ユーザによって入力されたデータから抽出された入力項目ごとの入力データはデータ保存部1313によって記憶部130に保存されるので、ステップS16のUI表示処理において、UI処理部1312は、データ記憶部130に保存されている入力データから該当する識別子を抽出し、その識別子と対になっている属性値が表示されるユーザインタフェースを表示するためのUI表示処理を行なうことで、以前ユーザが入力したデータを再利用してユーザインタフェースを表示することが可能となる。
たとえば、図11に示される入力項目ごとの入力データが記憶部130に保存されているものとする。図11は、具体的には、図7に示されるUI記述データと図9に示される送信データ処理記述データとを含む入力フォームデータによって以前入力されたデータから抽出された入力項目ごとの入力データであるものとする。そのとき、ステップS15でUI処理部1312が入力フォームデータ取得部1311からUI記述データを受取ると、ステップS16では、図15に示されるようなUI表示処理が実行される。
すなわち、図15を参照して、UI処理部1312は、入力フォームデータ取得部1311から渡されたUI記述データを解析すると共に(S101)、記憶部130から保存されている入力データを読出す(S102)。そして、UI記述データに記述される入力項目の属性名を示す識別子と、記憶部130から読出した入力データに含まれる属性名を示す識別子とを比較する(S103)。
ステップS103での比較の結果、一致する識別子がある場合には(S104でYES)、識別子が一致する入力項目の入力欄に、その識別子と対にして記憶部130に保存されている属性値を表示させたユーザインタフェースをディスプレイ144に表示するよう処理を行なう(S105)。また、識別子が一致しない場合には、その入力項目についてはユーザ入力を受付けるために空欄または選択肢を選択可能に表示させるユーザインタフェースをディスプレイ144に表示するよう処理を行なう(S106)。この処理を、UI記述データに記述されるすべての入力項目に対して順に行なう(S107)。
具体的には、図7に示されるUI記述データの記述「<input type=“text“ name=“last_name“ />」に示される入力項目「姓」の入力欄には、識別子「last_name」と対になって記憶部130に保存されている属性値「山田」が入力されて表示される処理を行なう。
また、UI記述データの記述「<input type=“text“ name=“first_name“ />」に示される入力項目「名」の入力欄には、識別子「first_name」と対になって記憶部130に保存されている属性値「太郎」が入力されて表示される処理を行なう。
また、UI記述データの記述「<input type=“radio“ name=“sex“ value=“male“ />」と「<input type=“radio“ name=“sex“ value=“female“ />」とに示される入力項目「性別」のラジオボタンによる選択入力欄には、識別子「sex」と対になって記憶部130に保存されている属性値「male」に該当する「<input type=“radio“ name=“sex“ value=“male“ />」が選択された状態で表示される処理を行なう。
また、UI記述データの記述「<input type=“text“ name=“age“ size=”2“ />」に示される入力項目「年齢」の入力欄には、識別子「age」と対になって記憶部130に保存されている属性値「31」が入力されて表示される処理を行なう。
また、UI記述データの記述「<input type=“text“ name=“zip1” size=”3” />」に示される入力項目「郵便番号」の前半の入力欄には、識別子「zip1」と対になって記憶部130に保存されている属性値「545」が入力され、記述「<input type=“text“ name=“zip2“ size=”4” />」に示される入力項目「郵便番号」の後半の入力欄には、識別子「zip2」と対になって記憶部130に保存されている属性値「8522」が入力されて表示される処理を行なう。
また、UI記述データの記述「<textarea name=“address“ cols=”30” rows=”2“>」に示される入力項目「住所」の入力欄には、識別子「address」と対になって記憶部130に保存されている属性値「大阪市阿倍野区長池町22番22号」が入力されて表示される処理を行なう。
つまり、記憶部130に図11に示される入力データが保存されている場合、ステップS16では、図10に示されるユーザインタフェースが表示されることになる。そして、このユーザインタフェースが表示された後に、ステップS17以降の処理が前述同様に実行される。
携帯電話1においてこのような処理が実行されることで、ユーザは、以前に入力したデータを再度同じ送信先に送信する際に、再度入力操作を行なうことなく、同じ内容のデータを所定のアクセス方法で容易に送信することが可能になる。
この、記憶部130に保存された入力データは、そのデータが入力された際に用いられたユーザインタフェースを表示させるためのUI記述データとは異なるUI記述データでユーザインタフェースを表示させる際にも利用することができる。また、その際に、ユーザインタフェースの入力項目に表示された入力情報を修正することも可能である。
図16は、サーバ2から提供される入力フォームデータに含まれるUI記述データの具体例を示す図であって、図7に示されるUI記述データとは異なるデータを示している。より詳しくは、図7に示されるUI記述データに記述される入力項目「メールアドレス」が、図16に示されるUI記述データでは、入力項目「携帯電話のメールアドレス」と変更されている。ただし、両UI記述データのファイル名「prize.html」は同じとする。
この場合、ステップS32で、データ保存部1313は、入力データに、そのデータを入力する際に用いられたUI記述データの識別情報(たとえばファイル名)を付与して記憶部130へ保存する。ステップS101で、UI処理部1312は、入力フォームデータ取得部1311から渡されたUI記述データを解析して識別情報を取得し、ステップS102でそのUI記述データの識別情報が付与されている入力データを記憶部130から抽出することで、そのデータが再利用可能であることを判定できる。
図16に示されるUI記述データに対して上述の記憶部130に保存されている入力データを再利用してUI表示処理が行なわれることで、ステップS16では図17に示されるようなユーザインタフェースが表示される。図17は、具体的に図11で示される入力項目ごとの入力データを再利用してUI表示処理が行なわれた場合に表示される、各入力項目の入力欄がオートフィルされている状態のユーザインタフェースの具体例を示す図である。
図17に示されるユーザインタフェースの入力項目「携帯電話のメールアドレス」には、図8に示されるユーザインタフェースの入力項目「メールアドレス」に入力された通常のメールアドレスがオートフィルされているので、ユーザは、図17に示される状態から、入力項目「携帯電話のメールアドレス」の入力欄の入力データを修正して図18に示されるように入力する。そして、携帯電話1では、そのUI記述データに基づいてステップS17以降の処理が実行されて図19に示される送信用のデータが作成され、サーバ2へ送信される。
携帯電話1においてこのような処理が実行されることで、表示されるUIが以前入力操作に用いたUIとは異なる場合であっても、以前のUIの入力項目と同じ入力項目がそのUIに含まれる場合、ユーザは、その入力項目について、以前に入力したデータを再度入力する操作を行なうことなく、所定のアクセス方法で容易に送信することが可能になる。
ところで、記憶部130に保存される入力データは、図20に示されるように、属性名を示す識別子に対して複数の属性値が対応付けられていてもよい。
記憶部130に保存される入力データにおいて属性名を示す識別子に対して複数の属性値が対応付けられている場合、ステップS16において図21に示されるようなUI表示処理が実行される。
すなわち、図21を参照して、図15のフローチャートに示されるステップS101〜S103と同様の処理を、UI記述データに記述されるすべての入力項目に対して順に行なって、ステップS103での比較の結果、一致する識別子がある場合(S104でYES)、さらに、属性名を示す1つの識別子に対応付けられている複数の属性値が抽出された場合には、入力項目ごとに、それら複数の属性値を選択肢として選択可能に表示させたユーザインタフェースをディスプレイ144に表示するよう処理を行なう(S122)。
このようにして、ステップS16では、複数の属性値を選択肢として選択できるユーザインタフェースをディスプレイ144に表示し、ステップS17で、ユーザからの選択を受付ける。
より具体的には、図7に示されるUI記述データに対して記憶部130に保存されている図20に示されるような入力データを再利用してUI表示処理を行なう場合、UI処理部1312は、たとえば、入力項目「名」の入力欄に、識別子「first_name」に対応付けられている複数の属性値「太郎」,「花子」,「次郎」を選択可能にメニュー表示させたユーザインタフェースを表示して、ユーザの選択を受付ける。そして、選択された属性値を入力欄にオートフィルし、ステップS17以降の処理を実行する。
また、データ記憶部130に保持される入力データは、図22に示されるように、リスト構造であってもよい。このようなリスト構造である入力データは、以前ユーザが入力した入力データについて、その1回の入力操作における各入力項目の入力データを1組のデータとして対応付け、以前の入力操作におけるすべての入力データを1つのリストとして保持する構造である。図22に示されるデータでは、具体的に、ユーザが少なくとも3度入力操作を行なった場合に構築される入力データを示している。
データ記憶部130に保持される入力データがリスト構造のデータである場合、ステップS16において、図23に示されるようなメニュー「山田,太郎」,「山田,花子」,「山田,次郎」が選択可能に表示されたユーザインタフェースをディスプレイ144に表示し、ステップS17で、ユーザからの選択を受付ける。UI処理部1312は、リスト構造の入力データから、選択されたメニューに対応付けられている1組の入力データを抽出し、該当する入力項目の入力欄に対応する属性値をオートフィルする。
携帯電話1においてこのような処理が実行されることで、ユーザは、以前に入力したデータを再度同じ送信先に送信する際に、再度入力操作を行なうことなく、簡単な選択操作を行なうだけで、同じ内容のデータを所定のアクセス方法で容易に送信することが可能になる。
なお、記憶部130には、予め送信データ処理記述データが保存されていてもよく、ステップS24の送信用データ書出処理において、記憶部130に保存されている送信データ処理記述データが用いられてもよい。さらに、記憶部130には複数の送信データ処理記述データが保存されていてもよく、ステップS24の送信用データ書出処理において、選択された送信データ処理記述データが用いられてもよい。複数の送信データ処理記述データが記憶部130に保存されている場合、ステップS24の送信用データ書出処理においては、図6に示される処理に替えて、図24に示される処理が実行される。
すなわち、図24に示されるように、ステップS32で、データ保存部1313において、抽出された入力項目ごとの入力データが記憶部130へ保存されると共に、送信データ処理部1314へ渡されると、送信データ処理部1314において、記憶部130に保存されている送信データ処理記述データの中から用いる送信データ処理記述データを特定する処理が実行される(S131)。そして、以降のステップS33〜S36においては、ステップS131で特定された送信データ処理記述データが用いられる。
たとえば、図9に示される送信データ処理記述データと、図9に示される送信データ処理記述データとは異なる構造の送信用のデータを作成するための、図25に示されるデータ処理記述データとが保存されており、ステップS131において図25に示されるデータ処理記述データが用いる送信データ処理記述データとして特定された場合、ステップS33〜S36が実行されて図26に示される送信用のデータが作成される。
ステップS131における送信データ処理記述データの特定方法としては、いくつかの具体的な方法が挙げられる。たとえば、記憶部130へ保存される複数の送信データ処理記述データを選択可能に表示し、ユーザの選択を受付ける方法であってもよい。また、送信データ処理記述データに記述されるアクセス情報に送信方法や送信先が含まれる場合には、送信データ処理記述データの記述が参照されて、予め決められている、または選択された送信方法や送信先に該当する送信データ処理記述データが特定される方法であってもよい。また、記憶部130に保存されている入力データと送信データ処理記述データとが対応付けられている場合、再利用された入力データに対応する送信データ処理記述データが自動的に特定されてもよい。なお、その場合、記憶部130に保存されている入力データと送信データ処理記述データとの対応は、予め記憶部130に記憶されていてもよいし、記憶部130に保存されている入力データに対応する送信データ処理記述データを特定する情報が含まれていてもよい。また、入力フォームデータに送信データ処理記述データに替えて記憶部130に保存されている送信データ処理記述データを特定する情報が含まれて、その情報に基づいて送信データ処理記述データが特定される方法であってもよい。
携帯電話1においてこのような処理が実行されることで、ユーザは、以前に入力したデータを、そのときのアクセス方法とは異なるアクセス方法で送信する場合であっても、再度入力操作を行なうことなく、または簡単な選択操作を行なうだけで、同じ内容のデータを所定のアクセス方法で容易に送信することが可能になる。
さらに、ステップS24の送信用データ書出処理のステップS35において、送信データ処理記述データの文字列を属性データの文字列に書換える書換処理に加えて(または替えて)、送信データ処理記述データの文字列を所定のファイルに書換える書換処理が実行されてもよい。
具体的に、図27に示されるUI記述データおよび図28に示される送信データ処理記述データが含まれる入力フォームデータを処理する場合について説明する。
UI処理部1312において図27に示されるUI記述データに対してステップS16のUI表示処理が実行されて、図29に示されるユーザインタフェースがディスプレイ144に表示される。そして、各入力項目について、ユーザから(または記憶部130に保存されている入力データが再利用されて)、図30に示されるようなデータが入力されたとする。すなわち、図26に示されるUI記述データに基づいて、入力項目「写真」に、写真データのファイルの入力を受付ける。
この場合、ステップS24の送信用データ書出処理のステップS35では、図28に示される送信データ処理記述データに基づいて、文字列の書換処理と共にファイルの置換処理が実行される。
具体的には、ステップS31において、UI処理部1312は、ステップS23で書換えられたUI記述データの中から、ユーザが入力した、ファイル「/picture/20040129.jpg」を含むデータを抽出し、データ保存部1313へ渡す。データ保存部1313では、渡されたファイル「/picture/20040129.jpg」にファイル名「20040129.jpg」が付与されて、属性名を示す識別子「photo」に対応する属性値として記憶部130の所定領域に格納される。
このとき、ステップS31において抽出されるユーザの入力したデータのデータ形式は送信方法に沿った形式であって、たとえば、multipart/form−data形式やmultipart/mixed形式などの形式が該当する。そして、ステップS32では、抽出された各入力データが図31で示されているデータ形式で記憶部130に保存される。具体的には、ステップS32では属性の型が定義される。入力データがファイルの場合は、属性の型はファイル名として定義され、その属性値にファイル名が格納される。
ステップS35では、送信データ処理部1314において、図28に示される送信データ処理記述データに含まれる、属性名を示す識別子「photo」に対応する属性値として記憶部130からファイル名「20040129.jpg」のファイルが抽出され、送信データ処理記述データの6行目の記述「${photo}」の部分がファイル名「20040129.jpg」のファイルに書換えられる。そして、ステップS36において、ファイル名「20040129.jpg」のファイルの内容が含まれる送信用のデータが書出される。具体的には、図28に示される送信データ処理記述データの該当部分がファイル名「20040129.jpg」のファイルや文字列に書換えられて、図32に示されるような送信用のデータが書出される。
携帯電話1においてこのような処理が実行されることで、文字列のみならず、写真や音声などの様々なファイルを、所定のアクセス方法で容易に送信することができる。また、同様にして、以前に入力した写真や音声などのファイルも、再度入力操作を行なうことなく、または簡単な選択操作を行なうだけで、同じ内容のデータを所定のアクセス方法で容易に送信することが可能になる。このため、本実施の形態に述べた、懸賞の応募を受付けるサーバ2に対して懸賞応募用のデータを送信する場合のみならず、たとえば、クライアント装置1からプリンタに該プリンタ固有のアクセス方法でプリント対象のデータを送信する場合など、クライアント装置1から所定のデータ処理装置に対して、特定の形式等のアクセス方法でデータを送信して、特定の処理を実行させる場合に有効に用いられる。
さらに、上述のデータ処理方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM、ROM、RAMおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 携帯電話、2 サービス提供サーバ、110 通信部、120 制御部、130 記憶部、140 入出力部、142 キーコード入力デバイス、144 ディスプレイ、146 マイクロフォン、148 スピーカ、149 カメラ、1300 データ解析プログラム、1310 入力フォーム処理プログラム、1311 入力フォームデータ取得部、1312 UI処理部、1313 データ保存部、1314 送信データ処理部、1315 イベント管理部、1320 音声データ録音プログラム、1330 アドレス帳プログラム、1340 ファイル取得プログラム、1350 画像撮影プログラム、1360 テキスト編集プログラム、1370 WWWブラウザプログラム、1380 メールプログラム、1390 FTPプログラム。