JP7419853B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP7419853B2
JP7419853B2 JP2020019437A JP2020019437A JP7419853B2 JP 7419853 B2 JP7419853 B2 JP 7419853B2 JP 2020019437 A JP2020019437 A JP 2020019437A JP 2020019437 A JP2020019437 A JP 2020019437A JP 7419853 B2 JP7419853 B2 JP 7419853B2
Authority
JP
Japan
Prior art keywords
file
old
new
data
name
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.)
Active
Application number
JP2020019437A
Other languages
English (en)
Other versions
JP2021125067A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2020019437A priority Critical patent/JP7419853B2/ja
Publication of JP2021125067A publication Critical patent/JP2021125067A/ja
Application granted granted Critical
Publication of JP7419853B2 publication Critical patent/JP7419853B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置及びプログラムに関する。
従来、情報処理装置にソフトウェアをインストールする場合に、インストール対象のファイルの追加やシステム設定の書き換えといった各種処理を自動的に行うプログラム(以下、インストーラと記す)が用いられている(例えば、特許文献1)。
インストーラによるインストールでは、既存の旧ファイルよりバージョンの新しい新ファイルを追加することで、ファイルのバージョンアップが行われる場合がある。この場合において、新ファイル及び旧ファイルの各ファイル名に互いに異なる符号を付しておき、この符号を含むファイル名でファイルを特定することで、新ファイルのインストール後に誤って旧ファイルが実行されないようにする技術がある。
特開2019-46332号公報
しかしながら、上記の方法でインストールを繰り返すと、ファイル名の符号が異なる旧ファイルが多数残存することとなる。このような旧ファイルは、インストール後はアクセスされる可能性が低いものの、プログラムファイルである場合にはセキュリティホールとなる可能性もあり得る。また、多数の旧ファイルにより記憶容量が圧迫される問題も生じる。
他方で、旧ファイルを確実に特定して削除するのは必ずしも容易でなく、不適切なファイルを誤って削除するとシステムの不具合に繋がる。
このように、従来の技術では、適切に旧ファイルを削除するのが容易でないという課題がある。
この発明の目的は、適切に旧ファイルを削除することができる情報処理装置及びプログラムを提供することにある。
上記課題を解決するため、本発明の情報処理装置は、
インストール対象の新ファイルを所定の記憶領域に追加する追加手段と、
前記新ファイルのデータに対して所定の符号化処理を実行することにより、当該新ファイルのデータに対応した第1要約符号を生成する符号化処理手段と、
前記符号化処理手段によって生成された前記第1要約符号を、前記新ファイルのファイル名に挿入するファイル名生成手段と、
判別対象の旧ファイルが削除対象であるか否かを判別する判別手段と、
前記判別手段により前記旧ファイルが削除対象であると判別された場合に当該旧ファイルを削除する削除手段と、を備え、
前記判別手段は、前記新ファイルのファイル名に含まれている前記第1要約符号の生成に用いられた前記符号化処理と同一の符号化処理を、前記旧ファイルのデータに対して実行することにより生成される第2要約符号が、前記旧ファイルのファイル名に含まれている場合に、前記旧ファイルが削除対象であると判別することを特徴とする。
本発明によれば、適切に旧ファイルを削除することができる。
情報処理システムの概略構成図である。 サーバの機能構成を示すブロック図である。 端末装置の機能的構成を示すブロック図である。 インストール処理の実行時におけるプログラムファイル群のディレクトリ構造の例を示す図である。 新ファイル及び旧ファイルのファイル名を説明する図である。 インストール処理の制御手順を示すフローチャートである。
以下、本発明の情報処理装置及びプログラムに係る実施の形態を図面に基づいて説明する。
図1は、本実施形態の情報処理システム100の概略構成図である。
情報処理システム100は、サーバ1(情報処理装置)と、複数の端末装置2と、を備えている。サーバ1及び端末装置2は、通信ネットワーク3を介して情報通信可能に接続されている。
サーバ1は、所定のサービスを提供するコンピュータ装置である。サーバ1は、端末装置2からの要求に応じて各種処理を実行し、処理結果を端末装置2に送信して端末装置2の表示部に表示させる。サーバ1が提供するサービスは、特には限られないが、例えば人事管理、給与管理、売上管理といった各種業務管理に係るサービスが挙げられる。また、サーバ1は、これらのサービスの利用に際してユーザに利用方法を案内する業務ナビゲーションサービスを提供することもできる。
端末装置2は、情報処理システム100のサービスを利用するユーザが使用するコンピュータ装置である。端末装置2は、例えばノートPC(Personal Computer)、デスクトップPC、タブレット端末、又はスマートフォンなどである。端末装置2は、ユーザからの入力操作に応じてサーバ1に対して各種処理の実行を要求し、サーバ1から受信した処理結果などを表示部25に表示する。
通信ネットワーク3は、例えばインターネットであるが、これに限られず、LAN(Local Area Network)等、他のネットワークであってもよい。
図2は、サーバ1の機能構成を示すブロック図である。
サーバ1は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、記憶部13と、操作部14と、表示部15と、通信部16と、バス17などを備える。サーバ1の各部は、バス17を介して接続されている。
CPU11は、サーバ1の各部の動作を制御するプロセッサである。CPU11は、記憶部13に記憶されている各種プログラムを読み出してRAM12のワークエリアに展開し、当該展開されたプログラムに従って各種処理を実行する。
RAM12は、CPU11に作業用のメモリ空間を提供し、一時データを記憶する。RAM12は、不揮発性メモリを含んでいてもよい。
記憶部13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などにより構成される。記憶部13には、CPU11により実行される各種プログラムや、当該プログラムの実行時に参照される各種データなどが記憶されている。プログラムは、コンピュータ読み取り可能なプログラムコードの形態で記憶部13に格納されている。プログラムに従った各種処理の実行主体はCPU11であるが、以下では、説明の便宜上、プログラムが各種処理を実行するように記載することがある。
記憶部13には、インストーラ131及びプログラムファイル群132が記憶されている。
インストーラ131は、サーバ1にソフトウェアをインストールする場合に実行されるプログラムであり、インストール対象のファイルの追加、削除、及びシステム設定の書き換えといった各種処理を自動的に実行する。すなわち、インストーラ131は、ソフトウェアのインストールに係る処理を指定された順序で実行するタスクランナーとして機能する。インストーラ131に従って各種処理を実行することで、CPU11は、追加手段、符号化処理手段、ファイル名生成手段、判別手段及び削除手段として機能する。
インストーラ131によるソフトウェアのインストールには、新規インストールの他、既存の旧ファイルをより新しいバージョンの新ファイルを追加するバージョンアップ(アップグレードとも呼ばれる)が含まれる。本実施形態では、インストーラ131により、プログラムファイル群132に含まれるファイルのバージョンアップが行われる。インストーラ131によるファイルのバージョンアップに係る詳細な処理内容については、後に詳述する。
なお、インストーラ131は、必ずしも記憶部13に記憶されていなくてもよく、例えばCD-ROM等の可搬型記録媒体や、サーバ1に通信接続された外部機器に記録又は記憶されていてもよい。インストーラ131が可搬性記録媒体に記録されている場合には、CPU11は、サーバ1に設けられた図示略の記録媒体読取部を介して可搬性記録媒体内のインストーラ131にアクセスし、インストーラ131を実行する。また、インストーラ131が外部機器に記憶されている場合には、CPU11は、ネットワークを介してサーバ上のインストーラ131にアクセスしてインストーラ131を実行する。
プログラムファイル群132は、サーバ1が提供するサービスに係るウェブアプリケーションのプログラムファイル及びデータファイル等を含む。端末装置2からの要求に応じてCPU11がプログラムファイル群132のウェブアプリケーションを実行し、結果を端末装置2に送信することで、端末装置2では、ブラウザ上で当該ウェブアプリケーションの実行結果が表示される。
操作部14は、カーソルキー、文字、数字入力キー及び各種機能キー等を備えたキーボード、マウスなどのポインティングデバイスを有し、ユーザによる各キーの押下入力、位置入力を受け付けてその操作情報をCPU11に出力する。
表示部15は、LCD(Liquid Crystal Display)、EL(Electro-Luminescence)ディスプレイなどで構成され、CPU11からの表示制御信号に従って画面表示を行う。
通信部16は、ルータ、ネットワークカードなどにより構成される。CPU11は、通信部16を介して、通信ネットワーク3上の端末装置2と通信接続してデータの送受信を行う。
図3は、端末装置2の機能的構成を示すブロック図である。
端末装置2は、CPU21と、RAM22と、記憶部23と、操作部24と、表示部25と、通信部26と、バス27などを備えている。また、端末装置2の各部は、バス27を介して接続されている。
CPU21は、端末装置2の各部の動作を制御するプロセッサである。CPU21は、記憶部23に記憶されている各種プログラムを読み出してRAM22のワークエリアに展開し、当該展開されたプログラムに従って各種処理を実行する。
RAM22は、CPU21に作業用のメモリ空間を提供し、一時データを記憶する。RAM22は、不揮発性メモリを含んでいてもよい。
記憶部23は、例えば、HDD、SSD等により構成される。記憶部23には、CPU21により実行される各種プログラムや、当該プログラムの実行時に参照される各種データなどが記憶されている。プログラムは、コンピュータ読み取り可能なプログラムコードの形態で記憶部23に格納されている。
記憶部23には、ブラウザ231が記憶されている。ブラウザ231は、インターネット上のウェブページの情報や、サーバ1から送信されたウェブアプリケーションの実行結果などを表示部25上に表示させるプログラムである。
操作部24、表示部25及び通信部26の構成は、サーバ1の操作部14、表示部15及び通信部16の構成と同様であるので説明は省略する。
次に、インストーラ131によるソフトウェアのインストール処理について、ファイルのバージョンアップに係る処理を中心に説明する。
サーバ1のウェブアプリケーションは、実行環境の変化への対応、ユーザからの要望への対応、及び不具合の修正等を目的として、適時にアップデートする必要がある。このアップデートは、インストーラ131に従って実行されるインストール処理により行われる。このインストール処理では、プログラムファイル群132のプログラムファイルやデータファイルのうちバージョンアップの対象となる旧ファイルについて、よりバージョンの新しい新ファイルが追加され、旧ファイルが新ファイルに置き換えられる。ここで、インストール処理における旧ファイルから新ファイルへの置き換えとは、旧ファイルを実行対象又は参照対象としていた処理における実行対象又は参照対象を旧ファイルから新ファイルに変更することをいう。
図4は、インストール処理の実行時におけるプログラムファイル群132のディレクトリ構造の例を示す図である。
プログラムファイル群132では、複数のディレクトリD1~D3(記憶領域)が階層構造を形成している。以下では、任意のディレクトリを指す場合にはディレクトリDと記す。各ディレクトリDには、プログラムファイルやデータファイルが格納されている。
図4の例では、インストールの起点であるディレクトリD1の下層に、ディレクトリD2、D3が設けられている。
このうちディレクトリD1には、ウェブアプリケーションのトップページに係るHTML(Hypertext Markup Language)ファイルであるファイルF1(ファイル名:「index.html」)と、ファイルF1のトップページで呼び出されて実行されるスクリプトファイル(「index.js」)とが格納されている。詳しくは、図4に示すタイミングでは、スクリプトファイルの新ファイルFn1(ファイル名:「index9b6e8fb5e349541cbd3d.js」)及び旧ファイルFo1(ファイル名:「index5yso3zkcx9128g083ro8.js」)が格納されている。
また、ディレクトリD2には、ファイルF2が格納されている。
また、ディレクトリD3には、スクリプトファイルの新ファイルFn3(ファイル名:「viewer3c7b9fd2e816409dfa3b.js」)及び旧ファイルFo3(ファイル名:「viewer27acc7ebfa49624cbd9f.js」)が格納されている。
ここで、新ファイルFn1は、スクリプトファイル「index.js」のバージョンアップのためにインストーラ131により新たに追加されたバージョンアップ後のファイルであり、旧ファイルFo1は、スクリプトファイル「index.js」のバージョンアップ前の既存のファイルである。すなわち、インストーラ131は、旧ファイルFo1を新ファイルFn1に置き換えるために、旧ファイルFo1が格納されていたディレクトリD1に対して新ファイルFn1を追加する。
同様に、新ファイルFn3及び旧ファイルFo3は、それぞれスクリプトファイル「viewer.js」のバージョンアップ後のファイル、及びバージョンアップ前のファイルである。すなわち、インストーラ131は、旧ファイルFo3を新ファイルFn3に置き換えるために、旧ファイルFo3が格納されていたディレクトリD3に対して新ファイルFn3を追加する。
新ファイルFn1及び旧ファイルFo1は、互いに区別が可能となるように、ファイル名に互いに異なる符号が含まれている。新ファイルFn3及び旧ファイルFo3についても同様である。以下では、新ファイルFn1及び旧ファイルFo1を例に挙げて、新旧ファイルのファイル名について説明する。また、以下では、任意の新ファイルを「新ファイルFn」とも記し、任意の旧ファイルを「旧ファイルFo」とも記す。
図5は、新ファイルFn1及び旧ファイルFo1のファイル名を説明する図である。
新ファイルFn1のファイル名は、名称部Nn、コンテンツハッシュ値Hn(第1要約符号、ハッシュ値)(単にコンテンツハッシュ又はハッシュとも呼ばれる)、及び拡張子Enからなる。名称部Nnは、ファイル名の先頭から所定文字数の文字列であり、新ファイルFn1のファイルの種別を示す。ここでは、名称部Nnは文字列「index」からなる。コンテンツハッシュ値Hnは、新ファイルFn1のデータに対応した要約符号であり、20桁の文字列「9b6e8fb5e349541cbd3d」からなる。
また、旧ファイルFo1のファイル名は、名称部No、コンテンツハッシュ値Ho(第2要約符号)、及び拡張子Eoからなる。旧ファイルFo1は、ファイルの種別が新ファイルFn1と同一であるため、名称部Noは名称部Nnと同一であり、拡張子Eoは拡張子Enと同一である。コンテンツハッシュ値Hoは、旧ファイルFo1のデータに対応した要約符号であり、20桁の文字列「5fed3babf9128e083dc8」からなる。
このように、対応する新ファイルFnと旧ファイルFoとは、ファイル名に含まれる名称部N(Nn、No)及び拡張子E(En、Eo)が同一である一方、ファイル名に含まれるコンテンツハッシュ値H(Hn、Ho)が互いに異なる。
コンテンツハッシュ値Hnは、新ファイルFnのデータに対してハッシュ処理を実行することで生成される文字列である。また、コンテンツハッシュ値Hoは、旧ファイルFoのデータに対してハッシュ処理を実行することで生成される文字列である。
ここで、ハッシュ処理は、任意の長さのビット列から規則性のないビット列(通常、固定長のビット列)を生成する、所定の手順の処理である。ハッシュ処理は、その手順が予め定められているため、内容が同一である2つのデータに対してそれぞれハッシュ処理を実行して生成されるコンテンツハッシュ値Hは、同一となる。また、2つのデータの内容が僅かでも異なる場合には、当該2つのデータから生成されるコンテンツハッシュ値Hは、異なる値となる。なお、厳密には、コンテンツハッシュ値Hが同一となる異なるデータの組み合わせが存在し得る。しかしながら、あるデータから生成されたコンテンツハッシュ値Hに基づいて、当該データとは異なるデータであって同一のコンテンツハッシュ値Hが得られる他のデータを見つけることは極めて困難である。
ハッシュ処理は、処理対象のデータに対応した要約符号が生成される「符号化処理」の一例である。
このように、新ファイルFn及び旧ファイルFoのファイル名にそれぞれコンテンツハッシュ値Hn、Hoを含ませることで、新ファイルFnと、当該新ファイルFnに対応する旧ファイルFoとが併存していても、新ファイルFnを確実に特定して実行又は参照することが可能となる。換言すれば、ファイル名にコンテンツハッシュ値Hを含ませることで、キャッシュとして保持されている旧ファイルFoが実行又は参照されることがないようにすることができる。
また、ファイル名にコンテンツハッシュ値Hを含ませることで、インストール対象(バージョンアップ対象)のファイルを容易に特定することができ、インストーラ131によるファイルの追加処理を必要最低限に抑えることができる。
すなわち、コンテンツハッシュ値Hを含ませることにより、新ファイルFnと旧ファイルFoとでファイル名が異なることとなるため、インストーラ131は、プログラムファイル群132の多数の(例えば数千~数万の)インストール対象のファイルのうち、既存のファイルとはファイル名の異なるファイルを特定して追加することで、新ファイルFnのみを過不足なくインストールすることができる。
しかしながら、新ファイルFnと旧ファイルFoとを併存させておくと、ファイルのバージョンアップが繰り返された場合に、多数の旧ファイルFoがディレクトリDに残存することになる。このような旧ファイルFoは、インストール後はアクセスされる可能性が低いものの、プログラムファイルである場合にはセキュリティホールとなる可能性もあり得る。また、多数の旧ファイルFoにより記憶容量が圧迫される問題も生じる。
一方、バージョンアップされた新ファイルFnに対応する旧ファイルFoを確実に特定して削除するのは必ずしも容易でない。例えば、ファイル名の名称部Nn、Noや拡張子En、Eoが一致するものを削除するような単純な方法では、インストーラ131以外の方法で追加された必要なファイルが誤って削除されて、システムの不具合に繋がる場合がある。
そこで、本実施形態のインストーラ131は、以下の手順により、新ファイルFnに対応する旧ファイルFoであって、削除することが適切である旧ファイルFoを特定して削除する。
すなわち、まず、ファイル名の冒頭の名称部Noが新ファイルFnの名称部Nnと同一であり、かつ拡張子Eoが新ファイルFnの拡張子Enと同一である旧ファイルFoを、削除対象候補として抽出する。
そして、抽出した旧ファイルFoのファイル名に、当該旧ファイルFoのデータに対してハッシュ処理を実行することにより生成されるコンテンツハッシュ値Hoが含まれている場合に、当該旧ファイルFoが削除対象であると判別して削除する。この判別に用いるハッシュ処理は、新ファイルFnのファイル名に含まれているコンテンツハッシュ値Hnの生成に用いられたハッシュ処理と同一の処理とする。換言すれば、新ファイルFnのコンテンツハッシュ値Hnの生成に用いられたハッシュ処理と同一のハッシュ処理により、旧ファイルFoのファイル名のコンテンツハッシュ値Hoが生成されていると判別された場合に、当該旧ファイルFoを削除する。
よって、プログラムファイル群132のインストール及びアップデートの際に常に同一のハッシュ処理を用いてコンテンツハッシュ値Hを生成し、ファイル名に含ませておけば、上記の手順により、過去にインストーラ131によりインストールされた旧ファイルFoであって、新ファイルFnにより置き換えられて使用されていない旧ファイルFoのみを確実に特定して削除することができる。
図4に示す例では、上記手順を実行することで、ディレクトリD1における旧ファイルFo1、及びディレクトリD3における旧ファイルFo3が削除される。
次に、上記手順を含む、本実施形態のインストール処理のCPU11による制御手順について説明する。
図6は、インストール処理のCPU11による制御手順を示すフローチャートである。
インストール処理は、インストーラ131に従ってCPU11が各種処理を実行することにより進行する。
インストール処理が開始されると、CPU11は、インストール対象(バージョンアップ対象)の新ファイルFnに対してハッシュ処理を実行し、生成されたコンテンツハッシュ値Hを新ファイルFnのファイル名に挿入する(ステップS101)。このように、CPU11は、新ファイルFnが所定のディレクトリDに記憶される際に、新ファイルFoのデータに対応するコンテンツハッシュ値Hnを生成するとともに、コンテンツハッシュ値Hnを新ファイルFnのファイル名に挿入する。なお、インストール処理の開始前に予めハッシュ処理が行われ、コンテンツハッシュ値Hを含むファイル名の新ファイルFnが用意されている場合には、本ステップS101は省略することができる。
CPU11は、新ファイルFnを所定のディレクトリDに追加する(ステップS102)。
CPU11は、上述した方法で、削除対象候補の旧ファイルFoを抽出する(ステップS103)。すなわち、CPU11は、名称部No及び拡張子Eoが、ステップS102で追加した新ファイルFnの名称部Nn及び拡張子Enと同一である旧ファイルFoを抽出する。旧ファイルFoの探索範囲は、新ファイルFnが追加されたディレクトリとしてもよいし、当該ディレクトリ以外の所定の記憶領域(例えば、キャッシュデータが記憶される領域)を含めてもよい。
CPU11は、抽出した旧ファイルFoに対してハッシュ処理を実行し(ステップS104)、生成されたコンテンツハッシュ値Hoが、旧ファイルFoのファイル名に含まれる符号、すなわちファイル名のうち名称部No及び拡張子Eoを除いた部分と一致するか否かを判別する(ステップS105)。このように、CPU11は、新ファイルFnが所定のディレクトリDに追加されたことを条件に、旧ファイルFoのデータに対して符号化処理を実行してコンテンツハッシュ値Hoを生成する。CPU11は、生成されたコンテンツハッシュ値Hoが旧ファイルFoのファイル名の符号と一致すると判別された場合には(ステップS105で“YES”)、当該旧ファイルFoを削除する(ステップS106)。
コンテンツハッシュ値Hoが旧ファイルFoのファイル名の符号と一致しないと判別された場合には(ステップS105で“NO”)、CPU11は、旧ファイルFoを削除せずに処理をステップS107に進める。
CPU11は、削除対象候補として抽出された他の旧ファイルFoがあるか否かを判別し(ステップS107)、削除対象候補の他の旧ファイルFoがあると判別された場合には(ステップS107で“YES”)、処理をステップS104に戻す。
削除対象候補の他の旧ファイルFoがないと判別された場合には(ステップS107で“NO”)、CPU11は、インストール対象の他の新ファイルFnがあるか否かを判別する(ステップS108)。CPU11は、インストール対象の他の新ファイルFnがあると判別された場合には(ステップS108で“YES”)、処理をステップS101に戻し、インストール対象の他の新ファイルFnがないと判別された場合には(ステップS108で“NO”)、インストール処理を終了させる。
以上のように、本実施形態に係る情報処理装置としてのサーバ1は、CPU11を備え、CPU11は、インストール対象の新ファイルFnを所定のディレクトリDに追加し(追加手段)、新ファイルFnのデータに対してハッシュ処理を実行することにより、当該新ファイルFnのデータに対応したコンテンツハッシュ値Hnを生成し(符号化処理手段)、生成されたコンテンツハッシュ値Hnを、新ファイルFnのファイル名に挿入し(ファイル名生成手段)、新ファイルFnによって置き換えられる旧ファイルFoがある場合に、当該旧ファイルFoが削除対象であるか否かを判別し(判別手段)、旧ファイルFoが削除対象であると判別された場合に当該旧ファイルFoを削除し(削除手段)、新ファイルFnのファイル名に含まれているコンテンツハッシュ値Hの生成に用いられたハッシュ処理と同一のハッシュ処理を、旧ファイルFoのデータに対して実行することにより生成されるコンテンツハッシュ値Hが、旧ファイルFoのファイル名に含まれている場合に、旧ファイルFoが削除対象であると判別する(判別手段)。これにより、削除対象の旧ファイルFoを適切かつ確実に特定して削除することができる。すなわち、新ファイルFnにより置き換えられる旧ファイルFo以外のファイルが誤って削除される不具合の発生を抑制できるため、不適切なファイルの削除によりシステムが不安定になるのを抑えることができる。また、旧ファイルFoを削除することにより、残存した旧ファイルFoがセキュリティホールとなったり、残存した旧ファイルFoにより記憶容量が圧迫されたりする問題の発生を抑えることができる。
また、CPU11は、新ファイルFnが所定のディレクトリDに追加されたことを条件に、旧ファイルFoのデータに対してハッシュ処理を実行してコンテンツハッシュ値Hoを生成し(符号化処理手段)、生成されたコンテンツハッシュ値Hが旧ファイルFoのファイル名に含まれる場合に、旧ファイルFoが削除対象であると判別する(判別手段)。これによれば、インストール処理において、削除対象候補のファイルに対して実際にハッシュ処理を実行してコンテンツハッシュ値を生成し、当該コンテンツハッシュ値とファイル名とを比較した上で削除対象か否かを判別できるため、任意の削除対象候補のファイルについて、削除するのが適切であるか否かを確実に判別することができる。
また、CPU11は、新ファイルFnが所定のディレクトリDに記憶される際に、新ファイルFnのデータに対応するコンテンツハッシュ値Hnを生成するとともに(符号化処理手段)、当該コンテンツハッシュ値Hnを新ファイルFnのファイル名に挿入する(ファイル名生成手段)。これにより、実際にディレクトリDに追加される最新の状態の新ファイルFnのデータに対応するコンテンツハッシュ値Hnを、新ファイルFnのファイル名に挿入することができる。
また、上記実施形態では、符号化処理としてハッシュ処理が用いられ、要約符号としてコンテンツハッシュ値が用いられている。ハッシュ処理によれば、ファイルのデータサイズや属性情報などによらず、常に固定長のコンテンツハッシュ値を得ることができ、またファイルの内容が僅かでも異なれば異なるコンテンツハッシュ値を得ることができる。よって、削除対象の旧ファイルを、簡易な判別処理で適切に特定することができる。
また、新ファイルFn及び旧ファイルFoの各ファイル名の先頭には同一の文字列である名称部Nが含まれており、CPU11は、判別対象の旧ファイルFoを、少なくとも名称部Nに基づいて特定する(判別手段)。これによれば、削除対象候補の旧ファイルFoを簡易な処理で抽出することができる。
また、本実施形態に係るプログラムとしてのインストーラ131は、情報処理装置としてのサーバ1に設けられたコンピュータとしてのCPU11を、インストール対象の新ファイルFnを所定のディレクトリDに追加する追加手段、新ファイルFnのデータに対してハッシュ処理を実行することにより、当該新ファイルFnのデータに対応したコンテンツハッシュ値Hnを生成する符号化処理手段、生成されたコンテンツハッシュ値Hnを、新ファイルFnのファイル名に挿入するファイル名生成手段、新ファイルFnによって置き換えられる旧ファイルFoがある場合に、当該旧ファイルFoが削除対象であるか否かを判別する判別手段、判別手段により旧ファイルFoが削除対象であると判別された場合に当該旧ファイルFoを削除する削除手段、として機能させ、判別手段は、新ファイルFnのファイル名に含まれているコンテンツハッシュ値Hの生成に用いられたハッシュ処理と同一のハッシュ処理を、旧ファイルFoのデータに対して実行することにより生成されるコンテンツハッシュ値Hが、旧ファイルFoのファイル名に含まれている場合に、旧ファイルFoが削除対象であると判別することを特徴とするプログラム。このようなプログラムによりサーバ1を動作させることで、削除対象の旧ファイルFoを適切かつ確実に特定して削除することができる。
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体として記憶部13のHDD、SSDを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリや、CD-ROM等の情報記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを、通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
なお、上記実施形態における記述は、本発明に係る端末装置及びプログラムの一例であり、これに限定されるものではない。
例えば、情報処理装置としてサーバ1を例に挙げて説明したが、これに限られず、例えば端末装置2も本発明の情報処理装置に対応し得る。よって、端末装置2においてソフトウェアのインストールを行う場合に本発明を適用してもよい。また、情報処理装置は、複数の機器がネットワーク接続された情報処理システムを構成するものに限られず、他の機器と接続されずに用いられるスタンドアローンの情報処理装置に本発明を適用してもよい。
また、上記実施形態では、符号化処理としてハッシュ処理を例示したが、これに限定する趣旨ではない。符号化処理は、処理対象のデータに対応する要約符号が生成される処理であって、内容が同一である2つのデータに対してそれぞれ当該符号化処理を実行して得られる要約符号が同一となる任意の処理とすることができる。符号化処理の他の例としては、チェックサムやCRC(Cyclic Redundancy Check)といった誤り検出用の符号を生成する処理が挙げられる。
また、上記実施形態では、旧ファイルFoが削除対象であるか否かの判別のために、インストール処理においてCPU11が旧ファイルFoに対してハッシュ処理を行ったが、これに限られない。例えば、インストール処理の開始前に予め旧ファイルFoに対してハッシュ処理を実行しておき、インストール処理では、予め生成されたハッシュ値と旧ファイルFoのファイル名とを比較して削除対象であるか否かの判別を行ってもよい。
また、上記実施形態では、旧ファイルFoに対してハッシュ処理を実行して生成されたコンテンツハッシュ値Hが旧ファイルFoに含まれているか否かによって削除対象であるか否かの判別を行ったが、これに限られない。例えば、新ファイルFnのファイル名のコンテンツハッシュ値Hnと、旧ファイルFoのファイル名のコンテンツハッシュ値Hoとが、同一のハッシュ処理により生成されているか否かを判別する他の方法を用いてもよい。
また、上記実施形態における情報処理装置の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
〔付記〕
<請求項1>
インストール対象の新ファイルを所定の記憶領域に追加する追加手段と、
前記新ファイルのデータに対して所定の符号化処理を実行することにより、当該新ファイルのデータに対応した第1要約符号を生成する符号化処理手段と、
前記符号化処理手段によって生成された前記第1要約符号を、前記新ファイルのファイル名に挿入するファイル名生成手段と、
前記新ファイルによって置き換えられる旧ファイルがある場合に、当該旧ファイルが削除対象であるか否かを判別する判別手段と、
前記判別手段により前記旧ファイルが削除対象であると判別された場合に当該旧ファイルを削除する削除手段と、を備え、
前記判別手段は、前記新ファイルのファイル名に含まれている前記第1要約符号の生成に用いられた前記符号化処理と同一の符号化処理を、前記旧ファイルのデータに対して実行することにより生成される第2要約符号が、前記旧ファイルのファイル名に含まれている場合に、前記旧ファイルが削除対象であると判別することを特徴とする情報処理装置。
<請求項2>
前記符号化処理手段は、前記追加手段によって前記新ファイルが所定の記憶領域に追加されたことを条件に、前記旧ファイルのデータに対して前記符号化処理を実行して前記第2要約符号を生成し、
前記判別手段は、前記符号化処理手段により生成された前記第2要約符号が前記旧ファイルのファイル名に含まれる場合に、前記旧ファイルが削除対象であると判別することを特徴とする請求項1に記載の情報処理装置。
<請求項3>
前記追加手段によって前記新ファイルが所定の記憶領域に記憶される際に、前記符号化処理手段が前記新ファイルのデータに対応する前記第1要約符号を生成するとともに、前記ファイル名生成手段が当該第1要約符号を前記新ファイルのファイル名に挿入することを特徴とする請求項1又は2に記載の情報処理装置。
<請求項4>
前記符号化処理はハッシュ処理であり、
前記第1要約符号及び前記第2要約符号は、ハッシュ値であることを特徴とする請求項1~3のいずれか一項に記載の情報処理装置。
<請求項5>
前記新ファイル及び前記旧ファイルの各ファイル名の先頭には同一の文字列が含まれており、
前記判別手段は、判別対象の前記旧ファイルを、少なくとも前記文字列に基づいて特定することを特徴とする請求項1~4のいずれか一項に記載の情報処理装置。
<請求項6>
情報処理装置に設けられたコンピュータを、
インストール対象の新ファイルを所定の記憶領域に追加する追加手段、
前記新ファイルのデータに対して所定の符号化処理を実行することにより、当該新ファイルのデータに対応した第1要約符号を生成する符号化処理手段、
前記符号化処理手段によって生成された前記第1要約符号を、前記新ファイルのファイル名に挿入するファイル名生成手段、
前記新ファイルによって置き換えられる旧ファイルがある場合に、当該旧ファイルが削除対象であるか否かを判別する判別手段、
前記判別手段により前記旧ファイルが削除対象であると判別された場合に当該旧ファイルを削除する削除手段、
として機能させ、
前記判別手段は、前記新ファイルのファイル名に含まれている前記第1要約符号の生成に用いられた前記符号化処理と同一の符号化処理を、前記旧ファイルのデータに対して実行することにより生成される第2要約符号が、前記旧ファイルのファイル名に含まれている場合に、前記旧ファイルが削除対象であると判別することを特徴とするプログラム。
1 サーバ(情報処理装置)
2 端末装置
3 通信ネットワーク
11 CPU(追加手段、符号化処理手段、ファイル名生成手段、判別手段、削除手段)
12 RAM
13 記憶部
131 インストーラ(プログラム)
132 プログラムファイル群
14 操作部
15 表示部
16 通信部
17 バス
21 CPU
22 RAM
23 記憶部
231 ブラウザ
24 操作部
25 表示部
26 通信部
27 バス
100 情報処理システム
D、D1~D3 ディレクトリ(記憶領域)
E、En、Eo 拡張子
F1、F2 ファイル
Fn、Fn1、Fn3 新ファイル
Fo、Fo1、Fo3 旧ファイル
Hn コンテンツハッシュ値(第1要約符号、ハッシュ値)
Ho コンテンツハッシュ値(第2要約符号、ハッシュ値)
N、Nn、No 名称部

Claims (6)

  1. インストール対象の新ファイルを所定の記憶領域に追加する追加手段と、
    前記新ファイルのデータに対して所定の符号化処理を実行することにより、当該新ファイルのデータに対応した第1要約符号を生成する符号化処理手段と、
    前記符号化処理手段によって生成された前記第1要約符号を、前記新ファイルのファイル名に挿入するファイル名生成手段と、
    判別対象の旧ファイルが削除対象であるか否かを判別する判別手段と、
    前記判別手段により前記旧ファイルが削除対象であると判別された場合に当該旧ファイルを削除する削除手段と、を備え、
    前記判別手段は、前記新ファイルのファイル名に含まれている前記第1要約符号の生成に用いられた前記符号化処理と同一の符号化処理を、前記旧ファイルのデータに対して実行することにより生成される第2要約符号が、前記旧ファイルのファイル名に含まれている場合に、前記旧ファイルが削除対象であると判別することを特徴とする情報処理装置。
  2. 前記符号化処理手段は、前記追加手段によって前記新ファイルが所定の記憶領域に追加されたことを条件に、前記旧ファイルのデータに対して前記符号化処理を実行して前記第2要約符号を生成し、
    前記判別手段は、前記符号化処理手段により生成された前記第2要約符号が前記旧ファイルのファイル名に含まれる場合に、前記旧ファイルが削除対象であると判別することを特徴とする請求項1に記載の情報処理装置。
  3. 前記追加手段によって前記新ファイルが所定の記憶領域に記憶される際に、前記符号化処理手段が前記新ファイルのデータに対応する前記第1要約符号を生成するとともに、前記ファイル名生成手段が当該第1要約符号を前記新ファイルのファイル名に挿入することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記符号化処理はハッシュ処理であり、
    前記第1要約符号及び前記第2要約符号は、ハッシュ値であることを特徴とする請求項1~3のいずれか一項に記載の情報処理装置。
  5. 前記新ファイル及び前記旧ファイルの各ファイル名の先頭には同一の文字列が含まれており、
    前記判別手段は、判別対象の前記旧ファイルを、少なくとも前記文字列に基づいて特定することを特徴とする請求項1~4のいずれか一項に記載の情報処理装置。
  6. 情報処理装置に設けられたコンピュータを、
    インストール対象の新ファイルを所定の記憶領域に追加する追加手段、
    前記新ファイルのデータに対して所定の符号化処理を実行することにより、当該新ファイルのデータに対応した第1要約符号を生成する符号化処理手段、
    前記符号化処理手段によって生成された前記第1要約符号を、前記新ファイルのファイル名に挿入するファイル名生成手段、
    判別対象の旧ファイルが削除対象であるか否かを判別する判別手段、
    前記判別手段により前記旧ファイルが削除対象であると判別された場合に当該旧ファイルを削除する削除手段、
    として機能させ、
    前記判別手段は、前記新ファイルのファイル名に含まれている前記第1要約符号の生成に用いられた前記符号化処理と同一の符号化処理を、前記旧ファイルのデータに対して実行することにより生成される第2要約符号が、前記旧ファイルのファイル名に含まれている場合に、前記旧ファイルが削除対象であると判別することを特徴とするプログラム。
JP2020019437A 2020-02-07 2020-02-07 情報処理装置及びプログラム Active JP7419853B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020019437A JP7419853B2 (ja) 2020-02-07 2020-02-07 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020019437A JP7419853B2 (ja) 2020-02-07 2020-02-07 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2021125067A JP2021125067A (ja) 2021-08-30
JP7419853B2 true JP7419853B2 (ja) 2024-01-23

Family

ID=77459564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020019437A Active JP7419853B2 (ja) 2020-02-07 2020-02-07 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP7419853B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126639A (ja) 2002-09-30 2004-04-22 Toshiba Corp データ管理システム、データ管理方法及びプログラム
JP2010508608A (ja) 2006-10-31 2010-03-18 レビット・インコーポレーテッド 計算機メモリー上に記録されたデータ及びファイルディレクトリ構造の自動保護システム
JP2013058134A (ja) 2011-09-09 2013-03-28 Nec Corp データ書き込み装置
JP2015503780A (ja) 2012-02-13 2015-02-02 株式会社日立製作所 階層化ストレージシステムの管理装置及び管理方法
US20190129893A1 (en) 2017-11-01 2019-05-02 Swirlds, Inc. Methods and apparatus for efficiently implementing a fast-copyable database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126639A (ja) 2002-09-30 2004-04-22 Toshiba Corp データ管理システム、データ管理方法及びプログラム
JP2010508608A (ja) 2006-10-31 2010-03-18 レビット・インコーポレーテッド 計算機メモリー上に記録されたデータ及びファイルディレクトリ構造の自動保護システム
JP2013058134A (ja) 2011-09-09 2013-03-28 Nec Corp データ書き込み装置
JP2015503780A (ja) 2012-02-13 2015-02-02 株式会社日立製作所 階層化ストレージシステムの管理装置及び管理方法
US20190129893A1 (en) 2017-11-01 2019-05-02 Swirlds, Inc. Methods and apparatus for efficiently implementing a fast-copyable database

Also Published As

Publication number Publication date
JP2021125067A (ja) 2021-08-30

Similar Documents

Publication Publication Date Title
US7610296B2 (en) Prioritized files
US7895179B2 (en) Asynchronous updating of web page data views
EP1235143B1 (en) Method and system for creating and maintaining version-specific properties in a file
JP4140920B2 (ja) 個人情報の保護を支援する情報処理装置
US9424058B1 (en) File deduplication and scan reduction in a virtualization environment
US7324993B2 (en) Method and system for converting and plugging user interface terms
US20050080804A1 (en) System and method for maintaining componentized content
US20080126446A1 (en) Systems and methods for backing up user settings
US20140075301A1 (en) Information processing apparatus, control method, and recording medium
US20070226273A1 (en) Updating a local version of a file based on a rule
JP2005310163A (ja) テーブルを用いた言語ローカライゼーション
JP2023027785A (ja) 装置およびコンピュータプログラム
CN1749995A (zh) 内容相关对象的创建和管理
US6351741B1 (en) Method of locating a file linked to a document in a relocated document directory structure
JP2011191862A (ja) ファイル管理装置、ファイル管理システム、およびファイル管理プログラム
US20100318964A1 (en) Software extension analysis
CN113377458B (zh) 插件管理方法、装置、电子设备和存储介质
JP7419853B2 (ja) 情報処理装置及びプログラム
US20050033981A1 (en) Function restricting program, installer creation program and program storage medium
US7003721B1 (en) Safe save method of HTML files using recovery files including a list with temporary and final names for replacement files
JP2011238229A (ja) 正確なフォントのアクティブ化
US10275127B2 (en) Client apparatus, information processing system, information processing method, and non-transitory computer readable medium
US7624343B2 (en) Performance optimization for text layout processing
US20060161751A1 (en) Virtual memory management infrastructure for monitoring deltas and supporting undo versioning in a paged memory system
CN111695327A (zh) 一种乱码修复方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231109

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: 20231212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231225

R150 Certificate of patent or registration of utility model

Ref document number: 7419853

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150