(57)【特許請求の範囲】
【請求項１】
第２コンピュータ処理システムによって管理される共有記憶装置に記憶されたデータに第１コンピュータ処理システムがアクセスするための方法において、前記第２コンピュータ処理システムによって前記共有記憶装置に提供されたデータ記憶フォーマットは、前記第１コンピュータ処理システムによって要求されたデータ記憶フォーマットとは非互換性である前記方法であって、
前記共有記憶装置上のデータにアクセスするためにクライアントメッセージを、第１コンピュータ処理システム上で動作されるデータアクセスサーバにおいて、受信する段階と、
前記クライアントメッセージの受信に応じて、前記第１コンピュータ処理システムに接続された第２コンピュータ処理システムから提供されたデータ記憶情報を取得する段階であって、前記第１コンピュータ処理システムと互換性のある方法で、前記データ記憶情報によって、前記第１コンピュータ処理システムが、前記共有記憶装置の前記データにアクセスし得る前記段階と、前記データ記憶情報を取得する段階は、
適切なデータ記憶情報が前記第１コンピュータ処理システム上でローカルに入手可能か否か決定し、前記クライアントメッセージに基づき、前記第１コンピュータ処理システムと互換性のある方法で、前記データアクセスサーバが前記共有記憶装置上の前記データへアクセスできるようにする段階と、
入手可能である場合、前記取得したデータ記憶情報として前記第１コンピュータ処理システム上でローカルに入手可能な前記適切なデータ記憶情報を用いる段階と、
入手可能でない場合、前記第２コンピュータ処理システムから、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データをアクセスするために必要な前記データ記憶情報を取得する段階とを含み、
前記取得されたデータ記憶情報に基づき、前記データアクセスサーバから直接、前記共有記憶装置上の前記データにアクセスする段階と、を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記データアクセスサーバは、分散型データサーバであり、前記クライアントメッセージを受信する段階は、
前記データアクセスサーバから前記共有記憶装置のデータへのアクセスを要求する少なくとも１つのデータアクセスクライアントに、分散型データプロトコルに基づき動作する分散型データインターフェイスを提供する段階と、
前記データアクセスサーバによって提供された前記分散型データインターフェイスを介して、前記分散型データプロトコルを用いて、前記少なくとも１つのデータアクセスクライアントから前記クライアントメッセージを受け取る段階であって、前記クライアントメッセージは、前記分散型データプロトコルに基づきフォーマット化されたデータアクセス命令を含み、前記データアクセス命令は、前記クライアントの代わりに、前記共有記憶装置の前記データに提供されるアクセスタイプを示す前記段階と、を含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、
前記データアクセスサーバは、分散型ファイルシステムデータアクセスサーバであり、前記分散型データインターフェイスは、前記データアクセスサーバによって提供された分散型ファイルシステムインターフェイスであり、前記分散型データプロトコルは、分散型ファイルシステムプロトコルであり、また、
前記クライアントメッセージを受け取る段階は、前記分散型ファイルシステムプロトコルに基づき、前記少なくとも１つのデータアクセスクライアントから前記クライアントメッセージを受信する段階を含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、
前記分散型ファイルシステムプロトコルは、ネットワークファイルシステムプロトコル、ウェッブベースのネットワークファイルシステムプロトコル、及びＣＩＦプロトコルの内の少なくとも１つであることを特徴とする方法。
【請求項５】
請求項２に記載の方法であって、
前記分散型データプロトコルは、ＣＯＲＢＡデータ交換プロトコル、Ｊａｖａ ｂｅａｎｓベースのメッセージ送信プロトコル、及びハイパーテキスト転送プロトコルの内の少なくとも１つであることを特徴とする方法。
【請求項６】
請求項２に記載の方法であって、
前記共有記憶装置のデータへのアクセスを要求する前記少なくとも１つのデータアクセスクライアントは、前記第１コンピュータ処理システムとは異なるコンピュータ処理システム上で実行され、前記提供する段階と受け取る段階は、前記第１コンピュータ処理システムと、前記少なくとも１つのデータアクセスクライアントを実行する前記コンピュータ処理システムとを接続するネットワーク上で前記分散型データアクセスプロトコルを用いて、前記データアクセスサーバによって実行されることを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、 前記データ記憶情報を取得する段階では、前記データアクセスサーバによって前記第１コンピュータ処理システムに維持された仮想ファイルシステムから前記データ記憶情報を取得し、前記仮想ファイルシステムは、以前受信されたクライアントメッセージの処理に応じて、前記クライアントメッセージの受信の前に、前記第２コンピュータ処理システムから前記データ記憶情報を取得することを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、前記仮想ファイルシステムから前記データ記憶情報を取得する段階には、
クライアント要求メッセージにおいてアクセスが要求されている前記データに対応するｕノードを得るために、前記仮想ファイルシステムのｕノードの数を検索する段階と、
前記ｕノードに基づき、前記仮想ファイルシステムから前記データ記憶情報を得る段階と、が含まれることを特徴とする方法。
【請求項９】
請求項１に記載の方法であって、前記取得したデータ共有記憶情報に基づき前記共有記憶装置上の前記データにアクセスする段階は、
クライアントメッセージで指定された方法で前記共有記憶装置の前記データにアクセスするために、データアクセスサーバによって、少なくとも１つのデータアクセスルーチンを実行する段階であって、前記少なくとも１つのデータアクセスルーチンは、前記データ記憶情報を用いて、前記第１コンピュータ処理システムと互換性のあるフォーマット中の前記データを正確に位置付けアクセスする前記段階を含むことを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
前記クライアントメッセージは、アプリケーションの代わりに前記共有記憶装置にある前記データへの読み込みアクセスを要求し、
前記共有記憶装置の前記データをアクセスするために、前記少なくとも１つのデータアクセスルーチンを実行する段階には、
前記クライアントメッセージに指定された方法で、前記取得したデータ記憶情報によって指定された位置の前記共有記憶装置から前記データを読み込む段階と、
前記データアクセスサーバから読み込む段階によって読み込まれた前記データを、前記クライアントメッセージを発したデータアクセスクライアントへ返す段階と、が含まれることを特徴とする方法。
【請求項１１】
請求項１に記載の方法であって、
前記第１コンピュータ処理システムは、オープンシステムのコンピュータ処理システムであり、前記第２コンピュータ処理システムは、メインフレームコンピュータ処理システムであり、クライアントメッセージを受信する段階には、
少なくとも１つのデータアクセスクライアントが、分散型ファイルシステムプロトコルを用いて、前記データアクセスサーバにアクセスできるようにして、前記データアクセスサーバを介して、前記共有記憶装置の前記メインフレームコンピュータ処理システムによって維持されたメインフレームデータへのアクセスを要求する段階が含まれ、
前記データアクセスサーバから前記共有記憶装置上の前記データにアクセスする段階には、
前記メインフレームコンピュータ処理システムから取得された前記データ記憶情報を用いて、前記データアクセスサーバによって、前記クライアントメッセージの命令によって指定されたように、直接且つ互換性があるように前記共有記憶装置に記憶された前記データにアクセスする段階と、
前記分散型ファイルシステムプロトコルを用いて、前記データアクセスサーバから、前記データを前記少なくとも１つのデータアクセスクライアントに提供する段階と、が含まれることを特徴とする方法。
【請求項１２】
請求項１１に記載の方法であって、
前記少なくとも１つのデータアクセスクライアントは、前記第１コンピュータ処理システム上で実行され、また、前記第１コンピュータ処理システムで実行されるアプリケーションの代わりに機能し、
前記クライアントメッセージを取得する段階と前記データにアクセスを行う段階は、前記第１コンピュータ処理システム内で前記分散型ファイルシステムプロトコルを用いて、前記データアクセスクライアントと前記データアクセスサーバとの間で実行されることを特徴とする方法。
【請求項１３】
請求項１１に記載の方法であって、
前記少なくとも１つのデータアクセスクライアントは、複数のデータアクセスクライアントであり、前記データを提供する段階には、前記第１コンピュータ処理システム上の前記データアクセスサーバから前記複数のデータアクセスクライアントに、分散型ファイルシステムプロトコルを用いて、前記共有記憶装置において前記メインフレームによって維持されるデータを提供する段階が含まれることを特徴とする方法。
【請求項１４】
請求項１２に記載の方法であって、
前記複数のデータアクセスクライアントの内、少なくとも１つは、前記第１及び第２コンピュータ処理システムとは異なるコンピュータ処理システム上で実行され、前記クライアントメッセージを取得する段階と前記データにアクセスする段階は、前記第１コンピュータ処理システムと、前記データアクセスクライアントを実行している前記コンピュータ処理システムとを接続するネットワークを介して実行されることを特徴とする方法。
【請求項１５】
請求項１に記載の方法であって、更に、
前記第１コンピュータ処理システムにおいて、複数のノードが含まれる仮想ファイルシステムを、少なくとも１つのノードがクライアントメッセージを介してアクセスが要求されるデータの各部分に対応する状態で、維持する段階が含まれ、
前記データ記憶情報を取得する段階には、
前記クライアントメッセージを介してアクセスが要求される前記データが、前記仮想ファイルシステムにおいて対応するノードを有しているか否か判断する段階が含まれ、
そうである場合、
前記仮想ファイルシステムの前記対応するノードから前記データ記憶情報を取得する段階と、
そうでない場合、
前記第２コンピュータ処理システムから前記データ記憶情報を取得する段階と、
前記取得したデータ記憶情報に基づき、前記仮想ファイルシステムに少なくと１つのノードを作成する段階と、
前記第２コンピュータ処理システムから取得した前記データ記憶情報の少なくとも一部を前記仮想ファイルシステムのそのデータに対して作成された前記ノードに挿入する段階と、が含まれることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、前記維持する段階には、
前記第１コンピュータ処理装置上にある前記仮想ファイルシステムの前記複数の各ノードを、階層型フォーマットで、前記階層型フォーマットの異なるレベルが、前記第２コンピュータ処理システムによって管理される記憶システムの異なる要素を表す状態で、維持する段階が含まれることを特徴とする方法。
【請求項１７】
請求項１６に記載の方法であって、
前記階層型フォーマットは、前記共有記憶装置に記憶された前記データのメインフレーム記憶構成をオープンシステムのファイルシステム構成にマッピングすることを特徴とする方法。
【請求項１８】
請求項１５に記載の方法であって、
前記維持する段階は、前記仮想ファイルシステムの各ノードに対して、そのノードと前記仮想ファイルシステムにおける他のノードとの関係と前記ノード用の一意的なハンドルに関する情報とを維持することを特徴とする方法。
【請求項１９】
請求項１５に記載の方法であって、
前記維持する段階は、前記仮想ファイルシステムの各ノードに対して、前記共有記憶装置内のデータに対する少なくとも１つのアクセス位置を含むデータアクセス情報を維持することを特徴とする方法。
【請求項２０】
請求項１に記載の方法であって、データ記憶情報を取得する前記段階には、
前記クライアントメッセージのクライアント要求パラメータに基づき、適切なデータ記憶情報が、前記第１コンピュータ処理システム上で前記データアクセスサーバによって維持される仮想ファイルシステムにおいて入手可能かどうか判断する段階が含まれ、
入手不可能な場合、
前記クライアントメッセージによって指定されたプロトコル命令に基づき、少なくとも１つの第１データアクセスルーチンを選択する段階と、
前記少なくとも１つの第１データアクセスルーチンを実行して、前記第１コンピュータ処理システム上の前記データアクセスサーバが、前記第２コンピュータ処理システムと通信を行い、前記第２コンピュータ処理システムから前記データ記憶情報を要求できるようにする段階と、
前記第２コンピュータシステムから前記少なくとも１つのデータアクセスルーチンに対する応答を受信する段階と、
前記少なくとも１つのデータアクセスルーチンに対する応答を解析して、前記データ記憶情報を判断し、そして、前記第１コンピュータ処理システム上で前記データアクセスサーバによって維持される前記仮想ファイルシステムに前記データ記憶情報を配置する段階と、
入手可能な場合、
前記クライアントメッセージに含まれるクライアント要求パラメータを、前記選択された少なくとも１つのデータアクセスルーチンに使用可能なデータアクセスパラメータに翻訳する段階であって、前記翻訳の段階では、仮想ファイルシステムに含まれるデータ記憶情報を用いて、アクセスが前記クライアント要求メッセージに指定されたデータの前記共有記憶装置に記憶位置を提供する前記段階と、が含まれることを特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、前記クライアントメッセージに含まれるクライアント要求パラメータを翻訳する段階には、
前記クライアントメッセージから少なくとも１つのクライアント要求パラメータを得る段階と、
前記少なくとも１つのクライアント要求パラメータを、前記少なくとも１つのデータアクセスルーチンの実行に必要な少なくとも１つのデータアクセスルーチンパラメータにマッピングする段階であって、前記少なくとも１つのデータアクセスルーチンパラメータは、データ記憶情報を指定し、前記データアクセスルーチンが前記共有記憶装置内のデータの記憶位置にアクセスできるようにする段階と、が含まれることを特徴とする方法。
【請求項２２】
請求項２１に記載の方法であって、前記マッピングの段階には、データアクセス翻訳機能を用い、ｕノードの仮想ファイルシステムに、前記クライアントメッセージに提供されたデータアクセスハンドルに対応する特定のｕノードが無いかどうか問い合わせる段階と、
前記データ記憶情報を前記ｕノードから得る段階と、が含まれることを特徴とする方法。
【請求項２３】
請求項２０に記載の方法であって、
前記少なくとも１つのデータアクセスルーチンを実行する段階には、前記第１コンピュータシステム上の前記データアクセスサーバと前記第２コンピュータ処理システム上のデータアクセスエージェントとの間で通信を行い、前記クライアントメッセージによって指定された前記プロトコル命令を実行するために必要な前記データ記憶情報を得る段階が含まれることを特徴とする方法。
【請求項２４】
請求項２３に記載の方法であって、
前記第１コンピュータ処理装置はオープンシステムのコンピュータ処理システムであり、前記第２コンピュータ処理装置はメインフレームであり、前記データ記憶情報は前記メインフレーム内で維持されるメタデータ内に含まれており、
前記通信する段階には、前記データアクセスエージェントにデータアクセス要求を送り、前記共有記憶装置用のメインフレームカタログから得られたメタデータを戻す段階であって、前記メタデータは、前記共有記憶装置の前記メインフレームによって維持された前記データ用のデータ記憶情報を含む前記段階が含まれることを特徴とする方法。
【請求項２５】
請求項１に記載の方法であって、前記共有記憶装置上の前記データにアクセスする段階には、
少なくとも１つのデータアクセスルーチンにおける少なくとも１つのデータアクセスルーチンパラメータに、前記データ記憶情報をマッピングする段階と、
前記少なくとも１つのデータアクセスルーチンを実行することによって、前記共有記憶装置に直接アクセスし、前記共有記憶装置にデータアクセス要求を送る段階と、
前記データアクセス要求に応じて、前記クライアントメッセージでアクセスが要求されるデータを含む記憶装置の応答を取得する段階と、
前記クライアントメッセージを発したデータアクセスクライアントに前記データを提供する段階と、が含まれることを特徴とする方法。
【請求項２６】
第１コンピュータ処理システム上で動作するデータアクセスサーバから共有記憶装置のデータにアクセスするための方法において、前記データは、第２コンピュータ処理システムによって維持される前記方法であって、
分散型データプロトコルを介して、データアクセスクライアントから前記データアクセスサーバによって、前記データへのアクセス要求を受け取る段階と、
前記第２コンピュータ処理システムに問い合わせることによって、前記共有記憶装置における前記データの記憶特性を得る段階と、
前記第２コンピュータ処理システムから得られたデータの前記記憶特性に基づき、前記データアクセスサーバによって維持される仮想ファイルシステムを作成する段階と、
前記仮想ファイルシステムが、前記第１コンピュータ処理システム上の前記データアクセスサーバによって、前記要求に対応する充分な情報を含むか否か判断する段階であって、そうである場合、前記データへの前記アクセス要求に対応し、そうでない場合、前記第２コンピュータ処理システムから前記データ記憶情報を得て、その要求に適切に対応し、前記仮想ファイルシステムを維持するために、前記得られたデータ記憶情報を前記仮想ファイルシステムに書き込み、前記得られたデータ記憶情報を用いて、前記要求に対応する前記段階と、を含むことを特徴とする方法。
【請求項２７】
第２コンピュータ処理システムによって管理される共有記憶装置に記憶されたデータに第１コンピュータ処理システムによりアクセスするためにその媒体上にコード化されたコンピュータプログラムロジックを含むコンピュータ読み取り可能な媒体であって、前記第２コンピュータ処理システムによって前記共有記憶装置に提供されたデータ記憶フォーマットは、前記第１コンピュータ処理システムによって要求されたデータ記憶フォーマットとは非互換性であり、前記コンピュータプログラムロジックは、前記第１コンピュータ処理システムを有する少なくとも１つの処理ユニット上でデータアクセスサーバとして実行された時、前記少なくとも１つの処理ユニットに、
前記共有記憶装置上のデータにアクセスするためにクライアントメッセージを受信する段階と、
前記クライアントメッセージの受信に応じて、前記第１コンピュータ処理システムに接続された第２コンピュータ処理システムから提供されたデータ記憶情報を取得する段階であって、前記第１コンピュータ処理システムと互換性のある方法で、前記データ記憶情報によって、前記第１コンピュータ処理システムが、前記共有記憶装置の前記データにアクセスし得る前記段階と、前記データ記憶情報を取得する段階は、
適切なデータ記憶情報が前記第１コンピュータ処理システム上でローカルに入手可能か否か決定し、前記クライアントメッセージに基づき、前記第１コンピュータ処理システムと互換性のある方法で、前記データアクセスサーバが前記共有記憶装置上の前記データへアクセスできるようにする段階と、
入手可能である場合、前記取得したデータ記憶情報として前記第１コンピュータ処理システム上でローカルに入手可能な前記適切なデータ記憶情報を用いる段階と、
入手可能でない場合、前記第２コンピュータ処理システムから、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データをアクセスするために必要な前記データ記憶情報を取得する段階とを含み、
前記取得されたデータ記憶情報に基づき、前記データアクセスサーバから直接、前記共有記憶装置上の前記データにアクセスする段階と、を実行させることを特徴とするコンピュータ読み取り可能な媒体。
【請求項２８】
請求項２７に記載のコンピュータ読み取り可能な媒体において、前記クライアントメッセージを受信するためにそこにコード化された前記コンピュータプログラムロジックは、前記第１コンピュータ処理システムを有する少なくとも１つの処理ユニット上の前記データアクセスサーバにおいて実行された時、更に、前記少なくとも１つの処理ユニットに、
前記データアクセスサーバから前記共有記憶装置のデータへのアクセスを要求する少なくとも１つのデータアクセスクライアントに、分散型データプロトコルに基づき動作する分散型データインターフェイスを提供する段階と、
前記データアクセスサーバによって提供された前記分散型データインターフェイスを介して、前記分散型データプロトコルを用いて、前記少なくとも１つのデータアクセスクライアントから前記クライアントメッセージを受け取る段階であって、前記クライアントメッセージは、前記分散型データプロトコルに基づきフォーマット化されたデータアクセス命令を含み、前記データアクセス命令は、前記クライアントの代わりに、前記共有記憶装置の前記データに提供されるアクセスタイプを示す前記段階と、を実行させることを特徴とするコンピュータ読み取り可能な媒体。
【請求項２９】
請求項２７に記載のコンピュータ読み取り可能な媒体において、そこにコード化された前記コンピュータプログラムロジックは、前記第１コンピュータ処理システムを有する少なくとも１つの処理ユニット上の前記データアクセスサーバにおいて実行された時、更に、前記少なくとも１つの処理ユニットに、
前記第１コンピュータ処理システムにおいて、複数のノードが含まれる仮想ファイルシステムを、少なくとも１つのノードがクライアントメッセージを介してアクセスが要求されるデータの各部分に対応する状態で維持する段階、を実行させ、
前記データ記憶情報を取得する段階には、
前記クライアントメッセージを介してアクセスが要求される前記データが、前記仮想ファイルシステムにおいて対応するノードを有しているか否か判断する段階が含まれ、
そうである場合、
前記仮想ファイルシステムの前記対応するノードから前記データ記憶情報を取得する段階と、
そうでない場合、
前記第２コンピュータ処理システムから前記データ記憶情報を取得する段階と、 前記取得したデータ記憶情報に基づき、前記仮想ファイルシステムに少なくと１つのノードを作成する段階と、
前記第２コンピュータ処理システムから取得した前記データ記憶情報の少なくとも一部を前記仮想ファイルシステムのそのデータに対して作成された前記ノードに挿入する段階と、が含まれることを特徴とするコンピュータ読み取り可能な媒体。
【請求項３０】
第１コンピュータ処理システム上で実行されるデータアクセスサーバから共有記憶装置のデータにアクセスするためにその媒体上にコード化されたコンピュータプログラムロジックを含むコンピュータ読み取り可能な媒体であって、前記データは第２コンピュータ処理システムによって管理され、前記コンピュータプログラムロジックは、前記第１コンピュータ処理システムを有する少なくとも１つの処理ユニット上で前記データアクセスサーバとして実行された時、前記少なくとも１つの処理ユニットに、
分散型データプロトコルを介して、データアクセスクライアントから前記データアクセスサーバによって、前記データへのアクセス要求を受け取る段階と、
前記第２コンピュータ処理システムに問い合わせることによって、前記共有記憶装置における前記データの記憶特性を得る段階と、
前記第２コンピュータ処理システムから得られたデータの前記記憶特性に基づき、前記データアクセスサーバによって維持される仮想ファイルシステムを作成する段階と、
前記仮想ファイルシステムが、前記第１コンピュータ処理システム上の前記データアクセスサーバによって、前記要求に対応する充分な情報を含むか否か判断する段階であって、そうである場合、前記データへの前記アクセス要求に対応し、そうでない場合、前記第２コンピュータ処理システムから前記データ記憶情報を得て、その要求に適切に対応し、前記仮想ファイルシステムを維持するために、前記得られたデータ記憶情報を前記仮想ファイルシステムに書き込み、前記得られたデータ記憶情報を用いて、前記要求に対応する前記段階と、を実行させることを特徴とするコンピュータ読み取り可能な媒体。
【請求項３１】
共有データにアクセスする第１コンピュータ処理システムであって、
プロセッサと、
メモリ装置と、
前記第１コンピュータ処理システムを共有記憶装置に接続する共有記憶インターフェイスであって、前記共有データは、前記第１コンピュータ処理システムに対して本来互換性がない方法で、第２コンピュータ処理システムによって維持される前記共有記憶インターフェイスと、
前記プロセッサ、前記メモリ装置、前記共有記憶インターフェイスを接続する相互接続メカニズムと、
前記第１コンピュータ処理システムをネットワークと第２コンピュータ処理システムに接続するネットワークインターフェイスと、を含み、
前記メモリ装置は、前記第１コンピュータ処理システムの前記プロセッサ上で動作するデータアクセスサーバでコード化され、実行時、前記データアクセスサーバは、前記ネットワークインターフェイスを介して、クライアントメッセージを受信して前記共有記憶装置のデータにアクセスし、前記クライアントメッセージの受信に応じて、前記ネットワークインターフェイスを介して、前記第１コンピュータ処理システムに接続された前記第２コンピュータ処理システムから提供されるデータ記憶情報を取得し、前記データ記憶情報は、前記メモリ装置に記憶され、前記第１コンピュータ処理システムのデータアクセスサーバが、前記第１コンピュータ処理システムと互換性がある方法で、前記共有記憶装置の前記データにアクセスできるようにし、前記データアクセスサーバは、適切なデータ記憶情報が前記第１コンピュータ処理システム上でローカルに入手可能か否か決定し、前記クライアントメッセージに基づき、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置上の前記データへアクセスし、入手可能である場合、前記取得したデータ記憶情報として前記第１コンピュータ処理システム上でローカルに入手可能な前記適切なデータ記憶情報を用い、入手可能でない場合、前記第２コンピュータ処理システムから、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データをアクセスするために必要な前記データ記憶情報を取得し、更に、前記データアクセスサーバは、前記ネットワークインターフェイスを介して、前記取得されたデータ記憶情報に基づき、前記クライアントメッセージに従って前記共有記憶装置の前記データへアクセスする、ことを特徴とする第１コンピュータ処理システム。
【請求項３２】
請求項３１に記載の第１コンピュータ処理システムであって、更に、
前記メモリ装置内でコード化される仮想ファイルシステムを含み、
前記データアクセスサーバは、ロジックで更にコード化され、前記ロジックは、前記プロセッサ上で実行された時、前記ネットワークインターフェイスを介して受信された前記クライアントメッセージのクライアント要求パラメータに基づき、適当なデータ記憶情報が前記仮想ファイルシステムにおいて入手可能か否か判断し、
入手不可能な場合、
前記データアクセスサーバは、更に実行されると、前記プロセッサに、
前記クライアントメッセージによって指定されたプロトコル命令に基づき、少なくとも１つの第１データアクセスルーチンを選択させ、
前記少なくとも１つの第１データアクセスルーチンを実行させて、前記ネットワークインターフェイス上で、第１コンピュータ処理システム上の前記データアクセスサーバが、前記第２コンピュータ処理システムと通信できるようにして、前記第２コンピュータ処理システムから前記データ記憶情報を要求させ、
前記ネットワークインターフェイスを介して、前記第２コンピュータ処理システムから前記少なくとも１つのデータアクセスルーチンへの応答を受信させ、 前記少なくとも１つのデータアクセスルーチンへの応答を解析させ、前記データ記憶情報を判断させ、前記メモリ装置の前記データアクセスサーバによって維持される前記仮想ファイルシステムに前記データ記憶情報を配置させ、
入手可能な場合、
前記データアクセスサーバは、更に実行されると、前記プロセッサに、
前記クライアントメッセージに含まれるクライアント要求パラメータを、前記選択された少なくとも１つのデータアクセスルーチンに使用可能なデータアクセスパラメータに翻訳させ、前記翻訳では、仮想ファイルシステムに含まれるデータ記憶情報を用いて、アクセスが前記クライアント要求メッセージに指定されたデータの前記共有記憶装置に記憶位置を提供させる、ことを特徴とする第１コンピュータ処理システム。
【請求項３３】
データアクセスサーバを含むコンピュータシステムにおいて、前記データアクセスサーバは、プロセスとしてコード化され、分散型データインターフェイス、複数のデータアクセスルーチン、データアクセス翻訳装置、仮想ファイルシステムを維持するための手段を含むコンピュータシステムであって、前記データアクセスサーバは前記コンピュータシステムにおいて動作し、
前記分散型データプロトコルにより、データアクセスクライアントから分散型データインターフェイスを介して前記データへのアクセス要求を受け取り、
前記データアクセス翻訳装置とデータアクセスルーチンを介して、第２コンピュータ処理システムに問い合わせることによって前記共有記憶装置の前記データの記憶特性を得て、
前記データ翻訳装置を介して、前記第２コンピュータ処理システムから得られた前記データの前記記憶特性に基づき前記仮想ファイルシステムを維持し、
前記データアクセス翻訳装置を介して、前記仮想ファイルシステムが、第１コンピュータ処理システム上の前記データアクセスサーバによって前記要求に対応するのに充分な情報を含むか否か判断し、情報を含む場合、データアクセスルーチンと前記分散型データインターフェイスを介して、前記データへのアクセス要求を提供し、情報を含まない場合、前記データアクセスルーチンを介して、前記第２コンピュータ処理システムからデータ記憶情報を得て前記要求を適切に提供し、前記仮想ファイルを維持するために、前記データアクセス翻訳装置を介して、前記得られたデータ記憶情報を前記仮想ファイルシステムに入力し、前記得られたデータ記憶情報を用いて、前記分散型データインターフェイスを介して、前記要求に対応することを特徴とするコンピュータシステム。
【請求項３４】
第２コンピュータ処理システムによって管理された共有記憶装置に記憶されたデータにアクセスする第１コンピュータ処理システムにおいて、前記第２コンピュータ処理システムによって前記共有記憶装置に提供されたデータ記憶フォーマットが、前記第１コンピュータ処理システムが必要とするデータ記憶フォーマットとは互換性がない前記第１コンピュータ処理システムであって、
第１コンピュータ処理システム上で実行されるデータアクセスサーバにおいて、前記共有記憶装置上のデータにアクセスするためにクライアントメッセージを受信するための分散型データインターフェイス手段と、
前記クライアントメッセージの受信に応じて、前記第１コンピュータ処理システムに接続された前記第２コンピュータ処理システムから提供されたデータ記憶情報を取得するデータアクセスルーチン取得手段であって、前記データ記憶情報によって、前記第１コンピュータ処理システムが、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データにアクセスし得る前記データアクセスルーチン取得手段と、を含み、前記データアクセスルーチン取得手段は、適切なデータ記憶情報が前記第１コンピュータ処理システム上でローカルに入手可能か否か決定し、前記クライアントメッセージに基づき、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置上の前記データへアクセスし、入手可能である場合、前記取得したデータ記憶情報として前記第１コンピュータ処理システム上でローカルに入手可能な前記適切なデータ記憶情報を用い、入手可能でない場合、前記第２コンピュータ処理システムから、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データをアクセスするために必要な前記データ記憶情報を取得し、
前記分散型データインターフェイス手段は、前記取得されたデータ記憶情報に基づき、直接前記データアクセスサーバから、前記共有記憶装置上の前記データにアクセスすることを特徴とする第１コンピュータ処理システム。
【請求項３５】
第２コンピュータ処理システムによって管理された共有記憶装置に記憶されたデータに第１コンピュータ処理システムによってアクセスするための方法であって、
前記共有記憶装置上のデータへのアクセスを要求するクライアントメッセージを、第１コンピュータ処理システム上で実行されるデータアクセスサーバにおいて、受信する段階と、
前記クライアントメッセージの受信に応じて、前記第１コンピュータ処理システムに接続された第２コンピュータ処理システムから、ある時刻において提供されたデータ記憶情報を取得する段階であって、前記第１コンピュータ処理システムと互換性のある方法で、前記データ記憶情報によって、前記第１コンピュータ処理システムが、前記共有記憶装置の前記データにアクセスし得る前記段階と、前記データ記憶情報を取得する段階は、
適切なデータ記憶情報が前記第１コンピュータ処理システム上でローカルに入手可能か否か決定し、前記クライアントメッセージに基づき、前記第１コンピュータ処理システムと互換性のある方法で、前記データアクセスサーバが前記共有記憶装置上の前記データへアクセスできるようにする段階と、
入手可能である場合、前記取得したデータ記憶情報として前記第１コンピュータ処理システム上でローカルに入手可能な前記適切なデータ記憶情報を用いる段階と、
入手可能でない場合、前記第２コンピュータ処理システムから、前記第１コンピュータ処理システムと互換性のある方法で、前記共有記憶装置の前記データをアクセスするために必要な前記データ記憶情報を取得する段階とを含み、
前記取得されたデータ記憶情報に基づき、また、前記第１コンピュータ処理システム上で維持されるシークマップ情報に基づき、前記データアクセスサーバから直接、前記共有記憶装置上の前記データにアクセスする段階であって、前記シークマップ情報によって、前記第１コンピュータ処理システムが、任意のオフセットにおいて、前記データへのデータアクセス要求を含むクライアントメッセージを効率的に前記データに処理し得る前記段階と、を含むことを特徴とする方法。
【請求項３６】
請求項３５に記載の方法であって、
前記第１コンピュータ処理システムによって維持されるシークマップ情報は、前記第２コンピュータ処理システムによって維持される前記データにデータ記憶位置間のマッピングを記憶し、また、前記第１コンピュータ処理システムによって必要とされる前記データに対するオフセットとを記憶することを特徴とする方法。
【請求項３７】
請求項３５に記載の方法であって、
前記データアクセスサーバは、前記クライアントメッセージにおいて要求された前記データへアクセスするために、前記シークマップ情報を調べ、前記クライアントメッセージによって指定されたように前記要求データアクセスをサポートするためにアクセスが必要な前記データ内の前記位置に近い前記共有記憶装置上のデータへのオフセットを取得し、
前記データアクセスサーバは、前記シークマップ情報によって指定されたように前記共有記憶装置上の前記データへの前記オフセットで始まる前記データにおける所望の位置へのアクセスをシークし始めることを特徴とする方法。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、一般的に、データ記憶装置及びデータアクセスに関し、特に、コンピュータシステム上で動作するアプリケーション用の共有データにアクセスするシステムと手法に関する。
【０００２】
発明の背景
近年のコンピュータ及びデータ処理システムのデータ共有能力は、インターネット等、コンピュータネットワーク産業の人気や急速な拡大に大きく貢献している。この飽くことを知らない需要に対して、コンピュータシステムやソフトウェアの開発業者は、様々な従来技術によるデータ共有メカニズムを作り上げ、他のコンピュータシステムが生成し、記憶し、あるいは維持するデータへ、１つ以上のコンピュータシステムがアクセスできるようにしてきた。一般的に、データを共有するコンピュータシステムは、データ交換用の標準化されたクライアント／サーバプロトコルを用い、ネットワークを介してデータの共有を行う。このようなクライアント／サーバプロトコルは数多く存在し、この例には、データベースアクセスプロトコル、ファイル共有プロトコル、及びワールド・ワイド・ウェッブ（ＷＷＷ）ベースのプロトコルが含まれる。他のデータ共有システムは、２つのコンピュータシステムが、各コンピュータへ直接接続された通常共有される記憶装置のデータを共有できるように開発されてきた。
【０００３】
図１は、通常用いられる従来技術による“ネットワークファイルシステム（ＮＦＳ）”と呼ばれるクライアント／サーバデータ共有メカニズムの一例を示す。サンマイクロシステム社（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．  Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，カリフォルニア、米国）は、ＮＦＳを開発し、商標としてＮＦＳを所有している。数多くの商用オペレーティングシステムにＮＦＳが組み込まれており、その広範囲な普及によって、ＮＦＳは、ネットワーク化されたコンピュータシステム間でデータを共有するための業界標準になっている。図示した例では、メインフレームコンピュータ１０２は、ＭＶＳオペレーティングシステム１０５を用いて動作し、メインフレームコンピュータ１０２上で実行されるソフトウェアアプリケーション（特に図示しないが、例えば、データベースプログラム）が、ＭＶＳ専用フォーマットに基づき、記憶装置１１０において、レコード単位のデータやＭＶＳデータセット（図示せず）を生成したり記憶したりできるようにする。ＭＶＳオペレーティングシステム１０５の一部として備えられたＮＦＳサーバ１０９は、記憶装置１１０内のＭＶＳデータセットに記憶されたＭＶＳデータを如何にして適切にアクセスするか“理解している”。言い換えると、ＮＦＳサーバ１０９は、ＭＶＳにカストマイズされており、ＭＶＳデータセットを読み込み得る。ＮＦＳサーバ１０９は、記憶装置１１０内に維持されたＭＶＳデータを、Ｕｎｉｘワークステーション１０１等、他の遠隔コンピュータシステムによるアクセスのためのネットワーク１１３（例えば、ＴＣＰ／ＩＰネットワーク）へ“エキスポート”することができる。ＮＦＳサーバ１０９によって、ローカルファイルシステムのみがこのようにしてエキスポートされる。言い換えると、記憶装置１１０にあるファイルシステムやデータを維持及び管理する同じコンピュータ処理システム（すなわち、本例ではメインフレーム１０２）が、それらのファイルシステムをエキスポートできるＮＦＳサーバ１０９も動作させねばならない。
【０００４】
ワークステーション１０１の管理責任を負うシステム管理者（人、図示せず）が、Ｕｎｉｘオペレーティングシステム１０４の一部として備えられたＮＦＳクライアント１０８の環境設定を行い、ＮＦＳサーバ１０９によってエクスポートされるＭＶＳファイルシステムを“マウント”し得る。ＮＦＳクライアント１０８が、ネットワーク１１３を介して、この“エクスポート”されたファイルシステムを一旦“マウント”すると、ワークステーション１０１上で動作するアプリケーション１０６は、ＮＦＳクライアント１０８を介して、記憶装置１１０のデータにアクセス（例えば、読み取り及び書き込み）が可能である。一般的に、ＮＦＳクライアント１０８は、ネットワーク１１３を介して、このようなデータアクセスをリアルタイムにアプリケーション１０６へ提供する。このことは、このデータを含む記憶装置１１０が、ローカルに（例えば、ＳＣＳＩケーブル等の直接ディスクドライブ接続を介して）ワークステーション１０１に接続されているかのように行なわれる。一例として、アプリケーション１０６がオペレーティングシステム呼び出しを行い、記憶装置１１０のデータにアクセスする場合（例えば、ｆｏｐｅｎ（）等の関数を用いてデータを開く場合）、オペレーティングシステムは、このような呼び出しをＮＦＳクライアント１０８に渡し、ＮＦＳクライアント１０８は、標準セットのＮＦＳプロトコルメッセージを用いて、その呼び出しをＮＦＳサーバ１０９へ中継する。ＮＦＳサーバ１０９は、そのＮＦＳプロトコルメッセージを受信し、また、ＭＶＳデータ及び記憶フォーマットに関するその知識を用いて、記憶装置１１０に維持されたＭＶＳデータセット内のデータに対して、要求されたコマンド（例えば、読取り及び／又は書込み）を実行する。
【０００５】
ＮＦＳ（例えば、１０９）の開発者は、常駐する（本例では、ＭＶＳ）オペレーティングシステムに合わせてＮＦＳサーバをカストマイズすることが多い。これによって、ＮＦＳサーバは、ローカル記憶装置（例えば、１１０）内でオペレーティングシステムによって生成又は維持されたデータを、ネットワーク１１３を介して、１つ以上のＮＦＳクライアント（例えば、１０８）に“提供”できる。同様に、開発者の顧客は、そのオペレーティングシステム（例えば、１０４）用のＮＦＳクライアント（例えば、１０８）を設計するが、ここで、ＮＦＳクライアントは、そのオペレーティングシステム上で動作するアプリケーション（例えば、１０６）が、そのデータを提供しているホストのプラットフォーム（例えば、ＭＶＳメインフレーム１０２）の種類に拘わらず、ネットワーク１１３を介してデータにアクセスできるように動作する。
【０００６】
市販されている最新のＮＦＳバージョン（すなわち、ＮＦＳバージョン３）は、遠隔データアクセスに対して広く採用されており、また、約１５の標準ＮＦＳプロトコルメッセージ又はコマンドを組み込んでいるが、これらは、一括してＮＦＳプロトコルから構成されている。ＮＦＳクライアントとＮＦＳサーバは、これらのメッセージを交換することができる。ＮＦＳクライアントとＮＦＳサーバとの間において交換されるＮＦＳメッセージの例は、ＲＥＡＤ、ＷＲＩＴＥ、ＭＫＤＩＲ、ＲＭＤＩＲ、ＲＥＮＡＭＥ、ＬＩＮＫ、ＭＫＮＯＤ等である。当業者は、これらのＮＦＳメッセージが、ディレクトリ（例えば、ｍｋｄｉｒ（）、ｒｍｄｉｒ（））、ファイル（例えば、ｒｅａｄ（）、ｗｒｉｔｅ（））及びファイルシステムに対応したデータ構造（例えば、ｌｉｎｋ（））の操作に用いるファイルシステムのコマンドに極めてよく一致していることを認識されるであろう。
【０００７】
一般的に、ＮＦＳプロトコルメッセージ及びコマンドによって、ほとんどの種類のホストコンピュータプラットフォーム又はオペレーティングシステム（例えば、Ｕｎｉｘ、ウィンドウズ等）上で動作するＮＦＳクライアントは、他のほぼあらゆる種類のホストプラットフォーム又はオペレーティングシステムからのデータに対応するＮＦＳサーバにアクセスすることができる。クライアント（例えば、Ｕｎｉｘワークステーション１０１）とサーバ（例えば、メインフレーム１０２）との間におけるオペレーティングシステム呼び出し及びデータ及び／又はファイル記憶フォーマットの非互換性は、アプリケーション１０６からはほとんど見えない。例えば、アプリケーション１０６が、ＮＦＳクライアント１０８が提供する（すなわち、ＮＦＳサーバ１０９から提供される）ファイルシステムに含まれるＵｎｉｘコマンド（例えば、“ｌｓ”コマンド）を用いてファイルをリスト化する場合、ＮＦＳクライアント１０８は、“ＲＥＡＤＤＩＲ”と呼ばれる標準ＮＦＳプロトコルメッセージをＮＦＳサーバ１０９へ送信し得る。ＮＦＳサーバ１０９は、“ＲＥＡＤＤＩＲ“ＮＦＳプロトコルメッセージを受信し、対応するＭＶＳコマンドを用いて、例えば、記憶装置１１０に記憶されたデータセットの名前を含むＭＶＳカタログ情報を取得し得る。また、ＮＦＳサーバ（例えば、１０９）は、ＮＦＳプロトコルを用い、ネットワーク１１３を介して、記憶装置１１０からデータ（例えば、ＭＶＳデータセットからのデータ）をＮＦＳクライアントへ戻し、アクセス要求を満足することができる。
【０００８】
図２は、遠隔コンピュータシステムに記憶されたデータへのアクセス権を取得するための他の従来技術による手法を示す。図２に示された手法は、ファイル転送プロトコル（ＦＴＰ）と呼ばれる標準プロトコルを用いて、例えば、メインフレーム１０２からワークステーション１０１にファイル全体を転送するためにＦＴＰサーバ１２１とＦＴＰクライアント１２０間の接続１１３を提供する。一般的に、ＮＦＳ（図１）は、ワークステーション１０１にＮＦＳファイルシステムをマウントしエクスポートするためにシステム管理者を必要とする一方で、図２において、ユーザアプリケーション１０６は、ＦＴＰクライアント１２０がＦＴＰサーバ１２１から１つ以上のファイルの全コンテンツを要求するために、ＦＴＰ命令を直接用いてＦＴＰクライアント１２０を呼び出し得る。このようなＦＴＰ命令に応じて、ＦＴＰクライアント１２０は、ＦＴＰサーバ１２１にネットワーク上で標準ＦＴＰプロトコルメッセージを提供する。このようなメッセージに応じて、ＦＴＰサーバ１２１は、ネットワーク１１３を介して、ワークステーション１０１のＦＴＰクライアント１２０に、記憶装置１１０から得られた要求されたファイルの全コンテンツを見つけ出し転送する。ＦＴＰクライアント１２１は、転送中データを受信し、ワークステーション１０１のローカル記憶装置１２５（例えば、ローカルハードディスク）内で作成されたファイルにデータを記憶する。一旦その転送が完了すると、ＦＴＰセッション（すなわち、ＦＴＰクライアントとＦＴＰサーバ間のＦＴＰプロトコル通信）は終了し、アプリケーション１０６は、ローカル記憶装置１２５上で直接必要とされる要求されたファイルのコピーにアクセスし得る。
【０００９】
ＮＦＳ（図１）と同様に、ＦＴＰクライアントとＦＴＰサーバは、ＦＴＰプロトコルを一括して定義する標準的な集合のメッセージを用いて通信する。またＮＦＳと同様に、プロトコル通信と実際のデータ転送は、通常、同じネットワーク接続１１３上で生じる。両プロトコルは標準化されているため、異なるオペレーティングシステムとファイルシステム（例えば、ＵｎｉｘやＭＶＳ）を用いるコンピュータも、これまで通りデータ交換が可能である。ＦＴＰは、単にデータファイル全体の完全なローカルコピーを提供することから、一般的に、ＦＴＰは、その能力においてＮＦＳよりも更に制限されている。また、ＦＴＰは、一般的に、ファイル全体が目的のローカル記憶装置（例えば、１２５）に転送された後、アプリケーション（例えば、１０６）がデータアクセスを行うという点において、リアルタイムのデータアクセスプロトコルとは見なされていない。ＦＴＰは、アプリケーション１０６によって用いるためのデータファイルのコピーのみを提供するため、ＦＴＰファイルが完全に転送された後に起こるオリジナルファイルの変更は、ローカル記憶装置１２５内に記憶されたファイルのコピーバージョンには反映されない場合がある。しかしながら、ほとんどのバージョンのＮＦＳプロトコルは、サーバがデータアクセス要求を受信するとすぐにリアルタイムで動作してデータアクセスを行う。
【００１０】
図３は、他の従来技術によるデータ共有手法を示すが、米国特許Ｎｏ．５，９５０，２０３、（スタクイス（Ｓｔａｋｕｉｓ）らによる）表題“ネットワーク化されたデジタルデータ処理システムへの高速アクセス及びそのシステムの記憶装置を共有するための方法と装置”に更に詳細に説明されている。この参考文献には、各ノード１６，１８に伝送路４４及び４６を介して直接接続される記憶装置３６に２つのコンピュータシステム（ノード１６及び１８）が各々直接アクセスできる能力を提供するというシステムが開示されている。上述の如く、用いられた“ドライブ融合”手法では、ノード１８が、サーバとして動作し、物理的なファイルマッピングと記憶装置３６のデータに関する他の管理情報とを記憶する。一般的に、ノード１８は、ネットワークサーバプロセス５６を用いて、ノード１６にネットワーク接続２６を介してデータを提供するファイルサーバとして動作する。しかしながら、大量の読み込みや書き込み等、いくつかのデータアクセス動作を行う場合、システムは、ノード１６が、共有記憶装置３６への直接接続４６を用いて、データアクセスを行えるようにする。このシステムが、この能力を提供するのは、ノード１６及び１８が各々同じファイルシステム記憶フォーマットを有するとみなされるためである。すなわち、各ノード１６及び１８は、ノード１６と１８との両方に共通する共有記憶装置３６に課せられたファイルシステムのフォーマットを介して、元々、データにアクセスし得る。
【００１１】
一般的に、システムは、ノード１６のフィルタードライバ６６でこのような呼び出しを傍受し、共有記憶装置３６への直接接続４６を介してローカルに命令を出すことによって、ネットワーク２６介してサーバまで行かずに、データアクセス命令（例えば、大量読み込みや書き込み）をノード１６においてローカルに実行する。言い換えると、この説明例では、通常のネットワーク化技術２６によって、いくつかのデータアクセス要求のルーティングが行なわれるが、ローカルに処理され得る他のものは、迂回されて、アタッチされた記憶インターフェイス４６に直接進む。開示されたシステムを実現するために、関係するノードは全て共有記憶装置３６に直接接続されなければならない（例えば、ノード１６はインターフェイス４６を介して接続される）。関係するノード（すなわち１６，１８）も全てネットワーク化により（例えば、ネットワーク２６を介して）互いに通信しなければならず、また、遠隔ファイルシステムをマウントし得る通常のネットワークプロトコルが存在せねばならない。言い換えると、ＮＦＳや（ＮＦＳと類似しているが、オペレーティングシステムにマイクロソフト社のＷｉｎｄｏｗｓ系列を用いるパソコンに用いられる）ＣＩＦＳ等の分散ファイルシステムプロトコルが、ノード１６及び１８両方に存在しなければならない。
【００１２】
図３におけるシステムの一般的な動作は、次の通りである。すなわち、ノード１６の環境設定プログラムは“ｍａｋｅ  ｆｕｓｅｄ（融合）”命令を提供し、その命令によって、元来、ノード１６の上位ファイルシステム５０のクライアント（例えば、ネットワークサーバ５６のクライアント）が“ｍｏｕｎｔ（マウント）”命令を出して、ネットワーク２６上でノード１８のネットワークサーバ５６が“応ずる”ノード３６から遠隔ファイルシステムをマウントできるようにする。“ｍａｋｅ  ｆｕｓｅｄ”命令の処理中、ノード１６のフィルタードライバ６６は、遠隔的にマウントされるファイルシステムを含む記憶装置３６への直接接続４６が存在するということを検出し、ローカルに（例えば、ノード１６内で）、このファイルシステム用のマップデバイスを作成し得る。これによって、本来、フィルタードライバ６６は、特定のデータアクセス命令に対し、インターフェイス４６を介して、直接ファイルシステムをマウントし得る。
【００１３】
フィルタードライバ６６は、共有記憶装置３６のローカルに“マウントされた”ファイルシステム内のファイルを検出し、ファイルに試みられたアクセス全ての傍受が可能である。このようないずれかのファイル（例えば、読み込み又は書き込み用ファイルを作成するために、上位ファイルシステム５０への呼び出しをｃｒｅａｔｅｆｉｌｅ（）オペレーティングシステム機能に対して行うアプリケーション４８）へのアクセスを初期的に試みた際、ノード１６のクライアントフィルタードライバ６６は、ｃｒｅａｔｅｆｉｌｅ（）機能への呼び出しを傍受する。次に、フィルタードライバ６６は、分散ファイルシステムプロトコル（例えば、ＮＦＳ）を用いて、ノード１８のネットワークサーバ５６にネットワーク２６を介して、ｗｒｉｔｅ（）要求を発行する。ネットワークサーバ５６は、ｗｒｉｔｅ（）要求を取得し、これに対応して、記憶装置３６にゴーストファイルを作成するようにカストマイズされている。ｗｒｉｔｅ（）命令に応じて、ネットワークサーバ５６によって作成されたゴーストファイルは、ファイル名とファイルレイアウトを含む。一旦ファイルレイアウトが、（ｗｒｉｔｅ（）命令に応じて作成された）ノード１８のゴーストファイルに対して存在すると、ノード１６のフィルタードライバ６６は、次に、ネットワーク２６を介してノード１８のネットワークサーバ５６に、ｒｅａｄ（）分散ファイルシステム命令（例えば、ＮＦＳを用いて）を出して、作成されたばかりのゴーストファイルを読み取る“ふり”をする。このｒｅａｄ（）命令によって、ノード１８のネットワークサーバ５６は、ゴーストファイル用のファイルレイアウトをノード１６のフィルタードライバ６６へ戻す。フィルタードライバ６６は、記憶装置３６に実際は作成されなかったゴーストファイルが、共有記憶装置３６にどのようにレイアウトされるはずだったかを示すマップにファイルレイアウトを記憶する。
【００１４】
ノード１６のフィルタードライバ６６が、ファイルレイアウト情報を含むマップをキャッシュ化した場合、アプリケーション４８によるファイルへの次のｒｅａｄ（）とｗｒｉｔｅ（）要求は、フィルタードライバ６６によって傍受し得る。このようなアクセス要求に応じて、フィルタードライバ６６は、ファイルレイアウト情報用のマップに問合せを行い、そして、この情報を用いて、このファイル用のデータブロックは、共有記憶装置への直接接続パス４６を介して読み取ることができる。書き込みの場合、そのプロセスは類似しているが、インターフェイス４６を介した直接アクセスの書き込みは、ファイルレイアウトマップにおいて定義されたスペースの記憶領域に限定される。アプリケーション４８が、ファイルレイアウトマップにおいて決定されたファイルのサイズを超える（例えば、現時点でサーバ１５０によってファイルに割当てられたディスクの記憶スペースを超える）ファイルに付加情報を書き込もうとする場合、分散ファイルシステムプロトコル（例えば、ＮＦＳ）を用いて、ノード１６の上位ファイルシステムクライアント５０とノード１８のネットワークサーバ５６との間のネットワーク２６上で追加書き込みが行なわれる。
【００１５】
図４は、コンピュータシステム間でデータを共有するための更に他の手法を示す。図に示す手法は、本発明の譲受人である米国マサチューセッツ州ホプキントンにあるＥＭＣ社によって製造され又ＥＭＣ社の商標でもある“ＳｙｍｍＡＰＩ−アクセス”と呼ばれる（以前は“ＩｎｓｔａＳｈａｒｅ”と呼ばれていた）ソフトウェアプロダクトによって提供される。図示したように、ＳｙｍｍＡＰＩ−アクセスは、例えば、ワークステーション１０１のＣ機能ライブラリに含まれる一組のＳｙｍｍＡＰＩ−アクセスルーチン１３０を提供する。アプリケーション１０６の設計及び開発段階において、プログラマは、アプリケーション１０６の符号に、ＳｙｍｍＡＰＩ−アクセスルーチン１３０への呼び出しを組み入れることが可能である。その後、アプリケーション１０６がワークステーション１０１において実行される場合、ワークステーション１０１のＳｙｍｍＡＰＩ−アクセスルーチン１３０は、メインフレーム１０２のＳｙｍｍＡＰＩ−アクセスエージェント１３１とネットワーク１３５を介して対話が可能である。ルーチン１３０の組み合わせによって、例えば、アプリケーション１０６が、共有記憶装置１１１に記憶されたＭＶＳデータ集合（図示せず）を開いて読み込むことが可能である。
【００１６】
更に具体的には、アプリケーション１０６は、ＳｙｍｍＡＰＩ−アクセスメッセージ（図示せず）をメインフレーム１０２のＳｙｍｍＡＰＩ−アクセスエージェント１３１に送るルーチン１３０に対して連続呼び出しが可能である。ＳｙｍｍＡＰＩ−アクセスメッセージは、メタデータと呼ばれるメインフレームカタログ情報を要求するために使用され、メタデータには、共有記憶１１１においてメインフレーム１０２によって維持されるデータ集合に記憶されたデータ用のデータフォーマット、ディスク範囲及びデータ記憶位置情報が含まれる。メタデータに対する要求に応じて、ＳｙｍｍＡＰＩ−アクセスエージェント１３１は、ネットワーク１３５を介してアプリケーション１０６のルーチン１３０にメタデータを戻す。また、ＳｙｍｍＡＰＩ−アクセスエージェント１３１は、安全性、ユーザ許可、ファイルロック処理等のメインフレームデータアクセスに関する他の問題も処理する。一旦、アプリケーション１０６がメタデータを受信すると、アプリケーション１０６は、ネットワーク１３５から得たメタデータを用いる他のＳｙｍｍＡＰＩ−アクセスルーチン１３０を呼び出し、共有記憶１１１への直接接続１３８を介して、データ集合のデータに直接にアクセスし得る。直接接続１３８は、例えば、高速のＳＣＳＩ又は光ファイバー接続であってもよい。
【００１７】
このようにして、ＳｙｍｍＡＰＩ−アクセスプロダクトによって、ワークステーション１０１のアプリケーション１０６は、メインフレーム１０２を介してネットワーク１３５上に実際のデータを転送する必要がなく、共有記憶１１１内でメインフレーム１０２によって維持されたデータに直接アクセスし得る。このように、ネットワーク帯域幅とメインフレームプロセッサのサイクルは保存される。多数のデータ接続（例えば、ワークステーション１０１への接続１３８及びメインフレーム１０２への接続１３７）を可能にする共有記憶装置１１１の一例は、ＥＭＣ社製のデータ記憶装置のＳｙｍｍｅｔｒｉｘ製品系列である。
【００１８】
発明の概要
本発明によって、従来技術のデータ共有メカニズムにおいて発生し得る多くの欠陥と問題は大幅に克服される。例えば、このような欠陥の１つは、図１，２及び３における従来技術のデータ共有構成が、データを提供するためにデータを維持する役割も担うコンピュータシステム（例えば、メインフレーム１０２やノード１８）内のプロセッサの使用への依存度がかなり大きいことである。図１及び２の構成（ＮＦＳやＦＴＰの例）に関しては、ＮＦＳサーバ１０９（図１）又はＦＴＰサーバ１２１（図２）は、ＮＦＳ又はＦＴＰクライアント１０８，１２０にメインフレーム１０２から全てのデータを転送する役割を果たす。図３において、“融合されたドライブ”システムは、ノード１６上でローカルにいくつかのデータアクセストランザクションを処理することが可能な反面、システムでは、他のものがネットワークサーバ５０を用い、ネットワーク２６を介してデータをクライアント６６に供給することが必要である。これらの場合の各々において、大規模なデータ転送により、サーバコンピュータのプロセッサにかなりの負担がかかることがあり、また、ネットワーク（図１，２の１１３、図３の２６）において利用可能な帯域幅の総域が大幅に減少することがある。更に、ＦＴＰプロトコル（図２）の場合、システムにより、データファイルのコピーを有するローカル記憶スペース１２５が消費されるが、また、このことによって、同じデータの２つのコピーが存在する結果として、データの一貫性に関する不安も生じ得る。
【００１９】
図３におけるデータ共有構成では、直接接続４６を介して共有記憶装置３６へある程度データアクセスできるようにすることで、いくつかのネットワークとサーバの処理負荷を大幅に軽減する。一方、この技術を用いて共有データへのアクセスを要求する全てのノード（この例においては１６）は、各々共有記憶装置３５への直接接続を要求する。このようなノードもまた、分散ネットワークサーバ５０が、装置３６（この例においてはノード１８）のデータを維持する役割を果たす同一のノード上で動作することを要求し、上述したプロセッサ負荷の不安が生じる。また、ネットワークサーバ５０も、元々記憶装置３６のデータを維持する役割を果たすノード１８に常駐することから、他のノード（例えば、ノード１６のフィルタードライバ６６）のクライアントは、それぞれのノードが共有記憶３６へ直接接続されることを要求するが、このことは、直接接続されたインターフェイス４６上で、データアクセス呼び出しを傍受し転送するためである。このような直接接続無しでは、システムは機能しない。
【００２０】
図３に関して上述したシステムの他の短所は、共有データにアクセスを要求するアプリケーション４８が、共有記憶装置３６への直接接続４６を有するノード１６上で機能（すなわち動作）せねばならないことである。もし、他のノードが、データへのアクセスを要求するアプリケーションを実行する場合、それら他のノードは、共有記憶装置３６へのそれら自体の直接接続を含まなければならない。
【００２１】
更に、フィルタードライバ６６は、記憶装置３６内にデータを記憶するために用いられるデータ記憶フォーマット（例えば、マップ）に関する密接な知識に大きく依存し、またノード１６の上位及び下位ファイルシステム５０、５２に同じデータ記憶フォーマットを提供する。このことから、ノード１８によって管理される共有記憶装置３６にデータを記憶するために用いられるデータ記憶フォーマットが、ノード１６によって本来使用又は必要とされる記憶フォーマットと大幅に異なる場合、このようなシステムが重大な問題を招くことは明らかであると思われる。一例として、図３において、ノード１８が、記憶装置３６上の単層ファイルシステムのＭＶＳデータ集合にデータを記憶するＭＶＳメインフレームであり、また、ノード１６が、代表的なＵｎｉｘ階層ファイルシステムを使用してデータを記憶するオープンシステムプラットフォームである場合、フィルタードライバ６６は、ＭＶＳ単層ファイルシステム記憶フォーマットをＵｎｉｘファイルシステムに通常存在する更に階層的な記憶フォーマットと相関関係を持たせようとすると、確実に困難に遭遇する。このように、このシステムについて記述する参考文献の米国特許Ｎｏ．５，９５０，２０３は、オペレーティングシステムが異なってもよいと述べているが、その一方で、各ノードは、データを記憶するために同じファイルシステムフォーマットを用いなければならないことを暗示していると思われる。このシステムは、例えば、Ｕｎｉｘワークステーションが、実際にメインフレームデータやＰＣデータへのアクセスさえも要求し、これら２つのデータフォーマットが厳密に整合し得ない現実的な世界の状況下では問題になり得る。
【００２２】
図４におけるデータ共有構成の短所は、各アプリケーション１０６が、アプリケーション１０６のソースコードに直接ＳｙｍｍＡＰＩ−アクセスルーチンへのシステム呼び出しを組み込まねばならないことである。このことによって、このシステムのカスタム化された用途に対する適応性が制限される場合がある。言い換えると、初めから開発したアプリケーションならば、このシステムから恩恵を得るが、ＳｙｍｍＡＰＩ−アクセスルーチン１３０（図４）への呼び出しを用いるために第三のアプリケーションを移植せねばならない。ソフトウェアのＳｙｍｍＡＰＩ−アクセスプラットフォームへの移植は、アプリケーションコードの詳細な知識を必要とする手間のかかるプロセスである。更に、ソフトウェア開発者の多くが、移植のために自分達のソースコードを公表したがらない。
【００２３】
最後に、図１，２及び３における従来技術のデータ共有構成の多くは、主として各コンピュータ処理プラットフォームのオペレーティングシステム内で実現される。すなわち、クライアント側において、ＮＦＳクライアント１０８、ＦＴＰクライアント１２０及びフィルタードライバクライアント６６は、オペレーティングシステムへの呼び出しがなされる時、通常このような構成要素を呼び出すオペレーティングシステムに密接に全てバインドされる。
【００２４】
ＦＴＰシステム（図２）及びＳｙｍｍＡＰＩ−アクセスシステム（図４）は各々オペレーティングシステムとの密接なつながりをある程度取り除き、ワークステーション１０６のユーザ空間で動作するアプリケーション１０６にデータへのアクセスを行わせる。しかしながら、これら各システムは、アプリケーション１０６のソースコードへの呼び出しの一体化を要求する段階に関連した上述した問題の影響を受ける。言い換えると、このようなシステムを用いるアプリケーションの場合、開発者は、それ相応にアプリケーションコードを修正せねばならない。
【００２５】
逆に言えば、本発明によって、従来技術のシステムに関連した問題の多くが大幅に克服される。本発明は、データ共有用の構成を提供し、標準プロトコルを用いて動作する標準クライアントを介して共有データにアクセスするためのユーザ空間分散ファイルシステムサーバを提供する構成と手法を含む。一般的に、本発明は、第１コンピュータ処理システムと第２コンピュータ処理システム（例えば、メインフレームであってもよい）が各々共有記憶装置への専用の接続を有するネットワーク接続された環境において機能する。また、第１及び第２コンピュータ処理システムは、互いの間にネットワーク接続を有する。第１コンピュータ処理システムは、データアクセスサーバを動作させ、第１コンピュータ処理システムが元来維持しないメインフレームのデータを、第１コンピュータ処理システム上のローカルアプリケーションへ、あるいは、提供されるデータを含む共有記憶装置への直接接続を有さない他のコンピュータ処理システム上のアプリケーションに提供し得る。
【００２６】
好適には、クライアント／サーバパラダイムは、データアクセスサーバにアクセスするための好適なメカニズムとして、データアクセスクライアントが用いる標準プロトコルと共に用いられる。通常、データのサーバは、元来データを維持するシステムと同じコンピュータ処理システムではないことから、データを維持するコンピュータシステムに関するプロセッサとネットワーク帯域幅は、かなり保護される。例えば、このことによって、メインフレームはデータを提供する以外の他のタスクに集中できる一方で、メインフレームのデータは、例えば、オープンシステムのコンピュータ処理システムにより提供し得る。多くのクライアントが、データへのアクセスを希望する状況下では、本発明の分散化された設計によって、クライアントがデータアクセスのために単一のマシンに負荷を強いることが防止される。これによって、本発明のシステムは極めて拡張性が高い。
【００２７】
このネットワーク接続構成を用いて、本発明のシステムは、第２コンピュータ処理システムによって管理される共有記憶装置に記憶されたデータに第１コンピュータ処理システムがアクセスするための方法を含む。第２コンピュータ処理システムによって共有記憶装置に提供されたデータ記憶フォーマットが、第１コンピュータ処理システムが必要とするデータ記憶フォーマットと互換性がない状況下でさえ（この２つのフォーマットには互換性もあり得るが）、このアクセスは提供し得る。
【００２８】
本発明によって提供されるこのような１つの方法は、第１コンピュータ処理システム上で実行されるデータアクセスサーバにおいて、共有記憶装置上のデータにアクセスするためのクライアントメッセージを受信する。そのクライアントメッセージの受信に応じて、データアクセスサーバは、第１コンピュータ処理システムに接続された第２コンピュータ処理システムから提供されたデータ記憶情報を取得する。このデータ記憶情報によって、第１コンピュータ処理システムは、第１コンピュータ処理システムと互換性のある方法で、共有記憶装置のデータにアクセスし得る。次に、データアクセスサーバは、取得したデータ記憶情報に基づき、直接データアクセスサーバから共有記憶装置上のデータへアクセスする。
【００２９】
他の実施形態において、データアクセスサーバは分散型データサーバであり、また、クライアントメッセージを受信する動作には、データアクセスサーバから共有記憶装置のデータへのアクセスを要求する少なくとも１つのデータアクセスクライアントに、分散型データプロトコルに基づき動作する分散型データインターフェイスを提供する段階が含まれる。例えば、ＮＦＳは、そのように分散型データプロトコルを提供し得る。これによって、データアクセスサーバは、そのプロトコルに基づきフォーマット化されたクライアントメッセージを介して、既製の方法でデータアクセスクライアントと通信し得る。動作中、データアクセスサーバは、データアクセスサーバによって提供された分散型データインターフェイスを介して、分散型データプロトコルを用いてデータアクセスクライアントからクライアントメッセージを受け取る。このクライアントメッセージは、分散型データプロトコルに基づきフォーマット化されたデータアクセス命令を含む。このデータアクセス命令は、クライアントの代わりに、共有記憶装置のデータに提供されるアクセスタイプを示す。
【００３０】
他の構成において、データアクセスサーバは、分散型ファイルシステムデータアクセスサーバであり、分散型データインターフェイスは、データアクセスサーバによって提供された分散型ファイルシステムインターフェイスであり、分散型データプロトコルは、ＮＦＳやＣＩＦＳ等の分散型ファイルシステムプロトコルである。クライアントメッセージを受け取る動作は、分散型ファイルシステムプロトコルに基づき、少なくとも１つのデータアクセスクライアントからクライアントメッセージを受信する段階を含む。例えば、分散型ファイルシステムプロトコルは、ネットワークファイルシステム（ＮＦＳ）プロトコル、ウェッブベースのネットワークファイルシステムプロトコル（例えば、ＷｅｂＮＦＳ）及び／又はＣＩＦプロトコルの内の少なくとも１つであり得る。例えば、非ファイルシステムプロトコルの場合の分散型データプロトコルは、ＣＯＲＢＡデータ交換プロトコル、Ｊａｖａ  ｂｅａｎｓベースのメッセージ送信プロトコル、又はハイパーテキスト転送プロトコルであってもよい。数が多すぎてここに挙げられない他のプロトコルもまた、クライアントとデータアクセスサーバとの間においてサポートし得る。例えば、このようなプロトコルによって、データアクセスサーバは、クライアントやクライアントアプリケーションを変更せずに、標準的な方法でクライアントにＭＶＳデータを提供し得る。
【００３１】
他の構成において、共有記憶装置のデータにアクセスを要求するデータアクセスクライアントは、第１コンピュータ処理システムとは異なるコンピュータ処理システム上で実行され、提供する段階と受け取る段階の動作は、第１コンピュータ処理システムと、少なくと１つのデータアクセスクライアントを実行するコンピュータ処理システムとを接続するネットワーク上で分散型データアクセスプロトコルを用いてデータアクセスサーバによって実行される。これによって、共有記憶装置に直接接続を有さないホスト上で実行あるいは別の方法で動作するアプリケーションは、それでもなおデータアクセスサーバを介して、データにアクセスし得る。一般的に、従来技術のデータ共有メカニズムは、全て共有記憶装置への専用接続（すなわち、一般のネットワークではない）も持つようにホストがアプリケーションを実行するように要求する。
【００３２】
他の構成において、データ記憶情報を取得する動作では、データアクセスサーバによって第１コンピュータ処理システムに維持された仮想ファイルシステムからデータ記憶情報を取得する。一般的に、仮想ファイルシステムは、以前受信されたクライアントメッセージの処理に応じて、クライアントメッセージの受信の前に第２コンピュータ処理システムからデータ記憶情報を取得し得る。すなわち、仮想ファイルシステムは、例えば、クライアント要求メッセージによって既にアクセスされたデータに関するデータ記憶情報を維持し得る。将来の要求は、データアクセスルーチンを介して第２コンピュータ処理システムに戻る必要なく、仮想ファイルシステムでキャッシュ化されたデータ記憶情報によって処理し得る。
【００３３】
仮想ファイルシステムを含む本発明の他の構成において、仮想ファイルシステムからデータ記憶情報を取得する動作には、クライアント要求メッセージにおいてアクセスが要求されているデータに対応するｕノードを得るために仮想ファイルシステムのｕノードの数を検索する段階と、そのｕノードに基づき、仮想ファイルシステムからデータ記憶情報を得る段階とが含まれる。このような実施形態において仮想ファイルシステムを構成するｕノードは、データの個々の部分が割当てられ、また１つのｕノードはそのそれぞれの部分に対するデータ記憶情報を記憶する。
【００３４】
他の構成において、データ記憶情報を取得する動作では、まず、適切なデータ記憶情報が第１コンピュータ処理システム上でローカルに入手可能か否か決定し、クライアントメッセージに基づき、第１コンピュータ処理システムと互換性のある方法で、データアクセスサーバが共有記憶装置上のデータへアクセスできるようにする。例えば、このようなデータ記憶情報は、仮想ファイルシステムにおいてローカルに入手可能であり得る。必要なデータ記憶情報がローカルに入手可能な場合、本発明のシステムは、取得したデータ記憶情報として第１コンピュータ処理システム上でローカルに入手可能なその適切なデータ記憶情報を用いる。もしそうでなければ、システムは、第２コンピュータ処理システムから、第１コンピュータ処理システムと互換性のある方法で、共有記憶装置のデータをアクセスするために必要なデータ記憶情報を取得する。
【００３５】
他の構成において、取得したデータ共有記憶情報に基づき共有記憶装置上のデータにアクセスする動作は、クライアントメッセージで指定された方法で共有記憶装置のデータにアクセスするために、データアクセスサーバによって少なくとも１つのデータアクセスルーチンを実行する段階を含む。データアクセスルーチンは、データ記憶情報を用いて、第１コンピュータ処理システムと互換性のあるフォーマット中のデータを正確に位置付けアクセスする。
【００３６】
データ読み取りに用いられる他の構成において、クライアントメッセージは、アプリケーションの代わりに共有記憶装置にあるデータへの読み込みアクセスを要求し、また、共有記憶装置のデータをアクセスするためにデータアクセスルーチンを実行する動作には、クライアントメッセージに指定された方法で、取得したデータ記憶情報によって指定された位置の共有記憶装置からデータを読み込む動作と、データアクセスサーバから読み込み動作によって読み込まれたデータを、クライアントメッセージを発したデータアクセスクライアントへ返す動作とが含まれる。このような構成によって、例えば、クライアントは、ＮＦＳ又はＣＩＦＳを用いて、データアクセスサーバを介して対応されるメインフレームからＭＶＳデータ集合を読み込むことができる。クライアントは、サーバを実行するホストに近くてもよく、あるいは、ネットワークを介して他の遠隔ホスト上にあってもよい。
【００３７】
他の構成において、第１コンピュータ処理システムは、オープンシステムのコンピュータ処理システムであり、第２コンピュータ処理システムは、メインフレームコンピュータ処理システムであり、クライアントメッセージを受信する動作には、データアクセスクライアント（群）が、分散型ファイルシステムプロトコルを用いてデータアクセスサーバにアクセスできるようにして、データアクセスサーバを介して、共有記憶装置のメインフレームコンピュータ処理システムによって維持されたメインフレームデータへのアクセスを要求する段階が含まれる。データアクセスサーバから共有記憶装置上のデータにアクセスする動作には、メインフレームコンピュータ処理システムから取得されたデータ記憶情報を用いて、データアクセスサーバによって、クライアントメッセージの命令によって指定されたように、直接且つ互換性があるように共有記憶装置に記憶されたデータにアクセスする段階と、次に、１つ以上の分散型ファイルシステムプロトコルを用いて、データアクセスサーバから、そのデータをデータアクセスクライアント（群）に提供する段階と、が含まれる。
【００３８】
上記構成の変形例において、データアクセスクライアント（群）は、第１コンピュータ処理システム上で実行され、また第１コンピュータ処理システムで実行されるアプリケーションの代わりに機能し、クライアントメッセージを取得する動作とデータにアクセスを行う動作は、第１コンピュータ処理システム内で分散型ファイルシステムプロトコルを用いて、データアクセスクライアントとデータアクセスサーバとの間で実行される。
【００３９】
他の変形例において、複数のデータアクセスクライアントがあり、データを提供する動作には、第１コンピュータ処理システム上のデータアクセスサーバから複数のデータアクセスクライアントに、分散型ファイルシステムプロトコルを用いて、共有記憶装置においてメインフレームによって維持されるデータを提供するプロセスが含まれる。
【００４０】
更に他の変形例において、データアクセスクライアントの内の少なくとも１つは、第１及び第２コンピュータ処理システムとは異なるコンピュータ処理システム上で実行され、クライアントメッセージを取得する動作とデータにアクセスする動作は、第１コンピュータ処理システムと、データアクセスクライアントを実行するコンピュータ処理システムとを接続するネットワークを介して実行される。
【００４１】
また、本発明の全般的な方法には、第１コンピュータ処理システムにおいて、複数のノードが含まれる仮想ファイルシステムを、少なくとも１つのノードがクライアントメッセージを介してアクセスが要求されるデータの各部分に対応する状態で、維持する動作が含まれる。これらの実施形態において、データ記憶情報を取得する動作には、クライアントメッセージを介してアクセスが要求されるデータが仮想ファイルシステムにおいて対応するノードを有しているか否か判断する段階が含まれ、また、そうである場合、（ｉ）仮想ファイルシステムの対応するノードからデータ記憶情報を
取得する段階と、そうでなければ（ｉ）第２コンピュータ処理システムからデータ記
憶情報を取得する段階と、（ii）取得したデータ記憶情報に基づき仮想ファイルシス
テムに少なくと１つのノードを作成する段階と、（iii）第２コンピュータ処理システ
ムから取得したデータ記憶情報の少なくとも一部を仮想ファイルシステムのそのデータに対して作成されたノードに挿入する段階と、が含まれる。
【００４２】
上述の実施形態の変形例において、維持する動作には、第１コンピュータ処理装置上にある仮想ファイルシステムの複数の各ノードを、階層型フォーマットで、階層型フォーマットの異なるレベルが、第２コンピュータ処理システムによって管理される記憶システムの異なる要素を表す状態で、維持する段階が含まれる。他の実施形態において、この階層型フォーマットは、共有記憶装置に記憶されたデータのメインフレーム記憶構成をオープンシステムのファイルシステム構成にマッピングする。
【００４３】
他の変形例によれば、維持する動作は、仮想ファイルシステムの各ノードに対して、そのノードと仮想ファイルシステムにおける他のノードとの関係とそのノード用の一意的なハンドルに関する情報とを維持する。また、この維持する動作は、仮想ファイルシステムの各ノードに対して、共有記憶装置内のデータに対する少なくとも１つのアクセス位置を含むデータアクセス情報を維持し得る。
【００４４】
他の構成において、データ記憶情報を取得する動作には、クライアントメッセージのクライアント要求パラメータに基づき、適切なデータ記憶情報が、第１コンピュータ処理システム上でデータアクセスサーバによって維持される仮想ファイルシステムにおいて入手可能かどうか判断する段階が含まれる。入手不可能な場合、本発明のシステムの動作は、クライアントメッセージによって指定されたプロトコル命令に基づき、１つ以上の第１データアクセスルーチンを選択する段階を含む。次に、この動作には、第１データアクセスルーチン（群）を実行して、第１コンピュータ処理システム上のデータアクセスサーバが第２コンピュータ処理システムと通信を行い、第２コンピュータ処理システムからデータ記憶情報を要求できるようにする段階が含まれる。この動作は、第２コンピュータシステムからデータアクセスルーチン（群）に対する応答を受信し、また、データアクセスルーチン（群）に対する応答を解析して、データ記憶情報を判断し、そして、第１コンピュータ処理システム上でデータアクセスサーバによって維持される仮想ファイルシステムにデータ記憶情報を配置することによって継続する。例えば、このデータ記憶情報は、ｕノードデータ構造に配置し得る。しかしながら、適切なデータ記憶情報が、クライアントメッセージのクライアント要求パラメータに基づき、第１コンピュータ処理システム上でデータアクセスサーバによって維持される仮想ファイルシステムにおいて入手可能な場合（例えば、ｕノードが既に存在し、必要とされるデータ記憶情報を含む場合）、この動作によって、クライアントメッセージに含まれるクライアント要求パラメータが、選択されたデータアクセスルーチン（群）に使用可能なデータアクセスパラメータに翻訳される。翻訳の動作では、仮想ファイルシステム（例えば、適当なｕノード又は他のデータ構造）に含まれるデータ記憶情報を用いて、アクセスがクライアント要求メッセージ（すなわち、ｕノードと整合するデータ）に指定されたデータの共有記憶装置に記憶位置を提供する。
【００４５】
他の構成において、クライアントメッセージに含まれるクライアント要求パラメータを翻訳する動作には、クライアントメッセージから少なくとも１つのクライアント要求パラメータを得る段階と、そのクライアント要求パラメータ（群）を、データアクセスルーチン（群）の実行に必要な少なくとも１つのデータアクセスルーチンパラメータにマッピングする段階と、が含まれる。このデータアクセスルーチンパラメータ（群）は、データ記憶情報を指定し、データアクセスルーチンが共有記憶装置内のデータの記憶位置にアクセスできるようにする。
【００４６】
更に他の構成によると、マッピングの動作には、データアクセス翻訳機能を用い、ｕノードの仮想ファイルシステムに、クライアントメッセージに提供されたデータアクセスハンドルに対応する特定のｕノードが無いかどうか問い合わせる段階と、そのデータ記憶情報をｕノードから得る段階と、が含まれる。
【００４７】
他の構成において、データアクセスルーチン（群）を実行する動作には、第１コンピュータシステム上のデータアクセスサーバと第２コンピュータ処理システム上のデータアクセスエージェントとの間で通信を行い、クライアントメッセージによって指定されたプロトコル命令を実行するために必要なデータ記憶情報を得る段階が含まれる。関連する構成において、第１コンピュータ処理装置はオープンシステムのコンピュータ処理システムであり、第２コンピュータ処理装置はメインフレームであり、データ記憶情報はメインフレーム内で維持されるメタデータ内に含まれている。このような構成において、通信する動作では、データアクセスエージェントにデータアクセス要求を送り共有記憶装置用のメインフレームカタログから得られたメタデータを戻す。このメタデータは、共有記憶装置のメインフレームによって維持されたデータ用のデータ記憶情報を含む。メタデータの例は、ＭＶＳデータ集合カタログデータである。
【００４８】
一般的な構成によれば、共有記憶装置上のデータにアクセスする動作には、少なくとも１つのデータアクセスルーチンにおける少なくとも１つのデータアクセスルーチンパラメータに、データ記憶情報をマッピングする段階が含まれる。このようなデータアクセスルーチン（群）は、例えば、第２コンピュータ処理システム（例えば、メインフレーム）よりもむしろ共有記憶装置にアクセスするために調整し得る。次に、このデータアクセスルーチンを用いて、システムは、データアクセスルーチンを実行することによって共有記憶装置に直接アクセスし、共有記憶装置にデータアクセス要求を送る。この動作にも、データアクセス要求に応じて、クライアントメッセージでアクセスが要求されるデータを含む記憶装置の応答を取得する段階と、クライアントメッセージを発したデータアクセスクライアントにそのデータを提供する段階と、が含まれる。
【００４９】
本発明のシステムの実施形態によって提供される他の手法は、第１コンピュータ処理システム上で動作するデータアクセスサーバから共有記憶装置のデータにアクセスするための方法である。このデータは、メインフレーム等の第２コンピュータ処理システムによって維持される。“維持される“ということによって、一般的に意味することは、そのデータ集合が最初にメインフレームのデータ記憶フォーマットでメインフレームによって作成されるということ、また、データ集合や他の記憶ファイル又はフォーマットのデータが、メインフレームによって周期的に処理されるということ、そして、従って、データカタログすなわちデータ記憶情報が、メインフレーム互換性の記憶フォーマットでメインフレーム上において維持され記憶されるということである。データアクセスサーバを提供する第１コンピュータ処理システムは、本発明に基づきデータへのアクセス（例えば、読み込み及び書き込み）が可能であるが、一般的に第１コンピュータ処理システムは、データを維持する役割を果たす主要なコンピュータ処理システムではない。
【００５０】
この構成を用いる動作には、分散型データプロトコルを介してデータアクセスクライアントからデータアクセスサーバによって、データへのアクセス要求を受け取る段階と、次に、第２コンピュータ処理システムに問い合わせることによって共有記憶装置におけるデータの記憶特性を得る段階が含まれる。この動作は、第２コンピュータ処理システムから得られたデータの記憶特性に基づき、データアクセスサーバによって維持される仮想ファイルシステムを作成ことによって継続される。最後に、この動作は、仮想ファイルシステムが、第１コンピュータ処理システム上のデータアクセスサーバによって、その要求に対応する充分な情報を含むか否か判断し、もしそうであれば、データへのアクセス要求に対応し、もしそうでなければ、第２コンピュータ処理システムからデータ記憶情報を得て、その要求に適切に対応し、また、仮想ファイルシステムを維持するために、得られたデータ記憶情報を仮想ファイルシステムに書き込み、そして、得られたデータ記憶情報を用いて、その要求に対応することによって終了する。次に、この構成によって、第１コンピュータ処理システム上のデータアクセスサーバは、このデータ用の他のファイルシステムを作成することができるが、このファイルシステムは、元来データを維持するために、第２コンピュータ処理システム（例えば、メインフレーム）によって提供されたファイルシステム又は他のカタログ情報からは独立している。このように仮想ファイルシステムは、クライアントにデータを供給するためにデータアクセスサーバが素早くアクセスし得る互換性ブリッジを提供する。このような仮想ファイルシステムは、一般的に、ＮＦＳやＣＩＦＳ等のファイル共有プロトコルによって要求されるニーズを供給するが、ここでは、一般的に階層型ファイルシステムフォーマットが予想される。
【００５１】
本明細書中に開示された本発明の実施形態による他の構成には、上述したデータアクセスとサーバ動作を実行するためのソフトウェアプログラムが含まれる。特に、開示されたコンピュータプログラムプロダクトは、コンピュータ読み取り可能な媒体を有し、この媒体は、データアクセスサーバを実行するコード形態でその媒体上にコード化されたコンピュータプログラムロジックを含む。このコンピュータプログラムロジックは、コンピュータ処理システムを有する少なくとも１つの処理ユニット上で実行された時、本明細書中に示したように、また、上記の方法と動作によって述べたように、処理ユニットにデータを提供する動作を実行させる。通常、このような本発明の構成は、光学式のフロッピーディスクやハードディスク又はＲＯＭやＲＡＭチップにおけるファームウェアなど他の媒体等のコンピュータ読み取り可能な媒体にソフトウェアとして提供される。このソフトウェアは、本明細書中に説明された手法を実行するためにコンピュータにインストールし得る。従って、単にディスクあるいは上述の方法、動作及び／又はそれらの相当するものを実行するためにソフトウェア又は他のコード（例えば、オブジェクトコード）でコード化される他のコンピュータ読み取り可能な媒体は、実際に、ソフトウェアのロードと実行あるいはそのソフトウェアの動作無しでも、本発明の実施形態であるとみなされる。
【００５２】
本発明のシステムは、ソフトウェアプログラムとして、ソフトウェアとハードウェアとして、又はハードウェアのみとして、厳密な具体化が可能である。
本発明の他の構成は、共有データにアクセスする第１コンピュータ処理システムを含む。第１コンピュータ処理システムには、プロセッサ、メモリ装置、共有記憶インターフェイスが含まれる。共有記憶インターフェイスは、第１コンピュータ処理システムを共有記憶装置に接続する。共有記憶装置では、共有データは、第１コンピュータ処理システムに対して本来互換性がない方法で第２コンピュータ処理システムによって維持される。更に、このコンピュータ処理システムには、プロセッサ、メモリ装置、共有記憶インターフェイスを接続する相互接続メカニズムと、第１コンピュータ処理システムをネットワークと第２コンピュータ処理システムに接続するネットワークインターフェイスと、が含まれる。このような実施形態におけるメモリ装置は、第１コンピュータ処理システムのプロセッサ上で動作するデータアクセスサーバでコード化される。実行時、データアクセスサーバは、ネットワークインターフェイスを介して、クライアントメッセージを受信して共有記憶装置のデータにアクセスし、そのクライアントメッセージの受信に応じて、ネットワークインターフェイスを介して、第１コンピュータ処理システムに接続された第２コンピュータ処理システムから提供されるデータ記憶情報を取得する。このデータ記憶情報は、メモリ装置に記憶され、また第１コンピュータ処理システムのデータアクセスサーバが、第１コンピュータ処理システムと互換性がある方法で、共有記憶装置のデータにアクセスできるようにする。このデータアクセスサーバは、ネットワークインターフェイスを介して、取得されたデータ記憶情報に基づき、クライアントメッセージに従って共有記憶装置のデータへアクセスする。
【００５３】
他の構成において、仮想ファイルシステムが、メモリ装置内でコード化される。また、データアクセスサーバは、ロジックで更にコード化され、このロジックは、プロセッサ上で実行された時、ネットワークインターフェイスを介して受信されたクライアントメッセージのクライアント要求パラメータに基づき、適当なデータ記憶情報が仮想ファイルシステムにおいて入手可能か否か判断する。入手不可能な場合、データアクセスサーバは、更に実行されると、プロセッサにクライアントメッセージによって指定されたプロトコル命令に基づき、少なくとも１つの第１データアクセスルーチンを選択させ、また、プロセッサに、その第１データアクセスルーチンを実行させて、ネットワークインターフェイス上で、第１コンピュータ処理システム上のデータアクセスサーバが、第２コンピュータ処理システムと通信できるようにして、第２コンピュータ処理システムからデータ記憶情報を要求する。また、このシステムは、ネットワークインターフェイスを介して、第２コンピュータ処理システムからデータアクセスルーチンへの応答を受信し、その少なくとも１つのデータアクセスルーチンへの応答を解析して、そのデータ記憶情報を判断する。次に、システムは、メモリ装置のデータアクセスサーバによって維持される仮想ファイルシステムにそのデータ記憶情報を配置する。
【００５４】
ネットワークインターフェイスを介して受信されたクライアントメッセージのクライアント要求パラメータに基づき、適切なデータ記憶情報が仮想ファイルシステムにおいて入手可能な場合、データアクセスサーバは、更に実行されると、プロセッサに、クライアントメッセージに含まれるクライアント要求パラメータを、選択されたデータアクセスルーチン（群）に使用可能なデータアクセスパラメータに翻訳させる。この翻訳装置は、仮想ファイルシステムに含まれるデータ記憶情報を用いて、アクセスがクライアント要求メッセージに指定されたデータの共有記憶装置に記憶位置を提供する。
【００５５】
他の構成によって、データアクセスサーバを含むコンピュータシステムが提供される。データアクセスサーバは、プロセスとしてコード化され、分散型データインターフェイス、複数のデータアクセスルーチン、データアクセス翻訳装置、仮想ファイルシステムを維持するための手段を含む。データアクセスサーバは、コンピュータシステムにおいて動作し、分散型データプロトコルにより、データアクセスクライアントから分散型データインターフェイスを介してデータへのアクセス要求を受け取る。次に、システムは、データアクセス翻訳装置とデータアクセスルーチンを介して、第２コンピュータ処理システムに問い合わせることによって共有記憶装置のデータの記憶特性を得る。また、システムは、データ翻訳装置を介して、第２コンピュータ処理システムから得られたデータの記憶特性に基づき仮想ファイルシステムを維持する。また、システムは、データアクセス翻訳装置を介して、仮想ファイルシステムが、第１コンピュータ処理システム上のデータアクセスサーバによって要求に対応するのに充分な情報を含むか否か判断し、情報を含む場合、データアクセスルーチンと分散型データインターフェイスを介してデータへのアクセス要求を提供する。情報を含まない場合、システムは、データアクセスルーチンを介して第２コンピュータ処理システムからデータ記憶情報を得て要求を適切に提供し、そして、仮想ファイルを維持するために、データアクセス翻訳装置を介して、得られたデータ記憶情報を仮想ファイルシステムに入力する。また、システムは、得られたデータ記憶情報を用いて、分散型データインターフェイスを介して、その要求に対応する。
【００５６】
更に本発明の他の構成は、第２コンピュータ処理システムによって管理された共有記憶装置に記憶されたデータにアクセスする第１コンピュータ処理システムを含むシステムを提供する。この構成において、第２コンピュータ処理システムによって共有記憶装置に提供されたデータ記憶フォーマットが、第１コンピュータ処理システムが必要とするデータ記憶フォーマットとは互換性がない場合があり得る。しかしながら、これは必要条件ではなく、本発明は、上述したように、同じ又は異なるアーキテクチャであって、また、同じ又は異なるファイルシステムやデータ記憶フォーマット等を用いる第１及び第２コンピュータ処理システム間で動作し得る。如何なる場合においても、第１コンピュータ処理システムは、第１コンピュータ処理システム上で実行されるデータアクセスサーバにおいて、共有記憶装置上のデータにアクセスするためにクライアントメッセージを受信するための分散型データインターフェイス手段を含む。クライアントメッセージの受信に応じて、第１コンピュータ処理システムに接続された第２コンピュータ処理システムから提供されたデータ記憶情報を取得するデータアクセスルーチン取得手段が含まれる。データ記憶情報によって、第１コンピュータ処理システムは、第１コンピュータ処理システムと互換性のある方法で、共有記憶装置のデータにアクセスし得る。一般的に、分散型データインターフェイス手段は、取得されたデータ記憶情報に基づき、直接データアクセスサーバから共有記憶装置上のデータにアクセスする。
【００５７】
多くの前述の実施形態を組み込む本発明の実施例は、米国マサチューセッツ州ホプキントンのＥＭＣ社製“ＩｎｓｔａＳｈａｒｅソフトウェアライブラリー（ＳｙｍｍＡＰＩ−アクセスとも呼ばれる）”の一部として組み込まれたＩｎｓｔａＳｈａｒｅファイルサーバである。ＩｎｓｔａＳｈａｒｅの側面は、図４で上述の如くいくつか説明したが、本明細書中で説明される本発明のシステムは、ＩｎｓｔａＳｈａｒｅに組み込むことが可能であり、従来技術とみなされず、また、図４で説明したシステムの機能の一部としてここで開示したこのような動作、側面、装置、手法でもない。言い換えると、図４のシステムはＩｎｓｔａＳｈａｒｅの従来バージョンを表す。一方、本明細書中に記述された本発明のある実施形態は、そのように希望すればＩｎｓｔａＳｈａｒｅに組み込み得る改善品を表す。このプロダクトの使用方法と動作の一通りの説明に関しては、ＩｎｓｔａＳｈａｒｅユーザ＆プログラマ・マニュアルを参照し、特に、ＩｎｓｔａＳｈａｒｅファイル及びデータ共有システムに関係する項を参照されたい。これらのマニュアルはＥＭＣ社から入手可能である。
【００５８】
本発明の上述した及び他の目的、特徴、利点は、次に詳述する本発明の好適な実施形態から明らかにされるが、添付の図面に示すように、これらの全て異なる図面においては、同様な記号が同一の構成要素を示す。図面は、必ずしも縮尺通りではなく、本発明の実施形態、原理、概念を例示することに重点をおいたものである。
【００５９】
好適な実施形態の説明
一般的に、本発明の実施形態は、分散型データ共有手法を用いて、共有記憶装置から遠隔的に管理されたデータを供給するためのメカニズムと手法を含むシステムを提供する。後述の如く、このような本発明のシステムの実施形態は、修正が不要な従来のソフトウェアアプリケーションが、多くの異なるネットワークコンピュータ処理プラットフォームにおいて実行又は別の方法で動作することを可能にし、また、従来の分散型データ共有プロトコル（例えば、ＮＦＳやＣＩＦＳ）を用いて、共有記憶装置から供給されたデータへのアクセスのためにデータアクセスサーバにアクセスすることを可能にする。しかしながら、物理的に異なり又データアクセスサーバを実行及び提供するコンピュータシステムとは異なるデータ記憶フォーマットを潜在的に用いるメインフレーム等のコンピュータ処理システムは、主にデータの管理と維持が可能である。次に述べる本発明の実施形態の簡単な例は、読者が、これから紹介し論じる本発明の側面及び実施形態をより詳細に理解する一助となろう。
【００６０】
図５は、本発明の高水準な原理の説明に有用なコンピュータ処理システム構成２００の例を示す。例示の構成２００は、コンピュータ処理システム２０１−１乃至２０１−N と２０２を含み、各々ネットワーク２１３に接続される。共有記憶装置２１１は、それぞれのデータインターフェイス２１４及び２１５を介して、コンピュータ処理システム２０１−１と２０２に接続される。この構成２００において、例えば、コンピュータ処理システム２０１−１乃至２０１−Ｎは、ＵｎｉｘやＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓ９５／９８／ＮＴ／２０００オペレーティングシステムの改訂版等、オープンシステムのオペレーティングシステム（具体的には図示せず）を用いて動作するワークステーションやパソコン等のオープンシステムのコンピュータ処理プラットフォームであってもよい。Ｗｉｎｄｏｗｓ９５／９８／ＮＴ及びＷｉｎｄｏｗｓ２０００は、ワシントン州レッドモンドにあるＭｉｃｒｏｓｏｆｔ社の商標である。コンピュータ処理システム２０２は、ＩＢＭのＭＶＳ又はＯＳ／３９０オペレーティングシステム（図示せず）等のメインフレームオペレーティングシステムを実行するメインフレームコンピュータシステムであってもよい。共有記憶装置２１１は、複数存在し得るが、大容量マルチディスク記憶装置であってもよく、その１例として、米国マサチューセッツ州ホプキントンにあるＥＭＣ社製Ｓｙｍｍｅｔｒｉｘ系列における１つのデータ記憶装置が挙げられる。共有記憶装置２１１は、コンピュータ処理システム２０１−１及び２０２が各々共有記憶装置２１１へ直接接続されている限り、どのようなタイプのデータ記憶装置であってもよい。ここで、コンピュータ処理システム２０１−２乃至２０１−Ｎは、希望に応じて接続し得るが、共有記憶装置２１１に接続する必要はないことに留意されたい。
【００６１】
この例において、メインフレームコンピュータ処理システム２０２は、元来、インターフェイス２１５を介して、共有記憶装置２１１内でデータ２２０を維持する役割を果たす。メインフレームコンピュータ処理システム２０２は、例えば、共有記憶装置２１１のある部分における１つ以上のＭＶＳデータ集合にデータ２２０を記憶し得る。本発明は、それぞれの計算機２０１−１乃至２０１−Ｎ上で動作する様々なソフトウェアアプリケーション２０６−１乃至２０６−Ｎが、コンピュータ処理システム２０１−１乃至２０１−Ｎ上でも動作するデータアクセスクライアント２０８−１乃至２０８−Ｎと通信することによって、データ２２０へのアクセス（例えば、読み込み）を可能にする。
【００６２】
一般的に、同じコンピュータ処理システム２０１は、アプリケーション（例えば、２０６−２）とそれに対応するデータアクセスクライアント２０８（例えば、アプリケーション２０６−２に対する２０８−２）を実行する。アプリケーション（群）２０６からの通信に応じて、そのアプリケーションのそれぞれのデータアクセスクライアント２０８は、１つ以上の分散型データアクセスプロトコル（例えば、ＮＦＳやＣＩＦＳ、特に図示せず）を用いて、コンピュータ処理システム２０１−１上で動作するデータアクセスサーバ２１０と通信し、それぞれのアプリケーション２０６に代わって、データ２２０にアクセスする。クライアント２０８とサーバ２１０との間の通信は、特定のプロトコルを介さなくてもよい。しかしながら、データにアクセスするためには、ある種類のプロトコルが好ましいが、どのような種類の通信も用い得る。データアクセスサーバ２１０は、コンピュータ処理システム２０１−１上で動作するが、コンピュータ処理システム２０１−１とは異なるコンピュータ処理システム２０１−２乃至２０１−Ｎ上で動作する２０６−２乃至２０６−Ｎ等のデータアクセスクライアントに対して、クライアント２０８とサーバ２１０は、ネットワーク２１３上で分散型データアクセスプロトコル（群）を用いて通信を行う。しかしながら、本発明のシステムは、分散型データアクセスプロトコルを用いて、２０８−１等のデータアクセスクライアントとデータアクセスサーバ２１０との間の通信も可能にし、この例において、両者は、同じコンピュータ処理システム２０１−１上で動作する。ネットワーク２１３は、インターネット等のＴＣＰ／ＩＰネットワークを含む、あらゆるタイプの物理的又は無線式の通信メカニズムであり得る。
【００６３】
データ２２０へのアクセスを要求するクライアントメッセージの受信に応じて、データアクセスサーバ２１０は、メインフレームコンピュータ処理システム２０２から提供されたデータ記憶情報（図示せず）を取得する。例えば、このデータ記憶情報は、共有記憶装置２１１がデータ２２０を如何に記憶するか示すメインフレームカタログ情報であってもよい。この特定の例において、データアクセスサーバは、ネットワーク２１３を介して、コンピュータ処理システム２０２（例えば、この例ではメインフレーム）上で動作するデータアクセスエージェント２１２との通信によって、データ記憶情報を得る。データアクセスエージェント２１２は、データアクセスサーバ２１０にデータ記憶情報を戻し、これによって、コンピュータ処理システム２０１−１上のデータアクセスサーバ２１０は、コンピュータ処理システム２０１−１と互換性のある方法で、共有記憶装置２１１のデータ２２０にアクセスし得る。データアクセスサーバ２１０は、データアクセスクライアント２０８（従って、そのクライアントそれぞれの制御アプリケーション２０６）に代わって、このようなアクセスを行う。
【００６４】
具体的な例として、Ｕｎｉｘ又はＷｉｎｄｏｗｓオペレーティングシステムに基づき動作するオープンシステムのコンピュータ処理システム２０１−１は、データ記憶情報（例えば、データアクセスエージェント２１２によって提供されるＭＶＳカタログ情報）を用いて、共有記憶装置２１１内でＭＶＳメインフレームコンピュータ処理システム２０２によって維持されるＭＶＳデータ集合から、データ２２０を適切に読み込むことが可能である。データアクセスサーバ２１０がこのような読み込みアクセスを要求するクライアントメッセージに応じて一旦読み込み動作を実行してデータを得ると、データアクセスサーバ２１０は、クライアント２０８に、他のクライアントメッセージにおいて、そのクライアント２０８に対応する分散型データアクセスプロトコルを用いて、読み込まれたデータ２２０を返すことが可能である。このようなプロトコルは、例えば、ＮＦＳ又はＣＩＦＳであってもよく、この場合、データアクセスサーバ２１０は、ネットワーク２１３上で（又は、クライアント２０８−１の場合、コンピュータ処理システム２０１−１内で）、通常のＮＦＳ又はＣＩＦＳサーバとしてデータアクセスクライアント２０８に現れる。しかしながら、この例において、ＮＦＳ及びＣＩＦＳは、メインフレームコンピュータ処理システム２０２又は共有記憶装置２１１とのインターフェイスとしては用いられない。代わりに、後述するように、データアクセスサーバ２１０は、データアクセスに必要なデータ記憶情報を最初に得るデータアクセスルーチンを用い得る。上記例のように、データ記憶情報は、特定のデータ２２０がアクセスされるように、ネットワーク２１３を介して、コンピュータ処理システム２０２から取得したり、あるいは、事前に取得したりできるが、この場合、データアクセスサーバは、データ記憶情報のキャッシュメモリに記憶されたバージョンを用いデータ２２０にアクセスし得る。一旦取得すると、次に、データアクセスサーバ２１０は、インターフェイス２１４を介して、共有記憶装置２１１から、実際のデータ２２０自体を直接得ることが可能である。
【００６５】
詳細に後述するように、いくつかの実施形態において、データアクセスサーバ２１０は、データアクセスクライアント２１２から得られたデータ記憶情報に基づき、仮想ファイルシステム（図示せず）を実際に作成し維持し得る。仮想ファイルシステムは、コンピュータ処理システム２０２が用いる異質なデータ記憶フォーマット（群）（例えば、メインフレームデータ集合フォーマット）と、クライアント２０８とサーバ２１０との間でデータをアクセスするために使用されるプロトコルとの間において、互換性ブリッジとしての役割を果たし得る。簡単な例として、データアクセスサーバは、データアクセスエージェント２１２１から得たデータ記憶情報に基づき、Ｕｎｉｘのような階層型仮想ファイルシステムを作成し得る。この例において、仮想ファイルシステムは、データ２２０を実際は記憶しない。むしろ、データアクセスサーバ２１０（クライアント２０８を介して）に送信され、共有記憶装置２１１に記憶される実際のデータ２２０へのデータアクセスを要求するクライアントプロトコルメッセージの翻訳を支援するために用い得るマッピングとみなし得る情報を維持する。
【００６６】
このようにして、本発明のシステムの実施形態によって、一般的に、ＭＶＳデータ（例えば、２２０）等のデータフォーマットは、主にデータを管理する役割を果たすコンピュータ処理システム（例えば２０２）以外のコンピュータ処理システム（例えば、２０１−１）から遠隔的に提供し得る。好適な実施形態において、この例で説明するように、コンピュータ処理システム２０１−１乃至２０−Ｎとコンピュータ処理システム２０２との間におけるデータ記憶フォーマット（例えば、ファイルシステムフォーマット）の差異の性質により、本発明のシステムは、存在し得るこれらの非互換性にも拘わらず、データ２２０へのアクセスをアプリケーション２０６に提供する。このアクセスは、アプリケーション２０６のコードを変更する必要なく提供される。
【００６７】
更に、このようなアクセスは、クライアント２０８とサーバ２１０間で、標準化されることが好ましい分散型データ交換プロトコルを用いて提供される。本発明によるこれら実施形態のこの側面によって、データアクセスクライアント２０８及び／又はコンピュータ処理システム２０１内でのコード変更はできない。また、このような実施形態は、共有記憶装置２１１のデータ２２０を維持するためのコンピュータ処理システム２０２（例えば、ＭＶＳメインフレーム）が、プロセッサのサイクルとネットワーク帯域幅を用いて、ネットワーク２１３を介して、データ２２０への要求されたアクセスを他のコンピュータ処理システム２０１に提供しなければならないという必要性を解消する。その代わり、比較的少量のデータ記憶情報のみが、データアクセスエージェント２１２を介して、データアクセスサーバ２１０を実行するコンピュータ処理システム２０１−１に提供される。一旦情報が得られると、データアクセスサーバ２１０は、直接アクセスするためにインターフェイス２１４を用いて、コンピュータ処理システム２０２からの支援無しで、実際のデータ２２０を取得し得る。
【００６８】
図６は、図５に関して上述したように、本発明に基づき全般的に動作するように構成されたコンピュータ処理システム２０１−１，２０１−２，及び２０２の更に詳細な例を示す。本発明の実施形態は、元来、コンピュータ処理システム２０１−１のデータアクセスサーバ２１０において具体化される。この例において、アプリケーション２０６−１，２０６−３及び２０６−４は、データアクセスサーバ２１０のように、コンピュータ処理システム２０１−１によって実行され、一方、アプリケーション２０６−２は、コンピュータ処理システム２０１−２上で実行され、ネットワーク２１３上で、クライアント２０８−２を介して、データアクセスサーバ２１０と通信する。本明細書中で用いられる“動作する”という用語は、コンピュータ処理システム内の処理ユニット（図示せず）において、タスク、プロセス、ルーチン、プログラム又は他のエンティティとして、サーバ、クライアント、エージェント又はアプリケーションが実行されたり、翻訳されたり、あるいは、それ以外の場合、処理されたり又は動作されたりすることを意味する。
【００６９】
この図示例においても、ＭＶＳメインフレームであるコンピュータ処理システム２０２は、拡張ＳＣＳＩ接続（ＥＳＣＯＮ）又はファイバチャネル接続（ＦＩ−ＣＯＮ）等の高速周辺装置データインターフェイス２１５を介して、供給記憶装置２１１に接続される。ＭＶＳオペレーティングシステム２０５は、メインフレーム２０２の動作を制御し、また、どのプロセスが、メインフレーム２０２に割り当てられた共有記憶装置２１１のそれらの部分にアクセスする（例えば読み込みや書き込み）できるか一般的に管理する。このように管理されるデータ２２０は、例えば、ＭＶＳデータ集合に記憶される。一般的に、ＭＶＳファイルシステムフォーマットやデータ記憶フォーマットは、Ｕｎｉｘ、マイクロソフトのＷｉｎｄｏｗｓ（９５／９８ＮＴ／２０００）オペレーティングシステム、及び他の数多くのタイプのオペレーティングシステムによって用いられるオープンシステムデータフォーマットやファイルシステム記憶フォーマット等、他の数多くの記憶フォーマットに対して非互換性であると考えられる。しかしながら、ＭＶＳデータ集合に記憶されるビット、バイト、ワード等の形態における実際のデータ２２０自体は、メインフレーム２０２上でそうであるように全コンピュータ処理システム２０１−１乃至２０１−Ｎ上で動作可能なアプリケーション２０６と互換性があってもよい。
【００７０】
このようなアプリケーション２０６の例は、テストデータを読み込むソフトアプリケーションである。テキストデータ２２０は、メインフレーム２０２上のアプリケーション（図示せず）によって本来作成されたかも知れないが（従って、メインフレーム２０２は、元来、そのデータを管理する役割を果たし又そのデータを所有する訳であるが）、他のアーキテクチャ上のアプリケーション２０６−１乃至２０６−Ｎは、このようなテキストデータ２２０を要求又はアクセスする必要がある。テキストデータ２２０自体は、互換性のあるフォーマットの形態であってもよいが、共有記憶装置２１１においてメインフレーム２０２によって、それが記憶される方法は、一般的に、読み込み、書き込み、及び／又はそれ以外の場合コンピュータ処理システム２０１−１（例えば、オープンシステムのプラットフォーム）によって共有記憶装置２１１にアクセスするために用いられるメカニズムとは互換性が無い。
【００７１】
簡単に上述（図５）したように又図６で更に詳細に示すように、このようなアクセスを行うために、アプリケーション２０６は、アプリケーションメッセージ２１６を介して、それぞれのデータアクセスクライアント２０８に対して通信する。この例および好適な実施形態において、データアクセスクライアント２０８は、例えば、様々なコンピュータ処理システム２０１（この例では、２０１−１及び２０１−２）を制御するオペレーティングシステム２０４の一部として提供し得る標準化されたデータ交換プロトコルに用いられる従来のクライアントである。このことは、データアクセスクライアント２０８−１が、コンピュータ処理システム２０１−１のＵｎｉｘオペレーティングシステム２０４−１のカーネル空間内で動作する図６の例において示す。
【００７２】
このようなクライアント２０８の例は、Ｕｎｉｘオペレーティングシステムのバージョンの一部として提供されるＮＦＳクライアントである。他の選択肢として、クライアント２０８は、オペレーティングシステム２０４の外部（すなわちユーザ空間）において、ある種類の独自の通信能力を提供する独立に動作するエンティティとして提供される独自のクライアントであり得る。いずれの場合も、アプリケーション２０６からデータアクセスクライアント２０８に提供されたアプリケーションメッセージ２１６は、通常、何らかの方法でデータにアクセスするために、オペレーティングシステム２０４（又はスタンドアローンモードで動作するクライアント２０８あるいはユーザ空間で動作するクライアント）に対するシステム呼び出しとして具体化される。例示のデータアクセスクライアント２０８がＮＦＳクライアントであると仮定すると、システム呼び出しを提供するこのようなアプリケーションメッセージ２１６の例は、ファイルやファイルシステムを読み込んだり、書き込んだり、開いたり、閉じたりなど、ファイルやファイルシステムにアクセスするために用いられる呼び出しである。
【００７３】
一般的に、アプリケーションメッセージ２１６は、アプリケーション２０６に代わって、アクセスされるデータ２２０の識別を示し、またデータ２２０に提供されるアクセス（例えば、データを含むファイルの読み込みや書き込み）の方法を示す。一般的に、データアクセスクライアント２０８は、どのデータアクセスサーバ（例えば、この例においては２１０）が、要求されたデータに、このようなアクセスを行うか認識している。本発明の場合、このようなサーバは、分散型データインターフェイスを提供し、クライアント２０８とサーバ２１０との間で実行される分散型データプロトコルに基づき、適切にフォーマット化されるクライアントメッセージ２１７を送受信するデータアクセスサーバ２１０である。従って、ファイルシステムアクセスの場合、クライアント２０８は、分散型ファイルシステムプロトコル（例えば、ＮＦＳ又はＣＩＦＳ）等の分散型データプロトコルを用いて、データアクセスサーバ２１０と、標準ＮＦＳ又はＣＩＦＳプロトコルに基づきフォーマットされるクライアントメッセージ２１７を交換する。
【００７４】
クライアントメッセージ２１７−２は、コンピュータ処理システム２０１−２に対するネットワーク２１３上で、データアクセスクライアント２０８−２とデータアクセスサーバ２１０との間で交換することができるが、一方、クライアントメッセージ２１７−１は、（データアクセスサーバ２１０と同じコンピュータ処理システム２０１−１上で実行される）アプリケーション２０６−１，２０６−３，２０６−４用のコンピュータ処理システム２０１−１内に完全に留まるローカルなプロセス間通信（ＩＰＣ）メカニズムを介して、交換し得る。しかしながら、それでもなお、好適には、メッセージ２１７−１は、データアクセスサーバ２１０によって与えられる分散型データインターフェイスが提供する分散型データプロトコルに基づき、フォーマット化される。好適には、クライアントメッセージ２１７は、分散型データプロトコル（例えば、ＮＦＳプロトコル命令）に従ってフォーマット化されるデータアクセス命令を含み、また、データアクセスクライアント２０８に代わってデータ２２０に行なわれるアクセスのタイプ（例えば、読み込みや書き込み）を示す。言い換えると、本発明のこの側面によって、例えば、コンピュータ処理システム２０１−１上で動作するアプリケーション２０６−３は、ローカルに動作するＮＦＳクライアント２０８−１にアクセスすることができ、たとえネットワーク２１３上で何も通信されない場合でも、ＮＦＳクライアント２０８−１は、ＮＦＳプロトコルを用いて、ローカルに動作するデータアクセスサーバ２１０と通信を行う。
【００７５】
このようにして、データアクセスサーバは、整合性のある標準的な“フロントエンド”の分散型データプロトコルインターフェイスを、アクセスされ又提供されるどのようなタイプのデータに対しても提供する。異なるプロトコルが、同じ又は異なるデータアクセスサーバ２１０によってサポートできるが、この例には、１つのサーバ２１０のみを示す。“分散型”は、データアクセスサーバ２１０を利用して、（ネットワーク２１３又はコンピュータ処理システム２０１−１内部のＩＰＣメカニズムを介して）、サポートされたプロトコル（群）によって課せられた手続きとクライアントメッセージ送信要求に基づき、コンピュータ処理システム２０１上にある如何なる数のデータアクセスクライアント２０８にも対応できることを意味する。この後すぐに説明するように、ＮＦＳ又はＣＩＦＳ等の分散型ファイルシステムデータ交換プロトコルが、本発明のいくつかの好適な実施形態で用いられ、また、データアクセスサーバ２１０は、データアクセスクライアント２０８の観点からデータ２２０を記憶するＮＦＳ又はＣＩＦＳファイルシステムの“ルックアンドフィール”  を実際に与える。言い換えると、いくつかの実施形態におけるデータアクセスサーバ２１０は、データアクセスクライアント２０８から見て、開放型Ｕｎｉｘ（ＮＦＳ使用）又はWindows （ＣＩＦＳ使用）ファイルシステムにおいて記憶され維持されるかのように、実際にデータ２２０を提供する。
【００７６】
データアクセスサーバ２１０の“バックエンド”において、場合によってはネットワーク２１３を用いて輸送手段を提供することによって、データアクセスサーバ２１０とコンピュータ処理システム２０２のデータアクセスエージェントとの間でデータアクセス要求２１９−１を受け渡すことができる。このようなデータアクセス要求２１９−１を用いて、データアクセスサーバ２１０においてアクセスが要求されたデータ２２０に関するデータ記憶情報２１８を取得する。一般的に、データ記憶情報２１８は、特に、ファイルやパーティションレイアウト、サイズ、アドレス範囲、ボリューム識別、記憶装置識別、ディスク範囲情報、あるいはデータ２２０が実際に共有記憶装置内で位置する場所を示し又データ２２０がアクセスのために利用可能か否か（例えば、他のプロセスやユーザ等によってロックされているか否か）を示すもう１つの必要な情報を含み得る情報である。従って、一般的に、データ記憶情報２１８は、共有記憶装置２１１のデータ２２０に適切にアクセスために、データアクセスサーバ２１０によって要求されるあらゆる情報を含むが、実際にはデータ２２０自体は含まない。この後すぐに説明するように、データアクセスサーバ２１０によって受信される全てのクライアントメッセージ２１７が、データアクセス要求２１９−１をデータアクセスエージェント２１２に送るように要求したり又はさせたりするわけではない。このことは、ある実施形態においては、以前得られたデータ記憶情報２１８が、今後の使用に備えて、データアクセスサーバ２１０において、キャッシュメモリに入れられるためである。好適には、このことは、後述するように、データ記憶情報２１８に基づき、コンピュータ処理システム２０１−１の仮想ファイルシステムを維持することによって行われる。
【００７７】
データアクセスサーバ２１０が、１つ以上のデータアクセス要求（群）２１９−１を介して、要求されたデータ記憶情報を一旦取得すると、次に、データアクセスサーバ２１０は、共有記憶装置２１１に他のデータアクセス要求２１９−２を提供して、クライアントメッセージ２１７によって指定された要求の通りに、データ記憶情報２１８に基づきデータ２２０にアクセスし得る。このようなデータアクセスは、コンピュータ処理システム２０１−１と共有記憶装置２１１との間の直接接続インターフェイス２１４上で提供され、従って、“共有される”記憶装置と名付けられている。インターフェイス２１４は、あるバージョンのＳＣＳＩインターフェイス（高速広域、デュアル、高速等）又は光ファイバー（例えば、ファイバチャネル）インターフェイス等の如何なるタイプの周辺装置又は相互接続インターフェイスであってもよい。従って、通常の実施形態における共有記憶装置は、ディスク、テープ、光媒体又は他の高速大容量メモリ又はディスク記憶装置等、何らかの種類の高速ランダムアクセス記憶装置であるため、このようなタイプの大容量記憶装置のアクセスに用いるインターフェイスは、いずれもインターフェイス２１４として用い得る。
【００７８】
図７は、本発明の様々な実施形態に基づき構成されたデータアクセスサーバ２１０（図５，６）のハイレベルブロック図アーキテクチャ２４５を示す。一般的に、アーキテクチャ２４５は、様々な分散型データインターフェイス２５０−１乃至２５０−Ｎ、データアクセス翻訳機２６０、データアクセスルーチン２７０、オプションの好適な仮想ファイルシステム２７５、また、あるオペレーティングシステムフック２７６を提供する。好適には、これら各構成要素２５０，２６０，２７０，２７５及び２７６は、データアクセスサーバ２１０から構成されるプログラム又はタスク内で１つ以上のソフトウェアモジュール（例えば、ルーチン、手続、機能、タスク、スレッド又は他の実行可能な、翻訳可能な又は動作可能なコード、命令又は論理ステートメント）として具体化される。
【００７９】
各分散型データインターフェイス２５０は、通信をサポートし、好適には、少なくとも１つの分散型データプロトコルを用いてサポートする。このようにサポートされるプロトコルの例には次のようなものがある。すなわち、ＮＦＳ（２５０−１）及びＣＩＦＳ（２５０−２）等の分散型ファイルシステムプロトコル、更に、Ｊａｖａ又はＪａｖａ・Ｂｅａｎｓ・ＡＰＩ又はメッセージ送信プロトコル（２５０−３）、共通オブジェクト要求仲介ＡＰＩ（ＣＯＲＢＡデータ交換プロトコル、２５０−４）又はＣＯＭ・ＡＰＩ（２５０−５）又は他の適切な分散型データ共有プロトコル（群）（２５０−６）を用いて提供されるもの等、分散型アプリケーションプログラミングインターフェイス（ＡＰＩ）である。これら提供される例によって、他の多くの分散型クライアントサーバデータ交換プロトコル（２５０−Ｎ）が存在するため、制限することを意図するものではなく、また、データアクセスクライアント３０８等のクライアントは、本発明のデータアクセスサーバ２１０等のサーバと接続して機能し、また、標準化された方法でデータを交換し得る。特に、図示しないが、他のこのようなよく知られた例には、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）等のメールプロトコル及び他のデータ共有プロトコルがある。分散型データインターフェイス２５０の好適な実施形態は、データアクセスサーバ２１０が、データアクセスクライアント２０８に対してファイルサーバであることを可能にするＮＦＳやＣＩＦＳ等のファイルシステムプロトコルをサポートする。
【００８０】
また、分散型データインターフェイス２５０−１乃至２５０−Ｎによってサポートされるプロトコルは、ネットワーク又はインターネットをベースにし得るが、このようなプロトコルを用いて、分散型データインターフェイス（群）２５０を介して（すなわち、クライアント２０８から）受信される通信は、ネットワーク２１３上で行う必要がないことを理解されたい。例えば、データアクセスサーバ２１０と同じコンピュータ処理システム２０１−１上の動作するデータアクセスクライアント２０８−１（図５，６）がこの場合に当る。分散型データインターフェイス２５０（２５０−１乃至２５０−Ｎを一括して指す）の１つの目的は、標準的なメカニズムを提供することであるが、これによって、アプリケーション２０６は、データアクセスクライアント２０８を介して、データアクセスサーバ２１０と通信し得る。本発明のデータアクセスサーバ２１０は、“フロントエンド”として、このような標準化されたプロトコルインターフェイスをデータアクセスクライアント２０８に提供することから、アプリケーション２０６やそれらのクライアント２０８への修正は不要である。
【００８１】
一般的に、アプリケーション２０６、クライアント２０８及びユーザコンピュータ処理システム２０１が、本発明を処理するために修正を必要としないという一般原理に対する１つのわずかな例外は、この明細書の最後に説明されている。一般的に、この例外は、命令、プログラム又は他のエンティティ（図示せず）を提供するが、これらは、アプリケーション２０６のユーザが、コンピュータ処理システム２０１上で実行し、ユーザ名又はパスワード等の認証情報をデータアクセスサーバ２１０に提供し得るものである。データアクセスサーバ２１０はこのような認証情報を用いて、メインフレーム２０２に対するデータアクセス要求の認証を行い得る。このようなコンピュータ処理システム２０１の拡張は、データ２２０を維持する役割を果たすコンピュータ処理システム２０２が、データにアクセスを試みるユーザ又は他のプログラムの認証を行うために特別なアクセス制御を要求する場合のみ必要である。この例外は、本発明の全ての実施形態において必要ではなく、完全を期すためにここで論じているだけである。
【００８２】
また、本発明に基づくデータアクセスサーバ２１０の代表的なアーキテクチャ２４５には、分散型データインターフェイス２５０とデータアクセスルーチン２７０の集合と相互に作用するデータアクセス翻訳装置２６０が含まれる。データアクセス翻訳装置２６０は、より詳細にこの後すぐに述べる様々な機能を果たす。一般的に、１つのこのような機能は、データアクセスルーチン２７０によって使用可能なデータアクセスパラメータ（図示せず）に分散型データインターフェイス（群）２５０を介して受信されるクライアントメッセージ２１７（図６）に含まれるクライアント要求パラメータ（図示せず）に対してマッピング、解析、翻訳を行うことである。言い換えると、データアクセス翻訳装置２６０は、分散型データプロトコル命令（例えば、ＮＦＳ命令）内の情報を、これらのプロトコル命令（例えば、データを読み込むためのＮＦＳ読み込み命令）によって指定される１つ以上のデータアクセス機能を実行して共有記憶装置２１１のデータ２２０にアクセスするために用い得る情報に変換する。
【００８３】
データアクセス翻訳装置２６０が、一旦、プロトコル命令を様々なデータアクセスルーチン２７０にマッピングすると、データアクセスルーチン２７０を用いて、コンピュータ処理システム２０１−１のデータアクセスサーバ２１０とメインフレームコンピュータ処理システム２０２のデータアクセスエージェント２１２との間の通信を行い、クライアントメッセージ２１７の分散型データプロトコル命令（図示せず）を介して指定されたアクション（群）（例えば、データ２２０の読み込み）を実行するために必要なデータ記憶情報２１８を取得し得る。他の選択肢として、データアクセス翻訳装置２６０が、仮想ファイルシステム２７５は、データ２２０へのアクセスを要求するクライアントメッセージ２１７に応じて、必要なデータ記憶情報２１８を含むと判断した場合、データアクセス翻訳装置は、仮想ファイルシステム（後述）からデータ記憶情報を得ることができ、また、必要な情報をデータアクセスルーチン２７０に提供することによって、ルーチン２７０が共有記憶装置２１１のデータにアクセスし得る。また、オペレーティングシステムフック２７５は、データアクセスサーバ２１０のアーキテクチャ２４５の一部として含まれ、これによって、データアクセスサーバ２１０は、必要に応じて、コンピュータ処理システム２０１−１上でオペレーティングシステム機能にアクセスし得る。
【００８４】
図８は、クライアントメッセージ２１７に含み得る様々なクライアント要求パラメータ２６２−１乃至２６２−Ｍの例を示す。このクライアントメッセージ２１７の簡単な例は、データアクセスクライアント２０８−１とデータアクセスサーバ２１０との間で、ＮＦＳプロトコルを用いて（図７の分散型データインターフェイス２５０−１を介して）受け渡されるいくつかのコンテンツを示す。この例によれば、クライアント要求パラメータ２６２−１，２６２−２及び２６２−３は、次のことを示す。すなわち、クライアントメッセージ２１７は、５０個のデータユニット( 例えば、ブロック、セクター、バイト、ビット、レコード、又は他のデータ測定値) （パラメータ２６２−５）を、共有記憶装置２１１で維持されたファイル“データ”２２０（パラメータ２６２−５）から読み込むために、データアクセスクライアント２０８−１（パラメータ２６２−２）からデータアクセスサーバ２１０（パラメータ２６２−３）に送られるＮＦＳ“ＲＥＡＤ（読み込み）”命令（パラメータ２６２−１）である。このクライアントメッセージ２１７の例は、通常のクライアントメッセージ２１７に指定し得る情報を示すためにのみ提供され、実際のＮＥＳ・ＲＥＡＤ命令の全コンテンツを厳密に又は正確に表現しようとするものではない。むしろ、この例は、説明の目的に対してのみ提供され、制限しようとするものではない。他の情報（クライアント要求パラメータ２６２−Ｍ）もまたクライアントメッセージ２１７に含み得る。このような他の情報２６２−Ｍは、例えば、（ＮＦＳ・ＷＲＩＴＥ命令の場合）共有記憶装置２１１に書き込まれるデータを含み得る。
【００８５】
いずれの場合も、図７と８両方に関して説明したように、データアクセス翻訳装置２６０は、クライアントメッセージ２１７から１つ以上のクライアント要求パラメータ２６２を得て、このようなクライアント要求パラメータ２６２を、１つ以上のデータアクセスルーチン２７０の実行に必要ないずれかのデータアクセスルーチンパラメータ（群）（図示せず）にマッピングする。これらのパラメータを用いて、データアクセスルーチン２７０は、メインフレーム２０２から（図５，６）（又は、後述するように、仮想ファイルシステム２７５でキャッシュメモリに入れた場合、ローカルに）データ記憶情報２１８を得ることができ、次に、このデータ記憶情報２１８を用いて、クライアントメッセージ２１７に指定されたアクション（この例では、読み込み）を、データアクセスサーバ２１０を実行するコンピュータ処理システム２０１−１と互換性がある方法で実行し得る。
【００８６】
また、データアクセス翻訳装置２６０は、適当なデータアクセスクライアント２０８に戻し得る、返りすなわち応答クライアントメッセージ２１７を生成するために、例えば、データアクセスルーチン２７０からのデータ２２０（言い換えると、共有記憶装置２１１から読み込まれたデータ２２０）を含んでいる応答を適当なクライアント要求パラメータ２６２に翻訳又はマッピングする。言い換えると、データアクセス翻訳装置２６０は、パラメータ２６２を有する分散型データプロトコル命令（フォーマット化したクライアントメッセージ２１７）をパラメータに翻訳することによって、データアクセスルーチン２７０がデータ２２０にアクセスできるように、一旦データ２２０が、これらのプロトコル命令によって指定されたようにアクセスされると（例えば、一旦データが読み込まれたり、書き込まれたり、又は別の方法でアクセスされると）、データアクセスルーチン２７０は、例えば、読み込まれたデータ２２０をデータアクセス翻訳装置２６０に返すことが可能である。次に、データアクセス翻訳装置２６０は、このデータ２２０を含む１つ以上の応答クライアントメッセージ２１７をフォーマット化でき、また、次に、データ２２０を含むこれらの応答クライアントメッセージ２１７を、（受信されたクライアントメッセージ２１７がこれに合わせてフォーマット化される、クライアント２０８とサーバ２１０との間で用いられるプロトコルによって定義された）適当な分散型データインターフェイス２５０を用いて、クライアント２０８に戻すことができる。その名前が意味するように、データアクセス翻訳装置２６０は、このようにサーバ２１０にアクセスするために用いられるプロトコルと、共有記憶装置２１１のデータ２２０にアクセスするために用いられるデータアクセスルーチンとの間において翻訳装置として機能する。
【００８７】
図９は、本発明の実施形態例を含む様々なソフトウェア構成要素の動作の一例を示す。この実施形態例は、アプリケーション２０６に代わってデータ２２０にアクセスするために用いられるデータアクセスサーバ２１０のアーキテクチャ２４５（図７）を示す。この特定の例は、ＮＦＳ分散型データインターフェイス２５０−１を用いるそのようなアクセスを示し、データアクセスサーバ２１０に又はデータアクセスサーバ２１０から提供されるＮＦＳ命令とデータフローの例を含む。ここで、読者は、一般的に、ＮＦＳクライアント（例えば、ＮＦＳクライアント２０８）を介して、ファイルシステムデータのアクセスをローカルに制御するために使用可能な様々なＮＦＳ命令に精通しているものとする。ＮＦＳ及びＮＦＳプロトコルの動作と使用法の詳細に関しては、サン・マイクロシステムズ社と共同でインターネット特別技術調査委員会（ＩＥＴＦ）のネットワーク・ワーキンググループによって出版された論評要求（ＲＦＣ）１８１３（ＲＦＣ−１８１３）の“ＮＦＳバージョン３プロトコル仕様”に論じられたＮＦＳプロトコルの仕様と動作を参照されたい。ＮＦＳプロトコルに関する他の情報源には、英国Ｂｅｒｋｓｈｉｒｅ・ＲＧ１・１ＡＸにある“Ｏｐｅｎ・Ｇｒｏｕｐ”によって出版された、題名“インターネット運用のためのプロトコル：ＸＮＦＳ、Ｖｅｒｓｉｏｎ３Ｗ”（ＩＳＢＮ：１−８５９１２−１８４−５）の著書がある。
【００８８】
この実施形態のデータアクセスサーバ２１０には、（この例では、ＮＦＳをサポートする）分散型データインターフェイス２５０−１、データアクセス翻訳装置２６０、データアクセスルーチン２７６０、及び仮想データアクセスファイルシステム２７５が含まれる。一般的に、構成要素２５０−１，２６０及び２７０は、上述のように動作する。しかしながら、また、この実施形態において、データアクセスサーバ２１０は、データアクセス構成２７５（ＮＦＳ及びＣＩＦＳ等のファイルシステムプロトコルをサポートする実施形態において、別名、仮想ファイルシステムと呼ばれる）を提供する。データアクセス構成２７５は、データアクセスサーバ２１０によって作成され、データへのアクセスを要求するアプリケーション２０６を実行するコンピュータ処理システム２０１に対して互換性がある又は固有の記憶表象をデータ２２０に提供する。図９に示した好適な実施形態において、データアクセス構成２７５は、ＮＦＳ又はＣＩＦＳ又は他のファイル共有クライアント２０８とそれらそれぞれのアプリケーション２０６に対しては、通常のＮＦＳ又はＣＩＦＳ、又はファイルとして読み込むことが可能なデータ２２０を含む他のこのようなファイルシステムであると映るデータアクセスサーバ２７５によって提供される仮想ファイルシステムの表象である。
【００８９】
図９のシステムの動作において、ＮＦＳ分散型データインターフェイス２５０−１は、アプリケーション２０６によって指示されるＮＦＳデータアクセスクライアント２０８と（システムマネージャとも呼ばれる）システム管理者（群）２３０との間のＮＦＳプロトコル通信２１７をサポートする。一般的に、システム管理者２３０は、コンピュータ処理システム２０１（図５及び６）等のコンピュータ処理システムを管理する責任を負う人々である。コンピュータ処理プラットフォーム２０１−１のシステム管理者２３０は、例えば、（データアクセスクライアント２０６を介して）データアクセスサーバ２１０にＮＦＳ命令２１６−１を提供することによって、データアクセスサーバ２１０に指示して、ＮＦＳを介してデータ２２０にアクセスし得るようにデータアクセスサーバ２１０によって提供されたデータアクセス構成２７５内に含まれるファイルシステムを“ｅｘｐｏｒｔ”（例えば、仮想ファイルシステムをエクスポート）し得る。共有記憶装置２１１内のデータ２２０を維持する現実のＭＶＳファイルシステムをエクスポートする代わりに、データアクセスサーバ２１０は、例えば、Ｕｎｉｘファイルシステムに出現する仮想データアクセス構成２７５をエクスポートする。例えば、データアクセス構成２７５は、メモリ内又はローカルディスク（図示せず）上で又はコンピュータ処理システム２０１−１に本来アクセス可能な共有記憶装置２１１の部分上においてさえも、データアクセスサーバ２１によって維持し得る。一旦、データアクセスサーバ２１０が、データ２２０を含むデータアクセス構成２７５内のファイルシステム２７５を“エクスポート”すると、コンピュータ処理システム２０１−１乃至２０１−Ｎ (図５及び６) 用のシステム管理者２３０は、例えば、ＮＦＳ“ｍｏｕｎｔ”命令２１６−１を用いることで、コンピュータ処理システム２０１−１乃至２０１−Ｎが、データ２２０を含むデータアクセス構成２７５のエクスポートされるファイルシステムをマウントし得る。
【００９０】
一旦、このようなファイルシステム２７５が、このようにしてコンピュータ処理システム２０１−１乃至２０１−Ｎにマウントされると、アプリケーション２０６は、アプリケーションメッセージ２１６−２を介して、ＮＦＳデータアクセスクライアント２０８にｆｏｐｅｎ（）、ｒｅａｄ（）、及びｗｒｉｔｅ（）等のオペレーティングシステム呼び出しを提供することによって、データ２２０にアクセスし得る。このようなアプリケーションメッセージ２１６に応じて、データクライアント２０８は、ＮＦＳプロトコルを用いて（すなわち、クライアントメッセージ２１７を介して）分散型データインターフェイス２５０−１と通信する。上述したように、データアクセス翻訳装置２６０は、ＮＦＳ命令（クライアントメッセージ２１７）とデータアクセスルーチン２７０との間の仲介機能を提供する。そして、データアクセスルーチン２７０は、データ記憶情報２１８が、まだファイルシステム２７５に存在しない場合（初期状態では存在しない）、データアクセスエージェント２１２に対するデータアクセス要求２１９−２を介して、コンピュータ処理システム２０２（図５及び６）からデータ記憶情報２１８を得る。初期状態において、この例のデータ記憶情報２１８は、ＭＶＳ等のメインフレームオペレーティングシステム２０５によって維持されるカタログ又はディレクトリ情報２８０等に含まれる。
【００９１】
データアクセス翻訳装置２６０は、データ記憶情報２１８を用いて、仮想ファイルシステム２７５を徐々に構築し維持する。データアクセスルーチン２７０は、仮想ファイルシステム２７５内に維持されるデータ記憶情報２１８を用いて、データアクセス要求２１９−１を介してデータ２２０にアクセスする。例えば、データ記憶情報２１８は、ＭＶＳデータ集合名、サイズ、記憶位置、パーティション、読み込み及び／又は書き込みのオフセット等を含み得るデータ２２０の必要なディスク記憶位置（群）を提供する。
【００９２】
図１０は、本発明の１つの実施形態に基づき構成されたデータアクセスサーバ２１０の更に詳細なソフトウェア設計を示す。この設計には、様々なインターフェイス組み立てユニット３００を含む分散型データインターフェイス２５０−１、データアクセス翻訳装置２６０、データアクセスルーチン２７０、この実施形態例においては、ｕノードツリー２７５−１とｕノードストア２７５−２によって提供される仮想ファイルシステム２７５が含まれる。
【００９３】
この実施形態において示す分散型データインターフェイス２５０−１は、ＮＦＳプロトコルをサポートする。上述したように、データアクセスクライアント２０８とデータアクセスサーバ２１０との間で交換し得る各ＮＦＳプロトコル命令は、それぞれのインターフェイスモジュール３００−１乃至３００−Ｎによって処理される。言い換えると、単一のインターフェイスモジュール３００は、ＮＦＳバージョン２又は３あるいはＷｅｂＮＦＳ等の特定のインプリメンテーションによって用いられるＮＦＳのバージョン（群）と互換性のあるＮＦＳ命令に対する適切な遠隔手続呼び出しインターフェイスサポートする（すなわち、クライアントメッセージ２１７に又クライアントメッセージ２１７からパラメータを提供したり受信したりする）。この例に示すように、インターフェイスモジュール３００−１は、ＮＦＳ“ＭＯＵＮＴ”命令をサポートし、インターフェイスモジュール３００−２は、ＮＦＳ“ＲＥＡＤＤＩＲ”命令をサポートし、インターフェイスモジュール３００−３は、ＮＦＳ“ＲＥＡＤ”命令をサポートし、インターフェイスモジュール３００−Ｎは、ＮＦＳ“ＷＲＩＴＥ”命令をサポートして、データをファイルシステムのファイルに書き込んだりする。図面スペースに制限があるため示さないが、本発明のシステムがサポートする他のＮＦＳ命令には、ＲＭＤＩＲ、ＭＫＤＩＲ、ＧＥＴＡＴＴＲ、ＳＥＴＡＴＴＲ、ＳＹＭＬＩＮＫ、ＭＫＮＯＤ、アクセス、ＲＥＡＤＬＩＮＫ、ＣＲＥＡＴＥ、ＬＩＮＫ、ＲＥＭＯＶＥ、ＲＥＮＡＭＥ、ＲＥＡＤＤＩＲＰＬＵＳ、ＦＳＳＴＡＴ、ＦＳＩＮＦＯ、ＰＡＴＨＣＯＮＦ、ＣＯＭＭＩＴ等のＮＦＳ命令がある。これらは単なる例であり、実施形態が異なると、サポートされる命令は、これより多い場合も又少ない場合もある。ＷｅｂＮＦＳ等のＮＦＳのバージョンがサポートされる場合、他のＮＦＳプロトコル命令も同様に、インターフェイス３００を介してサポートし得るが、インターフェイス３００は、ＧＥＴ＿ＰＵＢＬＩＣ＿ＦＩＬＥ＿ＨＡＮＤＬＥ等の命令のための具体例は示さない。
【００９４】
実際にクライアントメッセージ２１７（すなわち、手続呼び出しインターフェイス）を受信し且つ生成するインターフェイスモジュール３００の部分は、例えば、ＮＦＳ等の標準公開データ通信プロトコル仕様に準拠するように遠隔手続呼び出し生成ツール（ＲＰＣ−ＧＥＮ、図示せず）等のプログラム開発ツールによって作成し得る。ＲＰＣ−ＧＥＮは、ソフトウェア開発ツールであり、これを用いると、特別にフォーマット化されたインターフェイス記述（例えば、各プロトコルルーチン命令インターフェイスに用いられる様々なクライアントサーバパラメータを定義するインターフェイス記述）を読み込み得る。また、これを用いると、全ての要求されたクライアント要求パラメータを提供する遠隔手続呼び出し“ｓｔｕｂ”ルーチンを生成して、特定のプログラム言語やコンピュータ処理システム開発プラットフォーム用のプロトコルをサポートし得る。このように、この例のＲＰＣ−ＧＥＮを用いると、標準プロトコルに準拠するデータアクセスクライアント２０６へ且つデータアクセスクライアント２０６から送信可能な異なる各ＮＦＳ命令（各インターフェイスモジュール３００−１乃至３００−Ｎに対する１つのスタブ）が用いる各クライアント要求パラメータを適切に受け取るフロントエンドインターフェイスを生成し得る。このように、各インターフェイスモジュール３００は、プロトコル命令の１つとしてフォーマット化された受信済みクライアントメッセージ２１７に応じてデータを受信するクライアント要求パラメータを定義する。
【００９５】
この説明の現段階において理解すべき重要なことは、ＮＦＳは、代表的なデータ共有プロトコルとして唯単に用いられ、また、示した実施形態は、単に一例として、ＮＦＳプロトコルをサポートするということである。上述したように、他の多くのデータ共有プロトコルが存在し、本発明のシステムによってサポートし得る。一般的に、ＮＦＳのＷｉｎｄｏｗｓ相当物であるＣＩＦＳ等の他のネットワークファイル共有プロトコルでさえも本発明によってサポートし得る。このように、データアクセスサーバ２１０の実施形態の設計は、本質的に、一般的であることを意図しており、また、プロトコルインターフェイスモジュール３００は、図９、１０の例においてＮＦＳをサポートするが、本発明の実施形態の設計と範囲内に留まりつつ、１つ以上の多くの異なるタイプのデータ交換プロトコルをサポートするように当業者が改造又は作成し得る。ＲＰＣ−ＧＥＮの使用は、単に、データアクセスクライアント２０８からプロトコル命令によって適切に呼び出し得るインターフェイスモジュールの集合を生成する方法の一例として提供される。このような手続スタブ呼び出し、ルーチン又はインターフェイスを生成するための他の手法も、ソフトウェアコード化手法を用いた手書きによる各インターフェイスの書き込みを含み適用可能である。
【００９６】
次に、図１０の実施形態の説明に戻ると、データアクセスサーバ２１０内において、データアクセスサーバ２１０が、データアクセスクライアント２０８から１つ以上のクライアントメッセージ２１７を受信した時、１つ以上のインターフェイスモジュール３００が起動する。クライアントメッセージ２１７は、そのプロトコルの必要条件に準拠するものと仮定すると、対応するインターフェイスモジュール３００は、様々なデータ値を含むプロトコル命令によって定義された１つ以上のクライアント要求パラメータ２６２を受信する。例えば、クライアントメッセージ２１７が、図８に示すクライアントメッセージ２１７例等の適切にフォーマット化されるＮＦＳ・ＲＥＡＤ命令である場合、各クライアント要求パラメータ２６２は、通常のＮＦＳサーバによってＲＥＡＤ命令を実行するために必要とされる適当なデータ又は値を含む。
【００９７】
好適な実施形態においてアクセスされるデータ２２０は、データアクセスサーバ２１０を動作させる（例えば、実行させる）コンピュータ処理システム２０１上で通常用いられるデータ記憶フォーマットやデータタイプと元々互換性がない。このため、データアクセスルーチン２７０は、好適な実施形態において、共有記憶装置２１１のデータ２２０に課せられたデータフォーマットを“理解する”多数のルーチンを提供する。言い換えると、コンピュータ処理プラットフォーム２０１上のアプリケーション２０６等、通常のプログラムは、本来、データ２２０にアクセスできないが、データアクセスルーチン２７０は、データ２２０に適切にアクセスし得る。しかしながら、そうするためには、データアクセスルーチン２７０は、まず、コンピュータ処理システム２０２（例えば、好適な実施形態におけるメインフレーム）からデータ記憶情報２１８を得ることが必要である。簡単に上述したように、データ記憶情報２１８は、例えば、特定の容量、ディスク、記憶位置、制御装置又は共有記憶装置２１１のデータ２２０を得るために必要な他のデータアクセス情報に関する情報を提供し得る。また、データ記憶情報２１８は、例えば、データを含むＭＶＳデータ集合の名前、データが検索される（又は、書き込みの場合、書き込まれる）点における特定のデータのオフセット、データ２２０をアクセスし得る他のプログラムに関するロッキング情報等を示し得る。
【００９８】
データアクセスルーチン２７０は、様々なインターフェイスモジュール３００の起動に応じて呼び出される。一般的に、各インターフェイスモジュール３００は、１つ以上のデータアクセスルーチンを選択して（すなわち、用いて又は実行して）コード化（すなわち、書き込み）を行い得る。ルーチンの選択は、インターフェイスモジュールユニットが対応する（インターフェイスモジュール３００を呼び出すクライアントメッセージ２１７によって決定される）機能や命令（例えば、ＮＦＳ・ＲＥＡＤ、ＮＦＳ・ＷＲＩＴＥ、ＮＦＳ・ＤＩＲＲＥＡＤ）によって指定されるアクションに基づく。このように、（例えば、特定のＮＦＳ命令を指定する）クライアント要求メッセージ２１７は、分散型データインターフェイス２５０−１に、どのデータアクセスルーチン２７０を実行するか選択させる。
【００９９】
データアクセス翻訳装置２６０の支援によって（更に、詳細に述べるように）、クライアントメッセージ２１７のクライアント要求パラメータ２６２は、選択されたデータアクセスルーチン２７０が必要とするデータアクセスパラメータに翻訳される。一旦、この翻訳が行なわれると、データアクセスサーバ２１０が、選択されたデータアクセスルーチン２７０を実行することにより、データアクセスサーバ２１０は、コンピュータ処理システム２０２のデータアクセスエージェント２１２と通信を行い、データ記憶情報２１８を要求し得る。データアクセスエージェント２１２は、このようなデータアクセス要求２１９−１（図６）を受信し、また、データアクセスルーチン３００への応答としてデータ記憶情報２１８を提供する。次に、データ記憶情報２１８は、データアクセス翻訳装置２６０によって解析され、データ記憶情報２１８の特定のコンテンツを決定する。一旦、データ記憶情報２１８が決定されると、他のデータアクセスルーチン２７０を実行させることができ（すなわち、データ記憶情報２１８を得るために、初期的にデータアクセスルーチンを呼び出したインターフェイスモジュール３００から呼び出し得る）、次に、データ記憶情報２１８に基づき、データ２２０に適切にアクセスする。
【０１００】
データアクセスサーバ２１０がメインフレーム２０２のＭＶＳデータにアクセスし得る本発明の実施形態におけるデータアクセスルーチン２７０は、例えば、上述したように、米国マサチューセッツ州ホプキントンのＥＭＣ社製のソフトウェアプロダクトＳｙｍｍＡＰＩ−アクセスルーチンである。
【０１０１】
前に強調したように、一般的に、ＳｙｍｍＡＰＩ−アクセスは、ＵｎｉｘやＷｉｎｄｏｗｓＮＴプラットフォーム等、オープンシステムからＭＶＳデータ集合にアクセスするアプリケーション・プログラミング・インターフェイス（ＡＰＩ）機能呼び出しの集合やライブラリである。ＳｙｍｍＡＰＩ−アクセスで作成されるプログラムは、非ＭＶＳプラットフォーム上で動作する。ＳｙｍｍＡＰＩ−アクセスを用いるためのソフトウェアアプリケーションの使用方法、実装方法及び構成に関する詳細な内容に関しては、ＥＭＣ社による出版物、ＥＭＣパートＮｏ．２００−９９９−６１６−０２、“ＳｙｍｍＡＰＩ−アクセスプログラマ・リファレンス・マニュアル”に提供されている。
【０１０２】
前述のマニュアルには、ＳｙｍｍＡＰＩ−アクセスにおいて提供される様々なＡＰＩ機能への機能呼び出しを組み込んで、ＭＶＳデータ集合のＭＶＳデータにアクセスし得るアプリケーションを作成するための詳細に関する情報が全て含まれている。このマニュアルで論じられたＩｎｓｔａＳｈａｒｅエージェントは、本発明の好適な実施形態のデータアクセスエージェント２１２に対応する。同様に、ＩｎｓｔａＳｈａｒｅエージェントから戻されるＭＶＳメタデータとカタログ情報は、本発明の好適な実施形態のデータ記憶情報２１８に対応する。一般的に、上述したように、本発明のデータアクセスルーチン２７０としてＳｙｍｍＡＰＩ−アクセス機能を用いて、本発明の実施形態は、ＭＶＳデータ集合のデータの読み込み及び／又は書き込みが可能である。ＳｙｍｍＡＰＩ−アクセスは、ユーザ認証、ファイルロックの問題、メインフレームの安全性の問題及びデータ２２０へのアクセスに関連する他のこのような要因を処理する。
【０１０３】
ＣＩＦＳ及びＮＦＳ等のファイル共有プロトコルをサポートするデータアクセスサーバ２１０の実施形態は、仮想ファイルシステム２７５を提供する。このような実施形態の仮想ファイルシステム２７５は、データアクセス翻訳装置２６０によって維持され、ｕノードツリー２７５−１とｕノードストア２７５−２を含む。一般的に、仮想ファイルシステム２７５の目的は、アプリケーション２０６によってアクセスされるデータ２２０の様々に異なる部分に対する論理構造を課すことである。本発明の仮想ファイルシステム２７５は、例えば、Ｕｎｉｘ又はＷｉｎｄｏｗｓファイルシステム（例えば、ＮＴファイルシステム）の抽象的概念を提供し得る。データアクセスルーチン２７０（例えば、ＳｙｍｍＡＰＩ−アクセス機能）は、データ２２０へのアクセスを要求するクライアントメッセージ２１７に応じて得られるデータ記憶情報２１８を用いて、仮想ファイルシステム２７５内にｕノード４０５を入れる。こうして、アクセスされる又はアクセスが要求されるデータ２２０の各部分に対して（１つ以上のデータアクセスクライアント２０８を介して）、データアクセスサーバ２１０は、データ記憶情報２１８を用いて、共有記憶装置２１１のデータ２２０にアクセスするだけではなく、仮想ファイルシステム２７５を作成しサポートする。
【０１０４】
仮想ファイルシステム２７５は、図示したように、ｕノードツリー２７５−１において階層的に（例えば、Ｎ層のツリーデータ構造で）維持されるｕノード４０５周辺に基礎を置く。各ｕノード４０５は、仮想ファイルシステム２７５のファイル又はディレクトリを表現し得る。図１０におけるデータアクセスサーバ２１０の実施形態例は、メインフレームコンピュータ処理システム２０２が維持するデータ集合に関するカタログ及びデータスペース情報に基づき、ｕノードツリー２７５−１を作成する。更に具体的には、データアクセスルーチン２７０を用いることによって、データアクセス要求２１９−１（図６）を介してデータ記憶情報２１８を得る場合、データアクセス翻訳装置２６０は、データ記憶情報２１８（図９）に含まれるメインフレームのディレクトリ又はカタログデータ２８０（図９）を、この例においては、４レベルのディレクトリ階層のｕノード４０５に翻訳する。この階層は、図１０のｕノードツリー２７５−１に示す。
【０１０５】
図１０に示すように、ｕノードツリー２７５−１の最上位レベルは、階層のルート（根）（例えば、Ｕｎｉｘファイルシステムの“／”）すなわち最上位として機能するＲＯＯＴｕノード４０５である。ルートレベルの下位にあるｕノードツリー２７５−１の第１レベル（レベル１）は、各コンピュータ処理システム２０２（例えば、この例では、各メインフレームホスト）用のｕノード４０５を含む。コンピュータ処理システム２０２は、共有記憶装置２１１（コンピュータ処理システム２０１−１に接続された複数のものが有り得る）のデータと、また、データアクセスサーバ２１０がアクセスするように構成された共有データ記憶装置２１１を共有し得る。２つのホストコンピュータは、ｕノード４０５として表されるが、この例においては、ＭＶＳ−ＨＯＳＴ１とＭＶＳ−ＨＯＳＴ２である。ＭＶＳ−ＨＯＳＴ１は、例えば、汎用コンピュータ処理システム２０２に対応し得る。ｕノードツリー２７５−１の階層におけるｕノード４０５の第２レベル（レベル２）は、親ｕノード４０５のそのメインフレームホストコンピュータ処理システム（例えば、２０２）内にある任意のデータアクセスエージェント２１２の下でアクセス可能な各ＭＶＳハイレベル識別修飾子（ＨＬＱ）に対応する。例えば、ＭＶＳ−ＨＯＳＴ１（レベル１のｕノード４０５）は、三つのＨＬＱ（ＨＬＱ１、ＨＬＱ２、ＨＬＱ３）を有し、各ＨＬＱは、この例で図示するように、ｕノードツリー２７５−１においてｕノード４０５が割当てられる。図示するように、ｕノードツリー２７５−１の第３レベル（レベル３）は、任意のＨＬＱ（例えば、ＨＬＱ１の下で、ＤＡＴＡＳＥＴ１、ＤＡＴＡＳＥＴ２、ＤＡＴＡＳＥＴ３）の下で個々のＭＶＳメインフレームデータ集合を表すために用いられるｕノード４０５用である。第３レベル（レベル３）のｕノード項目４０５は、単層ＭＶＳデータ集合を表すファイル（仮想ファイルシステム２７５に対して）、あるいは、レベル３のｕノード４０５は、ＭＶＳデータ集合内のＭＶＳ・ＰＤＳメンバを表すディレクトリのいずれかであると見なし得る。最後に、この実施形態例で提供されるｕノードツリー２７５−１の階層における第４レベル（レベル４）は、各ＰＤＳメンバ用のｕノード４０５に用いられる。ＭＶＳカタログ項目は、上述したように、それらの項目をｕノードツリー２７５−１で表し得るマスタカタログにまとめることによって、データアクセス翻訳装置２６０により処理することが可能である。
【０１０６】
この特定の実施形態において、ｕノードツリー２７５−１の各ｕノード４０５は、前述の様々なメインフレーム又はＭＶＳ構成要素の内の１つを表すため、本発明のデータアクセスサーバは、データアクセス翻訳装置２６０を介して表現し得るファイルシステムの階層（すなわち、ｕノードツリー２７５−１）を分散型データインターフェイス２５０に課す。このように、データアクセス翻訳装置２６０は、ＲＥＡＤＤＩＲ等のデータアクセスクライアント２１７から、ＮＦＳファイルシステム命令を受け取って、Ｕｎｉｘライクなファイルシステムのディレクトリを検索することが可能であり、また、このような目的のために、ｕノードツリー２７５−１をファイルシステムとして用いることが可能である。このことによって、データアクセスサーバ２１０は、クライアントアプリケーション２０６によって、ＭＶＳカタログやデータ集合の閲覧等の特徴を提供し得る。
【０１０７】
この実施形態において、ｕノードストア２７５−２は、ｕノードハッシュテーブル、アレイ、リンクリスト、待ち行列又は他のこのようなデータ構造として、ｕノードツリー２７５−１のｕノード集合を維持する。初期的には、ｕノード４０５は、新たに“登場した”ＭＶＳホスト、データ集合、ＨＬＱ、ＰＤＳメンバ又はｕノードツリー２７５−１の構造に関して上述したような様々なｕノードレベルに対応する他のカタログデータを示す新しいデータ記憶情報２１８を受信した際、データアクセス翻訳装置２６０によって作成し得る。すなわち、更に多くのデータ記憶情報２１８を得るようにデータアクセス要求２１９−１を促す各クライアントメッセージ２１７によって、データアクセス翻訳装置２６０は、新たなデータ集合、ＰＤＳメンバ、又は他のこのような情報を検出するためにデータ記憶情報２１８を解析することによって、仮想ファイルシステムのｕノードツリー２７５−１を構築し続けることができる。メインフレームコンピュータ処理システム２０２がデータを如何に記憶するかに関する新しい情報が発見される度に、データアクセスサーバ２１０は、仮想ファイルシステムのｕノードの更新、ｕノードの作成、不要なｕノードの除去等を行うことができる。このことにより、ｕノードツリー２７５−１（及びストア２７５−２）は、メインフレームカタログ情報２８０と同期が取られる。
【０１０８】
いくつかの実施形態において、各クライアントメッセージ２１７は、データアクセスサーバ２１０に拡張機能（後述）を実行させることで、ｕノードツリー２７５−１がメインフレームカタログ２８０（図９）に対して確実に最新の状態にする。このように、クライアントメッセージ２１７は、要求されたデータ２２０が、例えば、カタログから除去された場合、データアクセスサーバ２１０による対応を受けようとしない。拡張動作を強制してメインフレームカタログ情報２８０でｕノードツリー２７５−１を更新することによって、データアクセスサーバ２１０も要求が適切に処理されることを保証し得る。
【０１０９】
例として、図１１は、本発明の実施形態のデータアクセスサーバ２１０によって維持される、ｕノード４０５の例に関連するコンテンツと情報を示す。ｕノード４０５は、その本質を示すに過ぎず、ｕノードが含む情報は、図示された情報よりも多い場合も又少ない場合もある。また、本発明の実施形態の変形例によって、ｕノード４０５の例において図示されたこのようなコンテンツと情報が、実際のｕノードデータ構造４０５内に直接存在しないどこか他のデータ構造において、維持される。ｕノード４０５の例には、ファイル／ディレクトリハンドル５５０、ｕノード参照基準５５１、シークマップ情報５５２、及びＭＶＳメタデータ（すなわち、ＭＶＳカタログデータ及び／又は他の情報）であるデータ記憶情報２１８が含まれる。
【０１１０】
一般的に、ｕノード４０５のファイル／ディレクトリ・ハンドル５５０は、オペレーティングシステムを介して、ファイル及び／又はディレクトリを参照するために用いられる通常のファイルハンドルと目的の点で等価である。このハンドルは、ＵＩＤフィールド５５５を介してｕノード４０５を一意的に識別し、ＵＩＤフィールド５５５は、例えば、ｕノード４０５の作成時割り当てられた固有の３２ビット数であってもよい。データアクセスサーバ２１０は、データ２２０へのアクセス要求（すなわち、ＮＦＳ命令）を含むクライアントメッセージ２１７に応じて、ファイルハンドル情報５５０をデータアクセスクライアント２０８に戻すことができる。一旦、データアクセスクライアント２０８がファイルハンドル情報５５０を得ると、データアクセスクライアント２０８は、将来要求された時、（例えば、クライアントメッセージ２１７を介して）このハンドル５５０をデータアクセスサーバ２１０に与えて、データアクセスサーバ２１０が、ハンドル５５０によって参照又は指定されるデータ及び／又はディレクトリ上でデータアクセス動作を実行できるようにする。
【０１１１】
ＮＦＳや他のファイル共有プロトコルは、支配権を有しないことが多いため、ｕノードハンドル５５０には、データアクセスサーバ２１０の開始時間を含むサーバタイムスタンプフィールド５５６が含まれる。このタイムスタンプ５５６を用い得るのは、例えば、データアクセスサーバ２１０が、将来のデータアクセス要求においてハンドル５５０を受信して、データアクセスサーバ２１０が、それが作成しなかったハンドル上で動作していないことを保証する手助けになる場合である。サーバタイムスタンプフィールド５５６を、サーバ２１０によって維持され対応するキャッシュ化された値の日時スタンプと比較することによって、データアクセスサーバ２１０は、そのファイルハンドルが“それ自体の１つ”であるということを確信する。本発明の他の実施形態は、（この例では、タイムスタンプを用いた）このようなハンドルチェックの使用を避けることが可能であり、あるサーバが作成するハンドルが他のサーバによって用い得るようにする。
【０１１２】
ファイルハンドル５５０のフラグ／属性フィールド５５７は、例えば、ｕノード４０５がディレクトリ又はデータを含んでいるファイルに関連付けられているか否か示すことが可能である。ディレクトリとファイル（すなわち、ｕノードツリー２７５−１の全構成要素）は対応するｕノードを双方共有する。
【０１１３】
ｕノード参照基準５５１は、実際にｕノードツリー２７５−１を維持するために用いられる。従って、親ｕノードフィールド５６１は、親ｕノードに対するポインタ又は他の参照基準を含むことが可能であり、一方、子ｕノードフィールド５６２乃至５６３（ＣＨＩＬＤ・ＵＮＯＤＥ１乃至ＣＨＩＬＤ・ＵＮＯＤＥ・Ｋ）は、ｕノードツリー２７５−１の現ｕノード４０５の下位にあるファイル又はサブディレクトリであり得る子ｕノードに対するポインタを維持するために用い得る。
【０１１４】
コンピュータ処理システム２０２によって（すなわち、メインフレームによって）維持されるＭＶＳデータ集合又は他のタイプのデータは、例えば、Ｕｎｉｘ、又はＷｉｎｄｏｗｓＮＴのように、レコード志向であり、バイト志向ではないため、ＭＶＳは、通常、任意のバイトオフセットからの読み込みをサポートしない。言い換えると、一般的に、共有データ２２０のデータ記憶フォーマットは、コンピュータ処理システム２０１によって通常用いられるデータ記憶フォーマットと互換性がない。従って、ＲＥＡＤ等の様々なＮＦＳ命令に応じてデータアクセスサーバ２１０がＵｎｉｘ式Ｉ／Ｏをサポートするために、データアクセスルーチン２７０（例えば、ＳｙｍｍＡＰＩ−アクセス）は、バイト志向のシーク機能を提供し得る。この機能は、データ集合の初めから所望のオフセットに至るまでの読み込みによって動作するため、非効率的な場合がある。しかしながら、本発明のデータアクセスサーバ２１０において、このようにしてデータ集合にアクセスしなければならないランダムなＩ／Ｏパターンの代償を軽減するために、データアクセス翻訳装置２６０は、シークマップ情報５５２を維持する。一般的に、シークマップ情報５５２は、あらゆるオープンファイル（すなわち、ＭＶＳファイル又はＮＦＳ命令によって予め開放された及び／又はアプリケーション２０６によって使用中であり得るデータ集合）に対して維持される。一般的に、シークマップ情報５５２は、共有記憶装置２１１におけるＵｎｉｘバイトオフセットとＭＶＳファイルポジションとの間でマッピングを記憶又はキャッシュ化するために用いられる。この実施形態例において、２種類のキャッシュが保持される。すなわち、最後のＮ個のＮＦＳ・ＲＥＡＤ要求の記憶位置を常に把握する履歴キャッシュ５５８と、オープンファイル及びこのｕノード４０５に対応するデータ２２０の他の部分において等距離の固定位置のマッピングを保持するパーティションキャッシュ５５９である。
【０１１５】
使用中、データアクセスクライアント２０８に代わって、共有記憶装置２１１へデータ２２０の読み込み又は書き込みを試みるデータアクセス機能２７０（例えば、ｒｅａｄ（）やｗｒｉｔｅ（）等のＳｙｍｍＡＰＩ−アクセス機能）は、ｕノード４０５のシークマップ情報５５２を参照して、該当するファイルがファイルポインタ（図示せず）を、共有記憶装置２１１上のデータファイル２２０における所望のオフセットに出来るだけ近くなるように位置付けることができる。このことは、バイト志向のシーク機能（例えば、ＳｙｍｍＡＰＩ−アクセスのｉｓ＿ｓｅｅｋ（））を呼び出し、所望の記憶位置への残りのパスを（例えば、読み込みによって）シークする前に行われる。
【０１１６】
また、データアクセスサーバ２１０がコンピュータ処理システム２０２から取得するデータ記憶情報２１８は、データアクセスが試みられているｕノードに関連付けることが可能である。この例において、データ記憶情報２１８は、ｕノード４０５に関連したデータ２２０に対する厳密なディスク及び／又はボリューム記憶位置情報、ファイルサイズ、オフセット等を示すディスク範囲データ５６０を含む。例えば、レベル１ホスト又はレベル２ＨＬＱ等のｕノードツリー２７５−１において、より高いレベルを表すディスク範囲データ５６０は、ｕノード４０５には必要の無い場合がある。シークマップ情報５５２等のｕノード情報は、各オープンファイル用のデータアクセス翻訳装置２６０内で維持してもよく、各ｕノード４０５の一部でなくてもよいするものとする。このように、ｕノード構造４０５は、ｕノード４０５に関連するコンテンツの説明用に過ぎず、本発明をこのようなコンテンツに制限又は制約するものではない。
【０１１７】
上述したように、データアクセス翻訳装置２６０は、クライアントメッセージ２１７やデータアクセス要求２１９ばかりでなく、仮想ファイルシステム２７５に関連する情報を得て処理するメカニズムを提供する。そうするために、データアクセス翻訳装置２６０は、上述したように、本発明の一般動作をサポートするために様々な組み合わせで又は単独で用い得る様々な機能を提供する。次に述べる機能のリストは、上述のデータアクセス翻訳動作を処理するために、本発明の好適な実施形態で実現し得る。機能の名前は、Ｃ＋＋呼び出しフォーマットにおいて与えられ、それらの処理について簡単に説明されている。これらの機能は、本発明の実施形態を制限するためのものではないことを理解されたい。むしろ、この段階において、当業者は、本発明による実施形態の動作に関する詳細は、多くの異なる実施形態をサポートするのに充分な程詳細に述べられていること、また、次の機能は、不要な実験をせず様々な方法で実現し得ることを理解されるであろう。このように、以下に述べる機能は、１つの実施形態例のみに基づくデータアクセス翻訳装置２６０における特定の実施例の側面を表す。
【０１１８】
ａｆｉ＿ｕｉｄ＿ｔ  ａｆｉ＿Ｕｎｏｄｅ：：ｇｅｔＵｉｄ（）；
この機能は、ｕノードストア２７５−２又はｕノードツリー２７５−１を全検索し、また、ｕノードのＵＩＤ５５５を戻すことができる。
ａｆｉ＿ｓｔａｔｕｓ＿ｔ  ａｆｉ＿Ｄｉｒ：：ｅｘｐａｎｄ（）；
この機能は、派生ｕノード４０５（すなわち、ｕノードツリー２７５−１における下位レベルのｕノード）リストを、メインフレームコンピュータ処理システム２０２上で維持されるＭＶＳカタログ情報２８０の対応する同等物に対して最新状態にできる。これは、例えば、共有記憶装置２１１内に存在する現行状態のデータ集合で仮想ファイルシステム２７５を周期的に更新する上で有用である。
【０１１９】
ａｆｉ＿Ｕｎｏｄｅ＊ａｆｉ＿Ｄｉｒ：：ｌｏｏｋｕｐＢｙＮａｍｅ（ｃｈａｒ＊ｎａｍｅ）；
この機能は、与えられた名前によって指定された特定のファイル又はディレクトリがないか、ディレクトリｕノード４０５のすぐ下位の要素を検索し得る（すなわち、ｕノードツリー２７５−１の全検索を介して）。この名前は、例えば、ｕノードハンドル５５０の属性フィールド５５７で指定し得る。検索が不成功でない場合、データアクセスルーチン２７０を呼び出して、ｅｘｐａｎｄ（）に対する呼び出し後、ファイル又はディレクトリがメインフレームコンピュータ処理システム２０２上で作成又は削除されたか否か判断し得る。
【０１２０】
ａｆｉ＿Ｕｎｏｄｅ＊ａｆｉ＿ＵｎｏｄｅＳｔｏｒｅ：：ｌｏｏｋｕｐ（ａｆｉ＿ｕｉｄ＿ｔ  ｕｉｄ）；
この機能は、与えられたＵＩＤ５５５を有するｕノード４０５がないかｕノードストア２７５−２を検索し得る。
【０１２１】
ａｆｉ＿ｓｔａｔｕｓ＿ｔ  ａｆｉ＿Ｆｉｌｅ：：ｏｐｅｎ（）
この機能は、ＳｙｍｍＡＰＩ−アクセスのｉｓ＿ｆｏｐｅｎ()等のデータアクセス機能を呼び出すことによりｕノード４０５によって指定されたファイルを開き、次に、その結果生じるｕノード４０５のファイルポインタ（例えば、ＳｙｍｍＡＰＩ−アクセスファイル記述子であるＩＳ＿ＦＩＬＥ）を配置し得る。更に、この機能は、ｕノード４０５用のシークマップ情報５５２を作成し得る。
【０１２２】
ａｆｉ＿ｓｔａｔｕｓ  ａｆｉ＿Ｆｉｌｅ：：ｓｅｅｋ（ａｆｉ＿ｏｆｆｓｅｔ＿ｔ  ｏｆｆｓｅｔ）；
この機能は、指定されたファイルの所望のバイトオフセットに対するシークに用い得る。このために、この機能は、まず、シークマップ情報５５２を調べ、できるだけ所望のオフセットに近づく。次に、この機能は、ＳｙｍｍＡＰＩ−アクセスルーチンのｉｓ＿ｓｅｅｋ()等のデータアクセスルーチン２７０を呼び出し、ファイルにおける残りの距離をシークする。
【０１２３】
ａｆｉ＿ｓｔａｔｕｓ＿ｔ  ａｆｉ＿Ｆｉｌｅ：：ｒｅａｄ( ｃｈａｒ＊ｂｕｆｆｅｒ，ｌｏｎｇ  ｏｆｆｓｅｔ，ｌｏｎｇ  ｃｏｕｎｔ) ；
この機能は、ファイルのオフセットで始まるある数のバイトを読み込みカウントするために用い得る。そのために、この機能は、必要ならば、（ＳｙｍｍＡＰＩ−アクセスのｉｓ＿ｆｏｐｅｎ（）等のデータアクセスルーチン２７０を用いて）まずファイルを開き、次に、シーク機能ａｆｉ＿Ｆｉｌｅ：：ｓｅｅｋ（）を呼び出し、そのファイルの所望のオフセットをシークする。次に、ＳｙｍｍＡＰＩ−アクセスのｉｓ＿ｆｒｅａｄ（）等、他のデータアクセスルーチン２７０を用いて、そのファイルから所望の数のバイトを読み込むことができる。
【０１２４】
ａｆｉ＿ｓｔａｔｕｓ＿ｔ  ａｆｉ＿Ｆｉｌｅ：：ｗｒｉｔｅ（ｃｈａｒ＊ｂｕｆｆｅｒ，ｌｏｎｇ  ｏｆｆｓｅｔ，ｌｏｎｇ  ｃｏｕｎｔ）
この機能は、そのオフセットで始まるバッファからバイト数の書き込みカウントが可能である。このために、必要ならば、この機能はまずファイルを開き、ａｆｉ＿Ｆｉｌｅ：：ｓｅｅｋ（）を呼び出し、所望のオフセットをシークする。次に、この機能は、ＳｙｍｍＡＰＩ−アクセスのｉｓ＿ｆｗｒｉｔｅ（）等の書き込みデータアクセスルーチン２７０を呼び出し、所望のバイトを書き込む。
【０１２５】
このように本発明の実施形態の構成要素と動作を詳述したが、本発明の実施形態等、いくつかの簡単な動作例は、ＮＦＳプロトコル命令の処理に関して後述する。次に述べる代表的なＮＦＳ動作は、上述した本発明の実施形態をどのように用いて、データアクセスクライアント２０８及びアプリケーション２０６に代わり、このような命令を完全にサポートするかに関する概要と共に提供される。本発明の実施形態は、全ＮＦＳプロトコルをサポートするために用い得ること、また、以下の例は制限することを意図するものではないことを理解されたい。
【０１２６】
ＮＦＳ動作例
ＭＯＵＮＴ（マウント）
マウントインタフェースモジュール３００−１には、要求されたディレクトリに対するパス名（例えば、／ＭＶＳ‐ＨＯＳＴ１／ＨＬＱ１）が付与される。一般的に、データアクセスサーバ２１０は、以下のステップを実行する。
【０１２７】
１．システムが指定する構成に基づき、与えられたディレクトリパス（例えば、／ＭＶＳ‐ＨＯＳＴ１／ＨＬＱ１）が正当であるかどうか確認するためにチェックする。
【０１２８】
２．与えられたディレクトリを表すｕノード４０５用のｕノードツリー２７５−１を検索。このことは、まず、ルートｕノード４０５−１から開始し、そして、ａｆｉ‐Ｕｎｏｄｅ：：ｌｏｏｋｕｐＢｙＮａｍｅ（）を呼び出し、その関数をパス（例えば、／ＭＶＳ‐ＨＯＳＴ１／ＨＬＱ１）の第１構成要素（例えば、／ＭＶＳ‐ＨＯＳＴ１）に渡すことによって、繰返し行うことができる。次に、ｌｏｏｋｕｐＢｙＮａｍｅ（）は、その結果得られるｕノード（例えば、４０５−２）上で呼び出され、それをそのパスの第２構成要素（例えば、ＨＬＱ１）に渡し、以下同様に行うことができる。
【０１２９】
３．これは、ｌｏｏｋｕｐＢｙＮａｍｅ（）が失敗するまで、あるいはパス名に構成要素が無くなるまで続けられる。前者の場合、エラーが返され、それ以外の場合、ディレクトリハンドル５５０がその結果得られるｕノードにおいて作成され、クライアントに返される。
【０１３０】
ＬＯＯＫＵＰ（ルックアップ）
（図１０には図示しないが、インターフェイスモジュール３００−Ｐに対応する）ルックアップには、ディレクトリハンドル５５０と、ａｆｉ‐Ｄｉｒ：：ｌｏｏｋｕｐＢｙＮａｍｅ（）に渡す名前とが付与される。検索が成功した場合、その結果得られるｕノード４０５は、返されるファイル／ディレクトリハンドルを含む。
【０１３１】
ＲＥＡＤＤＩＲ／ＲＥＡＤＤＩＲ＋（ディレクトリ読込み／ディレクトリ読込み＋）
１．Ｒｅａｄｄｉｒインターフェイス（３００−２）モジュールには、ｕノード４０５に変換されるディレクトリハンドル５５０が付与される。単一ディレクトリのコンテンツを読込むために複数のＲＥＡＤＤＩＲ呼び出しが必要な場合（すなわち、規模が大きく、複数のＲｅａｄｄｉｒが必要な場合）に用いられるブックマークとして機能するために、データアクセスサーバ２１０が生成するクッキー（図示せず）も与えられる。
【０１３２】
２．クッキーがゼロである場合、その要求は、ディレクトリの先頭から始まる。まず、ａｆｉ‐Ｄｉｒ：：ｅｘｐａｎｄ（）がｕノード４０５上で呼び出されて、下位のｕノードのリストをコンピュータ処理システム２０２（例えば、メインフレーム）と同期化させる。次に、開始ポインタは、ディレクトリの第１下位部に設定される。
【０１３３】
３．クッキーは、ゼロでない場合、ａｆｉ‐ＵｎｏｄｅＳｔｏｒｅ：：ｌｏｏｋｕｐ（）への呼び出しを行うために用いられ、開始ポインタは、リスト中のその結果得られるｕノードに続くｕノードに設定される。ルックアップが失敗した場合、エラーがクライアントに返される。
【０１３４】
４．次に、ステップ２／３からの下位部のリストは、開始ポインタから開始して全検索される。リストの各メンバｕノードに対して、関連情報（ＲＥＡＤＤＩＲ用の名前、ＲＥＡＤＤＩＲ＋用の名前、ハンドル、及び属性）が、応答クライアントメッセージ２１７にパックされる。このことは、リスト又は応答バッファのいずれかが尽きるまで継続する。
【０１３５】
ＲＥＡＤ（読込み）
Ｒｅａｄインターフェイスモジュール３００−３には、ファイルハンドル５５０、オフセット、長さ、及びサイズ長のバッファが与えられる。バッファは、インターフェイスモジュール用のＲＰＣスタブによって割当てられ、また割当てが解除される。ＲＥＡＤインターフェイスモジュール３００−３は、データアクセス翻訳装置２６０を介して、ファイルハンドル５５０をｕノード４０５に変換し、次に、ａｆｉ＿Ｆｉｌｅ：：ｒｅａｄ（）を呼び出し、要求されたデータ２２０を読取るために、オフセット、長さ、バッファアドレスを渡す。
【０１３６】
ＷＲＩＴＥ（書き込み）
Ｗｒｉｔｅインターフェイスモジュール３００−Ｎには、ファイルハンドル５５０、オフセット、長さ、及びサイズ長のバッファを含むクライアントメッセージ２１７が与えられる。バッファは、ＲＰＣスタブによって割当てられ、また割当てが解除される。ＷＲＩＴＥ３００Ｎは、データアクセス翻訳装置４６０の支援を受けて、ファイルハンドルをｕノード４０５に変換し、次に、ａｆｉ＿Ｆｉｌｅ：：ｗｒｉｔｅ（）を呼び出し、オフセット、長さ、バッファアドレスを渡す。
【０１３７】
本発明の実施形態がサポートする様々なＮＦＳ命令の上述の動作から明らかなように、データアクセスサーバ２１０によって、クライアントアプリケーション２０６は、ファイルシステムとデータ記憶フォーマットの非互換性のために、コンピュータ処理システムプラットフォーム２０１とは本来非互換性であるＭＶＳデータ又は他のタイプのデータにアクセスできる。このように、本発明の実施形態は、コンピュータ処理システム間でデータを共有するために用い得る洗練されたパワフルな設計及びアーキテクチャを提供するが、他の方法ではこのようなことは不可能である。
【０１３８】
次に、図５及び／又は６において、コンピュータ処理システム２０２（例えば、共有記憶装置２１１のデータ２２０を保持するメインフレーム上のＭＶＳ）を制御する様々なオペレーティングシステム２０５のある具体例では、データ２２０へのアクセスが付与される前に実行されるログインプロセス又は手続の形態で、アクセスがローカルなものか、又は共有記憶装置２１１の場合、共有接続２１４を介するものかどうか、ユーザ認証を要求し得る。このように、本発明の実施形態のデータアクセスサーバ２１０は、データアクセスルーチン２７０を用いて、このようなデータにアクセスすることから、ユーザ（すなわち、データアクセスクライアント２０８を介するアプリケーション２０６のユーザ）の代わりに、ネットワーク２１３上でデータアクセスエージェント２１２と共に動作する。従って、このような認証を要求する本発明の実施形態は、命令、プログラム、ルーチン、あるいは、コンピュータ処理システム２０１−１乃至２０１−Ｎ上で実行して、ユーザ（図示せず）がユーザログイン（例えば、ユーザ名／パスワード）情報をデータアクセスサーバ２１０に提供できるようにする他のこのような実行可能な又は翻訳可能なエンティティを提供し得る。次に、データアクセスサーバ２１０は、ＳｙｍｍＡＰＩ―アクセス機能等、特定のデータアクセスルーチン２７０を用いて、コンピュータ処理システム２０２にユーザが提供するデータアクセス要求を認証し得る。
【０１３９】
上述したメカニズムと手法とを用いると、例えば、ＮＦＳ及びＣＩＦＳ等の標準的な広く受け入れられたデータ又はファイル共有プロトコルを用いて、データアクセスサーバ２１０を介して、共有データ２２０へのデータアクセスを有するソフトウェアアプリケーションが提供される。ソフトウェアアプリケーション２０６が動作するコンピュータ処理システム２０１は、共有記憶装置２１１に直接接続する必要はない。また更に、アプリケーション２０６は、データアクセスサーバ２１０と同じコンピュータ処理システム２０１−１上で動作する必要はない（例えば、実行する必要はない）が、この例においてアプリケーション２０６−１がそうするようにアプリケーション２０６もそうしてよい。メインフレーム２０２によって共有記憶装置２１１内に提供されるデータ２２０のデータ記憶フォーマット間の非互換性は、本発明によってアプリケーション２０６からは隠されるが、各々異なるデータフォーマットを要求してもよい。このことは、部分的には、本発明のデータアクセスサーバ２１０が、標準的な分散型データ共有プロトコル・フロントエンド・インターフェイスモジュール２５０を提供して、クライアント２０８−１乃至２０８−Ｎと接続して機能するという事実による。同時に、データアクセスサーバ２１０は、上述の実施形態例において、メインフレームデータアクセス手法を用いて、メインフレーム２０２と通信し、また、共有記憶装置２１１のメインフレームデータ２２０にアクセスする。従って、データアクセスサーバ２１０によって、アプリケーション２０６は、例えば、（例えば、データ２２０を記憶するために用いる）ＭＶＳデータ集合フォーマットと、標準的なＵｎｉｘ又は他の階層型ファイルシステムによって提供されるオープンシステムファイルフォーマットとの間に発生し得るデータ記憶フォーマットの相違とは無縁になる。
【０１４０】
図１２は、本発明の実施形態によって実行し得る一般的な処理ステップ６００乃至６０８の流れ図である。一般的に、図１２に示す動作は、コンピュータ処理システム２０１−１内のプロセッサユニット上で動作するデータアクセスサーバ２１０のソフトウェア実装によって実行される。ソフトウェアデータアクセスサーバ２１０は、プロセッサにこれらのステップを実行させるが、この記述は、これらを実行するデータアクセスサーバ２１０に関する動作を説明している。
【０１４１】
ステップ６００において、データアクセスサーバ２１０は、分散型データインターフェイス２３０を介して、共有記憶装置２１１上で、あるデータ２２０へのアクセスを要求するクライアントメッセージ２１７を受信する（要求されたアクセスは書き込みであり、データはまだ存在していないことに留意されたい）。ステップ６０１において、データアクセスサーバ２１０は、第１コンピュータ処理システム２０１−１上のデータアクセスサーバ２１０が、共有記憶装置のデータ２２０に互換性を持ってアクセスできるように、適切なデータ記憶情報２１８が、仮想ファイルシステム２７５等においてローカルに入手可能であるか否か判断する。この判断によって、基本的には、データアクセスサーバ２１０が、コンピュータ処理システム２０２（例えば、メインフレーム）からデータ記憶情報２１８を要求しなければならないかどうか決定したり、又は、データアクセスサーバ２１０が、例えば、以前のクライアントメッセージ２１７に応じて、要求されたデータに既にアクセスしたかどうか判断したりするが、この場合、データ記憶情報２１８は、ローカルに既に存在し得る。適切なデータ記憶情報２１８が、仮想ファイルシステム２７５においてローカルに入手可能な場合、データアクセスサーバは、ステップ６０２を実行して、例えば、ディスク範囲データ５６０又はシークマップ情報５５２を含むデータ記憶情報２１８等のｕノード４０５情報を用いて、適切なデータ記憶情報２１８を仮想ファイルシステム２７５から取得する。データアクセスサーバ２１０が、ステップ６０１において、要求されたデータ記憶情報２１８が入手可能でないと判断した場合、データアクセスサーバ２１０は、ステップ６０３及び６０４を実行する。
【０１４２】
ステップ６０３において、データアクセスサーバ２１０は、（上述した如く）１つ以上のデータアクセスルーチンを介して、アクセスが要求されたデータに関連するデータ記憶情報２１８を、共有記憶装置のデータ２２０を維持する役割を担うコンピュータシステム２０２から取得する。次に、ステップ６０４において、データアクセスサーバ２１０は、取得されたばかりの全ての新しいデータ記憶情報２１８でローカル仮想ファイルシステム２７５を記憶又は更新する。このことには、新しいｕノードを生成する必要があり、あるいは、既存のｕノードの情報を更新する必要がある。
【０１４３】
データアクセスサーバ２１０が、クライアント要求メッセージ２１７において要求されたデータアクセスを実行するために、データ記憶情報２１８を一旦取得すると、ステップ６０５が実行され、ここで、データアクセスサーバ２１０は、クライアントメッセージ（群）２１７によって指定されたアクション又は命令を実行するように要求されたデータアクセスルーチン２７０を選択する。次に、ステップ６０６において、データアクセスサーバ２１０は、クライアントメッセージ（群）２１７のクライアント要求パラメータ２６２を、選択されたデータアクセスルーチン２７０用のデータアクセスパラメータに翻訳する。その後、ステップ６０７において、データアクセスサーバは、データアクセスルーチンを実行して、共有記憶装置２１１のデータ２２０に直接アクセスする。最後に、ステップ６０８において、データアクセスサーバ２１０は、データアクセスの結果をクライアントメッセージの発信元に返すが、この発信元は、元々、そのメッセージを発したデータアクセスクライアント２０８である。上述の手法を用いて、本発明のデータアクセスサーバ２１０は、コンピュータ処理システム２０１上でクライアント２０８を用いるアプリケーション２０６の代わりに、共有データへアクセスする。
【０１４４】
本発明は、その好適な実施形態を参照して、詳細に図示し説明したが、形態上の及び詳細における様々な変更が、添付の請求項によって定義される本発明の範囲から逸脱することなくその範囲内で行い得ることが当業者には理解されよう。例として、上述のコンピュータ処理システム２０１の例は、Ｕｎｉｘ又はＷｉｎｄｏｗｓベースのシステムとして示したが、アップル・マッキントッシュ又は他のコンピュータ処理プラットフォーム等のシステムも、本発明に従い構成されるデータアクセスサーバをサポートし得る。同様に、ＭＶＳ、ＯＳ／３９０、及びＯＳＩ／ＭＳＰ等のメインフレームオペレーティングシステムもコンピュータ処理システム２０２上で用い得る。他の変形例も同様に本発明の範囲内にあるものと考えられる。例えば、構造的に、コンピュータ処理システム２０１−１に接続された多くの共有記憶装置２１１があってもよく、また、データアクセスサーバ２１０は、各共有記憶装置からのデータに対応してもよい。別の選択肢として、各共有記憶装置２１１に対して、コンピュータ処理システム２０１−１において各々並行して動作する多くのデータアクセスサーバ２１０があってもよい。また別の選択肢として、データアクセスサーバ２１０は、多くの異なるプロトコルをサポートしてもよく、この場合、各々サポートされるプロトコルに対して、一組のインターフェイスモジュール２５０がある。例えば、単一データアクセスサーバ２１０は、同一データ上で、ＣＩＦＳとＮＦＳの両方をサポートできる。このような構成において、各プロトコルは、（クライアントメッセージ２１７において受信される）そのプロトコル用のプロトコル命令が宛てられる一組のインターフェイスモジュールを有する。
【０１４５】
本発明の他の代替実施形態は、読込み専用アクセス又は書き込み専用アクセス等、データ２２０への異なるレベルのアクセスをサポートする。このような実施形態において、データアクセスクライアント２０８とデータアクセスサーバ２１０との間のプロトコルは全て、いかなるサポートもされないアクセスを要求しているクライアントメッセージ２１７が、データアクセスサーバ２１０を失敗させないという点においてサポートされる。むしろ、サポートされないが、データアクセスサーバ２１０に与えられるアクセス命令は、要求されたアクセスがサポートされていないことを示すクライアント２０８に返されるクライアントメッセージ２１７で簡単に否定し得る。例えば、読込み専用の実施形態は、データ、ファイル、及び／又はディレクトリ構造の読込みだけであって、このような構造の変更や書き込みを行わないプロトコル命令（例えば、ＮＦＳ、ＣＩＦＳ命令）のみをサポートする。
【０１４６】
他の実施形態において、本発明のシステムは、データアクセスサーバが個別のユーザ空間プロセスとして特に動作しないように、オペレーティングシステムカーネル内にデータアクセスサーバを提供し得る。このような実施形態において、データアクセスサーバは、例えば、オペレーティングシステムの一部として組み合されたカーネルプロセスであってもよい。この実施形態は、上述のいくつかの実施形態とは、それらの実施形態ではデータアクセスサーバがユーザ空間プロセスとして主に動作するという点において異なる。いずれの場合も、本発明のシステムによって、データアクセスサーバが、ユーザ空間又はカーネル（例えば、オペレーティングシステム）空間プロセス、ルーチン、方法、スレッド又は他のコンピュータ処理システム内で実行可能な動作のいずれかとして動作し得ることを理解されたい。
【０１４７】
本発明のデータアクセスサーバ２１０は、ソフトウェアプログラムとして実装され、またＣ、Ｃ＋＋、Ｊａｖａ、Ｐｅｒｌ又は他のこのような言語等、何らかのプログラミング言語で書けることが好ましい。一般的に、コンピュータ処理システム２０１及び２０２には、各々、プロセスやタスク等を実行するための、データアクセスサーバ２１０やメモリシステム又何らかのローカルデータを維持するためのローカルディスク記憶装置等、少なくとも１つのプロセッサを相互接続したものが含まれる。例えば、それらの機能の同じ目的及び本発明を全般的に達成しつつ、上述のデータアクセスサーバ機能に多くの変形を行い得ることが当業者には理解されるであろう。このような変形例は、本発明の範囲によって網羅されるものである。
【図面の簡単な説明】
【図１】  ローカルホスト上のアプリケーションが、ネットワークファイルシステム（ＮＦＳ）等の分散型ファイルシステムプロトコルを用いて、遠隔ホストのデータにアクセスすることを可能にする従来技術による手法を示す。
【図２】  ローカルホスト上のアプリケーションが、ファイル転換プロトコル（ＦＴＰ）を用いて、データの全コピーをローカルホスト転送することによって、遠隔ホストのデータにアクセスすることを可能にする従来技術による手法を示す。
【図３】  データを共有する各コンピュータ処理システムを直接共有記憶装置に接続する必要がある米国特許Ｎｏ．５，９５０，２０３に記載されたデータ共有手法を示す。
【図４】  遠隔ホストのアプリケーションが、遠隔ホストのエージェントを介して、また共有記憶装置への直接接続を介して、共有記憶装置に記憶されたデータにアクセスすることを可能にする、米国マサチューセッツ州ホプキントンのＥＭＣ社製のＩｎｓｔａＳｈａｒｅと呼ばれる（ＳｙｍｍＡＰＩ−アクセスとも呼ばれる）ソフトウェアプロダクトの旧バージョンによって提供されるデータ共有手法の１つの側面を示す。
【図５】  共有記憶装置に直接接続し得る又はし得ないコンピュータ処理システム上で実行されるアプリケーションによって共有記憶装置のデータにアクセスする本発明によるシステムの実施形態の高水準な動作を示す。
【図６】  本発明に基づき構成されたデータアクセスサーバによって提供される共有データにアクセスするために、データアクセスクライアントを用いるアプリケーションの対話を含む本発明によるシステムの実施形態のより詳細な動作を示す。
【図７】  本発明に基づき構成されたデータアクセスサーバにおける代表的な実施形態のブロック図の構造を示す。
【図８】  本発明のデータアクセスクライアントとデータアクセスサーバとの間で交換される一般的なクライアントメッセージの例を示し、ここで、クライアントメッセージは、１例であるＮＦＳ  ＲＥＡＤ命令のクライアント要求パラメータ値の例を含む。
【図９】  本発明に基づき、分散型ファイルシステムプロトコルを介して、データ共有をサポートし、また、共有データ用の仮想ファイルシステムを維持するデータアクセスサーバの代表的な動作と実施形態を示す。
【図１０】  本発明の実施形態に基づき構成された仮想ファイルシステムを含むデータアクセスサーバの代表的な設計を示す。
【図１１】  本発明の実施形態による仮想ファイルシステム内でデータアクセスサーバによって維持される一般的なｕノードのコンテンツを示す。
【図１２】  本発明の実施形態の動作に基づき、一般的にデータアクセスサーバによって実行し、クライアントに代わり共有データにアクセスする処理ステップのフローチャート。
【図１】
0003968242.tif 000002
【図２】
0003968242.tif 000003
【図３】
0003968242.tif 000004
【図４】
0003968242.tif 000005
【図５】
0003968242.tif 000006
【図６】
0003968242.tif 000007
【図７】
0003968242.tif 000008
【図８】
0003968242.tif 000009
【図９】
0003968242.tif 000010
【図１０】
0003968242.tif 000011
【図１１】
0003968242.tif 000012
【図１２】
0003968242.tif 000013