JPH0969042A - パッチデ−タ自動作成方式 - Google Patents

パッチデ−タ自動作成方式

Info

Publication number
JPH0969042A
JPH0969042A JP7246663A JP24666395A JPH0969042A JP H0969042 A JPH0969042 A JP H0969042A JP 7246663 A JP7246663 A JP 7246663A JP 24666395 A JP24666395 A JP 24666395A JP H0969042 A JPH0969042 A JP H0969042A
Authority
JP
Japan
Prior art keywords
patch
record
program
data
management information
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
Application number
JP7246663A
Other languages
English (en)
Inventor
Toshimichi Kojima
利道 小島
Yoshimitsu Takiguchi
好光 滝口
Yoshihiro Kaya
良洋 嘉屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7246663A priority Critical patent/JPH0969042A/ja
Publication of JPH0969042A publication Critical patent/JPH0969042A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 修正前のオブジェクトと修正後のオブジェク
トの組からなるパッチデータを一つのソースプログラム
から自動作成する。 【構成】 オリジナルソースと、パッチステートメント
及びパッチ管理情報を含むパッチコーディングとからな
るプログラムソースをコンパイルし、オブジェクトプロ
グラムと、パッチ管理情報及びパッチオブジェクトを含
むパッチレコードとを生成し、オブジェクトプログラム
及びパッチレコードに基づき、指定パッチバージョンに
合致するパッチ管理情報及びパッチオブジェクトからな
るNEWテーブルと、指定パッチバージョンより古いプ
ログラムオブジェクト及びパッチオブジェクトからなる
OLDテーブルを作成し、OLDテーブルとNEWテー
ブルの対応するアドレス毎にオブジェクトの組を作成
し、作成したオブジェクトの組とNEWテーブルのパッ
チ管理情報を組み合わせてパッチデータを作成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウエアに対する
パッチ(緊急修正)デ−タを作成するパッチデ−タの作
成方式に関する。
【0002】
【従来の技術】従来、パッチデ−タの自動作成は、特開
平1−201727等に示すように、ソ−スコ−ドレベ
ルで修正を行なった修正後のデ−タファイルと修正前の
デ−タファイルとを比較し、不一致部分を抽出し自動的
にパッチデ−タを作成している。
【0003】
【発明が解決しようとする課題】上記従来方式では、以
下の問題があった。 (1)パッチデ−タの作成に際し修正前と修正後の二つ
のファイルが必要になり、処理が煩雑となる。 (2)一度のパッチデ−タの作成後、同一ソ−スファイ
ルについて別のパッチデ−タを追加する場合は、上記
(1)の二つのファイルの内、どちらに追加するかの管
理が煩雑になり、作業ミスなどが発生する場合があっ
た。 本発明の目的は、修正前のオブジェクトと修正後のオブ
ジェクトの組からなるパッチデータを一つのソースプロ
グラムから自動作成することにある。
【0004】
【課題を解決するための手段】前記目的を達成するため
に、本発明は、1以上のオリジナルソースと、1以上の
パッチステートメント及びパッチ管理情報を含むパッチ
コーディングとからなるプログラムソースからパッチデ
ータを作成するパッチデータ自動作成方式であり、前記
プログラムソースからデータレコードと、オブジェクト
プログラムレコードと、パッチ管理情報レコード及びパ
ッチオブジェクトを含む1以上のパッチステートメント
レコードからなるパッチレコードとを生成する手段と、
該生成したオブジェクトプログラムレコード及びパッチ
レコードに基づき、指定されたパッチバージョンに合致
するパッチ管理情報及びパッチオブジェクトからなるN
EWテーブルと、指定されたパッチバージョンより古い
プログラムオブジェクト及びパッチオブジェクトからな
るOLDテーブルを作成する手段と、前記NEWテーブ
ルとOLDテーブルに基づき、前記OLDテーブルとN
EWテーブルの対応するアドレス毎にオブジェクトの組
を作成し、該作成したオブジェクトの組とNEWテーブ
ルのパッチ管理情報を組み合わせてパッチデータを作成
する手段を備えるようにしている。
【0005】
【作用】上記手段により、ソ−スレベルで記述したパッ
チコ−ディングを、オリジナルソ−スと共に一つのソ−
スファイルに蓄積しておき、パッチデータを必要とする
とき、このソースファイルの内容からオブジェクトを生
成し、このオブジェクトに基づき自動的にパッチデータ
を作成することができ、パッチデータ作成における処理
の煩雑さ、データ管理の煩雑さを回避でき、作業ミスの
発生を防止できる。
【0006】
【実施例】図1は、本発明の実施例の概略構成を示すブ
ロック図である。ソ−スファイル(101)には、図2
に示すソ−スレベルでコ−ディングしたパッチステ−ト
メントを含むプログラムソ−ス(201)が格納されて
いる。ソ−スファイル(101)内のプログラムソ−ス
(201)はコンパイラ(102)によりコンパイルさ
れ、図3及び図4で示す形式のオブジェクトとして出力
され、オブジェクトファイル(103)に格納される。
パッチ自動作成プログラム(104)は、オブジェクト
ファイル(103)からオブジェクトを入力し、パッチ
デ−タファイル(105)を作成する。
【0007】また、別に、オブジェクトファイル(10
3)を、コンパイラのメモリに確保するようにし、パッ
チ自動作成プログラム(104)をコンパイラの一機能
の型にして実現することも可能である。
【0008】図2は、パッチステ−トメントを含むプロ
グラムソ−スの構成例である。パッチステ−トメントを
含むプログラムソ−ス(201)は、オリジナルソ−ス
#1(202),オリジナルソ−ス#2(204),オ
リジナルソ−ス#3(206)と、パッチステ−トメン
ト#4を含むパッチコ−ディング(207)とパッチス
テ−トメント#5を含むパッチコ−ディング(208)
とを追加し、パッチアドレス211を対応付けるラベル
(203)と(205)をオリジナルソ−ス中のパッチ
位置に挿入する。これにより、コンパイラ(102)
は、パッチレコ−ド(421)(図4)を作成する際、
オリジナルソ−ス#2(204)の先頭部分に相当する
アドレスを該パッチレコ−ド(421)のアドレス42
4とし、パッチコーディング(207)のパッチステ−
トメント#4のオブジェクトの長さだけパッチレコ−ド
(421)を作成する。同様に、パッチレコ−ド(42
1)(図4)を作成する際、オリジナルソ−ス#3(2
06)の先頭部分に相当するアドレスを該パッチレコ−
ド(421)のアドレス424とし、パッチコーディン
グ(208)のパッチステ−トメント#4のオブジェク
トの長さだけパッチレコ−ド(421)を作成する。パ
ッチコ−ディング(207)は、パッチアドレス(21
1)とパッチ管理情報(212)とを定義できるSTA
PTCH(210)のコンパイラ制御命令と、一つまた
は複数の連続した命令語で構成されるパッチステ−トメ
ント(213)と一組のパッチの終了を示すコンパイラ
制御命令のENDPTCH(214)で構成する。パッ
チコ−ディング(208)についても同様である。な
お、パッチ管理情報(212)は、パッチ番号、パッチ
バージョン、オブジェクトのバージョン、レビジョン、
作成者、作成日、パッチする理由等からなる。
【0009】図3は、パッチレコ−ドを含んだオブジェ
クトファイルの構成例である。オブジェクトファイル
は、一つまたは複数のデ−タレコ−ド(301)と、一
つまたは複数のプログラムレコ−ド(302)と、一つ
または複数のパッチレコ−ド(303)とで構成され
る。プログラムレコード#1,#2,#3はオリジナル
ソース#1(202),#2(204),#3(20
6)にそれぞれ対応し、パッチレコード#4,#5はパ
ッチコーディング(207),(208)にそれぞれ対
応する。なお、これらのレコ−ドの順序は、順不同でも
よい。
【0010】図4は、プログラムレコ−ド(302)と
パッチレコ−ド(303)のレコ−ドフォ−マット例で
ある。プログラムレコ−ドのレコ−ドフォ−マットは、
401で示し、内部にレコ−ドヘッダ(402),長さ
(403),アドレス(404),プログラムオブジェ
クト(405)を含む。パッチレコ−ドのレコ−ドフォ
−マットは、パッチ管理情報を含むパッチ管理情報レコ
−ド(411)とパッチオブジェクトを含むパッチステ
−トメントレコ−ド(421)の二種類である。パッチ
管理情報レコ−ド(411)が最初に配列され、その後
に、該パッチ管理情報レコ−ド(411)に係る1以上
のパッチステ−トメントレコ−ド(421)が配置され
る。パッチ管理情報レコ−ド(411)は、レコ−ドヘ
ッダ(412)とパッチ管理情報(414)と該パッチ
管理情報に対応するパッチステ−トメントレコ−ドの範
囲を決めるパッチステ−トメントレコ−ド数(413)
とを含む。パッチステ−トメントレコ−ド(421)
は、レコ−ドヘッダ(422),長さ(423),アド
レス(424)とパッチオブジェクト(425)とを含
む。これらのレコ−ドは、コンパイラ(102)で作成
される。
【0011】図5は、パッチ自動作成プログラム(10
4)が備えるべきテ−ブル例である。パッチ自動作成プ
ログラム(104)により作成されるパッチデ−タは、
パッチアドレスとパッチオブジェクトとパッチ前オブジ
ェクトとが必要である。パッチデ−タ作成用に、NEW
テ−ブル(501)とOLDテ−ブル(551)の二つ
が必要である。図5(a)に示すNEWテ−ブル(50
1)は、パッチ管理情報(510)とパッチエントリ
(520),(521)……とを含み、一つのパッチエ
ントリ(521)は、パッチアドレス(531),長さ
(532),パッチオブジェクト(533)とで構成さ
れている。図5(b)に示すOLDテ−ブル(551)
は、パッチを加える前のステ−トメントエントリ(56
1),(562)……を含み、一つのエントリはアドレ
ス(571),長さ(572),パッチを加える前のオ
ブジェクト(573)で構成される。
【0012】図6、図7、図8は、パッチ自動作成のた
めの一実施例であるパッチ自動作成プログラム(10
4)が備える処理の例である。図6は、オブジェクトフ
ァイル(103)のパッチレコ−ド(303)から、指
定されたパッチバ−ジョンのパッチオブジェクトデ−タ
を、NEWテ−ブル(501)に登録する処理のフロー
チャートである。最初にSW(スイッチ)を0にセット
する(ステップ601)。次に、オブジェクトファイル
のレコ−ドを1レコ−ド読む(ステップ602)。デ−
タの終了(EOF)ならば終了し、そうでなければ、ス
テップ604に進む(ステップ602)。次いで、レコ
−ドヘッダを参照してパッチステ−トメントレコ−ドか
判定する(ステップ604)。判定がNOならば、パッ
チ管理情報レコ−ドか判定する(ステップ607)。判
定がNOならば、ステップ602に戻り、YESなら
ば、外部より指定されたパッチバージョンと一致するか
否か判定する(ステップ608)。判定がNOならば、
SWを0にセットし(ステップ610)、ステップ60
2に戻り、YESならば、SWを1にセットし(ステッ
プ609)、NEWテーブルにパッチ管理情報を登録し
(ステップ611)、ステップ602に戻る。上記のス
テップ604の判定がYESならば、SW=1であるか
判定し(ステップ605)、判定がNOならば、ステッ
プ602に戻り、YESならば、NEWテーブルに、ア
ドレス,長さ,オブジェクトを登録し(ステップ60
6)、ステップ602に戻る。
【0013】図7は、オブジェクトファイル(103)
のプログラムレコ−ド(302)とパッチレコ−ド(3
03)から、該当バ−ジョンのパッチが割り当てられる
前のオブジェクトデ−タを、OLDテ−ブル(551)
に登録する処理のフローチャートである。ここでは、プ
ログラムレコ−ド、パッチバ−ジョンの古いパッチレコ
−ド、の順にオブジェクトデ−タが読み込まれる事とす
る。最初に、オブジェクトファイルのレコ−ドを1レコ
−ド読む(ステップ701)。デ−タの終了(EOF)
であるか判定し(ステップ702)、判定がYESなら
ば終了し、NOならば、レコ−ドヘッダを参照してパッ
チステ−トメントレコ−ドか判定する(ステップ70
3)。次いで、ステップ703における判定がNOなら
ば、パッチ管理レコードか判定する(ステップ70
5)。ステップ705における判定がYESならば、パ
ッチバージョンを保管し(ステップ706)、ステップ
701に戻る。ステップ705における判定がNOなら
ば、プログラムレコードであるか判定する(ステップ7
07)。ステップ707における判定がNOならばステ
ップ701に戻り、判定がYESならばステップ709
に進む。
【0014】次に、上記のステップ703における判定
がYESであり、パッチステ−トメントレコ−ドである
場合には、上記のステップ706で保管されているパッ
チバージョンが外部より指定されたパッチバージョンと
一致するか判定する(ステップ704)。ステップ70
4における判定がYESならばステップ701に戻り、
判定がNOならば保管されているパッチバージョンが外
部より指定されたパッチバージョンより新しいか判定す
る(ステップ708)。ステップ708における判定が
YESであり、新しい場合にはステップ701に戻り、
判定がNOであれば、ステップ709に進む 次に、ステップ709では、NEWテーブルのデータと
アドレスがオーバーラップしているか判定し、判定がN
Oならばステップ701に戻り、判定がYESならば、
OLDテーブルにオーバーラップしたアドレスが登録さ
れているか判定する(ステップ710)。ステップ71
0における判定がNOならば、アドレスがオーバーラッ
プしたオブジェクト部分のみ取り出し、OLDテーブル
に登録し(ステップ711)、ステップ701に戻る。
ステップ710における判定がYESならば、OLDテ
ーブルの既登録エントリに、アドレスがオーバーラップ
したオブジェクト部分を上書き登録し(712)、ステ
ップ701に戻る。
【0015】図8は、NEWテ−ブル(501)とOL
Dテ−ブル(551)とから、パッチデ−タファイル
(105)を作成する処理である。NEWテ−ブルのパ
ッチ管理情報をパッチデ−タフォ−マットに変換し、パ
ッチデ−タファイル(105)に管理情報レコードとし
て出力する(801)。次に、OLDテ−ブル(50
1)とNEWテ−ブル(551)の対応するアドレス毎
にパッチデ−タの組を作成し、パッチデ−タフォ−マッ
トに変換しパッチデ−タファイル(105)に出力する
(802)。
【0016】図9は、パッチデータファイルの例を示
す。パッチデータファイル901は、管理情報レコード
902と1以上のパッチデ−タの組レコード903を格
納する。管理情報レコード902は、レコードID91
1と管理情報912からなる。パッチデ−タの組レコー
ド903は、レコードID913、アドレス914、O
LDテーブルから抽出したオブジェクト915、そして
NEWテーブルから抽出したオブジェクト916からな
る。
【0017】
【発明の効果】本発明によれば、ソ−スレベルで記述し
たパッチコ−ディングを、オリジナルソ−スをもととす
る一つのソ−スファイルに蓄積し、ソ−スファイルの内
容を用いて容易にパッチデ−タの自動作成をすることが
できる。また、パッチデータ作成における処理の煩雑
さ、データ管理の煩雑さを回避でき、作業ミスの発生を
防止できる。
【図面の簡単な説明】
【図1】本発明の実施例の概略構成を示すブロック図で
ある。
【図2】パッチステ−トメントを含むプログラムソ−ス
の構成例を示す図である。
【図3】パッチレコ−ドを含んだオブジェクトファイル
の構成例を示す図である。
【図4】プログラムレコ−ドとパッチレコ−ドのレコ−
ドフォ−マット例を示す図である。
【図5】パッチ自動作成プログラムが備えるテ−ブル例
を示す図である。
【図6】オブジェクトファイルのパッチレコ−ドから指
定されたパッチバ−ジョンのオブジェクトデ−タをNE
Wテ−ブルに登録する処理のフローチャートである。
【図7】オブジェクトファイルのプログラムレコ−ドと
パッチレコ−ドから、該当バ−ジョンのパッチが割り当
てられる前のオブジェクトデ−タを、OLDテ−ブルに
登録する処理のフローチャートである。
【図8】NEWテ−ブルとOLDテ−ブルとからパッチ
デ−タファイルを作成する処理のフローチャートであ
る。
【図9】パッチデ−タファイルの一例を示す図である。
【符号の説明】
101 ソ−スファイル 102 コンパイラ 103 オブジェクトファイル 104 パッチ自動作成プログラム 105 パッチデ−タファイル 201 パッチステ−トメントを含むソ−スプログラム 202、204、206 オリジナルソース 203、205 LABEL 207、208 パッチコ−ディング 210、214 コンパイラ制御命令 213 パッチステ−トメント

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 1以上のオリジナルソースと、1以上の
    パッチステートメント及びパッチ管理情報を含むパッチ
    コーディングとからなるプログラムソースからパッチデ
    ータを作成するパッチデータ自動作成方式であって、 前記プログラムソースからデータレコードと、オブジェ
    クトプログラムレコードと、パッチ管理情報レコード及
    びパッチオブジェクトを含む1以上のパッチステートメ
    ントレコードからなるパッチレコードとを生成する手段
    と、 該生成したオブジェクトプログラムレコード及びパッチ
    レコードに基づき、指定されたパッチバージョンに合致
    するパッチ管理情報及びパッチオブジェクトからなるN
    EWテーブルと、指定されたパッチバージョンより古い
    プログラムオブジェクト及びパッチオブジェクトからな
    るOLDテーブルを作成する手段と、 前記NEWテーブルとOLDテーブルに基づき、前記O
    LDテーブルとNEWテーブルの対応するアドレス毎に
    オブジェクトの組を作成し、該作成したオブジェクトの
    組とNEWテーブルのパッチ管理情報を組み合わせてパ
    ッチデータを作成する手段を備えることを特徴とするパ
    ッチデータ自動作成方式。
JP7246663A 1995-08-31 1995-08-31 パッチデ−タ自動作成方式 Pending JPH0969042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7246663A JPH0969042A (ja) 1995-08-31 1995-08-31 パッチデ−タ自動作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7246663A JPH0969042A (ja) 1995-08-31 1995-08-31 パッチデ−タ自動作成方式

Publications (1)

Publication Number Publication Date
JPH0969042A true JPH0969042A (ja) 1997-03-11

Family

ID=17151769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7246663A Pending JPH0969042A (ja) 1995-08-31 1995-08-31 パッチデ−タ自動作成方式

Country Status (1)

Country Link
JP (1) JPH0969042A (ja)

Similar Documents

Publication Publication Date Title
US5623661A (en) System for and method of providing delta-versioning of the contents of PCTE file objects
US20020087956A1 (en) System and method for linear processing of software modules
JPH0969042A (ja) パッチデ−タ自動作成方式
JPH08221417A (ja) 構造化文書の新旧対照編集装置
US7222128B2 (en) Method for updating and preserving data when performing a software upgrade
US20040205666A1 (en) System and method for anticipated file editing
JP2859501B2 (ja) 工事設計支援システム
JPH06314194A (ja) パッチ方式
JP2001060240A (ja) フォーマット修正方法およびデータ変換方法
JPH05197561A (ja) コンパイル方式
JPH06242933A (ja) プログラムドキュメント保守装置
JPH0561666A (ja) ソースプログラム作成装置
JPS6333190B2 (ja)
JP2647044B2 (ja) 履歴管理方式
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体
JPH05210575A (ja) トランザクションファイルのコンペア方法
JPH11143865A (ja) Www−oltp連携システムにおけるhtml文書生成システム及び生成方法
JPS6398029A (ja) パツチ自動選択適用方式
CN116009832A (zh) 基于Excel文件生成软件架构代码的方法
JP2669128B2 (ja) 言語処理システム
JPH0713752A (ja) プログラムのリビジョン管理方法とその装置
JPH0816382A (ja) 誤修正行検索装置
JPH01316823A (ja) オペレーティングシステム修正方式
JPH07175643A (ja) ソフトウェア設計書とソースプログラムの連動編集が可能なソフトウェア開発支援装置
JPH03156641A (ja) コンパイル処理方式