【手続補正書】
【提出日】平成17年4月22日(2005.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアント・アプリケーションがサーバー・コンポーネント・アプリケーションと通信することを可能にするためのフレームワーク・アーキテクチャ・システムであって、
サーバーがサーバーへのアクセスをクライアントに提供するサーバー・エンジンを備え、前記サーバー・エンジンが、
サービスを提供するためのサーバー・コンポーネントと、
前記サービスの関数を提供するための前記サーバー・コンポーネント内のインプリメンテーションと、サーバー・エンジンが再構成及び再コンパイルされないように前記インプリメンテーションは動的にサーバー・エンジンにリンクされてロードされるものであり、
クライアント・アプリケーションが前記インプリメンテーションにアクセスすることを可能にするための、動的にカスタマイズされてクライアント・アドレス空間中にロードされるインターフェイスとを含むフレームワーク・アーキテクチャ・システム。
【請求項２】
前記サーバー・コンポーネントが複数のインプリメンテーションを含み、前記インターフェイスは前記クライアント・アプリケーションが前記インプリメンテーションの１つを選択してアクセスすることを可能にする請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項３】
前記インプリメンテーションがプラグイン・インプリメンテーションであり、実行時に別のインプリメンテーションにより置換できる請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項４】
前記インターフェイスが、前記サーバー・コンポーネントの前記インプリメンテーションにより提供される関数のためのインターフェイス定義仕様を提供する請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項５】
前記インターフェイスが前記インターフェイス定義仕様に従うデータ・タイプ構造を提供し、前記データ・タイプ構造の各メンバーが前記インターフェイスにより定義されるサービスを実現するインプリメンテーション関数への関数ポインタである請求項４に記載のフレームワーク・アーキテクチャ・システム。
【請求項６】
インターフェイス識別子と共に前記インターフェイスのレコードを含むインターフェイス名前空間をさらに含む請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項７】
前記インターフェイスがバージョンと関連付けられている請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項８】
前記インターフェイスに対して複数のインプリメンテーションが存在する請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項９】
前記サーバー・コンポーネントに対して同じインプリメンテーションを提供する複数のインターフェイスが存在する請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１０】
前記インプリメンテーションが、同じインターフェイスの別のインプリメンテーションからインターフェイス・メソッド及び関数の小組を継承する請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１１】
インプリメンテーションが登録プロセスにより前記エンジン中にプラグインされて、そして前記サーバー・エンジンから除去される請求項３に記載のフレームワーク・アーキテクチャ・システム。
【請求項１２】
前記インプリメンテーションが、実行時にサーバー・エンジンによりロードされるコンテイナ内に記憶されている請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１３】
前記コンテイナが、ダイナミック・ローダブル・ライブラリイである請求項１２に記載のフレームワーク・アーキテクチャ・システム。
【請求項１４】
前記コンテイナが、複数のプラグインを含む請求項１２に記載のフレームワーク・アーキテクチャ・システム。
【請求項１５】
前記インプリメンテーションが、前記サーバー・コンポーネントにサービスを追加するためのインターセプターを含む請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１６】
前記インターセプターが、スタック・インターセプターであり、インターフェイスの実現の際にインプリメンテーションは各プラグインをインターセプション・シーケンスで順に具体化する請求項１５に記載のフレームワーク・アーキテクチャ・システム。
【請求項１７】
インプリメンテーションの永続性記憶のためにレジストリをさらに含む請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１８】
クライアント・アプリケーションがインプリメンテーションを実現することができるための実現機構をさらに含み、前記インプリメンテーションはｖテーブル、プライベート・データ記憶、及びインスタンス当たりのデータ構造を含む請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項１９】
実現機構が、ｖテーブル、プライベート・データ記憶、及びインスタンス当たりのデータ構造内に記憶されている情報を検索して、前記情報をプロキシｖテーブルにコピーし、そしてクライアントへプロキシｖテーブルへのポインタを戻すためのロジックを含む請求項１８に記載のフレームワーク・アーキテクチャ・システム。
【請求項２０】
クライアントがこのポインタをその後にインプリメンテーションと通信するために使用する請求項１９に記載のフレームワーク・アーキテクチャ・システム。
【請求項２１】
前記インプリメンテーションが、ソフトウェア・パーソナリテイである請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項２２】
前記ソフトウェア・パーソナリテイが、Ｔｕｘｅｄｏ、Ｊｏｌｔ、又はＡＭＳの１つである請求項２１に記載のフレームワーク・アーキテクチャ・システム。
【請求項２３】
前記パーソナリテイが、プログラミング・アテイチュードを含む請求項２２に記載のフレームワーク・アーキテクチャ・システム。
【請求項２４】
前記プログラミング・アテイチュードが、Ｃ、ＯＬＥ、又はコボルの１つである請求項２３に記載のフレームワーク・アーキテクチャ・システム。
【請求項２５】
前記インプリメンテーションが、ソフトウェア・エクステンションである請求項１に記載のフレームワーク・アーキテクチャ・システム。
【請求項２６】
クライアント・アプリケーションがサーバー・コンポーネント・アプリケーションとフレームワーク・アーキテクチャを介して通信することを可能にするための方法であって、
サーバーへのアクセスをクライアントに提供するサーバー・エンジンを与え、
前記サーバー・エンジンが、
サービスを提供するためのサーバー・コンポーネントと、
前記サービスの関数を提供するための前記サーバー・コンポーネント内のインプリメンテーションと、サーバー・エンジンが再構成及び再コンパイルされないように前記インプリメンテーションは動的にサーバー・エンジンにリンクされてロードされるものであり、
クライアント・アプリケーションが前記インプリメンテーションにアクセスすることを可能にするため、動的にカスタマイズされてクライアント・アドレス空間中にロードされるインターフェイスとを含む方法。
【請求項２７】
前記サーバー・コンポーネントは複数のインプリメンテーションを含み、そして前記インターフェイスは前記クライアント・アプリケーションが前記インターフェイスにより提供される複数のインプリメンテーションの１つを選択してアクセスできるようにする請求項２６に記載の方法。
【請求項２８】
前記インプリメンテーションが、プラグイン・インプリメンテーションであり、そして実行時に別のインプリメンテーションに置換できる請求項２６に記載の方法。
【請求項２９】
前記インターフェイスが、前記サーバー・コンポーネントの前記インプリメンテーションにより提供される関数に対するインターフェイス定義仕様を提供する請求項２６に記載の方法。
【請求項３０】
前記インターフェイスが前記インターフェイス定義仕様に従うデータ・タイプ構造を提供し、前記データ・タイプ構造の各メンバーは前記インターフェイスにより定義されるサービスを実現するインプリメンテーション関数への関数ポインタである請求項２９に記載の方法。
【請求項３１】
インターフェイス識別子と共に前記インターフェイスに対するレコードを含むインターフェイス名前空間を維持することをさらに含む請求項２６に記載の方法。
【請求項３２】
前記インターフェイスがバージョンと関連付けられることをさらに含む請求項２６に記載の方法。
【請求項３３】
前記インターフェイスに対して複数のインプリメンテーションが存在する請求項２６に記載の方法。
【請求項３４】
前記サーバー・コンポーネントに対して同じインプリメンテーションを与える複数のインターフェイスが存在する請求項２６に記載の方法。
【請求項３５】
前記インプリメンテーションが、同じインターフェイスの別のインプリメンテーションからインターフェイス・メソッド及び関数の小組を継承する請求項２６に記載の方法。
【請求項３６】
インプリメンテーションを前記サーバー・エンジン内に登録プロセスを介してプラグインとして登録することをさらに含む請求項２８に記載の方法。
【請求項３７】
前記インプリメンテーションが、実行時にサーバー・エンジンによりロードされるコンテイナ内に記憶されている請求項２６に記載の方法。
【請求項３８】
前記コンテイナが、ダイナミック・ローダブル・ライブラリイである請求項３７に記載の方法。
【請求項３９】
前記コンテイナが、複数のプラグインを含む請求項３７に記載の方法。
【請求項４０】
前記インプリメンテーションを前記サーバー・コンポーネントへサービスを追加するためのインターセプターと接続する請求項２６に記載の方法。
【請求項４１】
前記インターセプターが、スタック・インターセプターであり、インターフェイスの実現の際にインプリメンテーションが、
各プラグインをインターセプション・シーケンスで順に具体化するステップを含む請求項４０に記載の方法。
【請求項４２】
インプリメンテーションをレジストリ内に記憶することをさらに含む請求項２６に記載の方法。
【請求項４３】
クライアント・アプリケーションがインプリメンテーションを実現することができるための実現機構を提供することをさらに含み、前記インプリメンテーションはｖテーブル、プライベート・データ記憶、及びインスタンス当たりのデータ構造を含む請求項２６に記載の方法。
【請求項４４】
ｖテーブル、プライベート・データ記憶、及びインスタンス当たりのデータ構造内に記憶されている情報を検索し、前記情報をプロキシｖテーブルにコピーし、そしてクライアントへプロキシｖテーブルへのポインタを戻すことをさらに含む請求項４３に記載の方法。
【請求項４５】
前記ポインタをその後にインターフェイス・インプリメンテーションと通信するために使用することをさらに含む請求項４４に記載の方法。
【請求項４６】
前記インプリメンテーションが、ソフトウェア・パーソナリテイである請求項２６に記載の方法
【請求項４７】
前記ソフトウェア・パーソナリテイが、Ｔｕｘｅｄｏ、Ｊｏｌｔ、又はＡＭＳの１つである請求項４６に記載の方法。
【請求項４８】
前記パーソナリテイが、プログラミング・アテイチュードを含む請求項４７に記載の方法。
【請求項４９】
前記プログラミング・アテイチュードが、Ｃ、ＯＬＥ、又はコボルの１つである請求項４８に記載の方法。
【請求項５０】
前記インプリメンテーションが、ソフトウェア・エクステンションである請求項２６に記載の方法。
【請求項５１】
クライアント・アプリケーションがサーバー・コンポーネント・アプリケーションと通信することを可能にするためのフレームワーク・アーキテクチャ・システムであって、
サーバーへのアクセスをクライアントに提供するサーバー内のサーバー・エンジンを備え、前記サーバー・エンジンが、
サービスを提供するサーバー・コンポーネントと、
前記サービスの関数を提供する前記サーバー・コンポーネント内のインプリメンテーションと、前記インプリメンテーションは前記サーバー・コンポーネントへサービスを追加するためのインターセプターを含み、前記インターセプターはインターフェイス・インプリメンテーションの具体化の際にインターセプション・シーケンス属性により指定されるように複数のインターセプテイング・プラクインをもまた具体化するファンアウト・インターセプターであり、クライアントによるその後のメソッドの呼び出しが指定された順序でインターセプテイング・プラグインの対応するメソッドの呼び出しを生じ、
クライアント・アプリケーションが前記インプリメンテーションにアクセスすることを可能にするインターフェイスと、
を含むフレームワーク・アーキテクチャ・システム。
【請求項５２】
クライアント・アプリケーションがフレームワーク・アーキテクチャを介してサーバー・コンポーネント・アプリケーションと通信することを可能にする方法であって、
サーバーへのアクセスをクライアントに提供するサーバー・エンジンを提供し、前記サーバー・エンジンが、
サービスを提供するサーバー・コンポーネントと、
前記サービスの関数を提供する前記サーバー・コンポーネント内のインプリメンテーションと、前記インプリメンテーションは前記サーバー・コンポーネントへサービスを追加するためのインターセプターを含み、前記インターセプターはインターフェイス・インプリメンテーションの具体化の際にインターセプション・シーケンス属性により指定されるように複数のインターセプテイング・プラクインをもまた具体化するステップを含むファンアウト・インターセプターであり、クライアントによるその後のメソッドの呼び出しが指定された順序でインターセプテイング・プラグインの対応するメソッドの呼び出しを生じ、
クライアント・アプリケーションが前記インプリメンテーションにアクセスすることを可能にするインターフェイスと、
を含む方法。