(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
当業者には明らかなように、本発明の各側面は、システム、方法、またはコンピュータ・プログラムとして具現化することが可能である。従って、本発明の各側面は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例(ファームウェア、駐在ソフトウェア、マイクロコード等を含む)、または本明細書では一般的に「回路」、「モジュール」、または「システム」と呼ばれるソフトウェアおよびハードウェアの側面を組合わせた実施例の形態をとり得る。更に、本発明の各側面は、コンピュータ可読プログラム・コードを組み込んだ1つまたは複数個のコンピュータ可読媒体において具現化されたコンピュータ・プログラムの形態をとり得る。
【0009】
1つまたは複数個のコンピュータ可読媒体の任意の組合せを利用することも可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。例えば、コンピュータ可読記憶媒体は、電子的、磁気的、光学的、電磁気的、赤外線もしくは半導体システム、装置、またはデバイスであってもよく、或いは上記のものの任意の適当な組合せであってもよいが、それらに限定されない。コンピュータ可読記憶媒体の更に具体的な例(例示的なリスト)は、下記のもの、即ち、1つまたは複数個のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブルROM(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CDROM)、光学的記憶装置、磁気記憶装置、または上記のものの任意の適当な組合せを含む。本明細書に関連して、コンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、或いはそれに関連して使用するためのプログラムを含み得る、または格納し得る任意の実体的な媒体であってもよい。
【0010】
コンピュータ可読信号媒体は、例えば、ベースバンドでまたは搬送波の一部として組み込まれたコンピュータ可読プログラム・コードを有する伝播されたデータ信号を含み得る。そのような伝播された信号は、電磁的信号、光学的信号、またはそれらの任意の適切な組合せを含むがそれに限定されない任意の種々の形態を取り得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないコンピュータ可読媒体であって、命令実行システム、装置、またはデバイスによる使用或いはそれらに関連した使用のためにプログラムを伝送、伝播、または搬送し得る任意のコンピュータ可読媒体であってもよい。
【0011】
コンピュータ可読媒体において具体化されたプログラム・コードは、無線、有線、光通信ケーブル、RF(Radiofrequency)等、またはそれらの任意の適当な組合せを含むがそれらに限定されない任意の適切な媒体を使用して送られることが可能である。
【0012】
本発明の各側面に対してオペレーションを実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語および「C」プログラミング言語または同様の従来の手続き的プログラミング言語を含む1つまたは複数個のプログラミング言語で書かれることも可能である。プログラム・コードは、ユーザのコンピュータ上で全体的に、独立型ソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的におよびリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で全体的に実行し得る。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、或いは、その接続は、外部コンピュータに(例えば、インターネット・サービス・プロバイダを使ったインターネットを介して)行われてもよい。
【0013】
本発明の諸局面は、本発明の実施例に従って方法、装置(システム)、およびコンピュータ・プログラムのフローチャートおよび/またはブロック図を参照して後述される。フローチャートおよび/またはブロック図の各ブロック、およびフローチャートおよび/またはブロック図におけるブロックの組合せがコンピュータ・プログラム命令によって具現化することができるということは明らかであろう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブルなデータ処理装置のプロセッサによって実行される命令がフローチャートおよび/またはブロック図のブロックにおいて指定された機能/動作を実施するための手段を作成するようなマシンを製造するために、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに与えられてもよい。
【0014】
これらのコンピュータ・プログラム命令はコンピュータ可読媒体に格納され、そのコンピュータ可読媒体に格納された命令が、フローチャートおよび/またはブロック図のブロックにおいて指定された機能/動作を具現化する命令を含む製品をもたらすよう、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の態様で機能するように指示し得る。
【0015】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル装置において実行される命令が、フローチャートおよび/またはブロック図のブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようなコンピュータ実装プロセスを形成するべく、コンピュータまたは他のプログラマブル・データ処理装置もしくは他のデバイス上で一連の動作ステップを遂行させるために、コンピュータまたは他のプログラマブル装置にロードされてもよい。
【0016】
次に、図面、特に
図1および
図2を参照すると、実施例を具現化し得るデータ処理環境の概略図が示される。
図1および
図2は単なる例示であって、種々の実施例を具現化し得る環境に関する如何なる限定を主張または意味することを意図しない、ということは明らかであろう。図示の環境に対する多くの修正を行うことが可能である。
【0017】
図1は、実施例を具現化し得るデータ処理システムのネットワークの概略図を示す。ネットワーク・データ処理システム100は実施例を具現化し得るコンピュータのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、それは、ネットワーク・データ処理システム100内のともに接続された種々の装置とコンピュータとの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルのような接続機器を含み得る。
【0018】
図示の例では、サーバ104およびサーバ106が、記憶装置108と共にネットワーク102に接続している。更に、クライアント110、112、および114がネットワーク102に接続している。クライアント110、112、および114は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。図示の例では、サーバ104は、ブートファイルのようなデータ、オペレーティング・システム・イメージ、並びに電子メール・アプリケーションおよびカレンダ・アプリケーションのようなアプリケーションをクライアント110、112、および114に提供する。クライアント110、112、および114は、この例におけるサーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示されてない更なるサーバ、クライアント、および他の装置を含み得る。
【0019】
図示の例では、ネットワーク・データ処理システム100は、ネットワーク102が、相互に通信するためにプロトコルの伝送制御プロトコル/インターネット・プロトコル(TCP/IP)スイートを使用するネットワークおよびゲートウエイのワールドワイド集合体を表わす、インターネットである。そのインターネットの中心には、主要ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがあり、それは、データおよびメッセージの経路指定をする数千個の商的、行政機関用、教育機関用、およびその他のコンピュータ・システムを含む。もちろん、ネットワーク・データ処理システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)のように多くの種々なタイプのネットワークとして具現化し得る。
図1は、1つの例として意図され、種々の実施例に対するアーキテクチャ上の限定として意図されてない。
【0020】
次に
図2を参照すると、実施例を具現化し得るデータ処理システムのブロック図が示される。データ処理システム200は、
図1におけるサーバ104またはクライアント110のようなコンピュータの一例であり、そこには実施例のためのプロセスを具現化するコンピュータ使用可能プログラム・コードまたは命令が置かれている。この実施例では、データ処理システム200は通信ファブリック202を含み、それは、プロセッサ・ユニット204、メモリ206、永続的記憶装置208、通信ユニット210、入出力(I/O)ユニット212、ディスプレイ214、およびミーティング・マネージャー222の間の通信を提供する。
【0021】
プロセッサ・ユニット204は、メモリ206にロードされ得るソフトウェアのための命令を実行するように働く。プロセッサ・ユニット204は、特定の実施態様に依存して、1つまたは複数個のプロセッサのセットであってもよく、或いはマルチプロセッサ・コアであってもよい。更に、プロセッサ・ユニット204は、単一のチップ上に主プロセッサが二次プロセッサと共に存在する1つまたは複数個の異種プロセッサ・システムを使用して具現化されてもよい。別の実施例でとして、プロセッサ・ユニット204は、同じタイプの多数のプロセッサを含む対称型マルチプロセッサ・システムであってもよい。
【0022】
メモリ206は、これらの例では、例えばランダム・アクセス・メモリまたは任意の他の適当な揮発性もしくは不揮発性記憶装置であってもよい。永続的記憶装置208は、特定の実施態様に依存して種々な形態をとり得る。例えば、永続的記憶装置208は、1つまたは複数個のコンポーネントまたはデバイスを含み得る。例えば、永続的記憶装置208は、ハード・ドライブ、フラッシュ・メモリ、書換え可能光ディスク、書換え可能磁気テープ、または上記のものの組合せであってもよい。永続的記憶装置208によって使用される媒体は取り外し可能なものであってもよい。例えば、永続的記憶装置208として取り外し可能ハード・ドライブが使用されてもよい。
【0023】
通信ユニット210は、これらの例では、他のデータ処理システムまたは装置との通信に備える。これらの例では、通信ユニット210はネットワーク・インターフェース・カードである。通信ユニット210は、物理的通信リンクおよび無線通信リンクのいずれかまたは両方の使用を通じて通信を提供し得る。
【0024】
入出力ユニット212は、データ処理システム200に接続される他の装置とのデータの入出力を可能にする。例えば、入出力ユニット212は、キーボードおよびマウスを介したユーザ入力のための接続を提供し得る。更に、入出力ユニット212はプリンタに出力を送り得る。ディスプレイ214は、ユーザに情報を表示するための機構を提供する。
【0025】
オペレーティング・システムおよびアプリケーションのための命令またはプログラムが永続的記憶装置208に置かれる。これらの命令は、プロセッサ・ユニット204による実行のためにメモリ206にロードされる。種々の実施例のプロセスが、メモリ206のようなメモリに置かれたコンピュータ実装の命令を使用してプロセッサ・ユニット204により遂行される。これらの命令は、プロセッサ・ユニット204におけるプロセッサによって読み取られ及び実行され得るプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。種々の実施例におけるプログラム・コードは、メモリ206または永続的記憶装置208のような種々の物理的または実体的なコンピュータ可読媒体において具現化され得る。
【0026】
プログラム・コード216は、選択的に取り外し可能であるコンピュータ可読媒体218上に動作する形態で置かれ、プロセッサ・ユニット204による実行のためにデータ処理システム200上にロードまたは転送され得る。プログラム・コード216およびコンピュータ可読媒体218は、これらの例では、コンピュータ・プログラム製品220を形成する。1つの例では、コンピュータ可読媒体218は、永続的記憶装置208の一部であるハード・ドライブのような記憶装置上に転送するために、その永続的記憶装置208の一部であるドライブまたは他の装置に挿入または設置された光学的または磁気的ディスクのような実体的な形態のものであってもよい。実体的な形態では、コンピュータ可読媒体218は、データ処理システム200に接続されるハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリのような永続的記憶装置の形態をとり得る。コンピュータ可読媒体218の実体的な形態は、コンピュータ記録可能記憶媒体とも呼ばれる。或る例では、コンピュータ可読媒体218は取り外し可能なものでなくてもよい。
【0027】
代替方法として、プログラム・コード216は、コンピュータ可読媒体218から、通信ユニット210への通信リンクおよび/または入出力装置212への接続を介してデータ処理システム200に転送されてもよい。その通信リンクおよび/または接続は、本実施例では物理的または無線のものであってもよい。コンピュータ可読媒体は、プログラム・コードを含む通信リンクまたは無線伝送機器のような非実体的な媒体の形態もとり得る。
【0028】
データ処理システム200のための例示された種々のコンポーネントは、種々の実施例を具現化し得る方法に対するアーキテクチャ上の限定を与えることを意味しない。種々の実施例は、データ処理システム200のための例示されたコンポーネントに追加するコンポーネント、またはそれらの代わりのコンポーネントを含むデータ処理システムにおいて具現化され得る。
図2に示される他のコンポーネントは図示の例から変更されてもよい。
【0029】
1つの例として、データ処理システム200における記憶装置は、データを格納し得る任意のハードウェア装置である。メモリ206、永続的記憶装置208、およびコンピュータ可読媒体218は、実体的な形態における記憶装置の例である。
【0030】
別の例では、バス・システムは、通信ファブリック202を具現化するために使用されてもよく、システム・バスまたは入出力バスのような1つまたは複数個のバスで構成することが可能である。もちろん、バス・システムは、そのバス・システムに接続された種々のコンポーネントまたは装置の間のデータ転送に備える任意の適切なタイプのアーキテクチャを使用して具現化することが可能である。更に、通信ユニットは、モデムまたはネットワーク・アダプタのような、データを送信および受信するために使用される1つまたは複数個の装置を含み得る。更に、メモリは、例えば、通信ファブリック202に存在し得るインターフェースおよびメモリ・コントローラ・ハブで見られるようなメモリ206またはキャッシュであってもよい。
【0031】
本実施例は、同じユーザまたは別のユーザのために1つのフォームに移植するために後で抽出されることがあり得る、フォーム・データを取込んでいるメタデータをイメージ内に組み込むことにより、フォーム移植を自動化する必要性を認識する。先進的な実施例では、これらの方法は、人間がスクリーン・キャプチャ機能に基づいてフォーム記入を自動化することを可能にする。1つの実施例では、支援担当者または低レベル情報技術担当者が、問題を解決するためにまたはシステムを形成するためには、数ステップもユーザをウオーク・スルーする多くのスクリーン・ショットを含むドキュメンテーションを見るということが一般的である。これは、多くの場合、ウェブ・ブラウザ・インターフェースの使用によって行われる。
【0032】
現在の方法は、フィールド識別子および値が、スクリプトとして共用されるフォームから抽出されるというフィールド取込みを作成するが、スクリプトはグラフィカル・エレメントを含まないということを、本実施例は認める。従って、現在の方法は、ユーザがプレビューし得るグラフィカル・エレメントを送ることまたは格納することを可能にせず、コンテキストは異なるがフォームが同じまたは似ているとき、メタデータを使用する機会を認識できるようにしていない。例えば、現在の方法は、ユーザがデータベース・レコード・エントリ・スクリーンのスクリーン・キャプチャを、ウェブ・フォームのような種々のデータベース・スクリーン、種々のデータベース、または種々のプラットフォームにそのスクリーン・キャプチャを適用することを許していない。現在の方法は、スクリーンまたはウィンドウの静的コピーを作成するとき、静的コピーは、取込まれたイメージのコンテンツに関するコンテキストまたはメタデータを含まない。スクリーンまたはウィンドウのコピーがフォームを含む場合、現在の方法は、取込まれた瞬間に表示されるイメージのバイナリ表示を取込むだけであるが、フォームまたはそれのコンテンツに関する如何なる情報も取込まない。
【0033】
従って、本実施例は、イメージに基づいてフォームを処理するために方法およびコンピュータ・プログラムを提供する。フォームはイメージとして取込まれ、そのイメージにおけるフォーム内の多くのフィールド識別子および値が検知される。多くのフィールド識別子および値がイメージ・メタデータに格納される。更に、センシティブな情報を、必要に応じて保護するための方法を次に説明する。
【0034】
別の実施例では、フォームに対するアクセス要求が検知される。そのフォームが多くの格納されたイメージにおける1つの格納されたイメージに対応するかどうかに関する判断が行われる。そのフォームが或る格納されたイメージに対応する場合、その格納されたイメージに関連するメタデータが検索される。メタデータは、そのフォームに対応する多くのフィールド値および関連するテキスト・データを含む。そのフォームは、その格納されたイメージに関連するメタデータからの多くのフィールド値およびその関連するテキスト・データを移植される。
【0035】
次に
図3を参照すると、本実施例を具現化し得る機能強化されたスクリーン・キャプチャ・プログラムのブロック図が示される。機能強化されたスクリーン・キャプチャ・プログラム300は、
図2におけるデータ処理システム200のようなデータ処理システムにおいて具現化することが可能である。
【0036】
機能強化されたスクリーン・キャプチャ・プログラム300は、フィールド抽出器302、スクリーン・キャプチャ・モジュール304、および起動モジュール検知器306を含む。フィールド抽出器302は、コンピュータ・ベースのフォームの多くのフィールドにおけるテキスト・データおよび他の値を検知し、それらのフィールドからテキスト・データおよび他の値を抽出する。スクリーン・キャプチャ・モジュール304は、コンピュータ・ベースのフォームのバイナリ表示を取込む。起動モジュール検知器306は、コンピュータ・ベースのフォームの取込まれたバイナリ表示を含むアプリケーションを検知する。或る実施例では、起動モジュール検知器306は、アプリケーションをフォームに対応する状態にセットするためのコマンドを検知し得る。1つの実施例では、フォームがウェブ・フォームである場合、そのフォームのウェブ・ブラウザ・アプリケーションおよびURLが起動モジュール検知器306によって検知され得る。
【0037】
次に
図4を参照すると、実施例を具現化し得る機能強化されたスクリーン・キャプチャ・プログラムのブロック図が示される。機能強化されたスクリーン・キャプチャ・プログラム400は、
図2におけるデータ処理システム200のようなデータ処理システムにおいて具現化することが可能である。
【0038】
機能強化されたスクリーン・キャプチャ・プログラム400はスクリーン・キャプチャ・データ・ストア402、フォーム検知器404、起動モジュール406、およびスクリーン・キャプチャ・ツー・フォーム検知器408を含む。スクリーン・キャプチャ・データ・ストア402は、例えば、ローカルまたはリモートの機能強化されたスクリーン・キャプチャ・プログラム300からの格納されたスクリーン・キャプチャを含む。フォーム検知器404は、例えば、ウェブ・ブラウザ内またはフォームを含むアプリケーションのようなフォームの存在を検知する。起動モジュール406は、コンピュータ・ベースのフォームの取込まれたバイナリ表示に対応するアプリケーションを起動する。或る実施例では、起動モジュール406は、アプリケーションをフォームに対応する状態にセットするためのコマンドを含む。1つの実施例では、フォームがウェブ・フォームである場合、そのフォームのユニバーサル・レコード・ロケータ(URL)を含むコマンド・ライン・アーギュメントによってウェブ・ブラウザが起動され得る。スクリーン・キャプチャ・ツー・フォーム検知器は、アプリケーション内のフォームがスクリーン・キャプチャ・データ・ストア402における格納されたフォームと一致するかどうかを検知する。
【0039】
次に
図5を参照すると、実施例を具現化し得るスクリーン・キャプチャ・プログラムのブロック図が示される。スクリーン・キャプチャ・プログラム500は、
図2におけるデータ処理システム200のようなデータ処理システムにおいて具現化することが可能である。
【0040】
ユーザ502が、ユーザ入力を必要とするコンピュータ・ベースのフォーム504を提供するコンピュータ・プログラムを稼動する。この実施例では、ユーザ502は人間のユーザであるが、ユーザ502は、人間のユーザ、プログラム、または
図2におけるデータ処理システム200のような装置を実行させる他のプロセスを、それらに限定することなく、含む任意のタイプのユーザであってもよい。或る実施例では、ユーザ502がプロセスである場合、機能強化されたスクリーン・キャプチャ・プログラム506が、例えば、フォームを起動するスケジュールされたタスクのようなシステム・イベントによって呼び出されてもよい。
【0041】
或る実施例では、コンピュータ・ベースのフォーム504は、例えば、問題解決、問題確認、ソフトウェア構成、オーダ・エントリ、フィードバック、調査等のようなプロセスの一部であってもよい。コンピュータ・ベースのフォーム504は、ウィザード、オープン・ダイアログ・ボックス等のような処理すべきフォームを伴う任意のアプリケーションに拡張し得る。ユーザ502がコンピュータ・ベースのフォーム504にデータを入力した後、ユーザ502は機能強化されたスクリーン・キャプチャ・プログラム506を呼び出す。機能強化されたスクリーン・キャプチャ・プログラム506は、コンピュータ・ベースのフォーム504のバイナリ表示であるコンピュータ・ベース・フォーム・バイナリ508、並びに、コンピュータ・ベースのフォーム504のフィールド値およびそのフィールド値内に任意の関連するテキスト・データを含むテキスト・データ510を取込む。コンピュータ・ベースのフォーム・バイナリ508およびテキスト・データ510は、フォーム・メタデータを備えた機能強化されたスクリーン・キャプチャ512として格納される。関連するテキスト・データは、それらが一連のものである場合には、他のスクリーン・キャプチャへのリンク、コンピュータ・ベースのフォームのフィールド・ラベル、フォーム・テキスト、CRC、および、使用時に同じフォームまたは類似のフォームを識別するために使用し得る他のフォーム・データ、を含み得る。
【0042】
或る実施例では、フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512が、JPEGファイル、TIFFファイル、Graphics Interchange Format(GIF)ファイル、PortableDocument Format(PDF)ファイル等のようなイメージ・ファイルとして、格納され得るがそれらに限定されない。フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512は、単一ファイル、複数ファイル、他のファイルに対する参照またはリンクを備えた単一ファイル、データベース・エンティティ、または他の複合データ・タイプとして、含む多くの方法で格納され得るがそれらに限定されない。フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512は、ローカル・ファイル、ローカル・データ・ストア、リモート・データ・ストア、電子メッセージに対するMIMEアタッチメント、Lotus Notes(登録商標)文書内のイメージ等のような多くのロケーションに、それらに限定することなく、格納され得る。フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512が外部的にまたは遠隔的に格納される場合、イメージ・メタデータをカタログ化し、イメージを対応するメタデータに索引付けるために追加のステップが必要となるであろう。このカタログ化ステップは、例えば、巡回冗長検査機能を使用して実行され得る。2つの異なるイメージ・ファイルに対応する2つの巡回冗長検査値を有することが可能である。このために、巡回冗長検査の使用は、イメージ・メタデータに関連したデータ・タグに対応するイメージ・ファイルに固有の識別子の割り当てを伴うことも可能である。
【0043】
ユーザ514はユーザ502と同じであってもよく、異なるユーザであってもよい。ユーザ514は、ユーザ入力を必要とするコンピュータ・ベースのフォーム504を提供する同じコンピュータ・プログラムを稼動する。ユーザ514は、機能強化されたスクリーン・キャプチャ・プログラム506によって以前に格納されたフォーム・メタデータを備えた機能強化されたスクリーン・キャプチャ512を検索することができる。その後、ユーザ514は、テキスト・データ510を使用して、ユーザ502がコンピュータ・ベースのフォーム504に入力したのと同じデータをそのフォームに移植し得る。別の実施例では、ユーザ514は、コンピュータ・ベースのフォーム504にユーザ502が入力したのと同じデータをコンピュータ・ベースのフォーム504に自動的に移植するよう、機能強化されたスクリーン・キャプチャ・プログラム506にさせるオートフィル機能を呼び出し得る。機能強化されたスクリーン・キャプチャ・プログラム506は、既知の方法を活用することによっても使用され得る。例えば、或る実施例では、フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512が、空のフォームと共にウェブ・ブラウザ上にドラッグされ、ウェブ・ブラウザ内のプラグ・インが、フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512に関連したテキスト・データ510を抽出し、そのフォームを完成し得るであろう。別の実施例では、ユーザ514は、変換処理プログラムを呼び出し、フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ512を変換処理プログラムにロードし、別のプログラム上のフォームに記入するためにその変換処理プログラムを使用し得る。
【0044】
次に
図6を参照すると、実施例を具現化し得る、フォーム・メタデータを備えた機能強化されたスクリーン・キャプチャのブロック図が示される。フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ600は、
図5におけるコンピュータ・ベースのフォーム・バイナリ508の例である。
【0045】
フォーム・メタデータを備えた、機能強化されたスクリーン・キャプチャ600は、バイナリ・イメージ・データ602並びにエントリ・フィールド1データ606およびエントリ・フィールド2データ608を取込む方法を含む。バイナリ・イメージ・データ602は、例えば、フォームを含むコンピュータ・スクリーンまたはウィンドウであってもよいウェブ・ページ604のイメージである。エントリ・フィールド1データ606はフィールド610に対するフィールド値を検知し、一方、エントリ・フィールド2データ608はフィールド612に対するフィールド値を検知する。検知は、特殊なフォームまたはフォーム・ソフトウェア・パッケージ、フォーム言語、光学的文字認識の理解を通して、またはイメージ検知の先進的手段を通して達成され得る。或る実施例では、ユーザは、イメージ・メタデータに格納されるべきフォーム・フィールド値、および/または、データを選択し得る。別の実施例では、すべてのフォーム・フィールド値がイメージ・メタデータに格納される。そのフィールド値は、例えば、テキスト・データ、プライベートなテキスト・データ、チェック・ボックス選択、またはリスト・ボックス選択であってもよい。
【0046】
図5における機能強化されたスクリーン・キャプチャ・プログラム506は、更に、どのフォーム・フィールド値がプライベートなものであるかを検知し得る。プライベートなものであるフォーム・フィールド値は、パスワードまたはパスワード・オブジェクト・タグのような、制限なく、プライベートなテキスト・データを含む。プライベートなテキスト・データを含んでいるフォーム・フィールド値は、セキュア・フィールドとして表わされるであろうし、オリジナル値またはプライベートなテキスト・データはイメージ・メタデータに格納されないであろう。
【0047】
次に
図7を参照すると、実施例を具現化し得るフォーム移植のための格納されたイメージ検索のブロック図が示される。フォーム移植700は、
図5におけるスクリーン・キャプチャ・プログラム500のような機能強化されたスクリーン・キャプチャ・プログラムによって具現化される。
【0048】
コンピュータ・ベースのフォーム702は、1つのコンピュータ・ベースのフォームがウェブ・ブラウザを介してアクセスされる実施例の一例である。コンピュータ・ベースのフォーム702は、ユニバーサル・レコード・ロケータ704、フィールド706、およびフィールド708を含む。コンピュータ・ベースのフォーム702が、例えば、
図5におけるユーザ514のようなユーザまたはプロセスによってアクセスされるとき、
図4におけるスクリーン・キャプチャ・ツー・フォーム検知器はコンピュータ・ベースのフォーム702を検知し、スクリーン・キャプチャ・データ・ストア710における一致する格納されたフォームを識別する。スクリーン・キャプチャ・データ・ストア710は、
図4におけるスクリーン・キャプチャ・データ・ストア402の実施態様の一例であってもよい。検知は、コンピュータ・ベースのフォーム702の特性を解析すること、およびイメージ712、714、716、および718のようなスクリーン・キャプチャ・データ・ストア710における1つまたは複数個の格納されたフォームの特性と比較することによって行われ得る。解析のための種々の手段は、アプリケーションおよびフォーム・タイトル、並びにアプリケーション・プログラミング・インターフェース(API)コールを介してアクセスし得るURLまたはウィンドウの識別子のような他の識別子を比較することを含むがこれに限られない。スクリーン・キャプチャ・データ・ストア710への問い合わせを減らすために、アプリケーション起動時に、スクリーン・キャプチャ・データ・ストア710は、アプリケーションから何らかのレコードに関して問い合わされ、何も存在しない場合、
図4におけるスクリーン・キャプチャ・ツー・フォーム検知器408のようなスクリーン・キャプチャ・ツー・フォーム検知器はフォームのためにアプリケーションをモニタすることを止め得る。
【0049】
スクリーン・キャプチャ・データ・ストア710は、イメージ712、イメージ714、イメージ716、およびイメージ718を含む。イメージ712、714、716、および718は、
図5におけるスクリーン・キャプチャ・プログラム500のような機能強化されたスクリーン・キャプチャ・プログラムによって作成された関連のイメージ・メタデータを備えた格納されたイメージの例である。イメージ714は、コンピュータ・ベースのフォーム702の機能強化されたスクリーン・キャプチャである。コンピュータ・ベースのフォーム702がユーザによってアクセスされるとき、スクリーン・キャプチャ・データ・ストア710も、コンピュータ・ベースのフォーム702に相関する格納されたイメージがスクリーン・キャプチャ・データ・ストア710に格納されるかどうか判断するためにアクセスされる。或る実施例では、ウェブ・ブラウザがユニバーサル・レコード・ロケータ704を以前にアクセスされて格納されたコンピュータ・ベースのフォームとして認識するとき、ウェブ・ブラウザは、同じユニバーサル・レコード・ロケータ704を用いてスクリーン・キャプチャ・データ・ストア710からイメージ714を引き出し、イメージ714からのデータをコンピュータ・ベースのフォーム702に移植するというオプションをユーザに与え得る。例えば、イメージ714におけるフィールド706はテキスト・データ720を含み、イメージ714におけるフィールド708はテキスト・データ722を含む。その後、1つまたは複数個の選択されたテキスト・データまたは他のデータは、選択されたテキスト・データまたは他のデータに対応するフィールドを移植するために、ウェブ・ページのドキュメント・オブジェクト・モデル(DOM)にデータを送るというようなアプリケーション・プログラム・インターフェース(API)コールを使用して、ウェブ・ブラウザに渡され得る。供給されたAPIがない実施例では、使用し得る別の技術は、アプリケーションを選択するためにオペレーティング・システム・コールを送り、しかる後、アプリケーションにキー・コマンドを送ることである。例えば、ウェブ・ブラウザを選択する際、2つのタブ・キーが送られ、それに続いてその選択されたテキスト・データに対応するキーを送り、更にそれに続いてエンタ・キーを送る。それは、そのフォームにおける第2のフィールドを選択すること、フォーム・データをタイプすること、しかる後、フォーム・サブミット・ボタンをクリックすることと同じ効果を有するであろう。入力装置操作およびボタン対話のような他の同様の技術を使用することも可能である。
【0050】
次に
図8を参照すると、実施例を具現化し得るフォームをイメージで取込むためのプロセスを表わすフローチャートが示される。そのプロセスは、
図5における機能強化されたスクリーン・キャプチャ・プログラム506において具現化することが可能である。
【0051】
そのプロセスは、イメージとしてフォームを取込むという要求を受け取ることによって始まる(ステップ802)。この要求は、
図5における機能強化されたスクリーン・キャプチャ・プログラム506を呼び出すユーザ502のような、ユーザ、プログラム、またはプロセスによって呼び出されてもよい。プロセスは、イメージとしてフォームを取込み(ステップ804)、フォーム内の多くのフィールド値を検知する(ステップ806)。フィールド値は、例えば、テキスト・データ、個人のテキスト・データ、チェックボックス選択、またはリスト・ボックス選択であってもよい。次に、イメージ・メタデータにフィールド値を格納し(ステップ808)、しかる後、プロセスは終了する。
【0052】
次に
図9を参照すると、本発明の実施例を具現化し得る、取込まれたフォームにおけるセキュア・データを保護するためのプロセスを表わすフローチャートが示される。そのプロセスは、
図5における機能強化されたスクリーン・キャプチャ・プログラム506において具現化することが可能である。
【0053】
そのプロセスは、イメージとしてフォームを取込むことによって始まる(ステップ902)。プロセスは、フィールド値内のプライベートなテキスト・データを検知する(ステップ904)。プライベートなテキスト・データは、例えば、パスワードまたはパスワード・オブジェクト・タグであってもよい。しかる後、プロセスは、プライベートなテキスト・データを含むフィールド値とセキュア・フィールド値を関連させる(ステップ906)。プロセスは、プライベートなテキスト・データのないフィールド値をイメージ・メタデータに格納し(ステップ908)、しかる後、プロセスは終了する。
【0054】
次に
図10を参照すると、実施例を具現化し得る、フォームフィールド値を移植するプロセスを表わすフローチャートが示される。そのプロセスは、
図5における機能強化されたスクリーン・キャプチャ・プログラム506において具現化することが可能である。
【0055】
プロセスは、フォームにアクセスするという要求を受け取ることによって始まる(ステップ1002)。実施例では、要求は、例えば、
図5におけるユーザ514のようなユーザ、プロセス、またはプログラムによって行われてもよい。プロセスは、フォームが、
図5におけるコンピュータ・ベースのフォーム・バイナリ508のような格納されたイメージに対応するかどうかを判断する(ステップ1004)。フォームがその格納されたイメージに対応しない場合、プロセスは終了する。フォームが格納されたイメージに対応する場合、プロセスは、格納されたイメージに対するイメージ・メタデータを検索する(ステップ1006)。プロセスは検索されたイメージ・メタデータを使用してそのフォームを移植し(ステップ1008)、しかる後、プロセスは終了する。
【0056】
図におけるフローチャートおよびブロック図は、本発明の様々な実施例に従って、システム、方法、およびコンピュータ・プログラムの可能な実施態様のアーキテクチャ、機能性、およびオペレーションを表わす。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理的機能を具現化するための1つまたは複数個の実行可能な命令を含むモジュール、セグメント、またはコード部分を表わし得る。或る代替の実施態様では、ブロックに示された機能が図に示された順序から外れて生じることがあるということに留意されたい。例えば、連続して示された2つのブロックが、実際には、実質的に同時に実行されることもあり、或いは、それらのブロックが、ときには、関連の機能次第で逆順に実行されることもある。更に、ブロック図および/またはフローチャートの各ブロック、およびブロック図および/またはフローチャートにおけるブロックの組合せが、指定された機能または動作を遂行する特殊目的のハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組合せによって具現化されてもよい。
【0057】
従って、実施例は、イメージに基づいてフォームを処理するための方法およびコンピュータ・プログラムを提供する。フォームはイメージとして取込まれ、イメージにおけるフォーム内の多くのフィールド値が検知される。その多くのフィールド値はイメージ・メタデータに格納される。更に、センシティブなデータまたはプライベートなデータを含むフィールド値が検知され、セキュア・フィールドとして識別される。識別されたセキュア・フィールド内のデータはイメージ・メタデータに格納されない。これは、或る実施例ではフォーム内の1つまたは複数個のフィールド値において見られることがあるパスワードのようなセンシティブな情報に対するセキュリティを提供する。
【0058】
更に実施例は、フォームに対するアクセス要求を検知するための方法およびコンピュータ・プログラムを提供する。そのフォームが多くの格納されたイメージにおける1つの格納されたイメージに対応するかどうかに関する判断が行われる。フォームが格納されたイメージに対応する場合、その格納されたイメージに関連したメタデータが検索される。メタデータは、フォームに対応する多くのフィールド値および関連するテキスト・データを含む。フォームは、格納されたイメージに関連するメタデータからの多くのフィールド値および関連するテキスト・データを移植される。
【0059】
本明細書において使用される用語は、特定の実施例のみを説明するためのものであり、本発明を限定することを意図するものではない。本明細書で使用される用語「含む」は、記述された特徴、整数、ステップ、オペレーション、要素、および/またはコンポーネントの存在を指定するが、1つまたは複数個の他の特徴、整数、ステップ、オペレーション、要素、コンポーネント、および/またはそれのグループの存在または追加を妨げるものではない、ということは当然である。
【0060】
本願の「特許請求の範囲」におけるすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物は、その「特許請求の範囲」における他の要素と結合して機能を遂行するための任意の構造、材料、または動作を含むことを意図している。本発明に関する記載は図解および説明の目的として示されたが、網羅的であることまたは開示された形態の発明に限定されることを意図するものではない。本発明の範囲および主旨を逸脱することなく、多くの修正および変更が当業者には明らかであろう。実施例は、発明の原理および実用的な応用を最もよく説明するために、および、意図された特定の用途に適するように種々の修正を伴う種々の実施例に関して、当業者が本発明を理解することを可能にするために、選ばれそして記述された。
【0061】
本発明は、全体的にハードウェアの実施例、全体的にソフトウェア実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形態を取ることが可能である。好適な実施例では、本発明はソフトウェアで具現化され、それは、ファームウェア、駐在のソフトウェア、マイクロコード等を含むが、それに限定されない。
【0062】
更に、本発明は、コンピュータまたは任意の命令実行システムによってまたはそれに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形態をとり得る。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、或いはそれに関連して使用するためにプログラムを含み、格納し、通信し、伝播し、または搬送し得る任意の有形の装置であってもよい。
【0063】
媒体は、電子的、磁気的、光学的、電磁気的、赤外線、または半導体システム(装置もしくはデバイス)、或いは伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、および光ディスクを含む。光ディスクの現用の例は、コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)、コンパクト・ディスク・リード・ライト(CD−R/M)、およびDVDを含む。
【0064】
プログラム・コードを格納および/または実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接または間接的に連結された少なくとも1つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、及び、実行中に、プログラム・コードが大容量記憶装置から検索される回数を減らすために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含み得る。
【0065】
入出力装置またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイス等を含むが、それらに限定されない)は、システムに直接または介在するI/Oコントローラを介して結合され得る。
【0066】
ネットワーク・アダプタも、データ処理システムが介在の専用ネットワークまたは公衆ネットワークを介して他のデータ処理システムまたはリモート・プリンタもしくは記憶装置に結合されることを可能にするために、システムに結合され得る。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用可能なタイプのネットワーク・アダプタのほんの一例である。
【0067】
本発明に関する記述は例示および説明を目的として示されたが、網羅的であることまたは開示された形態の発明に限定されることを意図するものではない。当業者には、多くの修正および変更が明らかであろう。実施例は、本発明の原理および実用的な応用例を最もよく説明するために、および、当業者が、意図する特定の用途に適するような種々の修正を伴う種々の実施例に関して本発明を理解することを可能にするために、選ばれ且つ記述された。