【手続補正書】
【提出日】平成19年3月20日(2007.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
様々なタイプのデータオブジェクトを直列化および非直列化することのできる拡張可能な直列化エンジンを含むコンピューティングシステムにおいて、初期タイプの初期オブジェクトを最終タイプの最終オブジェクトに変形する方法であって、前記直列化エンジンのモノリシック実装を置き換える必要なしに前記直列化エンジンのランタイム動作を１つまたは複数の拡張ルーチンによって改変することを可能にし、前記方法は、
前記直列化エンジンによるランタイム処理のために初期タイプの初期オブジェクトを受け取る動作と、
前記初期オブジェクトの前記初期タイプに関するタイプ情報を受け取る動作と、
前記タイプ情報に基づいて、ランタイム修正に適した前記初期オブジェクトの中間表現を生成する動作と、
１つまたは複数のカスタム拡張ルーチンを呼び出して、前記初期オブジェクトの修正済み中間表現へ前記初期オブジェクトの前記中間表現を変更し、それにより前記直列化エンジンの前記ランタイム動作を改変する動作と、
前記初期オブジェクトの前記修正済み中間表現から最終タイプの最終オブジェクトを生成する動作であって、前記最終オブジェクト及び前記初期オブジェクトの少なくとも１つはメモリ内オブジェクトであり、前記最終オブジェクトは、前記初期オブジェクトに基づいてインスタンス化およびポピュレートされることになるメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを非直列化して前記最終オブジェクトを生成し、前記初期オブジェクトはメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを直列化して前記最終オブジェクトを生成する、動作とを備え、
前記中間表現を変更するために呼び出される前記１つまたは複数のカスタム拡張ルーチンは、前記中間表現を実際には変更せずに、前記中間表現をどのように変更するかを指定し、それにより前記中間表現の変更は、バッファリング要件を削減するために前記最終オブジェクトの生成まで延期される
ことを特徴とする方法。
【請求項２】
前記中間表現は、前記初期オブジェクトについての全体的なタイプ、および前記初期オブジェクト内に含まれる１つまたは複数のオブジェクトについてのオブジェクト名、オブジェクトタイプ、オブジェクトデータを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記全体的なオブジェクトタイプ、および前記初期オブジェクト内に含まれる前記１つまたは複数のオブジェクトについての前記オブジェクト名、前記オブジェクトタイプ、前記オブジェクトデータのうちの、少なくとも１つを変更する動作
をさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
１つまたは複数の標準ルーチンを呼び出して、前記初期オブジェクトの前記中間表現を修正する動作
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記初期オブジェクトの前記中間表現の修正は、前記タイプ情報内の特定パターンに基づく
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記初期オブジェクトの前記中間表現の修正は、前記初期オブジェクト内のオブジェクトデータに基づく
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記直列化エンジンは、１つまたは複数のメッセージを送受信する分散アプリケーション用のメッセージングシステムの一部であり、前記初期オブジェクトおよび前記最終オブジェクトは、メッセージの少なくとも一部を表す
ことを特徴とする請求項１に記載の方法。
【請求項８】
様々なタイプのデータオブジェクトを直列化および非直列化することのできる拡張可能な直列化エンジンを含むコンピューティングシステムのための、コンピュータ実行可能命令を格納したコンピュータ読み取り可能な記録媒体であって、前記コンピュータ実行可能命令は、初期タイプの初期オブジェクトを最終タイプの最終オブジェクトに変形する方法を実施し、前記方法は、前記直列化エンジンのモノリシック実装を置き換える必要なしに前記直列化エンジンのランタイム動作を１つまたは複数の拡張ルーチンによって改変することを可能にし、前記方法は、
前記直列化エンジンによるランタイム処理のために初期タイプの初期オブジェクトを受け取る動作と、
前記初期オブジェクトの前記初期タイプに関するタイプ情報を受け取る動作と、
前記タイプ情報に基づいて、ランタイム修正に適した前記初期オブジェクトの中間表現を生成する動作と、
１つまたは複数のカスタム拡張ルーチンを呼び出して、前記初期オブジェクトの修正済み中間表現へ前記初期オブジェクトの前記中間表現を変更し、それにより前記直列化エンジンの前記ランタイム動作を改変する動作と、
前記初期オブジェクトの前記修正済み中間表現から最終タイプの最終オブジェクトを生成する動作であって、前記最終オブジェクト及び前記初期オブジェクトの少なくとも１つはメモリ内オブジェクトであり、前記最終オブジェクトは、前記初期オブジェクトに基づいてインスタンス化およびポピュレートされることになるメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを非直列化して前記最終オブジェクトを生成し、前記初期オブジェクトはメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを直列化して前記最終オブジェクトを生成する、動作とを備え、
前記中間表現を変更するために呼び出される前記１つまたは複数のカスタム拡張ルーチンは、前記中間表現を実際には変更せずに、前記中間表現をどのように変更するかを指定し、それにより前記中間表現の変更は、バッファリング要件を削減するために前記最終オブジェクトの生成まで延期される
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項９】
前記中間表現は、前記初期オブジェクトについての全体的なタイプ、および前記初期オブジェクト内に含まれる１つまたは複数のオブジェクトについてのオブジェクト名、オブジェクトタイプ、オブジェクトデータを含む
ことを特徴とする請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記方法は、前記全体的なオブジェクトタイプ、および前記初期オブジェクト内に含まれる前記１つまたは複数のオブジェクトについての前記オブジェクト名、前記オブジェクトタイプ、前記オブジェクトデータのうちの、少なくとも１つを変更する動作をさらに備えることを特徴とする請求項９に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記方法は、１つまたは複数の置換可能な標準ルーチンを呼び出して、前記初期オブジェクトの前記中間表現を修正する動作をさらに備えることを特徴とする請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記初期オブジェクトの前記中間表現の修正は、前記タイプ情報内の特定パターン、メタデータ、および前記初期オブジェクト内のオブジェクトデータのうちの少なくとも１つに基づく
ことを特徴とする８に記載のコンピュータ読み取り可能な記録媒体。
徴とする請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記初期オブジェクトと前記最終オブジェクトは両方ともメモリ内オブジェクトである
ことを特徴とする請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１４】
様々なタイプのデータオブジェクトを直列化および非直列化する拡張可能な直列化エンジンを含むコンピューティングシステムにおいて、初期タイプの初期オブジェクトを最終タイプの最終オブジェクトに変換する方法であって、前記直列化エンジンの１つまたは複数の他の既存ルーチンを置き換える必要なしに前記直列化エンジンの動作を１つまたは複数の拡張ルーチンによってランタイムに改変することを可能にし、前記方法は、
前記直列化エンジンによるランタイム処理のために受け取った初期タイプの初期オブジェクトに関するタイプ情報を識別するステップと、
前記タイプ情報に基づいて、前記初期オブジェクトを、ランタイム修正に適した前記初期オブジェクトの中間表現に変換するステップと、
前記初期オブジェクトの修正済み中間表現を生成するように前記初期オブジェクトの前記中間表現を１つまたは複数の拡張ルーチンに従って修正し、それにより前記直列化エンジンのランタイム動作を改変するステップと、
前記初期オブジェクトの前記修正済み中間表現を最終タイプの最終オブジェクトに変換するステップであって、前記最終オブジェクト及び前記初期オブジェクトの少なくとも１つはメモリ内オブジェクトであり、前記最終オブジェクトは、前記初期オブジェクトに基づいてインスタンス化およびポピュレートされることになるメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを非直列化して前記最終オブジェクトを生成し、前記初期オブジェクトはメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを直列化して前記最終オブジェクトを生成する、ステップと、
前記中間表現によるバッファリング修正を回避するために、前記中間表現が前記最終オブジェクトに変換されるまでは前記中間表現の修正を延期するステップと
を備えることを特徴とする方法。
【請求項１５】
前記初期オブジェクトの前記中間表現は、オブジェクト名、オブジェクトタイプ、オブジェクトデータのうちの少なくとも１つを含む
ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記初期オブジェクトの前記中間表現を１つまたは複数の拡張ルーチンに従って修正するステップは、前記オブジェクト名、前記オブジェクトタイプ、前記オブジェクトデータのうちの少なくとも１つを修正することを含む
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記初期オブジェクトの前記中間表現を、前記直列化エンジン内の１つまたは複数の標準ルーチンに従って修正するステップ
をさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１８】
前記初期オブジェクトの前記中間表現の修正は、前記タイプ情報内の特定パターンと、前記初期オブジェクト内のオブジェクトデータとのうちのどちらか、または両方に基づく
ことを特徴とする請求項１４に記載の方法。
【請求項１９】
前記初期オブジェクトと前記最終オブジェクトは両方ともメモリ内オブジェクトである
ことを特徴とする請求項１４に記載の方法。
【請求項２０】
様々なタイプのデータオブジェクトを直列化および非直列化する拡張可能な直列化エンジンを含むコンピューティングシステムのための、コンピュータ実行可能命令を格納したコンピュータ読み取り可能な記録媒体であって、前記コンピュータ実行可能命令は、初期タイプの初期オブジェクトを最終タイプの最終オブジェクトに変換する方法を実施し、前記方法は、前記直列化エンジンの１つまたは複数の他の既存ルーチンを置き換える必要なしに前記直列化エンジンの動作を１つまたは複数の拡張ルーチンによってランタイムに改変することを可能にし、前記方法は、
前記直列化エンジンによるランタイム処理のために受け取った初期タイプの初期オブジェクトに関するタイプ情報を識別するステップと、
前記タイプ情報に基づいて、前記初期オブジェクトを、ランタイム修正に適した前記初期オブジェクトの中間表現に変換するステップと、
前記初期オブジェクトの修正済み中間表現を生成するように前記初期オブジェクトの前記中間表現を１つまたは複数の拡張ルーチンに従って修正し、それにより前記直列化エンジンのランタイム動作を改変するステップと、
前記初期オブジェクトの前記修正済み中間表現を最終タイプの最終オブジェクトに変換するステップであって、前記最終オブジェクト及び前記初期オブジェクトの少なくとも１つはメモリ内オブジェクトであり、前記最終オブジェクトは、前記初期オブジェクトに基づいてインスタンス化およびポピュレートされることになるメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを非直列化して前記最終オブジェクトを生成し、前記初期オブジェクトはメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを直列化して前記最終オブジェクトを生成する、ステップと、
前記中間表現を前記最終オブジェクトに変換するまでは前記中間表現の修正を延期するステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記初期オブジェクトの前記中間表現は、オブジェクト名、オブジェクトタイプ、オブジェクトデータのうちの少なくとも１つを含む
ことを特徴とする請求項２０に記載のコンピュータ読み取り可能な記録媒体。
【請求項２２】
前記初期オブジェクトの前記中間表現を１つまたは複数の拡張ルーチンに従って修正するステップは、前記オブジェクト名、前記オブジェクトタイプ、前記オブジェクトデータのうちの少なくとも１つを修正することを含む
ことを特徴とする請求項２０に記載のコンピュータ読み取り可能な記録媒体。
【請求項２３】
前記方法は、前記初期オブジェクトの前記中間表現を１つまたは複数の標準ルーチンに従って修正するステップをさらに備える
ことを特徴とする請求項２０に記載のコンピュータ読み取り可能な記録媒体。
【請求項２４】
前記初期オブジェクトの前記中間表現の修正は、前記タイプ情報内の特定パターンと、前記初期オブジェクト内のオブジェクトデータとのうちのどちらか、または両方に基づく
ことを特徴とする請求項２０に記載のコンピュータ読み取り可能な記録媒体。
【請求項２５】
前記初期オブジェクトと前記最終オブジェクトは両方ともメモリ内オブジェクトである
ことを特徴とする請求項２０に記載のコンピュータ読み取り可能な記録媒体。
【請求項２６】
１つまたは複数の初期タイプである１つまたは複数の初期オブジェクトを、１つまたは複数の最終タイプである１つまたは複数の最終オブジェクトに変形するための拡張可能な直列化エンジンを実装するコンピュータシステムであって、前記直列化エンジンのランタイム動作は、前記直列化エンジンの既存部分を再実装する必要なしに改変することができ、前記コンピュータシステムは、コンピュータ実行可能命令をプログラムモジュールの形で格納したコンピュータ読み取り可能な記録媒体を含み、前記プログラムモジュールは、
前記直列化エンジンによるランタイム処理のために受け取った初期タイプの初期オブジェクトに関するタイプ情報を識別するためのランタイム置換可能な反映モジュールと、
識別されたタイプ情報に基づいて前記初期オブジェクトの中間表現を生成および修正するための１つまたは複数のランタイム置換可能な変換モジュールであって、前記直列化エンジンの前記ランタイム動作を改変する１つまたは複数の拡張ルーチンを含む１つまたは複数のランタイム置換可能な変換モジュールと、
前記変換モジュールによって生成された修正済み中間表現から最終タイプの最終オブジェクトを生み出すためのランタイム置換可能な生成モジュールであって、前記最終オブジェクト及び前記初期オブジェクトの少なくとも１つはメモリ内オブジェクトであり、前記最終オブジェクトは、前記初期オブジェクトに基づいてインスタンス化およびポピュレートされることになるメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを非直列化して前記最終オブジェクトを生成し、前記初期オブジェクトはメモリ内オブジェクトを含み、前記直列化エンジンは、前記初期オブジェクトを直列化して前記最終オブジェクトを生成する、生成モジュールとを備え、
前記１つまたは複数のランタイム置換可能な変換モジュールは、前記初期オブジェクトの前記中間表現に１つまたは複数の修正を加えることに関連するバッファ要件を回避するために、前記中間表現が前記最終オブジェクトに変換されるまでは、前記中間表現に対する前記１つまたは複数の修正を延期することができる
ことを特徴とするコンピュータシステム。
【請求項２７】
前記中間表現は、前記初期オブジェクトと前記初期オブジェクト内に含まれる任意のオブジェクトとに関するオブジェクト名、オブジェクトタイプ、オブジェクトデータを含む
ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２８】
前記１つまたは複数のランタイム置換可能な変換モジュールは、前記初期オブジェクトと前記初期オブジェクト内に含まれるオブジェクトとに関するオブジェクト名、オブジェクトタイプ、オブジェクトデータのうちの、少なくとも１つを変更することができる
ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２９】
前記１つまたは複数のランタイム置換可能な変換モジュールは、前記中間表現を修正することなく前記初期オブジェクトに関する情報を追跡することができる
ことを特徴とする請求項２８に記載のコンピュータシステム。
【請求項３０】
前記１つまたは複数のランタイム置換可能な変換モジュールは、前記中間表現を修正するための１つまたは複数の標準ルーチンを含む
ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３１】
前記１つまたは複数のランタイム置換可能な変換モジュールは、前記タイプ情報内の特定パターンと、前記初期オブジェクト内のオブジェクトデータとのうちのどちらか、または両方に基づいて前記初期オブジェクトの前記中間表現を修正することができる
ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３２】
前記ランタイム置換可能な生成モジュールは、前記最終オブジェクトをＸＭＬフォーマットで生み出すことができる
ことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３３】
前記ランタイム置換可能な生成モジュールは、前記中間表現に基づいて前記最終オブジェクトをインスタンス化およびポピュレートすることができる
ことを特徴とする請求項２６に記載のコンピュータシステム。