(57)【要約】【課題】簡易な処理によりファイルの圧縮率を向上させる。【解決手段】ファイルの圧縮処理を実行する情報処理装置であって、前記ファイル内で同一の文字列が出現する可能性の高い第１の領域と、該第１の領域以外である第２の領域とを分割する分割部と、前記第１の領域に含まれるデータ及び前記第２の領域に含まれるデータの其々を圧縮し、圧縮ファイルを生成する生成部と、を有する情報処理装置が提供される。【選択図】図６
2017211844.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの圧縮処理を実行する情報処理装置であって、
前記ファイル内で同一の文字列が出現する可能性の高い第１の領域と、該第１の領域以外である第２の領域とを分割する分割部と、
前記第１の領域に含まれるデータ及び前記第２の領域に含まれるデータの其々を圧縮し、圧縮ファイルを生成する生成部と、を有する情報処理装置。
【請求項２】
前記ファイルは、前記情報処理装置の処理内容を記録したログファイルであって、
前記第１の領域は、前記ログファイルのメッセージが記録される領域であって、
前記第２の領域は、前記メッセージが生成された時刻を示すタイムスタンプが記録される領域である、請求項１に記載の情報処理装置。
【請求項３】
前記ログファイルは、
行ごとに、前記メッセージと、該メッセージに対応づけられたタイムスタンプとが記録されており、
前記行の先頭に固定長に前記タイムスタンプが記録されており、該タイムスタンプの後に前記メッセージが記録されている、請求項２に記載の情報処理装置。
【請求項４】
前記圧縮ファイルを生成するときに用いられるアルゴリズムは、圧縮する対象のデータに同一の文字列が含まれる場合に、圧縮率が向上する、請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
ファイルの圧縮処理方法であって、
前記ファイル内で同一の文字列が出現する可能性の高い第１の領域と、該第１の領域以外である第２の領域とを分割するステップと、
前記第１の領域に含まれるデータ及び前記第２の領域に含まれるデータの其々を圧縮し、圧縮ファイルを生成するステップと、を有する圧縮処理方法。
【請求項６】
ファイルの圧縮処理のプログラムであって、
前記ファイル内で同一の文字列が出現する可能性の高い第１の領域と、該第１の領域以外である第２の領域とを分割するステップと、
前記第１の領域に含まれるデータ及び前記第２の領域に含まれるデータの其々を圧縮し、圧縮ファイルを生成するステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、圧縮処理方法、及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置が、ファイルに圧縮処理を行い、圧縮ファイルを生成することが広く行われている。情報処理装置は圧縮ファイルを記憶することにより、記憶領域を効率的に使用することができる。また、一の情報処理装置が他の情報処理装置に圧縮ファイルを送信し、他の情報処理装置において、圧縮ファイルを解凍することにより、情報処理装置の間のネットワークの容量を効率的に使用することが可能である。
【０００３】
圧縮の処理による情報処理装置の処理負荷を低減するため、ＺＩＰ形式等の圧縮フォーマットが広く用いられている。
【０００４】
また、ファイルの圧縮率を向上させるために、ファイル内のデータに対して複数の圧縮方法を用いてしてファイルを圧縮することが提案されている（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＺＩＰ形式等の圧縮負荷の小さい圧縮方法が広く用いられているが、ＺＩＰ形式等では、連続して同一の文字列が出現する場合に、圧縮率が向上するが、同一の文字列の出現頻度が低い場合、圧縮率が向上しないという課題があった。ファイル内のデータに対して複数の圧縮方法を用いて、圧縮することにより圧縮率の向上を図れる場合もあるが、処理が複雑なため情報処理装置の処理負荷が大きいという課題があった。
【０００６】
本発明は、上記の課題に鑑みてされたものであって、簡易な処理によりファイルの圧縮率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様によれば、ファイルの圧縮処理を実行する情報処理装置であって、前記ファイル内で同一の文字列が出現する可能性の高い第１の領域と、該第１の領域以外である第２の領域とを分割する分割部と、前記第１の領域に含まれるデータ及び前記第２の領域に含まれるデータの其々を圧縮し、圧縮ファイルを生成する生成部と、を有する情報処理装置が提供される。
【発明の効果】
【０００８】
簡易な処理によりファイルの圧縮率を向上させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る情報処理システムの一例を示す図である。
【図２】実施形態に係るコンピュータのハードウエア構成の一例を示す図である。
【図３】実施形態に係る情報処理システムの機能構成の一例を示す図である。
【図４】実施形態に係る動作シーケンスの一例を示す図である。
【図５】一般的なログファイルの構造の一例を示す図である。
【図６】実施形態に係る動作フローの一例を示す図である。
【図７】実施形態に係るログファイルの領域の分割及び圧縮処理の一例を示す図である。
【図８】実施形態に係る圧縮処理のコマンドの一例を示す図である。
【図９】実施形態に係る解凍処理のコマンドの一例を示す図である。
【発明を実施するための形態】
【００１０】
＜システム構成＞
図１を用いて実施形態に係る情報処理システム１について説明する。情報処理システム１は、端末１０と、ログ管理装置２０とを有する。端末１０とログ管理装置２０とは、ネットワーク２を介して接続される。
【００１１】
端末１０は、ログファイルを生成する。ここで、ログファイルとは、端末１０の利用状況、プログラムの実行状況、データ通信の送受信状況などが記録されたファイルである。端末１０は、ログファイルを圧縮した圧縮ファイルを生成する。ログ管理装置２０は、端末１０から圧縮ファイルを取得する。ログ管理装置２０は、圧縮ファイルを解凍して、ログファイルに記録された情報を解析する。
【００１２】
＜ハードウエア構成＞
端末１０とログ管理装置２０は、一般的なコンピュータ３００により実現される。図２は、一般的なコンピュータ３００のハードウエアの構成を示す図である。コンピュータ３００は入出力装置３０１、外部Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０４、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０５、通信Ｉ／Ｆ３０６、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０７などを備え、それぞれがバスＢで相互に接続されている。
【００１３】
入出力装置３０１は、コンピュータ３００のユーザから、各種設定を受け付けると共に、設定されている情報等を表示する。
【００１４】
通信Ｉ／Ｆ３０６は、他の装置との間で、ネットワークやケーブルを介して通信を行う。
【００１５】
ＨＤＤ３０７はプログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータにはコンピュータ３００全体を制御する基本ソフトウエアであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ＯＳ上において各種機能を提供するアプリケーションソフトウエアなどがある。
【００１６】
外部Ｉ／Ｆ３０２は、外部装置とのインタフェースである。外部装置には、外部記録媒体３０２ａなどがある。これにより、コンピュータ３００は外部Ｉ／Ｆ３０２を介して外部記録媒体３０２ａの読み取り及び／又は書き込みを行うことができる。外部記録媒体３０２ａにはフレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、及びＵＳＢメモリなどがある。
【００１７】
ＲＯＭ３０４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）の一例である。ＲＯＭ３０４にはコンピュータ３００の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ３０３はプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）の一例である。
【００１８】
ＣＰＵ３０５は、ＲＯＭ３０４及びＨＤＤ３０７などの記憶装置からプログラムやデータをＲＡＭ３０３上に読み出し、処理を実行することで、コンピュータ３００全体の制御やコンピュータ３００の機能を実現する演算装置である。
【００１９】
＜機能構成＞
図３を用いて情報処理システム１の機能構成について説明する。
【００２０】
（１）端末
端末１０は、送受信部１１０、処理実行部１２０、ログ収集部１３０、及び圧縮処理部１４０を有する。これらの機能は、ＲＯＭ３０４等に記憶された１以上のプログラムをＣＰＵ３０５に実行させることにより実現される。また、端末１０は、情報記憶部１５０を有する。情報記憶部１５０は、例えば、ＨＤＤ３０７により実現される。
【００２１】
送受信部１１０は、ネットワーク２を介して、ログ管理装置２０、及びその他ネットワーク２に接続されている装置との間で各種データの送受信を行う。
【００２２】
処理実行部１２０は、端末１０を動作させるための各種処理を実行する。
【００２３】
ログ収集部１３０は、処理実行部１２０で実行されている処理の状況、送受信部１１０におけるデータの送受信状況等を収集し、ログファイルを生成する。ログ収集部１３０は、生成したログファイルを、情報記憶部１５０に記憶させる。
【００２４】
圧縮処理部１４０は、ファイルに対する圧縮処理を実行し、圧縮ファイルを生成する。具体的には、圧縮処理部１４０は、情報記憶部１５０からログファイルを取得し、取得したログファイルに対して圧縮処理を実行し、圧縮ファイルを実行する。ＺＩＰ形式等の圧縮ファイルを生成する場合、同一の文字列が存在する場合に圧縮率が向上する。このため、圧縮処理部１４０は、圧縮処理の対象となるファイルの中で、同一の文字列が存在する高い１以上の領域（第１の領域）と、それ以外の領域（第２の領域）とに分割し、各々の領域に対して圧縮処理を実行し、１つの圧縮ファイルを生成する。
【００２５】
情報記憶部１５０は、各種情報を記憶する。情報記憶部１５０は、ログファイルを記憶する。
【００２６】
（２）ログ管理装置
ログ管理装置２０は、送受信部２１０、解凍部２２０、及びログ解析部２３０を有する。これらの機能は、ＲＯＭ３０４等に記憶された１以上のプログラムをＣＰＵ３０５に実行させることにより実現される。また、ログ管理装置２０は、情報記憶部２４０を有する。情報記憶部２４０は、例えば、ＨＤＤ３０７により実現される。
【００２７】
送受信部２１０は、ネットワーク２を介して、端末１０及びその他ネットワーク２に接続されている装置との間で各種データの送受信を行う。
【００２８】
解凍部２２０は、圧縮ファイルを解凍し、圧縮処理が実行される前のファイルを復元する。
【００２９】
ログ解析部２３０は、ログファイルを解析し、解析結果を生成する。
【００３０】
情報記憶部２４０は、各種情報を記憶する。情報記憶部２４０は、ログファイル、及びログファイルの解析結果を記憶する。
【００３１】
＜処理手順＞
（１）動作シーケンス
図４を用いて、実施形態に係る動作シーケンスについて説明する。
【００３２】
ステップＳ４０１で、端末１０はログファイルを生成する。
【００３３】
ステップＳ４０２で、端末１０はログファイルを圧縮し、圧縮ファイルを生成する。
【００３４】
ステップＳ４０３で、端末１０は、圧縮ファイルをログ管理装置２０に送信する。
【００３５】
ステップＳ４０４で、ログ管理装置２０は、圧縮ファイルを解凍し、ログファイルを取得する。
【００３６】
ステップＳ４０５で、ログ管理装置２０は、取得したログファイルを解析し、解析結果を生成する。
【００３７】
（２）一般的な圧縮処理の手順
次に、図５を用いて一般的なログファイルの圧縮処理について説明する。
【００３８】
図５は、一般的なログファイルの構造の一例を示す図である。ログファイルの各行には、処理が実行された時間を示すタイムスタンプと、処理内容を示すメッセージとが記録される。例えば行番号Ｎｏ．１には、時刻「2016-02-10 12:02:02.741」で実行された処理内容を示すメッセージ「INFO: AppClient: [System thread]: src\AppClientIf.cpp:1931: AppClientIf_impl::getDeviceInfo: get device info」が記録されている。
【００３９】
ＺＩＰ形式で採用しているｄｅｆｌａｔｅアルゴリズム等では、出現した文字列と同じ文字列が存在する場合に、かかる文字列が圧縮される。また、文字列の長さが長い程、圧縮率が高くなる。
【００４０】
一般的なｄｅｆｌａｔｅアルゴリズムが用いられる場合、行番号Ｎｏ．１のログのタイムスタンプから図５の矢印５１の方向に、文字列を読み込み、圧縮処理が実行される。
【００４１】
この場合、文字列の読み込みは、タイムスタンプと、メッセージとが交互に読み込まれることになる。例えば、行番号Ｎｏ．１のタイムスタンプ、行番号Ｎｏ．１のメッセージ、行番号Ｎｏ．２のタイムスタンプ、行番号Ｎｏ．２のメッセージの順番に読み込まれる。このため、行番号Ｎ（Ｎは自然数）のメッセージと、行番号Ｎ＋１のメッセージとに同じメッセージが記録されている場合でも、タイムスタンプが存在するため、メッセージ領域を連続して読み込むことができない。このため、一般的なｄｅｆｌａｔｅアルゴリズムを適用した場合、同じ文字列が連続していると認識されず、圧縮率を高められないおそれがある。
【００４２】
（３）実施形態に係る圧縮処理の手順
次に、実施形態に係るログファイルの圧縮処理の手順について説明する。なお、圧縮処理の際には、ｄｅｆｌａｔｅアルゴリズムが適用されるものとする。
【００４３】
図６は、実施形態に係るフローチャートの一例を示す図である。
【００４４】
ステップＳ６０１で、ログ収集部１３０は、処理実行部１２０等により実行された処理のログを収集し、ログファイルを生成する。ログ収集部１３０は、生成したログファイルを情報記憶部１５０に記憶させる。
【００４５】
ステップＳ６０２で、圧縮処理部１４０は、情報記憶部１５０からログファイルを取得し、ログファイル内で同一の文字列が出現する可能性が高い第１の領域と、それ以外の領域とに分割する。
【００４６】
ステップＳ６０３で、圧縮処理部１４０は、分割された領域の其々に、つまり第１の領域と、第２の領域とに圧縮処理を実行し、圧縮ファイルを生成する。
【００４７】
ここで、図７を用いて領域の分割及び圧縮処理について、具体的に説明する。図７は、実施形態に係るログファイルの領域の分割及び圧縮処理の一例を示す図である。
【００４８】
圧縮処理部１４０は、ログファイル内のデータを、各行のタイムスタンプが設定されているタイムスタンプ領域７１と、各行のメッセージが設定されているメッセージ領域７２とに分割する。ここで、タイムスタンプ領域７１の各行には、異なる文字列が設定されるため、同一の文字列が出現する可能性が低い領域である。一方、メッセージ領域７２の各行には、ログ、つまり実行された処理内容が設定されるため、同じ文字列が出現する可能性が高い領域である。
【００４９】
圧縮処理部１４０は、タイムスタンプ領域７１及びメッセージ領域７２の其々にｄｅｆｌａｔｅアルゴリズムを適用して一つのＺＩＰ形式の圧縮ファイルを生成する。具体的には、圧縮処理部１４０は、タイムスタンプ領域７１については矢印７３の方向で文字列を読み込み、メッセージ領域７２については、矢印７４の方向で文字列を読み込む。
【００５０】
メッセージ領域７２の文字列を矢印７４の方向で読み込んだ場合、同じメッセージが出現した場合、圧縮されるため、圧縮率が向上する可能性が高くなる。
【００５１】
圧縮処理部１４０は、読み込んだ文字列に対して圧縮処理を行い、ＺＩＰファイルを生成する。
【００５２】
次に、図８を用いて、圧縮処理部１４０により実行される処理コマンドについて説明する。図８は、実施形態に係る圧縮処理のコマンドの一例を示す図である。
【００５３】
コマンド８１「cat application.log」は、アプリケーションのログファイル（application.log）をそのまま出力するコマンドである。圧縮処理部１４０が、コマンド８１を実行すると、アプリケーションログのファイルがそのまま出力される。
【００５４】
コマンド８２「cut -d' ' -f1-2 application.log > timestamp.log」は、アプリケーションログのファイル（application.log）の行の最初のフィールド（ｆ１）と２番目のフィールド（ｆ２）とを切り取り、タイムスタンプのログファイル（timestamp.log）とするコマンドである。圧縮処理部１４０が、コマンド８２を実行すると、タイムスタンプのログファイルが生成される。ここでフィールドは、１以上の文字列を含み、フィールドの区切りとなる部分には、スペースが設けられている。最初のフィールド（ｆ１）及び２番目のフィールド（ｆ２）は図７のｆ１（７５）及びｆ２（７６）で表される。
【００５５】
コマンド８３は、コマンド８２と同様に、アプリケーションログのファイル（application.log）の行の３番目以降のフィールド（ｆ３〜）を切り取り、メッセージのログファイル（message.log）とするコマンドである。圧縮処理部１４０が、コマンド５３を実行すると、メッセージのログファイルが生成される。なお、３番目以降のフィールド（ｆ３〜）は図７のｆ３〜（７７）で表される。
【００５６】
つまり、圧縮処理部１４０が、コマンド８２及びコマンド８３を実行することにより、ログファイルの中のデータが、タイムスタンプ領域７１と、メッセージ領域７２とに分割される。
【００５７】
コマンド８４「zip application.log.zip timestamp.log message.log」は、タイムスタンプのログファイルと、メッセージのログファイルとを圧縮し、ＺＩＰ形式の１つの圧縮ファイルを生成するためのコマンドである。圧縮処理部１４０が、コマンド８４を実行すると、ＺＩＰ形式の１つの圧縮ファイルが生成される。
【００５８】
実施形態に係る圧縮処理の手順、つまり領域を分割後に圧縮する手順を用いると、２５８ＫＢのサイズのアプリケーションのログファイルが、１６．２ＫＢとなった。一方、一般的な圧縮処理の手順、つまり領域を分割しないで圧縮する手順を用いると、１８．１ＫＢとなった。このことから、実施形態に係る圧縮処理の手順を用いると、圧縮率が１２％程度改善していることが分かる。
【００５９】
また、ログファイルの中のデータの一部の切り取るという簡易な処理により、タイムスタンプ領域７１と、メッセージ領域７２とが分割される。このため、実施形態に係る圧縮処理を実行することによる端末１０への負荷を抑えることが可能である。
【００６０】
なお、図８では、アプリケーションのログファイルに圧縮処理を実行する場合について説明したが、その他の種類のフェイルにも同様の圧縮処理を適用可能なことは勿論である。
【００６１】
（４）実施形態に係る解凍処理の動作手順
次に、図９を用いてログ管理装置２０における解凍処理の手順について説明する。
【００６２】
図９は、実施形態に係る解凍処理のコマンドの一例を示す図である。解凍部２２０は、図９のコマンドを実行することにより、端末１０から受信した圧縮ファイルが解凍される。
【００６３】
コマンド９１「unzip application.log.zip」は、ＺＩＰ形式で圧縮されているアプリケーションのログファイル（application.log.zip）を解凍するコマンドである。解凍部２２０が、コマンド９１を実行すると、圧縮ファイルが解凍され、タイムスタンプログのファイル（timestamp.log）と、メッセージログのファイル（message.log）とが編集可能な状態となる。
【００６４】
コマンド９２「paste -d' ' timestamp.log message.log > application.log」は、タイムスタンプのログファイル（timestamp.log）と、メッセージのログファイル（message.log）とを結合し、アプリケーションのログファイル（application.log）とするためのコマンドである。解凍部２２０が、コマンド９２を実行すると圧縮前のアプリケーションのログファイルが復元される。コマンド９２は、単純なデータの貼り付け処理のため、ログ管理装置２０の解凍による処理負荷は小さい。
【００６５】
上述した実施形態では、ＺＩＰ形式の圧縮ファイルが生成される場合について説明したが、同一の文字列が出現する場合に圧縮率が向上するアルゴリズムが適用される圧縮ファイルの形式の場合、同様の処理が適用できる。また、上述した実施形態では、一行にタイムスタンプと、メッセージとが表示され、かつ、タイムスタンプが行の先頭の所定の領域を占める場合について説明したが、第１の領域と第２の領域とを分割できるデータの形式であれば、同様の圧縮処理を適用できる。また、複数の第１の領域が設けられてもよいことは勿論である。
【００６６】
実施形態に係る圧縮処理は、第１の領域と第２の領域とを容易に分割できるフォーマットのデータを有するファイルに適用し易い。例えば、実施形態に係る圧縮処理は、全ての行のフォーマットが統一されているファイルに適用し易い。
【００６７】
上述した実施形態のログファイルでは、全ての行にタイムスタンプと、メッセージとが設定されているが、全ての行にメッセージが設定されていることは必須ではない。例えば、端末１０が定期的にログを収集するときに、所定の時間にログが生成されていない場合には、ログファイルにタイムスタンプのみが記憶される。
【００６８】
図８及び図９では、Ｌｉｎｕｘ（登録商標）のコマンドを用いて、端末１０及びログ管理装置２０で、処理が実行される例について示しているが、Ｌｉｎｕｘ以外のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のコマンドも適用可能なことは勿論である。
【００６９】
また、上述した実施形態では、圧縮処理が端末１０で実行され、解凍処理がログ管理装置２０で実行される場合について説明したが、これらの処理は、一般的なパソコン、及びサーバ等の情報処理装置により実現できることは勿論である。
【００７０】
［その他］
圧縮処理部１４０は、分割部及び生成部の一例である。
【００７１】
上述した実施の形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、端末１０及びログ管理装置２０に供給してもよい。そして、端末１０及びログ管理装置２０が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、上述の実施形態が、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は、いずれかの実施の形態を構成することになる。ここで、記憶媒体は、記録媒体または非一時的な記憶媒体である。
【００７２】
また、コンピュータ装置が読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に従って、コンピュータ装置上で動作しているオペレーティングシステム（ＯＳ）等が実際の処理の一部または全部を行ってもよい。さらに、その処理によって前述した実施形態の機能が実現されてもよいことは言うまでもない。
【００７３】
以上、本発明の好ましい実施形態について説明したが、本発明はこうした実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７４】
１  情報処理システム
２  ネットワーク
１０  端末
２０  ログ管理装置
１１０  送受信部  （端末）
１２０  処理実行部
１３０  ログ収集部
１４０  圧縮処理部
１５０  情報記憶部
２１０  送受信部  （ログ管理装置）
２２０  解凍部
２３０  ログ解析部
２４０  情報記憶部
【先行技術文献】
【特許文献】
【００７５】
【特許文献１】特開２００５−０２５６３７号公報
【図１】
2017211844.tif 000003
【図２】
2017211844.tif 000004
【図３】
2017211844.tif 000005
【図４】
2017211844.tif 000006
【図５】
2017211844.tif 000007
【図６】
2017211844.tif 000008
【図７】
2017211844.tif 000009
【図８】
2017211844.tif 000010
【図９】
2017211844.tif 000011