JP3946057B2 - 整合性検査支援方法および整合性検査支援システム - Google Patents

整合性検査支援方法および整合性検査支援システム Download PDF

Info

Publication number
JP3946057B2
JP3946057B2 JP2002055963A JP2002055963A JP3946057B2 JP 3946057 B2 JP3946057 B2 JP 3946057B2 JP 2002055963 A JP2002055963 A JP 2002055963A JP 2002055963 A JP2002055963 A JP 2002055963A JP 3946057 B2 JP3946057 B2 JP 3946057B2
Authority
JP
Japan
Prior art keywords
file
source
attribute information
computer
consistency
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.)
Expired - Fee Related
Application number
JP2002055963A
Other languages
English (en)
Other versions
JP2003256202A5 (ja
JP2003256202A (ja
Inventor
禎介 村上
剛史 清田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002055963A priority Critical patent/JP3946057B2/ja
Priority to US10/360,737 priority patent/US7577946B2/en
Publication of JP2003256202A publication Critical patent/JP2003256202A/ja
Publication of JP2003256202A5 publication Critical patent/JP2003256202A5/ja
Application granted granted Critical
Publication of JP3946057B2 publication Critical patent/JP3946057B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は機械語に翻訳されたファイルの生成元のソースファイルとそのソースファイルの現在の状態との整合性検査を支援するための整合性検査支援方法および整合性検査支援システムに関し、特にライブラリ資産として用意されたファイルの整合性検査に有用な整合性検査支援方法および整合性検査支援システムに関する。
【0002】
【従来の技術】
現在のソフトウェアは、様々なライブラリ資産を利用して開発されるのが一般的である。ライブラリは、汎用的な処理を記述したプログラムである。ライブラリ資産を利用することで、汎用的な処理に関してはライブラリを呼び出すだけで実行できる。これにより、ソフトウェア開発効率が向上する。
【0003】
ライブラリ作成時には、まず、ソースコード(処理ロジックをプログラム言語で記述したもの)が記述されたソースファイルが作成される。次に、ソースファイルからオブジェクトファイルへの翻訳処理(コンパイル)、複数のオブジェクトファイルの結合編集処理(リンク)を経て、実行形式ファイルが作成される。以下、ソースファイル、オブジェクトファイル、および実行形式ファイルを含めてライブラリ資産と呼ぶこととする。
【0004】
ここで、ソースファイルは、ソフトウェア開発者が作成したソースコードを格納するファイルである。オブジェクトファイルは、ソースコードをコンピュータで実行可能な機械語に変換(翻訳)することで得られたオブジェクトコード(計算機で実行可能な機械語コード)を格納するファイルである。一般的には、オブジェクトファイルとソースファイルとは、1対1の関係で作成される。実行形式ファイルは、複数のオブジェクトファイルを結合/編集することで得られたロードモジュール(計算機で実行可能な機械語コード)を格納するファイルである。
【0005】
汎用的に利用されるコンピュータには、大量の実行形式ファイルがライブラリ資産として用意されている。アプリケーションソフトウェアは、実行形式ファイルを指定して、ライブラリ資産で提供された処理機能を利用することができる。
【0006】
【発明が解決しようとする課題】
ところで、ライブラリ資産は、様々な理由で修正される。たとえば、バグ(設計通りに動作しない部分)が発見された場合や、機能向上の要求が発生した場合などにライブラリ資産の修正作業が適宜行われる。ライブラリ資産の修正は、最初にソースファイルに対して行われる。その後、修正されたソースファイルからオブジェクトファイルが生成される。そして、新たに生成されたオブジェクトファイルによって、修正内容を反映した実行形式ファイルが生成される。
【0007】
ソースファイルの内容が修正された場合、修正結果がユーザの使用環境に置かれた実行形式ファイルに反映されたか否かを明確にする必要がある。そこで、一般には、実行形式ファイルの作成に利用されたソースファイルを台帳によって管理していた。台帳は、実行形式ファイルの版数とソースファイルの版数との対応関係が設定された文書であり、実行形式ファイルの作成作業を行った作業者などが作成する。
【0008】
しかし、ライブラリの修正内容の反映状況を台帳によって管理するには、人手がかかる。しかも、人手に頼っていると、台帳の記入間違いや、記入漏れなどが発生する。そのため、正確性を確保するのが困難である。そこで、ライブラリ資産の修正内容の反映の有無を、人手を介さずに検査できることが望まれている。
【0009】
本発明はこのような点に鑑みてなされたものであり、機械語に翻訳されたファイルに対するソースファイルの修正内容の反映の有無を容易に検査できるようにした整合性検査支援方法および整合性検査支援システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の第1の態様では、上記課題を解決するために、図1に示すような整合性検査支援プログラムが提供される。本発明に係る整合性検査支援プログラムは、機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するためのものである。この整合性検査支援プログラムをコンピュータに実行させることで、コンピュータによって以下の処理が行われる。
【0011】
ソースファイル1内のソースコードが機械語コード3aに翻訳され(ステップS1)、機械語コード3aが記述されたファイル3が生成されると、ソースファイル1の所在情報2aと、ソースファイル1の改編に応じて変更されるデータとを含むソース属性情報2を取得し(ステップS2)、翻訳によって生成されたファイル3に、ソース属性情報3bを付加する(ステップS3)。
【0012】
このような整合性検査支援プログラムをコンピュータで実行させれば、ソースファイル1内のソースコードが機械語コード3aに翻訳されたとき、機械語コード3aと、ソースファイル1の所在情報2aを含むソース属性情報3bとからなるファイル3が生成される。以後、ファイル3に含まれるソース属性情報3bを参照して、ソースファイル1の所在を認識できる。その所在に現在格納されている生成元現状ファイル4のソース属性情報5とファイル3内のソース属性情報3bとの比較により、ソースファイル1と生成元現状ファイル4との整合性を検査できる。これにより、ファイル3生成後のソースファイル1の修正の有無を容易に判断することができる。
【0013】
また、本発明の第2の態様では、上記課題を解決するために、機械語に翻訳されたファイル3の生成元のファイルと当該ファイルの最新版との整合性検査を支援するための整合性検査支援方法において、ソースファイル1内のソースコードが機械語コード3aに翻訳され(ステップS1)、当該機械語コード3aが記述されたファイル3が生成されると、ソースファイル1の所在情報2aと、ソースファイル1の改編に応じて変更されるデータとを含むソース属性情報2を取得し(ステップS2)、翻訳によって生成されたファイル3に、ソース属性情報3bを付加する(ステップS3)、ことを特徴とする整合性検査支援方法が提供される。
【0014】
このような整合性検査支援方法によれば、ソースファイル1内のソースコードが機械語コード3aに翻訳されたとき、機械語コード3aと、ソースファイル1の所在情報2aを含むソース属性情報3bとからなるファイル3が生成される。以後、上記整合性検査支援プログラムに係る発明と同様に、ファイル3生成後のソースファイル1の修正の有無を容易に判断することができる。
【0015】
また、本発明の第3の態様では、上記課題を解決するために、機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援装置において、前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得する取得手段と、翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する付加手段と、を有することを特徴とする整合性検査支援装置が提供される。
【0016】
このような整合性検査支援装置によれば、ソースファイル内のソースコードが機械語コードに翻訳され、機械語コードが記述されたファイルが生成されると、取得手段により、ソースファイルの所在情報と、ソースファイルの改編に応じて変更されるデータとを含むソース属性情報が取得される。そして、付加手段により、翻訳によって生成されたファイルに、ソース属性情報が付加される。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【0018】
図1は、本発明の実施の形態に適用される発明の概念図である。図1には、本発明に係る整合性検査支援プログラムに従って動作するコンピュータが実行する処理が示されている。
【0019】
コンピュータは、ソースファイル1内のソースコード機械語コード3aに翻訳し(ステップS1)、機械語コード3aが記述されたファイル3を生成する。そのとき、コンピュータは、ソースファイル1の所在情報2aと、ソースファイル1の改編に応じて変更されるデータとを含むソース属性情報2を取得する(ステップS2)。ソースファイル1の改編に応じて変更されるデータは、たとえば、更新日時やファイルサイズである。次に、コンピュータは、翻訳によって生成されたファイル3に、ソース属性情報3bを付加する(ステップS2)。
【0020】
その後、コンピュータは、翻訳によって生成されたファイル3を指定した整合性検査要求を受け取ると、ファイル3に含まれるソース属性情報3bを取得する(ステップS4)。次に、コンピュータは、取得したソース属性情報3bに含まれる所在情報で示された位置に格納されている生成元現状ファイル4の属性情報5を取得する(ステップS5)。なお、すでに生成元現状ファイル4の所在は分かっているため、属性情報5としては、生成元現状ファイル4の改編に応じて変更されるデータ(たとえば、更新日時やファイルサイズ)が取得される。
【0021】
そして、コンピュータは、生成元現状ファイル4の属性情報5と、ファイル3内のソース属性情報3bとを比較し、生成元現状ファイル4とファイル3の生成元となったソースファイル1との整合性を判断する(ステップS6)。
【0022】
整合性判断では、たとえば、更新日時とファイルサイズとが一致した場合に、ソースファイル1と生成元現状ファイル4とが同じであると判断する。更新日時とファイルサイズとの何れか一方でも違う値であれば、ソースファイル1と生成元現状ファイル4とが一致しないと判断する。ソースファイル1と同じ所在の生成元現状ファイル4がソースファイル1と一致ないということは、ソースファイル1の内容が変更された(生成元のソースファイル1が最新版ではない)ことを意味する。すなわち、ソースファイル1と生成元現状ファイル4とが一致しない場合、ソースファイル1への変更内容が、ファイル3に反映されていないことを示す。逆に、ソースファイル1と生成元現状ファイル4とが一致した場合、最新のソースファイル1に基づいて、ファイル3が生成されていることが保証される。
【0023】
このように、翻訳によって生成されるファイル3にソースファイル1のソース属性情報2を付加することによって、ソースファイル1に対する変更内容が、ファイル3に反映されているかどうかを容易に判断することができる。
【0024】
以上のような本発明を用いれば、大量の実行形式ファイルの整合性検査を、正確に行うことができる。たとえば、ライブラリ資産の整合性検査に有効に利用できる。
【0025】
なお、実行形式ファイルは、ソースファイルから直接作成される場合もあるが、多くの場合、オブジェクトファイルを経由して作成される。その場合、実行形式ファイルとオブジェクトファイルとの間の整合性検査と、オブジェクトファイルとソースファイルとの間の整合性検査とが必要となる。
【0026】
以下、オブジェクトファイルを経由して実行形式ファイルを生成することで構築されたライブラリ資産について整合性検査を行うシステムの例を、本発明の実施の形態として具体的に説明する。
【0027】
図2は、本実施の形態のシステム構成例を示す図である。図2に示すように、本実施の形態では、ネットワーク10を介して、複数のコンピュータ100,200,300,400が接続されている。各コンピュータ100,200,300,400に、ライブラリ整合性検査支援プログラムが実装されている。
【0028】
図3は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0029】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムに加え、ライブラリ資産が格納される。
【0030】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0031】
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0032】
以上のようなハードウェア構成でライブラリ整合性検査支援プログラムを実行することによって、本実施の形態の処理機能を実現することができる。以下、ライブラリ整合性検査支援プログラムに基づいて実行される機能をライブラリ整合性検査部と呼ぶこととする。なお、図3には、コンピュータ100のハードウェア構成例を示したが、他のコンピュータ200,300,400も同様のハードウェア構成で実現することができる。
【0033】
図4は、本実施の形態に係るコンピュータの処理機能を示す機能ブロック図である。コンピュータ100は、複数のソースファイル111,112,113,・・・、複数のオブジェクトファイル121,122,123,・・・、複数の実行形式ファイル131,132,133,・・・、エディタ141、翻訳処理部142、結合編集部143、ライブラリ整合性検査部150、通信処理部160、ファイルシステム170、およびファイル管理情報180を有している。
【0034】
ソースファイル111,112,113,・・・は、所定のプログラミング言語に従った命令文(ソースコード)で処理手順が記述されており、HDD103に格納されている。
【0035】
複数のオブジェクトファイル121,122,123,・・・は、コンピュータ100のCPU101で実行可能な機械語コードで処理手順が記述されており、HDD103に格納されている。
【0036】
複数の実行形式ファイル131,132,133,・・・は、複数のオブジェクトを結合、編集したものである。複数の実行形式ファイル131,132,133,・・・は、コンピュータ100のCPU101で実行可能な機械語コード(ロードモジュール)で処理手順が記述されており、HDD103に格納されている。
【0037】
エディタ141は、所定のプログラム言語に従って命令を記述する文字列(ソースコード)の編集、作成機能である。たとえば、ユーザの操作入力に応答して、エディタ141がソースコードを作成する。そして、エディタ141は、作成したソースコードの保存命令を受け取ると、そのソースコードを含むソースファイルをHDD103に格納する。
【0038】
翻訳処理部142は、操作入力等によって指定されたソースファイルをHDD103から読み込む。そして、翻訳処理部142は、読み込んだソースファイル内に記述されているソースコードを解釈し、コンピュータ100で読み取り可能な機械語コードに翻訳(コンパイル)する。すなわち、翻訳処理部142は、コンパイラとしての機能を有している。その後、翻訳処理部142は、翻訳の機械語コードをオブジェクトコードとして、オブジェクトファイルを作成し、オブジェクトファイルをHDD103に格納する。
【0039】
結合編集部143は、操作入力等によって指定された複数のオブジェクトファイルをHDD103から読み込む。そして、結合編集部143は、読み込んだ各オブジェクトファイルを結合すると共に、一連の処理記述となるように編集し、ロードモジュールを生成する。すなわち、結合編集部143は、リンカとしての機能を有している。その後、結合編集部143は、ロードモジュールを有する実行形式ファイルをHDD103に格納する。
【0040】
ライブラリ整合性検査部150は、ライブラリ資産(ソースファイル、オブジェクトファイル、実行形式ファイル)の整合性の検査を行う。整合性の検査とは、実行形式ファイルやオブジェクト生成時の生成元のファイルと、生成元のファイルの最新版とが一致するか否かを判断することである。
【0041】
具体的には、ライブラリ整合性検査部150は、ライブラリ生成時に整合性検査に必要な情報を、オブジェクトファイル121,122,123,・・・や実行形式ファイル131,132,133,・・・に挿入する。本実施の形態では、整合性に必要な情報は、オブジェクトファイル121,122,123,・・・や実行形式ファイル131,132,133,・・・の生成元となったファイル(ソースファイル111,112,113,・・・やオブジェクトファイル121,122,123,・・・)の所在(ファイル名やパスを含む)、更新日時、ファイルサイズなどを含む属性情報である。そして、ライブラリ整合性検査部150は、オブジェクトファイル121,122,123,・・・や実行形式ファイル131,132,133,・・・の整合性検査要求に応答して、検査対象のファイルに含まれている生成元のファイルの属性情報を用いて、検査対象のファイルの整合性を検査する。
【0042】
ライブラリ整合性検査部150は、ライブラリ資産の整合性の検査を行うために、属性情報挿入部151、属性情報抽出部152、および整合性検査部153を有している。
【0043】
属性情報挿入部151は、オブジェクトファイル121,122,123,・・・や実行形式ファイル131,132,133,・・・が生成される際に、それらのファイルに対し、生成元となったソースファイル111,112,113,・・・やオブジェクトファイル121,122,123,・・・の属性情報を付加する。
【0044】
具体的には、属性情報挿入部151は、翻訳処理部142による翻訳処理が行われた場合、生成元であるソースファイルの属性情報をファイル管理情報180から取得する。そして、属性情報挿入部151は、翻訳によって生成されたオブジェクトファイル内のオブジェクトコードの後ろに、ソースファイルの属性情報を挿入する。さらに、属性情報挿入部151は、ソースファイルの属性情報を挿入したオブジェクトファイルをHDD103に格納する。
【0045】
また、属性情報挿入部151は、結合編集部143による結合編集処理が行われた場合、生成元であるオブジェクトファイルの属性情報をファイル管理情報180から取得する。そして、属性情報挿入部151は、結合編集によって生成された実行形式ファイル内のロードモジュールの後ろに、オブジェクトファイルの属性情報を挿入する。さらに、属性情報挿入部151は、オブジェクトファイルの属性情報を挿入した実行形式ファイルをHDD103に格納する。
【0046】
なお、属性情報挿入部151は、ファイル管理情報180から取り出した属性情報のパスとファイル名との情報については、コンピュータ100のノード名を含む所在情報(ロケーション)に置き換えて、オブジェクトファイルや実行形式ファイルに挿入する。ここでノード名とは、ネットワーク10上でコンピュータ100を一意に識別するための名称である。
【0047】
属性情報抽出部152は、コンピュータ100内の整合性検査部153あるいは他のコンピュータ内の整合性検査部からの属性情報取得要求に応答して、属性情報取得要求で指定されたファイルから属性情報を抽出する。具体的には、属性情報抽出部152は、属性情報取得要求を受け取ると、属性情報取得要求で指定されたオブジェクトファイルまたは実行形式ファイルをHDD103から読み込む。そして、属性情報抽出部152は、実行形式ファイルを読み込んだ場合、実行形式ファイルに含まれているオブジェクトファイルの属性情報を取得する。また、属性情報抽出部152は、オブジェクトファイルを読み込んだ場合、そのオブジェクトファイルに含まれているソースファイルの属性情報を取得する。属性情報抽出部152は、取得した属性情報を、属性情報取得要求の送信元である整合性検査部153または他のコンピュータの整合性検査部に渡す。
【0048】
整合性検査部153は、操作入力等によって整合性検査要求を受け取ると、整合性検査要求で指定されている1以上の整合性検査対象ファイルに関する属性情報取得要求を、そのファイルを保持しているコンピュータの属性情報抽出部に対して送信する。次に、整合性検査部153は、属性情報抽出部から送られてきた属性情報を受け取り、属性情報に含まれるファイルの所在情報を抽出する。そして、整合性検査部153は、所在情報で示される場所に格納されたファイルの属性情報を取得し、その属性情報と整合性検査対象ファイルに含まれていた属性情報との整合性を比較する。整合性検査部153は、比較結果を、サマリ情報、アラーム情報として出力する。サマリ情報には、整合性検査の対象となったファイルのリストが格納される。アラーム情報には、整合性検査の結果、不整合と判断されたファイルの情報が格納される。
【0049】
通信処理部160は、ネットワーク10を介して、他のコンピュータ200,300,400との間の通信を行う。たとえば、HTTP(HyperText Transfer Protocol)によって通信が行われる。具体的には、通信処理部160は、他の何れかのコンピュータから送られてきた属性情報抽出要求を、属性情報抽出部152に渡す。その後、通信処理部160は、属性情報抽出部152から属性情報を受け取ると、属性情報抽出要求を出力したコンピュータに向けて受け取った属性情報を送信する。
【0050】
また、通信処理部160は、整合性検査部153から他の何れかのコンピュータ宛の属性情報取得要求を受け取ると、その属性情報取得要求を、宛先として指定されたコンピュータに対して送信する。その後、通信処理部160は、他のコンピュータから属性情報が送られてくると、その属性情報を整合性検査部153に渡す。
【0051】
さらに、通信処理部160は、他のコンピュータからHDD103内に格納されているファイルの属性情報取得要求を受け取ると、ファイルシステム170にその属性情報取得要求を渡す。そして、通信処理部160は、ファイルシステム170から返された属性情報を、属性情報取得要求の発信元のコンピュータに対して送信する。
【0052】
ファイルシステム170は、HDD103に格納されたファイルの所在を管理している。ファイルの所在に関する情報は、ファイル管理情報180として、HDD103に格納されている。ファイルシステム170は、エディタ141やライブラリ整合性検査部150からのファイルアクセスを制御している。すなわち、上記の説明におけるエディタ141やライブラリ整合性検査部150が、ソースファイル111,112,113,・・・、オブジェクトファイル121,122,123,・・・、実行形式ファイル131,132,133,・・・を取得する処理は、ファイルシステム170を介して行われる。
【0053】
また、ファイルシステム170は、翻訳処理部142、結合編集部143、または通信処理部160からの属性情報取得要求に応じて、その要求で指定されたファイルの属性情報を翻訳処理部142、結合編集部143または通信処理部160に渡す。
【0054】
ファイル管理情報180は、HDD103内のファイルの所在などを管理するための情報が記録されたHDD103内の記録領域である。ファイル管理情報180には、HDD103内のファイル毎の属性情報181,182,183,・・・が格納されている。
【0055】
次に、コンピュータ100で保持される各データのデータ構造について説明する。
ソースファイル111,112,113,・・・は、プログラミング言語(たとえば、C言語)により処理内容が記述されたキャラクタコードからなるテキストファイルである。オブジェクトファイル121,122,123,・・・や実行形式ファイル131,132,133,・・・のデータ構造としては、各種OSで標準的に採用されているELF(Executable and Linkable Format)を用いることができる。
【0056】
図5は、オブジェクトファイルのデータ構造例を示す図である。オブジェクトファイル121は、ヘッダ部121a、セクション部121b、およびソースファイル属性情報部121cで構成されている。ヘッダ部121aは、オブジェクトファイル121の管理情報(ヘッダ情報)を格納した領域である。セクション部121bは、翻訳処理後のシンボル情報やプログラム命令等を格納した領域である。ソースファイル属性情報部121cは、ソースファイル属性情報を格納した領域である。
【0057】
図6は、実行形式ファイルのデータ構造例を示す図である。実行形式ファイル131は、ヘッダ部131a、セクション部131b、およびオブジェクトファイル属性情報部131cで構成されている。ヘッダ部131aは、実行形式ファイル131の管理情報(ヘッダ情報)を格納した領域である。セクション部131bは、翻訳処理後のシンボル情報やプログラム命令等を格納した領域である。オブジェクトファイル属性情報部131cは、オブジェクトファイル属性情報を格納した領域である。
【0058】
なお、属性情報を付加する場合、属性情報を規格化された構造化文書に構造化することができる。たとえば、XML(eXtensible Markup Language)によって属性情報を構造化できる。XMLで属性情報を付加する場合、属性情報挿入部151が、属性情報181,182,183,・・・内の各データに対して、そのデータのXML要素種別を示すタグを付加する。
【0059】
図7は、属性情報に関するXMLへの構造化規則を示す図である。図7には、XML要素の内容の説明と、その要素の設定値のデータ形式とが示されている。XML要素「xml」は、XMLデータを記述した要素である。すなわち、XML要素「xml」のタグで囲まれた範囲が、XML形式で構造化されたデータであることを示している。XML要素「xml」は、XML要素「source」とXML要素「object」とで構成される。
【0060】
XML要素「source」は、ソースファイルの属性情報を記述した要素である。すなわち、XML要素「source」のタグで囲まれた範囲が、ソースファイル属性情報の表記部分であることを示している。XML要素「source」は、XML要素「url」、XML要素「timestamp」、およびXML要素「size」で構成される。
【0061】
XML要素「object」は、オブジェクトファイルの属性情報を記述した要素である。すなわち、XML要素「object」のタグで囲まれた範囲が、オブジェクトファイル属性情報の表記部分であることを示している。XML要素「object」は、XML要素「url」、XML要素「timestamp」、およびXML要素「size」で構成される。
【0062】
XML要素「url」は、ソースファイルまたはオブジェクトファイルの所在を記述した要素である。本実施の形態では、ライブラリ資産を構成する各ファイルの所在がURL(Uniform Resource Locator)で指定される。すなわち、XML要素「url」のタグで囲まれた範囲が、URL表記部分であることを示している。XML要素「url」は、URL書式で記述される。
【0063】
XML要素「timestamp」は、ソースファイルまたはオブジェクトファイルの更新日時を記述した要素である。すなわち、XML要素「timestamp」のタグで囲まれた範囲が、更新日時の表記部分であることを示している。XML要素「timestamp」は、「YYYY/MM/DD hh:mm:ss」という書式で記述する。ここで「YYYY」は西暦による年号を示している。「MM」は月を示している。「DD」は日を示している。「hh」は時を示している。「mm」は分を示している。「ss」は秒を示している。
【0064】
XML要素「size」は、ソースファイルまたはオブジェクトファイルのファイルサイズを記述した要素である。すなわち、XML要素「size」のタグで囲まれた範囲が、ファイルサイズの表記部分であることを示している。XML要素「size」は、数字(10進数)で記述される。また、XML要素「size」の単位はバイト(byte)である。
【0065】
図7に示したような構造化規則に従って、属性情報挿入部151が、XML形式の属性情報を生成する。また、図7に示したような構造化規則に従って、整合性検査部153が、各属性情報の種別(所在、更新日時、ファイルサイズなどの区別)を判断する。
【0066】
図8は、ファイル管理情報180内のデータ構造例を示す図である。ファイル管理情報180内には、ファイル毎の属性情報181,182,183,・・・が格納されている。属性情報181,182,183,・・・には、HDD103に格納されたファイルのファイル名、パス、更新日時などが含まれる。
【0067】
ファイル名は、対応するファイルが格納されたディレクトリ内で識別可能なファイルの名称である。パスは、対応するファイルが格納されたディレクトリのディレクトリ構造上の位置を示す情報である。更新日時は、対応するファイルが更新された最新の日時である。ファイルサイズは、対応するファイルのデータ容量である。格納ブロックは、対応するファイルを構成するデータが格納されたHDD103内の場所を示す情報である。
【0068】
なお、図8では、本実施の形態を理解しやすくするために、ファイル管理情報180の構成を単純化して示している。実際のファイルシステムでは、パスが直接定義さてれおらず、ディレクトリ構造上の親子関係が定義されている場合もある。この場合、ディレクトリ構造上の親子関係を辿ることでパスが特定できる。また、ファイル名は、ファイルに対応する属性情報内に設定されずに、親ディレクトリの属性情報内に設定される場合もある。そのとき、各ファイルの識別番号(たとえば、UNIX(商標)におけるiノード番号)を介して、ファイル名と、そのファイル名に対応するファイルの属性情報(更新日時やファイルサイズが含まれる)とが関連づけられる。
【0069】
以上のような構成のコンピュータ100においてライブラリ資産を管理することで、他のファイルから生成されるライブラリ資産に関して、最新のファイルから生成されているか否かを容易に判断することができる。以下、図4に示した構成のコンピュータにおける、ライブラリ資産管理に関する処理内容について具体的に説明する。
【0070】
図9は、実行形式ファイル生成時の処理の流れを示す概念図である。まず、ユーザがエディタ141を起動し、プログラミング作業を行う(ステップS11)。これにより、エディタ141によって、ソースファイル30が生成される。ソースファイル30には、ソースコード31が含まれている。また、ファイルシステム170によって、ソースファイル30に対応する属性情報(ソースファイル属性情報)32がファイル管理情報180に格納される。
【0071】
次に、ユーザがソースファイル30の翻訳を指示する操作入力を行うと、翻訳処理部142によってソースファイル30がコンピュータ100で実行可能な命令(オブジェクトコード41)に翻訳され、オブジェクトファイル40が生成される(ステップS12)。この際、属性情報挿入部151によって、ソースファイル30に対応するソースファイル属性情報32がファイル管理情報180より抽出され、ソースファイル属性情報32がオブジェクトファイル40に挿入される(ステップS13)。その結果、オブジェクトコード41とソースファイル属性情報32とを有するオブジェクトファイル40が、HDD103に格納される。この際、ファイルシステム170によって、オブジェクトファイル40に対応する属性情報(オブジェクトファイル属性情報)42がファイル管理情報180に格納される。
【0072】
さらに、ユーザがオブジェクトファイル40と他のオブジェクトファイル50との結合要求を指示する操作入力を行うと、結合編集部143によって、オブジェクトファイル40とオブジェクトファイル50とが結合され、ロードモジュール61が作成される。そして、そのロードモジュール61を有する実行形式ファイル60が作成される(ステップS14)。このとき、属性情報挿入部151によって、オブジェクトファイル40に対応するオブジェクトファイル属性情報42と、オブジェクトファイル50に対応するオブジェクトファイル属性情報52とがファイル管理情報180より抽出され、それらのオブジェクトファイル属性情報42,52が実行形式ファイル60に挿入される(ステップS15)。その結果、ロードモジュール61と複数のオブジェクトファイル属性情報42,52とを有する実行形式ファイル60が、HDD103に格納される。
【0073】
このようにして、生成元のファイルの属性情報を付加したオブジェクトファイル40や実行形式ファイル60が生成される。
図10は、ソースファイル属性情報の挿入例を示す図である。ソースファイル属性情報32には、ソースファイル30の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図10の例では、ロケーションは「http://sv1/mast/src/pg.c」である。ロケーションはURLで示されている。図10に示すロケーションは、スキーム名「http」、サーバ名(ノード名)「sv1」、パス「mast/src」、ファイル名「pg.c」である。更新日時は「2001/07/30 09:00:00」(2001年7月30日9時)である。ファイルサイズは「4690(バイト)」である。
【0074】
このようなソースファイル属性情報32がXML形式のデータに変換され、オブジェクトファイル40内のオブジェクトコード(バイナリデータ)の後にテキストデータで挿入される。図10の例では、ソースファイル属性情報32全体が<source>タグで囲まれている。ロケーションには<URL>タグが付けられ、更新日時には<timestamp>タグが付けられ、ファイルサイズには<size>タグが付けられている。
【0075】
図11は、オブジェクトファイル属性情報の挿入例を示す図である。オブジェクトファイル属性情報42には、オブジェクトファイル40の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図11の例では、ロケーションは「http://sv1/mast/lod/obj/pg.o」である。更新日時は「2001/07/30 12:00:00」(2001年7月30日12時)である。ファイルサイズは「17360(バイト)」である。同様に、オブジェクトファイル属性情報52には、オブジェクトファイル50の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図11の例では、ロケーションは「http://sv1/mast/lod/lib/libxx.so」である。更新日時は「2001/07/20 10:00:00」(2001年7月20日10時)である。ファイルサイズは「57900(バイト)」である。
【0076】
このようなオブジェクトファイル属性情報42,52がXML形式のデータに変換され、実行形式ファイル60内のロードモジュール(バイナリデータ)の後にテキストデータで挿入される。図11の例では、オブジェクトファイル属性情報42とオブジェクトファイル属性情報52とが、それぞれ<object>タグで囲まれている。ロケーションには<URL>タグが付けられ、更新日時には<timestamp>タグが付けられ、ファイルサイズには<size>タグが付けられている。
【0077】
このように、属性情報をXML形式に構造化することで、データの種別(ロケーション、更新日時、ファイルサイズ)を示す情報と関連づけて、各データを挿入することができる。なお、図10、図11に示した例では、見た目に理解しやすいようにXML要素単位で改行されているが、実際のデータには改行コードは含まれない。
【0078】
次に、図9に示した処理に関して、オブジェクトファイル生成時と実行形式ファイル生成時とに分けて、処理の詳細を説明する。
図12は、オブジェクトファイル生成時の処理手順を示すフローチャートである。この処理は、コンピュータ100のユーザの操作入力等によって、任意のソースファイルが指定され、そのソースファイルの翻訳要求(たとえば、コンパイルコマンド)が入力された場合に実行される。翻訳要求では、実行形式ファイルを直接生成するのではなく、オブジェクトファイルの生成が指定されているものとする。以下、図12に示す処理をステップ番号に沿って説明する。
【0079】
[ステップS111]翻訳処理部142は、指定されたソースファイル内のソースコードを、コンピュータ100で理解可能な命令に翻訳する。これにより、オブジェクトコードを含むオブジェクトファイルが生成される。
【0080】
[ステップS112]翻訳処理部142は、翻訳結果が正常か否かを判断する。なお、リンクエラー(結合すべきオブジェクトファイルが指定されていないこと)に関しては、正常な処理とみなす。翻訳処理が正常に行われたら、処理がステップS113に進められる。翻訳処理が正常に終了しなかったら、処理が終了する。
【0081】
[ステップS113]属性情報挿入部151は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルが格納されているディレクトリのパスを取得する。属性情報挿入部151は、取得したパスに、スキーム名(たとえば「http」)、サーバ名、ファイル名を付加することで、ソースファイルの所在を示すURLを生成する。
【0082】
[ステップS114]属性情報挿入部151は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルの更新日時を取得する。
[ステップS115]属性情報挿入部151は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルのファイルサイズを取得する。
【0083】
[ステップS116]属性情報挿入部151は、ステップS113〜S115で取得した、URL、更新日時、ファイルサイズに所定のタグを付けるなどの編集を行いXMLデータを生成する。
【0084】
[ステップS117]属性情報挿入部151は、ステップS116で生成したXMLデータを、ステップS111で生成されたオブジェクトファイル内のオブジェクトコードの後ろに挿入する。
【0085】
このようにして、オブジェクトファイルが生成される。
図13は、実行形式ファイル生成時の処理手順を示すフローチャートである。この処理は、コンピュータ100のユーザの操作入力等によって、複数のオブジェクトファイルが指定され、それらのオブジェクトファイルの結合要求(たとえば、リンクコマンド)が入力された場合に実行される。以下、図13に示す処理をステップ番号に沿って説明する。
【0086】
[ステップS121]結合編集部143は、指定されたオブジェクトファイル内のオブジェクトコードを結合、編集し、ロードモジュールを生成する。そして、結合編集部143は、ロードモジュールを有する実行形式ファイルを生成する。
【0087】
[ステップS122]結合編集部143は、結合編集結果が正常か否かを判断する。結合編集処理が正常に行われたら、処理がステップS123に進められる。結合編集処理が正常に終了しなかったら、処理が終了する。
【0088】
[ステップS123]属性情報挿入部151は、属性情報を抽出および挿入処理をまだ行っていない結合対象のオブジェクトファイルがあるか否かを判断する。未処理のオブジェクトファイルがあれば、処理がステップS124に進められる。結合対象の全てのオブジェクトファイルに関して処理が行われていれば、実行形式ファイルの生成処理が終了する。
【0089】
[ステップS124]属性情報挿入部151は、結合対象のオブジェクトファイルであり、ステップS124〜S128の処理がまだ行われていないオブジェクトファイルを1つ選択する。そして、属性情報挿入部151は、選択したオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルが格納されているディレクトリのパスを取得する。属性情報挿入部151は、取得したパスに、スキーム名(たとえば「http」)、サーバ名、ファイル名を付加することで、オブジェクトファイルの所在を示すURLを生成する。
【0090】
[ステップS125]属性情報挿入部151は、結合対象のオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルの更新日時を取得する。
【0091】
[ステップS126]属性情報挿入部151は、結合対象のオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルのファイルサイズを取得する。
【0092】
[ステップS127]属性情報挿入部151は、ステップS124〜S126で取得した、URL、更新日時、ファイルサイズに所定のタグを付けるなどの編集を行いXMLデータを生成する。
【0093】
[ステップS128]属性情報挿入部151は、ステップS127で生成したXMLデータを、ステップS121で生成された実行形式ファイル内のロードモジュールの後ろに挿入する。その後、処理がステップS123に進められる。
【0094】
このようにして、オブジェクトファイルの属性情報を有する実行形式ファイルが生成される。
次に、他のファイルから生成されたライブラリ資産の整合性を検査する処理について説明する。なお、整合検査処理は、実行形式ファイルに関する整合性検査と、オブジェクトファイルに対する整合性検査とがある。
【0095】
まず、実行形式ファイルに関する整合性検査処理について説明する。
図14は、実行形式ファイル整合性検査処理の概念図である。図14の例では、コンピュータ200に格納された実行形式ファイル70の整合性検査を、コンピュータ100において実行する場合の例である。なお、実行形式ファイル70は、コンピュータ300に格納されたオブジェクトファイル80(または、同じ所在の旧版のオブジェクトファイル)に基づいて生成されている。すなわち、オブジェクトファイル80は、実行形式ファイル70に対する生成元現状オブジェクトファイルに相当する。
【0096】
また、オブジェクトファイル80は、コンピュータ400に格納されたソースファイル90(または、同じ所在の旧版のソースファイル)に基づいて生成されている。すなわち、ソースファイル90は、オブジェクトファイル80に対する生成元現状オブジェクトファイルに相当する。
【0097】
整合性検査の際には、まず、コンピュータ200内の属性情報抽出部により、実行形式ファイル70からオブジェクトファイル属性情報71が抽出される(ステップS21)。このオブジェクトファイル属性情報71は、XML形式のデータである。抽出されたオブジェクトファイル属性情報71は、HTTPでコンピュータ100の整合性検査部153に送信される。
【0098】
また、コンピュータ300内のファイルシステムにより、オブジェクトファイル80の属性情報81(更新時刻とファイルサイズ)が、HTTPでコンピュータ100に送信される。また、コンピュータ300内の属性情報抽出部により、オブジェクトファイル80からソースファイル属性情報82が抽出される(ステップS22)。抽出されたソースファイル属性情報82は、HTTPでコンピュータ100の整合性検査部153に送信される。
【0099】
さらに、コンピュータ400内のファイルシステムにより、ソースファイル90の属性情報91(更新時刻とファイルサイズ)が、HTTPでコンピュータ100に送信される。
【0100】
コンピュータ100の整合性検査部153は、各コンピュータ200,300,400から送られた情報に基づいて、整合性の検査を行う。具体的には、オブジェクトファイル属性情報71とオブジェクトファイル属性情報81との内容(更新時刻とファイルサイズ)を比較する。さらに、ソースファイル属性情報82とソースファイル属性情報91との内容(更新時刻とファイルサイズ)を比較する。各比較結果が完全に一致すれば、実行形式ファイル70と、その実行形式ファイル70の生成元となるファイルとの整合性(最新のファイルに基づいて作成されていること)が確認される。
【0101】
整合性検査部153は、整合性検査履歴をサマリ情報510として出力する。また、整合性検査部153は、不整合(不一致の属性情報)が発見された場合、不一致の内容を示すアラーム情報520を出力する。
【0102】
以下、実行形式ファイルの整合性検査におけるコンピュータ100での処理内容を詳細に説明する。
図15は、実行形式ファイルの整合性検査処理の手順を示すフローチャートの前半である。この処理は、ユーザの操作入力等により、任意の実行形式ファイルが指定され、整合性検査要求が入力されたときに実行される処理である。なお、以下の説明では、コンピュータ100に対して整合性検査要求が入力されたものとして、図15に示す処理をステップ番号に沿って説明する。
【0103】
[ステップS131]整合性検査部153は、整合性検査要求で指定された実行形式ファイルを格納しているコンピュータ200に対して、オブジェクトファイル属性情報抽出要求を出す。すると、相手のコンピュータ200内の属性情報抽出部によって、実行形式ファイルからオブジェクトファイル属性情報が抽出される。抽出されたオブジェクトファイル属性情報は、コンピュータ200からコンピュータ100に送り返される。コンピュータ100の整合性検査部153は、コンピュータ200から送られたオブジェクトファイル属性情報を受け取る。
【0104】
[ステップS132]整合性検査部153は、オブジェクトファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップS133に進められる。正常に抽出されなかった場合には、処理が終了する。
【0105】
[ステップS133]整合性検査部153は、オブジェクトファイル属性情報を構成しているXMLデータを解析し、サマリ情報を出力する。
[ステップS134]整合性検査部153は、オブジェクトファイル属性情報からオブジェクトファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたURLである。
【0106】
[ステップS135]整合性検査部153は、ステップS134で取得したオブジェクトファイルの所在に基づいて、オブジェクトファイルを格納しているコンピュータ300にオブジェクトファイルの属性情報(更新日時とファイルサイズ)の取得要求を出力する。すると、コンピュータ300のファイルシステムからコンピュータ100へオブジェクトファイルの更新日時とファイルサイズとが送られる。整合性検査部153は、コンピュータ300から送られた更新日時とファイルサイズとを取得する。たとえば、HTTPのHEADコマンドを使用して、ファイルシステムから任意のオブジェクトファイルの更新日時とファイルサイズとを取得することができる。
【0107】
[ステップS136]整合性検査部153は、ステップS133で解析したオブジェクトファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部153は、抽出した更新日時と、ステップS135で取得したオブジェクトファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップS138に進められる。更新日時が一致しない場合には、処理がステップS137に進められる。
【0108】
[ステップS137]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
[ステップS138]整合性検査部153は、ステップS133で解析したオブジェクトファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に10進数の数字により、バイト単位の値で記載されている。そして、整合性検査部153は、抽出したファイルサイズと、ステップS135で取得したオブジェクトファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が図16のステップS141に進められる。ファイルサイズが一致しない場合には、処理がステップS139に進められる。
【0109】
[ステップS139]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
図16は、実行形式ファイルの整合性検査処理の手順を示すフローチャートの後半である。以下、図16に示す処理をステップ番号に沿って説明する。
【0110】
[ステップS141]整合性検査部153は、ステップS134で抽出したオブジェクトファイルの所在に基づいて、オブジェクトファイルを格納しているコンピュータ300に対して、ソースファイル属性情報抽出要求を出す。すると、相手のコンピュータ300内の属性情報抽出部によって、オブジェクトファイルからソースファイル属性情報が抽出される。抽出されたソースファイル属性情報は、コンピュータ300からコンピュータ100に送り返される。コンピュータ100の整合性検査部153は、コンピュータ300から送られたソースファイル属性情報を受け取る。
【0111】
[ステップS142]整合性検査部153は、ソースファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップS143に進められる。正常に抽出されなかった場合には、処理が終了する。
【0112】
[ステップS143]整合性検査部153は、ソースファイル属性情報を構成しているXMLデータを解析し、サマリ情報を出力する。
[ステップS144]整合性検査部153は、ソースファイル属性情報からソースファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたURLである。
【0113】
[ステップS145]整合性検査部153は、ステップS144で取得したソースファイルの所在に基づいて、ソースファイルを格納しているコンピュータ400にソースファイルの属性情報(更新日時とファイルサイズ)の取得要求を出力する。すると、コンピュータ400のファイルシステムからコンピュータ100へソースファイルの更新日時とファイルサイズとが送られる。整合性検査部153は、コンピュータ400から送られた更新日時とファイルサイズとを取得する。たとえば、ソースファイルの先頭にヘッダ部が設けられ更新日時とファイルサイズとが記載さている場合、HTTPのHEADコマンドを使用して、ファイルシステムから任意のソースファイルの更新日時とファイルサイズとを取得することができる。
【0114】
[ステップS146]整合性検査部153は、ステップS143で解析したソースファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部153は、抽出した更新日時と、ステップS145で取得したソースファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップS148に進められる。更新日時が一致しない場合には、処理がステップS147に進められる。
【0115】
[ステップS147]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
[ステップS148]整合性検査部153は、ステップS143で解析したソースファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に10進数の数字により、バイト単位の値で記載されている。そして、整合性検査部153は、抽出したファイルサイズと、ステップS145で取得したソースファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が終了する。ファイルサイズが一致しない場合には、処理がステップS149に進められる。
【0116】
[ステップS149]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
次に、オブジェクトファイルに関する整合性検査処理について説明する。
【0117】
図17は、オブジェクトファイル整合性検査処理の概念図である。図17の例では、コンピュータ300に格納されたオブジェクトファイル80の整合性検査を、コンピュータ100において実行する場合の例である。なお、オブジェクトファイル80は、コンピュータ400に格納されたソースファイル90(または、同じ所在の旧版のソースファイル)に基づいて生成されている。すなわち、ソースファイル90は、オブジェクトファイル80に対する生成元現状オブジェクトファイルに相当する。
【0118】
整合性検査の際には、まず、コンピュータ300内の属性情報抽出部により、オブジェクトファイル80からソースファイル属性情報82が抽出される(ステップS31)。抽出されたソースファイル属性情報82は、HTTPでコンピュータ100の整合性検査部153に送信される。
【0119】
さらに、コンピュータ400内のファイルシステムにより、ソースファイル90の属性情報91(更新時刻とファイルサイズ)が、HTTPでコンピュータ100に送信される。
【0120】
コンピュータ100の整合性検査部153は、各300,400から送られた情報に基づいて、整合性の検査を行う。具体的には、ソースファイル属性情報82とソースファイル属性情報91との内容(更新時刻とファイルサイズ)を比較する。各比較結果が完全に一致すれば、オブジェクトファイル80と、そのオブジェクトファイル80の生成元となるファイルとの整合性(最新のファイルに基づいて作成されていること)が確認される。
【0121】
整合性検査部153は、整合性検査履歴をサマリ情報510として出力する。また、整合性検査部153は、不整合(不一致の属性情報)が発見された場合、不一致の内容を示すアラーム情報520を出力する。
【0122】
以下、オブジェクトファイルの整合性検査におけるコンピュータ100での処理内容を詳細に説明する。
図18は、オブジェクトファイルの整合性検査処理の手順を示すフローチャートである。この処理は、ユーザの操作入力等により、任意のオブジェクトファイルが指定され、整合性検査要求が入力されたときに実行される処理である。なお、以下の説明では、コンピュータ100に対して整合性検査要求が入力されたものとして、図18に示す処理をステップ番号に沿って説明する。
【0123】
[ステップS151]整合性検査部153は、整合性検査要求で指定されたオブジェクトファイルを格納しているコンピュータ300に対して、ソースファイル属性情報抽出要求を出す。すると、相手のコンピュータ300内の属性情報抽出部によって、オブジェクトファイルからソースファイル属性情報が抽出される。抽出されたソースファイル属性情報は、コンピュータ300からコンピュータ100に送り返される。コンピュータ100の整合性検査部153は、コンピュータ300から送られたソースファイル属性情報を受け取る。
【0124】
[ステップS152]整合性検査部153は、ソースファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップS153に進められる。正常に抽出されなかった場合には、処理が終了する。
【0125】
[ステップS153]整合性検査部153は、ソースファイル属性情報を構成しているXMLデータを解析し、サマリ情報を出力する。
[ステップS154]整合性検査部153は、ソースファイル属性情報からソースファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたURLである。
【0126】
[ステップS155]整合性検査部153は、ステップS154で取得したソースファイルの所在に基づいて、ソースファイルを格納しているコンピュータ400にソースファイルの属性情報(更新日時とファイルサイズ)の取得要求を出力する。すると、コンピュータ400のファイルシステムからコンピュータ100へソースファイルの更新日時とファイルサイズとが送られる。整合性検査部153は、コンピュータ400から送られた更新日時とファイルサイズとを取得する。たとえば、ソースファイルの先頭にヘッダ部が設けられ更新日時とファイルサイズとが記載さている場合、HTTPのHEADコマンドを使用して、ファイルシステムから任意のソースファイルの更新日時とファイルサイズとを取得することができる。
【0127】
[ステップS156]整合性検査部153は、ステップS153で解析したソースファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部153は、抽出した更新日時と、ステップS155で取得したソースファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップS158に進められる。更新日時が一致しない場合には、処理がステップS157に進められる。
【0128】
[ステップS157]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
[ステップS158]整合性検査部153は、ステップS153で解析したソースファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に10進数の数字により、バイト単位の値で記載されている。そして、整合性検査部153は、抽出したファイルサイズと、ステップS155で取得したソースファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が終了する。ファイルサイズが一致しない場合には、処理がステップS159に進められる。
【0129】
[ステップS159]整合性検査部153は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
以上のようにして、整合性検査を行い、検査結果をサマリ情報やアラーム情報として保存することができる。サマリ情報やアラーム情報は、たとえば、XMLデータで保存される。XMLデータで保存することで、画面や帳票への出力時のレイアウトを、利用者が任意に定義することができる。
【0130】
図19は、XMLで出力されたサマリ情報の一例を示す図である。このサマリ情報510には、実行形式ファイルの整合性検査結果が記録されている。なお、整合性検査要求では、複数の実行形式ファイルを指定することができる。そこで、整合性検査対象となった実行形式ファイルに対して識別番号が振られる。実行形式ファイルの識別番号は、<program>タグ511内に設定されている。なお、<program>タグ511に囲まれた範囲(<program>〜</program>)が、1つの実行形式ファイルに対応する整合性検査結果を表している。
【0131】
整合性検査結果として、<name>タグ512によって、検査対象となった実行形式ファイルのファイル名が示される。また、<date>タグ513によって、整合性検査の実施日が示される。
【0132】
<object>タグ514に囲まれた範囲(<object>〜</object>)が、オブジェクトファイルに関する整合性検査結果を表している。オブジェクトファイルの整合性検索結果として、<url>タグ515によって、検査されたオブジェクトファイルの所在が示されている。<current>タグに囲まれた範囲(<current>〜</current>)が、整合性検査対象の実行形式ファイル内に記録されていた属性情報516を表している。<original>タグに囲まれた範囲(<original>〜</original>)が、所在で示された場所に格納されていたオブジェクトファイルの属性情報517を表している。
【0133】
また、<source>タグ518に囲まれた範囲(<source>〜</source>)が、ソースファイルに関する整合性検査結果を表している。ソースファイルに関する整合性検査結果の内容のデータ構造は、オブジェクトファイルの整合性検索結果と同様である。
【0134】
以降、実行形式ファイルの生成元となったオブジェクトファイルやソースファイルの属性情報(生成されたファイルに記録された属性情報と、所在で示された場所に格納されているファイルの属性情報の組)が、順番に記録されている。
【0135】
1つの実行形式ファイルに関する整合性検査結果の後に、<program>タグ519によって、別の実行形式ファイルに関する整合性検査結果510aが記録される。
【0136】
図20は、XMLで出力されたアラーム情報の一例を示す図である。アラーム情報520には、整合性検査対象となった実行形式ファイルの識別番号が<program>タグ521内に設定されている。なお、<program>タグ521に囲まれた範囲(<program>〜</program>)が、1つの実行形式ファイルに対応する不整合ファイルの情報を表している。
【0137】
<name>タグ522には、検査対象となった実行形式ファイルのファイル名が示される。また、<date>タグ523によって、整合性検査の実施日が示される。
<object>タグや<source>タグに囲まれた範囲524に、整合性検査の結果不整合と判断されたファイル(オブジェクトファイルやソースファイル)の属性情報(XML形式)が示されている。
【0138】
また、<msg>タグ525によって、整合性検査により不整合なファイルが見つかったことを示すメッセージが記録される。図20の例では、「実行形式ファイルが構成するオブジェクトファイルが更新されています。」や「オブジェクトファイルのソースファイルが更新されています。」といたメッセージが記録されている。これらのメッセージは、検出順に並べられる。
【0139】
以上のように本実施の形態によれば、オブジェクトファイルの生成元であるソースファイルの更新日時、ファイルサイズをオブジェクトファイル内に記録することによって、オブジェクトファイルとソースファイルの整合性検査が正確に行うことができる。
【0140】
更新日時は、ファイルの内容が改編される毎に変更される。そのため、オブジェクトファイル生成後にソースファイルが改編された場合、更新日時に関する整合性検査で不一致となる。これにより、現在のオブジェクトファイルが旧版のソースファイルから作成されたものであることがわかる。
【0141】
また、ファイルサイズは、ファイルの内容が改編される毎に改編後の値に変更される。ソースコードの変更があれば、ほとんどの場合、変更前と変更後とではファイルサイズが異なる値となる。そのため、オブジェクトファイル生成後にソースファイルが改編された場合、ファイルサイズに関する整合性検査で不一致となる。これにより、現在のオブジェクトファイルが旧版のソースファイルから作成されたものであることがわかる。
【0142】
なお、更新日時とファイルサイズとの両方の一致不一致を検査することで、より正確に整合性を検査できる。たとえば、ソースファイルの細部の修正の場合、ファイルサイズが変更されない場合もあり得る。この場合、更新日時の比較によって、整合性不一致の検査結果を得ることができる。
【0143】
同様に、実行形式ファイルの生成元であるオブジェクトファイルの更新日時、ファイルサイズを実行形式ファイル内に記録することによって、実行形式ファイルの生成元のオブジェクトファイルと、同じ所在のオブジェクトファイルとの整合性検査が正確に行うことができる。
【0144】
なお、本実施の形態では、属性情報(更新日時、ファイルサイズ、ファイル所在)をXMLデータ形式で付加しているため、Windows(商標)、Unix(商標)等のアーキテクチャの異なるプラットフォーム間やインターネット等の広域ネットワークを介した環境でも正確な情報交換を行うことができる。
【0145】
さらに、本実施の形態では、属性情報の一つであるファイルの所在情報をURL形式で記録している。そのため、ソースファイル、オブジェクトファイル、実行形式ファイルが分散されたコンピュータ環境に配置されてもインターネット等の既存のネットワークを介してファイル間の整合性検査を容易に行うことができる。
【0146】
図21は、本実施の形態を用いたライブラリ資産管理の運用例を示す概念図である。図21の例では、資産管理計算機610、試験計算機620、本番計算機630、および資産管理計算機640が設けられている。
【0147】
資産管理計算機610は、実行形式ファイル611、オブジェクトファイル612、ソースファイル613などのライブラリ資産を管理するコンピュータである。資産管理計算機610は、Unix(商標)で動作制御されている。試験計算機620は、資産管理計算機610から配付された実行形式ファイル621、オブジェクトファイル622などのライブラリ資産の動作を試験するためのコンピュータである。試験計算機620は、Unix(商標)で動作制御されている。本番計算機630は、資産管理計算機610から配付された実行形式ファイル631、オブジェクトファイル632などのライブラリ資産を利用して業務を遂行するコンピュータである。本番計算機630は、Unix(商標)で動作制御されている。資産管理計算機640は、資産管理計算機610で保持されているライブラリ資産からソースファイル属性情報641やオブジェクトファイル属性情報642をネットワーク経由で抽出し、ライブラリ資産を遠隔管理するコンピュータである。資産管理計算機640は、Windows(商標)で動作制御されている。
【0148】
このようなシステムにおいて、資産管理計算機610を用いて、ソースファイル613が作成される。ソースファイル613内のソースコードは、資産管理計算機610で翻訳され、オブジェクトファイル612が生成される。資産管理計算機610により、オブジェクトファイル612が他のオブジェクトファイルと結合され、実行形式ファイル611が生成される。これにより、ライブラリ資産が資産管理計算機610に構築される。
【0149】
ライブラリ資産の動作試験を行う場合には、資産管理計算機610から試験計算機620に実行形式ファイル611やオブジェクトファイル612が配付される。配付された実行形式ファイル621やオブジェクトファイル622は、試験計算機620に保持される。そして、試験計算機620によって、実行形式ファイル621やオブジェクトファイル622の動作の試験が行われる。
【0150】
試験の結果、仕様通りの動作が確認されれば、資産管理計算機610から本番計算機630に実行形式ファイル611やオブジェクトファイル612が配付される。配付された実行形式ファイル631やオブジェクトファイル632は、本番計算機630に保持される。そして、本番計算機630によって、実行形式ファイル631やオブジェクトファイル632を用いた運用が行われる。
【0151】
ここで、資産管理計算機610内の実行形式ファイル611に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル611とオブジェクトファイル612とが関連づけられている。資産管理計算機610に保持されているオブジェクトファイル612に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル612とソースファイル613とが関連づけられている。
【0152】
また、試験計算機620に保持されている実行形式ファイル621に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル621とオブジェクトファイル612とが関連づけられている。試験計算機620に保持されているオブジェクトファイル622に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル622とソースファイル613とが関連づけられている。
【0153】
さらに、本番計算機630に保持されている実行形式ファイル631に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル631とオブジェクトファイル612とが関連づけられている。本番計算機630に保持されているオブジェクトファイル632に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル632とソースファイル613とが関連づけられている。
【0154】
このシステムにおいて、次のような整合性検査が可能である。
まず、資産管理計算機610内のライブラリ資産同士で整合性検査を行うことができる。具体的には、資産管理計算機610で実行形式ファイル611内のオブジェクト属性情報とオブジェクトファイル612の属性情報とを比較して、整合性検査を行うことができる。また、資産管理計算機610でオブジェクトファイル612内のソースファイル属性情報とソースファイル613の属性情報とを比較して、整合性検査を行うことができる。
【0155】
また、試験計算機620に保持されたライブラリ資産と資産管理計算機610内のライブラリ資産との間で整合性検査を行うことができる。すなわち、試験計算機620内の実行形式ファイル621内のオブジェクトファイル属性情報によってオブジェクトファイル612の所在を特定し、整合性検査が可能となる。同様に、試験計算機620内のオブジェクトファイル622内のソースファイル属性情報によってソースファイル613の所在を特定し、整合性検査が可能となる。
【0156】
また、本番計算機630に保持されたライブラリ資産と資産管理計算機610内のライブラリ資産との間で整合性検査を行うことができる。すなわち、本番計算機630内の実行形式ファイル631内のオブジェクトファイル属性情報によってオブジェクトファイル612の所在を特定し、整合性検査が可能となる。同様に、本番計算機630内のオブジェクトファイル632内のソースファイル属性情報によってソースファイル613の所在を特定し、整合性検査が可能となる。
【0157】
さらに、資産管理計算機610、試験計算機620、および本番計算機630とは異なるアーキテクチャのOSで動作管理されている資産管理計算機640を用いて、遠隔操作による整合性検査が可能である。すなわち、資産管理計算機640は、資産管理計算機610、試験計算機620、および本番計算機630内の所定のライブラリ資産からソースファイル属性情報641やオブジェクトファイル属性情報642を抽出する。すると、ソースファイル属性情報641やオブジェクトファイル属性情報642は、XMLで記述されているため、OSのアーキテクチャの違いに関係なく、取得したライブラリ資産の生成元のファイルの所在が分かる。そこで、資産管理計算機640が、ソースファイル属性情報641やオブジェクトファイル属性情報642と、生成元のファイルの属性情報とを比較することで、整合性検査が可能となる。
【0158】
なお、上記の説明ではソースファイルの属性情報をオブジェクトファイルに挿入し、オブジェクトファイルの属性情報を実行形式ファイルに挿入するようにしたが、オブジェクトファイルに挿入されているソースファイルの属性情報も併せて実行形式ファイルに挿入するようにしてもよい。これにより、実行形式ファイルから直接(オブジェクトファイルの属性情報を参照せずに)ソースファイルの所在を確認し、実行形式ファイルの生成元のソースファイルと、そのソースファイルのあった場所に現在格納されているソースファイルとの整合性検査が可能となる。
【0159】
また、上記の実施の形態では、コンピュータ100内に属性情報挿入部151、属性情報抽出部152、および整合性検査部153が設けられているが、ライブラリの整合性検査に関わる全てのコンピュータがライブラリ整合性検査部150内の全ての要素を備えている必要はない。たとえば、図21に示した資産管理計算機640のように、ライブラリ資産を保持しない場合には、整合性検査部153が有ればよい。また、オブジェクトファイルや実行形式ファイルの生成のみを行い、生成されたライブラリ資産を別のコンピュータに管理させる場合には、属性情報挿入部151が有ればよい。さらに、ライブラリ資産を保持しているが、整合性検査は他のコンピュータからの遠隔処理で行われる場合には、属性情報抽出部152を保持していればよい。
【0160】
ところで、上記の処理機能をコンピュータによって実現するためには、ライブラリ整合性検査に必要な処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0161】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0162】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0163】
(付記1) 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムにおいて、
コンピュータに、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラム。
【0164】
(付記2) 前記ソース属性情報には、前記ソースファイルの更新日時と、前記ソースファイルのファイルサイズとの少なくともいずれか一方を含むことを特徴とする付記1記載の整合性検査支援プログラム。
【0165】
(付記3) さらに、前記翻訳によって生成された前記ファイルを指定した整合性検査要求を受け取ると、当該ファイルに含まれるソース属性情報を取得し、
取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ファイルの属性情報を取得し、
前記生成元現状ファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断する、
処理を実行させることを特徴とする付記1記載の整合性検査支援プログラム。
【0166】
(付記4) 翻訳によって生成された前記ファイルは、他のファイルと結合されるオブジェクトファイルであることを特徴とする付記1記載の整合性検査支援プログラム。
【0167】
(付記5) さらに、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルの所在情報と、前記結合された各オブジェクトファイルの改編に応じて変更されるデータとを含むオブジェクト属性情報を取得し、
結合によって生成された前記実行形式ファイルに、前記オブジェクト属性情報を付加する、
処理を実行させることを特徴とする付記4記載の整合性検査支援プログラム。
【0168】
(付記6) 前記オブジェクト属性情報には、前記結合された各オブジェクトファイルの更新日時と、前記結合された各オブジェクトファイルのファイルサイズとの少なくともいずれか一方を含むことを特徴とする付記5記載の整合性検査支援プログラム。
【0169】
(付記7) さらに、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、
取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を取得し、
前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断する、
処理を実行させることを特徴とする付記5記載の整合性検査支援プログラム。
【0170】
(付記8) さらに、前記生成元現状オブジェクトファイルに含まれるソース属性情報を取得し、
取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を取得し、
前記生成元現状ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイルの生成元となった前記ソースファイルとの整合性を判断する、
処理を実行させることを特徴とする付記7記載の整合性検査支援プログラム。
【0171】
(付記9) 結合時のオブジェクトファイルと当該オブジェクトファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムにおいて、
コンピュータに、
複数のオブジェクトファイルが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルの所在情報と、前記結合された各オブジェクトファイルの改編に応じて変更されるデータとを含むオブジェクト属性情報を取得し、
結合によって生成された前記実行形式ファイルに、前記オブジェクト属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラム。
【0172】
(付記10) 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援方法において、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
ことを特徴とする整合性検査支援方法。
【0173】
(付記11) 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援装置において、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得する取得手段と、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する付加手段と、
を有することを特徴とする整合性検査支援装置。
【0174】
(付記12) 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0175】
【発明の効果】
以上説明したように本発明では、ソースファイルの所在情報と、ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を、翻訳によって生成されたファイルに付加するようにしたため、ソース属性情報を参照することで、翻訳によって生成されたファイルの生成元のソースファイルがネットワーク経由の他のコンピュータに格納されていたとしてもその所在を知ることができる。所在で示された場所のファイルの属性情報とソース属性情報とを比較することで、所在で示された場所のファイルと、翻訳によって生成されたファイルの生成元のソースファイルとの整合性を容易に検査することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図である。
【図2】本実施の形態のシステム構成例を示す図である。
【図3】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図4】本実施の形態に係るコンピュータの処理機能を示す機能ブロック図である。
【図5】オブジェクトファイルのデータ構造例を示す図である。
【図6】実行形式ファイルのデータ構造例を示す図である。
【図7】属性情報に関するXMLへの構造化規則を示す図である。
【図8】 ファイル管理情報内のデータ構造例を示す図である。
【図9】実行形式ファイル生成時の処理の流れを示す概念図である。
【図10】ソースファイル属性情報の挿入例を示す図である。
【図11】オブジェクトファイル属性情報の挿入例を示す図である。
【図12】オブジェクトファイル生成時の処理手順を示すフローチャートである。
【図13】実行形式ファイル生成時の処理手順を示すフローチャートである。
【図14】実行形式ファイル整合性検査処理の概念図である。
【図15】実行形式ファイルの整合性検査処理の手順を示すフローチャートの前半である。
【図16】実行形式ファイルの整合性検査処理の手順を示すフローチャートの後半である。
【図17】オブジェクトファイル整合性検査処理の概念図である。
【図18】オブジェクトファイルの整合性検査処理の手順を示すフローチャートである。
【図19】XMLで出力されたサマリ情報の一例を示す図である。
【図20】XMLで出力されたアラーム情報の一例を示す図である。
【図21】本実施の形態を用いたライブラリ資産管理の運用例を示す概念図である。
【符号の説明】
1 ソースファイル
2 ソース属性情報
2a 所在情報
2b 更新日時
2c ファイルサイズ
3 ファイル
3a 機械語コード
3b ソース属性情報
4 生成元現状ファイル
5 属性情報
10 ネットワーク
100,200,300,400 コンピュータ
111,112,113,・・・ ソースファイル
121,122,123,・・・ オブジェクトファイル
131,132,133,・・・ 実行形式ファイル
141 エディタ
142 翻訳処理部
143 結合編集部
150 ライブラリ整合性検査部
151 属性情報挿入部
152 属性情報抽出部
153 整合性検査部
160 通信処理部
170 ファイルシステム
180 ファイル管理情報

Claims (2)

  1. 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を、コンピュータによってネットワーク経由で支援するための整合性検査支援方法において、
    第1のコンピュータにおいて、
    取得手段が、前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたオブジェクトファイルが生成されると、前記ソースファイルのファイル名、前記ソースファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むソース属性情報を、前記第1のコンピュータのファイルアクセスを制御するファイルシステムを介して記憶装置から取得すると共に、前記ソース属性情報内のパスとファイル名とを、前記第1のコンピュータを前記ネットワーク上で一意に識別するためのノード名、前記ソースファイルのパスおよび前記ソースファイルのファイル名で構成される所在情報に置き換え、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルのファイル名、前記オブジェクトファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むオブジェクト属性情報を、前記ファイルシステムを介して前記記憶装置から取得すると共に、前記オブジェクト属性情報内のパスとファイル名とを、前記コンピュータのノード名、前記オブジェクトファイルのパスおよび前記オブジェクトファイルのファイル名で構成される所在情報に置き換え、
    付加手段が、翻訳によって生成された前記オブジェクトファイルに前記ソース属性情報を挿入し、前記ソース属性情報が挿入された前記オブジェクトファイルを前記ファイルシステムを介して前記記憶装置に格納し、結合によって生成された前記実行形式ファイルに前記オブジェクト属性情報を挿入し、前記オブジェクト属性情報が挿入された前記実行形式ファイルを前記ファイルシステムを介して前記記憶装置に格納し、
    第2のコンピュータにおいて、
    整合性検査手段が、翻訳によって生成された前記オブジェクトファイルを指定した整合性検査要求を受け取ると、当該オブジェクトファイルに含まれるソース属性情報を取得し、
    前記整合性検査手段が、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、
    前記整合性検査手段が、前記生成元現状ソースファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断し、
    さらに、前記整合性検査手段が、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、
    前記整合性検査手段が、取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、
    前記整合性検査手段が、前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断し、
    前記整合性検査手段が、前記生成元現状オブジェクトファイルに含まれる前記ソース属性情報を取得し、
    前記整合性検査手段が、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている前記生成元現状ソースファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、
    前記整合性検査手段が、前記生成元情報ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイル の生成元となった前記ソースファイルとの整合性を判断する、
    ことを特徴とする整合性検査支援方法
  2. 機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査をネットワーク経由で支援するための整合性検査支援システムにおいて、
    前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたオブジェクトファイルが生成されると、前記ソースファイルのファイル名、前記ソースファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むソース属性情報を、ファイルアクセスを制御するファイルシステムを介して記憶装置から取得すると共に、前記ソース属性情報内のパスとファイル名とを、第1のコンピュータを前記ネットワーク上で一意に識別するためのノード名、前記ソースファイルのパスおよび前記ソースファイルのファイル名で構成される所在情報に置き換え、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルのファイル名、前記オブジェクトファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むオブジェクト属性情報を、前記ファイルシステムを介して前記記憶装置から取得すると共に、前記オブジェクト属性情報内のパスとファイル名とを、前記コンピュータのノード名、前記オブジェクトファイルのパスおよび前記オブジェクトファイルのファイル名で構成される所在情報に置き換える取得手段と、
    翻訳によって生成された前記オブジェクトファイルに前記ソース属性情報を挿入し、前記ソース属性情報が挿入された前記オブジェクトファイルを前記ファイルシステムを介して前記記憶装置に格納し、結合によって生成された前記実行形式ファイルに前記オブジェクト属性情報を挿入し、前記オブジェクト属性情報が挿入された前記実行形式ファイルを前記ファイルシステムを介して前記記憶装置に格納する付加手段と、
    を具備する前記第1のコンピュータと、
    前記翻訳によって生成された前記オブジェクトファイルを指定した整合性検査要求を受け取ると、当該オブジェクトファイルに含まれるソース属性情報を取得し、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、前記生成元現状ソースファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断し、さらに、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断し、さらに、前記生成元現状オブジェクトファイルに含まれる前記ソース属性情報を取得し、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている前記生成元現状ソースファイルの属性情報を、前記第1のコンピュータから前記ネットワークを介して取得し、前記生成元情報ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイルの生成元となった前記ソースファイルとの整合性を判断する整合性検査手段を具備する第2のコンピュータと、
    を有することを特徴とする整合性検査支援システム。
JP2002055963A 2002-03-01 2002-03-01 整合性検査支援方法および整合性検査支援システム Expired - Fee Related JP3946057B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002055963A JP3946057B2 (ja) 2002-03-01 2002-03-01 整合性検査支援方法および整合性検査支援システム
US10/360,737 US7577946B2 (en) 2002-03-01 2003-02-10 Program product, method, and system for testing consistency of machine code files and source files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002055963A JP3946057B2 (ja) 2002-03-01 2002-03-01 整合性検査支援方法および整合性検査支援システム

Publications (3)

Publication Number Publication Date
JP2003256202A JP2003256202A (ja) 2003-09-10
JP2003256202A5 JP2003256202A5 (ja) 2004-10-28
JP3946057B2 true JP3946057B2 (ja) 2007-07-18

Family

ID=27800068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002055963A Expired - Fee Related JP3946057B2 (ja) 2002-03-01 2002-03-01 整合性検査支援方法および整合性検査支援システム

Country Status (2)

Country Link
US (1) US7577946B2 (ja)
JP (1) JP3946057B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350194B1 (en) * 2001-09-24 2008-03-25 Oracle Corporation Techniques for debugging computer programs involving multiple computing machines
EP1408410A1 (en) * 2002-09-30 2004-04-14 Sap Ag Remote debugging of computer programs
US20040163076A1 (en) * 2003-02-11 2004-08-19 Zayas Fernando A. Self-identifying self-test output system
US7389333B2 (en) * 2003-07-02 2008-06-17 Fujitsu Limited Provisioning a network element using custom defaults
US7873668B2 (en) * 2003-08-15 2011-01-18 Laszlo Systems, Inc. Application data binding
US7209934B2 (en) * 2003-11-21 2007-04-24 Bellsouth Intellectual Property Corporation Methods, systems and computer program products for monitoring files
US7730451B2 (en) * 2003-12-26 2010-06-01 Microsoft Corporation Source server
US20050229159A1 (en) * 2004-04-12 2005-10-13 Microsoft Corporation Version aware test management system and method
JP4523793B2 (ja) * 2004-04-19 2010-08-11 富士通株式会社 ソフトウエア管理サーバ装置
JP2006012054A (ja) * 2004-06-29 2006-01-12 Fujitsu Ltd 試験実行装置、試験実行方法および試験実行プログラム
US7536601B2 (en) * 2004-08-19 2009-05-19 International Business Machines Corporation Method, system and program for identifying a test specification for testing a file element
US8850132B1 (en) * 2004-12-08 2014-09-30 Symantec Operating Corporation Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system
US8407206B2 (en) * 2005-05-16 2013-03-26 Microsoft Corporation Storing results related to requests for software development services
US8561036B1 (en) * 2006-02-23 2013-10-15 Google Inc. Software test case management
US8443348B2 (en) * 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8024708B2 (en) * 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8261270B2 (en) * 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8136104B2 (en) * 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8146066B2 (en) * 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8091127B2 (en) * 2006-12-11 2012-01-03 International Business Machines Corporation Heuristic malware detection
US8260790B2 (en) * 2007-04-27 2012-09-04 Hewlett-Packard Development Company, L.P. System and method for using indexes to parse static XML documents
US8250541B2 (en) * 2007-09-20 2012-08-21 The Boeing Company Reversible object code compiler for mathematical models
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US8224868B2 (en) * 2008-07-31 2012-07-17 Verizon Patent And Licensing Inc. Network coding with last modified dates for P2P web caching
US10262136B1 (en) * 2008-08-04 2019-04-16 Zscaler, Inc. Cloud-based malware detection
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
JPWO2010044150A1 (ja) * 2008-10-15 2012-03-08 富士通株式会社 プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法
US8949772B1 (en) 2009-06-01 2015-02-03 Amazon Technologies, Inc. Dynamic model based software application development
US8458676B2 (en) 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US20110271257A1 (en) * 2010-04-29 2011-11-03 International Business Machines Corporation Defect management in integrated development environments
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9105000B1 (en) * 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9823953B2 (en) * 2016-04-04 2017-11-21 Bank Of America Corporation Interprogram communication messaging for program synchronization
US10652257B1 (en) * 2016-07-11 2020-05-12 State Farm Mutual Automobile Insurance Company Detection of anomalous computer behavior
JP2018092466A (ja) * 2016-12-06 2018-06-14 株式会社日立製作所 変更影響調査支援装置、変更影響調査支援方法および変更影響調査支援プログラム
JP6984120B2 (ja) * 2016-12-12 2021-12-17 中国電力株式会社 ロードコンペア装置、ロードコンペアプログラムおよびロードコンペア方法
CN110674024A (zh) * 2018-07-02 2020-01-10 北京忆恒创源科技有限公司 电子设备集成测试系统及其方法
US10754755B2 (en) * 2018-09-28 2020-08-25 Cotiviti, Inc. Automatically validating data incorporated into a computer program
US11500763B1 (en) * 2020-03-26 2022-11-15 Amazon Technologies, Inc. Distributed canary testing with test artifact caching
CN113032343B (zh) * 2021-03-23 2022-08-16 杭州安恒信息技术股份有限公司 一种文件修改时间可信度判定方法、装置和存储介质
CN113515740B (zh) * 2021-04-23 2024-07-02 杭州安恒信息技术股份有限公司 一种Timestomp类攻击的检测方法、装置和介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0276029A (ja) 1988-09-13 1990-03-15 Hitachi Ltd ソース,オブジェクト,ロード・モジュール間の一致検証方法
US5805899A (en) * 1995-07-06 1998-09-08 Sun Microsystems, Inc. Method and apparatus for internal versioning of objects using a mapfile
US5850554A (en) * 1995-12-29 1998-12-15 Intel Corporation Compiler tool set for efficiently generating and easily managing multiple program versions of different types
US6185574B1 (en) * 1996-11-27 2001-02-06 1Vision, Inc. Multiple display file directory and file navigation system for a personal computer
US5978587A (en) * 1997-11-13 1999-11-02 Unisys Corp. Method for propagating source code locations into objects in a compiler
US5978586A (en) * 1997-11-26 1999-11-02 Unisys Corp. Method for tracking changes in source locations in a compiler
JP3295930B2 (ja) 1998-12-07 2002-06-24 日本電気株式会社 実行プログラム管理方法及び装置及び記録媒体
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
US6993759B2 (en) * 1999-10-05 2006-01-31 Borland Software Corporation Diagrammatic control of software in a version control system
US6678883B1 (en) * 2000-07-10 2004-01-13 International Business Machines Corporation Apparatus and method for creating a trace file for a trace of a computer program based on loaded module information
US7058667B2 (en) * 2000-12-27 2006-06-06 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a file
US7003759B2 (en) * 2001-06-21 2006-02-21 Codefast, Inc. Collection makefile generator
US6978018B2 (en) * 2001-09-28 2005-12-20 Intel Corporation Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment
US6948163B2 (en) * 2002-01-29 2005-09-20 International Business Machines Corporation Remote electronic file builder
US7143395B2 (en) * 2002-02-14 2006-11-28 Hewlett-Packard Development Company, L.P. Verifying a program version

Also Published As

Publication number Publication date
JP2003256202A (ja) 2003-09-10
US7577946B2 (en) 2009-08-18
US20030167423A1 (en) 2003-09-04

Similar Documents

Publication Publication Date Title
JP3946057B2 (ja) 整合性検査支援方法および整合性検査支援システム
US10621212B2 (en) Language tag management on international data storage
US8464228B2 (en) Binary library
US9940219B2 (en) Detecting merge conflicts and compilation errors in a collaborative integrated development environment
JP5851690B2 (ja) ウェブドキュメントセット自動編集システム及びその方法
KR100655124B1 (ko) 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스
US9009665B2 (en) Automated tagging and tracking of defect codes based on customer problem management record
US20120233600A1 (en) Information processing apparatus and method of acquiring trace log
US8301720B1 (en) Method and system to collect and communicate problem context in XML-based distributed applications
US7562342B2 (en) Method and apparatus for incrementally processing program annotations
CN108762743B (zh) 一种数据表操作代码生成方法及装置
JP5208635B2 (ja) プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム
US7096421B2 (en) System and method for comparing hashed XML files
US20120110030A1 (en) Software database system and process of building and operating the same
US20040205509A1 (en) System and method for comparing parsed XML files
US20050268165A1 (en) Method and system for automated testing of web services
Chen et al. Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems
CN112527382B (zh) 部署流水线引擎系统的方法、持续集成的方法及装置
JP2004362000A (ja) ウェブアプリケーション開発支援装置、コンポーネント呼び出し監視装置、データ処理方法及びプログラム
CN115658452A (zh) 埋点校验方法、埋点校验装置、可读存储介质、电子设备
US20210240596A1 (en) Source code file retrieval
JP2020087087A (ja) 修正候補特定プログラム
JP2017091027A (ja) システム開発支援システム
CN116820985A (zh) 一种检测注解配置错误的方法和装置及设备
JP2024034404A (ja) 情報処理装置、情報処理方法およびシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070410

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110420

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110420

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120420

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130420

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140420

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees