(57)【要約】      （修正有）【課題】分析エンジンの提供者と分析エンジンを利用するアプリケーションの開発者との双方の負担を軽減できるようにする。【解決手段】ログ分析装置１は、複数の分析プログラムを登録する分析エンジン登録部１１１と、複数の分析プログラムのうちいずれかの選択を受け付ける選択受付部１１２と、選択された分析プログラムを利用するためのアクセス情報を出力する開発情報出力部１１３と、アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された分析プログラムとのデータの授受を行う分析制御部１１７と、を有する。【選択図】図３
2019066940.tif 000002
【特許請求の範囲】
【請求項１】
複数の分析プログラムを登録する登録部と、
複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、
選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、
前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、
を有するログ分析装置。
【請求項２】
前記アプリケーションに前記アクセス情報が組み込まれていない場合、又は前記アプリケーションに組み込まれた前記アクセス情報が予め登録された前記アクセス情報に合致しない場合に、前記アプリケーションからのアクセスを拒否するアクセス制御部をさらに有する、請求項１に記載のログ分析装置。
【請求項３】
前記分析制御部は、選択された前記分析プログラムにログを渡して分析を実行させるとともに、選択された前記分析プログラムから前記分析の結果を受け取る、請求項１又は２に記載のログ分析装置。
【請求項４】
前記アクセス情報が組み込まれた前記アプリケーションから前記ログを取得する取得部と、
前記アクセス情報が組み込まれた前記アプリケーションへ前記分析の結果を提供する提供部と、
をさらに有する、請求項３に記載のログ分析装置。
【請求項５】
前記取得部は、前記アプリケーションに能動的に前記ログを取得にいく能動取得部と、前記アプリケーションから送信された前記ログを受動的に受け取る受動取得部とを含み、
前記取得部は、前記能動取得部及び前記受動取得部の少なくとも一方によって前記ログを取得する、請求項４に記載のログ分析装置。
【請求項６】
前記提供部は、前記アプリケーションへ能動的に前記分析の結果を送信する能動提供部と、前記アプリケーションからの要求を受けて受動的に前記分析の結果を送信する受動提供部とを含み、
前記提供部は、前記能動提供部及び前記受動提供部の少なくとも一方によって前記ログを提供する、請求項４又は５に記載のログ分析装置。
【請求項７】
前記分析制御部による前記分析の実行のタイミングを制御するタイミング制御部をさらに有する、請求項３から６のいずれか一項に記載のログ分析装置。
【請求項８】
前記タイミング制御部は、定期的に、又は新たな前記ログが取得された場合に、前記分析制御部に前記分析の実行を要求する、請求項７に記載のログ分析装置。
【請求項９】
前記分析制御部は、選択された前記分析プログラムによる前記分析の結果を、複数の前記分析プログラムのうちいずれかに渡してさらに分析を実行させる、請求項３から８のいずれか一項に記載のログ分析装置。
【請求項１０】
前記ログ、及び前記ログを用いて実行された前記分析の結果を関連付けて記憶する記憶部をさらに有する、請求項３から９のいずれか一項に記載のログ分析装置。
【請求項１１】
前記出力部は、前記受付部に対して前記分析プログラムの選択を行った第１のユーザの識別子を含む前記アクセス情報を出力し、前記アクセス情報が組み込まれた前記アプリケーションから初めてアクセスされた場合に、前記アプリケーションを実行する端末に第２のユーザの識別子を付与し、
前記第２のユーザの識別子に関連付けられた前記端末から前記ログを取得する取得部と、
前記第２のユーザの識別子に関連付けられた前記端末へ前記分析の結果を提供する提供部と、
をさらに有する、請求項３に記載のログ分析装置。
【請求項１２】
前記出力部は、前記アクセス情報とともに、選択された前記分析プログラムの機能を利用するためのプログラムとプログラミングインターフェースを示す情報との少なくとも一方を出力する、請求項１から１１のいずれか一項に記載のログ分析装置。
【請求項１３】
複数の分析プログラムを登録するステップと、
複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、
選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、
前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、
を有するログ分析方法。
【請求項１４】
コンピュータに、
複数の分析プログラムを登録するステップと、
複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、
選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、
前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、
を実行させるログ分析プログラム。
【請求項１５】
ログ分析装置、及び前記ログ分析装置と通信可能な端末を備え、
前記ログ分析装置は、
複数の分析プログラムを登録する登録部と、
複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、
選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、
前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、
を有し、
前記端末は、前記アクセス情報が組み込まれたアプリケーションを実行する、ログ分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、収集されたログを分析するログ分析装置、ログ分析方法、ログ分析プログラム及びログ分析システムに関する。
【背景技術】
【０００２】
携帯端末、ウェブサービス、ＩｏＴ（Internet of Things）デバイス等から様々な種類のログが出力される。事業者はこれらのログを分析することによって、ユーザの行動により適したサービスを提供することができる。
【０００３】
特許文献１には、複数のＡＰＩ（アプリケーションプログラミングインターフェース）を集約する技術が記載されている。このような技術によれば、例えばログに対して様々な種類の分析を行うＡＰＩを一括して利用できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１５１８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ログの分析を行う分析エンジンは、ログの収集、分析の実行及び結果の提供が一連のサービス設計で実装されていた。一般的にアプリケーション（サービスを含む）ごとにログの形式、収集方法及び結果の提供方法が異なるため、既存の分析エンジンを他のアプリケーションに流用することは難しい。したがって、分析エンジンの提供者には、アプリケーションごとに分析エンジンを逐一作り直す手間があった。
【０００６】
特許文献１に記載の技術では、集約するＡＰＩの数が増えるほど複数のＡＰＩを利用するためのクエリ情報が複雑になるため、ＡＰＩを利用するアプリケーションの開発者の負担が大きくなる。
【０００７】
本発明はこれらの点に鑑みてなされたものであり、分析エンジンの提供者と分析エンジンを利用するアプリケーションの開発者との双方の負担を軽減可能なログ分析装置、ログ分析方法、ログ分析プログラム及びログ分析システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様のログ分析装置は、複数の分析プログラムを登録する登録部と、複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、を有する。
【０００９】
前記アプリケーションに前記アクセス情報が組み込まれていない場合、又は前記アプリケーションに組み込まれた前記アクセス情報が予め登録された前記アクセス情報に合致しない場合に、前記アプリケーションからのアクセスを拒否するアクセス制御部をさらに有してもよい。
【００１０】
前記分析制御部は、選択された前記分析プログラムにログを渡して分析を実行させるとともに、選択された前記分析プログラムから前記分析の結果を受け取ってもよい。
【００１１】
前記アクセス情報が組み込まれた前記アプリケーションから前記ログを取得する取得部と、前記アクセス情報が組み込まれた前記アプリケーションへ前記分析の結果を提供する提供部と、をさらに有してもよい。
【００１２】
前記取得部は、前記アプリケーションに能動的に前記ログを取得にいく能動取得部と、前記アプリケーションから送信された前記ログを受動的に受け取る受動取得部とを含み、前記取得部は、前記能動取得部及び前記受動取得部の少なくとも一方によって前記ログを取得してもよい。
【００１３】
前記提供部は、前記アプリケーションへ能動的に前記分析の結果を送信する能動提供部と、前記アプリケーションからの要求を受けて受動的に前記分析の結果を送信する受動提供部とを含み、前記提供部は、前記能動提供部及び前記受動提供部の少なくとも一方によって前記ログを提供してもよい。
【００１４】
前記分析制御部による前記分析の実行のタイミングを制御するタイミング制御部をさらに有してもよい。
【００１５】
前記タイミング制御部は、定期的に、又は新たな前記ログが取得された場合に、前記分析制御部に前記分析の実行を要求してもよい。
【００１６】
前記分析制御部は、選択された前記分析プログラムによる前記分析の結果を、複数の前記分析プログラムのうちいずれかに渡してさらに分析を実行させてもよい。
【００１７】
前記ログ、及び前記ログを用いて実行された前記分析の結果を関連付けて記憶する記憶部をさらに有してもよい。
【００１８】
前記出力部は、前記受付部に対して前記分析プログラムの選択を行った第１のユーザの識別子を含む前記アクセス情報を出力し、前記アクセス情報が組み込まれた前記アプリケーションから初めてアクセスされた場合に、前記アプリケーションを実行する端末に第２のユーザの識別子を付与し、前記第２のユーザの識別子に関連付けられた前記端末から前記ログを取得する取得部と、前記第２のユーザの識別子に関連付けられた前記端末へ前記分析の結果を提供する提供部と、をさらに有してもよい。
【００１９】
前記出力部は、前記アクセス情報とともに、選択された前記分析プログラムの機能を利用するためのプログラムとプログラミングインターフェースを示す情報との少なくとも一方を出力してもよい。
【００２０】
本発明の第２の態様のログ分析方法は、複数の分析プログラムを登録するステップと、複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、を有する。
【００２１】
本発明の第３の態様のログ分析プログラムは、コンピュータに、複数の分析プログラムを登録するステップと、複数の前記分析プログラムのうちいずれかの選択を受け付けるステップと、選択された前記分析プログラムを利用するためのアクセス情報を出力するステップと、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行うステップと、を実行させる。
【００２２】
本発明の第４の態様のログ分析システムは、ログ分析装置、及び前記ログ分析装置と通信可能な端末を備え、前記ログ分析装置は、複数の分析プログラムを登録する登録部と、複数の前記分析プログラムのうちいずれかの選択を受け付ける受付部と、選択された前記分析プログラムを利用するためのアクセス情報を出力する出力部と、前記アクセス情報が組み込まれたアプリケーションからアクセスを受けた場合に、選択された前記分析プログラムとのデータの授受を行う分析制御部と、を有し、前記端末は、前記アクセス情報が組み込まれたアプリケーションを実行する。
【発明の効果】
【００２３】
本発明によれば、分析エンジンの提供者と分析エンジンを利用するアプリケーションの開発者との双方の負担を軽減できるという効果を奏する。
【図面の簡単な説明】
【００２４】
【図１】第１の実施形態に係るログ分析システムの模式図である。
【図２】第１の実施形態に係るログ分析システムによるログ分析方法の模式図である。
【図３】第１の実施形態に係るログ分析装置のブロック図である。
【図４】第１の実施形態に係るログ分析方法全体のフローチャートを示す図である。
【図５】第１の実施形態に係る分析エンジン登録処理のフローチャートを示す図である。
【図６】第１の実施形態に係る開発情報出力処理のフローチャートを示す図である。
【図７】第１の実施形態に係る分析実行処理のフローチャートを示す図である。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
図１は、本実施形態に係るログ分析システムＳの模式図である。ログ分析システムＳは、ログ分析装置１と、分析エンジンサーバ２と、ログ取得端末３と、結果利用端末４と、を含む。ログ分析装置１、分析エンジンサーバ２、ログ取得端末３及び結果利用端末４は、ローカルエリアネットワーク、インターネット等の任意のネットワークＮを介して接続される。ログ分析システムＳは、その他のサーバ、端末等の機器を含んでもよい。
【００２６】
ログ分析装置１は、ログ取得端末３及び結果利用端末４が実行するアプリケーション（サービスを含む）による分析エンジン（分析プログラムともいう）の利用を制御する装置である。分析エンジンサーバ２は、分析エンジンのプログラムを記憶し、該プログラムを実行することによって該分析エンジンを機能させるサーバである。
【００２７】
ログ分析装置１及び分析エンジンサーバ２は、それぞれ有線通信又は無線通信によってネットワークＮに接続されており、単一のコンピュータ、又はコンピュータ資源の集合であるクラウドによって構成される。ログ分析装置１及び分析エンジンサーバ２は、１つの装置として一体的に構成されてもよい。
【００２８】
ログ取得端末３は、ログを取得してログ分析装置１に送信する装置である。ログ取得端末３として、スマートフォンのような携帯端末、センサやカメラのようなＩｏＴデバイス等を用いることができる。結果利用端末４は、分析エンジンによる分析結果を受信して所定の処理を行う装置である。結果利用端末４として、スマートフォンのような携帯端末、パーソナルコンピュータ等を用いることができる。
【００２９】
ログ取得端末３及び結果利用端末４は、それぞれ有線通信又は無線通信によってネットワークＮを介してログ分析装置１と通信可能に構成される。ログ取得端末３及び結果利用端末４は、１つの装置として一体的に構成されてもよい。図１においてそれぞれログ取得端末３及び結果利用端末４を１つずつ設けられているが、それぞれ複数設けられてもよい。
【００３０】
［ログ分析方法の説明］
図２は、本実施形態に係るログ分析システムＳによるログ分析方法の模式図である。図２において、「アプリ」はアプリケーションを指す。まず、分析エンジンを提供するユーザである分析者Ｕ１は、分析エンジンをログ分析装置１に登録する（ａ）。このとき、ログ分析装置１は、分析エンジンを分析エンジンサーバ２に記憶し、分析エンジンを実行可能な状態にする。
【００３１】
また、分析者Ｕ１は、分析エンジンに関連付けて、該分析エンジンを利用するためのＳＤＫ（ソフトウェア開発キット）及びＡＰＩをログ分析装置１に登録する。ＳＤＫは分析エンジンの機能を利用するためのプログラムを含み、該プログラムをアプリケーションに組み込むことによって分析エンジンへのアクセスを可能にする。ＡＰＩは、分析エンジンの機能を利用するためのプログラミングインターフェースを含み、該インターフェースに従ってアプリケーションの入出力を設定することによって分析エンジンへのアクセスを可能にする。分析者Ｕ１は、分析エンジンごとに、ＳＤＫ及びＡＰＩの一方又は両方を登録する。
【００３２】
次に、アプリケーションを開発するユーザである開発者Ｕ２は、該アプリケーションで利用したい分析エンジンを選択する（ｂ）。ログ分析装置１は、開発者Ｕ２へ、選択された分析エンジンを利用するためのアクセス情報、ＳＤＫ及びＡＰＩを出力する（ｃ）。
【００３３】
開発者Ｕ２は、ログ分析装置１から取得したアクセス情報、ＳＤＫ及びＡＰＩを用いて、アプリケーションを開発する（ｄ）。そして開発者Ｕ２は、アプリケーションを利用するユーザである利用者Ｕ３へ、開発したアプリケーションを公開する（ｅ）。アプリケーションは、ログ分析装置１を介する必要はなく、一般的なソフトウェア配布システムを用いて公開される。
【００３４】
利用者Ｕ３は、公開されたアプリケーションをログ取得端末３又は結果利用端末４に導入（すなわちインストール）する。ログ取得端末３又は結果利用端末４に導入されたアプリケーションの制御に応じて、ログ取得端末３はログ分析装置１にログを送信する（ｆ）。ログ取得端末３は、ログ取得端末３自身に導入されたアプリケーションによって制御されてもよく、あるいは結果利用端末４に導入されたアプリケーションによってネットワークＮを介して制御されてもよい。
【００３５】
ログ分析装置１は、受信したログを分析エンジンサーバ２に渡して分析エンジンを用いた分析を行わせる。そしてログ分析装置１は、分析エンジンによる分析の結果を結果利用端末４に提供する（ｇ）。
【００３６】
このように、本実施形態に係るログ分析装置１は、分析エンジンの提供と、分析エンジンを利用するアプリケーションの開発とを緩やかに結びつける（すなわち疎結合させる）。そのため、分析エンジンの提供者はログ収集及び結果利用のためのアプリケーションを開発する必要がなく、アプリケーションの開発者は新たに分析エンジンを開発する必要がない。したがって、分析エンジンの提供者とアプリケーションの開発者との双方の負担を軽減することができる。
【００３７】
［ログ分析装置１の構成］
図３は、本実施形態に係るログ分析装置１のブロック図である。図３において、矢印は主なデータの流れを示しており、図３に示したもの以外のデータの流れがあってよい。図３において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図３に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【００３８】
ログ分析装置１は、制御部１１と、通信部１２と、記憶部１３とを有する。制御部１１は、分析エンジン登録部１１１と、選択受付部１１２と、開発情報出力部１１３と、アクセス制御部１１４と、ログ取得部１１５と、タイミング制御部１１６と、分析制御部１１７と、結果提供部１１８とを有する。
【００３９】
通信部１２は、ネットワークＮを介して分析エンジンサーバ２、ログ取得端末３及び結果利用端末４との間で通信をするための通信インターフェースである。通信部１２は、分析エンジンサーバ２、ログ取得端末３及び結果利用端末４から受信した通信信号に所定の処理を行ってデータを取得し、取得したデータを制御部１１に入力する。また、通信部１２は、制御部１１から入力されたデータに所定の処理を行って通信信号を生成し、生成した通信信号を分析エンジンサーバ２、ログ取得端末３及び結果利用端末４に送信する。
【００４０】
記憶部１３は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスクドライブ等を含む記憶媒体である。記憶部１３は、制御部１１が実行するプログラムを予め記憶している。
【００４１】
制御部１１は、例えばＣＰＵ（Central Processing Unit）等のプロセッサであり、記憶部１３に記憶されたプログラムを実行することにより、分析エンジン登録部１１１、選択受付部１１２、開発情報出力部１１３、アクセス制御部１１４、ログ取得部１１５、タイミング制御部１１６、分析制御部１１７及び結果提供部１１８として機能する。制御部１１の機能の少なくとも一部は、電気回路によって実行されてもよい。また、制御部１１の機能の少なくとも一部は、ネットワーク経由で実行されるプログラムによって実行されてもよい。
【００４２】
本実施形態に係るログ分析装置１は、図３に示す具体的な構成に限定されない。ログ分析装置１は、１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されてもよい。
【００４３】
［分析エンジン登録処理に係る構成］
分析エンジン登録部１１１は、分析者Ｕ１から分析エンジン及び分析エンジンに係る情報の登録を受け付ける。具体的には、分析エンジン登録部１１１は、分析者Ｕ１から分析エンジンのプログラムを受け付け、分析エンジンサーバ２に登録する。分析エンジンは、分析エンジンサーバ２において実行されると、ログ分析装置１から渡された分析対象のログを読み込んで所定の分析を行い、ログ分析装置１へ分析結果を返却する。
【００４４】
また、分析エンジン登録部１１１は、分析者Ｕ１から分析エンジンを利用するためのＳＤＫ及びＡＰＩを受け付け、該分析エンジンに関連付けて記憶部１３に登録する。ログ取得端末３において該ＳＤＫ及びＡＰＩが組み込まれたアプリケーションが実行されると、ログ取得端末３から所定の形式でログが出力される。また結果利用端末４において該ＳＤＫ及びＡＰＩが組み込まれたアプリケーションが実行されると、ログ分析装置１から結果利用端末４へ所定の形式の分析結果が提供される。ログ及び分析結果の形式としては、例えばＪＳＯＮ（JavaScript Object Notation）フォーマットを用いることができる。
【００４５】
また、分析エンジン登録部１１１は、分析者Ｕ１から分析エンジンによる分析を実行するタイミングを受け付け、該分析エンジンに関連付けて記憶部１３に登録する。後述のタイミング制御部１１６は、登録された分析タイミングに従って分析の実行を制御する。分析タイミングとして、例えば新たなログが出力されたタイミング（すなわちリアルタイム処理）、又は所定の時間のタイミング（すなわちバッチ処理）を用いることができる。
【００４６】
また、分析エンジン登録部１１１は、分析者Ｕ１から分析エンジンによる分析の結果を提供する方法を受け付け、該分析エンジンに関連付けて記憶部１３に登録する。後述の結果提供部１１８は、登録された結果提供方法に従って結果利用端末４へ分析の結果を提供する。
【００４７】
結果提供方法は、結果の転送方式、及び結果の形式を含む。結果の転送方式として、例えばログ分析装置１から結果利用端末４へ能動的に結果を提供するプッシュ方式、又はログ分析装置１が結果利用端末４からの要求に応じて受動的に結果を提供するプル方式を用いることができる。結果の形式としては、例えばＪＳＯＮフォーマットを用いることができる。
【００４８】
分析者Ｕ１は、分析エンジンのプログラム、ＳＤＫ、ＡＰＩ、分析タイミング及び結果提供方法を、コンピュータ端末からネットワークＮを介してログ分析装置１に送信してもよく、あるいは記憶媒体をログ分析装置１に接続して転送してもよい。
【００４９】
［開発情報出力処理に係る構成］
選択受付部１１２は、登録済の分析エンジンのうち、アプリケーションで利用したい分析エンジンの選択を開発者Ｕ２から受け付ける。開発者Ｕ２による分析エンジンの選択は、例えばネットワークＮを介したＷｅｂページにおいて行われる。
【００５０】
開発情報出力部１１３は、選択された分析エンジンを利用するためにアプリケーションに組み込むべきアクセス情報を、開発者Ｕ２へ出力する。アクセス情報は、例えば開発者Ｕ２を識別する識別子である開発者ＩＤ、アプリケーションを識別する識別子であるアプリケーションＩＤ、及びアプリケーションを認証するアクセストークンを含む。アクセス情報として、開発者ＩＤ、アプリケーションＩＤ及びアクセストークンの一部のみが用いられてもよい。開発情報出力部１１３は、出力したアクセス情報を記憶部１３に記憶して管理する。
【００５１】
さらに開発情報出力部１１３は、選択された分析エンジンを利用するためのＳＤＫ及びＡＰＩを記憶部１３から読み出し、開発者Ｕ２へ出力する。開発者Ｕ２は、出力されたアクセス情報、ＳＤＫ及びＡＰＩを組み込んでアプリケーションを作成し、利用者Ｕ３へ公開する。
【００５２】
開発情報出力部１１３は、出力対象のアクセス情報、ＳＤＫ及びＡＰＩを、開発者Ｕ２のコンピュータ端末の表示部に表示させてもよく、あるいは開発者Ｕ２に提供される記憶媒体に記憶してもよい。
【００５３】
［分析実行処理に係る構成］
アクセス制御部１１４は、ログ取得端末３又は結果利用端末４に導入されたアプリケーションからのアクセスを受けると、アプリケーションに組み込まれたアクセス情報を取得する。そしてアクセス制御部１１４は、アプリケーションから取得したアクセス情報を記憶部１３に記憶されたアクセス情報と比較し、合致する場合にアクセスを許可し、合致しない場合（あるいはアプリケーションにアクセス情報が組み込まれていない場合）にアクセスを拒否する。
【００５４】
さらにアクセス制御部１１４は、アプリケーションから取得したアクセス情報にユーザＩＤが含まれていない場合に該アプリケーションから初回のアクセスを受けたことを判定し、そうでない場合に該アプリケーションから２回目以降のアクセスを受けたことを判定する。アクセス制御部１１４は、初回のアクセスの場合に、アクセス元のログ取得端末３又は結果利用端末４に対して、ユーザを識別する識別子であるユーザＩＤを生成して付与する。
【００５５】
ログ取得端末３又は結果利用端末４に導入されたアプリケーションは、２回目以降のアクセスでは、ユーザＩＤを加えたアクセス情報をログ分析装置１に送信する。ログ分析装置１は、アクセス情報に関連付けてログの収集及び分析を行う。
【００５６】
ログ取得部１１５は、ログ取得端末３又は結果利用端末４に導入されたアプリケーションからログを取得する。すなわちログ取得部１１５は、ログ取得端末３に導入されたアプリケーションがログ取得端末３自身から収集したログを取得してもよく、あるいは結果利用端末４に導入されたアプリケーションがログ取得端末３から収集したログを取得してもよい。
【００５７】
ログ取得部１１５は、能動取得部１１５ａと受動取得部１１５ｂとを有する。ログ取得部１１５は、アプリケーションに設定されたログ取得方法に従って、能動取得部１１５ａ及び受動取得部１１５ｂの少なくとも一方によって、ログを取得する。
【００５８】
能動取得部１１５ａは、ログ取得端末３又はユーザに関連付けられたサービスから、能動的にログを取得する。ユーザに関連付けられたサービス（例えばソーシャルネットワーキングサービス）からログを取得するために、例えばユーザはログ分析装置１に予め該サービスへのアクセス情報（アカウントやアクセストークン等）を登録しておく。そして能動取得部１１５ａは、登録されたアクセス情報を用いて、該サービスからログを取得する。
【００５９】
受動取得部１１５ｂは、アプリケーションに対してログ送信のためのＡＰＩを提供し、アプリケーションから該ＡＰＩを利用して送信されたログを受動的に受け取る。能動取得部１１５ａ及び受動取得部１１５ｂは、定期的にログを取得してもよく、指定した期間のログをまとめて取得してもよい。
【００６０】
ログ取得部１１５は、取得したログを、アクセス情報及び取得時間に関連付けて、記憶部１３に記憶する。記憶するログの形式としては、例えばＪＳＯＮフォーマットを用いることができる。
【００６１】
タイミング制御部１１６は、分析エンジンごとに登録された分析タイミングを記憶部１３から読み出す。上述のように、分析タイミングには、リアルタイム処理及びバッチ処理がある。タイミング制御部１１６は、分析エンジンの実行条件が満たされた場合（リアルタイム処理であれば新たなログが取得された場合、バッチ処理であれば所定の時間になった場合）に、分析制御部１１７を起動して分析を実行させる。
【００６２】
分析制御部１１７は、実行条件を満たした分析エンジンに分析対象のログを渡し、分析を実行させる。そして分析制御部１１７は、分析エンジンによる分析の結果を受け取り、分析エンジンを示す情報と、分析対象のログと、分析の結果とを関連付けて記憶部１３に記憶する。
【００６３】
分析制御部１１７は、リアルタイム処理の場合に、アクセス情報に関連付けられた新たなログ全てを分析対象とする。分析制御部１１７は、バッチ処理の場合に、アクセス情報に関連付けられたログのうち、所定の時間範囲（例えば前日中）のログを記憶部１３から読み出して分析対象とする。また、分析制御部１１７は、分析対象のログのうち予め設定された一部の項目を選択的に分析エンジンに渡してもよい。
【００６４】
さらに分析制御部１１７は、ある分析エンジンによる分析の結果を、登録された分析エンジンのうちいずれかに渡してさらに分析を実行させてもよい。これにより、分析エンジン同士を組み合わせて（すなわちマッシュアップして）、分析を実行することができる。
【００６５】
結果提供部１１８は、能動提供部１１８ａと受動提供部１１８ｂとを有する。結果提供部１１８は、分析エンジンごとに登録された結果提供方法を記憶部１３から読み出す。上述のように、結果提供方法にはプッシュ方式及びプル方式がある。結果提供部１１８は、読み出した結果提供方法に従って、能動提供部１１８ａ及び受動提供部１１８ｂの少なくとも一方によって、結果利用端末４に分析の結果を提供する。
【００６６】
結果提供方法がプッシュ方式である場合に、能動提供部１１８ａは、新たに分析エンジンによる分析の結果が出力された際に、該分析の結果を結果利用端末４に送信（プッシュ通知）する。結果提供方法がプル方式である場合に、受動提供部１１８ｂは、結果利用端末４からアクセス情報（開発者ＩＤ、アプリケーションＩＤ、ユーザＩＤ及びアクセストークン）を含む要求を受けた際に、該アクセス情報に関連付けられた最新の分析の結果を記憶部１３から読み出して結果利用端末４に送信する。
【００６７】
［ログ分析方法全体のフローチャート］
図４は、本実施形態に係るログ分析装置１が実行するログ分析方法全体のフローチャートを示す図である。図４のフローチャートは、例えばログ分析装置１が起動されることによって開始される。まずログ分析装置１は、分析者Ｕ１による分析エンジンの登録を受け付ける分析エンジン登録処理を行う（Ｓ１）。
【００６８】
次にログ分析装置１は、アプリケーションの開発に必要な開発情報を開発者Ｕ２へ出力する開発情報出力処理を行う（Ｓ２）。そしてログ分析装置１は、分析エンジンによる分析を実行して分析結果を利用者Ｕ３へ提供する分析実行処理を行う（Ｓ３）。以下では図５〜７を用いて、分析エンジン登録処理、開発情報出力処理及び分析実行処理を詳細に説明する。
【００６９】
［分析エンジン登録処理のフローチャート］
図５は、本実施形態に係るログ分析装置１が実行する分析エンジン登録処理のフローチャートを示す図である。まず分析エンジン登録部１１１は、分析者Ｕ１から分析エンジンのプログラムを受け付け、分析エンジンサーバ２に登録する（Ｓ１１）。次に、分析エンジン登録部１１１は、分析者Ｕ１からステップＳ１１で登録した分析エンジンを利用するためのＳＤＫ及びＡＰＩを受け付け、該分析エンジンに関連付けて記憶部１３に登録する（Ｓ１２）。
【００７０】
分析エンジン登録部１１１は、分析者Ｕ１からステップＳ１１で登録した分析エンジンによる分析を実行するタイミングを受け付け、該分析エンジンに関連付けて記憶部１３に登録する（Ｓ１３）。また、分析エンジン登録部１１１は、分析者Ｕ１からステップＳ１１で登録した分析エンジンによる分析の結果を提供する方法を受け付け、該分析エンジンに関連付けて記憶部１３に登録する（Ｓ１４）。
【００７１】
ステップＳ１１〜Ｓ１４が終了した後、ログ分析装置１は図４のフローチャートに戻る。ステップＳ１１〜Ｓ１４の順序は変更されてもよく、ステップＳ１１〜Ｓ１４の少なくとも一部は並列で行われてもよい。
【００７２】
［開発情報出力処理のフローチャート］
図６は、本実施形態に係るログ分析装置１が実行する開発情報出力処理のフローチャートを示す図である。まず選択受付部１１２は、分析エンジン登録処理で登録された分析エンジンのうち、アプリケーションで利用したい分析エンジンの選択を開発者Ｕ２から受け付ける（Ｓ２１）。
【００７３】
開発情報出力部１１３は、ステップＳ２１で選択された分析エンジンを利用するためにアプリケーションに組み込むべきアクセス情報を、開発者Ｕ２へ出力する（Ｓ２２）。アクセス情報は、上述のように開発者ＩＤ、アプリケーションＩＤ、及びアクセストークンを含む。また、開発情報出力部１１３は、ステップＳ２１で選択された分析エンジンを利用するためのＳＤＫ及びＡＰＩを記憶部１３から読み出し、開発者Ｕ２へ出力する（Ｓ２３）。
【００７４】
ステップＳ２１〜Ｓ２３が終了した後、ログ分析装置１は図４のフローチャートに戻る。ステップＳ２２〜Ｓ２３の順序は変更されてもよく、ステップＳ２２〜Ｓ２３は並列で行われてもよい。
【００７５】
［分析実行処理のフローチャート］
図７は、本実施形態に係るログ分析装置１が実行する分析実行処理のフローチャートを示す図である。図７のフローチャートは一例であり、分析エンジン及びアプリケーションの実装（ログ取得方法、分析タイミング及び結果提供方法）によって、ステップの実行順序及び実行条件は適宜変更される。
【００７６】
まずアクセス制御部１１４は、ログ取得端末３又は結果利用端末４に導入されたアプリケーションからのアクセスを受け付け、該アプリケーションに組み込まれたアクセス情報を取得する（Ｓ３１）。
【００７７】
アクセス制御部１１４は、ステップＳ３１で取得したアクセス情報と記憶部１３に記憶されたアクセス情報とが合致しない場合に（Ｓ３２のＮＯ）、ステップＳ３１のアプリケーションからのアクセスを拒否して（Ｓ３３）、ステップＳ４０に進む。アクセス制御部１１４は、ステップＳ３１で取得したアクセス情報と記憶部１３に記憶されたアクセス情報とが合致する場合に（Ｓ３２のＹＥＳ）、ステップＳ３１のアプリケーションからのアクセスを許可してステップＳ３４に進む。
【００７８】
アクセス制御部１１４は、ステップＳ３１のアプリケーションから取得したアクセス情報にユーザＩＤが含まれていない場合に該アプリケーションから初回のアクセスを受けたことを判定し、そうでない場合に該アプリケーションから２回目以降のアクセスを受けたことを判定する。初回のアクセスである場合に（Ｓ３４のＹＥＳ）、アクセス制御部１１４は、アクセス元のログ取得端末３又は結果利用端末４に対してユーザを識別するユーザＩＤを生成して出力する（Ｓ３５）。２回目以降のアクセスの場合には、ユーザＩＤの生成を行わずにステップＳ３６に進む。
【００７９】
ログ取得部１１５は、ログ取得端末３に導入されたアプリケーションからログを取得する（Ｓ３６）。ログ取得部１１５は、取得したログを、アクセス情報及び取得時間に関連付けて、記憶部１３に記憶する。
【００８０】
タイミング制御部１１６は、分析エンジンごとに登録された分析タイミングを記憶部１３から読み出す。分析エンジンの実行条件が満たされた場合に（リアルタイム処理であれば新たなログが取得された場合、バッチ処理であれば所定の時間になった場合）（Ｓ３７のＹＥＳ）、タイミング制御部１１６はステップＳ３８に進んで分析制御部１１７に分析を実行させる。分析エンジンの実行条件が満たされていない場合に（Ｓ３７のＮＯ）、ログ分析装置１はステップＳ３１に戻って処理を繰り返す。
【００８１】
分析制御部１１７は、ステップＳ３７で実行条件が満たされた分析エンジンに分析対象のログを渡し、分析を実行させる（Ｓ３８）。そして分析制御部１１７は、分析エンジンによる分析の結果を受け取り、記憶部１３に記憶する。
【００８２】
結果提供部１１８は、ステップＳ３７で実行条件が満たされた分析エンジンに対して登録された結果提供方法に従って、結果利用端末４に分析の結果を提供する（Ｓ３９）。
【００８３】
所定の終了条件（例えばログ分析装置１の終了操作が行われること）が満たされない場合に（Ｓ４０のＮＯ）、ログ分析装置１はステップＳ３１に戻って処理を繰り返す。所定の終了条件が満たされる場合に（Ｓ４０のＹＥＳ）、ログ分析装置１は図４のフローチャートに戻る。
【００８４】
［第１の実施形態の効果］
本実施形態に係るログ分析装置１は、登録された分析エンジンに対応するアクセス情報（開発者ＩＤ、アプリケーションＩＤ、ユーザＩＤ及びアクセストークン）を出力し、アプリケーションに組み込まれたアクセス情報に従ってログの収集、分析の実行及び分析結果の提供を行う。このような構成によって、分析エンジンの提供と、分析エンジンを利用するアプリケーションの開発とを緩やかに結びつけることができる。そのため、分析エンジンを提供する分析者Ｕ１はログ収集及び結果利用のためのアプリケーションを開発する必要がなく、アプリケーションの開発者Ｕ２は新たに分析エンジンを開発する必要がない。したがって、分析者Ｕ１と開発者Ｕ２との双方の負担を軽減することができる。
【００８５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００８６】
ログ分析装置１の制御部１１（プロセッサ）は、図４〜７に示すログ分析方法に含まれる各ステップ（工程）の主体となる。すなわち、制御部１１は、図４〜７に示すログ分析方法を実行するためのログ分析プログラムを記憶部１３から読み出し、該ログ分析プログラムを実行してログ分析装置１の各部を制御することによって、図４〜７に示すログ分析方法を実行する。
【符号の説明】
【００８７】
Ｓ  ログ分析システム
１  ログ分析装置
１１１  分析エンジン登録部
１１２  選択受付部
１１３  開発情報出力部
１１４  アクセス制御部
１１５  ログ取得部
１１６  タイミング制御部
１１７  分析制御部
１１８  結果提供部
【図１】
2019066940.tif 000003
【図２】
2019066940.tif 000004
【図３】
2019066940.tif 000005
【図４】
2019066940.tif 000006
【図５】
2019066940.tif 000007
【図６】
2019066940.tif 000008
【図７】
2019066940.tif 000009