JP5354776B2 - 動的なアプリケーションの利用情報の分散取得および集約 - Google Patents

動的なアプリケーションの利用情報の分散取得および集約 Download PDF

Info

Publication number
JP5354776B2
JP5354776B2 JP2008521441A JP2008521441A JP5354776B2 JP 5354776 B2 JP5354776 B2 JP 5354776B2 JP 2008521441 A JP2008521441 A JP 2008521441A JP 2008521441 A JP2008521441 A JP 2008521441A JP 5354776 B2 JP5354776 B2 JP 5354776B2
Authority
JP
Japan
Prior art keywords
application
data
server
method
function
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
JP2008521441A
Other languages
English (en)
Other versions
JP2009501386A (ja
Inventor
ウィルソン,アンドリュー,エス.
シン,ブライアン,ジェイ.
エンジェル,デイビッド,ジェイ.
Original Assignee
ヴィジブル メジャーズ,インク.
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
Priority to US69856705P priority Critical
Priority to US60/698,567 priority
Priority to US11/481,530 priority patent/US7356590B2/en
Priority to US11/481,530 priority
Application filed by ヴィジブル メジャーズ,インク. filed Critical ヴィジブル メジャーズ,インク.
Priority to PCT/US2006/026337 priority patent/WO2007008590A2/en
Publication of JP2009501386A publication Critical patent/JP2009501386A/ja
Application granted granted Critical
Publication of JP5354776B2 publication Critical patent/JP5354776B2/ja
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing packet switching networks
    • H04L43/04Processing of captured monitoring data
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/22Tracking the activity of the user

Description

本願は、著作権の保護対象が含まれている。

本願は、2005年7月12日に出願された第60/698,567に基づいており、これの優先権を主張する。

本発明は一般に、ソフトウェアのモニタリング、トラッキング、および投資回収率(ROI)分析に関する。

関連技術の説明
強力なトレンドにより、ソフトウェア業界で用いられている方法およびソフトウェア開発方法が新たに作られている。最も大きなトレンドは、ほぼ間違いなく、情報技術(IT)をビジネスとして用いるトレンドである。米国商務省は、総ての設備投資のうちの50%がITおよびソフトウェアに使われていると判断している。公表されている研究によると、生産性およびROIに関する測定基準が欠如しており、ソフトウェア開発プロセスにおいては、開発者が、ユーザおよび顧客から簡単にフィードバックを集める能力が欠如しているため、設備投資の大部分が無駄になっている。このようなフィードバックが無いと、開発者および製品の管理者は、アプリケーションのいずれの機能が最も人気であり、ソフトが使用されたときにいずれの機能が最も問題であるかなどについて判断できない。このため、開発資源をどこに適切に割り当て、活用すべきか判断することは一定していない。ソフトウェア開発およびテスト作業は世界中に分散しているため、この問題は悪化している。かつては、開発者およびIT管理者が、推測−見積り、ユーザ調査、およびフォーカスグループを含む様々な技術を用いて、アプリケーションの利用情報を確認および評価していたが、このような技術は通常、顧客基盤の小さなサンプルのみを示しており、また、これらのサンプルには、不正確および時機を失したデータがよく含まれている。

従来技術では、コンピュータネットワークにおけるエラー、トレース、オーディット、および他の情報を収集および蓄積する方法およびシステムが提供されていることが知られている。代表的な例は、Niemi等に付与された米国特許第6,470,388である。この特許では、ネットワークの様々なエンティティあるいはホストで動作する選択されたアプリケーションあるいはプロセスが、所定の情報を収集する1以上の「デバッグ」オブジェクトのインスタンスを作成する。また、各エンティティは、アプリケーションあるいはプロセスと通信する少なくとも1のロギングサービス層を備えており、通信資源と、1以上の状態機械エンジンとを備えている。エラー、トレース、オーディット、あるいは他の情報を収集するのに応じて、デバッグオブジェクトそれぞれが、これらの情報を個別のロギングサービス層に送り、これが、ネットワークに配置された中央ロギング装置にデータを送るか判断する。収集された情報の送信は、デバッグオブジェクトの状態に依存する。中央ロギング装置では、これらの情報に時刻情報が付され、アプリケーションの名称と当該アプリケーションが動作しているエンティティあるいはホストの名称と共に、ログファイルに追加される。

別の代表的な特許は、Hall等に付与された米国特許第6,591,228である。この特許では、ロギングサービスが、複数のマインフレームがデータストレージ領域に関連付けられたコンピュータ環境で動作するアプリケーションから、中央ログ分析メッセージにログを送信する。各メインフレームは、アプリケーションを実行する1以上のサブシステムを備えている。ロギングサービスAPIが、問題の種類に応じて分析メッセージをデータストレージに書き込み、警告装置に連絡する。

通常、前述したアプリケーションのロギング技術は有用であるが、これらの技術は、比較的数の少ない追跡システムを利用して同様のコンピュータ環境において利用され、比較的制約のある情報を収集する。本分野において、プラットホーム、展開されたアプリケーションインスタンスの位置および数、特にソフトウェア開発プロセスの状況に依存せずに、アプリケーションの利用情報を追跡する方法およびシステムがを提供する必要性がある。

本発明はこれらの技術的な必要に取り組む。

本発明は、技術を最適化するために、特にソフトウェア開発工程において、事業価値分析を送達するソフトウェアプラットフォームである。通常、本発明では、トラッキングプラットフォームが、アプリケーションの利用情報を監視、収集、および集めるホスト型(あるいは管理)サーバとして動作する。試験中のアプリケーションは、エンドユーザのクライアントマシンなどの一組の展開されたマシンにおいて実行されると仮定する。アプリケーションは、利用情報を収集するように構成され、ある実施例では、この利用情報は中央位置に確実に伝送され、ここで、この利用情報が集められ、エクスポートされ、表示される。アプリケーションの詳細な利用情報を収集および測定することにより、本サービスは、ソフトウェア開発者が、より効率的に高性能のソフトウェアアプリケーションを構築するのを手助けする。本システムは、ウェブインタフェースをエクスポートし、利用者が、従来の技術(ウェブブラウザおよびネットワーク接続性を有するコンピュータ)および標準的な通信技術(HTTP、セキュアHTTP、SOAPに基づくウェブサービス等)を利用することにより、インターネットを介して本システムとやり取りできることが好ましい。代替的に、本システムは、プライベートネットワーク等を介したエクストラネットとして実施してもよい。所定のエンティティは、トランザクションに基づいてサービスにアクセスすることを選択してもよいが、エンティティは、定期的にホスト型ソリューションにアクセスするのが好ましい。

本発明のより特有の態様では、試験中のアプリケーションは、ウェブアプリケーション、あるいはリッチインターネットアプリケーション(RIA)のいずれかである。開発工程では、APIを監視する処理がアプリケーションに組み込まれ、このアプリケーションが展開される。ユーザがアプリケーションを操作すると、ログファイルが、通常2つの方法のうち1つの方法により生成される。アプリケーションが(ユーザのマシンの)ローカルファイルシステムに書き込みできる場合、利用情報が、展開されたアプリケーション近くのログファイルに集められ、次に、バッチ処理を行うアップロードサーバに送信される。アプリケーションが、(例えば、ウェブアプリケーションあるいはRIAであるために)ユーザマシンのローカルファイルシステムに書き込みできない場合、利用情報が、好適にはジャストインタイムでリモートロギングサーバに送信され、ログファイルが、ロギングサーバ上で生成される。いずれの場合でも、追跡される利用情報は、プラットフォーム、位置、展開されたアプリケーションインスタンスの数に拘わらず、「機能」、「失敗」、および「誤り」を含んでいる。ここで使用されているように、「機能」データは通常、いずれの機能が使用されたのか、いつ使用されたのか、どの順序で使用されたのか、誰によって使用したのか、どのようなプラットホームで使用されたのか、どのようなエンドユーザ環境で使用されたのかなどの情報を示す。「失敗」データは通常、いずれの機能にプログラムエラー(例えば、例外)が生じているかを示す。「誤り」データは、例えば、データが誤った形式のフィールドに入力された場合に、いずれの機能が正しく終了しなかったかを特定する。

本発明のさらなる特徴によると、利用情報、あるいはより一般的にログファイルは、(好適には従来のHTTPトランスポートを利用して)非常に圧縮された状態で転送され、軽量な処理要求による高性能な分散型システムを可能にする。

前述の説明は、本発明のより関連のある特徴の概略である。これらの特徴は、単に説明の目的であると解すべきである。以下に説明するように、開示された本発明を異なる方法で使用し、あるいは本発明を修正することにより、他の多くの有利な効果を奏することができる。

図1は、代表的なサービスプロバイダあるいはシステムアーキテクチャを示しており、これは、好適な実施例では1以上のデータセンタで実施される。通常、データセンタは、インターネットに接続されている。ある実施例では、このシステムは、ウェブベースのホスト型ソリューションを提供し、これを用いて、アプリケーションの開発者(あるいはIT担当者など)は、オンラインでアプリケーションの利用の分析を生成、管理、および監視する。関係者は、ホスト型サービスなどのプラットホームにより交信することが好適である。代替的な実施例では、このシステムをプライベートネットワークで実施してもよく、あるいは(ホスト型あるいは管理サーバとは対照的に)製品として実施してもよい。

サービスのユーザは、ワークステーションあるいはノート型コンピュータなどのインターネットにアクセス可能なマシンを保有している。通常、ユーザは、マシン上のウェブブラウザを開いて、サービスプロバイダのドメインあるいはサブドメインに関連するURLにより、サービスプロバイダアーキテクチャにアクセスする。次に、ユーザは、通常の方法、例えばユーザ名およびパスワードの入力により管理サーバを認証する。例えばSSL等により、マシンとサービスプロバイダのインフラストラクチャとの通信を暗号化し、あるいは安全性を高めてもよい。公のインターネットを介した接続が通常であるが、ユーザは、ローカルエリアネットワーク、広域ネットワーク、無線ネットワーク、有線ネットワーク、プライベートネットワーク、あるいは他の専用ネットワークを介して、サービスプロバイダのインフラストラクチャに接続してもよい。図1に示すように、サービスプロバイダアーキテクチャ100は、IPスイッチ102と、1以上のウェブサーバマシン104のセットと、1以上のアプリケーションサーバマシーン106のセットと、データベースマネージメントシステム108と、1以上の管理サーバマシン110のセットとを備えている。典型的なウェブサーバマシン104は、(例えば、Intelベースの)有用なハードウェアと、Linuxなどのオペレーティングシステムと、Apach2.xなどのウェブサーバとを備えている。典型的なアプリケーションサーバマシン106は、有用なハードウェアと、Linuxと、アプリケーションサーバとを備えている。データベースマネージメントシステム108は、Oracleのデータベースマネージメントパッケージのように実装される。使用価値の高い環境では、いくつかのサーバマシン、いくつかのアプリケーションサーバマシン、および多数の管理サーバマシンが存在する。詳しく示していないが、インフラストラクチャは、ネームサーバと、他の負荷平衡装置と、他のスイッチと、ストレージに接続されたネットワーク等とを備えてもよい。このシステムは通常、第三者のデータベースなどの外部のデータ資源との接続手段を備えている。システムの各マシンは通常、十分なディスクと、メモリと、入出力装置とを備えている。通常、ウェブサーバ104は、リクエストを提供する新たに入るビジネスエンティティを処理し、
以下により詳細に説明および図示するディスプレイインタフェースをエクスポートする。アプリケーションサーバ106は、データを管理し、プラットフォームの機能を強化する。管理サーバ110は、最終段階の計算および報告機能を担う。ここに説明する特定のハードウェアおよびソフトウェアの実施例は、説明のために記されているのであり、本発明の範囲を限定するものではない。

図2は、ロギングサービスの基本的な処理を示している。本実施例では、アプリケーションインスタンス200aおよび200bが、本発明の利用監視APIにより実現されている。利用監視APIは、時々リモートノードと称される。したがって、アプリケーションインスタンス200aはリモートノード202aに関連し、アプリケーションインスタンス200bは、リモートノード202bに関連する。もちろん、2つのインスタンスを使用しているのは説明のためであり、本発明は、拡張性の高い分散型ロギングサービスを提供し、多数の展開されたアプリケーションのインスタンスが備えられ、追跡される。動作中は、リモートノード202aが利用データセット204aを生成し、リモートノード202bが利用データセット204bを生成する。この利用データは、非常に効率的な方法(以下に詳細に説明する)により中央サーバ(あるいは一組のサーバ)に送信され、データセットが集められ(206を参照)、分析および報告エンジン208で処理される。

本発明はソフトウェア開発およびテストの現場において有用であるが、当業者であれば、本発明は、これらの用途に限定されてないことは理解できるであろう。図3は、典型的なビジネスの例を示している。この例では、ウェブアプリケーションの開発者300が、開発中にウェブアプリケーションあるいはリッチインターネットアプリケーションに利用監視APIを追加する。このように開発されたアプリケーションは、ウェブサイトあるいは他の公開サーバ302が利用できるように作られている。エンドユーザ304が、サイトを操作し、ダウンロードし、アプリケーションを操作し、利用データを生成する。このデータは、ロギングサーバ306に送信され、ホスト型サービスデータベース308にアップロードされる。管理者310(あるいは開発者300)は、ホスト型サービスウェブサイト312にログインでき、記録されたデータにアクセスできる。

図4は、ホスト型サーバの動作をより詳細に示している。この例では、多数のユーザ400a乃至400nが、アプリケーションを使用し、ロギングサーバ402に供給される利用データセットを生成する。ロギングサーバ402は、1以上のサーバを備えている。ロギングサーバ402は、ファイヤウォール410を介してアプリケーションサーバ404に定期的にデータセットをアップロードし、アプリケーションサーバは、処理されたデータをデータベース406に格納する。ホスト型サーバのユーザ405は、サーバ412を介してサービスにログインし、ファイヤウォール410を介して利用データにアクセスするサーバ414により利用報告を閲覧する。

試験用のアプリケーションは、(Java、.Net、C++、C#などの)アプリケーションソフトウェア、(Javascript、ActionScript等を含むウェブページなどの)スクリプトを使用したウェブアプリケーション、あるいは(例えば、Flash、AJAX等を使用した)リッチインターネットアプリケーション(RIA)のうちのいずれかである。開発プロセスにおいて、利用監視APIがアプリケーションに組み込まれ、アプリケーションが展開される。ユーザがアプリケーションを操作すると、通常は2つの方法のうちの1の方法でログファイルが生成される。アプリケーションが、(ユーザのマシンの)ローカルファイルシステムに書き込める場合、利用データは、展開されたアプリケーションの近くのログファイルに集められ、バッチ処理を行うアップロードサーバに送出される。アプリケーションが、(例えば、ウェブアプリケーションあるいはRIAであるために)ユーザマシンのローカルファイルシステムに書き込むことができない場合、利用情報は、好適にはジャストインタイムでリモートロギングサーバに送信され、ログファイルがロギングサーバに生成される。これは、ウェブブラウザによるロギングに用いられる技術である。このようなロギングは、データをhttpのURLパラメータを介してロギングサーバに送信し、データをログファイルに変換することにより行われる。いずれの場合でも、追跡される利用データは、展開されたアプリケーションのプラットホーム、位置、数に拘わらず、アプリケーションの「機能」、「失敗」、および「誤り」を含んでいる。前述したように、「機能」データは通常、いずれの機能が使用されたのか、いつ使用されたのか、どの順序で使用されたのか、誰によって使用したのか、どのようなプラットホームで使用されたのか、どのようなエンドユーザ環境で使用されたのかなどの情報を示す。通常、機能はエンドユーザに提示される。「失敗」データは通常、いずれの機能にプログラムエラー(例えば、例外)が生じているかを示す。「誤り」データは、例えば、データが誤った形式のフィールドに入力された場合に、いずれの機能が正しく終了しなかったかを特定する。

このように、本発明の説明した使用によると、ホスト型サービスのユーザは、開発中のトラッキングモジュールを有するアプリケーションを使用し、予備的な顧客および予備的なテストの進行を理解する。前述したように、「トラッキングモジュール」は、追跡されるソフトウェアアプリケーションに埋め込まれている(あるいは関連付けられている)ことが好ましい。利用データは、軽量な独自の方法により集約および報告サーバに送信される。

以下の説明により、アプリケーションがログファイルをエンドユーザのマシンのローカルファイルシステムに書き込む実施例の詳細をさらに示す。この実施例では、ホスト型サービスプラットホームは、ここに示す多くの構成要素を介してエンドユーザからデータを収集する。第1の構成要素はリモートノードであり、これが、機能の追跡および構成情報を収集する。第2の構成要素はサーバであり、これが、リモートノードの結果を取得し、当該結果を他のリモートノードから収集したデータと結合させる。これらの2つの構成要素により、本発明のユーザが、同時に存在する多くのノードから機能の追跡および構成情報を収集できる。また、リモートノードには、3つの重要な目的がある。第1の目的は、統合の容易性である。第2の目的は、素早い動作である。第3の目的は、情報の転送が早く、アプリケーションの通常の実行に付随して起こることである。統合は、機能毎に追加される一行のコードのみを要求することにより行われることが好ましい。第2の目的は、この一行によりアプリケーションが速く動作することにより達成され、機能を1回呼び出すのに数ミリ秒のオーバーヘッドがアプリケーションに発生する。第3の目的は、最悪の状況でもファイルが常に小さくなるようにするログファイルの形式により達成され、これにより、データ転送時間が非常に短くなり、CPUの利用を抑え、したがって、転送が行われている間、ユーザのアプリケーションのパフォーマンスが低下することを防ぐ。以下に、リモートサーバとその部分について説明し、次に、関連するサーバ構成要素について説明する。

リモートノードは、所定のアプリケーションの1の例についての機能の追跡および構成情報を収集する。リモートノードは、ユーザが定義したときにサーバの構成要素に接続しようとし、一連のログファイルを送信する。リモート構成要素は、この情報を収集および転送するいくつかのサブ構成要素に依存する。これらの構成要素は、ユーザが特定の実行タスクを実行することを必要とする。以下の表1は、各構成要素について説明している。
表1

これらの構成要素を以下に説明する。初めに、代表的な実施例におけるリモートノードとサーバとの間のデータフローを以下に説明する。次に、ユーザが機能の追跡情報を収集するために、これらの構成要素をアプリケーションと統合する処理について説明する。

データはリモートノードからサーバに単一方向に流れ、サーバからリモートノードへの交信は行われない。図5は、代表的な処理フローを示している。データを転送する処理は直接的である。リモートノードは、ディスパッチイベント500を待ち、これにより、リモートノードは、ユーザが決めたURLに接続する。ステップ502では、リモートノードがロギングサーバに接続を試みる。ステップ504の評価により、リモートノードがサーバに接続できるか判断する。接続可能な場合、リモートノードは、好適にはURLにより特定されるHTMLページのHTMLフォームにログファイルを合わせることにより、総てのログファイルを送信する。次に、リモートノードは、ログファイルが正常に送信されたことを検知するのが好適である。さらに、リモートノードは、サーバとの接続ができなかった場合に、ユーザが決めた日数のログファイルを格納するのが好ましい。また、リモートノードは、ディスパッチイベントが失敗した後に、各ログの日付をチェックするのが好適である。次に、リモートノードは、最大の日数よりも古いファイルを検出する。

本発明では、サーバ側は、単にファイルを転送するHTMLフォームを使用し、図8に示すコードの一部に示すように動作する。リモートノードは、HTMLページを解析し、アップロードフォームを見つけ、ファイルフィールを設定し、情報を送信する。フォームを見つけるステップは、入手したファイルを拒否するフォームによりシステムが勝手にファイルアップロードすることがないようにする。ログファイルを取得すると、サーバは、取得したログファイルをインポートディレクトリに書き込む。サーバのインポート構成要素は、このディレクトリを定期的にスキャンするのが好適である。インポート構成要素は、新しいログファイルを開き、データをデータベースに追加する。

ファイルアップロードフォームを入手すべく、ロギングサーバの2つの構成があるのが好ましい。図6は、これらの構成の処理フローを示している。第1の構成(タイプA)が、図の上側に示されている。この構成では、サーバは、利用可能なフォームを生成し、リモートノードの接続を待つ。これはステップ600である。ステップ602では、リモートノードが接続しようとしているか判断する。接続されると、サーバは、ステップ604でログファイルを受け取り、ステップ606でログファイルをインポートディレクトリに書き込む。ステップ608では、新しいログファイルがサービスデータベースにインポートされる。ステップ610では、データベースがアップデートされ、この後、ステップ612でログファイルが削除される。次に、サーバは、別のアップロードを待ち状態を返却する。第2の構成(タイプB)は通常、企業のウェブサイトの非武装地帯(DMZ)に設置されたロギングサーバに実装される。この実施例では、任意のHTTPサーバ613が、ファイル転送フォームを使用し、スップ614でリモートノードの接続を待つ。リモートノードが接続した場合、サーバ613は、ステップ616でアップロードフォーム要求を処理し、ステップ618でログファイルをローカルディスクに書き込み、ステップ620で、ホストサービスに関連するロギングサーバ615のログインポートディレクトリにファイルをコピーする。ロギングサーバ615は同時に動作する。具体的には、ステップ622で、ロギングサーバ615がインポートディレクトリをスキャンする。ステップ624において新たなログファイルが存在すると判断されると、ステップ626でログファイルがインポートされ、ステップ628でデータベースがアップデートされ、ステップ630でログファイルが削除される。構成Bは、HTTPサーバが、会社のウェブページを提供するのに使われるサーバなどの会社の既存のHTTPサーバであるため、(構成Aと比べて)より安全で信頼性がある。構成Bはまた、致命的なログデータが外部からアクセスできないため、より安全である。さらに、第2の構成は、会社のウェブサーバが同時に多くのユーザを処理するように設計され、また定期的に監視されているため信頼性が高く、障害が発生した場合に直ぐにバックアップできる。

この実施例では、ソフトウェア開発者は通常、一連のステップを実行し、機能および構成情報の収集を促進する。具体的には、以下のステップは、どのように開発者がアプリケーションを実装してログデータを生成するのかを示している(以下では、JAVAについて知っていると仮定する)。
1.メッセージハンドラクラスのデリべーションを実装する。
2.一連のMessemger.store(...)メソッドをアプリケーションの既存のコードに追加する。所定の特徴のエントリ位置を示すコードの位置に追加すべきである。
3.アプリケーションのインストールツールをアップデートし、HTTPプロキシ情報を収集し、開発者のアプリケーションにより読むことができる構成ファイルを生成し、この情報をメッセージハンドラに送信できる。

前述した各ステップを以下に詳細に説明する。

ステップ1
メッセージハンドラは、Javaの抽象的なクラスである。このため、本発明では、インテグレータが、アプリケーションを特定するクラスの具体的な実装を得る。このメッセージハンドラは、以下に説明する一連のタスクを実行する。

典型的な実施例では、メッセージハンドラクラスは、ログファイルのフィルタリングとディスパッチを行う。クラスのインスタンスは通常、ログファイルの生成およびディスパッチに必要な一連の変数を設定する初期化コードから始まる。通常、ログファイルを生成することは、サービスプロバイダのサーバにより提供される一意の32文字の識別子であるmycompany.comなどのインテグレータのドメイン名、プロジェクトおよびビルド(build)の名称を必要とする。32文字の一意の識別子は、ユーザインタフェースあるいは他の便利な手段を介してサーバからユーザに提供される。識別子は、ユーザが特定のプロジェクトのためのビルドを生成したときに、生成および表示される。次に、ユーザは、32文字の一意の識別子をユーザのメッセージハンドラクラスのインプリメンテーションにコピーする。32文字の識別子を利用して、ログファイルデータをサービスプロバイダのサーバの特定のプロジェクトおよびビルドと照合する。次に、ログファイルから読み込んだデータは、サーバのデータリポジトリに格納される。プロジェクトおよびビルド名称を利用して、例えば、一部の開発者によるタイプエラーにより32文字の識別子に問題があるプロジェクトおよびビルド名称とデータを照合するのが好ましい。また、メッセージハンドラのディスパッチ機構が、目的地のURLを要求するのが好適であり、ログイン名、パスワード、プロキシサーバ構成、およびログファイルをインポートサーバに送信する処理を記載した追加のコードなどの他の任意のアイテムを備えてもよい。メッセージハンドラは、アプリケーションがスタートするとき、ストップするとき、構成データを収集する間、あるいは機能が実行されたときにログファイルを送信してもよい。これらの方法の開発者の実装は、単に「true」応答を返却し、次に、メッセージハンドラは、自動的にシステム内の総ての(あるいは一部の)ログファイルを送信する。「true」応答を受信すると、ディスパッチャは通常、必要であればプロキシ情報を使用し、初めにファイアウォールを通ってURLのパラメータで特定されるサーバに接続する。URLは、特別のログイン情報を要求してもよく、あるいは追加のスクリプトを提示してもよい。このとき、ディスパッチャは、追加的なログイン情報およびコードを実行し、ファイルアップロードフォームを取得する。次に、ディスパッチャは、このフォームによりログファイルを送信する。

メッセージハンドラのインスタンスは、表2で以下に説明する一組のメソッドを記述する。
表2

通常、Constructorメソッドは、アプリケーションの初期化に関する多くの情報を提供する。図10に示すコードブロックは、メッセージハンドラの抽象的なクラスである。様々なgetXXXおよびsetXXXメソッドにより、ユーザが重要な構成情報を設定できる。

説明したフレームワークにより、ユーザが、データを転送するアプリケーションの能力を強化するために多くの要素を定義できる。表3は、様々なメソッドと、これらの動作を説明している(アスタリスクが付いているメソッドは任意である)。
表3

MessengerおよびLogDispatcherがこれらのメソッドを読み、ログファイルを保持および転送する。

ステップ2
Messenger.storefeature(...)メソッドは機能データを追跡する。これは、2つのパラメータを取得する。第1のパラメータは、カスタマイズされたメッセージハンドラのインスタンスである。第2のパラメータは、機能の名称を含む文字列である。機能の実行の数に関する得られた情報は、機能の価値を示す。もちろん、使用頻度の高い機能は、使用頻度の少ないあるいは使用されていない機能よりも価値がある。

典型的な実施例では、Messenger.storefeature(...)メソッドは、アプリケーション内の各機能エントリ位置に追加される。

ステップ3
遠隔的に動作するアプリケーションは、トランスペアレントあるいは認証プロキシサーバの背後でもよい。ユーザアプリケーションのインストレーション構成要素は、これを認識すべきであり、必要に応じてプロキシサーバのアドレス、ポート、ユーザ名、およびパスワードを収集し、これらの情報をカスタムメッセージハンドラのインスタンスが読むことができる構成ファイルに書き込む。次に、メッセージハンドラは、構成情報と共にsetProxyServerHost()、setProxyServerPort(...)、setProxyUserName(...)、setProxyUserPasswordメソッドをコールする。

これらの統合ステップにより、ユーザアプリケーションが機能の追跡情報を収集および転送できる。図7は、ユーザが追跡された機能を実行するときの代表的な処理フローを示している。図7に示すように、ステップ700において、ユーザが機能を実行するときにルーチンが開始する。ステップ702では、機能の追跡コードが実行される。ステップ704では、アプリケーションを動かす最初の機能の実行かどうか判断される。最初の機能の実行である場合、ステップ706において、メッセージハンドラのStartupメソッドがコールされる。ステップ708では、ログファイルを送信すべきが判断される。送信すべきでない場合、ステップ710において、メッセージハンドラのhandleConfigMessageメソッドがコールされる。次に、ステップ712において、ルーチンがメッセージハンドラのhandleMessageメソッドをコールし、このステップは、ステップ714の結果が真である場合にも行われる。ステップ714は、送信がスタートアップイベントによるものか判断する。ステップ712の後、ステップ716で機能の統計量がアップロードされる。ステップ718において、機能をログファイルに書き込むべきか判断する。機能をログファイルに書き込むべき場合、ステップ720において機能がログファイルに書き込まれる。ステップ720の後、あるいはステップ718の結果が偽の場合、ステップ722において、ログファイルを送信すべきか判断する。ログファイルを送信すべき場合、ステップ724で、リモートノードが総てのログファイルを収集し、ステップ726で、リモートノードがリモートサーバに接続し、ステップ728で、リモートノードがサーバに接続できるかどうか判断する。リモートノードがサーバに接続できる場合、ステップ730において、リモートサーバにファイルアップロードフォームがあるか判断する。リモートサーバにファイルアップロードフォームが無い場合、あるいはステップ728の結果が偽の場合、ステップ734で、ユーザが定義した最大の日数よりもファイルが古いかどうか判断する。ステップ730の結果が真の場合、ステップ732において、ファイルがアップロードされる。ステップ732の後、あるいはステップ734の結果が真の場合、ステップ736においてファイルが削除され、制御がステップ714の判断に戻り、処理が完了する。

ログファイルは、特別にフォーマットされた一連のイベントを含むバイナリファイルであることが好適である。ファイルは、(従来のログファイルで一般的なように)機能の実行毎に1のエントリであるよりも、集められた機能情報を備えることが好ましく、これにより、ファイルが従来のログファイルよりも小さくなることを保証する。しかしながら、本発明は、集められた機能情報の利用に限られない。

各フィールドはうまく定義されているため、フォーマットは読むことができ、非常に効率的にデータベースに統合できる。従来のログファイルは、一行づつ読まなければならなかったため、データをテキストから解析しなければならなかった。これは、しばしば実装するのが難しく、このため、エラーが発生し易く性能が悪い。前記フォーマットは、符号無しのバイトの数字で記述される。以下のキーは、Java仮想マシン(JVM)仕様で定義されるような用語である。具体的には、数字が続くUは、所定の長さの符号無し、8ビット、バイトである。U1は1の符号無しバイトであり、U4は4つの符号無しバイトを意味する。[]が続くUはバイト配列を示している。別のフィールド名を含む[]は、フィールド名が配列の長さを指定していることを意味する。

各イベントの構成は、以下の表4に示すようなベースイベントフォーマットから導出されるのが好適である。
表4
総てのイベントがこのフォーマットから導出されることが好適である。このため、イベントは、Event_typeおよびEvent_Data_Lrngthにより開始するが、(イベントは通常、このフィールドを特別の実装により無効にするため)Event_Dataセクションを含まないのが好適である。代表的な実施例では、ファイルフォーマットは、Base_Eventを集めたものである。

機能のイベントタイプは、一連の機能の起動を意味する。各機能は、ログファイルに1以上のイベントを有する。様々な機能のログファイルには多くの機能イベントが存在する。以下の表5はフィールドの説明である。
表5

ユーザが設定したイベントタイプは、インテグレータにより生成され、任意の量の追加的な設定情報を格納できる。以下の表6はフィールドの説明である。
表6

以下に、本発明によるログファイルを処理および転送する好適な技術についてさらに説明する。前述したように、ログファイルは、ソフトウェアアプリケーションの機能、失敗、および/または誤りを追跡し、非常にコンパクトなフットプリントにおいて転送され、拡張可能な方法により、性能が高く軽量な処理を可能にすることが好適である。この目的を達成すべく、本発明の好適なログファイルフォーマットは、非常に効率的であり、連続的であり、関係性があり、関連性がある。効率は、好適には(例えば、XMLあるいは人間が読むことができる他のテキストとは対照的に)バイナリファイルの小さなメッセージを使用し、ログファイルの領域に保存すべく総ての数字を圧縮することにより実現される。総てのメッセージは、実際に発生した順序で書かれるのが好適である。メッセージの時刻情報は、最初のメッセージの時刻情報と関連するのが好ましい。したがって、例えば、最初のメッセージが12:00に発生したイベントを示し、2番目のメッセージは12:01に発生したイベントを示すと仮定する。最初のメッセージは、協定世界時の日時の12:00をミリ秒単位で格納し、2番目のメッセージは、最初のイベントと2番目のイベントとの間のミリ秒の数が格納される。また、この符号化技術は、ログファイル領域を保存する。リポートメカニズムは、時刻情報を使用して、ユーザが、いつアプリケーションに対して所定の操作を行ったか、あるいはアプリケーションが、いつ特定の方法により応答したかについて詳細な情報を提供する。リポートメカニズムはデータを分割し、機能の利用情報を1時間おき、1日おき、1週間おき、1月おき、あるいは他のタイムスケールで調査できる。ログファイルフォーマットは、メッセージ(例えば、機能実行メッセージ)、参照基準機能メッセージと同様に、関連性があることが好ましい。さらに、機能メッセージは、機能名のインデックスを生成し、このインデックスを用いて、機能が起動した数を数えることが好適である。

代表的な実施例では、追跡されるいくつかの個別のシナリオが存在する。第1のシナリオでは、コードは最初の機能の抽出を記録する。この場合、機能のロギングコードが、新しいログファイルを開き、ロギングコードが、以下のメッセージ、順に、プロジェクト、設定、ノード種類、および機能を書くのが好適である。第2のシナリオでは、コードが後続の機能の実行を記憶する。このシナリオでは、ロギングコードは、機能の実行を示す1のメッセージを追加するのが好適である。第3のシナリオでは、ロギングコートが機能の失敗を記録する。このシナリオでは、ロギングコードは、機能の失敗を示す1のメッセージを追加するのが好適である。最後に、最後のシナリオでは、ロギングコードが機能の誤りを記録する。機能の誤りを示す1のメッセージが再び生成される。関連するロギング文を含むロギングコードの例が、図9に示されている。

各ログファイルは、一連のメッセージで構成されるのが好ましい。各メッセージは通常、共通のフォーマットを有し、これによりメッセージの種類が明確になる。以下は、具体的なメッセージの種類である。
・NodeType Message−開発されたソフトウェアのインスタンスの種類
・Project Message−プロジェクト名称、例えば、追跡される開発されたソフトウェアのインスタンスの名称
・Feature Name−追跡される機能
・Startup Message−アプリケーションが始動した時間
・Feature Executon Message−実行した機能および実行されたときの機能
・Config Message−アプリケーションが展開される環境および構成についての情報
・UserConfig Message−APIのユーザが所望する追加的な設定情報のプレースホールダ(例えば、アプリケーションがインストールされたサーバについての情報を集める)
・Feature Failure Message−機能の失敗、(ユーザが不適切なフォーマットデータを入力すると、機能は終了できない)、失敗した時間、および失敗した理由についての情報
・Feature Fault Message−発生した誤り(例外)、発生した時間、および発生した理由についての情報
・Feature Reset Message−最小のデータサイズを取得する機能を内部で特定するメカニズム−非常に数の多い機能のカウントをリセットする
・Subnode Use Message−エンドユーザマシンの設定および環境についての情報(例えば、どんなウェブブラウザが使用されているか等)
・Subnode User Configuration−エンドユーザの設定についてのカスタマイズ可能な情報のプレースホールダ
・Subnode Feature Execution−(ウェブアプリケーションサーバに対して、エンドユーザクライアントで実行されるリッチインターネットアプリケーションあるいはDHTMLなどの環境において、クライアントの処理を追跡するのに必要とされる)サーバで実行される機能に対して、エンドユーザの設定で実行される機能
・Subnode Failure Message−エンドユーザのマシンで発生した失敗
・Subnode Fault Message−エンドユーザのマシンで発生した誤り−例えば、ブラウザを介したJavascriptのランタイムエラー
・Subnode Reset Message−Feature Reset Messageと同様であるが、エンドユーザの機能専用
・Sub Type Message−追加の情報を追跡するために拡大する領域
・Null Message−テストのため、ログファイル中の列を整列して容易に識別できるする

ログファイルのメッセージの順序は、以下の順序であることが好適である。
1.Project−1のログファイルに対して、1のメッセージが存在することが好ましい
2.Configuration−1のログファイルに対して、1のメッセージが存在し得ることが好ましい
3.User Configuration−0以上存在できる
4.Node Type−1のログファイルに対して、1のメッセージが存在し得ることが好ましい
5.{Startup|Feature|Sub Node User}−1以上存在できる
6.{Feature|Feature Execution|Feature Failure|Feature Fault|Reset|Sub NodeUser|Sub Node User Configuration|Sub Node Feature Execution|Sub Node Failure|Sub Node Fault|Sub Node Reset}−0以上存在できる

データは、以下の示すようなデータベースレコードのようにログファイルに格納される。
・Message Formatは、「name」:サイズ、
−Type:1バイト
−Time Stamp:3バイト
−Message Type Specific Data:メッセージの種類、Feature Execution MessageあるいはSubnode User Configuration等に応じて長さが変る。

機能のトラッキングシステムの高い性能を維持しつつ、所望の情報を取得するために、ログファイルが、以下により詳細に説明するバイナリファイルフォーマットを使用するのが好適である。図10は、(バイトが16進数で表わされた)代表的なファイルフォーマットを示している。

以下は、バイナリファイルフォーマットを生成する符号化の方法、具体的には、数字を取得し、可能な限り最小のバイトに圧縮する方法について説明している。この方法は、総ての数のうち最も小さな負でない基準値0にバッファを初期化することにより開始する。バッファの各バイトの最上位ビット(MSB)は、バイトが数字の最後の部分か、あるいは数字の最後の部分かを示すために予約されている。即ち、実際は、1バイト中の7ビットのみが数値を含み、最上位ビットはインジケータである。次に、符号化処理は、バッファ内の8から7ビットビットを解読し、ビット7の位置を右にシフトする。バッファの各バイトの数値のMSBは、MSBが1に設定された状態で符号化される。数値の最後のビットは、MSBが0に設定された状態で符号化される。数値の復号化は、バッファのMSBビットが1に設定されているか判断する処理である。バッファのMSBビットが1に設定されている場合、ルーチンは7ビットを読み込み、7ビットが、32あるいは64ビットデータなどの対象とするデータタイプとなるように、数値を左にシフトさせる。MSBが0に設定されている場合、ルーチンは残りの7ビットを読み込み、同一のシフト処理を行い、読み込み処理を終了する。結果は、エンコーダの入力として使用される数字である。

このように、本発明の実施例では、データタイプは、最小の必要なビットに圧縮される総ての数字を示す。スキームは、一連のバイトの数値を解読することにより行われる。初めのNバイトは、10xx xxxxに設定された最上位ビット(MSB)を有し、ここで、xは実際の数字を表わすビットである。最後のバイトは、0xxx xxxxに設定された最上位ビット(MSB)を有する、スキームの操作は、例示により最も理解できる。

例えば、数字1は、本スキームにより0000 0001として格納される。通常の符号化は、4バイトの0000 0000 0000 0000 0000 0000 0000 0001であり、既に知られているように本スキームはちょうど1バイトを使用する。別の例では、数字1,000は、1000 0111 0110 1000として格納される。通常の符号化は、4バイトの0000 0000 0000 0000 0000 0000 1110 1000であり、本スキームは、ちょうど2バイト使用する。数字100,000は、1000 0110 1000 1101 0010 0000として格納される。通常の符号化は、4バイトの0000 0000 0000 0001 1000 0110 1010 0000であり、本スキームは、ちょうど3バイトを使用する。この技術は、特に人間が読むことができる(例えば、XML)あるいは従来のバイナリ数字(4バイト)符号化に比べ、実質的にログファイルのサイズを縮小させる。

前述したログファイルフォーマットおよび圧縮したデータタイプにより、システムは、エンドユーザに対してトランスペアレントな高性能の方法により、非常に詳細なソフトウェアアプリケーションの機能、失敗、および誤りに関する利用情報を追跡できる。ほとんど数字であるログデータの多くは、ディスクレプリゼンテーティブからメモリディスクレプリゼンテーションに直接的にマップされる。この結果、データは非常にコンパクトになり、非常に効率的にロードおよび転送できる。さらに、データの位置が非常に明確であり、順序付けられているため、ログデータファイルの全体の大きさを縮小するのが容易である。このように、説明した実施例では、ログファイルは一連のメッセージを備えている。各メッセージは、機能の実行あるいは失敗などの関心のあるイベントを意味する。これらのメッセージは、特別のフォーマットおよびフィールド長にフォーマットするのが好適である。可変長フィールドは、以下のフィールドの長さを示すフィールドにより予め固定するのが好ましい。数字フィールドは可変長であるが、前述したデータタイプを使用するのが好適である。前述したように、符号化スキームは、バイナリフィールド内に数字を格納できる。

前述したように、ハードウェアおよびソフトウェアシステムで説明した本発明は、単なる例示である。本発明は通常、ソフトウェア、1以上のメカニズムで実行される。一般に、マシンは通常、有用なハードウェアおよびソフトウェアと、ストレージ(例えば、ディスク、ディスクアレイ等)と、メモリ(RAM、ROM等)とを備えている。ネットワークに使用される特別のマシンは、本発明の限定ではない。所定のマシンは、通常の方法でマシンをネットワークに接続するネットワークインタフェースおよびソフトウェアを備えている。図1に示すように、本発明は、1以上のネットワークに接続されあるいは接続可能な説明したマシンのセットを利用して、管理サービスとして実施される。一般に、オペレータが、前述した進歩性のある機能を強化あるいは提供する1以上のコンピュータに関連するエンティティ(システム、マシン、プロセス、プログラム、ライブラリ、機能等)を使用することにより、サービスが提供される。典型的な実施例では、サービスは、1以上のコンピュータのセットを備えている。典型的なマシンは、有用な(例えば、Pentiumクラス)ハードウェア、オペレーティングシステム(例えば、Linux、Windows、OS−X等)、アプリケーションのランタイム環境(例えば、Java、.ASP)、所定のシステムあるいはサブシステムの機能を提供するアプリケーションあるいはプロセスのセット(例えば、プラットホームに応じたJavaアプレットあるいはサーブレット、リンク可能なライブラリ、ネイティブコード等)を動作させるネットワークベースのサーバである。前述したように、サーバはスタンドアロンで使用してもよく、あるいは分散したマシンセットに実装してもよい。通常、サーバは、所望の実施環境に応じて、
公のインターネット、会社のイントラネット、プライベートネットワーク、あるいはこれらの組み合わせに接続される。

ホストサーバは、効率的にスケールするように設計された複数のサーバクラスタ環境で実施してもよい。各サーバは、第1および第2の一連のタスクで設計されている。1のサーバが動的にマスタサーバに設定され、これにより、サーバが総てのサーバにより実行される第2のタスクを判断する。総てのサーバは、データベース内のインスタンスをアップデートし、サーバは、協同でいずれのサーバがマスタサーバであるか判断する。クラスタのサーバは、マスタサーバにより(ログのインポートおよびイベント処理などの)タスクが割り当てられる。

本発明を説明したが、我々は、添付の請求の範囲に記載された発明を請求する。

図1は、本発明のブランド統合技術プラットホームを実施するサービスプロバイダのインフラストラクチャのブロック図である。 図2は、本発明の基本的なロギングサービスを示しており、アプリケーションインスタンスが実行され、利用データセットを提供し、遠隔のロギングサーバに送信する。 図3は、ソフトウェア開発プロセスにおいて、ホストサービスを用いて、どのようにフィードバックを開発者に提供するのかを示している。 図4は、より詳細なホストサービスの実施例を示している。 図5は、どのようにしてリモートノードがロギングサーバと交信するかを示す簡単な処理フロー図である。 図6は、本発明の典型的なロギングサーバの構成を示している。 図7は、ユーザが追跡機能を実行したときの典型的な処理フローを示している。 図8は、ファイルを送信するためのHTMLフォームの典型的なHTMLコードの一部を示している。 図9は、ログファイルを生成するのに利用する典型的なロギングコードである。 図10は、バイナリファイル形式で表わされた典型的なログファイルである。

Claims (12)

  1. 広域ネットワークに展開されたウェブアプリケーションを追跡する方法であって、前記ウェブアプリケーションがローカルエンドユーザのウェブブラウザ環境内で使用され、
    ウェブアプリケーションが実行されるときにアプリケーションの機能の実行についてのデータを生成する利用監視アプリケーションプログラミングインターフェース(API)をウェブアプリケーションに追加することにより、ウェブアプリケーションの装備を行うステップと、
    装備したウェブアプリケーションのインスタンスをエンドユーザに分配するステップと、
    インターネットアクセス可能なインフラストラクチャをサービスプロバイダのドメインで動作させるステップであって、前記インターネットアクセス可能なインフラストラクチャが、装備したウェブアプリケーションにより生成されるアプリケーションの機能の実行についてのデータを受信する少なくとも1のウェブサーバと、受信したアプリケーションの機能の実行についてのデータを処理するアプリケーションサーバと、集めたアプリケーションの機能の実行についてのデータを格納するデータベースとを備えるものであるステップと、
    前記集めたアプリケーションの機能の実行についてのデータにエンティティがアクセスすることを許可されているか否かを判定するステップと、
    前記集めたアプリケーションの機能の実行についてのデータに前記エンティティがアクセスすることを許可されている場合に、前記集めたアプリケーションの機能の実行についてのデータへのアクセスを前記エンティティに提供するステップとを備えることを特徴とする方法。
  2. 請求項1に記載の方法において、前記ウェブアプリケーションは、ブラウザに対応したスクリプトを有するウェブページおよびリッチインターネットアプリケーションのうちの1つであることを特徴とする方法。
  3. 請求項1に記載の方法において、前記アプリケーションの機能の実行についてのデータは、httpトランスポートを介して前記インターネットアクセス可能なインフラストラクチャで受信されることを特徴とする方法。
  4. 請求項1に記載の方法において、前記アプリケーションの機能の実行についてのデータは、圧縮データ構造に符号化されることを特徴とする方法。
  5. 請求項1に記載の方法において、前記アプリケーションの機能の実行についてのデータは、機能の失敗および機能の誤りのうちの1つも含むことを特徴とする方法。
  6. 請求項1に記載の方法において、前記エンティティは、前記ウェブアプリケーションのプロバイダであることを特徴とする方法。
  7. 請求項1に記載の方法において、前記装備したウェブアプリケーションインスタンスがパブリックネットワークに展開され、前記装備したウェブアプリケーションにより生成されるログファイルは、前記パブリックネットワーク中に位置する一組のエンドユーザから受信されることを特徴とする方法。
  8. 請求項1に記載の方法において、前記装備したウェブアプリケーションにより生成されるログファイルは、エンドユーザのマシンで生成されることを特徴とする方法。
  9. 請求項1に記載の方法において、前記装備したウェブアプリケーションにより生成されるログファイルは、前記インターネットアクセス可能なインフラストラクチャのゲートウェイサーバで生成されることを特徴とする方法。
  10. 請求項1に記載の方法のステップを実行するコンピュータ実行可能な命令を有するコンピュータ可読媒体。
  11. プロセッサと、請求項1に記載の方法のステップを実行するコンピュータ実行可能な命令を有するコンピュータ可読媒体とを備えるサーバ。
  12. 請求項1に記載の方法において、前記アプリケーションの機能の実行についてのデータは、アプリケーションのいずれの機能が使用されたのか、いつそれぞれの機能が使用されたのか、どの順序でそれぞれの機能が使用されたのか、誰によってそれぞれの機能が使用されたのか、どのようなプラットホームでそれぞれの機能が使用されたのか、どのようなエンドユーザ環境でそれぞれの機能が使用されたのかについてのデータを含むことを特徴とする方法。
JP2008521441A 2005-07-12 2006-07-07 動的なアプリケーションの利用情報の分散取得および集約 Active JP5354776B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US69856705P true 2005-07-12 2005-07-12
US60/698,567 2005-07-12
US11/481,530 US7356590B2 (en) 2005-07-12 2006-07-06 Distributed capture and aggregation of dynamic application usage information
US11/481,530 2006-07-06
PCT/US2006/026337 WO2007008590A2 (en) 2005-07-12 2006-07-07 Distributed capture and aggregation of dynamic application usage information

Publications (2)

Publication Number Publication Date
JP2009501386A JP2009501386A (ja) 2009-01-15
JP5354776B2 true JP5354776B2 (ja) 2013-11-27

Family

ID=37637743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521441A Active JP5354776B2 (ja) 2005-07-12 2006-07-07 動的なアプリケーションの利用情報の分散取得および集約

Country Status (7)

Country Link
US (3) US7356590B2 (ja)
EP (1) EP1907941A4 (ja)
JP (1) JP5354776B2 (ja)
KR (1) KR101300360B1 (ja)
CN (1) CN101371245B (ja)
CA (1) CA2657487A1 (ja)
WO (1) WO2007008590A2 (ja)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849085B2 (en) * 2004-05-18 2010-12-07 Oracle International Corporation System and method for implementing MBSTRING in weblogic tuxedo connector
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
US20070055602A1 (en) * 2005-09-02 2007-03-08 Mohn Anne M Methods and systems for financial account management
US7930363B2 (en) 2005-10-12 2011-04-19 Powerreviews, Inc. Application service provider delivery system
JP2009521736A (ja) 2005-11-07 2009-06-04 スキャンスカウト,インコーポレイテッド リッチメディアと共に広告をレンダリングするための技術
US20070192161A1 (en) * 2005-12-28 2007-08-16 International Business Machines Corporation On-demand customer satisfaction measurement
US8856276B2 (en) * 2006-05-11 2014-10-07 International Business Machines Corporation Method, system and program product for collecting web metric data
US20090271324A1 (en) * 2006-08-11 2009-10-29 Evapt, Inc. Systems and methods for metered software as a service
US8255489B2 (en) * 2006-08-18 2012-08-28 Akamai Technologies, Inc. Method of data collection among participating content providers in a distributed network
US8260252B2 (en) 2006-10-02 2012-09-04 The Nielsen Company (Us), Llc Method and apparatus for collecting information about portable device usage
US8014726B1 (en) 2006-10-02 2011-09-06 The Nielsen Company (U.S.), Llc Method and system for collecting wireless information transparently and non-intrusively
US7996817B1 (en) * 2006-10-27 2011-08-09 Avaya Inc. Automatic validation of test results using componentized software object reflection
US8745647B1 (en) 2006-12-26 2014-06-03 Visible Measures Corp. Method and system for internet video and rich media behavioral measurement
US20080228581A1 (en) * 2007-03-13 2008-09-18 Tadashi Yonezaki Method and System for a Natural Transition Between Advertisements Associated with Rich Media Content
WO2008143855A2 (en) * 2007-05-14 2008-11-27 Dataupia, Inc. Network-attached storage devices
US7747988B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Software feature usage analysis and reporting
US7739666B2 (en) 2007-06-15 2010-06-15 Microsoft Corporation Analyzing software users with instrumentation data and user group modeling and analysis
US8176476B2 (en) * 2007-06-15 2012-05-08 Microsoft Corporation Analyzing software usage with instrumentation data
US7870114B2 (en) 2007-06-15 2011-01-11 Microsoft Corporation Efficient data infrastructure for high dimensional data analysis
US8990378B2 (en) * 2007-07-05 2015-03-24 Interwise Ltd. System and method for collection and analysis of server log files
US8321556B1 (en) 2007-07-09 2012-11-27 The Nielsen Company (Us), Llc Method and system for collecting data on a wireless device
CN100512160C (zh) 2007-07-24 2009-07-08 中兴通讯股份有限公司 一种离线的测试执行构造方法及装置
US7975262B2 (en) * 2007-08-16 2011-07-05 Microsoft Corporation Error tracing with context history
US8577996B2 (en) * 2007-09-18 2013-11-05 Tremor Video, Inc. Method and apparatus for tracing users of online video web sites
US9612995B2 (en) 2008-09-17 2017-04-04 Adobe Systems Incorporated Video viewer targeting based on preference similarity
US8549550B2 (en) 2008-09-17 2013-10-01 Tubemogul, Inc. Method and apparatus for passively monitoring online video viewing and viewer behavior
US8108513B2 (en) * 2007-09-26 2012-01-31 Microsoft Corporation Remote monitoring of local behavior of network applications
US20090083363A1 (en) * 2007-09-26 2009-03-26 Microsoft Corporation Remote monitoring of local behavior of network applications
US8543683B2 (en) * 2007-09-26 2013-09-24 Microsoft Corporation Remote monitoring of local behavior of network applications
US8271836B2 (en) * 2007-09-27 2012-09-18 Microsoft Corporation Capturing diagnostics in web browser applications
US20090089751A1 (en) * 2007-09-28 2009-04-02 Microsoft Corporation Exposing features of software products
US20090113397A1 (en) * 2007-10-25 2009-04-30 Signetag, Inc. Dynamic, secure software tagging for software asset management with respect to deployment, configuration, and usage
US20090276856A1 (en) * 2007-11-26 2009-11-05 International Business Machines Corporation License management facility
US20090138292A1 (en) * 2007-11-26 2009-05-28 International Business Machines Corporation Driving software product changes based on usage patterns gathered from users of previous product releases
US8307101B1 (en) 2007-12-13 2012-11-06 Google Inc. Generic format for storage and query of web analytics data
US8429243B1 (en) * 2007-12-13 2013-04-23 Google Inc. Web analytics event tracking system
US20090248729A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Online application platform and user communities
US20090248855A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Method for monitoring web page statistics
US20090313628A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Dynamically batching remote object model commands
US8612751B1 (en) * 2008-08-20 2013-12-17 Cisco Technology, Inc. Method and apparatus for entitled data transfer over the public internet
US8185910B2 (en) 2008-08-27 2012-05-22 Eric Sven-Johan Swildens Method and system for testing interactions between web clients and networked servers
CA2757278C (en) * 2009-04-01 2016-08-09 Comscore, Inc. Determining projection weights based on census data
US20100306363A1 (en) * 2009-05-26 2010-12-02 Erwien Saputra Determining completion of a web server download session at a database server
US8868601B2 (en) 2009-08-17 2014-10-21 International Business Machines Corporation Distributed file system logging
CN101645905B (zh) 2009-08-31 2012-10-24 深圳市茁壮网络股份有限公司 数据下载方法和数据上传方法及浏览器
US20110093783A1 (en) * 2009-10-16 2011-04-21 Charles Parra Method and system for linking media components
US9298569B1 (en) * 2009-11-13 2016-03-29 Arris Enterprises, Inc. Log storage and retrieval for broadband communications devices
US8615430B2 (en) * 2009-11-20 2013-12-24 Tremor Video, Inc. Methods and apparatus for optimizing advertisement allocation
US20110138307A1 (en) * 2009-12-09 2011-06-09 Microsoft Corporation Publishing client device usage data
US8332500B1 (en) * 2010-01-29 2012-12-11 Google Inc. Transmitting data requests based on usage characteristics of applications
CN102195795B (zh) * 2010-03-19 2014-03-12 Tcl集团股份有限公司 智能小区日志系统及其日志记录方法
AU2010355789B2 (en) 2010-06-24 2016-05-12 Arbitron Mobile Oy Network server arrangement for processing non-parametric, multi-dimensional, spatial and temporal human behavior or technical observations measured pervasively, and related method for the same
KR101021812B1 (ko) * 2010-07-05 2011-03-17 (주)지란지교소프트 엔드포인트 장치의 모니터링을 이용한 조직 관계망 분석 방법 및 그 방법을 실행하는 프로그램이 기록된 기록매체
CN101895431B (zh) * 2010-08-20 2012-02-29 烽火通信科技股份有限公司 一种基于RIA的高性能Web传输网管系统及实现方法
US9280391B2 (en) 2010-08-23 2016-03-08 AVG Netherlands B.V. Systems and methods for improving performance of computer systems
US8340685B2 (en) 2010-08-25 2012-12-25 The Nielsen Company (Us), Llc Methods, systems and apparatus to generate market segmentation data with anonymous location data
US8578348B2 (en) 2010-09-02 2013-11-05 Code Value Ltd. System and method of cost oriented software profiling
RU2013115475A (ru) 2010-09-07 2014-10-20 Нестек С.А. Эргономичная рукоятка, несущая пользовательский интерфейс
US8498213B2 (en) * 2010-09-14 2013-07-30 Brocade Communications Systems, Inc. Manageability tools for lossless networks
US8542583B2 (en) 2010-09-14 2013-09-24 Brocade Communications Systems, Inc. Manageability tools for lossless networks
US20120117227A1 (en) * 2010-11-10 2012-05-10 Sony Corporation Method and apparatus for obtaining feedback from a device
US8996689B2 (en) * 2010-11-11 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating networks, application servers, and wireless devices supporting machine-to-machine applications
US10102354B2 (en) 2010-11-19 2018-10-16 Microsoft Technology Licensing, Llc Integrated application feature store
US20120140255A1 (en) * 2010-12-02 2012-06-07 Ricoh Company, Ltd. Application launcher apparatus
JP5648911B2 (ja) * 2010-12-27 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation システム、プログラムおよび方法
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
US20120246619A1 (en) * 2011-03-23 2012-09-27 Oracle International Corporation Automated testing of browser based rich internet applications (ria) delivered through proprietary frameworks
US9223632B2 (en) * 2011-05-20 2015-12-29 Microsoft Technology Licensing, Llc Cross-cloud management and troubleshooting
US8789020B2 (en) 2011-09-01 2014-07-22 International Business Machines Corporation Interactive debugging environments and methods of providing the same
US9344335B2 (en) 2011-09-09 2016-05-17 Microsoft Technology Licensing, Llc Network communication and cost awareness
CN103019918B (zh) * 2011-09-27 2015-07-15 腾讯科技(深圳)有限公司 一种获取应用程序使用频率的方法和装置
US9075914B2 (en) 2011-09-29 2015-07-07 Sauce Labs, Inc. Analytics driven development
KR20190053307A (ko) * 2011-10-04 2019-05-17 구글 엘엘씨 디바이스 상의 결합된 활동 히스토리
US8359389B1 (en) 2011-10-11 2013-01-22 Google Inc. Monitoring application program resource consumption
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
US9704171B2 (en) * 2012-06-05 2017-07-11 Applause App Quality, Inc. Methods and systems for quantifying and tracking software application quality
US20130346917A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Client application analytics
US20140025441A1 (en) * 2012-07-19 2014-01-23 Sap Ag Peer support gamification by application knowledge scoring in social networks
US9183110B2 (en) 2012-11-26 2015-11-10 Google Inc. Centralized dispatching of application analytics
US10187481B2 (en) * 2012-12-12 2019-01-22 Facebook, Inc. Organizing application-reported information
CN102981934A (zh) * 2012-12-21 2013-03-20 曙光信息产业(北京)有限公司 日志转移方法和日志转移装置
US9628414B1 (en) * 2013-03-15 2017-04-18 Google Inc. User state based engagement
US20140282618A1 (en) * 2013-03-15 2014-09-18 Telemetry Limited Digital media metrics data management apparatus and method
US9998536B2 (en) 2013-05-29 2018-06-12 Microsoft Technology Licensing, Llc Metered network synchronization
US9405531B2 (en) * 2013-07-16 2016-08-02 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
RU2598988C2 (ru) * 2013-08-07 2016-10-10 Фиизер Инк. Способы и системы для поиска прикладных программ
US9349142B2 (en) 2013-10-09 2016-05-24 Ebay Inc. Reflow of data presentation using tracking data
US20160048850A1 (en) * 2014-08-15 2016-02-18 Clarence Wooten Collecting, aggregating, analyzing and reporting traction data on internet-connected applications
US9928233B2 (en) 2014-11-12 2018-03-27 Applause App Quality, Inc. Computer-implemented methods and systems for clustering user reviews and ranking clusters
US10362086B2 (en) * 2014-12-12 2019-07-23 Medidata Solutions, Inc. Method and system for automating submission of issue reports
US10305759B2 (en) * 2015-01-05 2019-05-28 Cisco Technology, Inc. Distributed and adaptive computer network analytics
CN104598372B (zh) * 2015-02-16 2017-11-03 联想(北京)有限公司 一种信息处理方法和装置
US10467000B2 (en) 2015-03-18 2019-11-05 International Business Machines Corporation Extending the usage of integrated portals for a better user experience
US10003669B2 (en) * 2015-07-28 2018-06-19 DISH Technologies L.L.C. Methods and apparatus to create and transmit a condensed logging data file
CN105224445B (zh) * 2015-10-28 2017-02-15 北京汇商融通信息技术有限公司 分布式跟踪系统
US10311500B2 (en) * 2016-09-01 2019-06-04 Facebook, Inc Methods and systems for developer onboarding for software-development products
CN107517128A (zh) * 2017-08-24 2017-12-26 北京小米移动软件有限公司 数据传输方法、装置和设备

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073241A (en) * 1996-08-29 2000-06-06 C/Net, Inc. Apparatus and method for tracking world wide web browser requests across distinct domains using persistent client-side state
US6647548B1 (en) * 1996-09-06 2003-11-11 Nielsen Media Research, Inc. Coded/non-coded program audience measurement system
US6353929B1 (en) * 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US7302402B2 (en) * 1998-03-30 2007-11-27 International Business Machines Corporation Method, system and program products for sharing state information across domains
JPH11288381A (ja) * 1998-04-02 1999-10-19 Tokyo Electric Power Co Inc:The ソフトウエアのリモートモニタリング方式
US6470388B1 (en) * 1999-06-10 2002-10-22 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US20050028171A1 (en) * 1999-11-12 2005-02-03 Panagiotis Kougiouris System and method enabling multiple processes to efficiently log events
JP2001356940A (ja) * 2000-06-13 2001-12-26 Canon Inc 処理装置及びその方法、コンピュータ可読メモリ
US6591228B1 (en) * 2001-02-13 2003-07-08 Charles Schwab & Co., Inc. Centralized diagnostic logging service
JP2002297258A (ja) * 2001-03-30 2002-10-11 Canon Inc アプリケーションのユーザ支援装置、システム、方法および情報処理装置並びに記録媒体並びにプログラムプロダクツ
JP4752125B2 (ja) * 2001-04-06 2011-08-17 大日本印刷株式会社 コンピュータシステム
JP2003050719A (ja) * 2001-08-03 2003-02-21 Katsuyoshi Nagashima アプリケーションソフトウエアの使用状況監視装置及びそのソフトウエアプログラム
US7415437B2 (en) * 2001-10-31 2008-08-19 The United States Of America As Represented By The Secretary Of The Navy Business development process
JP4050497B2 (ja) * 2001-11-06 2008-02-20 インフォサイエンス株式会社 ログ情報管理装置及びログ情報管理プログラム
JP2003186702A (ja) * 2001-12-18 2003-07-04 Tsubasa System Co Ltd 端末稼働監視システムおよび端末稼働監視方法
US20030144873A1 (en) * 2002-01-18 2003-07-31 Keshel Michelle L. Mobile marketing system
US7546365B2 (en) 2002-04-30 2009-06-09 Canon Kabushiki Kaisha Network device management system and method of controlling same
JP2004021549A (ja) * 2002-06-14 2004-01-22 Hitachi Information Systems Ltd ネットワーク監視システムおよびプログラム
JP4490029B2 (ja) * 2002-06-28 2010-06-23 キヤノン電子株式会社 情報分析装置及びその制御方法、情報分析システム、プログラム
US20040186738A1 (en) * 2002-10-24 2004-09-23 Richard Reisman Method and apparatus for an idea adoption marketplace
JP2004185463A (ja) * 2002-12-05 2004-07-02 Hitachi Electronics Service Co Ltd Webアプリケーション監視システム及び監視センタ用コンピュータ並びにコンピュータ・ソフトウエア
JP2004280398A (ja) 2003-03-14 2004-10-07 Toshiba Corp サービス提供側プログラム、利用側プログラム及び方法
EP1634176B1 (de) * 2003-06-18 2014-07-02 Fujitsu Technology Solutions Intellectual Property GmbH Clusteranordnung für dezentrale lastverteilung
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US7581224B2 (en) * 2003-07-10 2009-08-25 Hewlett-Packard Development Company, L.P. Systems and methods for monitoring resource utilization and application performance
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US20050125271A1 (en) * 2003-12-09 2005-06-09 Peltz Christopher J. Web services project planning
US20050216844A1 (en) * 2004-03-03 2005-09-29 Error Brett M Delayed transmission of website usage data
US7614064B2 (en) * 2004-08-23 2009-11-03 Microsoft Corporation Determining program boundaries through viewing behavior
US8078596B2 (en) * 2004-09-16 2011-12-13 International Business Machines Corporation Method and system for a non-hierarchical trace system using a hierarchical control interface
US7707189B2 (en) * 2004-10-05 2010-04-27 Microsoft Corporation Log management system and method
US7661030B2 (en) * 2004-11-30 2010-02-09 Sap Ag Propagating debug information in a web services environment
US8141111B2 (en) * 2005-05-23 2012-03-20 Open Text S.A. Movie advertising playback techniques
US7610266B2 (en) * 2005-05-25 2009-10-27 International Business Machines Corporation Method for vertical integrated performance and environment monitoring
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
JP4638370B2 (ja) * 2006-03-29 2011-02-23 富士重工業株式会社 車線逸脱防止装置
US8992304B2 (en) * 2006-04-13 2015-03-31 Igt Methods and systems for tracking an event of an externally controlled interface
US8495204B2 (en) * 2006-07-06 2013-07-23 Visible Measures Corp. Remote invocation mechanism for logging
US7689682B1 (en) * 2006-08-16 2010-03-30 Resource Consortium Limited Obtaining lists of nodes of a multi-dimensional network
US20080066107A1 (en) * 2006-09-12 2008-03-13 Google Inc. Using Viewing Signals in Targeted Video Advertising
US8113844B2 (en) * 2006-12-15 2012-02-14 Atellis, Inc. Method, system, and computer-readable recording medium for synchronous multi-media recording and playback with end user control of time, data, and event visualization for playback control over a network
US7747988B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Software feature usage analysis and reporting
US20090094584A1 (en) * 2007-10-04 2009-04-09 International Business Machines Corporation Non-intrusive asset monitoring framework for runtime configuration of deployable software assets
US8621491B2 (en) * 2008-04-25 2013-12-31 Microsoft Corporation Physical object visualization framework for computing device with interactive display

Also Published As

Publication number Publication date
CN101371245B (zh) 2012-09-05
US20070016672A1 (en) 2007-01-18
KR20080052560A (ko) 2008-06-11
WO2007008590A2 (en) 2007-01-18
US8135827B2 (en) 2012-03-13
US8626908B2 (en) 2014-01-07
EP1907941A2 (en) 2008-04-09
US7356590B2 (en) 2008-04-08
CN101371245A (zh) 2009-02-18
US20130111016A1 (en) 2013-05-02
EP1907941A4 (en) 2009-10-21
CA2657487A1 (en) 2007-01-18
US20100030785A1 (en) 2010-02-04
JP2009501386A (ja) 2009-01-15
WO2007008590A3 (en) 2007-07-19
KR101300360B1 (ko) 2013-08-28

Similar Documents

Publication Publication Date Title
US9712409B2 (en) Agile information technology infrastructure management system
US7568023B2 (en) Method, system, and data structure for monitoring transaction performance in a managed computer network environment
US9202225B2 (en) Aggregate monitoring of utilization data for vendor products in cloud networks
US8656006B2 (en) Integrating traffic monitoring data and application runtime data
KR101826368B1 (ko) 클라우드 컴퓨팅 모니터링 및 관리 시스템
US7421621B1 (en) Application integration testing
US8402131B2 (en) Hierarchy for characterizing interactions with an application
US8140987B2 (en) GUI modeling of web services
US6983379B1 (en) Method and system for monitoring online behavior at a remote site and creating online behavior profiles
US7523198B2 (en) Integrated testing approach for publish/subscribe network systems
US7505872B2 (en) Methods and apparatus for impact analysis and problem determination
US8775919B2 (en) Independent actionscript analytics tools and techniques
US7886295B2 (en) Connection manager, method, system and program product for centrally managing computer applications
US20050060372A1 (en) Techniques for filtering data from a data stream of a web services application
JP2004103014A (ja) 依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置
US7523463B2 (en) Technique to generically manage extensible correlation data
US8028200B2 (en) Tracing operations in multiple computer systems
US8751573B2 (en) Cloud-processing management with a landscape directory
US20060117091A1 (en) Data logging to a database
US20110238812A1 (en) System and method for high-performance profiling of application events
US8667147B2 (en) Monitoring related content requests
US7640459B2 (en) Performing computer application trace with other operations
US6480894B1 (en) System and method for maintaining a state for a user session using a web system
US20050091635A1 (en) Use of attribution to describe management information
US20070271375A1 (en) Method and apparatus for monitoring real users experience with a website capable of using service providers and network appliances

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090707

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120611

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130618

R155 Notification before disposition of declining of application

Free format text: JAPANESE INTERMEDIATE CODE: R155

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250