(58)【調査した分野】(Int.Cl.,DB名)
分析者から、複数の分析プログラムと、複数の前記分析プログラムそれぞれを利用するためのプログラムとプログラミングインターフェースを示す情報との少なくとも一方と、の登録を受け付ける登録部と、
アプリケーションの開発者から、複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、
選択された前記分析プログラムを利用するためのアクセス情報と、前記プログラムと前記プログラミングインターフェースを示す情報との少なくとも一方とを、前記開発者に対して出力する出力部と、
前記アクセス情報と、前記プログラムと前記プログラミングインターフェースを示す情報との少なくとも一方と、が組み込まれた第1の前記アプリケーションからログを取得する取得部と、
選択された前記分析プログラムに前記ログを渡して分析を実行させるとともに、選択された前記分析プログラムから前記分析の結果を受け取る分析制御部と、
第1の前記アプリケーションとは異なる第2の前記アプリケーションであって、前記アクセス情報が組み込まれた第2の前記アプリケーションへ前記分析の結果を提供する提供部と、
を有するログ分析装置。
前記アプリケーションに前記アクセス情報が組み込まれていない場合、又は前記アプリケーションに組み込まれた前記アクセス情報が予め登録された前記アクセス情報に合致しない場合に、前記アプリケーションからのアクセスを拒否するアクセス制御部をさらに有する、請求項1に記載のログ分析装置。
前記取得部は、前記アプリケーションに能動的に前記ログを取得にいく能動取得部と、前記アプリケーションから送信された前記ログを受動的に受け取る受動取得部とを含み、
前記取得部は、前記能動取得部及び前記受動取得部の少なくとも一方によって前記ログを取得する、請求項1又は2に記載のログ分析装置。
前記提供部は、前記アプリケーションへ能動的に前記分析の結果を送信する能動提供部と、前記アプリケーションからの要求を受けて受動的に前記分析の結果を送信する受動提供部とを含み、
前記提供部は、前記能動提供部及び前記受動提供部の少なくとも一方によって前記分析の結果を提供する、請求項1から3のいずれか一項に記載のログ分析装置。
前記出力部は、前記受付部に対して前記分析プログラムの選択を行った第1のユーザの識別子を含む前記アクセス情報を出力し、前記アクセス情報が組み込まれた前記アプリケーションから初めてアクセスされた場合に、前記アプリケーションを実行する端末に第2のユーザの識別子を付与し、
前記取得部は、前記第2のユーザの識別子に関連付けられた前記端末内の第1の前記アプリケーションから前記ログを取得し、
前記提供部は、前記第2のユーザの識別子に関連付けられた前記端末内の第2の前記アプリケーションへ前記分析の結果を提供する、
請求項1に記載のログ分析装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来、ログの分析を行う分析エンジンは、ログの収集、分析の実行及び結果の提供が一連のサービス設計で実装されていた。一般的にアプリケーション(サービスを含む)ごとにログの形式、収集方法及び結果の提供方法が異なるため、既存の分析エンジンを他のアプリケーションに流用することは難しい。したがって、分析エンジンの提供者には、アプリケーションごとに分析エンジンを逐一作り直す手間があった。
【0006】
特許文献1に記載の技術では、集約するAPIの数が増えるほど複数のAPIを利用するためのクエリ情報が複雑になるため、APIを利用するアプリケーションの開発者の負担が大きくなる。
【0007】
本発明はこれらの点に鑑みてなされたものであり、分析エンジンの提供者と分析エンジンを利用するアプリケーションの開発者との双方の負担を軽減可能なログ分析装置、ログ分析方法、ログ分析プログラム及びログ分析システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様のログ分析装置は、複数の分析プログラムを登録する登録部と、複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、を有する。
【0009】
前記アプリケーションに前記アクセス情報が組み込まれていない場合、又は前記アプリケーションに組み込まれた前記アクセス情報が予め登録された前記アクセス情報に合致しない場合に、前記アプリケーションからのアクセスを拒否するアクセス制御部をさらに有してもよい。
【0010】
前記分析制御部は、選択された前記分析プログラムにログを渡して分析を実行させるとともに、選択された前記分析プログラムから前記分析の結果を受け取ってもよい。
【0011】
前記アクセス情報が組み込まれた前記アプリケーションから前記ログを取得する取得部と、前記アクセス情報が組み込まれた前記アプリケーションへ前記分析の結果を提供する提供部と、をさらに有してもよい。
【0012】
前記取得部は、前記アプリケーションに能動的に前記ログを取得にいく能動取得部と、前記アプリケーションから送信された前記ログを受動的に受け取る受動取得部とを含み、前記取得部は、前記能動取得部及び前記受動取得部の少なくとも一方によって前記ログを取得してもよい。
【0013】
前記提供部は、前記アプリケーションへ能動的に前記分析の結果を送信する能動提供部と、前記アプリケーションからの要求を受けて受動的に前記分析の結果を送信する受動提供部とを含み、前記提供部は、前記能動提供部及び前記受動提供部の少なくとも一方によって前記ログを提供してもよい。
【0014】
前記分析制御部による前記分析の実行のタイミングを制御するタイミング制御部をさらに有してもよい。
【0015】
前記タイミング制御部は、定期的に、又は新たな前記ログが取得された場合に、前記分析制御部に前記分析の実行を要求してもよい。
【0016】
前記分析制御部は、選択された前記分析プログラムによる前記分析の結果を、複数の前記分析プログラムのうちいずれかに渡してさらに分析を実行させてもよい。
【0017】
前記ログ、及び前記ログを用いて実行された前記分析の結果を関連付けて記憶する記憶部をさらに有してもよい。
【0018】
前記出力部は、前記受付部に対して前記分析プログラムの選択を行った第1のユーザの識別子を含む前記アクセス情報を出力し、前記アクセス情報が組み込まれた前記アプリケーションから初めてアクセスされた場合に、前記アプリケーションを実行する端末に第2のユーザの識別子を付与し、前記第2のユーザの識別子に関連付けられた前記端末から前記ログを取得する取得部と、前記第2のユーザの識別子に関連付けられた前記端末へ前記分析の結果を提供する提供部と、をさらに有してもよい。
【0019】
前記出力部は、前記アクセス情報とともに、選択された前記分析プログラムの機能を利用するためのプログラムとプログラミングインターフェースを示す情報との少なくとも一方を出力してもよい。
【0020】
本発明の第2の態様のログ分析方法は、複数の分析プログラムを登録するステップと、複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、を有する。
【0021】
本発明の第3の態様のログ分析プログラムは、コンピュータに、複数の分析プログラムを登録するステップと、複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、を実行させる。
【0022】
本発明の第4の態様のログ分析システムは、ログ分析装置、及び前記ログ分析装置と通信可能な端末を備え、前記ログ分析装置は、複数の分析プログラムを登録する登録部と、複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、を有し、前記端末は、前記アクセス情報が組み込まれたアプリケーションを実行する。
【発明の効果】
【0023】
本発明によれば、分析エンジンの提供者と分析エンジンを利用するアプリケーションの開発者との双方の負担を軽減できるという効果を奏する。
【発明を実施するための形態】
【0025】
(第1の実施形態)
図1は、本実施形態に係るログ分析システムSの模式図である。ログ分析システムSは、ログ分析装置1と、分析エンジンサーバ2と、ログ取得端末3と、結果利用端末4と、を含む。ログ分析装置1、分析エンジンサーバ2、ログ取得端末3及び結果利用端末4は、ローカルエリアネットワーク、インターネット等の任意のネットワークNを介して接続される。ログ分析システムSは、その他のサーバ、端末等の機器を含んでもよい。
【0026】
ログ分析装置1は、ログ取得端末3及び結果利用端末4が実行するアプリケーション(サービスを含む)による分析エンジン(分析プログラムともいう)の利用を制御する装置である。分析エンジンサーバ2は、分析エンジンのプログラムを記憶し、該プログラムを実行することによって該分析エンジンを機能させるサーバである。
【0027】
ログ分析装置1及び分析エンジンサーバ2は、それぞれ有線通信又は無線通信によってネットワークNに接続されており、単一のコンピュータ、又はコンピュータ資源の集合であるクラウドによって構成される。ログ分析装置1及び分析エンジンサーバ2は、1つの装置として一体的に構成されてもよい。
【0028】
ログ取得端末3は、ログを取得してログ分析装置1に送信する装置である。ログ取得端末3として、スマートフォンのような携帯端末、センサやカメラのようなIoTデバイス等を用いることができる。結果利用端末4は、分析エンジンによる分析結果を受信して所定の処理を行う装置である。結果利用端末4として、スマートフォンのような携帯端末、パーソナルコンピュータ等を用いることができる。
【0029】
ログ取得端末3及び結果利用端末4は、それぞれ有線通信又は無線通信によってネットワークNを介してログ分析装置1と通信可能に構成される。ログ取得端末3及び結果利用端末4は、1つの装置として一体的に構成されてもよい。
図1においてそれぞれログ取得端末3及び結果利用端末4を1つずつ設けられているが、それぞれ複数設けられてもよい。
【0030】
[ログ分析方法の説明]
図2は、本実施形態に係るログ分析システムSによるログ分析方法の模式図である。
図2において、「アプリ」はアプリケーションを指す。まず、分析エンジンを提供するユーザである分析者U1は、分析エンジンをログ分析装置1に登録する(a)。このとき、ログ分析装置1は、分析エンジンを分析エンジンサーバ2に記憶し、分析エンジンを実行可能な状態にする。
【0031】
また、分析者U1は、分析エンジンに関連付けて、該分析エンジンを利用するためのSDK(ソフトウェア開発キット)及びAPIをログ分析装置1に登録する。SDKは分析エンジンの機能を利用するためのプログラムを含み、該プログラムをアプリケーションに組み込むことによって分析エンジンへのアクセスを可能にする。APIは、分析エンジンの機能を利用するためのプログラミングインターフェースを含み、該インターフェースに従ってアプリケーションの入出力を設定することによって分析エンジンへのアクセスを可能にする。分析者U1は、分析エンジンごとに、SDK及びAPIの一方又は両方を登録する。
【0032】
次に、アプリケーションを開発するユーザである開発者U2は、該アプリケーションで利用したい分析エンジンを選択する(b)。ログ分析装置1は、開発者U2へ、選択された分析エンジンを利用するためのアクセス情報、SDK及びAPIを出力する(c)。
【0033】
開発者U2は、ログ分析装置1から取得したアクセス情報、SDK及びAPIを用いて、アプリケーションを開発する(d)。そして開発者U2は、アプリケーションを利用するユーザである利用者U3へ、開発したアプリケーションを公開する(e)。アプリケーションは、ログ分析装置1を介する必要はなく、一般的なソフトウェア配布システムを用いて公開される。
【0034】
利用者U3は、公開されたアプリケーションをログ取得端末3又は結果利用端末4に導入(すなわちインストール)する。ログ取得端末3又は結果利用端末4に導入されたアプリケーションの制御に応じて、ログ取得端末3はログ分析装置1にログを送信する(f)。ログ取得端末3は、ログ取得端末3自身に導入されたアプリケーションによって制御されてもよく、あるいは結果利用端末4に導入されたアプリケーションによってネットワークNを介して制御されてもよい。
【0035】
ログ分析装置1は、受信したログを分析エンジンサーバ2に渡して分析エンジンを用いた分析を行わせる。そしてログ分析装置1は、分析エンジンによる分析の結果を結果利用端末4に提供する(g)。
【0036】
このように、本実施形態に係るログ分析装置1は、分析エンジンの提供と、分析エンジンを利用するアプリケーションの開発とを緩やかに結びつける(すなわち疎結合させる)。そのため、分析エンジンの提供者はログ収集及び結果利用のためのアプリケーションを開発する必要がなく、アプリケーションの開発者は新たに分析エンジンを開発する必要がない。したがって、分析エンジンの提供者とアプリケーションの開発者との双方の負担を軽減することができる。
【0037】
[ログ分析装置1の構成]
図3は、本実施形態に係るログ分析装置1のブロック図である。
図3において、矢印は主なデータの流れを示しており、
図3に示したもの以外のデータの流れがあってよい。
図3において、各ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、
図3に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【0038】
ログ分析装置1は、制御部11と、通信部12と、記憶部13とを有する。制御部11は、分析エンジン登録部111と、選択受付部112と、開発情報出力部113と、アクセス制御部114と、ログ取得部115と、タイミング制御部116と、分析制御部117と、結果提供部118とを有する。
【0039】
通信部12は、ネットワークNを介して分析エンジンサーバ2、ログ取得端末3及び結果利用端末4との間で通信をするための通信インターフェースである。通信部12は、分析エンジンサーバ2、ログ取得端末3及び結果利用端末4から受信した通信信号に所定の処理を行ってデータを取得し、取得したデータを制御部11に入力する。また、通信部12は、制御部11から入力されたデータに所定の処理を行って通信信号を生成し、生成した通信信号を分析エンジンサーバ2、ログ取得端末3及び結果利用端末4に送信する。
【0040】
記憶部13は、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクドライブ等を含む記憶媒体である。記憶部13は、制御部11が実行するプログラムを予め記憶している。
【0041】
制御部11は、例えばCPU(Central Processing Unit)等のプロセッサであり、記憶部13に記憶されたプログラムを実行することにより、分析エンジン登録部111、選択受付部112、開発情報出力部113、アクセス制御部114、ログ取得部115、タイミング制御部116、分析制御部117及び結果提供部118として機能する。制御部11の機能の少なくとも一部は、電気回路によって実行されてもよい。また、制御部11の機能の少なくとも一部は、ネットワーク経由で実行されるプログラムによって実行されてもよい。
【0042】
本実施形態に係るログ分析装置1は、
図3に示す具体的な構成に限定されない。ログ分析装置1は、1つの装置に限られず、2つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されてもよい。
【0043】
[分析エンジン登録処理に係る構成]
分析エンジン登録部111は、分析者U1から分析エンジン及び分析エンジンに係る情報の登録を受け付ける。具体的には、分析エンジン登録部111は、分析者U1から分析エンジンのプログラムを受け付け、分析エンジンサーバ2に登録する。分析エンジンは、分析エンジンサーバ2において実行されると、ログ分析装置1から渡された分析対象のログを読み込んで所定の分析を行い、ログ分析装置1へ分析結果を返却する。
【0044】
また、分析エンジン登録部111は、分析者U1から分析エンジンを利用するためのSDK及びAPIを受け付け、該分析エンジンに関連付けて記憶部13に登録する。ログ取得端末3において該SDK及びAPIが組み込まれたアプリケーションが実行されると、ログ取得端末3から所定の形式でログが出力される。また結果利用端末4において該SDK及びAPIが組み込まれたアプリケーションが実行されると、ログ分析装置1から結果利用端末4へ所定の形式の分析結果が提供される。ログ及び分析結果の形式としては、例えばJSON(JavaScript
(登録商標) Object Notation)フォーマットを用いることができる。
【0045】
また、分析エンジン登録部111は、分析者U1から分析エンジンによる分析を実行するタイミングを受け付け、該分析エンジンに関連付けて記憶部13に登録する。後述のタイミング制御部116は、登録された分析タイミングに従って分析の実行を制御する。分析タイミングとして、例えば新たなログが出力されたタイミング(すなわちリアルタイム処理)、又は所定の時間のタイミング(すなわちバッチ処理)を用いることができる。
【0046】
また、分析エンジン登録部111は、分析者U1から分析エンジンによる分析の結果を提供する方法を受け付け、該分析エンジンに関連付けて記憶部13に登録する。後述の結果提供部118は、登録された結果提供方法に従って結果利用端末4へ分析の結果を提供する。
【0047】
結果提供方法は、結果の転送方式、及び結果の形式を含む。結果の転送方式として、例えばログ分析装置1から結果利用端末4へ能動的に結果を提供するプッシュ方式、又はログ分析装置1が結果利用端末4からの要求に応じて受動的に結果を提供するプル方式を用いることができる。結果の形式としては、例えばJSONフォーマットを用いることができる。
【0048】
分析者U1は、分析エンジンのプログラム、SDK、API、分析タイミング及び結果提供方法を、コンピュータ端末からネットワークNを介してログ分析装置1に送信してもよく、あるいは記憶媒体をログ分析装置1に接続して転送してもよい。
【0049】
[開発情報出力処理に係る構成]
選択受付部112は、登録済の分析エンジンのうち、アプリケーションで利用したい分析エンジンの選択を開発者U2から受け付ける。開発者U2による分析エンジンの選択は、例えばネットワークNを介したWebページにおいて行われる。
【0050】
開発情報出力部113は、選択された分析エンジンを利用するためにアプリケーションに組み込むべきアクセス情報を、開発者U2へ出力する。アクセス情報は、例えば開発者U2を識別する識別子である開発者ID、アプリケーションを識別する識別子であるアプリケーションID、及びアプリケーションを認証するアクセストークンを含む。アクセス情報として、開発者ID、アプリケーションID及びアクセストークンの一部のみが用いられてもよい。開発情報出力部113は、出力したアクセス情報を記憶部13に記憶して管理する。
【0051】
さらに開発情報出力部113は、選択された分析エンジンを利用するためのSDK及びAPIを記憶部13から読み出し、開発者U2へ出力する。開発者U2は、出力されたアクセス情報、SDK及びAPIを組み込んでアプリケーションを作成し、利用者U3へ公開する。
【0052】
開発情報出力部113は、出力対象のアクセス情報、SDK及びAPIを、開発者U2のコンピュータ端末の表示部に表示させてもよく、あるいは開発者U2に提供される記憶媒体に記憶してもよい。
【0053】
[分析実行処理に係る構成]
アクセス制御部114は、ログ取得端末3又は結果利用端末4に導入されたアプリケーションからのアクセスを受けると、アプリケーションに組み込まれたアクセス情報を取得する。そしてアクセス制御部114は、アプリケーションから取得したアクセス情報を記憶部13に記憶されたアクセス情報と比較し、合致する場合にアクセスを許可し、合致しない場合(あるいはアプリケーションにアクセス情報が組み込まれていない場合)にアクセスを拒否する。
【0054】
さらにアクセス制御部114は、アプリケーションから取得したアクセス情報にユーザIDが含まれていない場合に該アプリケーションから初回のアクセスを受けたことを判定し、そうでない場合に該アプリケーションから2回目以降のアクセスを受けたことを判定する。アクセス制御部114は、初回のアクセスの場合に、アクセス元のログ取得端末3又は結果利用端末4に対して、ユーザを識別する識別子であるユーザIDを生成して付与する。
【0055】
ログ取得端末3又は結果利用端末4に導入されたアプリケーションは、2回目以降のアクセスでは、ユーザIDを加えたアクセス情報をログ分析装置1に送信する。ログ分析装置1は、アクセス情報に関連付けてログの収集及び分析を行う。
【0056】
ログ取得部115は、ログ取得端末3又は結果利用端末4に導入されたアプリケーションからログを取得する。すなわちログ取得部115は、ログ取得端末3に導入されたアプリケーションがログ取得端末3自身から収集したログを取得してもよく、あるいは結果利用端末4に導入されたアプリケーションがログ取得端末3から収集したログを取得してもよい。
【0057】
ログ取得部115は、能動取得部115aと受動取得部115bとを有する。ログ取得部115は、アプリケーションに設定されたログ取得方法に従って、能動取得部115a及び受動取得部115bの少なくとも一方によって、ログを取得する。
【0058】
能動取得部115aは、ログ取得端末3又はユーザに関連付けられたサービスから、能動的にログを取得する。ユーザに関連付けられたサービス(例えばソーシャルネットワーキングサービス)からログを取得するために、例えばユーザはログ分析装置1に予め該サービスへのアクセス情報(アカウントやアクセストークン等)を登録しておく。そして能動取得部115aは、登録されたアクセス情報を用いて、該サービスからログを取得する。
【0059】
受動取得部115bは、アプリケーションに対してログ送信のためのAPIを提供し、アプリケーションから該APIを利用して送信されたログを受動的に受け取る。能動取得部115a及び受動取得部115bは、定期的にログを取得してもよく、指定した期間のログをまとめて取得してもよい。
【0060】
ログ取得部115は、取得したログを、アクセス情報及び取得時間に関連付けて、記憶部13に記憶する。記憶するログの形式としては、例えばJSONフォーマットを用いることができる。
【0061】
タイミング制御部116は、分析エンジンごとに登録された分析タイミングを記憶部13から読み出す。上述のように、分析タイミングには、リアルタイム処理及びバッチ処理がある。タイミング制御部116は、分析エンジンの実行条件が満たされた場合(リアルタイム処理であれば新たなログが取得された場合、バッチ処理であれば所定の時間になった場合)に、分析制御部117を起動して分析を実行させる。
【0062】
分析制御部117は、実行条件を満たした分析エンジンに分析対象のログを渡し、分析を実行させる。そして分析制御部117は、分析エンジンによる分析の結果を受け取り、分析エンジンを示す情報と、分析対象のログと、分析の結果とを関連付けて記憶部13に記憶する。
【0063】
分析制御部117は、リアルタイム処理の場合に、アクセス情報に関連付けられた新たなログ全てを分析対象とする。分析制御部117は、バッチ処理の場合に、アクセス情報に関連付けられたログのうち、所定の時間範囲(例えば前日中)のログを記憶部13から読み出して分析対象とする。また、分析制御部117は、分析対象のログのうち予め設定された一部の項目を選択的に分析エンジンに渡してもよい。
【0064】
さらに分析制御部117は、ある分析エンジンによる分析の結果を、登録された分析エンジンのうちいずれかに渡してさらに分析を実行させてもよい。これにより、分析エンジン同士を組み合わせて(すなわちマッシュアップして)、分析を実行することができる。
【0065】
結果提供部118は、能動提供部118aと受動提供部118bとを有する。結果提供部118は、分析エンジンごとに登録された結果提供方法を記憶部13から読み出す。上述のように、結果提供方法にはプッシュ方式及びプル方式がある。結果提供部118は、読み出した結果提供方法に従って、能動提供部118a及び受動提供部118bの少なくとも一方によって、結果利用端末4に分析の結果を提供する。
【0066】
結果提供方法がプッシュ方式である場合に、能動提供部118aは、新たに分析エンジンによる分析の結果が出力された際に、該分析の結果を結果利用端末4に送信(プッシュ通知)する。結果提供方法がプル方式である場合に、受動提供部118bは、結果利用端末4からアクセス情報(開発者ID、アプリケーションID、ユーザID及びアクセストークン)を含む要求を受けた際に、該アクセス情報に関連付けられた最新の分析の結果を記憶部13から読み出して結果利用端末4に送信する。
【0067】
[ログ分析方法全体のフローチャート]
図4は、本実施形態に係るログ分析装置1が実行するログ分析方法全体のフローチャートを示す図である。
図4のフローチャートは、例えばログ分析装置1が起動されることによって開始される。まずログ分析装置1は、分析者U1による分析エンジンの登録を受け付ける分析エンジン登録処理を行う(S1)。
【0068】
次にログ分析装置1は、アプリケーションの開発に必要な開発情報を開発者U2へ出力する開発情報出力処理を行う(S2)。そしてログ分析装置1は、分析エンジンによる分析を実行して分析結果を利用者U3へ提供する分析実行処理を行う(S3)。以下では
図5〜7を用いて、分析エンジン登録処理、開発情報出力処理及び分析実行処理を詳細に説明する。
【0069】
[分析エンジン登録処理のフローチャート]
図5は、本実施形態に係るログ分析装置1が実行する分析エンジン登録処理のフローチャートを示す図である。まず分析エンジン登録部111は、分析者U1から分析エンジンのプログラムを受け付け、分析エンジンサーバ2に登録する(S11)。次に、分析エンジン登録部111は、分析者U1からステップS11で登録した分析エンジンを利用するためのSDK及びAPIを受け付け、該分析エンジンに関連付けて記憶部13に登録する(S12)。
【0070】
分析エンジン登録部111は、分析者U1からステップS11で登録した分析エンジンによる分析を実行するタイミングを受け付け、該分析エンジンに関連付けて記憶部13に登録する(S13)。また、分析エンジン登録部111は、分析者U1からステップS11で登録した分析エンジンによる分析の結果を提供する方法を受け付け、該分析エンジンに関連付けて記憶部13に登録する(S14)。
【0071】
ステップS11〜S14が終了した後、ログ分析装置1は
図4のフローチャートに戻る。ステップS11〜S14の順序は変更されてもよく、ステップS11〜S14の少なくとも一部は並列で行われてもよい。
【0072】
[開発情報出力処理のフローチャート]
図6は、本実施形態に係るログ分析装置1が実行する開発情報出力処理のフローチャートを示す図である。まず選択受付部112は、分析エンジン登録処理で登録された分析エンジンのうち、アプリケーションで利用したい分析エンジンの選択を開発者U2から受け付ける(S21)。
【0073】
開発情報出力部113は、ステップS21で選択された分析エンジンを利用するためにアプリケーションに組み込むべきアクセス情報を、開発者U2へ出力する(S22)。アクセス情報は、上述のように開発者ID、アプリケーションID、及びアクセストークンを含む。また、開発情報出力部113は、ステップS21で選択された分析エンジンを利用するためのSDK及びAPIを記憶部13から読み出し、開発者U2へ出力する(S23)。
【0074】
ステップS21〜S23が終了した後、ログ分析装置1は
図4のフローチャートに戻る。ステップS22〜S23の順序は変更されてもよく、ステップS22〜S23は並列で行われてもよい。
【0075】
[分析実行処理のフローチャート]
図7は、本実施形態に係るログ分析装置1が実行する分析実行処理のフローチャートを示す図である。
図7のフローチャートは一例であり、分析エンジン及びアプリケーションの実装(ログ取得方法、分析タイミング及び結果提供方法)によって、ステップの実行順序及び実行条件は適宜変更される。
【0076】
まずアクセス制御部114は、ログ取得端末3又は結果利用端末4に導入されたアプリケーションからのアクセスを受け付け、該アプリケーションに組み込まれたアクセス情報を取得する(S31)。
【0077】
アクセス制御部114は、ステップS31で取得したアクセス情報と記憶部13に記憶されたアクセス情報とが合致しない場合に(S32のNO)、ステップS31のアプリケーションからのアクセスを拒否して(S33)、ステップS40に進む。アクセス制御部114は、ステップS31で取得したアクセス情報と記憶部13に記憶されたアクセス情報とが合致する場合に(S32のYES)、ステップS31のアプリケーションからのアクセスを許可してステップS34に進む。
【0078】
アクセス制御部114は、ステップS31のアプリケーションから取得したアクセス情報にユーザIDが含まれていない場合に該アプリケーションから初回のアクセスを受けたことを判定し、そうでない場合に該アプリケーションから2回目以降のアクセスを受けたことを判定する。初回のアクセスである場合に(S34のYES)、アクセス制御部114は、アクセス元のログ取得端末3又は結果利用端末4に対してユーザを識別するユーザIDを生成して出力する(S35)。2回目以降のアクセスの場合には、ユーザIDの生成を行わずにステップS36に進む。
【0079】
ログ取得部115は、ログ取得端末3に導入されたアプリケーションからログを取得する(S36)。ログ取得部115は、取得したログを、アクセス情報及び取得時間に関連付けて、記憶部13に記憶する。
【0080】
タイミング制御部116は、分析エンジンごとに登録された分析タイミングを記憶部13から読み出す。分析エンジンの実行条件が満たされた場合に(リアルタイム処理であれば新たなログが取得された場合、バッチ処理であれば所定の時間になった場合)(S37のYES)、タイミング制御部116はステップS38に進んで分析制御部117に分析を実行させる。分析エンジンの実行条件が満たされていない場合に(S37のNO)、ログ分析装置1はステップS31に戻って処理を繰り返す。
【0081】
分析制御部117は、ステップS37で実行条件が満たされた分析エンジンに分析対象のログを渡し、分析を実行させる(S38)。そして分析制御部117は、分析エンジンによる分析の結果を受け取り、記憶部13に記憶する。
【0082】
結果提供部118は、ステップS37で実行条件が満たされた分析エンジンに対して登録された結果提供方法に従って、結果利用端末4に分析の結果を提供する(S39)。
【0083】
所定の終了条件(例えばログ分析装置1の終了操作が行われること)が満たされない場合に(S40のNO)、ログ分析装置1はステップS31に戻って処理を繰り返す。所定の終了条件が満たされる場合に(S40のYES)、ログ分析装置1は
図4のフローチャートに戻る。
【0084】
[第1の実施形態の効果]
本実施形態に係るログ分析装置1は、登録された分析エンジンに対応するアクセス情報(開発者ID、アプリケーションID、ユーザID及びアクセストークン)を出力し、アプリケーションに組み込まれたアクセス情報に従ってログの収集、分析の実行及び分析結果の提供を行う。このような構成によって、分析エンジンの提供と、分析エンジンを利用するアプリケーションの開発とを緩やかに結びつけることができる。そのため、分析エンジンを提供する分析者U1はログ収集及び結果利用のためのアプリケーションを開発する必要がなく、アプリケーションの開発者U2は新たに分析エンジンを開発する必要がない。したがって、分析者U1と開発者U2との双方の負担を軽減することができる。
【0085】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【0086】
ログ分析装置1の制御部11(プロセッサ)は、
図4〜7に示すログ分析方法に含まれる各ステップ(工程)の主体となる。すなわち、制御部11は、
図4〜7に示すログ分析方法を実行するためのログ分析プログラムを記憶部13から読み出し、該ログ分析プログラムを実行してログ分析装置1の各部を制御することによって、
図4〜7に示すログ分析方法を実行する。