JP2005259039A - 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム - Google Patents

表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム Download PDF

Info

Publication number
JP2005259039A
JP2005259039A JP2004072990A JP2004072990A JP2005259039A JP 2005259039 A JP2005259039 A JP 2005259039A JP 2004072990 A JP2004072990 A JP 2004072990A JP 2004072990 A JP2004072990 A JP 2004072990A JP 2005259039 A JP2005259039 A JP 2005259039A
Authority
JP
Japan
Prior art keywords
input
verifier
terminal
dividing
division
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004072990A
Other languages
English (en)
Other versions
JP4179553B2 (ja
Inventor
Fumihiko Kitayama
文彦 北山
Shinichi Hirose
紳一 広瀬
Hiroaki Nakamura
宏明 中村
Takeshi Kondo
豪 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2004072990A priority Critical patent/JP4179553B2/ja
Priority to US11/081,072 priority patent/US20050200907A1/en
Publication of JP2005259039A publication Critical patent/JP2005259039A/ja
Priority to US12/140,116 priority patent/US8352861B2/en
Application granted granted Critical
Publication of JP4179553B2 publication Critical patent/JP4179553B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/105Human resources
    • G06Q10/1053Employment or hiring

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】 表示画面が小さい等の能力の低い端末にフォームを提供するに際して、ユーザが操作し易く、また入力エラーが起きたときにエラー修正がし易いようなフォームに分割する自動分割アルゴリズムを提供する。
【解決手段】 ユーザが使用するクライアントデバイス50に適合した形態でフォームの分割表示を行うように表示制御情報を生成するWebサーバ10であって、クライアントデバイス50からのフォーム要求を受信するHTTP要求受付部12と、フォーム要求のあったフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを格納するアプリケーションコードDB31と、取得された端末能力に合わせ、読み出されたフォームの画面定義および検証器のコードを用いてフォームを分割するフォーム分割部21と、クライアントデバイス50に表示される画面情報を分割結果から生成する画面生成部22とを有する。
【選択図】 図1

Description

本発明は、ユーザが使用する端末に適合した形態で文書等の表示を行うための制御命令を生成する方法及び機構に関する。
Webベース技術の浸透に伴い、ユーザインタフェースとしてWebブラウザを用い、アプリケーション本体はWebサーバ(アプリケーション・サーバ)で稼働させるような、いわゆるシン(thin)クライアント型のシステムが利用されている。このとき、サーバからクライアントに送られる情報はフォームを含むHTML文書、OMA(Open Moblie Aliece; http://www.openmobilealliance.org/)が標準と定めるWML、HTMLのサブセットとなる言語であるCompactHTML等であり、クライアントの端末では、Webブラウザさえ動けば、実行に先立ってアプリケーションの配布・インストール等の作業を特に行うことなく、アプリケーションを実行させることができるようになる。また、一般的には、クライアント側でアプリケーションを実行するのに比して、クライアント側はより処理能力の低いハードウェアで運用することができる。
かかるクライアント端末には、従来、ローエンドのPCが用いられてきた。しかし、最近では、更に処理能力の低く且つ低コストであるPDA(Personal Digital Assistants)、ハンドヘルドPC、セット・トップ・ボックス、カーナビゲーション・システム等でもWebブラウザが動くようになってきている。また、Webブラウザ機能を有する携帯電話のような新しい端末機器も開発されている。そのため、例えば、広い表示領域を有するPCではうまく表示されていたWebページが、より狭い表示領域を有するPDAでは頻繁なスクローリング操作を必要とする等、使い勝手が非常に悪くなってしまう。そこで、従来技術として、フォームを含むWeb画面をデバイスに依存しない階層構造記述から各種端末画面に最適化するデータ構造と、そのアルゴリズムを提供する技術が存在する(例えば、特許文献1、特許文献2、および特許文献3参照。)。
また、他の従来技術として、制約記述システムを用いることにより入力フィールドの一部が入力された時点(分割フォームのページが切り替わった時点)で、対応する検証器を動作させるものが存在する(例えば、特許文献4参照。)。
特許第3202968号公報 特開2000−194612号公報 特開2000−76473号公報 特開平9−204285号公報
この特許文献1、特許文献2、および特許文献3などに記載の従来の方法は、アプリケーション作成時にデバイス非依存の記述として画面の論理的構造が適切に指示されていれば、フォームも適切な構造に変換することができる。しかしながら、アプリケーションに存在する検証器に関しては考慮されていない。そのために、分割ページ間の遷移時にサーバとの通信をするにもかかわらず、サブミット(Submit)ボタンを最後に押すまではフォームの検証器が作動せず、使い勝手の点で問題が残る。また、検証器がエラーを発見したとしても分割画面の最初から(あるいはインデックスページから)表示を行うため、エラーの発生した箇所を直ぐに表示することができず、修正に手間取り、使い勝手が悪くなる。更に、画面作成においてグループ化などの構造が記述されていなければ,当然に適切な分割をすることができない。
また、上記特許文献4では、分割フォームのページが切り替わった時点で対応する検証器を動作させることができる。しかしながら、フォームの分割の仕方に関して、入力フィールド間の関係や検証器のことは全く考慮されておらず、例えば、州・県、都市、町名入力フィールドのように、意味的につながり(あるいは、同時に検証器で検証されるようなもの)がある場合であっても、別の画面に分割されてしまう可能性がある。このため、これらのページでフォームデータを入力して画面を遷移しても検証器が作動しない。更に、一時に関係する入力データが全部は見えないので、入力時にユーザが戸惑い、また、検証器によりエラーが発見されたときに修正画面が分割されて使い難くなる。
ここで、入力値の検証器を持つWebフォームとは、Webアプリケーションにおける処理を伴う入力画面で、入力項目(入力フィールド)に対して各種の検証器を持ち、ユーザがSubmitボタンで処理を要求し、かつ、全ての検証が完了した場合(全ての検証器がOKという返事を返す場合)、フォームに用意された処理を実行するというものである。これらの検証器が1つでもNGを返した場合、フォームの処理は行われずユーザに適切なエラーが返され、ユーザに修正を求める。
例えば検証器としては、各入力フィールドの値のタイプ(数値やe-mailアドレス形式)をチェックするような単一フィールドを調べるものや、複数の値の間の制約をチェックするようなもの、更には、ユーザの入力が行われたかどうかをチェックするものなどがある。検証器は、サーバで実行されるプログラムコードや、端末上で実行されるWeb文書上のスクリプトプログラムとして与えられる。
このようなフォーム(Webフォーム)で特に複雑な入力画面を画面サイズの異なる端末に表示する場合、適切に分割する必要がある。ここで、適切な分割としては、まず、ユーザの入力時に端末の画面サイズやユーザインタフェースに合わせて操作し易い分割であること、また、入力エラーが起きたときにエラー修正がし易いような分割にすることが挙げられる。より具体的には、分割された画面間を移動した時点で検証器が作動しその画面で入力した情報が直ぐに検証されること、検証器によりエラーが発見された場合は対応するページにアクセスし易いこと、更には、検証が通る可能性があるときのみフォーム入力のSubmitボタンが押せるように、検証器で必ずエラーになると解っているときは押せないようすることが挙げられる。
例えば、ユーザIDとパスワードとのフィールドを持つようなログイン画面を考えると、ユーザIDとパスワードとのフィールドが別々の画面に分割された場合には、明らかにユーザは戸惑うことになる。パスワードを入力しているときに、別の画面で入力したユーザIDをその場で確認することができないからである。また、ログインがエラーになった場合、ユーザIDが間違っている場合とパスワードが間違っている場合の2通りが考えられるが、これらのフィールドが分割された画面に存在すると、エラー時にはどちらかのページしか表示できないのでユーザに余計なページめくりをさせることになる。別の例としては、住所(県・州、都市名、町名)、電話番号、会社名など、非常に多くの入力項目を持つフォームを分割する場合を考えると、このような多様な情報の入力において、ユーザは自由に入力項目の間を行き来して入力していくのが自然と思われる。このとき、入力が完了してSubmitする場合に、必ずしもSubmitボタンがある最後のページにいるとは限らず、ユーザにとっての使い勝手が悪い。また、全てのページにSubmitボタンを付けてしまうと、全ての入力が終わってないのにSubmitが行われる可能性があり、不要なエラー処理の実行やエラー画面をユーザに見せることになり好ましくない。
ここで、互いに関係を持つような複雑で入力項目の多いWebフォームを携帯電話のような小画面に分割する場合、上述した使い勝手を考えると、次のような条件を満たす必要がある(分割の必要条件)。
(条件1)
分割後の1ページのサイズは、端末の画面サイズ・受信バッファの制限による上限を超えることができない。
(条件2)
1つの検証器が参照する入力フィールドは2つ以上の分割フォームに属しない。
更に、ユーザにとって好ましい状況を考えると、次の2条件も満たすことが望ましい。
(条件3)
条件2を満たす分割のうち分割の個数が最小になる。
(条件4)
条件2を満たす分割のうちサイズが最大となるページを比較し、そのサイズが最小になる。即ち、分割されたグループ同士の大きさのバランスがとれている。
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、互いに関係を持つような複雑で入力項目の多いWebフォームを例えば携帯電話のような小画面に分割して提供する際に、フォーム要素の分割に合わせた検証コードの分割とその実行を可能とすることにある。
また他の目的は、様々な能力を持つ任意の端末に対して柔軟に対応できるように、例えば上記の4条件を満たすような自動分割アルゴリズムを提供することにある。即ち、フォームをこのように分割したり、例えば分割フォームのページテンプレートをデザイン時に予め生成したりする場合に、実行時のフィールドの入力状況や各検証器の完了状態の表示、Submitボタンの自動配置を動的に行うことが望ましい。
更に他の目的は、端末の画面サイズやユーザインタフェースに合わせ、ユーザが操作し易く、および入力エラーが起きたときにエラー修正がし易いようなフォームに分割する自動分割アルゴリズムを提供することにある。
また更に他の目的は、検証器の状態表示やSubmitボタンを付加するような分割フォーム画面の自動生成方法を提供することにある。
かかる目的のもと、本発明は、分割された画面間を移動した時点で可能な限り検証器が作動し、その画面で入力した情報が直ぐに検証されること、検証器によりエラーが発見された場合は対応するページにアクセスし易いこと、更には、検証が通る可能性があるときにフォーム入力のSubmitボタンが押せるようになっていること等、各種端末画面に応じて最適化するデータ構造とアルゴリズムを提供している。即ち、本発明は、ユーザが使用する端末に適合した形態でフォームの分割表示を行うように表示制御情報を生成する方法であって、端末からフォーム要求を受信するステップと、フォーム要求のあった端末の端末能力を取得するステップと、記憶装置からフォーム要求のあったフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出すステップと、取得された端末能力に合わせ、読み出されたフォームの画面定義および検証器を用いてフォームを分割するステップと、分割して得られたサブフォームを端末に送信するステップとを含む。
ここで、この分割するステップは、検証器と入力項目との参照関係を導出し、同一の検証器から参照されている入力項目は同一グループとなるように入力項目のグループ分けが行われることを特徴とすることができる。また、この分割するステップは、グループ分けがなされたグループが端末能力に基づくサイズ以下か否かを判断し、このサイズを超えるグループの中で異なる2つ以上の検証器により参照される入力項目をコピーして参照関係が修正されることを特徴とすることができる。
ここで、この分割するステップによりグループ分けがなされたグループについて、全ての隣り合うグループを併合した併合結果が端末能力を超えるように、グループを調整する分割調整ステップを更に備えたことを特徴とすれば、分割の個数を最小にすることができる点で好ましい。また、このサブフォームの入力項目に対するユーザの入力を取得し、入力項目と参照関係にある検証器の状態をユーザに伝達するためのユーザインタフェースを生成するステップを更に備えたことを特徴とすれば、ユーザの操作性を更に向上させることができる点で優れている。
他の観点から捉えると、本発明が適用される表示制御情報生成方法は、記憶装置からフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出し、端末の端末能力に合わせてフォームを分割するステップと、分割して得られたサブフォームと共に、フォームの各入力項目に対する状態および検証器の状態を含む内部状態を表示するための表示ユーザインタフェースを生成するステップと、生成された表示ユーザインタフェースを端末に提供するステップとを含む。
ここで、この表示ユーザインタフェースは、分割して得られた特定のサブフォームと検証器との対応関係を表示することを特徴とすることができる。例えば、対応関係がわかるように各検証器を関係のあるサブフォームに対応する領域に分けて表現する等である。また、現在表示しているサブフォームの全体に対する位置付けを明示的に表示することを特徴とすることができる。更に、分割して得られたサブフォームの中で、該当するサブフォームに別のサブフォームへのハイパーリンクを作成するステップを備えたことを特徴とすれば、分割された画面に対してユーザが直接的に操作できる点からも好ましい。
一方、本発明は、ユーザが使用する端末に適合した形態でフォームの分割表示を行うように表示制御情報を生成するコンピュータであって、端末からのフォーム要求を受信する要求受信手段と、フォーム要求のあったフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを格納する格納手段と、端末のフォーム表示に関する端末能力を取得する端末能力取得手段と、この端末能力取得手段により取得された端末能力に合わせ、格納手段から読み出されたフォームの画面定義および検証器のコードを用いてフォームを分割する分割手段と、この分割手段による分割結果を用いて端末に表示される画面情報を生成する画面生成手段とを有する。
ここで、この分割手段は、分割後の1ページのサイズが端末の画面サイズおよび端末の受信バッファの制限による上限を超えないようにフォームを分割すること、または、1つの検証器が参照する入力項目は2つ以上の分割フォームに属しないようにフォームを分割することを特徴とすることができる。加えて、フォームの分割個数が最小となるようにフォームを分割すること、フォームを分割してサイズが最大となるページについて分割方法ごとにサイズを比較しページのサイズが最小となる分割方法にてフォームを分割すること、を特徴とすることができる。
更に、この画面生成手段は、分割手段により分割して得られたサブフォームと共に、フォームの各入力項目の状態、および検証器の状態を含む内部状態を表示する画面情報を生成することを特徴とすることができる。
また本発明は、Webサーバ等の各種コンピュータにて実行されるプログラムとして把握することができる。このプログラムは、コンピュータに、フォーム要求のあった端末の端末能力を取得する機能と、記憶装置からフォーム要求のあったフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出す機能と、取得された端末能力に合わせ、読み出されたフォームの画面定義および検証器を用いてフォームを分割する機能とを実現させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うようにコンピュータを機能させる。
ここで、このフォームを分割する機能は、検証器と入力項目との参照関係を導出し、同一の検証器から参照されている入力項目は同一グループとなるように入力項目のグループ分けが行われることを特徴とすることができる。また、このフォームを分割する機能は、グループ分けがなされたグループが端末能力に基づくサイズ以下か否かを判断し、サイズを超えるグループの中で異なる2つ以上の検証器により参照される入力項目をコピーして参照関係が修正されることを特徴とすることができる。
他の観点から捉えると、本発明が適用されるプログラムは、コンピュータに、記憶装置からフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出し、フォーム内容を出力する端末の端末能力に合わせてフォームを分割する機能と、分割して得られたサブフォームと共にフォームの各入力項目に対する状態および検証器の状態を含む内部状態を表示するための表示ユーザインタフェースを生成する機能とを実現させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うようにコンピュータを機能させる。
ここで、分割して得られたサブフォームの中で、該当するサブフォームに別のサブフォームへのハイパーリンクを作成する機能を更に備え、表示ユーザインタフェースを生成する機能は、作成されたハイパーリンクを内部状態の表示に適用させることを特徴とすることができる。
本発明によれば、表示画面が小さい等の能力の低い端末にフォームを提供するに際して、ユーザが操作し易く、また入力エラーが起きたときにエラー修正がし易いようなフォームに分割するための自動分割アルゴリズムを提供することができる。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用されるフォーム自動分割システムの構成を示した図である。アプリケーション実行時のシステム構成は、ネットワーク40で接続されたWebサーバ10と端末である各種のクライアントデバイス50からなる。
クライアントデバイス50は、画面サイズやメモリ容量など能力が様々に異なるが、Webサーバ10にWWW文書を要求しそれを受け取って処理をすることのできるWWWブラウザ51を内蔵している。
ネットワーク40は、インターネットなど、公的、広域的なネットワークでもローカルなネットワークでもよい。
一方、Webサーバ10は、分割フォーム実行制御部11とHTTP要求受付部12とを備えている。また、ハードディスクドライブ(HDD)等の記憶装置に格納される各種データベース(DB)として、アプリケーションコードDB31、デバイス情報DB32、分割フォームDB33を備えている。また、分割フォーム実行制御部11の作業用メモリとして、RAM等から構成されるワーキングメモリ34を備えている。
HTTP要求受付部12は、分割フォーム(サブフォーム)に関する以外の要求の処理コード(標準的Webサーバの機能やアプリケーションのロジック実行など)も含む。一方、分割フォーム実行制御部11は、フォーム分割・生成部20をサブシステムとして備え、アプリケーション実行コードや分割済みフォーム(分割フォーム)を入力として、クライアントデバイス50からの要求に応じて分割されたフォームの実行を制御している。その際、フォームおよびその各入力フィールドや検証器の状態を一時的に保存するためにワーキングメモリ34を使用している。
Webサーバ10にて実行されるWebアプリケーションは、画面定義と処理コードとの集まりからなる。特にフォーム処理に関しては、フォーム画面定義、入力の検証器コード(検証器)、およびフォーム処理コードから構成される。これらは、Webアプリケーション開発者によって作成され、図1に示すフォーム自動分割システムに入力されるものである。尚、例えば、未入力チェック、文字列の長さ、入力値のタイプチェック等、明示的に検証器のコードが与えられていない場合もあるが、本実施の形態では、そのような場合も明示的なコードが利用可能として考えている。
尚、本実施の形態において、入力値の検証器を持つフォーム(Webフォーム)とは、Webアプリケーションにおける処理を伴う入力画面で、入力項目(入力フィールド)に対して各種の検証器を持ち、クライアントデバイス50のユーザがSubmitボタンで処理を要求し、かつ、全ての検証が完了した場合(全ての検証器がOKという返事を返す場合)、フォームに用意された処理を実行するというものである。これらの検証器が1つでもNGを返した場合、フォームの処理は行われずユーザに適切なエラーが返され、ユーザに修正を求める。
また、検証器(検証器コード)は、各入力フィールドの値のタイプ(数値やe-mailアドレス形式)をチェックするような単一フィールドのチェック、複数の値の間の制約チェック、ユーザの入力が行われたかどうかのチェック等を行う。これらの検証器は、Webサーバ10で実行されるプログラムコードやクライアントデバイス50上で実行されるWeb文書上のスクリプトプログラムとして与えられる。
フォーム分割・生成部20は、分割フォーム実行制御部11によって制御され、必要な場合は、記憶装置であるアプリケーションコードDB31から(分割前の)フォーム定義(フォーム画面定義)、検証器コード、およびフォーム処理コードを読み込み、分割されたフォームを分割フォームDB33に出力している。その際、ターゲットとなるデバイス情報をデバイス情報DB32から読み出して使用し、端末の能力に合わせて分割を行っている。フォーム分割・生成部20の更なるサブシステムとして、フォーム内の項目を分割するフォーム分割部21と、分割されたフォームからページを生成する画面生成部22が存在する。尚、このフォーム分割・生成部20は、実行時のみならず、アプリケーション開発時に動作して予め分割済みフォームを生成しておくように構成することもできる。
フォーム分割部21は、各フォームの画面定義、フォーム内のフィールド(入力フィールド)に入力された入力値の検証を実行する検証器(例えば,Java言語で記述される)を入力として、対象とする端末(クライアントデバイス50)の能力に合わせて、与えられたフォームを分割している。フォームの画面定義は、例えば、XForms (http://www.w3c.org/TR/xforms)のようなXML言語で記述されてもよいし、端末で直接実行可能なHTMLのようなマークアップ言語で記述されていてもよい。尚、「Java」およびそれに関連する名称は商標または登録商標である。本明細書において、個別の記載は省略する。
画面生成部22は、フォーム分割部21の分割結果(後で述べるように入力項目のグループとして表現される)を入力として、対象とする端末(クライアントデバイス50)のWebページテンプレート(例えば、JSP(Java Server Pages)ファイル)を生成する。フォーム分割部21と画面生成部22は、端末の能力が予め判っていれば、Webアプリケーションの設計・開発時に動作してもよく、またアプリケーション実行時に動的に動作しても構わない。
分割フォーム実行制御部11は、分割されたフォームのWebページテンプレートと検証器のコード、およびフォーム処理コードを入力として、アプリケーション実行時にユーザ(クライアントデバイス50)との対話処理を行い、必要なコードを呼び出している。この分割フォーム実行制御部11およびサブシステムであるフォーム分割・生成部20は、Webサーバ10上で動作するプログラム(例えば、J2EE(Java2 Enterprise Edition)のServletコード)である。また、フォームの分割を実際に要求が行われた時点で動作させるようにする場合は、フォーム分割部21および画面生成部22も同様にWebサーバ10上で動作する。
ここで、Webサーバ10のハードウェア構成について説明する。
図2は、本実施の形態が適用されるWebサーバ10や各種クライアントデバイス50を実現するのに好適なコンピュータ装置のハードウェア構成例を模式的に示した図である。但し、クライアントデバイス50として携帯電話等の簡易なコンピュータ装置を使用する場合には、適宜、構成要素が省略される。
図2に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)101と、M/B(マザーボード)チップセット102およびCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102およびAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104とを備えている。また、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続された磁気ディスク装置(HDD)105、ネットワークインタフェース106と、更にこのPCIバスからブリッジ回路107およびISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフレキシブルディスクドライブ108およびキーボード/マウス109とを備える。
尚、図2は、本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としてもよいし、外部記憶装置として、ATA(AT Attachment)やSCSI(Small Computer System Interface)などのインタフェースを介してCD−R(Compact Disc Recordable)やDVD−RAM(Digital Versatile Disc Random Access Memory)などのドライブを設けてもよい。
次に、CPU101にて実行される機能である、分割フォーム実行制御部11、フォーム分割・生成部20、およびフォーム分割部21および画面生成部22の処理動作について詳述する。
まず、分割の前提として、本実施の形態では4つからなる「分割の必要条件」に基づいて処理が実行される。前述の記載と重複するが、ここに記載する。
「条件1」
分割後の1ページのサイズは、端末(クライアントデバイス50)の画面サイズ・受信バッファの制限による上限を超えることができない(物理的な制限。必ず満たす必要がある強い制約)。
「条件2」
1つの検証器が参照する入力フィールドは2つ以上の分割フォームに属しない(条件1によりそのままではこの条件を満たせない場合があるが、入力項目や検証器をコピーして置き換えることにより解決する)。
「条件3」
条件2を満たす分割のうち分割の個数が最小になる(実用上は最小の近似でもよい)。
「条件4」
条件2を満たす分割結果が複数ある中で、その分割結果ごとにサイズが最大となるページのサイズ同士を比較し、そのサイズが最小となる分割結果を選ぶ。即ち、分割されたグループ同士の大きさのバランスがとれている(実用上は最小の近似でもよい)。
ここで、フォーム内の入力項目(入力フィールド)は、各々独立とは限らず意味的なつながりを持っていることが多いことから、そのつながりを反映した分割にすることが望ましい。また、これらの意味的なつながりは、ある一つの検証器がその関係する入力値を参照することで推定する。更に、検証器に対応した形でフォームを分割しておくと、エラーが発生した場合に、(1)ユーザにとってどこでエラーが起きたのかが判りやすい。(2)エラーが起きた場所にユーザをナビゲートし易い。という利点がある。また更に、各検証器に対応して検証結果を分割された画面上に表示し、更に直接的な操作が可能なように結果表示をハイパーリンクにすることも可能である。これにより、ユーザの操作性を向上させることができる。
Submitボタンは、そのページの入力完了により全ての検証器の検証が完了する可能性があるときのみ自動的に配置することが好ましい。このSubmitボタンが配置できるのは、そのページに関係しない検証器が完了しており、そのページに関係する検証器がそのページの入力により動作可能であることが条件になる。検証器が動作可能とは、その入力項目の値が参照可能(ユーザによる入力済み、または事前設定済み)になっていることである。
図3は、フォーム分割から、分割されたフォームの実行制御をするまでの全体のフローチャートを示した図である。フォーム処理として、まずステップ1では、対象とする端末(クライアントデバイス50)からのフォーム要求を受け付ける。また、端末能力が取得され、特定される。この端末能力の取得・特定は、実行時に動的に行う場合は、端末からの識別情報(例えばHTTPのUser-Agentヘッダ情報)を用いてリポジトリを検索するなどして行われる。または、OMA(Open Mobile Alliance)のUAProf(User Agent Profile)などの標準規格によって端末から直接端末能力を取得する場合もある。更に、Webサーバ10では、内部状態の初期化が行われる。
次に、ステップ2ではフォームの分割とサブフォームページ(Webページテンプレート)の生成が行われる。このステップ2の処理は、設計開発時に予め実行しておくこともできる。このステップ2の処理は、図4以降にて詳述する。
その後、ステップ3では、生成されたサブフォームページ(Webページテンプレート)から実際の画面文書(該当ページ(サブフォーム)、例えば、対象とする端末で扱えるHTML文書やWML文書などのマークアップ言語による文書)を生成して端末(クライアントデバイス50)に返信する。そして、サブフォームを取得した端末(クライアントデバイス50)のユーザによって、各種のフォーム入力作業が実行される。例えば、分割されたフォームを受け取り、入力処理を行って別のページにジャンプしたり、可能な場合はSubmitボタンを押してフォーム処理を要求したりする。
ステップ4では、ユーザからの処理要求を端末(クライアントデバイス50)から受け取る。ここで受け取る処理要求は、主としてフォームの入力項目の値を取得することと、サブミット(Submit)や別ページへのナビゲーション処理の判別である。また、セキュリティや認証などの必要な処理もここに含まれる。
ステップ5では、対応する検証器の呼び出しがなされ、内部状態が更新される。この内部状態とは、例えば、フォームの各入力項目に対する状態(未入力、入力済み、事前指定済み)と、実際に入力された値、各検証器の状態(OKかNG、または未検証)、および現在実行中の分割フォームページである。これらの内部状態はステップ1にて初期化されている。内部状態の更新では、入力された項目に対応する入力項目の内部状態が変更される。更に、各検証器の参照する全ての入力項目が参照可能(未入力でない状態)になったら検証器を動作させ、それぞれの検証器状態が更新される。更に、画面ナビゲーションの要求があれば、現在ページも指定されたとおりに更新される。
ステップ6では、ステップ5にて更新された内部状態をユーザに適切に伝達するためのユーザインタフェースを動的に生成する。このステップの処理は、図7にて詳述する。
その後ステップ7で、全ての必須入力項目が入力されかつ検証されたか否かが判断される。即ち、Submitボタンが押された場合に、全ての必須入力項目が入力され検証器の状態がOKになったか否かを調べ、条件を満たした場合にステップ8に進む。条件を満たしていない場合には、ステップ3へ戻り、ユーザとの対話処理が繰り返される。
ステップ8では、与えられたフォーム処理が実行される。図3に示すこのフローチャートでは省略されているが、ここでエラーが出た場合にエラー処理としてステップ3に戻ることも考えられる。正常に処理が終了した場合、与えられたフォームの処理を終了する。尚、Webアプリケーションの場合、複数のフォーム処理が組み合わされて実行される場合も多く、かかる場合には図3に示す処理全体を繰り返すことになる。
次に、ステップ2に示したフォームの分割・生成処理について説明する。
図4は、フォームの分割・生成処理の全体の流れを示したフローチャートである。
ここでは、まず、検証器(検証器コード)と入力項目(入力フィールド)との参照関係が導出される(ステップ2.1)。即ち、検証器のプログラムコードが解析され、検証器から参照される入力項目フィールドが明らかにされる。このような参照関係は、コンパイラ技術(コード分析、データフロー分析)、プログラムスライシングなどの従来技術を用いて求めることができる。実用上、プログラム文字列のパターンマッチで近似的に解析するだけでも問題ないことが多い。尚、検証器と入力項目フィールドの参照関係は、アプリケーション実行前に事前に求めておくことも可能である。
その後、フォーム分割・生成部20のフォーム分割部21にて、入力項目の分割がなされる(ステップ2.2)。ここでは、画面サイズ等で決まる所定の大きさ以下になるように入力項目グループの分割がなされる。この分割処理は図5を用いて詳述する。
また、フォーム分割部では、ステップ2.2の分割結果が適切になるように、更に調整がなされる(ステップ2.3)。具体的には、必要に応じて、適切な画面の大きさになるように小グループ同士が併合され、かつ、ステップ2.2で分割ができなかったグループについて、物理的制約による画面サイズを超えるものが分割される。この分割調整は図6を用いて詳述する。尚、与えられた端末(クライアントデバイス50)の画面サイズは、画面の表示能力(表示内容のレンダリング後の縦・横ピクセルサイズ)や送信文書の文字数による受信バッファの最大容量などで定義される。実際は、レンダリング結果をWebサーバ10側で知ることが困難であったり、動的な結果を返信文書に含むため、送信文書の正確な文字数を知ることが困難であったりする場合がある。このために、これらの近似となるような別の評価基準を用いることもできる。例えば、分割後のページに含まれる入力項目の個数(更に、入力フィールドのタイプによって重みを付けることもできる)を、このようなサイズとして使用することも有効である。
そして最後に、サブフォームの生成がなされる(ステップ2.4)。即ち、得られた分割結果を端末(クライアントデバイス50)で表示できるような表現形式の文書に変換する作業がなされる。かかる作業では、端末に合わせてコンテンツの適切なコーディング変換が実行され、クライアントデバイス50のWWWブラウザ51にて解釈できるマークアップ言語の文書に分割結果が変換される。
このステップ2.3やステップ2.4で行われる分割や変換などの端末適応処理は、上述した特許文献1などの既存技術で実行することができる。尚、これらの変換文書は、実行処理時の動的な情報(エラー情報や入力状態の表示、動的に表示されるSubmitボタン)を含むことから、最終的な画面文書ではなく動的な情報を含むことのできるテンプレート文書である。このようなテンプレート文書としてJSP(Java Server Pages)やASP(Active Server Pages)、PHP(Hypertext Preprocessor)などがある。
図5は、図4のステップ2.2による入力項目の分割処理を詳述したフローチャートであり、検証器(検証器コード)から入力項目(入力フィールド)への参照情報を用いたフォーム入力項目グループの分割アルゴリズムを示している。
ここでは、まず、同一の検証器から参照されている入力項目は同一グループとなるように入力項目のグループ分けがなされる(ステップ2.2.1)。即ち、任意の入力項目AとBに対しAとBの両方を参照するような検証器Vが1つでも存在するときはAとBは同じグループに入れる。かかるアルゴリズムの例としては、最初は1項目1グループとし、全ての検証器を順に調べ、上記の条件を満たす場合(2つ以上のグループを参照する場合)は、参照するグループを合わせて1つのグループにしていくようなものが考えられる。
ここで、全てのグループが端末能力に基づくサイズ以下になったか否か、または、これ以上分割不可か否かが判断される(ステップ2.2.2)。即ち、ステップ2.2.1で作成されたグループ(先に述べた「分割の必要条件」の「条件2」を満たすもの)が、先に述べた「条件1」も満たしているか否かがチェックされる。もしも満たされていれば、ステップ2.2における入力項目の分割を行うサブルーチンは終了する。ここで、端末によって決定されるサイズを超えるようなものがあれば、まずサイズを超えるようなグループが1つ選択され(ステップ2.2.3)、更にそのグループの中から、異なる2つ以上の検証器から参照されるような入力項目からできるだけ最適なものが1つ選択される(ステップ2.2.4)。尚、最適なものを選択する方法については後述する。
次に、選択した入力項目(入力フィールド)を2つにコピーする。このとき、コピー元のフィールドとコピー先のフィールドとは異なる検証器から独立して参照されるように参照関係が付け直される。即ち、選択された入力項目を、参照する検証器から共有されないように2つにコピーし、参照関係が修正される(ステップ2.2.5)。3つ以上の検証器から参照されている場合は、このコピーの方法も複数考えられるが、かかる選択方法についても後述する。その後、選択されたグループのサブグループへの分割が行われる。即ち、この入力項目がコピーされたグループを新たな入力として、ステップ2.2が再帰的に呼び出される(ステップ2.2.6)。そして、選択されたグループのサブグループへの分割を、与えられたグループの分割として適用し、即ち、出力結果の分割を現在の分割に適用して(ステップ.2.7)、ステップ2.2.1に戻る。但し、分割するためにコピーできる入力項目がこれ以上なくなった場合もループを終了する(ステップ2.2.2)。
また、ステップ2.2.4における選択において、最適なものが1つ選択されるが、これは、先に述べた「分割の必要条件」に示す「条件3」と「条件4」とを満たすことである。そこで、正確に求めるには、全ての複数の検証器から参照される入力項目に対し、ステップ2.2.5およびステップ2.2.6の処理(コピーと参照関係の修正方法)を試行して、分割個数とそのときのサブグループの最大サイズを記録する。また次の試行をする前にコピーや参照関係の変更を元に戻しておく。そして全ての試行が終了した際に、最小の分割数になるもの(入力項目とコピーの仕方)を選択する。この最小の分割数になる場合が複数ある場合には、更にサブグループの最大サイズが最小のものを選択する。それも複数ある場合には、任意の1つを選べばよい。例えば、最初に出てくる入力項目を無条件に選ぶ等である。より実用的には、ステップ2.2.3で最大のサイズのグループを選択する(複数ある場合は任意のものでよい)。その中で最も多くの検証器から参照されている入力項目を選ぶ(同様に複数ある場合は任意のものでよい)だけでも、よい結果を得ることができる。
図6は、図4のステップ2.3に示す分割調整の処理を詳述したフローチャートである。ここでは、分割されたグループが必要以上に細かい場合や、「分割の必要条件」に示す「条件2」だけではどうしても「条件1」が満たされない場合に、分割の調整を行うものである。ここではまず、分割の個数を最小にするために、全ての隣り合うグループによる併合結果を観察し、どの併合結果においてもクライアントデバイス50の端末能力に基づくサイズを超えるか否かが判断される(ステップ2.3.1)。これは、「分割の必要条件」に示す「条件3」が満たされているか否かを調べるものである。ここで「全ての隣り合うグループ」は、内容が順番に連続するフォームを分割して生成したグループの前後に隣り合うグループである。このステップ2.3.1で端末能力に基づくサイズを超える場合、即ち、これ以上併合するものがなくなれば、ステップ2.3.4にジャンプする。端末能力に基づくサイズを超えない場合には、併合結果がサイズを超えない、隣り合う2つのグループが選択される(ステップ2.3.2)。そして、このようにして選択された2グループを連結して、改めて1グループとして(ステップ2.3.3)、ステップ2.3.1に戻る。尚、「分割の必要条件」に示す「条件4」を満たすようにするには、ステップ2.3.2の選択順を与える必要があるが、正確に求めるには、全ての選択順を試行し、「条件4」(グループの最大サイズが最小となる)を満たす選択順を実行する。より実用的には、併合結果のグループサイズが最も小さい2グループを選択していく(同じサイズのものがあるときはその中から任意のものを選択する)ことだけでもよい結果が得られることが多い。
ステップ2.3.4〜ステップ2.3.6では、ここまでで「分割の必要条件」に示す「条件1」を満たすことができないときに調整を行うものである。基本的な考え方は、サブフォームを必要な大きさに分割し、必要条件2を満たすように検証器を仮想的にコピーして参照関係も修正している。まず、どのグループも端末能力に基づくサイズ以下か否かが判断される(ステップ2.3.4)。全てのグループがサイズ以下である条件を満たしていれば、分割調整処理のサブルーチンは終了する。サイズ以下ではないグループが存在する場合には、サイズを超えるグループを一つ選び、必要なサイズになるように分割する(ステップ2.3.5)。尚、この処理部分は上記特許文献1などの従来技術で実行することができる。その後、分割に合わせて、この分割されたグループを2つ以上同時に参照しないように、もとのグループを参照する検証器をコピーする(ステップ2.3.6)。即ち、例えば、Vという検証器がGというグループの入力項目を参照しており、GをG1とG2に分割したときにVがG1とG2の両方を参照していれば、G1だけを参照するV1とG2だけを参照するV2にVをコピーして置き換える。その後、ステップ2.3.4に戻り、サブルーチンを繰り返す。尚、この検証器のコピーは、後述する図7のステップ6.6およびステップ6.7におけるSubmitボタンの自動付加アルゴリズムでは無効にする必要がある。即ち、ステップ2.3.6で検証器がコピーされたとしても、ステップ6.6およびステップ6.7で使われる検証器はコピーする前のものでなければならない。
次に、フォーム分割・生成部20の画面生成部22にて主に実行されるページUIの作成について、図7〜図9を用いて説明する。
図7は、ページUIの作成処理を示したフローチャートである。ここでは、図3に示すステップ2で分割されたフォームに、検証器や入力状態の表示ユーザインタフェースやエラー修正のためのハイパーリンクを動的に生成するものである。動的に生成するためには、図4に示すステップ2.4でのページ生成時に、動的な情報を表示するような仕組みを入れておくことが必要である。これは、JSPのような動的なページ記述技術を使用することで実現できる。
図8は、生成されるJSPコードの一例を示した図である。この図8の例では、Apache Strutsを利用している。これは、あるフォームを3つに分割したページ(divPage1.jsp, divPage2.jsp, divPage3.jsp )の2番目のJSPの内容を示している。
また、図9は、分割フォームを携帯電話でレンダリングされたイメージ例を示している。
図8の6行目から9行目に、各ページに属する検証器の実行状態を表示するためのbean出力文がある。検証器状態の出力の一方法として、各ページの検証器の状態からページの状態を計算して、例えば、全ての検証器がOKならページの検証状態がOK、それ以外はページの検証状態はNGである等、各ページ1個の状態表示をするものがある。例えば、状態表示グラフィックス上のmouse overによる吹出しで検証器の説明が表示できるなど、対象端末に高度なUIがある場合には、ページ単位ではなく検証器単位で表示を行い、より詳細な情報を提示することもできる。かかる場合には、例えば、文字「|」がページ間に挿入されるなど、ページの切れ目が判りやすいように表示される。ユーザはどのページにエラーがあるか判るようになっている。
更に、表示部分そのものがハイパーリンクになっており、ユーザの直接操作により該当ページを素早く表示することができる(<a>タグ)。また、強調表示(<em>タグ)によりユーザに現在のページを意識させるようになっている。
これらの出力は、3行目と4行目のuseBeanによって指定されるJava Beanを制御することによって行われる。図7のステップ6.1、ステップ6.2、およびステップ6.3は、行3から行8までの出力を行っている。即ち、ページUIの作成では、まず、該当サブページに別のサブフォームへのハイパーリンクを作成する(ステップ6.1)。自分自身のサブフォーム(該当サブフォーム)はそのまま表示する。また、各サブフォーム内の入力項目を参照する検証器の表示UIを、そのハイパーリンクと対応させて配置する(ステップ6.2)。そして、内部状態から各検証器の状態を表示する(ステップ6.3)。ここでは、各検証器の状態(OKかNG、または未検証)をdivform.ValidatorStatusクラスのstatus1, status2, …プロパティにセットしている。実際にセットする値は、HTML画面でも表示されるように、例えば、”OK”(検証OKの場合)、”<em>ERR</em>”(検証NGの場合)であり、これらを出力している。可能であれば、この部分は<img>タグなどを用いたグラフィックス(ボックス表示)やカラーを用いることができ、よりユーザの視認性を高めることもできる。更に、未入力チェックのような特別の検証器は、異なる表示をすることにより更に使い勝手を向上させることもできる。例えば、検証がNGの場合は赤色で表示するが、未入力の場合はより小さなボックスの薄い赤色にする等といったことが考えられる。未入力は未だ入力していないだけで、必ずしもエラーとは言えないためである。
図7のステップ6.4およびステップ6.5は、図8の行9から行14の生成を行っている。即ち、入力項目フィールドを表示し(ステップ6.4)、前後のサブフォームやエラーのあるサブフォームへのナビゲーションリンクを作成する(ステップ6.5)。ここでは、行10のように入力項目の初期値も入力される。既にusername項目の値が別のページ(自分自身の前回の入力も含む)で入力されている場合には、ValidateStatusクラスのbeanに各入力済みの値をセットしておき、valueメソッドで呼び出せるようにしておく。このとき、入力項目グループの分割でコピーされた入力項目は、同一の値となるようにする。
尚、上記の例では、前頁と次ページへのリンクしかないが、エラーがあるページのみを選択して移動できるようなナビゲーションリンクを作成することも可能である。
図7のステップ6.6、ステップ6.7、およびステップ6.8は、図8の行12にあるbean出力文によるSubmitボタンの自動付加を実現している。まず、ステップ6.6では、図6に示したステップ2.3.6にてコピーする前の検証器で該当サブフォームを参照しないものが検証OKであるか否かが調べられる。検証OKでない場合には、ページUI作成処理が終了する。検証OKである場合には、ステップ6.7へ移行する。このステップ6.7では、自分自身を参照する検証器で、該当サブフォーム以外に未入力の必須入力項目がないか否かが調べられる。必須入力項目がページ外にある場合には、ページUI作成処理が終了する。このステップ6.6およびステップ6.7の2つの条件を満たした場合には、Submitボタンを該当ページに作成する(ステップ6.8)。即ち、Divform.SubmitMakerクラスのbeanに対し、Submitボタン作成を指示する。これは、例えば、makeSubmit()のようなメソッドを呼び出すことによって指示する。SubmitMakerクラスのbeanは、指示されると内部状態を変更してSubmitボタンを出力するようにする。実際には、JSPの出力を行う時点でrenderButtonプロパティが呼ばれ、内部状態をチェックしてSubmitボタンを出力する場合は、”<input type=”submit” value=”Login”/>”のような文字列を出力する。Submitボタンを出力できない場合は、空文字列を返し、結果的に他の分割ページへの移動だけしかできないようする。以上のようにして、ページUIの作成処理が終了する。
このようにして作成される携帯電話の画面例は、図9に示すようになる。図9に示す検証器の状態表示を伴う分割フォームのユーザインタフェースでは、携帯電話200の画面210に、検証器ごとに設けられる複数のボックスを表示するサブフォーム状態表示211、検証器に対応してどこで区切れているかを線「|」で区切って示す分割表示212、画面210上にて現在フォームを表示している検証器のボックスを下線で示し、フォームの全体に対する分割フォームの位置づけを明らかにする現在フォーム表示213、状態表示グラフィックス上のmouse overによる吹出しで検証器の説明を行う吹き出し表示214、サブフォーム内にて各項目を入力するための入力項目215、および必要なときに自動付加されるサブミットボタン217、ポップアップボタン218が生成されている。サブフォーム状態表示211では、1つの四角は検証器が示されており、各検証器の状態を把握することができる。各検証器の状態を例えば色を変えて表示することで、各分割サブフォームにて入力がされているか否か、検証されているか否か等の状態を認識することができる。また、サブフォーム状態表示211にてハイパーリンク機能を使えば、ユーザは所定のボックスを指定することで該当するサブフォーム画面を直ぐに表示することが可能となる。
次に、多くの入力フィールドを持つHTMLフォーム入力画面を小画面端末(Webアクセス可能な携帯電話)用に分割する例について説明する。
図10は、出願人が提供するWebサイト内の求職者応募フォームのページの一部を示した図である。ここでは、互いに関連し合った29もの入力フィールドが存在し、入力が必ず要求されているフィールドなど、幾つかの検証器を有している。携帯電話のような小画面で一度に表示するのは明らかに困難であり、仮に表示できたとしてもユーザの使い勝手はよくないと考えられる。
フォームの入力として、このHTML文書、検証器としてJavaで記述された各フィールドの検証器プログラムが与えられているとする。このフォームには各種の検証器が存在すると考えられる。例えば、図10にて、Requiredとしてフィールドに「*」マークで印がついているものは、ユーザが必ず入力しなければいけない必須入力フィールドであるが、かかる必須入力フィールドが入力されたかどうかを調べるのも検証器の一つである。
First Nameが入力されたかどうかの検証は次のようなJavaプログラムで記述される:
boolean requiredValidator(HttpServletRequest request) {
String fieldValue = request.getParameter(“First name”);
If(fieldValue != null && fieldValue.length() > 0) return true;
else return false;
}
ユーザからの入力はrequestというJava オブジェクトからgetParameterメソッドで得ることができる。引数は、フィールド固有の識別文字列(上述の例では“First name”)を与える。もしも、この文字列が空文字列(nullまたは長さが0)ならば、入力が未だなされていないということで、この検証器(requiredValidatorというメソッド)はfalseを返す(すなわち検証がNG)。それ以外はtrueを返す(検証済み)。この例の場合は、参照する入力項目はrequestオブジェクトのgetParameterの引数を見れば判る。明らかにFirst nameという入力項目はこの検証器(Required)から参照されていることが判る。
同様に、Last nameも同様なプログラムで与えられ、別のRequired検証器はLast nameを参照していることが判る。実際にはJavaプログラムの別のメソッドで入力フィールド名を参照することもあるので、より正確にはJavaコードのデータフロー分析が必要である。このような必須入力フィールドは、同様に各々のRequired検証器と関連付けることができる。また同様に、名前が正しく入力されているかの検証器(Person Name)は、First name、Middle name、Last nameの3つの入力フィールドを見ており、人の名前として正しい入力がされたか(即ち、First nameとLast nameが空でなく正しい文字が使われているかどうかなど)をチェックする。かかる場合、Person Name検証器が参照するフィールドはFirst name、Last name、Middle nameの3つである。
図11は、以上のようにして得られた、全ての検証器と入力フィールドの参照関係の解析結果を示した図である。四角形がフィールドを、楕円が検証器を、矢印が参照関係を表している。この図11に示すようなフォーム検証器と入力項目の参照関係から、図4のステップ2.2に示した入力項目(これらの入力フィールドグループ)の分割が行われる。ここでは、実用上正確な画面サイズの最大値を使用するのではなく、以下に示すような近似式が用いられる。この近似式は、経験上ユーザにとって使いやすいと思われる関数を決めたもので、その一例である。全ての端末で当てはまりそうな関数を保守的に決めればよい。近似式として、フォームの入力フィールドの1ページあたりの個数が、
(画面の表示可能行数)/2 〜(画面表示可能行数)*1.5
になっているとものとする。ここでは、例えば1画面に6行表示できる携帯電話を考えると、1画面に置く望ましいフィールド個数は3〜9個となる。厳密な最大サイズではなく幅があるのは、例えば、図5に示すステップ2.2.2や図6に示すステップ2.3.4などの分割の判別では大きいほうの9を、図6に示すステップ2.3.1などの併合の判別では小さいほうの3を用いるといったように、より現実的な適用を行うためである。
ここで、Country Phone CodeフィールドがHome Phone、School Phone、Work Phoneの各電話番号検証器と共有されており、図5に示すステップ2.2.1の結果では11個の入力項目グループになってしまう。そこで、このCountry Phone Codeフィールドを3つにコピーすることにより、3〜4個のフィールドからなる各電話番号入力画面に分割することができる。同様に、How should we contact you?フィールドについても、選択されたコンタクト方法に対応する入力フィールド(電子メール、住所、各電話番号)が正しく入力されているか否かを検証する必要がある。このままでは10個を超えるフィールドを含むようなグループになる。そこで、コンタクト方法の各入力フィールドをコピーすることにより、この検証器のグループを独立させることができる。
図12は、検証器と入力フィールドの参照関係に対して、図11に示す図4のステップ2.2による分割を施した結果を示した図である。黒地に白抜き文字で示すフィールドはコピーされたものである。次に、図4のステップ2.3を実行すると、Non US PhoneとBest days/timesのフィールドを含むページがそれぞれ1つしかフィールドを含まないので、併合されて一つのグループとなる。以上のような結果として、9グループのフィールドグループに分割できる。この分割結果を反映するように、もとのHTMLを分割してそれぞれの分割フォーム画面を作成する。各端末(クライアントデバイス50)の能力が近いものや扱えるマークアップ言語によるグループ毎に、先に例として挙げたような9つのJSPファイルとして作成することができる。実行時には、各フィールド(23個)の内部状態と、27個の検証器の内部状態をJ2EEのServletプログラムで管理してユーザからの入力を受け取ることができる。
図13は、Work Phoneのサブフォーム画面の出力結果例を示した図である。図9と同様の機能については同様の符号を用いており、説明を省略する。この例では、画面上段に13個の検証器の状態がボックス表示されている。残り14個の必須入力の検証器はここでは省略したが、更に小さなボックスを用いて表示することもできる。また、縦棒である線「|」(分割表示212)でページの区切りを表し、全部で9ページのサブフォームが表示されている。但し、図4に示すステップ2.1の処理で、Contact先の選択と実際のContact先(電子メール,住所,各電話番号)が入力されているかの検証器が、入力項目のコピーにより重複されて表示されている。このため、図13では全部で18個のボックスが見える。例えば、電子メールの入力画面は2ページ目であるが、電子メール入力チェック、電子メールアドレスの形式チェックに加えてContact先のチェックの3つのボックス(上段左から3〜5個目のボックス)が表示されており、一つの検証器がNGであることが判る(ここでは、電子メールの形式がNGということがmouse overによる吹出し(吹き出し表示214)で説明されている)。また、現在処理中の画面は、対応するボックスの下にアンダーライン(現在フォーム表示213)で示している。Work Phone入力画面は5ページ目である。1〜4ページ目で未検証の検証器があるのは、Contact先が未だ指定されていないためこの検証器が作動していないためである。6ページ目以降は未入力であるため、Submitボタンは処理可能ではないと判別され、表示されていない。
ここで、検証器のコードや参照関係は、Webアプリケーションの各種定義ファイルからも容易に取り出すことができる。例えば、ApacheのStruts (http://jakarta.apache.org/struts/)のValidator Frameworkを利用すると、本実施の形態における入力として必要とする検証器とフィールドの参照関係を求めることができる。Strutsアプリケーションの検証器の定義ファイル(validation.xml)から、図10以下の例に示すフォームに含まれる電子メール入力フィールドの検証器コードの定義は、以下の通りである。
<form-validation>
<formset>
<form name="IBMJobsForm">

<field property="EmailAddress" depends="required, email">
<arg0 key="prompt.EmailAddress" />
</field>

</form>
</formset>
</form-validation>
ここでは、<form-validation>タグで検証が必要なフォームを全て定義している。また、<form>タグで各フォームの全てのフィールドと検証器を記述し、その中の<field>タグでそのフィールドにマップされる検証器を定義している。<field>タグのproperty属性で、該当するフィールドのプロパティ名を指定している。実際のJSPファイル中の<text>タグ(Strutsにおける文字列入力用カスタムタグ)などについているプロパティ属性の値と一致させることにより、特定のフィールドを指し示している。そして、depends属性により、このフィールドが関係する検証器が列挙されている。この例では、requiredという入力をしたことの検証器と、emailという電子メール形式の検証器が指定されている。また、<field>タグ内の<arg〜>タグは、検証器のコード中で使われる各種値を指定する。ここでは、エラーメッセージ用のフィールドのGUI用文字列を間接的に定義している。これらの記述を用いると、email 検証器はEmailAddressフィールドを参照し、同じくrequired検証器はEmailAddressフィールドを参照することが判る。他のフィールドや検証器も同様にして、参照関係をこのvalidation.xmlから求めることができる。
以上、詳述したように、本実施の形態によれば、複雑なフォームを任意の端末の能力に合わせて自動的に分割し、エラー表示やエラー画面のナビゲーション、およびSubmitボタンを適切にかつ自動的に表示することが可能となる。より具体的には、「分割の必要条件」に示す「条件1」に反しない範囲内で、意味的につながりのある入力項目は1ページに同時に表示されるので、ユーザにとって入力がし易く、検証器の報告するエラーの修正がし易い。また、画面上にエラーの状態が表示され直接操作によりエラーのあるページに簡単にジャンプできること、また、フォームのSubmitボタンは入力が完了する可能性があるときだけ、かつ自動的に出てくるので、例えばサブミット(submit)するために最後のページまで無駄にページをめくる必要がなくなる。または、Submitボタンが全ての分割ページに付いていて無駄なフォーム処理の起動やエラー処理が行われなくなる。更に、このような効果的な分割をデバイスごとに手動で行う必要がなく、自動で生成されるので、マルチデバイス向けWebアプリケーション開発を効率化することができる。
尚、本実施の形態は、コンピュータであるWebサーバ10やアプリケーション開発時の開発マシン等に各種処理を実行させるためのプログラムとして提供される。これらのプログラムをコンピュータに対して提供する際に、例えばサーバにインストールされた状態にて提供される場合の他、コンピュータに実行させるプログラムをコンピュータが読取可能に記憶した記憶媒体にて提供する形態が考えられる。この記憶媒体としては、例えば各種DVDやCD−ROM媒体等が該当し、各種DVDやCD−ROM読取装置等によってプログラムが読み取られ、フラッシュROM等にこのプログラムが格納されて実行される。また、これらのプログラムは、例えば、プログラム伝送装置によってネットワークを介して提供される形態がある。
ここで、本件を上記のような記憶媒体の発明として捉えると、以下のようになる。即ち、「コンピュータを、フォーム要求のあった端末の端末能力を取得する手段と、記憶装置からフォーム要求のあったフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出す手段と、取得された端末能力に合わせ、読み出されたフォームの画面定義および検証器を用いてフォームを分割する手段として機能させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うようにコンピュータを機能させるプログラムを記憶した記憶媒体。」である。
また、「コンピュータを、記憶装置からフォームの画面定義およびフォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出し、フォーム内容を出力する端末の端末能力に合わせてフォームを分割する手段と、分割して得られたサブフォームと共にフォームの各入力項目に対する状態および検証器の状態を含む内部状態を表示するための表示ユーザインタフェースを生成する手段として機能させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うようにコンピュータを機能させるプログラムを記憶した記憶媒体。」である。
本発明の活用例としては、主にWebフォームを提供するサーバとしてのコンピュータや、これらのコンピュータにて実行されるプログラムが活用例として挙げられる。また、このプログラムとしては、コンピュータにインストールされた形式の他、CD−ROM等の各種記録媒体に格納される形式、インターネット等のネットワークを介して伝送される形式等がある。
本実施の形態が適用されるフォーム自動分割システムの構成を示した図である。 本実施の形態が適用されるWebサーバや各種クライアントデバイスを実現するのに好適なコンピュータ装置のハードウェア構成例を模式的に示した図である。 フォーム分割から、分割されたフォームの実行制御をするまでの全体のフローチャートを示した図である。 フォームの分割・生成処理の全体の流れを示したフローチャートである。 図4のステップ2.2による入力項目の分割処理を詳述したフローチャートである。 図4のステップ2.3に示す分割調整の処理を詳述したフローチャートである。 ページUIの作成処理を示したフローチャートである。 生成されるJSPコードの一例を示した図である。 分割フォームを携帯電話でレンダリングされたイメージ例を示した図である。 出願人が提供するWebサイト内の求職者応募フォームのページの一部を示した図である。 全ての検証器と入力フィールドの参照関係の解析結果を示した図である。 検証器と入力フィールドの参照関係に対してステップ2.2による分割を施した結果を示した図である。 Work Phoneのサブフォーム画面の出力結果例を示した図である。
符号の説明
10…Webサーバ、11…分割フォーム実行制御部、12…HTTP要求受付部、20…フォーム分割・生成部、21…フォーム分割部、22…画面生成部、31…アプリケーションコードDB、32…デバイス情報DB、33…分割フォームDB、34…ワーキングメモリ、40…ネットワーク、50…クライアントデバイス、51…WWWブラウザ

Claims (20)

  1. ユーザが使用する端末に適合した形態でフォームの分割表示を行うように表示制御情報を生成する方法であって、
    前記端末からフォーム要求を受信するステップと、
    前記フォーム要求のあった前記端末の端末能力を取得するステップと、
    記憶装置から前記フォーム要求のあったフォームの画面定義および当該フォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出すステップと、
    取得された前記端末能力に合わせ、読み出された前記フォームの画面定義および前記検証器を用いて前記フォームを分割するステップと、
    分割して得られたサブフォームを前記端末に送信するステップと
    を含む表示制御情報生成方法。
  2. 前記分割するステップは、前記検証器と前記入力項目との参照関係を導出し、同一の検証器から参照されている入力項目は同一グループとなるように当該入力項目のグループ分けが行われることを特徴とする請求項1記載の表示制御情報生成方法。
  3. 前記分割するステップは、グループ分けがなされたグループが前記端末能力に基づくサイズ以下か否かを判断し、当該サイズを超えるグループの中で異なる2つ以上の検証器により参照される入力項目をコピーして前記参照関係が修正されることを特徴とする請求項2記載の表示制御情報生成方法。
  4. 前記分割するステップによりグループ分けがなされたグループについて、全ての隣り合うグループを併合した併合結果が前記端末能力を超えるように、当該グループを調整する分割調整ステップを更に備えたことを特徴とする請求項1記載の表示制御情報生成方法。
  5. 前記サブフォームの入力項目に対するユーザの入力を取得し、当該入力項目と参照関係にある前記検証器の状態をユーザに伝達するためのユーザインタフェースを生成するステップを更に備えたことを特徴とする請求項1記載の表示制御情報生成方法。
  6. ユーザが使用する端末に適合した形態でフォームの分割表示を行うように表示制御情報を生成する方法であって、
    記憶装置からフォームの画面定義および当該フォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出し、前記端末の端末能力に合わせて当該フォームを分割するステップと、
    分割して得られたサブフォームと共に、前記フォームの各入力項目に対する状態および前記検証器の状態を含む内部状態を表示するための表示ユーザインタフェースを生成するステップと、
    生成された前記表示ユーザインタフェースを前記端末に提供するステップと
    を含む表示制御情報生成方法。
  7. 前記表示ユーザインタフェースは、分割して得られた特定のサブフォームと前記検証器との対応関係を表示することを特徴とする請求項6記載の表示制御情報生成方法。
  8. 前記表示ユーザインタフェースは、現在表示しているサブフォームの全体に対する位置付けを明示的に表示することを特徴とする請求項6記載の表示制御情報生成方法。
  9. 分割して得られたサブフォームの中で、該当するサブフォームに別のサブフォームへのハイパーリンクを作成するステップを更に備えたことを特徴とする請求項6記載の表示制御情報生成方法。
  10. ユーザが使用する端末に適合した形態でフォームの分割表示を行うように表示制御情報を生成するコンピュータであって、
    前記端末からのフォーム要求を受信する要求受信手段と、
    前記フォーム要求のあったフォームの画面定義および当該フォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを格納する格納手段と、
    前記端末のフォーム表示に関する端末能力を取得する端末能力取得手段と、
    前記端末能力取得手段により取得された前記端末能力に合わせ、前記格納手段から読み出された前記フォームの画面定義および前記検証器のコードを用いて当該フォームを分割する分割手段と、
    前記分割手段による分割結果を用いて前記端末に表示される画面情報を生成する画面生成手段と
    を有するコンピュータ。
  11. 前記分割手段は、分割後の1ページのサイズが前記端末の画面サイズおよび当該端末の受信バッファの制限による上限を超えないように前記フォームを分割することを特徴とする請求項10記載のコンピュータ。
  12. 前記分割手段は、1つの検証器が参照する入力項目は2つ以上の分割フォームに属しないように前記フォームを分割することを特徴とする請求項10記載のコンピュータ。
  13. 前記分割手段は、前記フォームの分割個数が最小となるように当該フォームを分割することを特徴とする請求項12記載のコンピュータ。
  14. 前記分割手段は、前記フォームを分割してサイズが最大となるページについて分割方法ごとにサイズを比較し、当該ページのサイズが最小となる分割方法にて当該フォームを分割することを特徴とする請求項12記載のコンピュータ。
  15. 前記画面生成手段は、前記分割手段により分割して得られたサブフォームと共に、前記フォームの各入力項目の状態、および前記検証器の状態を含む内部状態を表示する画面情報を生成することを特徴とする請求項10記載のコンピュータ。
  16. コンピュータに、
    フォーム要求のあった端末の端末能力を取得する機能と、
    記憶装置から前記フォーム要求のあったフォームの画面定義および当該フォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出す機能と、
    取得された前記端末能力に合わせ、読み出された前記フォームの画面定義および前記検証器を用いて前記フォームを分割する機能と
    を実現させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うように前記コンピュータを機能させるプログラム。
  17. 前記フォームを分割する機能は、前記検証器と前記入力項目との参照関係を導出し、同一の検証器から参照されている入力項目は同一グループとなるように当該入力項目のグループ分けが行われることを特徴とする請求項16記載のプログラム。
  18. 前記フォームを分割する機能は、グループ分けがなされたグループが前記端末能力に基づくサイズ以下か否かを判断し、当該サイズを超えるグループの中で異なる2つ以上の検証器により参照される入力項目をコピーして前記参照関係が修正されることを特徴とする請求項17記載のプログラム。
  19. コンピュータに、
    記憶装置からフォームの画面定義および当該フォーム内の入力項目に入力された入力値の検証を実行する検証器のコードを読み出し、フォーム内容を出力する端末の端末能力に合わせて当該フォームを分割する機能と、
    分割して得られたサブフォームと共に、前記フォームの各入力項目に対する状態および前記検証器の状態を含む内部状態を表示するための表示ユーザインタフェースを生成する機能と
    を実現させ、ユーザが使用する端末に適合した形態でフォームの分割表示を行うように前記コンピュータを機能させるプログラム。
  20. 分割して得られたサブフォームの中で、該当するサブフォームに別のサブフォームへのハイパーリンクを作成する機能を更に備え、
    前記表示ユーザインタフェースを生成する機能は、作成された前記ハイパーリンクを前記内部状態の表示に適用させることを特徴とする請求項19記載のプログラム。
JP2004072990A 2004-03-15 2004-03-15 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム Expired - Fee Related JP4179553B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004072990A JP4179553B2 (ja) 2004-03-15 2004-03-15 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
US11/081,072 US20050200907A1 (en) 2004-03-15 2005-03-15 Display control information generation
US12/140,116 US8352861B2 (en) 2004-03-15 2008-06-16 Display control information generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004072990A JP4179553B2 (ja) 2004-03-15 2004-03-15 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム

Publications (2)

Publication Number Publication Date
JP2005259039A true JP2005259039A (ja) 2005-09-22
JP4179553B2 JP4179553B2 (ja) 2008-11-12

Family

ID=34918642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004072990A Expired - Fee Related JP4179553B2 (ja) 2004-03-15 2004-03-15 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム

Country Status (2)

Country Link
US (2) US20050200907A1 (ja)
JP (1) JP4179553B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188491A (ja) * 2006-01-12 2007-07-26 Internatl Business Mach Corp <Ibm> コンピュータで実装される方法、データ処理システム、コンピュータ・プログラム製品(オブジェクト・セットアップ・スクリプトを生成するグラフィカル援助)
JP2007188359A (ja) * 2006-01-13 2007-07-26 Brother Ind Ltd 表示データ作成装置及び閲覧端末
JP2010015411A (ja) * 2008-07-04 2010-01-21 Fujitsu Ltd 情報提供システムの開発方法、開発装置、開発プログラム
JP2012014226A (ja) * 2010-06-29 2012-01-19 Sysmex Corp 取材受付システム、取材申込情報受信用コンピュータ、及び取材受付方法
JP2016001398A (ja) * 2014-06-11 2016-01-07 株式会社Pfu 情報処理装置、表示方法及び制御プログラム
KR20180105159A (ko) * 2016-01-04 2018-09-27 알리바바 그룹 홀딩 리미티드 부정확하게 입력된 정보에 관한 페이지를 위치 지정하기 위한 방법 및 디바이스

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7913159B2 (en) * 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US8001459B2 (en) * 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
JP4771915B2 (ja) * 2006-11-15 2011-09-14 京セラミタ株式会社 Htmlテキストを変換する装置、方法、およびプログラム
JP2010527051A (ja) * 2007-03-30 2010-08-05 グーグル・インコーポレーテッド モバイル装置のための文書処理
US20090019313A1 (en) * 2007-07-10 2009-01-15 Ramesh Pokala System and method for performing client-side input validation
US9026580B2 (en) * 2009-11-20 2015-05-05 Microsoft Technology Licensing, Llc Validation pipeline
US9275029B2 (en) * 2009-12-02 2016-03-01 International Business Machines Corporation Automated form layout based upon usage patterns
US8453117B2 (en) * 2010-03-09 2013-05-28 Fujitsu Limited Providing software validation as a service
US9645992B2 (en) * 2010-08-21 2017-05-09 Oracle International Corporation Methods and apparatuses for interaction with web applications and web application data
US9946768B2 (en) * 2010-11-02 2018-04-17 Microsoft Technology Licensing, Llc Data rendering optimization
GB2510761B (en) * 2011-12-08 2020-05-13 Intel Corp Methods and apparatus for dynamically adapting a virtual keyboard
US9722972B2 (en) 2012-02-26 2017-08-01 Oracle International Corporation Methods and apparatuses for secure communication
US9317484B1 (en) * 2012-12-19 2016-04-19 Emc Corporation Page-independent multi-field validation in document capture
US9129112B2 (en) 2013-03-15 2015-09-08 Oracle International Corporation Methods, systems and machine-readable media for providing security services
US9344422B2 (en) 2013-03-15 2016-05-17 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
JP6479758B2 (ja) 2013-03-15 2019-03-06 オラクル・インターナショナル・コーポレイション コンピュータ上におけるアプリケーション間の信頼性の確立
US9912824B2 (en) * 2014-02-10 2018-03-06 Xerox Corporation Triggering workflows from a multifunction device
US20160034516A1 (en) * 2014-07-29 2016-02-04 Corporate Data Design, Inc. Method and system for analysis of an object
US9706013B2 (en) * 2014-09-17 2017-07-11 Oracle International Corporation Mobile runtime conditional sections for surveys
WO2016048404A1 (en) 2014-09-24 2016-03-31 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
CN105677357B (zh) * 2016-01-12 2019-02-01 腾讯科技(北京)有限公司 媒体信息处理方法及移动终端
CN107092452A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 一种展示业务完成状态的信息处理方法及装置
CN108959218A (zh) * 2018-04-26 2018-12-07 北京五八信息技术有限公司 表单验证方法及装置、电子设备和计算机可读存储介质
US11010536B2 (en) * 2018-12-20 2021-05-18 AINS, Inc. Systems and methods for dynamic web user interface generation
CN112328200A (zh) * 2020-11-17 2021-02-05 Oppo广东移动通信有限公司 一种显示方法、电子设备及存储介质
US11615235B2 (en) * 2021-08-10 2023-03-28 Capital One Services, Llc Automatic filling of a form with formatted text

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167523A (en) * 1997-05-05 2000-12-26 Intel Corporation Method and apparatus for forms data validation and processing control
US6535883B1 (en) * 1999-08-04 2003-03-18 Mdsi Software Srl System and method for creating validation rules used to confirm input data
GB0023570D0 (en) * 2000-09-26 2000-11-08 Volantis Systems Ltd Web server
US20020099739A1 (en) * 2001-01-03 2002-07-25 Herman Fischer Transformation and processing of Web form documents and data for small footprint devices
JP4357142B2 (ja) * 2001-04-02 2009-11-04 富士通株式会社 購買情報収集方法、購買情報収集プログラム
CA2343491A1 (en) * 2001-04-03 2002-10-03 Ibm Canada Limited-Ibm Canada Limitee Method to reduce input parameter interface error and inconsistency for servlets
CA2344074A1 (en) * 2001-04-17 2002-10-17 George Wesley Bradley Method and system for cross-platform form creation and deployment
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US20040268229A1 (en) * 2003-06-27 2004-12-30 Microsoft Corporation Markup language editing with an electronic form
US20050108625A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Method and system for selecting rules to validate information submitted on an electronic form

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188491A (ja) * 2006-01-12 2007-07-26 Internatl Business Mach Corp <Ibm> コンピュータで実装される方法、データ処理システム、コンピュータ・プログラム製品(オブジェクト・セットアップ・スクリプトを生成するグラフィカル援助)
JP2007188359A (ja) * 2006-01-13 2007-07-26 Brother Ind Ltd 表示データ作成装置及び閲覧端末
JP2010015411A (ja) * 2008-07-04 2010-01-21 Fujitsu Ltd 情報提供システムの開発方法、開発装置、開発プログラム
JP2012014226A (ja) * 2010-06-29 2012-01-19 Sysmex Corp 取材受付システム、取材申込情報受信用コンピュータ、及び取材受付方法
JP2016001398A (ja) * 2014-06-11 2016-01-07 株式会社Pfu 情報処理装置、表示方法及び制御プログラム
KR20180105159A (ko) * 2016-01-04 2018-09-27 알리바바 그룹 홀딩 리미티드 부정확하게 입력된 정보에 관한 페이지를 위치 지정하기 위한 방법 및 디바이스
KR102150779B1 (ko) 2016-01-04 2020-09-02 알리바바 그룹 홀딩 리미티드 부정확하게 입력된 정보에 관한 페이지를 위치 지정하기 위한 방법 및 디바이스
US10831344B2 (en) 2016-01-04 2020-11-10 Advanced New Technologies Co., Ltd. Page positioning method and apparatus for erroneous input information

Also Published As

Publication number Publication date
JP4179553B2 (ja) 2008-11-12
US20080307300A1 (en) 2008-12-11
US20050200907A1 (en) 2005-09-15
US8352861B2 (en) 2013-01-08

Similar Documents

Publication Publication Date Title
JP4179553B2 (ja) 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
US10762280B2 (en) Systems, devices, and methods for facilitating website remediation and promoting assistive technologies
US10997361B1 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
US11366676B2 (en) Embedded user assistance for software applications
US7451393B1 (en) System and method for a page rendering framework
US10867120B1 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
US20110264705A1 (en) Method and system for interactive generation of presentations
EP1818835A1 (en) Document processing device, and document processing method
US11010287B1 (en) Field property extraction and field value validation using a validated dataset
US20050114769A1 (en) Source code editor for editing multilanguage documents
WO2021249356A1 (zh) 表单数据校验方法、系统、服务器和用户终端
US20080208790A1 (en) Document Processing Device, and Document Processing Method
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
US7802181B2 (en) Document processing device and document processing method
US11727195B2 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
US20100077295A1 (en) Document processing device and document processing module
CN113196275A (zh) 经由计算机网络的基于网络的协作墨迹书写
US20070273936A1 (en) Document Processing Device, And Document Processing Method
US20080262832A1 (en) Document Processing Device, and Document Processing Method
US20080263444A1 (en) Document Processing Device and Document Processing Method
US20240193348A1 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
US11847405B1 (en) Encoding hyperlink data in a printed document
US20080065979A1 (en) Document Processing Device, and Document Processing Method
US11455311B2 (en) Multi-locator system for tracking data elements in resources
CN118069103A (zh) 多平台的软件开发工具包开发、测试方法及电子设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080822

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees