(57)【特許請求の範囲】
【請求項１】
クライアントシステムとサーバシステムとの間で、データファイルを転送するための方法であって、前記サーバシステムは、ファイル・システムと、データベースシステムと、メモリと、を含み、前記データベースシステムは、データベースを含むと共に、前記ファイル・システムへのアクセスを提供し、前記クライアントシステムは、第１のコンピュータ・オペレーティング・システムを実行し、前記サーバシステムは、第２のコンピュータ・オペレーティング・システムを実行する、前記方法は、
・前記クライアントシステムに組み合わせられたソフトウェアアプリケーションによって送信される要求であって、データファイルの保存の要求を、前記データベースシステムによって受信するステップと、
・前記データベースシステムによって、前記クライアントシステムから、前記データファイルを受信するステップと、
・前記データベースシステムを使用して、前記データファイルを前記サーバシステム内の前記メモリに保存するステップと、
・前記データベースシステムを使用して、前記サーバ・ファイル・システムにおいて、前記データファイルから宛て先ディレクトリへとデータをコピーするステップと、
・前記宛て先ディレクトリへのディレクトリパスを前記データベースに保存するステップであって、前記ディレクトリパスによって、前記データファイルが保存された前記サーバ・ファイル・システム内で、前記宛て先ディレクトリのレコードを提供する、ステップと、
・前記データファイルが前記宛て先ディレクトリに保存される場合に、前記データベースシステムを使用して、成功コードを前記クライアントシステムへと出力するステップであって、前記成功コードは、前記データファイルが前記宛て先ディレクトリにうまく保存されたことを示す、ステップと、
を含んでいる方法。
【請求項２】
前記サーバ・ファイル・システムに複数のディレクトリを生成するステップ
をさらに含んでおり、
前記データファイルが保存されるディレクトリが、選択されたディレクトリおよびデフォルトのディレクトリのうちの一方である、請求項１に記載の方法。
【請求項３】
前記サーバシステムは第１のサーバと第２のサーバとを含み、前記データベースシステムを使用して、前記データファイルを前記サーバ・ファイル・システム内の前記メモリに保存するステップは、前記データファイルを前記サーバ内に含まれる一時記憶メモリに保存するステップを含み、前記データベースシステムを使用して、前記データファイルから宛て先ディレクトリへとデータをコピーするステップは、前記受信されたデータファイルを前記第１のサーバから前記第２のサーバへ転送するステップと、前記第２のサーバのメモリでの前記受信したデータファイルを保存するステップと、を含んでいる、請求項１に記載の方法。
【請求項４】
前記データファイルを前記サーバ・ファイル・システムの宛て先ディレクトリに保存するステップが、キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を前記データベースシステムによって宣言するステップをさらに含んでいる、請求項３に記載の方法。
【請求項５】
前記データファイルが、複数のキャラクタラインを含んでおり、
前記データファイルを前記サーバ・ファイル・システムのディレクトリに保存するステップが、前記複数のキャラクタラインの各々のラインを、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・該ＣＬＯＢ変数の内容を前記ディレクトリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断する
ことによって、順次に前記ディレクトリに保存するステップをさらに含んでいる、請求項４に記載の方法。
【請求項６】
前記サーバシステムは、第１のサーバと第２のサーバとを含み、前記データベースシステムを使用して前記データファイルを前記サーバ・ファイル・システム内の前記メモリに保存するステップは、データファイルをサーバ内に含まれる一時記憶メモリに保存するステップを含み、
前記方法は、
・クライアントシステムへとデータファイルを送信する要求を、前記データベースシステムによって受信するステップと、
・前記データファイルと関連する前記サーバ・ファイル・システムの宛て先ディレクトリを検索するステップと、
・前記宛て先ディレクトリ内で前記データファイルを開くステップと、
・前記データファイルから前記第１のサーバの前記メモリへデータを転送するステップと、
・前記データファイルからのデータを前記第１のサーバのメモリに保存するステップと、
・前記データファイルを前記第１のサーバから前記クライアントシステムへと送信するステップと、
をさらに含んでいる、請求項１に記載の方法。
【請求項７】
前記データファイルが、複数のキャラクタラインを含んでおり、
前記データファイルからのデータを前記第１のサーバの前記メモリに保存するステップが、前記複数のキャラクタラインの各々のラインを、
・前記宛て先ディレクトリに保存された前記データファイルにアクセスし、
・キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・該ＣＬＯＢ変数の内容を前記メモリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断する
ことによって、順次に前記メモリに保存するステップをさらに含んでいる、請求項６に記載の方法。
【請求項８】
前記サーバシステムは、第１のサーバと第２のサーバとを含み、前記データベースシステムを使用して、前記データファイルを前記サーバ・ファイル・システム内の前記メモリに保存するステップは、前記データファイルを前記サーバ内に含まれる一時記憶メモリに保存するステップを含み、
少なくとも前記第１のサーバ又は前記第２のサーバのいずれか１つによって実行される前記第２のコンピュータ・オペレーティング・システムが、前記クライアントシステムによって実行される前記第１のコンピュータ・オペレーティング・システムとは異なる、請求項１に記載の方法。
【請求項９】
前記クライアントシステムが、複数のクライアントシステムのうちの第１のクライアントシステムであり、
前記データファイルを前記第１のサーバから前記クライアントシステムへと送信するステップが、前記データファイルを前記複数のクライアントシステムのうちの第２のクライアントシステムへと送信するステップを含んでおり、
前記第２のクライアントシステムが、前記第１のクライアントシステムによって実行される前記第１のコンピュータ・オペレーティング・システムとは異なる第３のコンピュータ・オペレーティング・システムを実行する、請求項６に記載の方法。
【請求項１０】
前記データファイルを第２のクライアントへと送信するステップが、前記第１のクライアントシステムに組み合わせられたソフトウェアアプリケーションの言語とは異なるプログラミング言語で記述されたソフトウェアアプリケーションに組み合わせられた第２のクライアントシステムへと前記データファイルを送信するステップを含んでいる、請求項９に記載の方法。
【請求項１１】
プラットフォームによらないデータファイルの転送を実行するためのネットワーク基盤のシステムであって、
・第１のクライアントおよび第２のクライアントを含んでおり、前記第１のクライアントが、第１のコンピュータ・オペレーティング・システムを実行し、第１のプログラミング言語で記述されたソフトウェアアプリケーションに組み合わせられており、前記第２のクライアントが、第２のコンピュータ・オペレーティング・システムを実行し、第２のプログラミング言語で記述されたソフトウェアアプリケーションに組み合わせられている複数のクライアントシステムと、
・ファイル・システム、メモリ、およびデータベースシステムを備えているサーバシステムと、
を備えており、
前記サーバシステムが、第３のコンピュータ・オペレーティング・システムを実行し、前記複数のクライアントシステムへと接続されるように構成されており、
前記データベースシステムは、データベースを含み、前記ファイル・システムへのアクセスを前記複数のクライアントシステムに提供するように構成され、
さらに前記データベースシステムが、
・前記第１のクライアントから、データファイルの保存の要求を受信し、
・前記第１のクライアントから前記データファイルを受信し、
・前記データファイルを前記メモリのディレクトリに保存し、
・前記ファイル・システムで前記データファイルから宛て先ディレクトリへデータをコピーし、
・前記宛て先ディレクトリへのパスを前記データベースに保存し、前記ディレクトリパスは、前記データファイルが保存された前記サーバ・ファイル・システム内で、前記宛て先ディレクトリのレコードを提供し、
・前記データファイルが前記宛て先ディレクトリにうまく保存された場合に、成功コードを前記第１のクライアントへと出力し、前記成功コードは、前記データファイルが前記宛て先ディレクトリにうまく保存されたことを示す、ように構成されているシステム。
【請求項１２】
前記データベースシステムが、前記サーバ・ファイル・システムに複数のディレクトリを生成するようにさらに構成されており、
前記データファイルが保存されるディレクトリが、選択されたディレクトリおよびデフォルトのディレクトリのうちの一方である、請求項１１に記載のシステム。
【請求項１３】
前記サーバシステムは、第１のサーバと第２のサーバとを含み、前記データベースシステムを用いて前記データファイルを前記メモリに保存するステップは、前記データファイルを前記サーバ内に含まれる一時記憶メモリに保存するステップを含み、
前記サーバデータベースシステムが、
・前記データベースにおいてキャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記受信したデータファイルを前記第１のサーバの前記メモリに保存し、
・前記受信したデータファイルを前記第１のサーバから前記第２のサーバへ転送し、
・前記ＣＬＯＢ変数を使用して前記第２のサーバの前記サーバ・ファイル・システムの前記宛て先ディレクトリに前記受信したデータファイルを保存する
ようにさらに構成されている請求項１１に記載のシステム。
【請求項１４】
前記データファイルが、複数のキャラクタラインを含んでおり、
前記データベースシステムが、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・該ＣＬＯＢ変数の内容を前記宛て先ディレクトリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断する
ようにさらに構成されている、請求項１１に記載のシステム。
【請求項１５】
前記データベースシステムが、
・前記複数のクライアントのうちのクライアントへの前記データファイルの送信の要求を受信し、
・前記第２のサーバ内の前記宛て先ディレクトリに保存された前記データファイルにアクセスし、
・前記データベースにおいてキャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・該ＣＬＯＢ変数の内容を前記第１のサーバの前記メモリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断し、
・前記データファイルを前記メモリから前記クライアントへと送信する
ようにさらに構成されている、請求項１３に記載のシステム。
【請求項１６】
前記第１のクライアントシステムによって実行される前記第１のコンピュータ・オペレーティング・システムが、前記第２のクライアントによって実行されるコンピュータ・オペレーティング・システムおよび前記サーバによって実行される前記第３のオペレーティングシステムの少なくとも一方とは異なる、請求項１１に記載のシステム。
【請求項１７】
前記第１のクライアントに組み合わせられたソフトウェアアプリケーションを記述するために使用されている前記第１のプログラミング言語が、前記第２のクライアントに組み合わせられたソフトウェアアプリケーションを記述するために使用されている前記第２のプログラミング言語とは異なっている、請求項１１に記載のシステム。
【請求項１８】
プラットフォームによらないデータファイルの転送を実行するために、データベースシステムと接続されたコンピュータであって、前記コンピュータは、ファイル・システムとメモリとを備えており、前記コンピュータは、第１のコンピュータ・オペレーティング・システムを実行するクライアントと通信し、第２のコンピュータ・オペレーティング・システムを実行するコンピュータであって、前記データベースシステムは、データベースを備えると共に、
・前記クライアントから、データファイルの保存の要求を受信し、
・前記クライアントから前記データファイルを受信し、
・前記データファイルを前記メモリに保存し、
・前記ファイル・システムで前記データファイルから宛て先ディレクトリへデータをコピーし、
・前記データベース内において、前記宛て先ディレクトリへのパスを前記データベースに保存し、前記ディレクトリパスは、前記データファイルが保存された前記ファイル・システム内での前記宛て先ディレクトリのレコードを提供し、
・前記データファイルが前記宛て先ディレクトリにうまく保存された場合に、成功コードを前記クライアントへと出力し、前記成功コードは、前記データファイルが前記宛て先ディレクトリにうまく保存されたことを示す
ように構成されている、コンピュータ。
【請求項１９】
前記データベースシステムは、
・前記データベースにおいてキャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を、前記メモリに保存した前記データファイルのキャラクタの第１のラインに等しく設定し、
・前記ＣＬＯＢ変数の内容を前記宛て先ディレクトリにコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断する
ようにさらに構成されている、請求項１８に記載のコンピュータ。
【請求項２０】
前記データベースシステムは、
・前記クライアントへの前記データファイルの送信の要求を受信し、
・前記宛て先ディレクトリに保存された前記データファイルにアクセスし、
・前記データベースにおいてキャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・前記ＣＬＯＢ変数の内容を該コンピュータのメモリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断し、
・前記データファイルを前記メモリから前記クライアントへと送信する
ようにさらに構成されている、請求項１８に記載のコンピュータ。
【請求項２１】
前記クライアントが、複数のクライアントシステムのうちの第１のクライアントであり、
前記コンピュータが、前記複数のクライアントシステムのうちの第２のクライアントへと前記データファイルを送信するように構成されており、
前記第１のクライアントが、前記コンピュータによって実行される前記第２のコンピュータ・オペレーティング・システムとは異なる前記第１のコンピュータ・オペレーティング・システムを実行し、前記第２のクライアントが、第３のオペレーティングシステムを実行する、請求項２０に記載のコンピュータ。
【請求項２２】
クライアントシステムとサーバシステムとの間で、プラットフォームによらないデータファイルの転送を実現するために、コンピュータにとって読み取り可能な媒体上に具現化されたコンピュータプログラムであって、前記サーバシステムは、ファイル・システムと、データベースシステムと、メモリと、を備え、前記データベースシステムは、データベースを含むと共に、前記ファイル・システムへのアクセスを前記クライアントシステムに提供するように構成され、前記クライアントシステムは、第１のコンピュータ・オペレーティング・システムを実行し、前記サーバシステムは、第２のコンピュータ・オペレーティング・システムを実行し、前記プログラムは、前記サーバシステムによって前記データベースシステムを、
・前記クライアントシステムに組み合わせられたソフトウェアアプリケーションによって送信される要求であって、データファイルの保存を要求する要求を受信し、
・前記クライアントシステムから前記データファイルを受信し、
・前記データファイルを前記サーバ・ファイル・システム内の前記メモリに保存し、
・前記ファイル・システムで前記データファイルから宛て先ディレクトリへデータをコピーし、
・前記宛て先ディレクトリへのディレクトリパスを保存し、前記ディレクトリパスは、前記データファイルが保存された前記サーバ・ファイル・システム内で、前記宛て先ディレクトリのレコードを提供し、
・前記データファイルが前記宛て先ディレクトリにうまく保存された場合に、成功コードを前記クライアントシステムへと出力し、前記成功コードは、前記ファイルが前記宛て先ディレクトリにうまく保存されたことを示す、
ように動作させる少なくとも１つのコードセグメントを含んでいるコンピュータプログラム。
【請求項２３】
前記サーバシステムによって前記データベースシステムを
・前記データファイルを前記サーバの前記メモリに保存し、
・キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を、前記サーバのメモリに保存された前記データファイルのキャラクタの第１のラインに等しく設定し、
・前記ＣＬＯＢ変数の内容を前記宛て先ディレクトリにコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断する
ように、動作させる少なくとも１つのコードセグメントをさらに含んでいる、請求項２２に記載のコンピュータプログラム。
【請求項２４】
前記サーバシステムによって前記データベースシステムを、
・前記クライアントシステムへの前記データファイルの送信の要求を受信し、
・前記宛て先ディレクトリに保存された前記データファイルにアクセスし、
・キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言し、
・前記ＣＬＯＢ変数を各ラインに等しく設定し、
・前記ＣＬＯＢ変数の内容を前記サーバのメモリへとコピーし、
・前記データファイルがさらなるラインを含んでいるか否かを判断し、
・前記データファイルを前記サーバの前記メモリから前記クライアントへと送信する、
ように、動作させる少なくとも１つのコードセグメントをさらに含んでいる、請求項２２に記載のコンピュータプログラム。
【請求項２５】
前記クライアントシステムが、複数のクライアントシステムのうちの第１のクライアントであり、
該プログラムが、前記複数のクライアントシステムのうちの第２のクライアントへと前記データファイルを送信するように、前記サーバシステムによって前記データベースシステムを動作させる少なくとも１つのコードセグメントをさらに含んでおり、
前記第１のクライアントが、前記サーバによって実行される前記第２のコンピュータ・オペレーティング・システムとは異なる前記第１のコンピュータ・オペレーティング・システムを実行し、前記第２のクライアントが、第３のオペレーティングシステムを実行する、請求項２２に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くには、データファイルの転送のためのシステムおよび方法に関し、さらに詳しくは、クライアント−サーバネットワークにおいてプラットフォームによらないデータファイルの転送を実行するためのシステムおよび方法に関する。
【背景技術】
【０００２】
クライアント−サーバネットワークの動作において、クライアントおよび／またはサーバなどといったネットワークノードの間でデータファイルを転送することが、しばしば所望される。少なくともそのようなネットワークの一部においては、データベースまたはデータベースを有するサーバが、特定のレコードについてのデータベーステーブルに、データファイルの全体を保存することができる。例えば、データベースは、各々のレコードについて、レコード識別子と識別されたレコードに組み合わせられたデータファイルとを保持するテーブルを含むことができる。しかしながら、レコードの数が増すにつれて、データベースのサイズが、追加のデータファイルゆえに急激に増加する。これは、データベースにおけるクエリーの処理の速度ならびにデータベースへの新規レコードの追加の速度に、大きく影響する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
さらに、少なくともいくつかのデータベースは、画像、音声、および／または他のマルチメディアオブジェクトなど、バイナリデータのデータファイル全体を、バイナリ・ラージ・オブジェクト（ＢＬＯＢ）として保存することができる。例えば、データベースが、各々のレコードについて、レコード識別子と識別されたレコードに組み合わせられたＢＬＯＢとを保持するテーブルを含むことができる。そのようなデータベースは、上述した同じ性能の問題の影響を受けやすい。したがって、データベースへのデータファイルの転送およびデータベースからのデータファイルの転送を、データファイルを転送するオペレーティングシステムにかかわらずに可能にするシステムが、必要とされている。
【課題を解決するための手段】
【０００４】
一態様においては、クライアントシステムとサーバシステムとの間でデータファイルを転送するための方法が提供される。クライアントが、第１のコンピュータ・オペレーティング・システムを実行する。サーバが、第２のコンピュータ・オペレーティング・システムを実行し、ファイルシステムを含んでおり、データベースに接続されている。本方法は、データファイルの保存の要求をデータベースによって受信するステップを含んでおり、この要求は、クライアントに組み合わせられたソフトウェアアプリケーションによってデータベースへと送信される。さらに本方法は、クライアントからデータファイルを受信するステップと、データファイルをサーバのファイルシステム内のディレクトリに保存するステップと、ディレクトリへのパスをデータベースに保存するステップと、成功コードおよび失敗コードのうちの一方をクライアントへと出力するステップと、を含んでいる。
【０００５】
別の態様においては、プラットフォームによらないデータファイルの転送を実行するためのネットワーク基盤のシステムが提供される。本システムは、第１のクライアントおよび第２のクライアントを含む複数のクライアントシステムを含んでおり、第１のクライアントが、第１のコンピュータ・オペレーティング・システムを実行し、第１のプログラミング言語で記述されたソフトウェアアプリケーションに組み合わせられており、第２のクライアントが、第２のコンピュータ・オペレーティング・システムを実行し、第２のプログラミング言語で記述されたソフトウェアアプリケーションに組み合わせられている。さらに本システムは、ファイルシステムおよびデータベースを備えているサーバシステムを備えており、サーバは、第３のコンピュータ・オペレーティング・システムを実行する。サーバは、前記クライアントへと接続されるように構成されており、第１のクライアントからデータファイルの保存の要求を受信し、第１のクライアントからデータファイルを受信し、データファイルをサーバのファイルシステム内のディレクトリに保存し、ディレクトリへのパスをデータベースに保存し、成功コードおよび失敗コードのうちの一方を第１のクライアントへと出力するようにさらに構成されている。
【０００６】
別の態様においては、プラットフォームによらないデータファイルの転送を実行するために、データベースへと接続されたコンピュータが提供される。本コンピュータは、ファイルシステムを備えており、第１のコンピュータ・オペレーティング・システムを実行するクライアントと通信し、本コンピュータは、第２のコンピュータ・オペレーティング・システムを実行する。本コンピュータは、クライアントからデータファイルの保存の要求を受信し、クライアントからデータファイルを受信し、データファイルをファイルシステム内のディレクトリに保存し、ディレクトリへのパスをデータベースに保存し、成功コードおよび失敗コードのうちの一方をクライアントへと出力するようにプログラムされている。
【０００７】
さらに別の態様においては、クライアントシステムとサーバシステムとの間でプラットフォームによらないデータファイルの転送を実行するために、コンピュータにとって読み取り可能な媒体上に具現化されたコンピュータプログラムが提供される。サーバシステムが、ファイルシステムを含んでおり、データベースに接続されている。クライアントが、第１のコンピュータ・オペレーティング・システムを実行し、サーバが、第２のコンピュータ・オペレーティング・システムを実行する。本プログラムは、クライアントに組み合わせられたソフトウェアアプリケーションによって送信される要求であって、データファイルの保存の要求を受信し、クライアントからデータファイルを受信し、データファイルをサーバのファイルシステム内のディレクトリに保存し、ディレクトリへのパスをデータベースに保存し、成功コードおよび失敗コードのうちの一方をクライアントへと出力する少なくとも１つのコードセグメントを含んでいる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態によるシステムのアーキテクチャの典型的な実施形態の概略のブロック図である。
【図２】本発明の一実施形態によるシステムのアーキテクチャの典型的な実施形態の広範なブロック図である。
【図３】図２に示したシステムによって利用される典型的な方法を説明するフロー図である。
【発明を実施するための形態】
【０００９】
本明細書において使用されるとき、プロセッサは、システムおよびマイクロコントローラ、縮小命令セット回路（ＲＩＳＣ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理回路（ＰＬＣ）、ならびに本明細書に記載の機能を実行することができる任意の他の回路またはプロセッサを含む任意のプログラマブルなシステムを含むことができる。上述の例は、あくまでも例示にすぎず、決して用語「プロセッサ」の定義および／または意味を限定しようとするものではない。
【００１０】
本明細書において使用されるとき、データベースは、階層型データベース、リレーショナルデータベース、カード型データベース、オブジェクト関係データベース、オブジェクト指向型データベース、ならびにコンピュータシステムに保存されるレコードまたはデータの他の任意の構造化された集まりなど、あらゆるデータの集合を含むことができる。上述の例は、あくまでも例示にすぎず、決して用語「データベース」の定義および／または意味を限定しようとするものではない。データベースの例として、これらに限られるわけではないが、Ｏｒａｃｌｅ（登録商標）Ｄａｔａｂａｓｅ、ＭｙＳＱＬ、ＩＢＭ（登録商標）ＤＢ２、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬ  Ｓｅｒｖｅｒ、Ｓｙｂａｓｅ（登録商標）、およびＰｏｓｔｇｒｅＳＱＬが挙げられる。しかしながら、本明細書に記載のシステムおよび方法を可能にする任意のデータベースを使用することが可能である（Ｏｒａｃｌｅは、カリフォルニア州レッドウッドショアのＯｒａｃｌｅ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、ＩＢＭは、ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、Ｍｉｃｒｏｓｏｆｔは、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、Ｓｙｂａｓｅは、カリフォルニア州ダブリンのＳｙｂａｓｅ社の登録商標である）。
【００１１】
本明細書において使用されるとき、キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）は、データベースシステムに保存することができるテキストなどのキャラクタデータの集まりである。ＣＬＯＢ変数の種類は、比較的大量のデータを含むことができる。例えば、ＣＬＯＢは、最大約２ギガバイト（ＧＢ）のデータを含むことができる。
【００１２】
データベースを使用してクライアント−サーバネットワークにおけるプラットフォームによらないデータファイルの転送の実行を促進するシステムおよび方法の典型的な実施形態が、本明細書において詳しく説明される。このシステムおよび方法は、例えば、データベースに接続されたサーバのファイルシステムへのデータファイルの保存、およびデータベースへのデータファイルのパスの保存を促進する。さらに、このシステムおよび方法は、最初にデータファイルについてファイルシステムにおけるパスをデータベースに照会し、次いで回答されたパスに従ってファイルシステムからデータファイルを読み出すことによって、ファイルシステムからのデータファイルの読み出しを促進する。結果として、本明細書に記載のシステムおよび方法は、任意のプログラミング言語で記述されたソフトウェアアプリケーションが、データベースに接続されたサーバのファイルシステムへとデータファイルを書き込み、データベースに接続されたサーバのファイルシステムからデータファイルを読み出すことを、クライアントのオペレーティングシステムおよびサーバのオペレーティングシステムにかかわらず可能にする。
【００１３】
本明細書に記載のシステムおよび方法の技術的効果は、（ａ）データベースへと接続され、任意のオペレーティングシステムを使用または実行しているサーバのファイルシステムに、複数のディレクトリを生成すること、（ｂ）任意のオペレーティングシステムを使用し、任意のプログラミング言語で記述されたクライアント・ソフトウェア・アプリケーションを使用してデータファイルを送信するクライアントから、データファイルを受信すること、（ｃ）データファイルをサーバのメモリに保存すること、（ｄ）ＣＬＯＢ変数を宣言すること、（ｅ）サーバのメモリからデータファイルの各ラインをＣＬＯＢ変数へと順次に読み出すこと、（ｆ）各ラインをＣＬＯＢ変数からサーバのファイルシステムのディレクトリへとコピーすること、および（ｇ）データベースにディレクトリのパスを保存すること、のうちの少なくとも１つを含む。本明細書に記載のシステムおよび方法のさらなる技術的効果は、（ｇ）保存されているデータファイルの読み出しの要求をクライアントから受信すること、（ｈ）ＣＬＯＢ変数を宣言すること、（ｉ）ディレクトリからデータファイルの各ラインをＣＬＯＢ変数へと順次に読み出すこと、（ｊ）各ラインをＣＬＯＢ変数からサーバのメモリへとコピーすること、および（ｋ）データファイルをクライアントへと送信すること、のうちの少なくとも１つを含む。
【００１４】
一実施形態においては、コンピュータプログラムが提供される。コンピュータプログラムは、コンピュータにとって読み取り可能な媒体上に具現化され、任意のオペレーティングシステムを使用または実行しているクライアントシステムなどのエンドユーザデバイスと、任意のオペレーティングシステムを使用しており、データベースと通信するように接続されているサーバシステムとの通信のために、構造化照会言語（ＳＱＬ）を利用する。一実施形態においては、そのようなシステムが、支払取引ネットワークなど、企業体のイントラネットにおいて使用される。別の実施形態においては、そのようなシステムが、企業体の１つ以上のイントラネットの組み合わせにおいて使用され、インターネットにおいて使用される。
【００１５】
本明細書に記載のシステムおよび方法は、本明細書に記載の具体的な実施形態に限られない。例えば、各々のシステムの構成要素および／または各々の方法の各段階を、本明細書に記載の他の構成要素および／または段階から別個独立に使用および／または実行することができる。さらには、各々の構成要素および／または段階を、他の集合パッケージおよび方法において使用および／または実行することも可能である。
【００１６】
図１が、本発明の一実施形態による典型的なシステム１００の概略のブロック図である。一実施形態において、システム１００は、金融取引カード支払いシステムである。より具体的には、この典型的な実施形態において、システム１００は、サーバシステム１０２と、サーバシステム１０２へと接続された複数のクライアントサブシステム（クライアントシステム１０４とも称される）とを含んでいる。一実施形態において、クライアントシステム１０４は、サーバシステム１０２がインターネットおよび／またはイントラネットなどのネットワークを介してクライアントシステム１０４へとアクセスできるよう、ウェブブラウザおよび／またはクライアント・ソフトウェア・アプリケーションを含んでいるコンピュータである。クライアントシステム１０４は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、ダイアルイン接続、ケーブルモデム、無線モデム、および／または超高速ＩＳＤＮ回線などのネットワークを含む多数のインターフェイスによってインターネットへと相互接続される。クライアントシステム１０４は、ウェブベースの電話機、携帯情報端末（ＰＤＡ）、または他のウェブベースの接続可能機器など、インターネットへの相互接続が可能な任意の装置であってよい。データベースサーバ１０６が、金融取引カード支払いデータなどといった種々の事柄についての情報を含んでいるデータベース１０８へと接続されている。一実施形態においては、集中型のデータベース１０８が、サーバシステム１０２に保存されており、クライアントシステム１０４のうちの１つに位置する潜在的なユーザが、クライアントシステム１０４のうちの１つによってサーバシステム１０２へとログオンすることによって、集中型のデータベース１０８にアクセスすることができる。別の実施形態においては、データベース１０８が、サーバシステム１０２から離れた場所に保存され、集中型でなくてもよい。
【００１７】
図２が、本発明の一実施形態によるシステム２００のサーバアーキテクチャの典型的な実施形態の広範なブロック図である。システム２００の構成要素のうち、システム１００（図１に示されている）の構成要素と同一の構成要素は、図２において、図１において使用した参照番号と同じ参照番号を使用して特定されている。システム２００は、サーバシステム１０２およびクライアントシステム１０４を含んでいる。サーバシステム１０２は、データベースサーバ１０６、アプリケーションサーバ２０２、ウェブサーバ２０４、ｆａｘサーバ２０６、ディレクトリサーバ２０８、およびメールサーバ２１０をさらに含んでいる。ディスク・ストレージ・ユニット２１２が、データベースサーバ１０６およびディレクトリサーバ２０８へと接続されている。ディスク・ストレージ・ユニット２１２の例として、これらに限られるわけではないが、ネットワーク接続ストレージ（ＮＡＳ）装置およびストレージ・エリア・ネットワーク（ＳＡＮ）装置が挙げられる。データベースサーバ１０６は、データベース１０８へも接続されている。サーバ１０６、２０２、２０４、２０６、２０８、および２１０は、ローカル・エリア・ネットワーク（ＬＡＮ）２１４に接続されている。さらに、システム管理者ワークステーション２１６、ユーザワークステーション２１８、および監督者ワークステーション２２０が、ＬＡＮ２１４へと接続されている。代案として、ワークステーション２１６、２１８、および２２０は、インターネットリンクを使用してＬＡＮ２１４へと接続され、あるいはイントラネットを介して接続される。
【００１８】
クライアントシステム１０４ならびにワークステーション２１６、２１８、および２２０の各々は、ウェブブラウザおよび／またはクライアントアプリケーションを有しているパーソナルコンピュータである。クライアントシステム１０４ならびにワークステーション２１６、２１８、および２２０において実行される機能が、典型的に、それぞれのクライアントシステム１０４ならびに／あるいはワークステーション２１６、２１８、および２２０において実行されるものとして説明されるが、代わりに、そのような機能を、ＬＡＮ２１４へと接続された多数のパーソナルコンピュータのうちの１つにおいて実行してもよい。クライアントシステム１０４ならびにワークステーション２１６、２１８、および２２０が、単にＬＡＮ２１４へのアクセスを有する個人によって実行することができるさまざまな種類の機能の理解を容易にするためだけの目的で、別々の機能に組み合わせられているものとして説明される。
【００１９】
サーバシステム１０２が、ＩＳＰインターネット接続２２２を用いたサーバシステム１０２へのアクセスを可能にするために、クライアントシステム１０４ならびにワークステーション２１６、２１８、および２２０へと通信可能に接続されるように構成されている。典型的な実施形態においては、通信がインターネットを使用して実行されるものとして説明されるが、他の実施形態においては、任意の他のワイド・エリア・ネットワーク（ＷＡＮ）型の通信を利用することができ、すなわちシステムおよびプロセスは、インターネットを用いての実行には限られない。さらに、ＷＡＮ２２４よりもむしろ、ローカル・エリア・ネットワーク２１４をＷＡＮ２２４の代わりに使用することができる。さらに、ｆａｘサーバ２０６は、電話回線を使用して遠方に位置するクライアントシステム１０４ならびにワークステーション２１６、２１８、および２２０と通信する。
【００２０】
典型的な実施形態において、クライアントシステム１０４は、複数のコンピュータ・オペレーティング・システムのいずれかを使用または実行することができる。考えられるコンピュータ・オペレーティング・システムの例として、これらに限られるわけではないが、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ、Ｍａｃ  ＯＳ  Ｘ（登録商標）、ならびにＣａｎｏｎｉｃａｌ  Ｌｔｄ．  Ｕｂｕｎｔｕ（登録商標）、Ｎｏｖｅｌｌ（登録商標）ＳＵＳＥ  Ｌｉｎｕｘ、およびＤｅｂｉａｎ（登録商標）などのＬｉｎｕｘディストリビューションが挙げられる（Ｍｉｃｒｏｓｏｆｔは、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、Ｍａｃ  ＯＳ  Ｘは、カリフォルニア州クパティーノのＡｐｐｌｅ，  Ｉｎｃ．の登録商標であり、Ｃａｎｏｎｉｃａｌ  Ｌｔｄ．  Ｕｂｕｎｔｕは、マン島のＣａｎｏｎｉｃａｌ  Ｌｔｄ．の登録商標であり、Ｎｏｖｅｌｌは、マサチューセッツ州ウォルサムのＮｏｖｅｌｌ，  Ｉｎｃ．の登録商標であり、Ｄｅｂｉａｎは、インディアナ州インディアナポリスのＳｏｆｔｗａｒｅ  ｉｎ  ｔｈｅ  Ｐｕｂｌｉｃ  Ｉｎｔｅｒｅｓｔ，  Ｉｎｃ．の登録商標である）。しかしながら、クライアントシステム１０４を本明細書に記載のとおりに機能させることができる任意のコンピュータ・オペレーティング・システムを使用することが可能である。各々のクライアントシステム１０４が、クライアントアプリケーションを使用してサーバシステム１０２とやり取りし、さらには／あるいはデータベースサーバ１０６を介してデータベース１０８にアクセスする。典型的な実施形態においては、クライアント・ソフトウェア・アプリケーションを、複数のプログラミング言語のいずれかで記述することができる。考えられるプログラミング言語の例として、これらに限られるわけではないが、Ｃ＃、Ｃ＋＋、Ｊａｖａ、および／またはＰｅｒｌが挙げられる。しかしながら、クライアントシステム１０４によって使用されるソフトウェアアプリケーションを本明細書に記載のとおりに機能させることができる任意のプログラミング言語を使用することができる。
【００２１】
さらに、典型的な実施形態において、データベースサーバ１０６が、複数のコンピュータ・オペレーティング・システムのいずれかを使用または実行することができる。考えられるコンピュータ・オペレーティング・システムの例として、これらに限られるわけではないが、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ  ２００３、ＦｒｅｅＢＳＤ（登録商標）、ＵＮＩＸ（登録商標）、および上述したようなＬｉｎｕｘディストリビューションが挙げられる（Ｍｉｃｒｏｓｏｆｔは、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標であり、ＦｒｅｅＢＳＤは、コロラド州ボルダーのＴｈｅ  ＦｒｅｅＢＳＤ  Ｆｏｕｎｄａｔｉｏｎの登録商標であり、ＵＮＩＸは、カリフォルニア州サンフランシスコのＴｈｅ  Ｏｐｅｎ  Ｇｒｏｕｐの登録商標である）。しかしながら、データベースサーバ１０６を本明細書に記載のとおりに機能させることができる任意のコンピュータ・オペレーティング・システムを使用することが可能である。さらに、例えばディレクトリサーバ２０８など、データベース１０８へと通信可能に接続される任意のサーバが、上述の複数のコンピュータ・オペレーティング・システムのいずれかを使用でき、あるいは実行することができる。
【００２２】
図３が、システム２００（図２に示されている）によって利用される典型的な方法３００を説明するフロー図である。典型的な実施形態において、システム２００においてデータファイルを転送するために、複数のディレクトリを生成しなければならない（３０２）。各々のディレクトリが、データベースサーバ１０６（図２に示されている）など、データベース１０８（図２に示されている）に接続されたサーバのファイルシステムに生成される。別の実施形態においては、ディレクトリを、データベース１０８によってアクセスすることができるファイルシステムを有しているサーバシステム１０２（図２に示されている）内の任意のサーバ上に生成することができる。複数のディレクトリ種類およびディレクトリ名も、データベース１０８において生成される。一実施形態においては、ＳＱＬコマンドが、データベース１０８に対して、ディレクトリ種類を生成して、ディレクトリ名をディレクトリ種類に組み合わせるように指示するために使用される。
【００２３】
ディレクトリがファイルシステムにおいて生成され、データベース１０８内のディレクトリ種類に組み合わせられた後で、クライアントシステム１０４（図２に示されている）が、クライアントアプリケーションを介して、データファイルの保存または読み出しを要求することができる。データベースサーバ１０６が、要求を受信（３０４）し、要求が保存の要求であるか、あるいは読み出しの要求であるかを判断する。
【００２４】
典型的な実施形態においては、要求が保存の要求である場合に、データベースサーバ１０６が、クライアントシステム１０４からデータファイルおよびディレクトリを受信する（３０６）。別の実施形態においては、ディレクトリがクライアントシステム１０４から受信されない場合に、データベースサーバ１０６が、デフォルトディレクトリを選択する。次いで、データベース１０８が、データファイルをデータベースサーバ１０６またはディレクトリサーバ２０８（図２に示されている）などといったサーバのメモリ（図示されていない）に保存する（３０８）。サーバのメモリは、ランダム・アクセス・メモリ（ＲＡＭ）モジュールおよび／またはサーバーファイルシステム内に生成されたスワップ空間を含むことができる。データベース１０８が、データをサーバのメモリに保存されたデータファイルから宛て先ディレクトリへとコピーするために使用されるキャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言する（３１０）。次いで、データベース１０８は、サーバのメモリからキャラクタの第１のラインを読み出す（３１２）。より具体的には、データベース１０８が、ＣＬＯＢ変数をキャラクタの第１のラインに等しく設定する。次いで、典型的な実施形態においては、データベース１０８が、上述のように生成されたディレクトリを開き、ＣＬＯＢ変数値をディレクトリに保存する（３１４）。あるいは、ディレクトリが未だ生成されていない場合には、データベース１０８が、上述のようにディレクトリを生成する（３０２）。次いで、データベース１０８は、サーバのメモリに保存されたデータファイルにキャラクタの残りのラインが存在するか否かを判断する（３１６）。データファイルの終わりを、エンド・オブ・ファイル（ＥＯＦ）フラグなどのフラグによって表すことができる。キャラクタのラインがデータファイルに残っている場合には、データベース１０８が、サーバのメモリからキャラクタの次のラインを読み出すステップ（３１２）、ＣＬＯＢ変数をキャラクタの次のラインに等しく設定するステップ、およびＣＬＯＢ変数値をディレクトリに保存するステップ（３１４）を繰り返す。次いで、データベース１０８は、ディレクトリのパスおよび／またはファイル名を特定のデータベーステーブルに保存する（３１８）。データベーステーブルは、各々のデータベースレコードについての識別子を含んでいる第１のカラム、およびデータファイルを保存したディレクトリのパスを含んでいる第２のカラムなど、データおよび／または識別子からなる複数のカラムを含んでいる。データファイルを保存したときに、データベース１０８は、成功コードおよび失敗コードのうちの一方をクライアントシステム１０４へと出力する（３２０）。成功コードまたは失敗コードを、聴覚信号および／またはクライアントの表示装置上の視覚信号によって、ユーザへと提示することができる。
【００２５】
典型的な実施形態において、要求が読み出しの要求である場合に、データベースサーバ１０６が、クライアントシステム１０４からファイル名および／または関連のデータベースレコードを受信する（３２２）。データベース１０８が、キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）変数を宣言（３２４）し、データファイルに関するサーバ・ファイル・システムのディレクトリを検索する（３２６）。データベース１０８は、要求されたデータファイルに関するデータベースレコードの識別子を使用して、テーブル（ディレクトリのパスおよび関連のレコード識別子を保存するための上述のテーブルなど）を検索することができる。データベース１０８は、ディレクトリ内のデータファイルを開き、データファイルの第１のラインを読み出す（３２８）。データベース１０８は、ＣＬＯＢ変数をデータファイルの第１のラインに等しく設定する。次いで、ＣＬＯＢ変数値が、サーバのメモリに保存される（３３０）。次いで、データベース１０８は、ディレクトリに保存されたデータファイルにキャラクタの残りのラインが存在するか否かを判断する（３３２）。データファイルの終わりを、エンド・オブ・ファイル（ＥＯＦ）フラグなどのフラグによって表すことができる。キャラクタのラインがディレクトリに残っている場合には、データベース１０８が、ディレクトリからキャラクタの次のラインを読み出すステップ（３２８）、ＣＬＯＢ変数をキャラクタの次のラインに等しく設定するステップ、およびＣＬＯＢ変数値をサーバのメモリに保存するステップ（３３０）を繰り返す。次いで、データファイルが、クライアントシステム１０４へと転送される（３３４）。データファイルが転送されたとき、データベース１０８は、成功コードおよび失敗コードの一方をクライアントシステム１０４へと出力する（３２０）。成功コードまたは失敗コードを、聴覚信号および／またはクライアントの表示装置上の視覚信号によって、ユーザへと提示することができる。あるいは、データファイルを、クライアントの表示装置を使用してクライアントシステム１０４のユーザへと提示することができる。
【００２６】
本明細書に記載のシステムおよび方法は、データベースを含んでいるクライアント−サーバネットワークにおいて、プラットフォームによらないデータファイルの転送の実行を容易にする。さらに、このシステムおよび方法は、ソフトウェアアプリケーションを任意のプログラミング言語で記述することを可能にし、任意のコンピュータ・オペレーティング・システムを使用するクライアントによって実行することを可能にし、データファイルをデータベースに接続されたサーバのファイルシステムへと書き込み、さらには読み出すことを、サーバの使用するコンピュータ・オペレーティング・システムにかかわらず可能にする。
【００２７】
本明細書に記載のシステムおよび方法は、データベースを使用したプラットフォームによらないデータファイル転送の文脈において説明されているが、これらのシステムおよび方法が、そのようなシステムおよび／または方法だけに限られるわけではないことを、理解できるであろう。同様に、例示したシステムの構成要素は、本明細書における特定の実施形態に限定されず、むしろ、そのようなシステムの構成要素を、本明細書に記載の他の構成要素から別個独立に使用することが可能である。
【００２８】
本発明を、種々の具体的な実施形態に関して説明したが、本発明を、特許請求の範囲の技術的思想および技術的範囲の範囲内において、変更を加えて実行できることを、当業者であれば理解できるであろう。
【図１】
0005394396.tif 000002
【図２】
0005394396.tif 000003
【図３】
0005394396.tif 000004