JPH08286916A - オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法 - Google Patents
オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法Info
- Publication number
- JPH08286916A JPH08286916A JP7317815A JP31781595A JPH08286916A JP H08286916 A JPH08286916 A JP H08286916A JP 7317815 A JP7317815 A JP 7317815A JP 31781595 A JP31781595 A JP 31781595A JP H08286916 A JPH08286916 A JP H08286916A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- software
- class
- interface
- coordinator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 オブジェクト指向クラスを用いて、手続きソ
フトウェアを改良するシステム及びプロセスを提供す
る。 【解決手段】 定義オブジェクト指向インタフェースを
アプリケーションに提供し、定義手続きアプリケーショ
ン・プログラム・インタフェース(API)を用いて手
続きソフトウェアを呼出せるインプリメンテーション・
クラスが構成される。インプリメンテーション・クラス
とインタフェースする、或いは直接手続きAPIとイン
タフェースするクラスを追加することにより新たな機能
がソフトウェアに追加される。新たな機能は、手続きソ
フトウェア・ソース・コードをアクセスすることなく、
或いはそのソース・コードを変更することなく手続きソ
フトウェア上に生成される。
フトウェアを改良するシステム及びプロセスを提供す
る。 【解決手段】 定義オブジェクト指向インタフェースを
アプリケーションに提供し、定義手続きアプリケーショ
ン・プログラム・インタフェース(API)を用いて手
続きソフトウェアを呼出せるインプリメンテーション・
クラスが構成される。インプリメンテーション・クラス
とインタフェースする、或いは直接手続きAPIとイン
タフェースするクラスを追加することにより新たな機能
がソフトウェアに追加される。新たな機能は、手続きソ
フトウェア・ソース・コードをアクセスすることなく、
或いはそのソース・コードを変更することなく手続きソ
フトウェア上に生成される。
Description
【0001】
【発明の属する技術分野】本発明はソフトウェアを機能
的に改良するために、コンピュータにより実現されるプ
ロセス及び装置に関し、特に、オブジェクト指向プログ
ラミング技法、並びに手続きプログラム・コードを改良
するオブジェクトの使用に関する。
的に改良するために、コンピュータにより実現されるプ
ロセス及び装置に関し、特に、オブジェクト指向プログ
ラミング技法、並びに手続きプログラム・コードを改良
するオブジェクトの使用に関する。
【0002】本願は米国特許出願番号第320357
号"A System and Method for Creating an Object Orie
nted Transaction Service that Interoperates with P
rocedural Transaction Coordinators"(1994年1
0月11日出願)に関連する。
号"A System and Method for Creating an Object Orie
nted Transaction Service that Interoperates with P
rocedural Transaction Coordinators"(1994年1
0月11日出願)に関連する。
【0003】
【従来の技術】従来、ソフトウェア機能の改良は、ソフ
トウェアが開発される上で困難な問題であった。オペレ
ーティング・システムまたはトランザクション処理シス
テムなどのシステム・ソフトウェアの改良は、アプリケ
ーション・ソフトウェアを改良するよりも、より一層困
難である。システム・ソフトウェアは通常、複雑であ
り、変更を通じて保護されなければならない多くの相関
関係を有する。
トウェアが開発される上で困難な問題であった。オペレ
ーティング・システムまたはトランザクション処理シス
テムなどのシステム・ソフトウェアの改良は、アプリケ
ーション・ソフトウェアを改良するよりも、より一層困
難である。システム・ソフトウェアは通常、複雑であ
り、変更を通じて保護されなければならない多くの相関
関係を有する。
【0004】オブジェクト指向プログラミング技法は、
システム・ソフトウェア及びアプリケーション・ソフト
ウェアにおいて、複雑化の問題に対処するために導入さ
れた。"オブジェクト"はアプリケーション及びそのアプ
リケーションにより使用されるデータの振舞い(メソッ
ド及びプロセス)をカプセル化する。システム内の各オ
ブジェクトは、データ及びプロセス・コードの両方を含
む。オブジェクト・データの処理はオブジェクト・メソ
ッドの呼出しによってのみ発生しうる。
システム・ソフトウェア及びアプリケーション・ソフト
ウェアにおいて、複雑化の問題に対処するために導入さ
れた。"オブジェクト"はアプリケーション及びそのアプ
リケーションにより使用されるデータの振舞い(メソッ
ド及びプロセス)をカプセル化する。システム内の各オ
ブジェクトは、データ及びプロセス・コードの両方を含
む。オブジェクト・データの処理はオブジェクト・メソ
ッドの呼出しによってのみ発生しうる。
【0005】オブジェクト指向プログラムは、既存のオ
ブジェクト上に新たなオブジェクトを追加し、機能を追
加または置換することにより、機能的に改良される。新
たなオブジェクトは既存の機能からメソッドを継承し、
継承されたメソッドを"オーバーライド"(override)す
ることにより、オブジェクトの機能を変更できる。
ブジェクト上に新たなオブジェクトを追加し、機能を追
加または置換することにより、機能的に改良される。新
たなオブジェクトは既存の機能からメソッドを継承し、
継承されたメソッドを"オーバーライド"(override)す
ることにより、オブジェクトの機能を変更できる。
【0006】
【発明が解決しようとする課題】大半の既存のオペレー
ティング・システム及びアプリケーション・システムを
構成する手続き言語(procedual language)は、容易に
は変更されない。従来、データ及びプロシージャはカプ
セル化されなかったので、全ての必要なコード・ロケー
ションを変更し、且つそうした変更がシステムの他のセ
クションに悪影響を及ぼさないように保証することはし
ばしば困難であった。
ティング・システム及びアプリケーション・システムを
構成する手続き言語(procedual language)は、容易に
は変更されない。従来、データ及びプロシージャはカプ
セル化されなかったので、全ての必要なコード・ロケー
ションを変更し、且つそうした変更がシステムの他のセ
クションに悪影響を及ぼさないように保証することはし
ばしば困難であった。
【0007】従って、解決されるべき技術的問題は、手
続きコードまたはそれを使用するアプリケーションを変
更することなく、手続きコードが機能的に改良されるよ
うに、オブジェクト指向プログラミング技法を手続きコ
ードに適用できるようにすることである。
続きコードまたはそれを使用するアプリケーションを変
更することなく、手続きコードが機能的に改良されるよ
うに、オブジェクト指向プログラミング技法を手続きコ
ードに適用できるようにすることである。
【0008】
【課題を解決するための手段】本発明は、手続きソフト
ウェア、特に手続きシステム・ソフトウェアの機能を改
良するために、オブジェクト指向プログラミング方法を
使用するシステム及び方法に関する。
ウェア、特に手続きシステム・ソフトウェアの機能を改
良するために、オブジェクト指向プログラミング方法を
使用するシステム及び方法に関する。
【0009】本発明はシステム・ソフトウェアを改良す
るシステムに関し、このシステムは、システム・ソフト
ウェアと対話するためのフォーマットを含み、システム
・ソフトウェアとインタフェースするインタフェース手
段と、インタフェース手段によりシステム・ソフトウェ
アに結合され、アプリケーション・プログラムに応答す
るオブジェクト手段と、オブジェクト手段及びインタフ
ェース手段に結合され、システム・ソフトウェアの改良
を追加する改良手段とを含む。
るシステムに関し、このシステムは、システム・ソフト
ウェアと対話するためのフォーマットを含み、システム
・ソフトウェアとインタフェースするインタフェース手
段と、インタフェース手段によりシステム・ソフトウェ
アに結合され、アプリケーション・プログラムに応答す
るオブジェクト手段と、オブジェクト手段及びインタフ
ェース手段に結合され、システム・ソフトウェアの改良
を追加する改良手段とを含む。
【0010】従って、本発明の目的は、手続きソフトウ
ェア・ソース・コードを直接アクセスまたは変更するこ
となく、ソフトウェアを機能的に改良するシステムを提
供することである。
ェア・ソース・コードを直接アクセスまたは変更するこ
となく、ソフトウェアを機能的に改良するシステムを提
供することである。
【0011】本発明の別の目的は、基礎的なフラット・
モデル手続きトランザクション・マネージャを変更する
ことなく、ネスト化トランザクションをサポートするよ
うに、トランザクション・マネージャを拡張するフレー
ムワーク(framework)を提供することである。
モデル手続きトランザクション・マネージャを変更する
ことなく、ネスト化トランザクションをサポートするよ
うに、トランザクション・マネージャを拡張するフレー
ムワーク(framework)を提供することである。
【0012】本発明の上述の目的、特徴及び利点が本発
明の好適な実施例に関する後述の説明から明らかとなろ
う。
明の好適な実施例に関する後述の説明から明らかとなろ
う。
【0013】
【発明の実施の形態】コンピュータ・ソフトウェアの開
発は、コンピュータ・ハードウェアの基本命令レベルで
動作するアクションから、はるかに高い抽象レベルにお
いて動作するアクションへと発展した。コンピュータ・
プログラミング言語はこれまでに機械語から、第1、第
2、第3及び第4世代の言語を経て発展してきた。しか
しながら、この発展を通じて効率的なソフトウェア保
守、すなわち誤りを修正し、機能を追加する処理を達成
する問題が残された。ほとんどのソフトウェア、特にオ
ペレーティング・システムやトランザクション処理シス
テムなどのシステム・ソフトウェアは保守アクションを
通じて保護されなければならない複雑な内部相関関係を
含む。保守を担うソフトウェアは結局論理と深く絡み合
い、高度な経験を積んだ開発者にとっても、こうした相
関関係を理解することは困難である。ソフトウェア保守
はまたソフトウェアの2進実行可能バージョンだけが配
布される市販のパッケージにおいて、しばしば阻止され
る。
発は、コンピュータ・ハードウェアの基本命令レベルで
動作するアクションから、はるかに高い抽象レベルにお
いて動作するアクションへと発展した。コンピュータ・
プログラミング言語はこれまでに機械語から、第1、第
2、第3及び第4世代の言語を経て発展してきた。しか
しながら、この発展を通じて効率的なソフトウェア保
守、すなわち誤りを修正し、機能を追加する処理を達成
する問題が残された。ほとんどのソフトウェア、特にオ
ペレーティング・システムやトランザクション処理シス
テムなどのシステム・ソフトウェアは保守アクションを
通じて保護されなければならない複雑な内部相関関係を
含む。保守を担うソフトウェアは結局論理と深く絡み合
い、高度な経験を積んだ開発者にとっても、こうした相
関関係を理解することは困難である。ソフトウェア保守
はまたソフトウェアの2進実行可能バージョンだけが配
布される市販のパッケージにおいて、しばしば阻止され
る。
【0014】オブジェクト指向プログラミング及びオブ
ジェクト指向システム設計は、ソフトウェア開発の複雑
性を解決するように発展してきた。ソフトウェア要素
(またはオブジェクト)間の相関関係は厳格に制御され
る。オブジェクト指向プログラミング・システムは機能
の明確な分離を通じて、オブジェクトの再利用を可能に
し、システム保守を単純化することによりプログラム開
発の効率を向上するように設計される。オブジェクト指
向システム内の各オブジェクトは、そのオブジェクトに
対応するデータと、そのデータをオペレートするための
プロシージャまたはメソッドとをカプセル化する。カプ
セル化とはオブジェクトに対応するデータがそのオブジ
ェクトによってのみ、定義メソッドを用いて処理されう
ることを意味する。オブジェクト指向システムはまた、
オブジェクト・インヘリタンスを実現する。インヘリタ
ンスは一般オブジェクトから、より特定のオブジェクト
が導出されることを可能にする。より特定のオブジェク
トは、親オブジェクトの全てのデータ及びメソッドを"
継承(inherit)"するが、その特定の機能を実行するた
めに選択されたデータ及びメソッドをオーバーライド
し、他を追加することができる。
ジェクト指向システム設計は、ソフトウェア開発の複雑
性を解決するように発展してきた。ソフトウェア要素
(またはオブジェクト)間の相関関係は厳格に制御され
る。オブジェクト指向プログラミング・システムは機能
の明確な分離を通じて、オブジェクトの再利用を可能に
し、システム保守を単純化することによりプログラム開
発の効率を向上するように設計される。オブジェクト指
向システム内の各オブジェクトは、そのオブジェクトに
対応するデータと、そのデータをオペレートするための
プロシージャまたはメソッドとをカプセル化する。カプ
セル化とはオブジェクトに対応するデータがそのオブジ
ェクトによってのみ、定義メソッドを用いて処理されう
ることを意味する。オブジェクト指向システムはまた、
オブジェクト・インヘリタンスを実現する。インヘリタ
ンスは一般オブジェクトから、より特定のオブジェクト
が導出されることを可能にする。より特定のオブジェク
トは、親オブジェクトの全てのデータ及びメソッドを"
継承(inherit)"するが、その特定の機能を実行するた
めに選択されたデータ及びメソッドをオーバーライド
し、他を追加することができる。
【0015】オブジェクト指向プログラムは従って、従
来の手続きプログラムよりも保守が容易になる。しかし
ながら、この技術的な改善は大記憶容量の既存の手続き
コードの保守問題を解決しない。このコード・ベース
(しばしば"遺産コード(legacy code)"と称される)
のオブジェクト技術への完全な移行には10年以上を要
するであろう。
来の手続きプログラムよりも保守が容易になる。しかし
ながら、この技術的な改善は大記憶容量の既存の手続き
コードの保守問題を解決しない。このコード・ベース
(しばしば"遺産コード(legacy code)"と称される)
のオブジェクト技術への完全な移行には10年以上を要
するであろう。
【0016】本発明は、遺産コードの保守、特にシステ
ム・ソフトウェア・コードの機能の改良問題に対して、
オブジェクト指向的解法を適用する新規設計を提供する
ことにより、手続きソフトウェアの保守問題を解決す
る。
ム・ソフトウェア・コードの機能の改良問題に対して、
オブジェクト指向的解法を適用する新規設計を提供する
ことにより、手続きソフトウェアの保守問題を解決す
る。
【0017】
【発明の実施の形態】図1は本発明によるソフトウェア
・システムを示す。既存のソフトウェア・アプリケーシ
ョン102は、定義されたアプリケーション・プログラ
ミング・インタフェース(API)106、108を通
じて、システム・ソフトウェア104をアクセスする。
システム・ソフトウェア・アプリケーション・プログラ
ミング・インタフェースは、ソフトウェアが提供する機
能を定義し、その機能を実行するために送信されなけれ
ばならない情報を指定する。本発明は、オブジェクト指
向インプリメンテーション・クラス110及びオブジェ
クト指向API112をシステムに追加する。インプリ
メンテーション・クラス110は、アプリケーションA
PI112を低レベル・ソフトウェアAPI106にマ
ップする。マッピングのクラス及びメソッドは、システ
ム・ソフトウェア機能をカプセル化する。最低レベルの
メソッドが手続きAPI106を呼出し、高レベル・ア
プリケーションAPI112により要求される機能を実
行する。
・システムを示す。既存のソフトウェア・アプリケーシ
ョン102は、定義されたアプリケーション・プログラ
ミング・インタフェース(API)106、108を通
じて、システム・ソフトウェア104をアクセスする。
システム・ソフトウェア・アプリケーション・プログラ
ミング・インタフェースは、ソフトウェアが提供する機
能を定義し、その機能を実行するために送信されなけれ
ばならない情報を指定する。本発明は、オブジェクト指
向インプリメンテーション・クラス110及びオブジェ
クト指向API112をシステムに追加する。インプリ
メンテーション・クラス110は、アプリケーションA
PI112を低レベル・ソフトウェアAPI106にマ
ップする。マッピングのクラス及びメソッドは、システ
ム・ソフトウェア機能をカプセル化する。最低レベルの
メソッドが手続きAPI106を呼出し、高レベル・ア
プリケーションAPI112により要求される機能を実
行する。
【0018】オブジェクト指向インタフェース及びオブ
ジェクト・クラスの導入は、オブジェクト指向技法を用
いて、アプリケーションAPI112を拡張する機会を
提供する。改良クラス(enhancement class)114が
システムに追加され、低レベル・システム・ソフトウェ
アAPI106を変更することなく、追加機能を提供す
る。インプリメンテーション・クラス110はシステム
・ソフトウェアAPI106にカプセル化された低レベ
ル・インタフェースを提供する。
ジェクト・クラスの導入は、オブジェクト指向技法を用
いて、アプリケーションAPI112を拡張する機会を
提供する。改良クラス(enhancement class)114が
システムに追加され、低レベル・システム・ソフトウェ
アAPI106を変更することなく、追加機能を提供す
る。インプリメンテーション・クラス110はシステム
・ソフトウェアAPI106にカプセル化された低レベ
ル・インタフェースを提供する。
【0019】改良クラス114は、既存のインプリメン
テーション・クラスの2進表現による走行時にそれらを
オーバーライドにするかまたはサブクラス化する追加の
インプリメンテーション・クラスの集合である。これら
の改良クラスは特定のトランザクションに対応する個別
の機能単位を表し、他のアプリケーションへの不当な影
響無しに、非改良システム・ソフトウェアにより特定の
アプリケーションをサポートするための容易な置換を可
能にする。これは次のように達成される。
テーション・クラスの2進表現による走行時にそれらを
オーバーライドにするかまたはサブクラス化する追加の
インプリメンテーション・クラスの集合である。これら
の改良クラスは特定のトランザクションに対応する個別
の機能単位を表し、他のアプリケーションへの不当な影
響無しに、非改良システム・ソフトウェアにより特定の
アプリケーションをサポートするための容易な置換を可
能にする。これは次のように達成される。
【0020】アクションまたはトランザクションのセッ
トに対応してではなく、特定のアクションまたはトラン
ザクションに対応して、オブジェクトが生成されるよう
にクラス定義が生成される。すなわち1アクション当た
りまたは1トランザクション当たり、特定の振舞いが導
入される。
トに対応してではなく、特定のアクションまたはトラン
ザクションに対応して、オブジェクトが生成されるよう
にクラス定義が生成される。すなわち1アクション当た
りまたは1トランザクション当たり、特定の振舞いが導
入される。
【0021】機能が非常に低いレベルに分解される。こ
れは置換え(substitution)により置換されなければな
らない細分化機能に対して、最大の柔軟性を提供する一
方で、インヘリタンスを通じて残りの機能を保護する。
れは置換え(substitution)により置換されなければな
らない細分化機能に対して、最大の柔軟性を提供する一
方で、インヘリタンスを通じて残りの機能を保護する。
【0022】本発明は細かなグレイン・オブジェクト
(grain object)の生成を可能にし、これらは本発明が
使用されない場合に比較して他のアプリケーションによ
り、より効率的に再利用されうる。
(grain object)の生成を可能にし、これらは本発明が
使用されない場合に比較して他のアプリケーションによ
り、より効率的に再利用されうる。
【0023】上述の一般的な解法が、手続きトランザク
ション・マネージャの機能を拡張する例を通じて以降で
詳述される。この例は、ネスト化トランザクションを処
理する能力がフラット・トランザクションだけをサポー
トするために指定されるトランザクション・マネージャ
に追加される方法を示す。
ション・マネージャの機能を拡張する例を通じて以降で
詳述される。この例は、ネスト化トランザクションを処
理する能力がフラット・トランザクションだけをサポー
トするために指定されるトランザクション・マネージャ
に追加される方法を示す。
【0024】オブジェクト指向技法のトランザクション
処理システムへの適用は多くの新たな問題を生じるが、
オブジェクト指向原理の使用によるシステム効率の向上
の機会を提供する。Object Management Group、Inc.
(OMG社)は、相互にオペレート可能なオブジェクト
指向システムの規格を確立した。OMG社により定義さ
れる全体アーキテクチャは、Common Object Request Br
oker Architecture(CORBA)である。CORBA
はオブジェクト間、特に異なるコンピュータ・システム
における分散オブジェクト間の対話を定義する。OMG
社はオブジェクト指向システムにおいてトランザクショ
ン処理を標準化するための仕様を承諾した。この仕様
は"オブジェクト・トランザクション・サービス(OT
S)仕様"と称され、トランザクション処理システムを
実現するために必要なオブジェクト・サービスに対する
要求を記述する。OTS仕様はオブジェクト指向システ
ムの多くの特定の能力を使用する。
処理システムへの適用は多くの新たな問題を生じるが、
オブジェクト指向原理の使用によるシステム効率の向上
の機会を提供する。Object Management Group、Inc.
(OMG社)は、相互にオペレート可能なオブジェクト
指向システムの規格を確立した。OMG社により定義さ
れる全体アーキテクチャは、Common Object Request Br
oker Architecture(CORBA)である。CORBA
はオブジェクト間、特に異なるコンピュータ・システム
における分散オブジェクト間の対話を定義する。OMG
社はオブジェクト指向システムにおいてトランザクショ
ン処理を標準化するための仕様を承諾した。この仕様
は"オブジェクト・トランザクション・サービス(OT
S)仕様"と称され、トランザクション処理システムを
実現するために必要なオブジェクト・サービスに対する
要求を記述する。OTS仕様はオブジェクト指向システ
ムの多くの特定の能力を使用する。
【0025】OMG社により定義されるオブジェクト・
トランザクション・サービス・モデル(以降OTSモデ
ル)が、図2に示される。分散クライアント・サーバ
(C/S)アプリケーションが120で示される。アプ
リケーション120は多数のオブジェクトを含み、これ
らはトランザクションにより要求されるアクションを実
行するためにメッセージを交換する。アプリケーション
内に存在するオブジェクトは、1つ以上のトランザクシ
ョン・クライアント122を含み、これらはトランザク
ション・オブジェクトのオペレーションを呼出す。トラ
ンザクションを開始するオブジェクトはトランザクショ
ン・オリジネータであり、オリジネータはトランザクシ
ョンの開始及び終了時にメッセージ138をトランザク
ション・サービスに送信する。トランザクション・オブ
ジェクトはその振舞いがトランザクション範囲内で呼出
されることにより影響を受けるオブジェクトである。ト
ランザクション・オブジェクトは通常、トランザクショ
ン要求により変更されうる存続データを含んだり、さし
たりする。存続データとはシステム再始動を経ても存続
するデータをさす。存続データは通常、ディスク記憶装
置、不揮発性メモリまたは類似の装置上に存在する。
トランザクション・サービス・モデル(以降OTSモデ
ル)が、図2に示される。分散クライアント・サーバ
(C/S)アプリケーションが120で示される。アプ
リケーション120は多数のオブジェクトを含み、これ
らはトランザクションにより要求されるアクションを実
行するためにメッセージを交換する。アプリケーション
内に存在するオブジェクトは、1つ以上のトランザクシ
ョン・クライアント122を含み、これらはトランザク
ション・オブジェクトのオペレーションを呼出す。トラ
ンザクションを開始するオブジェクトはトランザクショ
ン・オリジネータであり、オリジネータはトランザクシ
ョンの開始及び終了時にメッセージ138をトランザク
ション・サービスに送信する。トランザクション・オブ
ジェクトはその振舞いがトランザクション範囲内で呼出
されることにより影響を受けるオブジェクトである。ト
ランザクション・オブジェクトは通常、トランザクショ
ン要求により変更されうる存続データを含んだり、さし
たりする。存続データとはシステム再始動を経ても存続
するデータをさす。存続データは通常、ディスク記憶装
置、不揮発性メモリまたは類似の装置上に存在する。
【0026】トランザクション・オブジェクトは、トラ
ンザクション・サーバ124と回復可能サーバ126の
2つのタイプのアプリケーション・サーバを実現するた
めに使用される。回復可能サーバ126はトランザクシ
ョン・サーバに応答するために、またトランザクション
内の全ての参加者が結果に同意して、すなわちトランザ
クションをコミットするか、トランザクションをロール
バックするかに同意して、失敗から回復できるように保
証するために必要なプロトコルを実現する。回復可能オ
ブジェクトはトランザクション・オブジェクトである
が、全てのトランザクション・オブジェクトが回復可能
な訳ではない。回復不能なトランザクション・オブジェ
クトは特定の他の回復可能オブジェクトを用いて、それ
らの状態を実現する。
ンザクション・サーバ124と回復可能サーバ126の
2つのタイプのアプリケーション・サーバを実現するた
めに使用される。回復可能サーバ126はトランザクシ
ョン・サーバに応答するために、またトランザクション
内の全ての参加者が結果に同意して、すなわちトランザ
クションをコミットするか、トランザクションをロール
バックするかに同意して、失敗から回復できるように保
証するために必要なプロトコルを実現する。回復可能オ
ブジェクトはトランザクション・オブジェクトである
が、全てのトランザクション・オブジェクトが回復可能
な訳ではない。回復不能なトランザクション・オブジェ
クトは特定の他の回復可能オブジェクトを用いて、それ
らの状態を実現する。
【0027】回復可能オブジェクトは、トランザクショ
ン・サービス130プロトコルに参加しなければならな
い。トランザクション・サービス130は、各トランザ
クションの範囲をトランザクション・コンテキスト13
2として定義する、特定のデータを保守する。トランザ
クション・コンテキスト132は、各ORB認識スレッ
ド(ORB-aware thread)に関連付けられる(オブジェク
ト・リクエスト・ブローカ(ORB:Object Request B
roker)特性は、OMG社のCORBAアーキテクチャ
により定義される)。トランザクション・コンテキスト
132はクライアント・アプリケーションから生成され
る各要求を提示され、要求が処理される動作環境特性を
定義するために使用される。トランザクション・コンテ
キスト132の内容は、トランザクション・コーディネ
ータの参照、ネスト化トランザクションのアンセスタ
(ancestor)参照、トランザクション・コーディネータ
の大域的に特定のトランザクションID、及び従属トラ
ンザクション・コーディネータにより理解されるインプ
リメンテーション特有のデータを含みうる。
ン・サービス130プロトコルに参加しなければならな
い。トランザクション・サービス130は、各トランザ
クションの範囲をトランザクション・コンテキスト13
2として定義する、特定のデータを保守する。トランザ
クション・コンテキスト132は、各ORB認識スレッ
ド(ORB-aware thread)に関連付けられる(オブジェク
ト・リクエスト・ブローカ(ORB:Object Request B
roker)特性は、OMG社のCORBAアーキテクチャ
により定義される)。トランザクション・コンテキスト
132はクライアント・アプリケーションから生成され
る各要求を提示され、要求が処理される動作環境特性を
定義するために使用される。トランザクション・コンテ
キスト132の内容は、トランザクション・コーディネ
ータの参照、ネスト化トランザクションのアンセスタ
(ancestor)参照、トランザクション・コーディネータ
の大域的に特定のトランザクションID、及び従属トラ
ンザクション・コーディネータにより理解されるインプ
リメンテーション特有のデータを含みうる。
【0028】回復可能オブジェクトは、リソース128
をトランザクション・サービスに登録することにより、
トランザクション・サービス130に参加する。トラン
ザクション・サービス130は、トランザクションに対
応して登録されたリソース同士を接触させることによ
り、コミット・プロトコル(ツー・フェーズ・コミット
(the two phase commit))をドライブする。
をトランザクション・サービスに登録することにより、
トランザクション・サービス130に参加する。トラン
ザクション・サービス130は、トランザクションに対
応して登録されたリソース同士を接触させることによ
り、コミット・プロトコル(ツー・フェーズ・コミット
(the two phase commit))をドライブする。
【0029】トランザクション・サーバ124は、その
振舞いがトランザクションにより影響を受けるが、それ
ら自身の回復可能状態を有さない1つ以上のオブジェク
トの集合である。トランザクション・サーバは他の回復
可能オブジェクトを用いて、トランザクション変更を実
施する。トランザクション・サーバはトランザクション
の完了に参加しないが、ロールバック・メッセージ14
0を送信することにより、トランザクションがロールバ
ックされるように強要することができる。
振舞いがトランザクションにより影響を受けるが、それ
ら自身の回復可能状態を有さない1つ以上のオブジェク
トの集合である。トランザクション・サーバは他の回復
可能オブジェクトを用いて、トランザクション変更を実
施する。トランザクション・サーバはトランザクション
の完了に参加しないが、ロールバック・メッセージ14
0を送信することにより、トランザクションがロールバ
ックされるように強要することができる。
【0030】回復可能サーバ126は、少なくとも1つ
の回復可能なオブジェクトを含む集合である。回復可能
サーバは登録メッセージ142を用いて、1つ以上のリ
ソース・オブジェクト128をトランザクション・サー
ビスに登録することにより、プロトコルに参加する。ト
ランザクション・サービスは要求144をトランザクシ
ョンに対応して登録されたリソースに発行することによ
り、コミット・プロトコルをドライブする。
の回復可能なオブジェクトを含む集合である。回復可能
サーバは登録メッセージ142を用いて、1つ以上のリ
ソース・オブジェクト128をトランザクション・サー
ビスに登録することにより、プロトコルに参加する。ト
ランザクション・サービスは要求144をトランザクシ
ョンに対応して登録されたリソースに発行することによ
り、コミット・プロトコルをドライブする。
【0031】本発明による分散処理システムの例が一般
に図3に示される。複数のコンピュータ・システムが通
信ネットワークにより相互接続される。例えばシステム
212及び204はネットワーク210により接続され
る。システム204、202及び206はネットワーク
208により接続され、システム206、216、21
8、220及び222はネットワーク214により接続
され、システム222、226及び228はネットワー
ク224により接続される。ネットワークは任意の既知
のローカル・エリア・ネットワーク(LAN)または広
域ネットワーク(WAN)であり、これらにはトークン
・リング、イーサネットまたは他のネットワークが含ま
れる。"ネットワーク"はまた単一コンピュータ・システ
ム内の複数のプロセッサ間の通信バスであってもよい。
に図3に示される。複数のコンピュータ・システムが通
信ネットワークにより相互接続される。例えばシステム
212及び204はネットワーク210により接続され
る。システム204、202及び206はネットワーク
208により接続され、システム206、216、21
8、220及び222はネットワーク214により接続
され、システム222、226及び228はネットワー
ク224により接続される。ネットワークは任意の既知
のローカル・エリア・ネットワーク(LAN)または広
域ネットワーク(WAN)であり、これらにはトークン
・リング、イーサネットまたは他のネットワークが含ま
れる。"ネットワーク"はまた単一コンピュータ・システ
ム内の複数のプロセッサ間の通信バスであってもよい。
【0032】典型的なコンピュータ・システムが図4に
示される。各システム250は1つ以上の中央処理ユニ
ット252、揮発性メモリ254及び入出力制御装置2
56を含む。入出力制御装置256は、磁気または光デ
ィスク記憶装置262や取外し可能記憶装置258、2
60への書込み、及び表示装置268、キーボード26
6及びポインティング・デバイス264を管理する。シ
ステム通信制御装置270は通信リンク272を介する
ネットワークとの通信を管理する。この構成は典型例と
して提供されるだけであり、何らかの制限を意図するも
のではない。本発明が実現されるシステムのタイプに
は、IBM PS/2コンピュータまたはIBM RISC Sys
tem/6000ワークステーションなどの市販のコンピュータ
・システムが含まれる(PS/2及びRISC System/6000
はIBM社の商標である)。上述のように、分散環境の
システムは全て単一の通信バスを介してリンクされ、メ
モリ及びディスク記憶装置を共用する。
示される。各システム250は1つ以上の中央処理ユニ
ット252、揮発性メモリ254及び入出力制御装置2
56を含む。入出力制御装置256は、磁気または光デ
ィスク記憶装置262や取外し可能記憶装置258、2
60への書込み、及び表示装置268、キーボード26
6及びポインティング・デバイス264を管理する。シ
ステム通信制御装置270は通信リンク272を介する
ネットワークとの通信を管理する。この構成は典型例と
して提供されるだけであり、何らかの制限を意図するも
のではない。本発明が実現されるシステムのタイプに
は、IBM PS/2コンピュータまたはIBM RISC Sys
tem/6000ワークステーションなどの市販のコンピュータ
・システムが含まれる(PS/2及びRISC System/6000
はIBM社の商標である)。上述のように、分散環境の
システムは全て単一の通信バスを介してリンクされ、メ
モリ及びディスク記憶装置を共用する。
【0033】コンピュータ・システム250は、OS/
2オペレーティング・システムまたはAIXオペレーテ
ィング・システムなどのオペレーティング・システムに
より制御される(OS/2及びAIXはIBM社の商標
である)。ネットワーク通信は、Novell Netwareオペレ
ーティング・システムまたはIBM LAN Serverオペレーテ
ィング・システムなどの、ネットワーク・オペレーティ
ング・システムにより管理される(NetwareはNovell社
の商標である)。
2オペレーティング・システムまたはAIXオペレーテ
ィング・システムなどのオペレーティング・システムに
より制御される(OS/2及びAIXはIBM社の商標
である)。ネットワーク通信は、Novell Netwareオペレ
ーティング・システムまたはIBM LAN Serverオペレーテ
ィング・システムなどの、ネットワーク・オペレーティ
ング・システムにより管理される(NetwareはNovell社
の商標である)。
【0034】本発明は上述のようなコンピュータ・シス
テムを制御するためのコンピュータ・メモリ内のプログ
ラムまたは好適なハードウェアを用いて実現される。
テムを制御するためのコンピュータ・メモリ内のプログ
ラムまたは好適なハードウェアを用いて実現される。
【0035】オブジェクト指向アプリケーション120
は、OMG OTSモデルにより定義されるオブジェク
ト及びクラスを用いて、トランザクション・オペレーシ
ョンを実行する。これらのクラスはオブジェクト指向イ
ンタフェースまたはAPIをOMG OTSに提供す
る。
は、OMG OTSモデルにより定義されるオブジェク
ト及びクラスを用いて、トランザクション・オペレーシ
ョンを実行する。これらのクラスはオブジェクト指向イ
ンタフェースまたはAPIをOMG OTSに提供す
る。
【0036】オブジェクト指向OTSが手続きトランザ
クション・マネージャと一緒にオペレートするようにす
る"インプリメンテーション・オブジェクト"を定義する
インプリメンテーション・クラスの設計は、相互オペレ
ーションを阻止しうる衝突及び非一貫性を回避するよう
に注意深く実施されねばならない。手続きトランザクシ
ョン・マネージャの機能を拡張するために使用されるイ
ンプリメンテーション・クラスの特定の面を述べる前
に、インプリメンテーション・クラスと他のトランザク
ション・サービスとの関係について、一般的に述べなけ
ればならない。この関係は上記米国特許出願番号第32
0357号で詳細に述べられている。インプリメンテー
ション・クラスと手続きトランザクション・サービス及
びOMGOTSクラスとの関係が図6に示される。オブ
ジェクト指向アプリケーション120は、上述のように
オブジェクト指向API350を通じて、OMG OT
Sをアクセスする。APIは実際にOTSに対応してO
MG社により指定されるAPIであり、OMG定義クラ
ス352により提供され実現される。本発明のインプリ
メンテーション・クラス354はOMGクラス352と
手続きトランザクション・サービス358とを橋渡しす
る。インプリメンテーション・クラス354はOMGク
ラス352により使用されるオブジェクト指向インタフ
ェース356を定義する。インプリメンテーション・ク
ラス354はトランザクション・マネージャ手続きAP
I360の選択セットを通じて、手続きトランザクショ
ン・サービス358と通信する。この新規のインプリメ
ンテーションは標準のOMGインタフェース及びOMG
クラス・インプリメンテーションを保護する。インプリ
メンテーション・クラス354はオブジェクト/手続き
トランザクション・マネージャ間インタフェースをカプ
セル化する。
クション・マネージャと一緒にオペレートするようにす
る"インプリメンテーション・オブジェクト"を定義する
インプリメンテーション・クラスの設計は、相互オペレ
ーションを阻止しうる衝突及び非一貫性を回避するよう
に注意深く実施されねばならない。手続きトランザクシ
ョン・マネージャの機能を拡張するために使用されるイ
ンプリメンテーション・クラスの特定の面を述べる前
に、インプリメンテーション・クラスと他のトランザク
ション・サービスとの関係について、一般的に述べなけ
ればならない。この関係は上記米国特許出願番号第32
0357号で詳細に述べられている。インプリメンテー
ション・クラスと手続きトランザクション・サービス及
びOMGOTSクラスとの関係が図6に示される。オブ
ジェクト指向アプリケーション120は、上述のように
オブジェクト指向API350を通じて、OMG OT
Sをアクセスする。APIは実際にOTSに対応してO
MG社により指定されるAPIであり、OMG定義クラ
ス352により提供され実現される。本発明のインプリ
メンテーション・クラス354はOMGクラス352と
手続きトランザクション・サービス358とを橋渡しす
る。インプリメンテーション・クラス354はOMGク
ラス352により使用されるオブジェクト指向インタフ
ェース356を定義する。インプリメンテーション・ク
ラス354はトランザクション・マネージャ手続きAP
I360の選択セットを通じて、手続きトランザクショ
ン・サービス358と通信する。この新規のインプリメ
ンテーションは標準のOMGインタフェース及びOMG
クラス・インプリメンテーションを保護する。インプリ
メンテーション・クラス354はオブジェクト/手続き
トランザクション・マネージャ間インタフェースをカプ
セル化する。
【0037】オブジェクト指向ソフトウェア・システム
内のオブジェクトはオブジェクト・メソッドにより、オ
ブジェクト・データに対してオペレーションを実行す
る。オペレーションはメソッドのパフォーマンスを要求
するメッセージを選択オブジェクトに送信することによ
り要求される。例えばOMG OTSは、BEGIN()メッ
セージをカレント・オブジェクトに送信することにより
新たなトランザクションが開始されるように指定する
(これはより短い形式CURRENT::BEGIN()で表現され
る)。任意の要求パラメータが括弧内に提供されなけれ
ばならない。このメッセージによりオブジェクト'CURRE
NT'の'BEGIN'メソッドが呼出される。オブジェクト及び
メソッドのセットがオブジェクト指向インタフェースま
たはAPIを定義する。
内のオブジェクトはオブジェクト・メソッドにより、オ
ブジェクト・データに対してオペレーションを実行す
る。オペレーションはメソッドのパフォーマンスを要求
するメッセージを選択オブジェクトに送信することによ
り要求される。例えばOMG OTSは、BEGIN()メッ
セージをカレント・オブジェクトに送信することにより
新たなトランザクションが開始されるように指定する
(これはより短い形式CURRENT::BEGIN()で表現され
る)。任意の要求パラメータが括弧内に提供されなけれ
ばならない。このメッセージによりオブジェクト'CURRE
NT'の'BEGIN'メソッドが呼出される。オブジェクト及び
メソッドのセットがオブジェクト指向インタフェースま
たはAPIを定義する。
【0038】オブジェクト・メソッドは他のオブジェク
ト・メソッドを呼出したり、実質的には手続きコードで
ある機能コードを用いて機能を実行することができる。
オブジェクト指向システムにおける制御フローが図7に
示される。メッセージ402がアプリケーション・プロ
グラムにより送信される。オブジェクト指向システムは
既知のオブジェクト指向システム技法により、メソッド
の選択のために適切なオブジェクトにメッセージを経路
指定する(404)。要求メソッドが選択され(40
6)、実行される(408)。本発明は、オブジェクト
・メソッドに必要な手続きトランザクション文を含む。
手続き文が手続きAPIを呼出し(410)、必要なト
ランザクション処理を要求する。手続き呼出しから返却
される結果はオブジェクトのデータを更新するために使
用されたり(412)、別のオブジェクトへのメッセー
ジに含まれ(414)、データの変更または結果にもと
づく他のアクションを要求したりする。この新たなメッ
セージは、メッセージ・ルーティング・プロセス404
により経路指定される。
ト・メソッドを呼出したり、実質的には手続きコードで
ある機能コードを用いて機能を実行することができる。
オブジェクト指向システムにおける制御フローが図7に
示される。メッセージ402がアプリケーション・プロ
グラムにより送信される。オブジェクト指向システムは
既知のオブジェクト指向システム技法により、メソッド
の選択のために適切なオブジェクトにメッセージを経路
指定する(404)。要求メソッドが選択され(40
6)、実行される(408)。本発明は、オブジェクト
・メソッドに必要な手続きトランザクション文を含む。
手続き文が手続きAPIを呼出し(410)、必要なト
ランザクション処理を要求する。手続き呼出しから返却
される結果はオブジェクトのデータを更新するために使
用されたり(412)、別のオブジェクトへのメッセー
ジに含まれ(414)、データの変更または結果にもと
づく他のアクションを要求したりする。この新たなメッ
セージは、メッセージ・ルーティング・プロセス404
により経路指定される。
【0039】本発明のシステム及び方法の応用例は、フ
ラット・トランザクションだけをサポートするトランザ
クション・マネージャにもとづく、システムへのネスト
化トランザクション処理の追加である。フラット・トラ
ンザクション・モデルでは各トランザクションが他のト
ランザクションと独立である。フラット・トランザクシ
ョンが1単位として開始され完了される。ネスト化トラ
ンザクション・モデルはトランザクションの階層を提供
する。最高レベルのルート・トランザクションは多く
の"子"トランザクションを有しうる。各子トランザクシ
ョンは単一の原子単位として処理される。しかしながら
ルート・トランザクション下の全ての子により成された
変更は、全ての子及びルートが成功裡に処理を完了する
までコミットされない。
ラット・トランザクションだけをサポートするトランザ
クション・マネージャにもとづく、システムへのネスト
化トランザクション処理の追加である。フラット・トラ
ンザクション・モデルでは各トランザクションが他のト
ランザクションと独立である。フラット・トランザクシ
ョンが1単位として開始され完了される。ネスト化トラ
ンザクション・モデルはトランザクションの階層を提供
する。最高レベルのルート・トランザクションは多く
の"子"トランザクションを有しうる。各子トランザクシ
ョンは単一の原子単位として処理される。しかしながら
ルート・トランザクション下の全ての子により成された
変更は、全ての子及びルートが成功裡に処理を完了する
までコミットされない。
【0040】ネスト化トランザクション・システムは従
って、トランザクションの階層をモニタし、ルート・ト
ランザクションをコミットする以前に子トランザクショ
ンの完了をテストする能力を有する。更に各子トランザ
クションは、自身の子の処理の完了をチェックしなけれ
ばならない。
って、トランザクションの階層をモニタし、ルート・ト
ランザクションをコミットする以前に子トランザクショ
ンの完了をテストする能力を有する。更に各子トランザ
クションは、自身の子の処理の完了をチェックしなけれ
ばならない。
【0041】フラット・トランザクション・モデルのト
ランザクション・マネージャが、ネスト化トランザクシ
ョンを処理できるようにする改良が一般に図5に示され
る。アプリケーション302は手続きAPI304によ
り、API304を介して手続きシステム・ソフトウェ
ア306を呼出す。アプリケーションまたは新たなアプ
リケーションはOMG API314を使用することが
でき、OMG API314はインプリメンテーション
・クラス312を介して手続きトランザクション・マネ
ージャをAPI304を通じて呼出す。インプリメンテ
ーション・クラスは、OMG APIを用いるメソッド
呼出しを手続きトランザクション・マネージャへの必要
な手続き呼出しに変換する論理を提供する。こうした手
続きトランザクション・マネージャの例に、Transarc E
ncina製品からのTRANトランザクション・マネージ
ャがある。OMG APIはネスト化トランザクション
のためのインタフェース定義を提供するがインプリメン
テーション論理は提供しない。上述のTRANなどの数
少ないトランザクション・マネージャがネスト化トラン
ザクションをサポートする。TRANを使用すればネス
ト化トランザクション機能のオブジェクト呼出しを手続
き呼出しに変換するためのインプリメンテーション・ク
ラスの正規のセットを開発することができる。しかしな
がら、異なる手続きトランザクション・マネージャが使
用される場合には、このアプローチは有効でない。
ランザクション・マネージャが、ネスト化トランザクシ
ョンを処理できるようにする改良が一般に図5に示され
る。アプリケーション302は手続きAPI304によ
り、API304を介して手続きシステム・ソフトウェ
ア306を呼出す。アプリケーションまたは新たなアプ
リケーションはOMG API314を使用することが
でき、OMG API314はインプリメンテーション
・クラス312を介して手続きトランザクション・マネ
ージャをAPI304を通じて呼出す。インプリメンテ
ーション・クラスは、OMG APIを用いるメソッド
呼出しを手続きトランザクション・マネージャへの必要
な手続き呼出しに変換する論理を提供する。こうした手
続きトランザクション・マネージャの例に、Transarc E
ncina製品からのTRANトランザクション・マネージ
ャがある。OMG APIはネスト化トランザクション
のためのインタフェース定義を提供するがインプリメン
テーション論理は提供しない。上述のTRANなどの数
少ないトランザクション・マネージャがネスト化トラン
ザクションをサポートする。TRANを使用すればネス
ト化トランザクション機能のオブジェクト呼出しを手続
き呼出しに変換するためのインプリメンテーション・ク
ラスの正規のセットを開発することができる。しかしな
がら、異なる手続きトランザクション・マネージャが使
用される場合には、このアプローチは有効でない。
【0042】本発明は、システム・ソフトウェアに改良
クラス316の形式により機能を追加するための新規シ
ステム及びプロセスを提供する。ネスト化トランザクシ
ョン処理機能が、改良クラス316の形式により追加さ
れる。これらのクラスは基礎となるトランザクション・
マネージャがネスト化トランザクションをサポートしな
いときに、これをサポートする論理を含む。改良クラス
は本発明が無い場合に較べて、他のアプリケーションに
より効果的に再利用されうる細分化されたオブジェクト
を追加する能力を提供する。
クラス316の形式により機能を追加するための新規シ
ステム及びプロセスを提供する。ネスト化トランザクシ
ョン処理機能が、改良クラス316の形式により追加さ
れる。これらのクラスは基礎となるトランザクション・
マネージャがネスト化トランザクションをサポートしな
いときに、これをサポートする論理を含む。改良クラス
は本発明が無い場合に較べて、他のアプリケーションに
より効果的に再利用されうる細分化されたオブジェクト
を追加する能力を提供する。
【0043】OMG OTS仕様は次のインタフェース
を定義する。それらはカレント(Current)、ファクト
リ(Factory)、制御(Control)、ターミネータ(Term
inator)、コーディネータ(Coordinator)、回復コー
ディネータ(RecoveryCoordinator)、リソース(Resou
rce)、サブトランザクション・アウェア・リソース(S
ubtransactionAwareResource)、及びトランザクション
・オブジェクト(TransactionalObject)である。トラ
ンザクションを発信するアプリケーション("トランザ
クション・オリジネータ")は、カレントまたはファク
トリ・インタフェースを用いてトランザクションを開始
する。この時トランザクションは制御オブジェクト(Co
ntrol object)を提供する。制御オブジェクトは個々の
トランザクションに特有の情報を含み、コーディネータ
及びターミネータへのアクセスを提供する。コーディネ
ータはトランザクションに対応してアクセスされるリソ
ースにとって使用可能となり、またトランザクションに
対応するツー・フェーズ・コミット処理を管理する。タ
ーミネータはトランザクションに対応して取られるアク
ションをコミット(変更を永久的なものにする)または
ロールバック(以前の状態に戻す)するために、トラン
ザクション・オリジネータにより使用される。
を定義する。それらはカレント(Current)、ファクト
リ(Factory)、制御(Control)、ターミネータ(Term
inator)、コーディネータ(Coordinator)、回復コー
ディネータ(RecoveryCoordinator)、リソース(Resou
rce)、サブトランザクション・アウェア・リソース(S
ubtransactionAwareResource)、及びトランザクション
・オブジェクト(TransactionalObject)である。トラ
ンザクションを発信するアプリケーション("トランザ
クション・オリジネータ")は、カレントまたはファク
トリ・インタフェースを用いてトランザクションを開始
する。この時トランザクションは制御オブジェクト(Co
ntrol object)を提供する。制御オブジェクトは個々の
トランザクションに特有の情報を含み、コーディネータ
及びターミネータへのアクセスを提供する。コーディネ
ータはトランザクションに対応してアクセスされるリソ
ースにとって使用可能となり、またトランザクションに
対応するツー・フェーズ・コミット処理を管理する。タ
ーミネータはトランザクションに対応して取られるアク
ションをコミット(変更を永久的なものにする)または
ロールバック(以前の状態に戻す)するために、トラン
ザクション・オリジネータにより使用される。
【0044】OTS設計は、通常のトランザクション・
オリジネータがカレント・インタフェースを用いてトラ
ンザクションを開始し、次に一連のトランザクション要
求を発行することを想定する。幾つかのトランザクショ
ン要求はトランザクション・オブジェクトを含む。トラ
ンザクション・オブジェクトがトランザクションの1部
として管理されなければならない存続データを有する場
合、コーディネータがリソースを登録するために使用さ
れる。リソースはオブジェクトのトランザクションへの
参加を表す。コーディネータはリソースを用いてツー・
フェーズ・コミット・プロトコルを実行する。プロトコ
ルはトランザクション・オリジネータがカレント・イン
タフェースを通じて、コミットまたはロールバック・オ
ペレーションを発行することにより開始される。
オリジネータがカレント・インタフェースを用いてトラ
ンザクションを開始し、次に一連のトランザクション要
求を発行することを想定する。幾つかのトランザクショ
ン要求はトランザクション・オブジェクトを含む。トラ
ンザクション・オブジェクトがトランザクションの1部
として管理されなければならない存続データを有する場
合、コーディネータがリソースを登録するために使用さ
れる。リソースはオブジェクトのトランザクションへの
参加を表す。コーディネータはリソースを用いてツー・
フェーズ・コミット・プロトコルを実行する。プロトコ
ルはトランザクション・オリジネータがカレント・イン
タフェースを通じて、コミットまたはロールバック・オ
ペレーションを発行することにより開始される。
【0045】好適な実施例は、インプリメンテーション
・クラスを通じてOMG OTSを実現する。インプリ
メンテーション・クラスは、OMGインタフェースを通
じて定義される機能を既存のシステム上で走行する既存
の手続きトランザクション・コーディネータにリンクす
る。これらのクラスはOMGベースのクラスと、システ
ム上で走行する実際の手続きコードとの間の置換可能な
ブリッジを提供する。インプリメンテーション・クラス
・メソッドは既存のトランザクション・コーディネータ
から入手可能な手続きインタフェースを呼出すために必
要なコードを含む。更に幾つかの主要な手続きトランザ
クション機能が横取りされ、それらからのデータがイン
プリメンテーション・クラスに提供されなければならな
い。これは主にトランザクションに関連するリソースを
追跡する領域において実行される。登録リソース(Regi
steredResources)は、トランザクション完了または回
復の間に生成(Prepare)、コミット、またはロールバ
ックを指示するメッセージを送信した出所を判断するた
めの基本となる。
・クラスを通じてOMG OTSを実現する。インプリ
メンテーション・クラスは、OMGインタフェースを通
じて定義される機能を既存のシステム上で走行する既存
の手続きトランザクション・コーディネータにリンクす
る。これらのクラスはOMGベースのクラスと、システ
ム上で走行する実際の手続きコードとの間の置換可能な
ブリッジを提供する。インプリメンテーション・クラス
・メソッドは既存のトランザクション・コーディネータ
から入手可能な手続きインタフェースを呼出すために必
要なコードを含む。更に幾つかの主要な手続きトランザ
クション機能が横取りされ、それらからのデータがイン
プリメンテーション・クラスに提供されなければならな
い。これは主にトランザクションに関連するリソースを
追跡する領域において実行される。登録リソース(Regi
steredResources)は、トランザクション完了または回
復の間に生成(Prepare)、コミット、またはロールバ
ックを指示するメッセージを送信した出所を判断するた
めの基本となる。
【0046】ネスト化トランザクションのサポートは、
上述のトランザクションに次のように追加される。OM
G定義コーディネータは、ネスト化トランザクションを
生成するメソッドすなわちCoordinator::create_subtra
nsactionを含む(この用語は"Coordinator"オブジェク
トの"create_subtransaction"メソッドが呼出されるこ
とを示す)。create_subtransactionメソッドはOMG
仕様のオプション部分であり、インプリメンテーション
論理は含まない。この呼出しはネスト化トランザクショ
ンを開始するために使用される。
上述のトランザクションに次のように追加される。OM
G定義コーディネータは、ネスト化トランザクションを
生成するメソッドすなわちCoordinator::create_subtra
nsactionを含む(この用語は"Coordinator"オブジェク
トの"create_subtransaction"メソッドが呼出されるこ
とを示す)。create_subtransactionメソッドはOMG
仕様のオプション部分であり、インプリメンテーション
論理は含まない。この呼出しはネスト化トランザクショ
ンを開始するために使用される。
【0047】好適な実施例は、ICoordinatorクラスによ
りコーディネータ・クラスをオーバーライドする。ICoo
rdinatorクラスは、コーディネータ機能の特定のインプ
リメンテーションを提供する。これはOMG仕様から導
出され、上述のように定義されるインプリメンテーショ
ン・クラスとしては見なされない。
りコーディネータ・クラスをオーバーライドする。ICoo
rdinatorクラスは、コーディネータ機能の特定のインプ
リメンテーションを提供する。これはOMG仕様から導
出され、上述のように定義されるインプリメンテーショ
ン・クラスとしては見なされない。
【0048】本発明の好適な実施例は、ICoordinatorク
ラス502をオーバーライドにするインプリメンテーシ
ョン・クラスINestingAwareコーディネータ504を生
成する(図8参照)。この新たなインプリメンテーショ
ン・クラスは、サブトランザクションを生成する機能を
手続きベースに追加するために使用される。次のICoord
inatorメソッドはネスト化トランザクション生成のサポ
ートを提供するためにオーバーライドされる。create_s
ubtransactionは標準OMGコーディネータの代わり
に、新たなクラスSubtransactionコーディネータを使用
するように変更される。prepareは未完了の子をチェッ
クし、未完了の子が存在すればロールバックを採決する
ように変更される。全ての子がそれらのトランザクショ
ンを完了していれば、prepareは通常のツー・フェーズ
・コミット処理を継続する。rollbackは最高レベルのト
ランザクションへの任意の参加者よりも以前に、INesti
ngAwareコーディネータの全ての子がロールバックされ
るように保証する。
ラス502をオーバーライドにするインプリメンテーシ
ョン・クラスINestingAwareコーディネータ504を生
成する(図8参照)。この新たなインプリメンテーショ
ン・クラスは、サブトランザクションを生成する機能を
手続きベースに追加するために使用される。次のICoord
inatorメソッドはネスト化トランザクション生成のサポ
ートを提供するためにオーバーライドされる。create_s
ubtransactionは標準OMGコーディネータの代わり
に、新たなクラスSubtransactionコーディネータを使用
するように変更される。prepareは未完了の子をチェッ
クし、未完了の子が存在すればロールバックを採決する
ように変更される。全ての子がそれらのトランザクショ
ンを完了していれば、prepareは通常のツー・フェーズ
・コミット処理を継続する。rollbackは最高レベルのト
ランザクションへの任意の参加者よりも以前に、INesti
ngAwareコーディネータの全ての子がロールバックされ
るように保証する。
【0049】SubtransactionAwareコーディネータ50
6もまたOMGコーディネータから導出され、INesting
Awareコーディネータにより生成されて、ネスト化トラ
ンザクションを管理するために必要な全ての論理をカプ
セル化する。
6もまたOMGコーディネータから導出され、INesting
Awareコーディネータにより生成されて、ネスト化トラ
ンザクションを管理するために必要な全ての論理をカプ
セル化する。
【0050】インプリメンテーション・クラス・メソッ
ドはトランザクションを開始、生成、コミット及びロー
ルバックするための手続き機能を呼出す。各トランザク
ションは独立であり、任意の他のトランザクション(例
えば親、子、同胞(sibling))との特殊な関係すなわ
ちネスティングを意識しない。親及び子は基礎となる手
続きシステム・ソフトウェア内の正に同一のフラット・
モデル手続きコードを使用する。
ドはトランザクションを開始、生成、コミット及びロー
ルバックするための手続き機能を呼出す。各トランザク
ションは独立であり、任意の他のトランザクション(例
えば親、子、同胞(sibling))との特殊な関係すなわ
ちネスティングを意識しない。親及び子は基礎となる手
続きシステム・ソフトウェア内の正に同一のフラット・
モデル手続きコードを使用する。
【0051】このクラス構造はネスティング情報を保守
し、トランザクション完了の間の正確なオペレーション
順序を保証する。全てのネスティング情報が新たなイン
プリメンテーション・クラス内にカプセル化されるの
で、フラット且つ原子的トランザクションをサポートす
る手続きトランザクション・マネージャが、コア・トラ
ンザクション・サービスとして使用される。ネスト化ト
ランザクションをサポートするために手続きコードまた
はOMG承諾コード(compliant code)のいずれも変更
される必要はない。
し、トランザクション完了の間の正確なオペレーション
順序を保証する。全てのネスティング情報が新たなイン
プリメンテーション・クラス内にカプセル化されるの
で、フラット且つ原子的トランザクションをサポートす
る手続きトランザクション・マネージャが、コア・トラ
ンザクション・サービスとして使用される。ネスト化ト
ランザクションをサポートするために手続きコードまた
はOMG承諾コード(compliant code)のいずれも変更
される必要はない。
【0052】ネスト化トランザクションを生成するプロ
セスのより詳細について、図9を参照して述べることに
する。クライアント・アプリケーション550が新たな
トランザクションを開始するために、ICurrent::begin
メッセージを発行する。ICurrent552は、トランザク
ションが現実行スレッドにおいてアクティブかどうかを
判断する。アクティブでないと、ICurrentは新たな最高
レベル・トランザクションを生成する。既存のトランザ
クションが見い出されるとICurrentはサブトランザクシ
ョンを生成しなければならない。サブトランザクション
は、INestingAwareコーディネータ::create_subtransac
tionメソッドによりオーバーライドされるICoordinato
r::create_subtransactionを呼出すことにより生成され
る。INestingAwareコーディネータ554がネスト化ト
ランザクションをサポートすることを望まないと、Subt
ransactionsUnavailable例外が発生する。
セスのより詳細について、図9を参照して述べることに
する。クライアント・アプリケーション550が新たな
トランザクションを開始するために、ICurrent::begin
メッセージを発行する。ICurrent552は、トランザク
ションが現実行スレッドにおいてアクティブかどうかを
判断する。アクティブでないと、ICurrentは新たな最高
レベル・トランザクションを生成する。既存のトランザ
クションが見い出されるとICurrentはサブトランザクシ
ョンを生成しなければならない。サブトランザクション
は、INestingAwareコーディネータ::create_subtransac
tionメソッドによりオーバーライドされるICoordinato
r::create_subtransactionを呼出すことにより生成され
る。INestingAwareコーディネータ554がネスト化ト
ランザクションをサポートすることを望まないと、Subt
ransactionsUnavailable例外が発生する。
【0053】サブトランザクションが生成される場合、
INestingAwareコーディネータ554はアンセスタ及び
高位の識別情報をオブジェクトaNestingInfo558及び
aSuperiorInfo560から獲得する。INestingAwareコー
ディネータ554は、次にSubtransactionコーディネー
タ::initialiseを呼出すことにより、サブトランザクシ
ョン環境を初期化する。initialiseメソッドは、SubCoo
rdinatorにより提供される親トランザクションInternal
TransactionID及びOMGTransactionID及びアンセスタの
シーケンスを生成して初期化し、サブトランザクション
を識別するOMGTransactionIDを返却する。initialiseメ
ソッドは次に既存のメソッドを呼出し、トランザクショ
ン環境vizを確立する。TransactionState::Transaction
State_nested、SuperiorInfo::initialise、NestingInf
o::initialise、TransactionState::set_state、Transa
ctionManager::get_instance、TransactionManager::ad
d_coordinator.メソッドRegisteredResources::Regist
eredResources_initialise及び*RegisteredSyncs::new
は、これらのオブジェクトが要求されるまで呼出されな
い。
INestingAwareコーディネータ554はアンセスタ及び
高位の識別情報をオブジェクトaNestingInfo558及び
aSuperiorInfo560から獲得する。INestingAwareコー
ディネータ554は、次にSubtransactionコーディネー
タ::initialiseを呼出すことにより、サブトランザクシ
ョン環境を初期化する。initialiseメソッドは、SubCoo
rdinatorにより提供される親トランザクションInternal
TransactionID及びOMGTransactionID及びアンセスタの
シーケンスを生成して初期化し、サブトランザクション
を識別するOMGTransactionIDを返却する。initialiseメ
ソッドは次に既存のメソッドを呼出し、トランザクショ
ン環境vizを確立する。TransactionState::Transaction
State_nested、SuperiorInfo::initialise、NestingInf
o::initialise、TransactionState::set_state、Transa
ctionManager::get_instance、TransactionManager::ad
d_coordinator.メソッドRegisteredResources::Regist
eredResources_initialise及び*RegisteredSyncs::new
は、これらのオブジェクトが要求されるまで呼出されな
い。
【0054】SubCoordinatorクラスに対応するインタフ
ェース定義が、図10乃至図11に示される。この定義
はSubCoordinatorに特有の3つのメソッドを識別する。
それらはSubCoordinator_initialise、SubCoordinator_
subordinate、及びSubcoordinator_sonstructである。S
ubCoordinatorクラスによりオーバーライドにされる既
存のメソッドもリストされて示される。
ェース定義が、図10乃至図11に示される。この定義
はSubCoordinatorに特有の3つのメソッドを識別する。
それらはSubCoordinator_initialise、SubCoordinator_
subordinate、及びSubcoordinator_sonstructである。S
ubCoordinatorクラスによりオーバーライドにされる既
存のメソッドもリストされて示される。
【0055】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0056】(1)システム・ソフトウェアを改良する
コンピュータにより実現されるシステムであって、前記
システム・ソフトウェアと対話するためのフォーマット
を含み、前記システム・ソフトウェアとインタフェース
するインタフェース手段と、前記インタフェース手段に
より前記システム・ソフトウェアに結合され、アプリケ
ーション・プログラムに応答するオブジェクト手段と、
前記オブジェクト手段及び前記インタフェース手段に結
合され、前記システム・ソフトウェアの改良を追加する
改良手段と、を含む、システム。 (2)前記オブジェクト手段が、オブジェクト・メソッ
ド呼出しメッセージに応答し、前記インタフェース手段
を通じて前記システム・ソフトウェアの手続き呼出しを
生成する複数のインプリメンテーション・クラスを含
む、前記(1)記載のシステム。 (3)前記インタフェース手段が手続きアプリケーショ
ン・プログラミング・インタフェース(API)であ
る、前記(1)記載のシステム。 (4)前記改良手段が改良機能及び改良データをカプセ
ル化する複数のオブジェクトを含む、前記(1)記載の
システム。 (5)前記改良手段が改良機能及び改良データをカプセ
ル化する複数のオブジェクトを含む、前記(2)記載の
システム。 (6)前記改良手段がネスト化トランザクションを管理
するクラスを含み、前記クラスが、ネスト化トランザク
ション階層の低レベルのトランザクションの完了の評価
後にのみ、前記階層が完了するように保証する前記コン
ピュータにより実行される一連のプロセス論理を組込
む、前記(4)記載のシステム。 (7)手続きアプリケーション・インタフェースを有す
るソフトウェアを改良するコンピュータにより実行され
るプロセスであって、オブジェクト・メソッド呼出しに
応答するオブジェクト・メソッドと、前記手続きアプリ
ケーション・インタフェースを用いて前記ソフトウェア
を呼出す手段とを含む、オブジェクト・インタフェース
・クラスを構成するステップと、改良ソフトウェア機能
を提供するソフトウェア改良クラスを構成するステップ
であって、前記改良クラスが前記オブジェクト・インタ
フェース・クラス・メソッドを呼出す、前記構成ステッ
プと、を含む、プロセス。 (8)前記ソフトウェアがトランザクション処理ソフト
ウェアであり、前記手続きアプリケーション・インタフ
ェースがフラット・トランザクション・インタフェース
である、前記(7)記載のプロセス。 (9)前記改良クラスがネスト化トランザクション処理
を実行し、前記ソフトウェア改良クラスの構成ステップ
が、基本コーディネータをオーバーライドにし、ネスト
化トランザクションを初期化するプログラム論理を含む
コーディネータ・クラスを追加するステップと、高レベ
ルのトランザクションを完了する以前に、低レベルのト
ランザクションの完了をテストするプログラム論理を前
記コーディネータ・クラスに追加するステップと、を含
む、前記(8)記載のプロセス。 (10)システム・ソフトウェアを改良するためのコン
ピュータ・プログラム論理を記録するコンピュータ読出
し可能媒体を有するコンピュータ・プログラムであっ
て、前記システム・ソフトウェアと対話するためのフォ
ーマットを含み、前記システム・ソフトウェアとインタ
フェースするためのプログラム手段と、前記インタフェ
ース用プログラム手段により前記システム・ソフトウェ
アに結合され、アプリケーション・プログラムに応答す
るプログラム・オブジェクト手段と、前記プログラム・
オブジェクト手段及び前記インタフェース用プログラム
手段に結合され、前記システム・ソフトウェアの改良を
追加するプログラム改良手段と、を含む、プログラム。 (11)前記プログラム・オブジェクト手段が、オブジ
ェクト・メソッド呼出しメッセージに応答し、前記イン
タフェース用プログラム手段を通じて、前記システム・
ソフトウェアの手続き呼出しを生成する複数のインプリ
メンテーション・クラスを含む、前記(10)記載のプ
ログラム。 (12)前記インタフェース用プログラム手段が手続き
アプリケーション・プログラミング・インタフェース
(API)である、前記(10)記載のプログラム。 (13)前記プログラム改良手段が改良機能及び改良デ
ータをカプセル化する複数のオブジェクトを含む、前記
(10)記載のプログラム。 (14)前記プログラム改良手段が改良機能及び改良デ
ータをカプセル化する複数のオブジェクトを含む、前記
(11)記載のプログラム。 (15)前記プログラム改良手段がネスト化トランザク
ションを管理するクラスを含み、前記クラスが、ネスト
化トランザクション階層の低レベルのトランザクション
の完了の評価後にのみ、前記階層が完了するように保証
する前記コンピュータにより実行される一連のプロセス
論理を組込む、前記(13)記載のプログラム。
コンピュータにより実現されるシステムであって、前記
システム・ソフトウェアと対話するためのフォーマット
を含み、前記システム・ソフトウェアとインタフェース
するインタフェース手段と、前記インタフェース手段に
より前記システム・ソフトウェアに結合され、アプリケ
ーション・プログラムに応答するオブジェクト手段と、
前記オブジェクト手段及び前記インタフェース手段に結
合され、前記システム・ソフトウェアの改良を追加する
改良手段と、を含む、システム。 (2)前記オブジェクト手段が、オブジェクト・メソッ
ド呼出しメッセージに応答し、前記インタフェース手段
を通じて前記システム・ソフトウェアの手続き呼出しを
生成する複数のインプリメンテーション・クラスを含
む、前記(1)記載のシステム。 (3)前記インタフェース手段が手続きアプリケーショ
ン・プログラミング・インタフェース(API)であ
る、前記(1)記載のシステム。 (4)前記改良手段が改良機能及び改良データをカプセ
ル化する複数のオブジェクトを含む、前記(1)記載の
システム。 (5)前記改良手段が改良機能及び改良データをカプセ
ル化する複数のオブジェクトを含む、前記(2)記載の
システム。 (6)前記改良手段がネスト化トランザクションを管理
するクラスを含み、前記クラスが、ネスト化トランザク
ション階層の低レベルのトランザクションの完了の評価
後にのみ、前記階層が完了するように保証する前記コン
ピュータにより実行される一連のプロセス論理を組込
む、前記(4)記載のシステム。 (7)手続きアプリケーション・インタフェースを有す
るソフトウェアを改良するコンピュータにより実行され
るプロセスであって、オブジェクト・メソッド呼出しに
応答するオブジェクト・メソッドと、前記手続きアプリ
ケーション・インタフェースを用いて前記ソフトウェア
を呼出す手段とを含む、オブジェクト・インタフェース
・クラスを構成するステップと、改良ソフトウェア機能
を提供するソフトウェア改良クラスを構成するステップ
であって、前記改良クラスが前記オブジェクト・インタ
フェース・クラス・メソッドを呼出す、前記構成ステッ
プと、を含む、プロセス。 (8)前記ソフトウェアがトランザクション処理ソフト
ウェアであり、前記手続きアプリケーション・インタフ
ェースがフラット・トランザクション・インタフェース
である、前記(7)記載のプロセス。 (9)前記改良クラスがネスト化トランザクション処理
を実行し、前記ソフトウェア改良クラスの構成ステップ
が、基本コーディネータをオーバーライドにし、ネスト
化トランザクションを初期化するプログラム論理を含む
コーディネータ・クラスを追加するステップと、高レベ
ルのトランザクションを完了する以前に、低レベルのト
ランザクションの完了をテストするプログラム論理を前
記コーディネータ・クラスに追加するステップと、を含
む、前記(8)記載のプロセス。 (10)システム・ソフトウェアを改良するためのコン
ピュータ・プログラム論理を記録するコンピュータ読出
し可能媒体を有するコンピュータ・プログラムであっ
て、前記システム・ソフトウェアと対話するためのフォ
ーマットを含み、前記システム・ソフトウェアとインタ
フェースするためのプログラム手段と、前記インタフェ
ース用プログラム手段により前記システム・ソフトウェ
アに結合され、アプリケーション・プログラムに応答す
るプログラム・オブジェクト手段と、前記プログラム・
オブジェクト手段及び前記インタフェース用プログラム
手段に結合され、前記システム・ソフトウェアの改良を
追加するプログラム改良手段と、を含む、プログラム。 (11)前記プログラム・オブジェクト手段が、オブジ
ェクト・メソッド呼出しメッセージに応答し、前記イン
タフェース用プログラム手段を通じて、前記システム・
ソフトウェアの手続き呼出しを生成する複数のインプリ
メンテーション・クラスを含む、前記(10)記載のプ
ログラム。 (12)前記インタフェース用プログラム手段が手続き
アプリケーション・プログラミング・インタフェース
(API)である、前記(10)記載のプログラム。 (13)前記プログラム改良手段が改良機能及び改良デ
ータをカプセル化する複数のオブジェクトを含む、前記
(10)記載のプログラム。 (14)前記プログラム改良手段が改良機能及び改良デ
ータをカプセル化する複数のオブジェクトを含む、前記
(11)記載のプログラム。 (15)前記プログラム改良手段がネスト化トランザク
ションを管理するクラスを含み、前記クラスが、ネスト
化トランザクション階層の低レベルのトランザクション
の完了の評価後にのみ、前記階層が完了するように保証
する前記コンピュータにより実行される一連のプロセス
論理を組込む、前記(13)記載のプログラム。
【0057】
【発明の効果】以上説明したように、本発明によれば、
手続きソフトウェア・ソース・コードを直接アクセスま
たは変更することなく、ソフトウェアを機能的に改良す
るシステムを提供することができる。
手続きソフトウェア・ソース・コードを直接アクセスま
たは変更することなく、ソフトウェアを機能的に改良す
るシステムを提供することができる。
【0058】更に本発明によれば、基礎的なフラット・
モデル手続きトランザクション・マネージャを変更する
ことなく、ネスト化トランザクションをサポートするよ
うに、トランザクション・マネージャを拡張するフレー
ムワークを提供することができる。
モデル手続きトランザクション・マネージャを変更する
ことなく、ネスト化トランザクションをサポートするよ
うに、トランザクション・マネージャを拡張するフレー
ムワークを提供することができる。
【図1】本発明によるシステムのブロック図である。
【図2】OMG OTSトランザクション処理環境の構
成要素を示すブロック図である。
成要素を示すブロック図である。
【図3】本発明が実施される分散コンピュータ・システ
ムを示すブロック図である。
ムを示すブロック図である。
【図4】本発明が実施されるコンピュータ・システムの
ブロック図である。
ブロック図である。
【図5】本発明の1実施例を示すブロック図である。
【図6】本発明で使用されるプログラミング・インタフ
ェースを示すブロック図である。
ェースを示すブロック図である。
【図7】オブジェクト呼出しの手続きAPI呼出しへの
変換を示す流れ図である。
変換を示す流れ図である。
【図8】本発明によるオブジェクトの関係を示すオブジ
ェクト図である。
ェクト図である。
【図9】本発明の1実施例を示すオブジェクト図であ
る。
る。
【図10】本発明によるインタフェース定義の例を示す
図である。
図である。
【図11】本発明によるインタフェース定義の例を示す
図である。
図である。
102 ソフトウェア・アプリケーション 106、108 アプリケーション・プログラミング・
インタフェース(API) 110 オブジェクト指向インプリメンテーション・ク
ラス 112 オブジェクト指向API 114 改良クラス 120 分散クライアント・サーバ(C/S)アプリケ
ーション 122 トランザクション・クライアント 124 トランザクション・サーバ 126 回復可能サーバ 128 リソース 130 トランザクション・サービス 132 トランザクション・コンテキスト 138 メッセージ 140 ロールバック・メッセージ 142 登録メッセージ 144 要求 208、210、214、224 通信ネットワーク 202、204、206、212、216、218、2
20、222、226、228、250 コンピュータ
・システム 252 CPU 254 揮発性メモリ 256 入出力制御装置 258、260 取外し可能記憶装置 262 磁気または光ディスク記憶装置 264 ポインティング・デバイス 266 キーボード 268 表示装置 270 システム通信制御装置 272 通信リンク 404 メッセージ・ルーティング・プロセス 502 ICoordinatorクラス 504 インプリメンテーション・クラスINestingAwar
eコーディネータ 506 SubtransactionAwareコーディネータ 550 クライアント・アプリケーション 552 ICurrent 554 INestingAwareコーディネータ 558 aNestingInfo 560 aSuperiorInfo
インタフェース(API) 110 オブジェクト指向インプリメンテーション・ク
ラス 112 オブジェクト指向API 114 改良クラス 120 分散クライアント・サーバ(C/S)アプリケ
ーション 122 トランザクション・クライアント 124 トランザクション・サーバ 126 回復可能サーバ 128 リソース 130 トランザクション・サービス 132 トランザクション・コンテキスト 138 メッセージ 140 ロールバック・メッセージ 142 登録メッセージ 144 要求 208、210、214、224 通信ネットワーク 202、204、206、212、216、218、2
20、222、226、228、250 コンピュータ
・システム 252 CPU 254 揮発性メモリ 256 入出力制御装置 258、260 取外し可能記憶装置 262 磁気または光ディスク記憶装置 264 ポインティング・デバイス 266 キーボード 268 表示装置 270 システム通信制御装置 272 通信リンク 404 メッセージ・ルーティング・プロセス 502 ICoordinatorクラス 504 インプリメンテーション・クラスINestingAwar
eコーディネータ 506 SubtransactionAwareコーディネータ 550 クライアント・アプリケーション 552 ICurrent 554 INestingAwareコーディネータ 558 aNestingInfo 560 aSuperiorInfo
フロントページの続き (72)発明者 トーマス・ジェームズ・フリュード イギリス、エス・オー22 5イー・エック ス、ハンツ、ウインチェスター、カーフィ ールド 19 (72)発明者 シモン・アンソニー・ジェームズ・ホルド スウォース イギリス、エス・ピィ・アイ・オー 2エ ヌ・エヌ、ハンツ、エンドバー、ザ・ウィ ローズ 7 (72)発明者 イアイン・スチュアート・カルドウェル・ ハウストン イギリス、ディ・ティ9 6エス・ディ、 シェルボーン、ブラッドフォード・アバ ス、ノース・ストリート、クーベ・コテー ジ 1 (72)発明者 スタンレイ・アラン・スミス アメリカ合衆国78717、テキサス州オース ティン、フリットス・コーブ 16110
Claims (9)
- 【請求項1】システム・ソフトウェアを改良するコンピ
ュータにより実現されるシステムであって、 前記システム・ソフトウェアと対話するためのフォーマ
ットを含み、前記システム・ソフトウェアとインタフェ
ースするインタフェース手段と、 前記インタフェース手段により前記システム・ソフトウ
ェアに結合され、アプリケーション・プログラムに応答
するオブジェクト手段と、 前記オブジェクト手段及び前記インタフェース手段に結
合され、前記システム・ソフトウェアの改良を追加する
改良手段と、 を含む、システム。 - 【請求項2】前記オブジェクト手段が、オブジェクト・
メソッド呼出しメッセージに応答し、前記インタフェー
ス手段を通じて前記システム・ソフトウェアの手続き呼
出しを生成する複数のインプリメンテーション・クラス
を含む、請求項1記載のシステム。 - 【請求項3】前記インタフェース手段が手続きアプリケ
ーション・プログラミング・インタフェース(API)
である、請求項1記載のシステム。 - 【請求項4】前記改良手段が改良機能及び改良データを
カプセル化する複数のオブジェクトを含む、請求項1記
載のシステム。 - 【請求項5】前記改良手段が改良機能及び改良データを
カプセル化する複数のオブジェクトを含む、請求項2記
載のシステム。 - 【請求項6】前記改良手段がネスト化トランザクション
を管理するクラスを含み、前記クラスが、ネスト化トラ
ンザクション階層の低レベルのトランザクションの完了
の評価後にのみ、前記階層が完了するように保証する前
記コンピュータにより実行される一連のプロセス論理を
組込む、請求項4記載のシステム。 - 【請求項7】手続きアプリケーション・インタフェース
を有するソフトウェアを改良するコンピュータにより実
行されるプロセスであって、 オブジェクト・メソッド呼出しに応答するオブジェクト
・メソッドと、前記手続きアプリケーション・インタフ
ェースを用いて前記ソフトウェアを呼出す手段とを含
む、オブジェクト・インタフェース・クラスを構成する
ステップと、 改良ソフトウェア機能を提供するソフトウェア改良クラ
スを構成するステップであって、前記改良クラスが前記
オブジェクト・インタフェース・クラス・メソッドを呼
出す、前記構成ステップと、 を含む、プロセス。 - 【請求項8】前記ソフトウェアがトランザクション処理
ソフトウェアであり、前記手続きアプリケーション・イ
ンタフェースがフラット・トランザクション・インタフ
ェースである、請求項7記載のプロセス。 - 【請求項9】前記改良クラスがネスト化トランザクショ
ン処理を実行し、前記ソフトウェア改良クラスの構成ス
テップが、 基本コーディネータをオーバーライドにし、ネスト化ト
ランザクションを初期化するプログラム論理を含むコー
ディネータ・クラスを追加するステップと、 高レベルのトランザクションを完了する以前に、低レベ
ルのトランザクションの完了をテストするプログラム論
理を前記コーディネータ・クラスに追加するステップ
と、 を含む、請求項8記載のプロセス。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US357836 | 1982-03-15 | ||
| US35783694A | 1994-12-16 | 1994-12-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08286916A true JPH08286916A (ja) | 1996-11-01 |
Family
ID=23407231
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7317815A Pending JPH08286916A (ja) | 1994-12-16 | 1995-12-06 | オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5956506A (ja) |
| JP (1) | JPH08286916A (ja) |
Families Citing this family (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2312766A (en) * | 1996-05-01 | 1997-11-05 | Ibm | Transactional layer for object management system |
| JP3367385B2 (ja) * | 1997-06-27 | 2003-01-14 | 日本電気株式会社 | 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体 |
| GB2335518A (en) * | 1998-03-18 | 1999-09-22 | Ibm | Triggering event causes creation of Coordinator transaction state object |
| GB2335517A (en) * | 1998-03-19 | 1999-09-22 | Ibm | Client/server computing system with programmable action by transaction coordinator during prepared state |
| GB2339622A (en) * | 1998-07-15 | 2000-02-02 | Ibm | Client/server computing with transactional interface between legacy and non-legacy systems |
| US6272674B1 (en) * | 1998-12-14 | 2001-08-07 | Nortel Networks Limited | Method and apparatus for loading a Java application program |
| US7039673B1 (en) * | 1998-12-24 | 2006-05-02 | Computer Associates Think, Inc. | Method and apparatus for dynamic command extensibility in an intelligent agent |
| US6779184B1 (en) * | 1999-01-21 | 2004-08-17 | Oracle International Corporation | Method for loosely coupling object oriented and non-object oriented applications in a messaging-based communication infrastructure |
| US6138143A (en) * | 1999-01-28 | 2000-10-24 | Genrad, Inc. | Method and apparatus for asynchronous transaction processing |
| US6581094B1 (en) * | 1999-11-02 | 2003-06-17 | Sun Microsystems, Inc. | Apparatus and method for identifying a digital device based on the device's uniform device descriptor file that specifies the attributes of the device in a XML document in a networked environment |
| US20050091576A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Programming interface for a computer platform |
| US6873337B1 (en) * | 2000-04-06 | 2005-03-29 | Microsoft Corporation | Application programming interface for changing the visual style |
| US20010048448A1 (en) * | 2000-04-06 | 2001-12-06 | Raiz Gregory L. | Focus state themeing |
| US6753885B2 (en) * | 2000-04-06 | 2004-06-22 | Microsoft Corporation | System and theme file format for creating visual styles |
| US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
| US7725878B1 (en) | 2000-05-12 | 2010-05-25 | Oracle International Corporation | Property bundles on a per instance basis |
| US7421541B2 (en) * | 2000-05-12 | 2008-09-02 | Oracle International Corporation | Version management of cached permissions metadata |
| US7203709B2 (en) * | 2000-05-12 | 2007-04-10 | Oracle International Corporation | Transaction-aware caching for access control metadata |
| US7389493B1 (en) | 2000-05-12 | 2008-06-17 | Oracle International Corporation | Categories on a per instance basis |
| US7987217B2 (en) * | 2000-05-12 | 2011-07-26 | Oracle International Corporation | Transaction-aware caching for document metadata |
| US6898783B1 (en) * | 2000-08-03 | 2005-05-24 | International Business Machines Corporation | Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment |
| US6684388B1 (en) | 2000-08-22 | 2004-01-27 | International Business Machines Corporation | Method for generating platform independent, language specific computer code |
| US7171455B1 (en) | 2000-08-22 | 2007-01-30 | International Business Machines Corporation | Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals |
| US6853994B1 (en) | 2000-08-30 | 2005-02-08 | International Business Machines Corporation | Object oriented based, business class methodology for performing data metric analysis |
| US6915515B2 (en) * | 2000-12-21 | 2005-07-05 | International Business Machines Corporation | Method for creating path-sensitive branch registry for cyclic distributed transactions |
| US7346632B2 (en) * | 2001-02-22 | 2008-03-18 | International Business Machines Corporation | Mechanism for executing nested transactions in an execution environment supporting flat transactions only |
| US20030133554A1 (en) * | 2002-01-11 | 2003-07-17 | Nokia Corporation | System and method for facilitating access to network based services |
| US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
| US7721254B2 (en) * | 2003-10-24 | 2010-05-18 | Microsoft Corporation | Programming interface for a computer platform |
| US7627547B2 (en) | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
| US7921076B2 (en) | 2004-12-15 | 2011-04-05 | Oracle International Corporation | Performing an action in response to a file system event |
| US7437080B2 (en) * | 2005-02-03 | 2008-10-14 | Stratalight Communications, Inc. | Optical transmission system having optimized filter wavelength offsets |
| US20080126705A1 (en) * | 2006-08-08 | 2008-05-29 | Fabrice Jogand-Coulomb | Methods Used In A Portable Mass Storage Device With Virtual Machine Activation |
| US7725614B2 (en) * | 2006-08-08 | 2010-05-25 | Sandisk Corporation | Portable mass storage device with virtual machine activation |
| KR101580999B1 (ko) * | 2009-01-06 | 2015-12-30 | 삼성전자주식회사 | 애플리케이션 간의 콘텐츠를 이동하는 장치 및 방법 |
| US9372739B2 (en) * | 2011-04-20 | 2016-06-21 | International Business Machines Corporation | Monitoring of subscriber message processing in a publish/subscribe messaging environment |
| US11310165B1 (en) * | 2013-11-11 | 2022-04-19 | Amazon Technologies, Inc. | Scalable production test service |
| CN103677814A (zh) * | 2013-11-29 | 2014-03-26 | 广州视源电子科技股份有限公司 | 一种程序获取方法、装置及系统 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
| US5155837A (en) * | 1989-03-02 | 1992-10-13 | Bell Communications Research, Inc. | Methods and apparatus for software retrofitting |
| US5557798A (en) * | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
| US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
| US5329626A (en) * | 1990-10-23 | 1994-07-12 | Digital Equipment Corporation | System for distributed computation processing includes dynamic assignment of predicates to define interdependencies |
| EP0501613A3 (en) * | 1991-02-28 | 1993-09-01 | Hewlett-Packard Company | Heterogeneous software configuration management apparatus |
| US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
| US5574915A (en) * | 1993-12-21 | 1996-11-12 | Taligent | Object-oriented booting framework |
-
1995
- 1995-12-06 JP JP7317815A patent/JPH08286916A/ja active Pending
-
1997
- 1997-04-22 US US08/841,000 patent/US5956506A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5956506A (en) | 1999-09-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08286916A (ja) | オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法 | |
| JP3048894B2 (ja) | 資源変更トランザクション要求を制御する方法およびシステム | |
| US6317773B1 (en) | System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators | |
| US11171897B2 (en) | Method and apparatus for composite user interface generation | |
| US6064382A (en) | Object oriented apparatus and method for providing a graphical user interface for host-based software applications | |
| US6957228B1 (en) | Object oriented apparatus and method for providing context-based class replacement in an object oriented system | |
| AU730208B2 (en) | A process for the naming of objects in a computer system | |
| US6453356B1 (en) | Data exchange system and method | |
| US5864866A (en) | Apparatus and method for providing externalization in an object-oriented environment | |
| CN1879082B (zh) | 用于编译软件的方法和装置 | |
| JP3595340B2 (ja) | オブジェクト指向環境における回復可能プロキシ・オブジェクト | |
| US8103760B2 (en) | Dynamic provisioning of service components in a distributed system | |
| US6289500B1 (en) | Object mechanism and method that creates domain-neutral objects with domain-specific run-time extensions in an appropriate collection | |
| US20080140760A1 (en) | Service-oriented architecture system and methods supporting dynamic service provider versioning | |
| US20020069267A1 (en) | Data management framework for policy management | |
| JPH09223116A (ja) | 複数ミドルウェアに渡る分散オブジェクトの位置透過性 | |
| CN110321236B (zh) | 一种基于OpenDDS的远程方法调用实现方法 | |
| US6138169A (en) | System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions | |
| US6671721B1 (en) | Object oriented framework mechanism and method for distributing and managing heterogenous operations of a network application | |
| US6195791B1 (en) | Object mechanism and method for coupling together processes to define a desired processing environment in an object oriented framework | |
| CN115701077A (zh) | 一种对接微服务网格的方法以及装置 | |
| JP2005182419A (ja) | コンポーネント処理システム及びコンポーネント処理方法 | |
| US7966619B2 (en) | Exposing J2C interface properties | |
| CN115550425B (zh) | 一种面向微服务的业务流程编排方法 | |
| AU718930B2 (en) | Procedure for supporting the generation of an object in a computer system |