JPH0683595A - 永続的及び過渡的オブジェクトのバージョンと構成を管理する機能を提供する方法と装置 - Google Patents
永続的及び過渡的オブジェクトのバージョンと構成を管理する機能を提供する方法と装置Info
- Publication number
- JPH0683595A JPH0683595A JP3114523A JP11452391A JPH0683595A JP H0683595 A JPH0683595 A JP H0683595A JP 3114523 A JP3114523 A JP 3114523A JP 11452391 A JP11452391 A JP 11452391A JP H0683595 A JPH0683595 A JP H0683595A
- Authority
- JP
- Japan
- Prior art keywords
- application
- version
- change management
- graph
- node
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- G06F9/4493—Object persistence
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/955—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【目的】媒体に依存せず、オブジェクト指向の方法で過
渡的かつ永続的両オブジェクトの変更を管理する。 【構成】関数パラメータとして分野固有の情報及び、イ
ンターフェースを介して抽象マシンへオブジェクト型情
報を入力する段階、前記抽象マシン内でユーザ選定の方
針を初期化する段階、前記抽象マシンの私的状態に変更
管理データ構造を記憶する段階であって、データ構造は
一般的なアプリケーション非依存の方法で管理される記
憶段階、少なくとも1つの名前を含む名前空間を管理す
る段階、前記少なくとも1つの名前のみを用いてアプリ
ケーションと通信する段階、前記の記憶した変更管理デ
ータを更新する段階、並びに前記名前と共に型無ポイン
タ構造を用いてアプリケーションへ情報を返す段階を有
する。
渡的かつ永続的両オブジェクトの変更を管理する。 【構成】関数パラメータとして分野固有の情報及び、イ
ンターフェースを介して抽象マシンへオブジェクト型情
報を入力する段階、前記抽象マシン内でユーザ選定の方
針を初期化する段階、前記抽象マシンの私的状態に変更
管理データ構造を記憶する段階であって、データ構造は
一般的なアプリケーション非依存の方法で管理される記
憶段階、少なくとも1つの名前を含む名前空間を管理す
る段階、前記少なくとも1つの名前のみを用いてアプリ
ケーションと通信する段階、前記の記憶した変更管理デ
ータを更新する段階、並びに前記名前と共に型無ポイン
タ構造を用いてアプリケーションへ情報を返す段階を有
する。
Description
【0001】
【産業上の利用分野】本発明はソフトウェア・システム
及びアプリケーションの変更管理に関係し、特に一般的
な、分野によらない、媒体に依存しない方法でオブジェ
クトの発展と構成を支持するシステムと方法に関する。
及びアプリケーションの変更管理に関係し、特に一般的
な、分野によらない、媒体に依存しない方法でオブジェ
クトの発展と構成を支持するシステムと方法に関する。
【0002】
【従来の技術】多くのソフトウェア及び設計アプリケー
ションはオブジェクトの発展に加えて、オブジェクトを
層状階層記述に構成するためのサポートを必要としてい
る。「変更管理」は抽象化の設計と実装を発展させる際
の助けとなる技術の一連の組として定義される。これら
の技術は来歴を記録する、別案を調査する、層別設計を
管理するため多くのレベルで適用可能である。
ションはオブジェクトの発展に加えて、オブジェクトを
層状階層記述に構成するためのサポートを必要としてい
る。「変更管理」は抽象化の設計と実装を発展させる際
の助けとなる技術の一連の組として定義される。これら
の技術は来歴を記録する、別案を調査する、層別設計を
管理するため多くのレベルで適用可能である。
【0003】システムを定義し、ソフトウェアを設計す
るための技術として抽象マシンを使用する考えはソフト
ウェア工学では非常に良く知られている。通常、抽象マ
シンを使用して、これらのシステムの設計をハイパーテ
キスト・システム又はモデル化システムとして指定す
る。
るための技術として抽象マシンを使用する考えはソフト
ウェア工学では非常に良く知られている。通常、抽象マ
シンを使用して、これらのシステムの設計をハイパーテ
キスト・システム又はモデル化システムとして指定す
る。
【0004】今日のソフトウェア・システムでは、変更
管理はアプリケーションと密接に作用する機能として取
扱われる。変更管理情報と分野知識は混合しているた
め、変更管理部品が存在する場合は別の実体としては識
別不能である。識別可能な変更管理部品はしばしばファ
イル・システムと密接に作用し、管理可能なオブジェク
トとしてファイルのみを支持する。いくつかの変更管理
システムが存在するが、これらはターゲットとしている
1つの特定の分野の必要性に立脚してるのみである(例
えば、コンピュータ支援電子設計、コンピュータ支援ソ
フトウェア工学、オーサリング・システム等)。
管理はアプリケーションと密接に作用する機能として取
扱われる。変更管理情報と分野知識は混合しているた
め、変更管理部品が存在する場合は別の実体としては識
別不能である。識別可能な変更管理部品はしばしばファ
イル・システムと密接に作用し、管理可能なオブジェク
トとしてファイルのみを支持する。いくつかの変更管理
システムが存在するが、これらはターゲットとしている
1つの特定の分野の必要性に立脚してるのみである(例
えば、コンピュータ支援電子設計、コンピュータ支援ソ
フトウェア工学、オーサリング・システム等)。
【0005】現在のシステムは分野及びアプリケーショ
ンに特定の方法で変更管理を実装する。このことは、シ
ステムが再利用可能ではなく、新たなアプリケーション
毎に同様の技術の組を特別に再実装する必要があること
を意味する。例えば、バークレー・バージョン・サーバ
ーはコンピュータ支援設計の変更を管理し、サン・マイ
クロシステムのNSEはソフトウェア開発の変更を管理
する。これらのシステムは共にユニックス・オペーレー
ティング・システム下のサン・マイクロシステム・ワー
クステーション上で動作するが、両システム共変更管理
ソフトウェアにその分野の知識を埋込んでいるためコー
ド共有はない。
ンに特定の方法で変更管理を実装する。このことは、シ
ステムが再利用可能ではなく、新たなアプリケーション
毎に同様の技術の組を特別に再実装する必要があること
を意味する。例えば、バークレー・バージョン・サーバ
ーはコンピュータ支援設計の変更を管理し、サン・マイ
クロシステムのNSEはソフトウェア開発の変更を管理
する。これらのシステムは共にユニックス・オペーレー
ティング・システム下のサン・マイクロシステム・ワー
クステーション上で動作するが、両システム共変更管理
ソフトウェアにその分野の知識を埋込んでいるためコー
ド共有はない。
【0006】現在のシステムは、埋め込まれている単一
のアプリケーション環境に緊密に結びつけられ、主要な
再設計または再実装なしには環境への変化に耐える程十
分堅牢ではない。このような変化の例は監査跡を保持す
る方法を変更するための経営決定がある。このように緊
密に結合された又は埋め込まれた支持システムの主要な
欠点は、アプリケーションのセマンテックが混合された
抽象化を有する点である。混合抽象化は、設計、実装、
検証、保守が困難なソフトウェアに導かれる。
のアプリケーション環境に緊密に結びつけられ、主要な
再設計または再実装なしには環境への変化に耐える程十
分堅牢ではない。このような変化の例は監査跡を保持す
る方法を変更するための経営決定がある。このように緊
密に結合された又は埋め込まれた支持システムの主要な
欠点は、アプリケーションのセマンテックが混合された
抽象化を有する点である。混合抽象化は、設計、実装、
検証、保守が困難なソフトウェアに導かれる。
【0007】加えて、現在のシステムは固定データの変
更管理を支持するのみである。過渡的データも又変更を
受ける。それ故、過渡的及び永続的データの両方に対し
て統一的な方法で変更を管理する必要がある。
更管理を支持するのみである。過渡的データも又変更を
受ける。それ故、過渡的及び永続的データの両方に対し
て統一的な方法で変更を管理する必要がある。
【0008】現在の所、システムは変更をうける情報単
位はファイルであるというアプローチを取る。ファイル
は単に記憶システムの工作物であり、しばしばアプリケ
ーションが関心を持つオブジェクトとは何の関係もな
い。オブジェクトは通常、設計ブロック、機能定義、ま
たはテキスト行のような多数の論理単位から構成され
る。変更管理システムはアプリケーションに意味ある全
ての論理単位を支持する必要がある。
位はファイルであるというアプローチを取る。ファイル
は単に記憶システムの工作物であり、しばしばアプリケ
ーションが関心を持つオブジェクトとは何の関係もな
い。オブジェクトは通常、設計ブロック、機能定義、ま
たはテキスト行のような多数の論理単位から構成され
る。変更管理システムはアプリケーションに意味ある全
ての論理単位を支持する必要がある。
【0009】
【発明の要約】関連技術と関係する上記の問題を考慮し
て、本発明の目的は、分野に独立でアプリケーションに
特定されず、オブジェクトの型と記憶クラスに対して多
態(polymorphic)な方法でオブジェクトの
発展と共にオブジェクトの構造と構成を層状の階層構造
に管理する変更管理システムとその方法を提供すること
である。
て、本発明の目的は、分野に独立でアプリケーションに
特定されず、オブジェクトの型と記憶クラスに対して多
態(polymorphic)な方法でオブジェクトの
発展と共にオブジェクトの構造と構成を層状の階層構造
に管理する変更管理システムとその方法を提供すること
である。
【0010】本発明の他の目的は、サービスを利用する
クライアントのデータ構造に何らの変更を必要としな
い、プログラミング言語関数から構成される簡単なイン
ターフェースによりクライアント(アプリケーション)
へ与えられるサービスとして変更管理を提供することで
ある。
クライアントのデータ構造に何らの変更を必要としな
い、プログラミング言語関数から構成される簡単なイン
ターフェースによりクライアント(アプリケーション)
へ与えられるサービスとして変更管理を提供することで
ある。
【0011】本発明のさらに他の目的は、その初期状態
がアプリケーションから隠され、これにより与えられた
インターフェースを除いて変更管理システムとアプリケ
ーションを分離するようにした変更管理システムを提供
することである。
がアプリケーションから隠され、これにより与えられた
インターフェースを除いて変更管理システムとアプリケ
ーションを分離するようにした変更管理システムを提供
することである。
【0012】本発明のさらに他の目的は、アプリケーシ
ョンが正確な良く定義された方法で変更管理システムへ
分野情報を宣言し、変更管理システムは分野の知識を有
することなく情報を利用するような変更管理システムと
その方法を提供することである。
ョンが正確な良く定義された方法で変更管理システムへ
分野情報を宣言し、変更管理システムは分野の知識を有
することなく情報を利用するような変更管理システムと
その方法を提供することである。
【0013】本発明の別な目的は、組織の政策が変更さ
れた時変更管理システムが時代遅れとならないように方
針層を提供することである。
れた時変更管理システムが時代遅れとならないように方
針層を提供することである。
【0014】本発明の他の目的は、型又は寸法に係ら
ず、一様な方法で過渡的及び永続的オブジェクトの発展
を管理することである。
ず、一様な方法で過渡的及び永続的オブジェクトの発展
を管理することである。
【0015】本発明のさらに他の目的は、永続的媒体へ
の取込取出が可能となるようにシステムの内部構造に対
する外部オブジェクト表示を提供することである。
の取込取出が可能となるようにシステムの内部構造に対
する外部オブジェクト表示を提供することである。
【0016】本発明の上記目的に従って、本発明の好適
実施例は変更管理仮想マシン、以後「CMVM」と呼ぶ
ものである。仮想マシンとしての変更管理の実装は、こ
れが設置と使用が容易であり、かつ既存のアプリケーシ
ョンに対して最小の外乱を含む。アプリケーションのデ
ータ構造は、その発展と組成が管理されていることを知
る必要はない。これは、変更管理が特別に押しつけて、
高度に輸部的な方法で実行され、変更管理のセマンテッ
クスがアプリケーションのセマンテックスと混合してい
る既存の技術と対比される。
実施例は変更管理仮想マシン、以後「CMVM」と呼ぶ
ものである。仮想マシンとしての変更管理の実装は、こ
れが設置と使用が容易であり、かつ既存のアプリケーシ
ョンに対して最小の外乱を含む。アプリケーションのデ
ータ構造は、その発展と組成が管理されていることを知
る必要はない。これは、変更管理が特別に押しつけて、
高度に輸部的な方法で実行され、変更管理のセマンテッ
クスがアプリケーションのセマンテックスと混合してい
る既存の技術と対比される。
【0017】ソフトウェア・アプリケーションはCMV
Mの公開されたインターフェースを用いて変更管理サー
ビスを得る。CMVMは丁度データベース管理システム
(DBMS)がデータ管理サービスを与えるように変更
管理サービスをアプリケーションに与える。CMVMは
その内部状態の一部として変更管理に必要な全てのデー
タ構造を作成し管理する。アプリケーションはこれらの
構造をアクセスしたり指す必要はなく、これによりアプ
リケーションのデータ構造又は制御流れに何らの変更を
加えることなく変更管理を提供できる。クライアント
(アプリケーション)は方針の組から選択することによ
りCMVMの全体的ふるまいを調整する。このような全
体的方針はさらにインターフェース関数に指定した引数
を介して一時的にオーバライド可能である。
Mの公開されたインターフェースを用いて変更管理サー
ビスを得る。CMVMは丁度データベース管理システム
(DBMS)がデータ管理サービスを与えるように変更
管理サービスをアプリケーションに与える。CMVMは
その内部状態の一部として変更管理に必要な全てのデー
タ構造を作成し管理する。アプリケーションはこれらの
構造をアクセスしたり指す必要はなく、これによりアプ
リケーションのデータ構造又は制御流れに何らの変更を
加えることなく変更管理を提供できる。クライアント
(アプリケーション)は方針の組から選択することによ
りCMVMの全体的ふるまいを調整する。このような全
体的方針はさらにインターフェース関数に指定した引数
を介して一時的にオーバライド可能である。
【0018】本発明の好適実施例は変更を管理すること
に関係する機能を抽象化し、抽象化を純粋なサービスと
して実装する。この純粋なサービスはCMVM内でノー
ドのグラフとして実現される。グラフはバージョンと構
成に関してアプリケーションの変更管理情報を表現す
る。ノードはマシンのポインタ又は他の何らかの型式の
識別子のどちらかを用いてアプリケーション・データを
指す。アプリケーションがインターフェース関数の1つ
を介して本発明を呼ぶと、内部のグラフ構造が更新され
る。何らかのアプリケーション・データ構造を変換する
必要がある場合、このような変換はCMVMに代ってア
プリケーションにより実行される。CMVMは後述する
ようにCMVM初期化時にCMVMに宣言された関数を
呼ぶことにより前記変換を要求する。
に関係する機能を抽象化し、抽象化を純粋なサービスと
して実装する。この純粋なサービスはCMVM内でノー
ドのグラフとして実現される。グラフはバージョンと構
成に関してアプリケーションの変更管理情報を表現す
る。ノードはマシンのポインタ又は他の何らかの型式の
識別子のどちらかを用いてアプリケーション・データを
指す。アプリケーションがインターフェース関数の1つ
を介して本発明を呼ぶと、内部のグラフ構造が更新され
る。何らかのアプリケーション・データ構造を変換する
必要がある場合、このような変換はCMVMに代ってア
プリケーションにより実行される。CMVMは後述する
ようにCMVM初期化時にCMVMに宣言された関数を
呼ぶことにより前記変換を要求する。
【0019】CMVM初期化は宣言の組から構成され
る。一組の宣言がCMVMへ、管理すべきオブジェクト
の型名、この型に関係する関数の名前を与える。標準的
な宣言は、型「文書」のオブジェクトを管理すべきで、
文書をマージする関数名は「document−mer
ge」であることを記述する。このような関数はCMV
Mの要求で常にアプリケーション空間で実行する。関数
名と型名はCMVMの内部状態に保持される。CMVM
はこれらの関数を介してのみユーザのデータを操作す
る。この結果、丁度CMVMがアプリケーションに対し
て抽象マシンとして見えるようにアプリケーションはC
MVMに対して抽象マシンとして見える。他の組の宣言
がCMVMに変更管理方針のアプリケーションの選択を
与える。望ましい実施例では、アプリケーションが選択
する一定の組の方針がある。CMVMの方針層はCMV
Mをカスタマイズして変更の管理に関する組織の方針を
実装可能とする。例えば、ある組織の方針は大規模な監
査跡を保持することを命令するが、一方他の組織は監査
跡に何の必要性も有しない。
る。一組の宣言がCMVMへ、管理すべきオブジェクト
の型名、この型に関係する関数の名前を与える。標準的
な宣言は、型「文書」のオブジェクトを管理すべきで、
文書をマージする関数名は「document−mer
ge」であることを記述する。このような関数はCMV
Mの要求で常にアプリケーション空間で実行する。関数
名と型名はCMVMの内部状態に保持される。CMVM
はこれらの関数を介してのみユーザのデータを操作す
る。この結果、丁度CMVMがアプリケーションに対し
て抽象マシンとして見えるようにアプリケーションはC
MVMに対して抽象マシンとして見える。他の組の宣言
がCMVMに変更管理方針のアプリケーションの選択を
与える。望ましい実施例では、アプリケーションが選択
する一定の組の方針がある。CMVMの方針層はCMV
Mをカスタマイズして変更の管理に関する組織の方針を
実装可能とする。例えば、ある組織の方針は大規模な監
査跡を保持することを命令するが、一方他の組織は監査
跡に何の必要性も有しない。
【0020】CMVMは2個の直交する抽象マシンを用
いて実装される。バージョン抽象マシンはバージョンを
管理し、構成抽象マシンは構成を管理する。これらのサ
ービスの一方のみを必要とするアプリケーションはこれ
らのマシンの内の一方のみを使用する必要がある。2つ
のマシンの仮想マシンとしてのグループ化は単なる機能
上の都合である。互いに直交した抽象マシンの組合せと
してのCMVMの設計はその拡張性を保証する際の重大
な要因である。
いて実装される。バージョン抽象マシンはバージョンを
管理し、構成抽象マシンは構成を管理する。これらのサ
ービスの一方のみを必要とするアプリケーションはこれ
らのマシンの内の一方のみを使用する必要がある。2つ
のマシンの仮想マシンとしてのグループ化は単なる機能
上の都合である。互いに直交した抽象マシンの組合せと
してのCMVMの設計はその拡張性を保証する際の重大
な要因である。
【0021】CMVMの関数呼出はアプリケーション・
コードの内側から行われる。アプリケーションの最終ユ
ーザはこれらの呼出しを見ず、事実CMVMの存在を間
接的にのみ知っている。
コードの内側から行われる。アプリケーションの最終ユ
ーザはこれらの呼出しを見ず、事実CMVMの存在を間
接的にのみ知っている。
【0022】CMVMは管理するオブジェクトの型と記
憶状態に関して多態である。過渡的および永続的オブジ
ェクトは一様な方法で処理される。型に固有の情報、例
えばオブジェクトをいかにマージするか、はアプリケー
ションを初期化する時CMVMへ宣言される。CMVM
は下の永続的記憶に関して何の仮定もしない。他の変更
管理システム(本発明を使用しないもの)は所定の型の
永続的オブジェクトを管理するよう自身を限定し、通常
ファイルが基本となっている。本発明のこれらの及び他
の特徴と利点は添附図面と共に取られた好適実施例の以
下の詳細な説明から当業者には明らかとなる。
憶状態に関して多態である。過渡的および永続的オブジ
ェクトは一様な方法で処理される。型に固有の情報、例
えばオブジェクトをいかにマージするか、はアプリケー
ションを初期化する時CMVMへ宣言される。CMVM
は下の永続的記憶に関して何の仮定もしない。他の変更
管理システム(本発明を使用しないもの)は所定の型の
永続的オブジェクトを管理するよう自身を限定し、通常
ファイルが基本となっている。本発明のこれらの及び他
の特徴と利点は添附図面と共に取られた好適実施例の以
下の詳細な説明から当業者には明らかとなる。
【0023】
【実施例】本発明の以下の詳細な説明を考慮する時、変
更管理を必要とする任意のアプリケーションは、CMV
Mインターフェース関数を呼出しうる言語でアプリケー
ションが書かれている限りCMVMを使用可能であるこ
とを想起すべきである。例えば、FORTRANで書か
れたアプリケーションは、アプリケーションの動作環境
がFORTRANからCまたはLISP関数の呼出しを
支持している場合にはCMVMインターフェース関数を
呼出し可能である。本発明はCommonLisp及び
CTTで実装された。好適実施例は以下で説明するCT
T実装であるが、本発明の設計は一般のプログラミング
言語の任意のものでの実装として実現化可能である。L
ips及びCTT実装は実装言語の微小なシンタックス
上の差異を除いては同一である。
更管理を必要とする任意のアプリケーションは、CMV
Mインターフェース関数を呼出しうる言語でアプリケー
ションが書かれている限りCMVMを使用可能であるこ
とを想起すべきである。例えば、FORTRANで書か
れたアプリケーションは、アプリケーションの動作環境
がFORTRANからCまたはLISP関数の呼出しを
支持している場合にはCMVMインターフェース関数を
呼出し可能である。本発明はCommonLisp及び
CTTで実装された。好適実施例は以下で説明するCT
T実装であるが、本発明の設計は一般のプログラミング
言語の任意のものでの実装として実現化可能である。L
ips及びCTT実装は実装言語の微小なシンタックス
上の差異を除いては同一である。
【0024】本発明は方針の組により駆動され、アプリ
ケーション固有の情報を埋込む必要がないため、同じマ
シンを異なるアプリケーション、異なるハードウェア及
びソフトウェア・プラットフォームに使用可能である。
唯一の要件は、クライアントのアプリケーションがCM
VMのインターフェースへの関数呼出を実行可能なこと
である。例えば、本発明をCまたはCTTで実装する場
合、AdaコンパライがCで書かれた関数を呼出可能な
らばAdaで書かれたアプリケーションを管理可能であ
る。
ケーション固有の情報を埋込む必要がないため、同じマ
シンを異なるアプリケーション、異なるハードウェア及
びソフトウェア・プラットフォームに使用可能である。
唯一の要件は、クライアントのアプリケーションがCM
VMのインターフェースへの関数呼出を実行可能なこと
である。例えば、本発明をCまたはCTTで実装する場
合、AdaコンパライがCで書かれた関数を呼出可能な
らばAdaで書かれたアプリケーションを管理可能であ
る。
【0025】本発明の好適実施例によるCMVMはアプ
リケーションのオブジェクトのバージョンと構成の管理
を支持するため「抽象マシン」と呼ばれる2つのソフト
ウェア・モジュールから構成される。第1の抽象マシン
はバージョン抽象マシン(VAM)と呼ばれ、第2の抽
象マシンは構成抽象マシン(CAM)と呼ばれる。これ
らの抽象マシンはクライアントのアプリケーションにイ
ンターフェースを提供するソフトウェア・モジュール
で、ハードウェアマシンのマシン命令とマシン状態と類
似の内部状態を保持する。クライアントのアプリケーシ
ョンはインターフェースを介して抽象マシンと通信す
る。これらのアプリケーションは抽象マシンのデータ構
造の知識を有さず、その内部状態をアクセス不能であ
る。抽象マシンは知る必要のあるクライアントのオブジ
ェクトの名前空間を管理する。CMVMは2つのマシン
の内部状態の変更管理に関係する全ての情報を保持す
る。
リケーションのオブジェクトのバージョンと構成の管理
を支持するため「抽象マシン」と呼ばれる2つのソフト
ウェア・モジュールから構成される。第1の抽象マシン
はバージョン抽象マシン(VAM)と呼ばれ、第2の抽
象マシンは構成抽象マシン(CAM)と呼ばれる。これ
らの抽象マシンはクライアントのアプリケーションにイ
ンターフェースを提供するソフトウェア・モジュール
で、ハードウェアマシンのマシン命令とマシン状態と類
似の内部状態を保持する。クライアントのアプリケーシ
ョンはインターフェースを介して抽象マシンと通信す
る。これらのアプリケーションは抽象マシンのデータ構
造の知識を有さず、その内部状態をアクセス不能であ
る。抽象マシンは知る必要のあるクライアントのオブジ
ェクトの名前空間を管理する。CMVMは2つのマシン
の内部状態の変更管理に関係する全ての情報を保持す
る。
【0026】図1はVAMとCAMの組合せとしてのC
MVMのアーキテクチャを図示する。図1で、CMVM
20は2つの抽象マシン22,24から構成される。V
AM22はオブジェクトのバージョンを管理する責任を
有し、CAM24はオブジェクトの構成を管理する責任
を有する。VAM22のインターフェース26はマシン
状態28を含む。マシン状態28はユーザから隠されて
いる。インターフェース26は「命令セット」(表1の
項目(100−154))として知られる関数の組であ
る。同様に、CAM24はインターフェース25とマシ
ン状態27を有する。CAMのインターフェース25は
以下の表2に図示する命令セットを含む。CAM24と
VAM22の命令セットは以下で説明する。
MVMのアーキテクチャを図示する。図1で、CMVM
20は2つの抽象マシン22,24から構成される。V
AM22はオブジェクトのバージョンを管理する責任を
有し、CAM24はオブジェクトの構成を管理する責任
を有する。VAM22のインターフェース26はマシン
状態28を含む。マシン状態28はユーザから隠されて
いる。インターフェース26は「命令セット」(表1の
項目(100−154))として知られる関数の組であ
る。同様に、CAM24はインターフェース25とマシ
ン状態27を有する。CAMのインターフェース25は
以下の表2に図示する命令セットを含む。CAM24と
VAM22の命令セットは以下で説明する。
【0027】図1に戻ると、VAM22とCAM24と
の間の両方向矢印は、CAM24とVAM22が命令セ
ットのみを用いて互いに通信していることを示してい
る。抽象化の分離の原則はCMVMのアーキテクチャに
厳格に固定されている。
の間の両方向矢印は、CAM24とVAM22が命令セ
ットのみを用いて互いに通信していることを示してい
る。抽象化の分離の原則はCMVMのアーキテクチャに
厳格に固定されている。
【0028】クライアントのアプリケーションはCMV
Mをサービスとして見る。サービス要求は命令セットを
用いてクライアントのアプリケーションにより行われ
る。クライアントはいかにサービスを得るか、どのサー
ビスが利用可能かのみを考える必要があり、サービス実
装の詳細はクライアントには何の関りもない。典型的に
は、クライアントのアプリケーションの設計者はアプリ
ケーション・コードにCMVM命令を埋込む。CMVM
を使用するアプリケーションのエンド・ユーザは付加機
能を除いてはCMVMの存在を明確には知らない。CM
VM命令はアプリケーション分野の用語で書かれたユー
ザ指令の結果として実行される。例えば、テキスト・エ
ディタがファイルの過去のバージョンを法的、安全性、
又は履歴上の理由から保持し、媒体損傷に対して保護す
ることを望むものとする。これは又ファイルが多数の人
間により編集される場合には別の発展路を管理する必要
もある。エディタの実装者はエディタを実装するソフト
ウェア内部の適切な所でCMVMを呼出す。エンド・ユ
ーザが「ファイル保存(Save File)」指令を
与えると、バージョンの生成と発展路におけるその適切
な配置がサービスとしてエディタに与えられる。動作は
ユーザには透明である。
Mをサービスとして見る。サービス要求は命令セットを
用いてクライアントのアプリケーションにより行われ
る。クライアントはいかにサービスを得るか、どのサー
ビスが利用可能かのみを考える必要があり、サービス実
装の詳細はクライアントには何の関りもない。典型的に
は、クライアントのアプリケーションの設計者はアプリ
ケーション・コードにCMVM命令を埋込む。CMVM
を使用するアプリケーションのエンド・ユーザは付加機
能を除いてはCMVMの存在を明確には知らない。CM
VM命令はアプリケーション分野の用語で書かれたユー
ザ指令の結果として実行される。例えば、テキスト・エ
ディタがファイルの過去のバージョンを法的、安全性、
又は履歴上の理由から保持し、媒体損傷に対して保護す
ることを望むものとする。これは又ファイルが多数の人
間により編集される場合には別の発展路を管理する必要
もある。エディタの実装者はエディタを実装するソフト
ウェア内部の適切な所でCMVMを呼出す。エンド・ユ
ーザが「ファイル保存(Save File)」指令を
与えると、バージョンの生成と発展路におけるその適切
な配置がサービスとしてエディタに与えられる。動作は
ユーザには透明である。
【0029】アプリケーションから切離したサービスと
して変更管理を提供する本発明のアプローチは図2に図
示した既存にアプローチと対比される。既存のアプリケ
ーション(本発明を使用しない)では、変更管理構造は
アプリケーション構造に束ねられ、変更管理データはア
プリケーション・データから分離されない。アプリケー
ションの実体30はアプリケーション・データ32と変
更管理データ34を管理する。このアプローチの明白な
欠点は、データ構造の主要な再設計やアプリケーション
・コードの主要な再修正なしには変更管理を既存のアプ
リケーションに実装不能な点である。又、選択的に変更
管理サービスを消勢することも困難である。しかしなが
ら主要な欠点は、大体は直交したセマンテック単位とし
ての変更管理の特別な知識を有さない開発者により、同
じ機能が各アプリケーションで再実装されている点であ
る。
して変更管理を提供する本発明のアプローチは図2に図
示した既存にアプローチと対比される。既存のアプリケ
ーション(本発明を使用しない)では、変更管理構造は
アプリケーション構造に束ねられ、変更管理データはア
プリケーション・データから分離されない。アプリケー
ションの実体30はアプリケーション・データ32と変
更管理データ34を管理する。このアプローチの明白な
欠点は、データ構造の主要な再設計やアプリケーション
・コードの主要な再修正なしには変更管理を既存のアプ
リケーションに実装不能な点である。又、選択的に変更
管理サービスを消勢することも困難である。しかしなが
ら主要な欠点は、大体は直交したセマンテック単位とし
ての変更管理の特別な知識を有さない開発者により、同
じ機能が各アプリケーションで再実装されている点であ
る。
【0030】本発明のアプローチは図3で現在のアプロ
ーチと対比されている。図3の左側はアプリケーション
の実体40,42,44,46(その各々が図2のアプ
リケーション実体30の例)が既存システムにより使用
されるバージョン階層にいかに関係しているかを示す。
このバージョン階層はアプリケーション・セマンテック
スを混乱させるのみで、アプリケーションから分離され
なければならない。図3の右側はアプリケーション・セ
マンテックスからのバージョン構造の分離が本発明でい
かに実施されたかを図示する。バージョン構造50はア
プリケーションから分離される。項目60,61,6
2,63,64から構成されるバージョン構造50はC
MVMの私的状態に存在する。アプリケーション構造か
ら変更管理構造を除去することはアプリケーションを簡
単化する。これは、変更管理サービスを提供するためア
プリケーション・データ構造を変更しないことにより重
要な目的を達成する。図3を図2と比較することによ
り、変更部が見えてくる、すなわち変更管理データ34
をアプリケーション実体30から除去し、代りにバージ
ョン構造50のノードに置く。これはアプリケーション
から変更管理を有効に分離する。
ーチと対比されている。図3の左側はアプリケーション
の実体40,42,44,46(その各々が図2のアプ
リケーション実体30の例)が既存システムにより使用
されるバージョン階層にいかに関係しているかを示す。
このバージョン階層はアプリケーション・セマンテック
スを混乱させるのみで、アプリケーションから分離され
なければならない。図3の右側はアプリケーション・セ
マンテックスからのバージョン構造の分離が本発明でい
かに実施されたかを図示する。バージョン構造50はア
プリケーションから分離される。項目60,61,6
2,63,64から構成されるバージョン構造50はC
MVMの私的状態に存在する。アプリケーション構造か
ら変更管理構造を除去することはアプリケーションを簡
単化する。これは、変更管理サービスを提供するためア
プリケーション・データ構造を変更しないことにより重
要な目的を達成する。図3を図2と比較することによ
り、変更部が見えてくる、すなわち変更管理データ34
をアプリケーション実体30から除去し、代りにバージ
ョン構造50のノードに置く。これはアプリケーション
から変更管理を有効に分離する。
【0031】本発明の好適実施例CMVMは、一時的な
発展のみを管理した従来の変更管理システムに対向し
て、オブジェクトの時間的、非時間的、又は質的側面を
基にしたバージョン操作を処理する。それ故、VAM2
2はオブジェクトの発展に対する支持を提供する。VA
M22は線形及び分岐履歴と共に履歴のマージも支持す
る。履歴はアプリケーションの分野で非時間的または非
量的特性を基にしてもよい。例えば、回路設計の分野で
は、チップは早いチップ、より早いチップ等のように性
能を基にした履歴を有してもよい。同じ分野で、全体の
設計は完了設計、検証設計、検査設計等のように確信レ
ベルを基に発展してもよい。時間を基にした履歴の通常
の場合では、VAM22は時刻スタンプ、ベースライン
操作、主/細/実験バージョンを支持する。「取消(U
ndo)」機能は「もしこうしたら」実験を提供する。
VAM22は、オブジェクトをいかにマージするか、異
なるバージョンをいかにして導出するかを指定するため
の機能を提供する。
発展のみを管理した従来の変更管理システムに対向し
て、オブジェクトの時間的、非時間的、又は質的側面を
基にしたバージョン操作を処理する。それ故、VAM2
2はオブジェクトの発展に対する支持を提供する。VA
M22は線形及び分岐履歴と共に履歴のマージも支持す
る。履歴はアプリケーションの分野で非時間的または非
量的特性を基にしてもよい。例えば、回路設計の分野で
は、チップは早いチップ、より早いチップ等のように性
能を基にした履歴を有してもよい。同じ分野で、全体の
設計は完了設計、検証設計、検査設計等のように確信レ
ベルを基に発展してもよい。時間を基にした履歴の通常
の場合では、VAM22は時刻スタンプ、ベースライン
操作、主/細/実験バージョンを支持する。「取消(U
ndo)」機能は「もしこうしたら」実験を提供する。
VAM22は、オブジェクトをいかにマージするか、異
なるバージョンをいかにして導出するかを指定するため
の機能を提供する。
【0032】VAM22は1次バージョンとしてノード
の多重バージョンの1つを区別する。各ノードはその1
次バージョンと他の別なバージョンと共にそれを導いた
バージョンを知っている。この種の知識は、グラフの各
ノードに割当てた内部システム識別子と共に使用され
て、バージョンを追加/削除/マージ/修正するユーザ
の要求を検証し実行する。
の多重バージョンの1つを区別する。各ノードはその1
次バージョンと他の別なバージョンと共にそれを導いた
バージョンを知っている。この種の知識は、グラフの各
ノードに割当てた内部システム識別子と共に使用され
て、バージョンを追加/削除/マージ/修正するユーザ
の要求を検証し実行する。
【0033】VAM22の主要データ構造はノードのグ
ラフであり、各ノードはオブジェクトの1つのバージョ
ンをモデル化する。バージョン管理される各オブジェク
トには1つのグラフがある。図4は本発明の好適実施例
によるこのようなグラフのブロック線図である。全体構
造は「バージョン・グラフ」70として参照される。項
目72−94はバージョン・グラフ70のノードであ
る。ノードAからノードBへの矢印は、BがAにより表
現されるオブジェクトの1つのバージョンであるオブジ
ェクトを表していることを示す。アプリケーションが表
1にあげた命令セットを介してVAM22(特に図示せ
ず)のサービスを要求する時、グラフはVAM22の私
的状態で更新される。VAM22の私的状態はハッシュ
表に構成したこのようなグラフの集まりから主に構成さ
れる。私的状態中の他のデータ構造は後述する名前空間
である。
ラフであり、各ノードはオブジェクトの1つのバージョ
ンをモデル化する。バージョン管理される各オブジェク
トには1つのグラフがある。図4は本発明の好適実施例
によるこのようなグラフのブロック線図である。全体構
造は「バージョン・グラフ」70として参照される。項
目72−94はバージョン・グラフ70のノードであ
る。ノードAからノードBへの矢印は、BがAにより表
現されるオブジェクトの1つのバージョンであるオブジ
ェクトを表していることを示す。アプリケーションが表
1にあげた命令セットを介してVAM22(特に図示せ
ず)のサービスを要求する時、グラフはVAM22の私
的状態で更新される。VAM22の私的状態はハッシュ
表に構成したこのようなグラフの集まりから主に構成さ
れる。私的状態中の他のデータ構造は後述する名前空間
である。
【0034】アプリケーションの完全な機能性を提供す
るため協動するモジュールを一体とする際の主な問題の
1つはデータの交換である。CMVMは、全てのデータ
・アクセスが数字のような原始データ型の文字列名を介
して間接的に発生することを必要とすることによりこの
問題に対処する。VAM22とCAM24は名前空間を
管理して内部状態を文字列名へ写し込む。好適実施例で
は、この名前空間は多重レベル・ハッシュ表の集合とし
て実装される。
るため協動するモジュールを一体とする際の主な問題の
1つはデータの交換である。CMVMは、全てのデータ
・アクセスが数字のような原始データ型の文字列名を介
して間接的に発生することを必要とすることによりこの
問題に対処する。VAM22とCAM24は名前空間を
管理して内部状態を文字列名へ写し込む。好適実施例で
は、この名前空間は多重レベル・ハッシュ表の集合とし
て実装される。
【0035】「取消」操作を支持するためスタック構造
が使用される。リストや表のような各種容器構造を用い
てデータを効率的に管理する。これらの構造はVAM2
2の動作には基本のものではなく、本明細書ではこれ以
上議論しない。
が使用される。リストや表のような各種容器構造を用い
てデータを効率的に管理する。これらの構造はVAM2
2の動作には基本のものではなく、本明細書ではこれ以
上議論しない。
【0036】図4は72のオブジェクトが一連の発展を
とげた後のバージョン・グラフ70を示す。図4を生じ
うるいくつかの命令の組合せが存在する。このような命
令の可能な組の1つは、図8を参照して、命令列10
0,102,104,102,104,102,10
4,102,104,102,104,102,10
4,108,104である。バージョン・グラフ70は
ノードかマージした時を除いて木構造を有する。ノード
がマージすると、図4のマージしたノード78はそれが
マージされた全てのノードのバージョンとなる。
とげた後のバージョン・グラフ70を示す。図4を生じ
うるいくつかの命令の組合せが存在する。このような命
令の可能な組の1つは、図8を参照して、命令列10
0,102,104,102,104,102,10
4,102,104,102,104,102,10
4,108,104である。バージョン・グラフ70は
ノードかマージした時を除いて木構造を有する。ノード
がマージすると、図4のマージしたノード78はそれが
マージされた全てのノードのバージョンとなる。
【0037】各バージョン・ノードはオブジェクトがメ
モリ中にある場合には型無ポインタまたは非ポインタ識
別子を用いて、オブジェクトが永続的記憶部にある場合
には非ポインタ識別子によりアプリケーション・オブジ
ェクトを指す。線形バージョン操作のみの存在では、グ
ラフは線形構造に分解され、分岐バージョンの存在では
グラフは木となる。グラフ構造を発生するのはバージョ
ンをマージする能力である。2つのバージョン・ノード
がマージされると、例示のマージされたノード78はマ
ージされるノード、すなわちノード84,76,94の
バージョンとして挿入される。マージされたノードが指
すオブジェクトは初期化時にアプリケーションにより与
えられたマージ関数を呼出すことによりアプリケーショ
ンから得られる。
モリ中にある場合には型無ポインタまたは非ポインタ識
別子を用いて、オブジェクトが永続的記憶部にある場合
には非ポインタ識別子によりアプリケーション・オブジ
ェクトを指す。線形バージョン操作のみの存在では、グ
ラフは線形構造に分解され、分岐バージョンの存在では
グラフは木となる。グラフ構造を発生するのはバージョ
ンをマージする能力である。2つのバージョン・ノード
がマージされると、例示のマージされたノード78はマ
ージされるノード、すなわちノード84,76,94の
バージョンとして挿入される。マージされたノードが指
すオブジェクトは初期化時にアプリケーションにより与
えられたマージ関数を呼出すことによりアプリケーショ
ンから得られる。
【0038】VAM22はその命令により駆動される。
命令はクライアントのアプリケーションに埋込まれる。
埋込命令がアプリケーションから取出された場合、結果
の命令の組(以下の表1参照)はVAM22のプログラ
ムを構成する。VAM22プログラムは以下の基本的制
御流れを有する。 1. 方針を選択することによりVAM22を初期化す
る。 2. 管理すべきオブジェクトの型とこの型に関連する
関数引数の名前をVAM22に宣言する。 3. バージョン操作をする各オブジェクトに対して、
「バージョン・グラフ作成(Create Versi
on Graph)」命令100を実行する。 4. 最初にバージョンを作成する(「バージョン・ノ
ード作成(CreateVersion Node)1
02」ことによりオブジェクトのバージョンを作成し、
ついでバージョンを設置する(「バージョン設置(In
stall Version)104」。 5. 段階3,4を繰返してVAM22の内部状態を組
上げる。 6. 命令セット中のどの関数でも任意の時点で呼出さ
れる。前記関数により要求されたサービスが実行不能の
場合には、失敗を支持する復帰コードがサービスを要求
したクライアントへ返される。 7. アプリケーションが終了すると、VAM22の私
的状態は命令「外部への出力(Export To)1
52」を介して永続的記憶部へ収められる。 8. アプリケーションが再始動すると、VAM22は
命令「外部からの入力(Import From)15
4」を介して最後の終了時の状態へされる。
命令はクライアントのアプリケーションに埋込まれる。
埋込命令がアプリケーションから取出された場合、結果
の命令の組(以下の表1参照)はVAM22のプログラ
ムを構成する。VAM22プログラムは以下の基本的制
御流れを有する。 1. 方針を選択することによりVAM22を初期化す
る。 2. 管理すべきオブジェクトの型とこの型に関連する
関数引数の名前をVAM22に宣言する。 3. バージョン操作をする各オブジェクトに対して、
「バージョン・グラフ作成(Create Versi
on Graph)」命令100を実行する。 4. 最初にバージョンを作成する(「バージョン・ノ
ード作成(CreateVersion Node)1
02」ことによりオブジェクトのバージョンを作成し、
ついでバージョンを設置する(「バージョン設置(In
stall Version)104」。 5. 段階3,4を繰返してVAM22の内部状態を組
上げる。 6. 命令セット中のどの関数でも任意の時点で呼出さ
れる。前記関数により要求されたサービスが実行不能の
場合には、失敗を支持する復帰コードがサービスを要求
したクライアントへ返される。 7. アプリケーションが終了すると、VAM22の私
的状態は命令「外部への出力(Export To)1
52」を介して永続的記憶部へ収められる。 8. アプリケーションが再始動すると、VAM22は
命令「外部からの入力(Import From)15
4」を介して最後の終了時の状態へされる。
【0039】本発明の好適実施例CMVMは粒状性と層
状組成に対する適切で柔軟な支持を有する。抽象、具象
及び動的構成は組成の高度に柔軟で調節可能で理解でき
る管理を提供する。構成抽象マシン(CAM)24は層
状または階層状の構造化オブジェクトに対する支持を与
える。構成とはオブジェクトの組成の指定である。例え
ば、本は章から、章は節から、節は段落から構成され、
又ソフトウェア・システムはモジュールから、モジュー
ルは関数から、関数は文から構成される。同様に、CA
M24は、非循環である必要はない一般グラフにオブジ
ェクトの組成を支持する。CAM24が支持する構成は
「抽象」、「具象」又は「動的」である。抽象構成は一
般オブジェクト(3章を有する本)の組成であり、具象
構成(リリース)は部品の特定バージョンから作られ、
動的構成は解消されない結合を有する制約付構成であ
る。動的構成の例は「最も最近」と指定されたソフトウ
ェア・リリースである。
状組成に対する適切で柔軟な支持を有する。抽象、具象
及び動的構成は組成の高度に柔軟で調節可能で理解でき
る管理を提供する。構成抽象マシン(CAM)24は層
状または階層状の構造化オブジェクトに対する支持を与
える。構成とはオブジェクトの組成の指定である。例え
ば、本は章から、章は節から、節は段落から構成され、
又ソフトウェア・システムはモジュールから、モジュー
ルは関数から、関数は文から構成される。同様に、CA
M24は、非循環である必要はない一般グラフにオブジ
ェクトの組成を支持する。CAM24が支持する構成は
「抽象」、「具象」又は「動的」である。抽象構成は一
般オブジェクト(3章を有する本)の組成であり、具象
構成(リリース)は部品の特定バージョンから作られ、
動的構成は解消されない結合を有する制約付構成であ
る。動的構成の例は「最も最近」と指定されたソフトウ
ェア・リリースである。
【0040】CAM24の主データ構造はノードのグラ
フで、各ノードは「スーパーコンポーネント」と呼ばれ
る全体として概念的なオブジェクトまたはオブジェクト
の区別可能な部分、「サブコンポーネント」のどちらか
をモデル化する。図5はこのようなグラフの1つの図で
ある。全体構造300は「構成グラフ」として参照され
る。項目320,340,360,380はグラフ30
0の構成ノードである。ノードAからノードBへの矢印
は、構成ノードBが構成ノードAのサブコンポーネント
であることを示している。スーパーコンポーネント32
0はグラフのルート・ノードである。サブコンポーネン
ト340,360,380はグラフのリーフ・ノードで
ある。340,360,380はグラフ300のリーフ
・ノードであるが、これら自体も又分解可能なオブジェ
クトを表わしていることに注意するのが重要である。こ
れらは他の構成グラフのスーパーコンポーネント又はル
ート・ノードでもよい。
フで、各ノードは「スーパーコンポーネント」と呼ばれ
る全体として概念的なオブジェクトまたはオブジェクト
の区別可能な部分、「サブコンポーネント」のどちらか
をモデル化する。図5はこのようなグラフの1つの図で
ある。全体構造300は「構成グラフ」として参照され
る。項目320,340,360,380はグラフ30
0の構成ノードである。ノードAからノードBへの矢印
は、構成ノードBが構成ノードAのサブコンポーネント
であることを示している。スーパーコンポーネント32
0はグラフのルート・ノードである。サブコンポーネン
ト340,360,380はグラフのリーフ・ノードで
ある。340,360,380はグラフ300のリーフ
・ノードであるが、これら自体も又分解可能なオブジェ
クトを表わしていることに注意するのが重要である。こ
れらは他の構成グラフのスーパーコンポーネント又はル
ート・ノードでもよい。
【0041】ここで図6を見ると、図5のリーフ・ノー
ド360の構成グラフの図が示されている。グラフ48
0は1つのスーパーコンポーネント360aと2つのサ
ブコンポーネント400,420を有する。項目360
(図5)と360a(図6)は同じオブジェクトを表わ
す。アプリケーションが以下の表2に挙げた命令セット
を介してCAM24のサービスを要求すると、480の
ような構成グラフがCAM24の私的状態27で更新さ
れる。CAM24の私的状態27はハッシュ表に構成さ
れたこれらの構成グラフの集合から主に構成される。私
的状態27中の他のデータ構造はVAM22に記述した
ものと全く同じ名前空間を管理する。これらの名前空間
は設計と実装は同一であるが、これらは各々のマシンV
AM22とCAM24で局所的かつ別々に定義されてい
ることに注意することが重要である。VAM22と同様
に、CAM24は「アンドゥー」操作を支持するためス
タック構造を保持する。リストや表のような各種容器構
造を用いてデータを効率的に管理する。これらの構造は
CAM24の動作には基本的ではなく、本明細書ではこ
れ以上説明はしない。
ド360の構成グラフの図が示されている。グラフ48
0は1つのスーパーコンポーネント360aと2つのサ
ブコンポーネント400,420を有する。項目360
(図5)と360a(図6)は同じオブジェクトを表わ
す。アプリケーションが以下の表2に挙げた命令セット
を介してCAM24のサービスを要求すると、480の
ような構成グラフがCAM24の私的状態27で更新さ
れる。CAM24の私的状態27はハッシュ表に構成さ
れたこれらの構成グラフの集合から主に構成される。私
的状態27中の他のデータ構造はVAM22に記述した
ものと全く同じ名前空間を管理する。これらの名前空間
は設計と実装は同一であるが、これらは各々のマシンV
AM22とCAM24で局所的かつ別々に定義されてい
ることに注意することが重要である。VAM22と同様
に、CAM24は「アンドゥー」操作を支持するためス
タック構造を保持する。リストや表のような各種容器構
造を用いてデータを効率的に管理する。これらの構造は
CAM24の動作には基本的ではなく、本明細書ではこ
れ以上説明はしない。
【0042】オブジェクトがメモリ中にある場合には各
構成ノードは型無ポインタ又は非ポインタ識別子を用い
て、オブジェクトが永続的に記憶部にある場合は非ポイ
ンタ識別子を用いて、オブジェクトが永続的記憶部にあ
る場合は非ポインタ識別子によりアプリケーション・オ
ブジェクトを指す。
構成ノードは型無ポインタ又は非ポインタ識別子を用い
て、オブジェクトが永続的に記憶部にある場合は非ポイ
ンタ識別子を用いて、オブジェクトが永続的記憶部にあ
る場合は非ポインタ識別子によりアプリケーション・オ
ブジェクトを指す。
【0043】CAM24により支持される完全機能性を
達成するため、CAM24がVAM22とその動作を協
調する必要がある。これは、アプリケーションがするの
と同様にVAM22のサービス要求を行うことにより、
又オブジェクトを参照するのに非ポインタ識別子を使用
する構成ノードの能力により行われる。この動作は「抽
象構成」、「具象構成」、「動的構成」を表現し管理す
るCAM24の能力に最も普通に行われる。
達成するため、CAM24がVAM22とその動作を協
調する必要がある。これは、アプリケーションがするの
と同様にVAM22のサービス要求を行うことにより、
又オブジェクトを参照するのに非ポインタ識別子を使用
する構成ノードの能力により行われる。この動作は「抽
象構成」、「具象構成」、「動的構成」を表現し管理す
るCAM24の能力に最も普通に行われる。
【0044】上述したように、VAM22は時間を通し
て又は他の特性を通して発展したオブジェクトを支持す
る。CAM24は他のオブジェクトのサブコンポーネン
トとしてオブジェクトを支持する。それ故、そのサブコ
ンポーネントが発展するオブジェクトを支持することを
必要としなければならない。「抽象構成」とは、そのサ
ブコンポーネントがバージョンを有するオブジェクトの
構成である。例えば、「トラック」はサブコンポーネン
トのオブジェクト、「トラック・エンジン」、「トラッ
ク・ボディ」、「トラック・フレーム」から構成され
る。しかしながら、「トラック・エンジン」には「トラ
ック・エンジン/3000cc」と「トラック・エンジ
ン/4000cc」の2つのバージョンがある。図7は
この例の図である。構成グラフ500は「トラック」構
成を表している。バージョン・グラフ600は「トラッ
ク・エンジン」のバージョンを表わす。「トラック」の
抽象構成では、「トラック・エンジン」に関連するデー
タ値は「トラック・エンジン」バージョン・グラフ60
0である。両バージョン「トラック・エンジン/300
0cc」620と「トラック・エンジン/4000c
c」640が使用可能であるが、どちらも選択されてい
ない。「トラック」構成グラフ500の抽象構成のため
に、CAM24の私的状態27は「トラック・エンジ
ン」構成ノード450用に「トラック・エンジン」バー
ジョン・グラフ600の名前を有する。この例では、
「トラック・エンジン」バージョン・グラフ600名は
メモリ中の「トラック・エンジン」バージョン・グラフ
600(過渡的)の非ポインタ識別子としての役割を果
たす。CAM24はVAM22へバージョン・グラフ作
成100又は現在のグラフを戻す120のサービス要求
を発行することにより「トラック・エンジン」バージョ
ン・グラフ600の名前を得る。
て又は他の特性を通して発展したオブジェクトを支持す
る。CAM24は他のオブジェクトのサブコンポーネン
トとしてオブジェクトを支持する。それ故、そのサブコ
ンポーネントが発展するオブジェクトを支持することを
必要としなければならない。「抽象構成」とは、そのサ
ブコンポーネントがバージョンを有するオブジェクトの
構成である。例えば、「トラック」はサブコンポーネン
トのオブジェクト、「トラック・エンジン」、「トラッ
ク・ボディ」、「トラック・フレーム」から構成され
る。しかしながら、「トラック・エンジン」には「トラ
ック・エンジン/3000cc」と「トラック・エンジ
ン/4000cc」の2つのバージョンがある。図7は
この例の図である。構成グラフ500は「トラック」構
成を表している。バージョン・グラフ600は「トラッ
ク・エンジン」のバージョンを表わす。「トラック」の
抽象構成では、「トラック・エンジン」に関連するデー
タ値は「トラック・エンジン」バージョン・グラフ60
0である。両バージョン「トラック・エンジン/300
0cc」620と「トラック・エンジン/4000c
c」640が使用可能であるが、どちらも選択されてい
ない。「トラック」構成グラフ500の抽象構成のため
に、CAM24の私的状態27は「トラック・エンジ
ン」構成ノード450用に「トラック・エンジン」バー
ジョン・グラフ600の名前を有する。この例では、
「トラック・エンジン」バージョン・グラフ600名は
メモリ中の「トラック・エンジン」バージョン・グラフ
600(過渡的)の非ポインタ識別子としての役割を果
たす。CAM24はVAM22へバージョン・グラフ作
成100又は現在のグラフを戻す120のサービス要求
を発行することにより「トラック・エンジン」バージョ
ン・グラフ600の名前を得る。
【0045】「具象構成」は、そのサブコンポーネント
が発展し、各サブコンポーネントの特定のバージョンが
選択されたオブジェクトの構成である。図7の例では、
「トラック」500の1つの具象構成は、「トラック・
エンジン」を「トラック・エンジン」バージョン・グラ
フ600の「トラック・エンジン/3000cc」バー
ジョン・ノード620へ関連づけるデータ値を有する。
「トラック」構成グラフ500の抽象構成に対して、C
AM24の私的状態27は「トラック・エンジン」構成
ノード450の値用に「トラック・エンジン」バージョ
ン・グラフ600の名前と「トラック・エンジン/30
00cc」バージョン・ノード620の名前を有する。
抽象例と同様に、「トラック・エンジン」バージョン・
グラフ600名と「トラック・エンジン/3000c
c」バージョン・ノード620名はメモリ中の特定の
「トラック・エンジン」バージョン・ノードの非ポイン
タ識別子としての役割を果たす。CAM24は、VAM
22へバージョン・グラフ作成100、又は現在グラフ
を返す120、ルート・バージョンを返す116、又は
現在バージョンを返す122のサービス要求を出すこと
により「トラック・エンジン」バージョン・グラフ60
0の名前と「トラック・エンジン/3000cc」バー
ジョン・ノード620の名前を得る。
が発展し、各サブコンポーネントの特定のバージョンが
選択されたオブジェクトの構成である。図7の例では、
「トラック」500の1つの具象構成は、「トラック・
エンジン」を「トラック・エンジン」バージョン・グラ
フ600の「トラック・エンジン/3000cc」バー
ジョン・ノード620へ関連づけるデータ値を有する。
「トラック」構成グラフ500の抽象構成に対して、C
AM24の私的状態27は「トラック・エンジン」構成
ノード450の値用に「トラック・エンジン」バージョ
ン・グラフ600の名前と「トラック・エンジン/30
00cc」バージョン・ノード620の名前を有する。
抽象例と同様に、「トラック・エンジン」バージョン・
グラフ600名と「トラック・エンジン/3000c
c」バージョン・ノード620名はメモリ中の特定の
「トラック・エンジン」バージョン・ノードの非ポイン
タ識別子としての役割を果たす。CAM24は、VAM
22へバージョン・グラフ作成100、又は現在グラフ
を返す120、ルート・バージョンを返す116、又は
現在バージョンを返す122のサービス要求を出すこと
により「トラック・エンジン」バージョン・グラフ60
0の名前と「トラック・エンジン/3000cc」バー
ジョン・ノード620の名前を得る。
【0046】「動的構成」は、そのサブコンポーネント
が発展し、各サブコンポーネントの特定バージョンの選
択が、動的構成のサービス要求が行われた時のCAM2
4とVAM22の私的状態27を基にしている構成であ
る。図7の例では、アプリケーションは、「最大のエン
ジン」を含むように「トラック」500の構成を発生す
るよう要求する。CAM24は、「トラック・エンジ
ン」バージョン・グラフ600を与えて、そのバージョ
ン・ノードの各々を検査し、どのバージョン・ノードが
「最大のエンジン」を表わしているかを決定するアプリ
ケーションにより定められたサーチ関数を利用すること
により前記の要求を処理可能である。CAMはこのバー
ジョン・ノードを「トラック」構成グラフ500の「ト
ラック・エンジン」構成ノード540へ関連づける。な
ぜこれが「動的構成」であるかの理由は、現在の所「最
大のエンジン」は「トラック・エンジン/4000c
c」バージョン・ノード640であるが、他のバージョ
ンの「トラック・エンジン/3000cc」バージョン
・ノード620は「トラック・エンジン/4000c
c」バージョン・ノード640の兄弟として「トラック
・エンジン/4500cc」を作成できる。このような
バージョン・ノードの作成後、VAM22の私的状態2
8の変化により「トラック」構成グラフ500の「トラ
ック・エンジン」構成ノード540へ値が関係づけられ
たため、「最大のエンジン」を基にした「トラック」5
00の動的構成に対するサービス要求は「トラック・エ
ンジン/4500cc」を生成する。どちらの場合で
も、「トラック」構成グラフ500の動的構成に対して
は、CAM24の私的状態27は「トラック・エンジ
ン」構成ノード450の値に対して「トラック・エンジ
ン」バージョン・グラフ600の名前とアプリケーショ
ン定義の関数により選択された「トラック・エンジン」
バージョン・ノードの名前を有する。抽象及び具象例と
同じく、「トラック・エンジン」バージョン・グラフ6
00名と選択した「トラック・エンジン」バージョン・
ノードの名前はメモリ中の特定の「トラック・エンジ
ン」バージョン・ノードの非ポインタ識別子としての役
割を果たす。CAM24は現在のグラフを戻す120の
サービス要求を発行することにより「トラック・エンジ
ン」バージョン・グラフ600の名前を得る。選択すべ
き「トラック・エンジン」バージョン・ノードの名前を
決定するため、VAM22へのバージョン・グラフを戻
す102、ルート・バージョンを戻す116、現在バー
ジョンを戻す122、属性によりバージョンを見出す1
32のサービス要求がアプリケーション定義のサーチ関
数での使用に利用できる。CAM24のサービスのこれ
以上の詳細は後述するCAM24の命令セットの説明に
現れる。
が発展し、各サブコンポーネントの特定バージョンの選
択が、動的構成のサービス要求が行われた時のCAM2
4とVAM22の私的状態27を基にしている構成であ
る。図7の例では、アプリケーションは、「最大のエン
ジン」を含むように「トラック」500の構成を発生す
るよう要求する。CAM24は、「トラック・エンジ
ン」バージョン・グラフ600を与えて、そのバージョ
ン・ノードの各々を検査し、どのバージョン・ノードが
「最大のエンジン」を表わしているかを決定するアプリ
ケーションにより定められたサーチ関数を利用すること
により前記の要求を処理可能である。CAMはこのバー
ジョン・ノードを「トラック」構成グラフ500の「ト
ラック・エンジン」構成ノード540へ関連づける。な
ぜこれが「動的構成」であるかの理由は、現在の所「最
大のエンジン」は「トラック・エンジン/4000c
c」バージョン・ノード640であるが、他のバージョ
ンの「トラック・エンジン/3000cc」バージョン
・ノード620は「トラック・エンジン/4000c
c」バージョン・ノード640の兄弟として「トラック
・エンジン/4500cc」を作成できる。このような
バージョン・ノードの作成後、VAM22の私的状態2
8の変化により「トラック」構成グラフ500の「トラ
ック・エンジン」構成ノード540へ値が関係づけられ
たため、「最大のエンジン」を基にした「トラック」5
00の動的構成に対するサービス要求は「トラック・エ
ンジン/4500cc」を生成する。どちらの場合で
も、「トラック」構成グラフ500の動的構成に対して
は、CAM24の私的状態27は「トラック・エンジ
ン」構成ノード450の値に対して「トラック・エンジ
ン」バージョン・グラフ600の名前とアプリケーショ
ン定義の関数により選択された「トラック・エンジン」
バージョン・ノードの名前を有する。抽象及び具象例と
同じく、「トラック・エンジン」バージョン・グラフ6
00名と選択した「トラック・エンジン」バージョン・
ノードの名前はメモリ中の特定の「トラック・エンジ
ン」バージョン・ノードの非ポインタ識別子としての役
割を果たす。CAM24は現在のグラフを戻す120の
サービス要求を発行することにより「トラック・エンジ
ン」バージョン・グラフ600の名前を得る。選択すべ
き「トラック・エンジン」バージョン・ノードの名前を
決定するため、VAM22へのバージョン・グラフを戻
す102、ルート・バージョンを戻す116、現在バー
ジョンを戻す122、属性によりバージョンを見出す1
32のサービス要求がアプリケーション定義のサーチ関
数での使用に利用できる。CAM24のサービスのこれ
以上の詳細は後述するCAM24の命令セットの説明に
現れる。
【0047】CAM24はその命令により駆動される。
命令はクライアント・アプリケーションに埋込まれる。
埋込命令がアプリケーションから取出された場合、生成
された命令の組がCAM24のプログラムを構成する。
CAM24プログラムは以下の基本制御流れを有する。 1. 方針を選択することによりCAM24を初期化す
る。 2. 管理すべきオブジェクトの型とこの型に関連づけ
られる関数引数の名前をCAM24に宣言する。 3. 構成すべき各オブジェクトに対して、「構成ノー
ドの作成」命令200を実行する。これはこれは、最初
に構成ノードを作成することにより、CAM24へオブ
ジェクトの構成グラフを初期化することを告げる。 4. 各サブコンポーネントに対して段階3を続けるこ
とによりオブジェクトのサブコンポーネントを設定し、
ルート構成ノードのリーフ・ノードとしてサブコンポー
ネントを設置する(「構成ノードの設置)202」)。 5. 段階3、4を繰返してCAM24の内部状態を組
立てる。 6. 命令セットの関数を任意の時点で呼出す。前記関
数により要求されたサービスが実行不能の時、失敗を示
す復帰コードをサービスを要求したクライアントへ返
す。 7. アプリケーションが終了すると、CAM24の私
的状態を「外部への出力220命令を介して永続的記憶
部へ収める。 8. アプリケーションが再始動すると、CAM24は
命令「外部からの入力(222を介して最後の終了時の
状態へされる。
命令はクライアント・アプリケーションに埋込まれる。
埋込命令がアプリケーションから取出された場合、生成
された命令の組がCAM24のプログラムを構成する。
CAM24プログラムは以下の基本制御流れを有する。 1. 方針を選択することによりCAM24を初期化す
る。 2. 管理すべきオブジェクトの型とこの型に関連づけ
られる関数引数の名前をCAM24に宣言する。 3. 構成すべき各オブジェクトに対して、「構成ノー
ドの作成」命令200を実行する。これはこれは、最初
に構成ノードを作成することにより、CAM24へオブ
ジェクトの構成グラフを初期化することを告げる。 4. 各サブコンポーネントに対して段階3を続けるこ
とによりオブジェクトのサブコンポーネントを設定し、
ルート構成ノードのリーフ・ノードとしてサブコンポー
ネントを設置する(「構成ノードの設置)202」)。 5. 段階3、4を繰返してCAM24の内部状態を組
立てる。 6. 命令セットの関数を任意の時点で呼出す。前記関
数により要求されたサービスが実行不能の時、失敗を示
す復帰コードをサービスを要求したクライアントへ返
す。 7. アプリケーションが終了すると、CAM24の私
的状態を「外部への出力220命令を介して永続的記憶
部へ収める。 8. アプリケーションが再始動すると、CAM24は
命令「外部からの入力(222を介して最後の終了時の
状態へされる。
【0048】CMVM抽象マシンはアプリケーション・
オブジェクトに関する型又は操作の知識は何もない。ア
プリケーション・セマンテックスへのアクセスなしで変
更を管理できる事実は、一般的特性を保持するための鍵
となる要因であり、従って本発明の価値でもある。アプ
リケーション固有の情報はマージ関数のような関数によ
り本発明の外側で管理される。抽象マシンを初期化する
一部として、オブジェクトの型名と共にその型に関係す
る関数名も又マシンへ宣言される(これらの名前は単に
マシンに対する文字列であり、型または関数に名前付す
る以外はこれには何の意味もないことに注意すべきであ
る。)例えば、「セル」は型で、これは「マージセル
(Merge Cell)」と呼ばれる関連マージ関数
を有することを宣言は言っている。2つのバージョン
「セル1」「セル2」をマージする時、VAM22は、
2つのオブジェクトを分野固有の方法でマージし、マー
ジしたオブジェクトへポインタを返す関数「マージセ
ル」を呼出す。このオブジェクトは「セル1」と「セル
2」をモデル化した2つのノードのマージであるノード
により指される。異なるバージョンを得る、オブジェク
トに関する情報を印刷する等も同じ技術に従う。これ以
上の詳細は以下で与えるVAM22とCAM24の命令
セットの説明に現われる。
オブジェクトに関する型又は操作の知識は何もない。ア
プリケーション・セマンテックスへのアクセスなしで変
更を管理できる事実は、一般的特性を保持するための鍵
となる要因であり、従って本発明の価値でもある。アプ
リケーション固有の情報はマージ関数のような関数によ
り本発明の外側で管理される。抽象マシンを初期化する
一部として、オブジェクトの型名と共にその型に関係す
る関数名も又マシンへ宣言される(これらの名前は単に
マシンに対する文字列であり、型または関数に名前付す
る以外はこれには何の意味もないことに注意すべきであ
る。)例えば、「セル」は型で、これは「マージセル
(Merge Cell)」と呼ばれる関連マージ関数
を有することを宣言は言っている。2つのバージョン
「セル1」「セル2」をマージする時、VAM22は、
2つのオブジェクトを分野固有の方法でマージし、マー
ジしたオブジェクトへポインタを返す関数「マージセ
ル」を呼出す。このオブジェクトは「セル1」と「セル
2」をモデル化した2つのノードのマージであるノード
により指される。異なるバージョンを得る、オブジェク
トに関する情報を印刷する等も同じ技術に従う。これ以
上の詳細は以下で与えるVAM22とCAM24の命令
セットの説明に現われる。
【0049】表1と表2に与えたVAM22とCAM2
4の命令セットは関数の集合である。関数は整数型、文
字列型、ブール型、又は型無変数である引数を取る。こ
のように引数型を制限することにより、CMVMはアプ
リケーションに属する型付データを処理する必要はなく
なる。又、多くのプログラミング言語はこのような原始
データ型を支持しており、従って多くのプログラミング
言語で書かれたアプリケーションが言語間呼出を介して
CMVMを利用することを可能とする。
4の命令セットは関数の集合である。関数は整数型、文
字列型、ブール型、又は型無変数である引数を取る。こ
のように引数型を制限することにより、CMVMはアプ
リケーションに属する型付データを処理する必要はなく
なる。又、多くのプログラミング言語はこのような原始
データ型を支持しており、従って多くのプログラミング
言語で書かれたアプリケーションが言語間呼出を介して
CMVMを利用することを可能とする。
【0050】VAM22は現在グラフと呼ばれるコンテ
キストを有し、各グラフは現在ノードと呼ばれるコンテ
キストを有する。命令セット中の多くの関数は文字列で
ある。「Gname」と呼ばれる引数を取る。これがオ
プションで指定されていない場合、VAM22は現在グ
ラフとしてしられているグラフを用いる。同様に、オプ
ションのバージョン名がデフォールトとされた場合、V
AM22は現在ノードを用いる。現在ノードと現在グラ
フは各種VAM操作によりリセットされる。これは又後
述する適切な関数によってもリセットされる。さらに、
以下で与える関数を用いることにより現在ノードと現在
グラフの現在の設定を問合わせることが可能である。
キストを有し、各グラフは現在ノードと呼ばれるコンテ
キストを有する。命令セット中の多くの関数は文字列で
ある。「Gname」と呼ばれる引数を取る。これがオ
プションで指定されていない場合、VAM22は現在グ
ラフとしてしられているグラフを用いる。同様に、オプ
ションのバージョン名がデフォールトとされた場合、V
AM22は現在ノードを用いる。現在ノードと現在グラ
フは各種VAM操作によりリセットされる。これは又後
述する適切な関数によってもリセットされる。さらに、
以下で与える関数を用いることにより現在ノードと現在
グラフの現在の設定を問合わせることが可能である。
【0051】VAM22インターフェース関数が集合デ
ータ構造(リスト又はアレイ)を返す時、構造体の項目
は時番列で並べられる。
ータ構造(リスト又はアレイ)を返す時、構造体の項目
は時番列で並べられる。
【表1】
【0052】表1はVAM22のインターフェース関数
100−154をその関数名、所要引数162、オプシ
ョン引数164、返り値166と共に列挙してある。こ
れらの関数の簡単な説明は以下に与えられている。これ
らの関数はVAM22の私的状態を更新するか、又はマ
シンの私的状態に関する何らかの情報を返す。命令10
0−114,150はVAM22の私的状態を更新す
る。命令116−148はクライアントのアプリケーシ
ョンへVAM22の私的状態に関する情報を返す。命令
152,154はVAM22の内部状態の過渡的及び永
続的表現間を変換する特殊命令である。
100−154をその関数名、所要引数162、オプシ
ョン引数164、返り値166と共に列挙してある。こ
れらの関数の簡単な説明は以下に与えられている。これ
らの関数はVAM22の私的状態を更新するか、又はマ
シンの私的状態に関する何らかの情報を返す。命令10
0−114,150はVAM22の私的状態を更新す
る。命令116−148はクライアントのアプリケーシ
ョンへVAM22の私的状態に関する情報を返す。命令
152,154はVAM22の内部状態の過渡的及び永
続的表現間を変換する特殊命令である。
【0053】ポインタ値(char*,char**)
がインターフェース関数により返される場合、アプリケ
ーションはポインタがNULLでないことを検査すべき
である。NULL値は、VAM22が要求されたサービ
スを実行できなかったことを意味する返りコードであ
る。ブール値(真、偽)がインターフェース関数により
返される場合、アプリケーションは値が偽でないことを
検査すべきである。偽値はVAM22が要求されたサー
ビスを実行できなかったことを意味する返りコードであ
る。バージョン・グラフの作成(Create Ver
sion Graph)100はバージョン・グラフを
作成し、これを返す。これはオブジェクトのバージョン
操作を開始するためバージョン抽象マシンへ行われる最
初の呼出である。バージョン・ノードの作成(Crea
te Version Node)102はバージョン
・ノードを作成し、これを返す。バージョン設置(In
stall Version)104は既存のバージョ
ン・グラフへバージョン・ノードを設置する。バージョ
ン削除(Delete Version)106は既存
のバージョン・ノードを削除する。バージョン・マージ
(Merge Version)108は2つのバージ
ョン・ノードをマージする。ノードがアドレスするオブ
ジェクトのマージはアプリケーションにより行われる。
マージしたノードは、マージされた2つのノードのバー
ジョンとして設置される。現在バージョンのセット(S
et Current Version)110は現在
バージョンをセットする。バージョン属性のセット(S
et Version Attribute)112は
標準的にはユーザ指定の時刻スタンプであるバージョン
の属性をセットする。現在グラフのセット(set C
urrent Graph)114は現在グラフをセッ
トする。ルート・バージョンを返す(Return R
oot Version)116はルート・バージョン
を返す。値付バージョン(Versions With
value)118は特定値を有する全てのバージョ
ンを返す。現在グラフを返す(Return curr
ent Graph)120は現在グラフを返す。現在
バージョンを返す(Return Current V
ersion)122は現在バージョンを返す。ノード
と値の記述(Describe Node And V
alue)124はユーザにより指定された何らかの形
式でバージョン・ノードとその値を記述する。バージョ
ン・グラフの記述(Describe Version
Graph)126は基本的には数学グラフとしてバ
ージョン・グラフを記述する。バージョン・ノードの記
述(Describe Version Node)1
28はバージョン・ノードの値を示すことなく親子、兄
弟をリストすることによりバージョン・ノードを記述す
る。全バージョン(All Your Version
s)130はあるノードの全バージョンの線形リストを
与える。属性によりバージョンを見出す(Find V
ersions By Attribute)132は
ある属性に対して一定値を有する全てのバージョン・ノ
ードを見出す。この関数は標準的には特定の時刻スタン
プの全バージョンを見出すために使用される。バージョ
ン時刻(Version Time)134はユーザが
このノードに関係づけた時刻を存在する場合に返す。ユ
ーザ指定の時刻属性がない場合、システム時刻が返され
る。子バージョンを返す(Return Child
Versions)136はあるノードの全ての直下の
子を返す。親バージョンを返す(Return Par
ent Versions)138はあるノードの全て
の直上の親を返す。1次バージョンを返す(Retur
n Primary Versions)140はある
ノードの1次バージョンを返す。バージョン存在(Th
ere Exists Version)142は適切
な真偽を返す。全てのバージョン・グラフをリスト(L
ist All Version Graph)144
はVAM22に知られている全てのバージョン・グラフ
のリストを返す。バージョン管理されている各オブジェ
クトに1つのグラフがあることに注意されたい。バージ
ョン・グラフのブラウズ(Browse Versio
n Graph)146は、本発明を実装するために用
いた言語にグラフ・ブラウズ機能が利用可能であると仮
定して、VAM22に知られているバージョン・グラフ
をブラウザを用いてブラウズする。ブラウザがない場
合、グラフのテキスト表示が与えられる。バージョン・
オブジェクトを返す(Return version
Object)148はバージョン・ノードの値を返
す。前回の取消し(Undo Last)150は前回
操作を取消す。外部への出力(Export To)1
52は例えばアレイのようなディスクへの書出しに適す
るマシン又はグラフの線形化バージョンを書出す。外部
からの入力(Import From)154は外部へ
の出力152の反対である。
がインターフェース関数により返される場合、アプリケ
ーションはポインタがNULLでないことを検査すべき
である。NULL値は、VAM22が要求されたサービ
スを実行できなかったことを意味する返りコードであ
る。ブール値(真、偽)がインターフェース関数により
返される場合、アプリケーションは値が偽でないことを
検査すべきである。偽値はVAM22が要求されたサー
ビスを実行できなかったことを意味する返りコードであ
る。バージョン・グラフの作成(Create Ver
sion Graph)100はバージョン・グラフを
作成し、これを返す。これはオブジェクトのバージョン
操作を開始するためバージョン抽象マシンへ行われる最
初の呼出である。バージョン・ノードの作成(Crea
te Version Node)102はバージョン
・ノードを作成し、これを返す。バージョン設置(In
stall Version)104は既存のバージョ
ン・グラフへバージョン・ノードを設置する。バージョ
ン削除(Delete Version)106は既存
のバージョン・ノードを削除する。バージョン・マージ
(Merge Version)108は2つのバージ
ョン・ノードをマージする。ノードがアドレスするオブ
ジェクトのマージはアプリケーションにより行われる。
マージしたノードは、マージされた2つのノードのバー
ジョンとして設置される。現在バージョンのセット(S
et Current Version)110は現在
バージョンをセットする。バージョン属性のセット(S
et Version Attribute)112は
標準的にはユーザ指定の時刻スタンプであるバージョン
の属性をセットする。現在グラフのセット(set C
urrent Graph)114は現在グラフをセッ
トする。ルート・バージョンを返す(Return R
oot Version)116はルート・バージョン
を返す。値付バージョン(Versions With
value)118は特定値を有する全てのバージョ
ンを返す。現在グラフを返す(Return curr
ent Graph)120は現在グラフを返す。現在
バージョンを返す(Return Current V
ersion)122は現在バージョンを返す。ノード
と値の記述(Describe Node And V
alue)124はユーザにより指定された何らかの形
式でバージョン・ノードとその値を記述する。バージョ
ン・グラフの記述(Describe Version
Graph)126は基本的には数学グラフとしてバ
ージョン・グラフを記述する。バージョン・ノードの記
述(Describe Version Node)1
28はバージョン・ノードの値を示すことなく親子、兄
弟をリストすることによりバージョン・ノードを記述す
る。全バージョン(All Your Version
s)130はあるノードの全バージョンの線形リストを
与える。属性によりバージョンを見出す(Find V
ersions By Attribute)132は
ある属性に対して一定値を有する全てのバージョン・ノ
ードを見出す。この関数は標準的には特定の時刻スタン
プの全バージョンを見出すために使用される。バージョ
ン時刻(Version Time)134はユーザが
このノードに関係づけた時刻を存在する場合に返す。ユ
ーザ指定の時刻属性がない場合、システム時刻が返され
る。子バージョンを返す(Return Child
Versions)136はあるノードの全ての直下の
子を返す。親バージョンを返す(Return Par
ent Versions)138はあるノードの全て
の直上の親を返す。1次バージョンを返す(Retur
n Primary Versions)140はある
ノードの1次バージョンを返す。バージョン存在(Th
ere Exists Version)142は適切
な真偽を返す。全てのバージョン・グラフをリスト(L
ist All Version Graph)144
はVAM22に知られている全てのバージョン・グラフ
のリストを返す。バージョン管理されている各オブジェ
クトに1つのグラフがあることに注意されたい。バージ
ョン・グラフのブラウズ(Browse Versio
n Graph)146は、本発明を実装するために用
いた言語にグラフ・ブラウズ機能が利用可能であると仮
定して、VAM22に知られているバージョン・グラフ
をブラウザを用いてブラウズする。ブラウザがない場
合、グラフのテキスト表示が与えられる。バージョン・
オブジェクトを返す(Return version
Object)148はバージョン・ノードの値を返
す。前回の取消し(Undo Last)150は前回
操作を取消す。外部への出力(Export To)1
52は例えばアレイのようなディスクへの書出しに適す
るマシン又はグラフの線形化バージョンを書出す。外部
からの入力(Import From)154は外部へ
の出力152の反対である。
【0054】以下はCAM24の命令セットである。以
下の関数の多くは文字列である「ノード」、「ルート・
ノード」、「親ノード」と呼ばれる引数を取る。インタ
ーフェース関数が集合データ構造(リスト又はアレイ)
を返す時、構造体中の項目は挿入されたものと同じ順序
で並べられている。
下の関数の多くは文字列である「ノード」、「ルート・
ノード」、「親ノード」と呼ばれる引数を取る。インタ
ーフェース関数が集合データ構造(リスト又はアレイ)
を返す時、構造体中の項目は挿入されたものと同じ順序
で並べられている。
【表2】
【0055】表2はCAM24のインターフェース関数
で、その関数名230、所要引数232、オプション引
数234及び返り値236をあげてある。関数の簡単な
説明は以下に与えてある。VAM22の命令セットと同
じく、ポインタ値(char*,char**)を返す
関数は返り値を使う前にNULLを検査すべきである。
真又は偽を返す関数は真(成功)又は偽(失敗)の検査
をすべきである。構成ノードの作成(Create C
onfiguration Node)200は構成ノ
ードを作成し、これを返す。構成ノードの設置(Ins
tall Configuration Node)2
02はスーパーコンポーネント構成ノードのサブコンポ
ーネントとして構成ノードの組を設置する。構成ノード
の削除(Delate Configuration
Node)204は、指定の構成ノードをルートとする
構成ノードをそのスーパーコンポーネント構成ノードか
ら削除する。前回の取消し(Undo Last Op
eration)206は前回操作を取消す。構成ノー
ドの子を返す(Return Children of
Configuration Node)208は現
在の構成ノードのサブコンポーネントである構成ノード
の現在の組を返す。構成ノードの親を返す(Retur
n Parents of Configuratio
n Node)210は現在の構成ノードのスーパーコ
ンポーネントである構成ノードの現在の組を返す。パラ
メータ化構成グラフを返す(Return Param
eterizedConfiguration Gra
ph)212は現在の構成ノードと同じ構成グラフをル
ートとしているが、そのサブコンポーネント構成ノード
は指定関数により決定される新たな構成ノードを返す。
構成グラフを記述(Describe Configu
ration Graph)214は現在の構成ノード
をルートとする構成グラフを記述する。記述により構成
グラフを見出す(Find Configuratio
n Graph by Description)21
6はその記述が特定の記述とマッチする構成グラフをル
ートとする全ての構成ノードを見出す。構成グラフのブ
ラウズ(Browse Configuration
Graph)218は、本発明を実装するために用いた
言語にグラフ・ブラウズ機能が利用可能であると仮定し
てCAM24に知られている構成グラフをブラウザを用
いてブラウズする。ブラウザがない場合、グラフのテキ
スト記述が与えられる。外部への出力(Export
To)220は例えばアレイのようなディスクへの書出
に適したマシン又はグラフの線形化バージョンを書出
す。外部からの入力(Import From)222
は外部への出力220の反対である。
で、その関数名230、所要引数232、オプション引
数234及び返り値236をあげてある。関数の簡単な
説明は以下に与えてある。VAM22の命令セットと同
じく、ポインタ値(char*,char**)を返す
関数は返り値を使う前にNULLを検査すべきである。
真又は偽を返す関数は真(成功)又は偽(失敗)の検査
をすべきである。構成ノードの作成(Create C
onfiguration Node)200は構成ノ
ードを作成し、これを返す。構成ノードの設置(Ins
tall Configuration Node)2
02はスーパーコンポーネント構成ノードのサブコンポ
ーネントとして構成ノードの組を設置する。構成ノード
の削除(Delate Configuration
Node)204は、指定の構成ノードをルートとする
構成ノードをそのスーパーコンポーネント構成ノードか
ら削除する。前回の取消し(Undo Last Op
eration)206は前回操作を取消す。構成ノー
ドの子を返す(Return Children of
Configuration Node)208は現
在の構成ノードのサブコンポーネントである構成ノード
の現在の組を返す。構成ノードの親を返す(Retur
n Parents of Configuratio
n Node)210は現在の構成ノードのスーパーコ
ンポーネントである構成ノードの現在の組を返す。パラ
メータ化構成グラフを返す(Return Param
eterizedConfiguration Gra
ph)212は現在の構成ノードと同じ構成グラフをル
ートとしているが、そのサブコンポーネント構成ノード
は指定関数により決定される新たな構成ノードを返す。
構成グラフを記述(Describe Configu
ration Graph)214は現在の構成ノード
をルートとする構成グラフを記述する。記述により構成
グラフを見出す(Find Configuratio
n Graph by Description)21
6はその記述が特定の記述とマッチする構成グラフをル
ートとする全ての構成ノードを見出す。構成グラフのブ
ラウズ(Browse Configuration
Graph)218は、本発明を実装するために用いた
言語にグラフ・ブラウズ機能が利用可能であると仮定し
てCAM24に知られている構成グラフをブラウザを用
いてブラウズする。ブラウザがない場合、グラフのテキ
スト記述が与えられる。外部への出力(Export
To)220は例えばアレイのようなディスクへの書出
に適したマシン又はグラフの線形化バージョンを書出
す。外部からの入力(Import From)222
は外部への出力220の反対である。
【0056】VAM22とCAM24の全てのアプリケ
ーション実体は名前付され、インターフェース関数はこ
れらの名前を用いて前記実体を引用する。VAM22の
グラフはグラフの名前をキーとするハッシュ表に集めら
れる。
ーション実体は名前付され、インターフェース関数はこ
れらの名前を用いて前記実体を引用する。VAM22の
グラフはグラフの名前をキーとするハッシュ表に集めら
れる。
【0057】アプリケーションがいかに変更を管理する
かに関するユーザ選択の異なる方針はCMVM設定可能
である。CMVMはこのような方針を抽象化として扱
い、CMVMがインターフェースする層として設計す
る。これらの方針は認定、監査跡、ベースライン操作、
オブジェクトの変動性、バージョン数、粒状性の支持の
ような項目と関係する。テフォールトの方針の組が提供
されているため、CMVMは方針宣言が指定されない時
も使用可能である。別の方針は、アプリケーションを初
期化するコード内部から標準的には起動されるIMPL
EMENTマクロを用いて宣言される。アプリケーショ
ン・データへインターフェースするためCMVMが使用
する関数の名前もこの初期化過程でCMVMへ渡され
る。このような渡される関数の例は、2つのアプリケー
ション・オブジェクトを取り、2つのオブジェクトの
「マージ」であるアプリケーション・オブジェクトを返
すマージ関数である。明らかに、「マージ」は分野固有
の情報を必要とし、アプリケーションの作業空間で実行
する。
かに関するユーザ選択の異なる方針はCMVM設定可能
である。CMVMはこのような方針を抽象化として扱
い、CMVMがインターフェースする層として設計す
る。これらの方針は認定、監査跡、ベースライン操作、
オブジェクトの変動性、バージョン数、粒状性の支持の
ような項目と関係する。テフォールトの方針の組が提供
されているため、CMVMは方針宣言が指定されない時
も使用可能である。別の方針は、アプリケーションを初
期化するコード内部から標準的には起動されるIMPL
EMENTマクロを用いて宣言される。アプリケーショ
ン・データへインターフェースするためCMVMが使用
する関数の名前もこの初期化過程でCMVMへ渡され
る。このような渡される関数の例は、2つのアプリケー
ション・オブジェクトを取り、2つのオブジェクトの
「マージ」であるアプリケーション・オブジェクトを返
すマージ関数である。明らかに、「マージ」は分野固有
の情報を必要とし、アプリケーションの作業空間で実行
する。
【0058】クライアント・アプリケーションはアプリ
ケーション・ソフトウェアにVAM22とCAM24へ
の関数呼出を埋込むことによりCMVM20のサービス
を得る。本発明の好適実施例では、CMVM20はソフ
トウェアの2つのライブラリと各々VAM22とCAM
24に対応する2つのCヘッダ・ファイルから構成され
る。アプリケーションはアプリケーション・ソフトウェ
アへヘッダ・ファイルを含ませる。ライブラリはアプリ
ケーションのメイクファイル中のライブラリ・サーチ・
パスで指定される。これはアプリケーション・ロード・
モジュールへのCMVMのリンク組込を生じる。アプリ
ケーションがVAM22のみを使用することも可能で、
この場合アプリケーション・ロード・モジュールの組立
にはVAM22のヘッダ・ファイルとVAM22のライ
ブラリのみが関係する。CAM24は動的構成を管理す
るためにVAM22を用いる、それ故、CAM24ヘッ
ダ・ファイルとライブラリが指定された場合、VAM2
2ヘッダ・ファイルは自動的に含まれ、VAM22ライ
ブラリは自動的にリンクされる。
ケーション・ソフトウェアにVAM22とCAM24へ
の関数呼出を埋込むことによりCMVM20のサービス
を得る。本発明の好適実施例では、CMVM20はソフ
トウェアの2つのライブラリと各々VAM22とCAM
24に対応する2つのCヘッダ・ファイルから構成され
る。アプリケーションはアプリケーション・ソフトウェ
アへヘッダ・ファイルを含ませる。ライブラリはアプリ
ケーションのメイクファイル中のライブラリ・サーチ・
パスで指定される。これはアプリケーション・ロード・
モジュールへのCMVMのリンク組込を生じる。アプリ
ケーションがVAM22のみを使用することも可能で、
この場合アプリケーション・ロード・モジュールの組立
にはVAM22のヘッダ・ファイルとVAM22のライ
ブラリのみが関係する。CAM24は動的構成を管理す
るためにVAM22を用いる、それ故、CAM24ヘッ
ダ・ファイルとライブラリが指定された場合、VAM2
2ヘッダ・ファイルは自動的に含まれ、VAM22ライ
ブラリは自動的にリンクされる。
【0059】本発明の好適実施例では、CMVMとCM
VMを用いたアプリケーションは同じアドレス空間で動
作する。しかしながら、CMVMインターフェースは原
始データ型引数の関数から構成されているため、動作環
境がRPC(例えばユニックス下のサン・マイクロシス
テム・ワークステーション)を支持している場合サービ
ス要求は遠隔手続呼出も可能である。CMVM20が遠
隔で動作している時、VAM22とCAM24のノード
はアプリケーション実体をアクセスし返すためにオブジ
ェクト識別子を用いる。
VMを用いたアプリケーションは同じアドレス空間で動
作する。しかしながら、CMVMインターフェースは原
始データ型引数の関数から構成されているため、動作環
境がRPC(例えばユニックス下のサン・マイクロシス
テム・ワークステーション)を支持している場合サービ
ス要求は遠隔手続呼出も可能である。CMVM20が遠
隔で動作している時、VAM22とCAM24のノード
はアプリケーション実体をアクセスし返すためにオブジ
ェクト識別子を用いる。
【0060】本発明の特定の実施例を図示し説明してき
たが、当業者には各種の修正や別の実施例が生じうる。
従って、本発明は添附の特許請求の範囲に関してのみ限
定されるべきものである。
たが、当業者には各種の修正や別の実施例が生じうる。
従って、本発明は添附の特許請求の範囲に関してのみ限
定されるべきものである。
【0061】注意 1990年テキサス・インストラメント社著作権。本特
許文書の開示の一部は著作権保護を受ける材料を含んで
いる。著作権者は特許商標局特許ファイル又は記録に現
れる限り特許開示のだれによる複写再生に反対しない
が、それ以外の全ての著作権はこれを保持する。
許文書の開示の一部は著作権保護を受ける材料を含んで
いる。著作権者は特許商標局特許ファイル又は記録に現
れる限り特許開示のだれによる複写再生に反対しない
が、それ以外の全ての著作権はこれを保持する。
【0062】以上の説明に関して以下の項を開示する。 (1) 変更がいかに管理されているかはユーザには透
明なままでアプリケーションにおける変更を管理する方
法において、関数パラメータとして分野固有の情報と共
に、インタフェースを介して抽象マシンへオブジェクト
型情報を入力する段階と、前記抽象マシン内でユーザ選
定の方針を初期化する段階と、前記サービスの要求の結
果として前記抽象マシンの私的状態に変更管理データ構
造を記憶する段階であって、前記データ構造は一般的な
アプリケーション非依存の方法で管理される前記記憶段
階と、少なくとも1つの名前を含む名前空間を管理する
段階と、前記少なくとも1つの名前のみを用いて前記ア
プリケーションと通信する段階と、前記サービス要求に
応答して前記の記憶した変更管理データを更新する段階
と、前記名前と共に型無ポインタ構造を用いてアプリケ
ーション情報を返す段階と、を含むアプリケーションに
おける変更を管理する方法。
明なままでアプリケーションにおける変更を管理する方
法において、関数パラメータとして分野固有の情報と共
に、インタフェースを介して抽象マシンへオブジェクト
型情報を入力する段階と、前記抽象マシン内でユーザ選
定の方針を初期化する段階と、前記サービスの要求の結
果として前記抽象マシンの私的状態に変更管理データ構
造を記憶する段階であって、前記データ構造は一般的な
アプリケーション非依存の方法で管理される前記記憶段
階と、少なくとも1つの名前を含む名前空間を管理する
段階と、前記少なくとも1つの名前のみを用いて前記ア
プリケーションと通信する段階と、前記サービス要求に
応答して前記の記憶した変更管理データを更新する段階
と、前記名前と共に型無ポインタ構造を用いてアプリケ
ーション情報を返す段階と、を含むアプリケーションに
おける変更を管理する方法。
【0063】(2) 第1項記載の方法において、前記
変更管理データ構造を記憶する段階は、オブジェクトの
変更を管理するため最初の要求が出された時に変更管理
データ構造を作成する段階と、前記抽象マシンの前記私
的状態に前記作成した変更管理データ構造を記憶する段
階と、をさらに含むアプリケーションにおける変更を管
理する方法。
変更管理データ構造を記憶する段階は、オブジェクトの
変更を管理するため最初の要求が出された時に変更管理
データ構造を作成する段階と、前記抽象マシンの前記私
的状態に前記作成した変更管理データ構造を記憶する段
階と、をさらに含むアプリケーションにおける変更を管
理する方法。
【0064】(3) 第1項記載の方法において、名前
空間を管理する前記段階は、サービスの要求は引数とし
て原始データ・オブジェクトのみを必要とすることを保
証する段階を含むアプリケーションにおける変更を管理
する方法。
空間を管理する前記段階は、サービスの要求は引数とし
て原始データ・オブジェクトのみを必要とすることを保
証する段階を含むアプリケーションにおける変更を管理
する方法。
【0065】(4) 第1項記載の方法において、情報
を返す前記段階は引数として原始データオブジェクトの
みを使用することを必要とするアプリケーションにおけ
る変更を管理する方法。
を返す前記段階は引数として原始データオブジェクトの
みを使用することを必要とするアプリケーションにおけ
る変更を管理する方法。
【0066】(5) 第1項記載の方法において、前記
通信段階の後、前記更新段階の前に、前記抽象マシンが
前記アプリケーションからさらに情報を必要とする場
合、前記抽象マシンの状態内部で所要のパラメータ関数
を、あるならば検査する段階と、前記要求されたサービ
スに応じて前記アプリケーションの作業空間内で実行さ
せるため前記少なくとも1つの名前を担持する少なくと
も1つの関数を前記アプリケーションから前記抽象マシ
ンにより要求する段階と、前記分野固有の情報を得る段
階と、をさらに含むアプリケーションにおける変更を管
理する方法。
通信段階の後、前記更新段階の前に、前記抽象マシンが
前記アプリケーションからさらに情報を必要とする場
合、前記抽象マシンの状態内部で所要のパラメータ関数
を、あるならば検査する段階と、前記要求されたサービ
スに応じて前記アプリケーションの作業空間内で実行さ
せるため前記少なくとも1つの名前を担持する少なくと
も1つの関数を前記アプリケーションから前記抽象マシ
ンにより要求する段階と、前記分野固有の情報を得る段
階と、をさらに含むアプリケーションにおける変更を管
理する方法。
【0067】(6) 第1項記載の方法において、前記
入力段階は、方針宣言を入力する段階を更に含み、前記
方針宣言は前記抽象マシンの行動をさらに調節するアプ
リケーションの変更を管理する方法。
入力段階は、方針宣言を入力する段階を更に含み、前記
方針宣言は前記抽象マシンの行動をさらに調節するアプ
リケーションの変更を管理する方法。
【0068】(7) アプリケーションから変更管理を
分離するための変更管理のシステムにおいて、第1及び
第2の命令セットから構成されるアプリケーション・イ
ンターフェースと、オブジェクトの発展を管理するバー
ジョン抽象マシンであって、前記バージョン抽象マシン
は前記第1の命令セットを用いることによりアプリケー
ションと相互作用する前記抽象マシンと、層状又は階層
構造のオブジェクトと共に構成を指定するための支持を
与える構成抽象マシンであって、前記構成抽象マシンは
前記第2命令セットを用いることによりアプリケーショ
ンと相互作用する前記抽象マシンと、を含む変更管理シ
ステム。
分離するための変更管理のシステムにおいて、第1及び
第2の命令セットから構成されるアプリケーション・イ
ンターフェースと、オブジェクトの発展を管理するバー
ジョン抽象マシンであって、前記バージョン抽象マシン
は前記第1の命令セットを用いることによりアプリケー
ションと相互作用する前記抽象マシンと、層状又は階層
構造のオブジェクトと共に構成を指定するための支持を
与える構成抽象マシンであって、前記構成抽象マシンは
前記第2命令セットを用いることによりアプリケーショ
ンと相互作用する前記抽象マシンと、を含む変更管理シ
ステム。
【0069】(8) 第7項記載のシステムにおいて、
前記バージョン抽象マシンが前記構成抽象マシンと相互
作用したい場合、前記バージョン抽象マシンは前記第2
命令セットを用いてサービスとして前記構成抽象マシン
を呼出し、一方前記構成抽象マシンが前記バージョン抽
象マシンと相互作用したい場合、前記構成抽象マシンは
前記第1命令セットを用いてサービスとして前記バージ
ョン抽象マシンを呼出す変更管理のシステム。
前記バージョン抽象マシンが前記構成抽象マシンと相互
作用したい場合、前記バージョン抽象マシンは前記第2
命令セットを用いてサービスとして前記構成抽象マシン
を呼出し、一方前記構成抽象マシンが前記バージョン抽
象マシンと相互作用したい場合、前記構成抽象マシンは
前記第1命令セットを用いてサービスとして前記バージ
ョン抽象マシンを呼出す変更管理のシステム。
【0070】(9) 第7項記載のシステムにおいて、
前記第1及び第2の命令セットは関数の集合である変更
を管理するシステム。
前記第1及び第2の命令セットは関数の集合である変更
を管理するシステム。
【0071】(10) 第9項記載のシステムにおい
て、前記関数の集合は整数型の引数を取る変更を管理す
るシステム。
て、前記関数の集合は整数型の引数を取る変更を管理す
るシステム。
【0072】(11) 第9項記載のシステムにおい
て、前記関数の集合は文字列型の引数を取る変更を管理
するシステム。
て、前記関数の集合は文字列型の引数を取る変更を管理
するシステム。
【0073】(12) 第9項記載のシステムにおい
て、前記関数の集合はブール型の引数を取る変更を管理
するシステム。
て、前記関数の集合はブール型の引数を取る変更を管理
するシステム。
【0074】(13) 第9項記載のシステムにおい
て、前記関数の集合は型無ポインタ型の引数を取る変更
を管理するシステム。
て、前記関数の集合は型無ポインタ型の引数を取る変更
を管理するシステム。
【0075】(14) 全ての型の永続的かつ過渡的オ
ブジェクトの変更管理を提供するシステムにおいて、イ
ンターフェースを介してアプリケーション・プログラム
からオブジェクト型情報と共に関数パラメータとして入
力分野固有情報を受取り、抽象マシン内のユーザ選択の
方針を初期化する抽象マシンと、前記抽象マシンの私的
状態中にあって、要求したサービスから生じる変更管理
データ構造を記憶するデータ構造記憶装置であって、前
記データ構造は一般にアプリケーション非依存の方法で
管理される前記記憶装置と、前記抽象マシン内にある名
前空間マネジャであって、前記名前空間は前記アプリケ
ーション・プログラムと通信するために使用される少な
くとも1つの名前を含む前記名前空間マネジャと、識別
構造と共に前記少なくとも1つの名前を用いて前記アプ
リケーション・プログラムへ情報を返す装置と、前記ア
プリケーション・プログラムにより前記抽象マシンのサ
ービスを要求する前記インターフェース内のサービス・
リクエスタと、を含む変更管理を提供するシステム。
ブジェクトの変更管理を提供するシステムにおいて、イ
ンターフェースを介してアプリケーション・プログラム
からオブジェクト型情報と共に関数パラメータとして入
力分野固有情報を受取り、抽象マシン内のユーザ選択の
方針を初期化する抽象マシンと、前記抽象マシンの私的
状態中にあって、要求したサービスから生じる変更管理
データ構造を記憶するデータ構造記憶装置であって、前
記データ構造は一般にアプリケーション非依存の方法で
管理される前記記憶装置と、前記抽象マシン内にある名
前空間マネジャであって、前記名前空間は前記アプリケ
ーション・プログラムと通信するために使用される少な
くとも1つの名前を含む前記名前空間マネジャと、識別
構造と共に前記少なくとも1つの名前を用いて前記アプ
リケーション・プログラムへ情報を返す装置と、前記ア
プリケーション・プログラムにより前記抽象マシンのサ
ービスを要求する前記インターフェース内のサービス・
リクエスタと、を含む変更管理を提供するシステム。
【0076】(15) 第14項記載のシステムにおい
て、前記データ構造記憶装置は要求したサービスに応答
して前記記憶した変更管理データ構造を更新するデータ
構造更新器を含む、永続的および過渡的オブジェクトの
変更管理を提供するシステム。
て、前記データ構造記憶装置は要求したサービスに応答
して前記記憶した変更管理データ構造を更新するデータ
構造更新器を含む、永続的および過渡的オブジェクトの
変更管理を提供するシステム。
【0077】(16) 第14項記載のシステムにおい
て、前記識別構造は前記返り情報が過渡的オブジェクト
を含む時は型無ポインタである、永続的及び過渡的オブ
ジェクトの変更管理を提供するシステム。
て、前記識別構造は前記返り情報が過渡的オブジェクト
を含む時は型無ポインタである、永続的及び過渡的オブ
ジェクトの変更管理を提供するシステム。
【0078】(17) 第14項記載のシステムにおい
て、前記返り情報が過渡的オブジェクトを含む時前記識
別情報は非ポインタ識別子である、永続的及び過渡的オ
ブジェクトの変更管理を提供するシステム。
て、前記返り情報が過渡的オブジェクトを含む時前記識
別情報は非ポインタ識別子である、永続的及び過渡的オ
ブジェクトの変更管理を提供するシステム。
【0079】(18) 第14項記載のシステムにおい
て、前記返り情報が永続的オブジェクトを含む時前記識
別情報は非ポインタ識別子である、永続的及び過渡的オ
ブジェクトの変更管理を提供するシステム。
て、前記返り情報が永続的オブジェクトを含む時前記識
別情報は非ポインタ識別子である、永続的及び過渡的オ
ブジェクトの変更管理を提供するシステム。
【0080】(19) ソフトウェア・システムとアプ
リケーションの変更を管理するシステム20と方法は、
分野に独立で、押しつけでなく、オブジェクト指向の方
法で過渡的かつ永続的両オブジェクトの変更を管理す
る。システム20と方法は、アプリケーションに見られ
るインターフェース関数25,26の組と、前記アプリ
ケーションから隠されている内部又は私的状態27,2
8から構成される2つの抽象マシン22,24の組合せ
として設計実装される。アプリケーションはインターフ
ェース関数25,26を用いてこの変更管理システム2
0と方法のサービスを得る。システム20と方法の内部
状態はアプリケーションの外側にあるため、アプリケー
ション・データ構造とインターフェースを変更する又は
追加する必要なしにサービスとして変更管理が提供され
る。
リケーションの変更を管理するシステム20と方法は、
分野に独立で、押しつけでなく、オブジェクト指向の方
法で過渡的かつ永続的両オブジェクトの変更を管理す
る。システム20と方法は、アプリケーションに見られ
るインターフェース関数25,26の組と、前記アプリ
ケーションから隠されている内部又は私的状態27,2
8から構成される2つの抽象マシン22,24の組合せ
として設計実装される。アプリケーションはインターフ
ェース関数25,26を用いてこの変更管理システム2
0と方法のサービスを得る。システム20と方法の内部
状態はアプリケーションの外側にあるため、アプリケー
ション・データ構造とインターフェースを変更する又は
追加する必要なしにサービスとして変更管理が提供され
る。
【図1】アプリケーション開発者から見た本発明のアー
キテクチャのブロック線図。
キテクチャのブロック線図。
【図2】変更管理データ構造がアプリケーション・デー
タ構造に束縛されている変更管理システムの従来のアー
キテクチャを示すブロック線図。
タ構造に束縛されている変更管理システムの従来のアー
キテクチャを示すブロック線図。
【図3】変更管理に対する従来のアプローチを本発明の
それと対比したブロック線図。
それと対比したブロック線図。
【図4】本発明の望ましい実施例のバージョン抽象マシ
ンの主要内部データ構造のブロック線図。
ンの主要内部データ構造のブロック線図。
【図5】本発明の望ましい実施例の構成抽象マシンの主
要内部データ構造のブロック線図。
要内部データ構造のブロック線図。
【図6】第5図に見られるノードの構成グラフを示す構
成抽象マシンの主要内部データ構造のブロック線図。
成抽象マシンの主要内部データ構造のブロック線図。
【図7】例示の構成グラフと関連するバージョン・グラ
フのブロック線図。
フのブロック線図。
20 変更管理仮想マシン,CMVM 22 バージョン抽象マシン,VAM 24 構成抽象マシン,CAM 25,26 インターフェース 27,28 マシン状態 30 アプリケーション実体 32 アプリケーション・データ 34 変更管理データ 50 バージョン構造 70 バージョン・グラフ 72−94 ノード 300 構成グラフ 320,340,360,380 構成ノード 100−154 命令セット 200−222 命令セット
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年6月18日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クレイグ ダブリュ.トンプソン アメリカ合衆国テキサス州プラノ,ディー プ バレー トレイル 2725 (72)発明者 ジョン チュング − リン チェン アメリカ合衆国テキサス州プラノ,ビッカ ーズ ドライブ 2229
Claims (3)
- 【請求項1】 変更がいかに管理されているかはユーザ
には透明なままでアプリケーションにおける変更を管理
する方法において、 関数パラメータとして分野固有の情報と共に、インター
フェースを介して抽象マシンへオブジェクト型情報を入
力する段階と、 前記抽象マシン内でユーザ選定の方針を初期化する段階
と、 前記サービスの要求の結果として前記抽象マシンの私的
状態に変更管理データ構造を記憶する段階であって、前
記データ構造は一般的なアプリケーション非依存の方法
で管理される前記記憶段階と、 少なくとも1つの名前を含む名前空間を管理する段階
と、 前記少なくとも1つの名前のみを用いて前記アプリケー
ションと通信する段階と、 前記サービス要求に応答して前記の記憶した変更管理デ
ータを更新する段階と、 前記名前と共に型無ポインタ構造を用いてアプリケーシ
ョンへ情報を返す段階と、を含むアプリケーションにお
ける変更を管理する方法。 - 【請求項2】 アプリケーションから変更管理を分離す
るための変更管理のシステムにおいて、 第1及び第2の命令セットから構成されるアプリケーシ
ョン・インターフェースと、 オブジェクトの発展を管理するバージョン抽象マシンで
あって、前記バージョン抽象マシンは前記第1の命令セ
ットを用いることによりアプリケーションと相互作用す
る前記抽象マシンと、 層状または階層構造のオブジェクトと共に構成を指定す
るための支持を与える構成抽象マシンであって、前記構
成抽象マシンは前記第2命令セットを用いることにより
アプリケーションと相互作用する前記抽象マシンと、を
含む変更管理のシステム。 - 【請求項3】 全ての型の永続的かつ過渡的オブジェク
トの変更管理を提供するシステムにおいて、 インターフェースを介してアプリケーション・プログラ
ムからオブジェクト型情報と共に関数パラメータとして
入力分野固有情報を受取り、抽象マシン内のユーザ選択
の方針を初期化する抽象マシンと、 前記抽象マシンの私的状態中にあって、要求したサービ
スから生じる変更管理データ構造を記憶するデータ記憶
装置であって、前記データ構造は一般にアプリケーショ
ン非依存の方法で管理される前記記憶装置と、 前記抽象マシン内にある名前空間マネジャであって、前
記名前空間は前記アプリケーション・プログラムと通信
するために使用される少なくとも1つの名前を含む前記
名前空間マネジャと、 識別構造と共に前記少なくとも1つの名前を用いて前記
アプリケーション・プログラムへ情報を返す装置と、 前記アプリケーション・プログラムにより前記抽象マシ
ンのサービスを要求する前記インターフェース内のサー
ビス・リクエスタと、を含む変更管理を提供するシステ
ム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US52621590A | 1990-05-21 | 1990-05-21 | |
| US526215 | 1990-05-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0683595A true JPH0683595A (ja) | 1994-03-25 |
Family
ID=24096412
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3114523A Pending JPH0683595A (ja) | 1990-05-21 | 1991-05-20 | 永続的及び過渡的オブジェクトのバージョンと構成を管理する機能を提供する方法と装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US5862386A (ja) |
| EP (1) | EP0458495A3 (ja) |
| JP (1) | JPH0683595A (ja) |
Families Citing this family (73)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9119700D0 (en) * | 1991-09-14 | 1991-10-30 | Int Computers Ltd | Cryptographic facility for a data processing system |
| US5870764A (en) * | 1993-05-12 | 1999-02-09 | Apple Computer, Inc. | Method of managing a data structure for concurrent serial and parallel revision of a work |
| US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
| US5873097A (en) * | 1993-05-12 | 1999-02-16 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
| US6282545B1 (en) | 1993-10-28 | 2001-08-28 | International Business Machines Corporation | Mechanism for information extraction and traversal from an object base including a plurality of object classes |
| AU1560195A (en) * | 1994-01-05 | 1995-08-01 | Apple Computer, Inc. | Update mechanism for computer storage container manager |
| SE502999C2 (sv) * | 1994-06-13 | 1996-03-11 | Ericsson Telefon Ab L M | Telekommunikationssystem |
| EP0731971A1 (en) * | 1994-09-30 | 1996-09-18 | Koninklijke Philips Electronics N.V. | Multimedia system receptive for presentation of mass data comprising an application program inclusive of a multiplatform interpreter, and a platform subsystem arranged for interaction with said multiplatform interpreter, and mass memory for use with such system or subsystem |
| GB2316200A (en) * | 1996-08-08 | 1998-02-18 | Ibm | Accessing information about executable code |
| US6073139A (en) * | 1996-08-15 | 2000-06-06 | Gioquest, A Division Of Schlumberger Technology Corp. | Integrated data communication and data access system including the application data interface |
| EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
| US6112024A (en) * | 1996-10-02 | 2000-08-29 | Sybase, Inc. | Development system providing methods for managing different versions of objects with a meta model |
| US6353859B1 (en) * | 1997-04-30 | 2002-03-05 | International Business Machines Corporation | Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment |
| FR2765702B1 (fr) * | 1997-07-02 | 2001-07-06 | Bull Sa | Architecture de systeme de traitement de l'information |
| US6226652B1 (en) * | 1997-09-05 | 2001-05-01 | International Business Machines Corp. | Method and system for automatically detecting collision and selecting updated versions of a set of files |
| JP3613504B2 (ja) * | 1997-11-05 | 2005-01-26 | 株式会社日立製作所 | 版管理・構成管理方法および装置および版管理・構成管理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| US5937411A (en) * | 1997-11-21 | 1999-08-10 | International Business Machines Corporation | Method and apparatus for creating storage for java archive manifest file |
| US6470227B1 (en) * | 1997-12-02 | 2002-10-22 | Murali D. Rangachari | Method and apparatus for automating a microelectric manufacturing process |
| US6199198B1 (en) * | 1997-12-10 | 2001-03-06 | International Business Machines Corp. | Computer system, method, and article of manufacture for visualizing differences between design artifacts and object-oriented code |
| US5996073A (en) * | 1997-12-18 | 1999-11-30 | Tioga Systems, Inc. | System and method for determining computer application state |
| US6330709B1 (en) * | 1998-03-30 | 2001-12-11 | International Business Machines Corporation | Virtual machine implementation for shared persistent objects |
| US6393557B1 (en) | 1998-05-08 | 2002-05-21 | International Business Machines Corporation | Dynamic method for configuring a computer system |
| US6434656B1 (en) * | 1998-05-08 | 2002-08-13 | International Business Machines Corporation | Method for routing I/O data in a multiprocessor system having a non-uniform memory access architecture |
| US6223344B1 (en) * | 1998-06-11 | 2001-04-24 | Internationl Business Machines Corporation | Apparatus and method for versioning persistent objects |
| US6321238B1 (en) * | 1998-12-28 | 2001-11-20 | Oracle Corporation | Hybrid shared nothing/shared disk database system |
| US6343297B1 (en) | 1998-12-30 | 2002-01-29 | International Business Machines Corporation | Methods, systems and computer program products for providing document management for software development systems |
| US6336217B1 (en) * | 1998-12-30 | 2002-01-01 | International Business Machines Corporation | Systems, methods and computer program products for end-to-end software development process automation |
| WO2000070417A1 (en) | 1999-05-17 | 2000-11-23 | The Foxboro Company | Process control configuration system with parameterized objects |
| US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
| US6788980B1 (en) | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
| US6457170B1 (en) | 1999-08-13 | 2002-09-24 | Intrinsity, Inc. | Software system build method and apparatus that supports multiple users in a software development environment |
| US6438743B1 (en) | 1999-08-13 | 2002-08-20 | Intrinsity, Inc. | Method and apparatus for object cache registration and maintenance in a networked software development environment |
| US6256773B1 (en) * | 1999-08-31 | 2001-07-03 | Accenture Llp | System, method and article of manufacture for configuration management in a development architecture framework |
| US6662357B1 (en) | 1999-08-31 | 2003-12-09 | Accenture Llp | Managing information in an integrated development architecture framework |
| US7139999B2 (en) | 1999-08-31 | 2006-11-21 | Accenture Llp | Development architecture framework |
| US7219332B2 (en) * | 2000-07-07 | 2007-05-15 | Microsoft Corporation | Configuring software components(merge) with transformation component using configurable and non-configurable data elements |
| US7730001B2 (en) * | 2001-02-09 | 2010-06-01 | International Business Machines Corporation | Computer system program and method to characterize each of a plurality of objects used at runtime to determine a lowest cost property among a plurality of potential alternative properties for each of said objects minimizing total cost of interaction among components during program execution |
| US6981250B1 (en) * | 2001-07-05 | 2005-12-27 | Microsoft Corporation | System and methods for providing versioning of software components in a computer programming language |
| US6912520B2 (en) * | 2001-08-29 | 2005-06-28 | Sun Microsystems, Inc. | System and method for providing a persistent object framework for managing persistent objects |
| AUPR804601A0 (en) * | 2001-10-02 | 2001-10-25 | Bevington & Partners Pty Ltd | System and method of managing change process |
| US20030191762A1 (en) * | 2002-04-08 | 2003-10-09 | Juha Kalliokulju | Group management |
| US7047527B1 (en) * | 2002-07-18 | 2006-05-16 | Unisys Corporation | Method for identification of version levels of components across heterogeneous systems while eliminating mis-matched versions |
| US7337388B2 (en) * | 2003-01-02 | 2008-02-26 | Microsoft Corporation | Tool-based iterative document management |
| US20040172637A1 (en) * | 2003-02-28 | 2004-09-02 | Sap Ag | Code morphing manager |
| US7594219B2 (en) * | 2003-07-24 | 2009-09-22 | International Business Machines Corporation | Method and apparatus for monitoring compatibility of software combinations |
| US7472422B1 (en) | 2003-09-10 | 2008-12-30 | Symantec Corporation | Security management system including feedback and control |
| US7383534B1 (en) * | 2003-09-10 | 2008-06-03 | Symantec Corporation | Configuration system and methods including configuration inheritance and revisioning |
| US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
| US8381037B2 (en) | 2003-10-09 | 2013-02-19 | International Business Machines Corporation | Method and system for autonomic execution path selection in an application |
| US7415705B2 (en) | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
| US7895382B2 (en) | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
| US7484212B2 (en) * | 2004-02-27 | 2009-01-27 | International Business Machines Corporation | Methods and arrangements for automated change plan construction and impact analysis |
| US8171474B2 (en) * | 2004-10-01 | 2012-05-01 | Serguei Mankovski | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface |
| JP4700478B2 (ja) * | 2005-11-15 | 2011-06-15 | 株式会社日立製作所 | 記憶システム及びアンドゥ処理方法 |
| US7716530B2 (en) | 2006-02-28 | 2010-05-11 | Microsoft Corporation | Thread interception and analysis |
| US9250972B2 (en) * | 2006-06-19 | 2016-02-02 | International Business Machines Corporation | Orchestrated peer-to-peer server provisioning |
| US20080065680A1 (en) * | 2006-09-12 | 2008-03-13 | Microsoft Corporation | Change and release management system |
| EP1916596A1 (en) * | 2006-10-26 | 2008-04-30 | Hewlett-Packard Development Company, L.P. | Improvements in or relating computer network management |
| US8140545B2 (en) * | 2006-12-28 | 2012-03-20 | Sap Ag | Data organization and evaluation using a two-topology configuration |
| US20090192884A1 (en) * | 2008-01-28 | 2009-07-30 | Ren-Yi Lo | Method and system for incentive-based knowledge-integrated collaborative change management |
| CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
| US8266477B2 (en) * | 2009-01-09 | 2012-09-11 | Ca, Inc. | System and method for modifying execution of scripts for a job scheduler using deontic logic |
| US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
| US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
| US8997084B2 (en) * | 2011-04-20 | 2015-03-31 | Hewlett-Packard Development Company, L.P. | Method and apparatus for determining compatible versions of dependent entities in a computer system |
| US9607006B2 (en) * | 2011-10-06 | 2017-03-28 | General Electric Company | Temporary distributed file persistence |
| US8949824B2 (en) | 2012-09-28 | 2015-02-03 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
| US9128792B2 (en) | 2012-09-28 | 2015-09-08 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
| US9317269B2 (en) | 2012-09-28 | 2016-04-19 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
| US9235491B2 (en) | 2012-09-28 | 2016-01-12 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
| US9128824B2 (en) * | 2012-12-24 | 2015-09-08 | Intel Corporation | In-place change between transient and persistent state for data structures on non-volatile memory |
| CN114691162B (zh) * | 2020-12-28 | 2025-05-13 | 北京广利核系统工程有限公司 | 组态软件数据结构升级方法、装置和计算机设备 |
| JP2024126151A (ja) * | 2023-03-07 | 2024-09-20 | 日本電気株式会社 | システム構成導出装置、システム構成導出方法およびプログラム |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
| US4714992A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Communication for version management in a distributed information service |
| US5047918A (en) * | 1985-12-31 | 1991-09-10 | Tektronix, Inc. | File management system |
| US4897781A (en) * | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
| US4809170A (en) * | 1987-04-22 | 1989-02-28 | Apollo Computer, Inc. | Computer device for aiding in the development of software system |
| US5226161A (en) * | 1987-08-21 | 1993-07-06 | Wang Laboratories, Inc. | Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types |
| US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
| US4912637A (en) * | 1988-04-26 | 1990-03-27 | Tandem Computers Incorporated | Version management tool |
| US4970639A (en) * | 1988-05-20 | 1990-11-13 | International Business Machines Corporation | Virtual machine architecture independent program loader |
| US5051898A (en) * | 1988-06-13 | 1991-09-24 | Eda Systems, Inc. | Method for specifying and controlling the invocation of a computer program |
| US4989132A (en) * | 1988-10-24 | 1991-01-29 | Eastman Kodak Company | Object-oriented, logic, and database programming tool with garbage collection |
| US5018075A (en) * | 1989-03-24 | 1991-05-21 | Bull Hn Information Systems Inc. | Unknown response processing in a diagnostic expert system |
| FR2647239B1 (fr) * | 1989-05-22 | 1991-07-05 | Bull Sa | Procede de generation d'interfaces pour applications-utilisateurs visualisables sur l'ecran d'un systeme informatique et dispositif pour mettre en oeuvre ledit procede |
| DE69032649T2 (de) * | 1989-08-01 | 1999-05-06 | Silicon Graphics Inc., Mountain View, Calif. 94039 | Dateiveränderungsmonitor für rechner-, betriebs- und dateiverwaltungssysteme |
| CA2025142A1 (en) * | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed applications architecture |
| JP3092135B2 (ja) * | 1990-03-13 | 2000-09-25 | 株式会社日立製作所 | アプリケーシヨン実行制御方法 |
| US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
| US5390310A (en) * | 1991-09-30 | 1995-02-14 | Apple Computer, Inc. | Memory management unit having cross-domain control |
| US5410703A (en) * | 1992-07-01 | 1995-04-25 | Telefonaktiebolaget L M Ericsson | System for changing software during computer operation |
| US5537529A (en) * | 1993-04-22 | 1996-07-16 | Apple Computer, Inc. | Apparatus and method for creating versions of computer models and creating communications incorporating created versions therefrom |
| JP3017912B2 (ja) * | 1993-12-13 | 2000-03-13 | シャープ株式会社 | 液晶表示装置用電極基板及び液晶表示装置 |
-
1991
- 1991-05-10 EP EP19910304227 patent/EP0458495A3/en not_active Withdrawn
- 1991-05-20 JP JP3114523A patent/JPH0683595A/ja active Pending
-
1993
- 1993-05-14 US US08/062,492 patent/US5862386A/en not_active Expired - Lifetime
-
1995
- 1995-06-07 US US08/487,353 patent/US5787280A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5787280A (en) | 1998-07-28 |
| US5862386A (en) | 1999-01-19 |
| EP0458495A2 (en) | 1991-11-27 |
| EP0458495A3 (en) | 1993-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0683595A (ja) | 永続的及び過渡的オブジェクトのバージョンと構成を管理する機能を提供する方法と装置 | |
| US7543268B2 (en) | Development environment for developing applications using a metamodel and a metadata API | |
| US20030163479A1 (en) | Method and apparatus for implementing a data management system using a metadata specification | |
| US6226792B1 (en) | Object management system supporting the use of application domain knowledge mapped to technology domain knowledge | |
| Jin et al. | OntoWebber: Model-Driven Ontology-Based Web Site Management. | |
| AU2003204351B2 (en) | System and method for associating properties with objects | |
| US8086560B2 (en) | Schema mapping specification framework | |
| US8255888B2 (en) | API derivation and XML schema derivation for developing applications | |
| US20050071805A1 (en) | Developing applications using a metamodel | |
| US6578045B1 (en) | System and method for retrieving registry data | |
| KR20040079336A (ko) | 분산형 컴퓨팅 시스템을 위한 아키텍쳐 및 분산형애플리케이션의 자동화된 설계, 배치 및 관리 | |
| Wiil et al. | Hyperform: A hypermedia system development environment | |
| US20080098037A1 (en) | Markup language based database upgrades | |
| Jones et al. | The OKS persistent in-memory object manager | |
| Bakay et al. | The UDM framework | |
| US20060031817A1 (en) | Integrated dynamic control flow and functionality generation for network computing environments | |
| Shklar et al. | Modelling Heterogeneous Information | |
| Noll III | Software object management in heterogeneous, autonomous environments: a hypertext approach | |
| DeBardeleben et al. | Next Generation Software Configuration Management System | |
| Hu et al. | Integration and querying of distributed databases | |
| Park | SOUL of OMEGA: Design and implementation of an object-based modeling environment for geoscientific applications | |
| Kleine | Backward and forward compatibility for TOSCA simple profile in YAML version 1.0: concept and modelling tooling support | |
| Eriksson | An ODBC Driver for the mediator database AMOS II | |
| Guide | Red Hat Web Application Framework 6.0 | |
| Carey | Computer Sciences Department |