JP6018080B2 - 新しいブラウザウィンドウを検出するための技術 - Google Patents

新しいブラウザウィンドウを検出するための技術 Download PDF

Info

Publication number
JP6018080B2
JP6018080B2 JP2013548467A JP2013548467A JP6018080B2 JP 6018080 B2 JP6018080 B2 JP 6018080B2 JP 2013548467 A JP2013548467 A JP 2013548467A JP 2013548467 A JP2013548467 A JP 2013548467A JP 6018080 B2 JP6018080 B2 JP 6018080B2
Authority
JP
Japan
Prior art keywords
window
identifier
request
computer system
script
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
JP2013548467A
Other languages
English (en)
Other versions
JP2014508986A (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
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2014508986A publication Critical patent/JP2014508986A/ja
Application granted granted Critical
Publication of JP6018080B2 publication Critical patent/JP6018080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Description

関連出願への相互参照
本願は、2011年1月6日に出願された、「新しいブラウザウィンドウを検出するための技術(TECHNIQUES FOR DETECTING NEW BROWSER WINDOWS)」という名称の米国出願番号第12/985,799号の利益を主張する。その全内容は、すべての目的について本願明細書において参照により援用される。本開示は、2011年1月6日に出願された「非アクティブなブラウザウィンドウを検出するための技術(TECHNIQUES FOR DETECTING NEW BROWSER WINDOWS)」という名称の、共通に譲渡された同時係属中の米国特許出願番号第12/985,805号に関連付けられる。当該同時係属中の米国特許出願は、すべての目的について本願明細書において全文参照により援用される。
背景
本開示は一般的にウェブアプリケーションに関し、特にこのようなアプリケーションにおいてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術に関する。
一般的に言うと、ウェブアプリケーションは、サーバ上にホスティングされるソフトウェアアプリケーションであって、クライアント側のウェブブラウザを介してユーザによってアクセス可能なものである。典型的な使用の場合では、ユーザはクライアント側のブラウザウィンドウを開き、当該アプリケーションの最初のウェブページに進む。ユーザはそこから、(たとえばページマークアップに埋め込まれたフォーム要素を介して)情報を入力し得る、および/または何らかのタスクもしくは処理を完了するために当該アプリケーションのさらに別のページに進み得る。
いくつかの場合では、ユーザは、当該アプリケーションにアクセスしながら、既存のブラウザウィンドウの文脈から新しいブラウザウィンドウを開くことがある。これにより、ブラウザはサーバに、既存のウィンドウに表示されるアプリケーションページについて新しい要求を送る。現在の実現例では、サーバは一般的に、この新しいウィンドウのイベントと、ユーザが既存のウィンドウをリロード/リフレッシュする状態とを区別することができない。いずれの場合でも、サーバが受け取った要求は、既存のウィンドウから発信されたように思われる。サーバは典型的に、各ブラウザウィンドウごとに別個のアプリケーション状態情報を維持しているのでページをレンダリングする前にどのウィンドウを取り扱っているのかを知る必要があるため、これは問題となり得る。たとえば、サーバが誤ってクライアント要求が既存のウィンドウのリロードに対応すると判断した場合(実際には新しいウィンドウを開くことに対応する場合)、サーバは、要求を処理する際に、既存のウィンドウのアプリケーション状態を意図せず修正してしまう場合がある。
他の場合では、ユーザは、アプリケーションにアクセスするために用いたブラウザウィンドウを閉じるか、またはこのウィンドウ内で当該アプリケーションから離れる(たとえばサードパーティのウェブサイトへ離れる)ことがある。現在の実現例ではサーバは一般的に、これらの状態と、ユーザが同じアプリケーション中の別のウェブページに(当該ウィンドウ内で)進んだ状態とを区別することができない。いずれの場合でも、サーバは単に、ウィンドウ内のアプリケーションページがアンロード/破棄されたという通知をブラウザから受け取るだけである。これにより、サーバが、各ブラウザウィンドウごとにサーバによって維持されるメモリリソース(たとえば、アプリケーション状態情報)をいつ解放するのかを決定するのが困難になり得る。たとえば、ブラウザウィンドウがまだアプリケーションにアクセスするのに用いられているとサーバが誤って判断すると(実際にはユーザがウィンドウを閉じたかまたは当該アプリケーションから離れた場合)、サーバは、必要とされるよりも長く当該ウィンドウについてメモリにリソースを保持し得る。これは効率およびセキュリティの観点から望ましくない。
概要
本発明の実施例は、ウェブアプリケーションの文脈においてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術を提供する。実施例の一集合では、ウェブアプリケーションのサーバコンポーネントは、クライアント側のブラウザウィンドウから発信された要求を受け取り得る。この要求は、リソースロケータ(たとえばURL)およびウィンドウ識別子を含む。これに応答して、サーバコンポーネントは、ウィンドウの実際の識別子/名前を取得するためにスクリプトをウィンドウに送り得る。当該スクリプトによって返された実際の識別子および最初の要求に含まれたウィンドウ識別子に基づき、サーバコンポーネントは、このウィンドウが新しいウィンドウであるか、または既存のウィンドウであるかを判断し得るとともに、上記要求を適切なように処理し得る。
実施例の別の集合では、サーバコンポーネントは、第1のクライアント側のブラウザウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、第1のウィンドウを失効時間に関連付け得るとともに、潜在的に非アクティブである(すなわち閉じられるかまたはもはやアプリケーションにアクセスするのに用いられていない)ウィンドウの「失効」リストに第1のウィンドウを加え得る。第1のウィンドウが失効リストにある間に第1のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第1のウィンドウがアクティブであると識別して(すなわちアプリケーションにアクセスするようまだ用いられていると識別して)、第1のウィンドウを当該リストから除去し得る。第1のウィンドウが失効リストにある間に第2のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第2のウィンドウからの要求を受け取った時間と、第1のウィンドウに関連付けられた失効時間とを比較し得る。当該要求の時間が失効時間よりも遅い場合、サーバコンポーネントは、第1のウィンドウが非アクティブであると識別し得るとともに、第1のウィンドウに関連付けられるすべてのリソースを解放し得る。
実施例のさらに別の集合では、サーバコンポーネントは、クライアント側のブラウザについて最後に残っているウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、当該ブラウザに関連付けられるユーザセッションについてのセッションタイムアウト変数を第1の持続時間(たとえば1時間)から第1の持続時間より短い第2の持続時間(たとえば10分)に修正し得る。次いでサーバコンポーネントは、セッションタイムアウト変数のカウントダウンを始め得る。第2の持続時間が失効する前に最後に残っているウィンドウからサーバコンポーネントが要求を受け取れば、サーバコンポーネントは、当該ウィンドウがアクティブであると識別し得るとともに、セッションタイムアウト変数を第1の持続時間にリセットし得る。第2の持続時間が失効する前に、最後に残っているウィンドウから要求が受け取られなければ、サーバコンポーネントは当該ウィンドウが非アクティブであると識別し得、このウィンドウに関連付けられるすべてのリソースを解放し得、かつユーザセッションに関連付けられるすべてのリソースを解放し得る。
本発明の一実施例に従うと、サーバコンピュータシステムが、クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を受け取ることと、上記サーバコンピュータシステムが、ループバック識別子を生成することと、上記サーバコンピュータシステムが、上記要求に関連付けられるユーザセッションに上記ループバック識別子を格納することとを含む方法が提供される。上記方法はさらに、上記サーバコンピュータシステムが、上記URL、上記第1のウィンドウ識別子、および上記ループバック識別子を含むスクリプトを生成することと、上記サーバコンピュータシステムが、上記第1の要求を発信した上記ウィンドウへ上記スクリプトを送ることとを含む。
一実施例では、上記スクリプトは、上記第1の要求を発信した上記ウィンドウが新しいウィンドウであるかまたは既存のウィンドウであるかどうかの判断を促進するよう、上記クライアントコンピュータシステム上で実行される上記ウェブブラウザによって実行可能である。
一実施例では、上記ループバック識別子はランダムに生成される数である。
一実施例では、上記第1の要求はハイパーテキスト転送プロトコル(HTTP)要求である。
一実施例では、上記スクリプトは、上記第1の要求がHTTP GETまたはHEAD要求である場合にのみ、上記第1の要求を発信した上記ウィンドウに送られる。
一実施例では、上記スクリプトは、上記クライアントコンピュータシステム上において、上記第1のウィンドウ識別子が上記第1の要求を発信した上記ウィンドウの識別子と一致するかどうかを判断し、かつ当該判断に基づき、第2の要求を上記サーバコンピュータシステムに送るよう構成されている。
一実施例では、上記第1のウィンドウ識別子が、上記第1の要求を発信した上記ウィンドウの識別子と一致する場合、上記第2の要求は、上記URLと、上記ループバック識別子と、上記第1のウィンドウ識別子とを含む。
一実施例では、上記第1のウィンドウ識別子が、上記第1の要求を発信した上記ウィンドウの識別子と一致しない場合、上記第2の要求は、上記URLと、上記ループバック識別子と、上記第1のウィンドウ識別子とは異なる第2のウィンドウ識別子とを含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記第2の要求を受け取ることと、上記サーバコンピュータシステムが、上記第2の要求に含まれる上記ループバック識別子を上記ユーザセッションに格納される上記ループバック識別子とマッチングすることと、上記ループバック識別子を上記ユーザセッションから除去することとをさらに含む。
一実施例では、上記方法は、上記第2の要求が上記第1のウィンドウ識別子を含む場合、上記サーバコンピュータシステムが、上記第1の要求を発信した上記ウィンドウが新しいウィンドウであると判断することと、上記第2の要求が上記第2のウィンドウ識別子を含む場合、上記サーバコンピュータシステムが、上記第1の要求を発信した上記ウィンドウが既存のウィンドウであると判断することとをさらに含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記第1の要求を発信した上記ウィンドウが新しいウィンドウであるかまたは既存のウィンドウであるかどうかに基づき、上記URLについてのコンテンツをレンダリングすることと、上記サーバコンピュータシステムが、レンダリングされた上記コンテンツを上記第1の要求を発信した上記ウィンドウに送ることとをさらに含む。
本発明の別の実施例に従うと、プロセッサによって実行可能な命令を格納する一時的でないコンピュータ読取可能記憶媒体が提供される。上記命令は、クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を上記プロセッサに受け取らせる命令と、ループバック識別子を上記プロセッサに生成させる命令と、上記プロセッサに、上記要求に関連付けられるユーザセッションに上記ループバック識別子を格納させる命令とを含む。上記命令はさらに、上記URL、上記第1のウィンドウ識別子、および上記ループバック識別子を含むスクリプトを上記プロセッサに生成させる命令と、上記プロセッサに、上記第1の要求を発信した上記ウィンドウへ上記スクリプトを送らせる命令とを含む。
本発明の別の実施例に従うと、サーバコンピュータシステムが提供される。上記サーバコンピュータシステムはプロセッサを含み、上記プロセッサは、クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を受け取り、ループバック識別子を生成し、かつ上記要求に関連付けられるユーザセッションに上記ループバック識別子を格納するよう構成されている。上記プロセッサはさらに、上記URL、上記第1のウィンドウ識別子、および上記ループバック識別子を含むスクリプトを生成し、かつ上記第1の要求を発信した上記ウィンドウへ上記スクリプトを送るよう構成されている。
明細書の残りの部分および添付の図面への参照によって、本願明細書において開示される実施例の性質および利点がさらに理解され得る。
本発明の実施例に従ったシステムを示す簡略ブロック図である。 本発明の実施例に従った、クライアント側のブラウザウィンドウが新しいウィンドウまたは既存のウィンドウであるかどうかを判断するための処理を示すフロー図である。 本発明の実施例に従った、クライアント側のスクリプトによって行われる処理を示すフロー図である。 本発明の実施例に従った、クライアント側のブラウザウィンドウが新しいウィンドウまたは既存のウィンドウであるかどうかを判断するためのさらに別の処理を示すフロー図である。 本発明の実施例に従った、クライアント側のブラウザウィンドウが非アクティブであるかどうかを判断するための処理を示すフロー図である。 本発明の実施例に従った、クライアント側のブラウザウィンドウが非アクティブであるかどうかを判断するためのさらに別の処理を示すフロー図である。 本発明の実施例に従った、クライアント側ブラウザの最後に残っているウィンドウが非アクティブであるかどうかを判断するための処理を示すフロー図である。 本発明の実施例に従ったシステム環境を示す簡略ブロック図である。 本発明の実施例に従ったコンピュータシステムを示す簡略ブロック図である。
詳細な説明
以下の記載において、本発明の実施例が理解されるように説明目的のために多くの詳細を記載する。しかしながら、ある実施例がこれらの詳細のうちのいくつかがなくても実施され得るということは当業者には明らかであろう。
本発明の実施例は、ウェブアプリケーションの文脈においてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術を提供する。実施例の一集合では、ウェブアプリケーションのサーバコンポーネントは、クライアント側のブラウザウィンドウから発信された要求を受け取り得る。この要求は、リソースロケータ(たとえばURL)およびウィンドウ識別子を含む。これに応答して、サーバコンポーネントは、ウィンドウの実際の識別子/名前を取得するためにスクリプトをウィンドウに送り得る。当該スクリプトによって返された実際の識別子および最初の要求に含まれたウィンドウ識別子に基づき、サーバコンポーネントは、このウィンドウが新しいウィンドウであるか、または既存のウィンドウであるかを判断し得るとともに、上記要求を適切なように処理し得る。
実施例の別の集合では、サーバコンポーネントは、第1のクライアント側のブラウザウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、第1のウィンドウを失効時間に関連付け得るとともに、潜在的に非アクティブである(すなわち閉じられるかまたはもはやアプリケーションにアクセスするのに用いられていない)ウィンドウの「失効」リストに第1のウィンドウを加え得る。第1のウィンドウが失効リストにある間に第1のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第1のウィンドウがアクティブであると識別して(すなわちアプリケーションにアクセスするようまだ用いられていると識別して)、第1のウィンドウを当該リストから除去し得る。第1のウィンドウが失効リストにある間に第2のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第2のウィンドウからの要求を受け取った時間と、第1のウィンドウに関連付けられた失効時間とを比較し得る。当該要求の時間が失効時間よりも遅い場合、サーバコンポーネントは、第1のウィンドウが非アクティブであると識別し得るとともに、第1のウィンドウに関連付けられるすべてのリソースを解放し得る。
実施例のさらに別の集合では、サーバコンポーネントは、クライアント側のブラウザについて最後に残っているウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、当該ブラウザに関連付けられるユーザセッションについてのセッションタイムアウト変数を第1の持続時間(たとえば1時間)から第1の持続時間より短い第2の持続時間(たとえば10分)に修正し得る。次いでサーバコンポーネントは、セッションタイムアウト変数のカウントダウンを始め得る。第2の持続時間が失効する前に最後に残っているウィンドウからサーバコンポーネントが要求を受け取れば、サーバコンポーネントは、当該ウィンドウがアクティブであると識別し得るとともに、セッションタイムアウト変数を第1の持続時間にリセットし得る。第2の持続時間が失効する前に、最後に残っているウィンドウから要求が受け取られなければ、サーバコンポーネントは当該ウィンドウが非アクティブであると識別し得、このウィンドウに関連付けられるすべてのリソースを解放し得、かつユーザセッションに関連付けられるすべてのリソースを解放し得る。
図1は、本発明のある実施例に従ったシステム100を示す簡略ブロック図である。示されるように、システム100は、サーバ104と通信するクライアント102を含み得る。クライアント102は、ウェブブラウザ106を実行できる任意のタイプの電子装置またはシステムであり得る(たとえば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末(PDA)、セットトップボックス、ビデオゲームシステムなど)。利用可能なウェブブラウザの例は、Mozilla Firefox(登録商標)、Microsoft Internet Explorer(登録商標)、Google Chrome(登録商標)、およびApple Safari(登録商標)などを含む。さまざまな実施例では、ウェブブラウザ106は、サーバ104がホスティングするウェブアプリケーションのようなウェブリソースにアクセスするよう、クライアント102の1人以上のユーザによって動作され得る。
ある実施例では、ウェブブラウザ106は、複数のブラウザウィンドウ108を介してユーザが複数のウェブリソースに同時にアクセスするのを可能にし得る。たとえば、ユーザはブラウザ106において第1のブラウザウィンドウを開き、第1のウェブページ「A」に進み得る。第1のブラウザウィンドウの文脈から、このユーザは、1つ以上の付加的な(新しい)ブラウザウィンドウを開き得、これによりウェブページAの付加的なインスタンスが取得されて新しいウィンドウにおいてレンダリングされる。そこから、ユーザは開いているウィンドウのいずれかを用いて他のウェブページに進み得る。ユーザはさらに、ユーザが自身のブラウジングセッションを終えると、開いているウィンドウのうち1つ以上を閉じ得る。
本願明細書において用いられるように、「ブラウザウィンドウ」および「ウィンドウ」という用語は、リソース識別子(たとえばURL)によって識別されたウェブコンテンツを表示することが可能なブラウザ106の任意のビューポートを指し得る。典型的にはタブは単独のウィンドウとは考えられないが、特定の実施例では「ブラウザウィンドウ」および「ウィンドウ」という用語は、ブラウザの「タブ」を指し得る。
サーバ104は、アプリケーション114のようなウェブアプリケーションをホスティングすることが可能な任意のタイプの電子装置またはシステムであり得る。実施例の一集合では、サーバ104は、ウェブブラウザ106とウェブアプリケーション114との間の相互作用を扱うとともに、動的なウェブページ作製、ロードバランシング、およびセキュリティなどといったさまざまなサービスを提供するよう構成されるアプリケーションサーバコンポーネント110を含み得る。特定の実施例では、アプリケーションサーバ110は、ハイパーテキスト転送プロトコル(HTTP)要求をクライアント102のブラウザ106から受け取るとともに、それらの要求をアプリケーションサーバ110および/またはアプリケーション114に処理のために渡すよう構成されるウェブサーバコンポーネント112を含み得る。ウェブサーバ112はさらにHTTP応答(たとえば、レンダリングされたHTML)をブラウザ106に返し得る。
実施例の一集合では、アプリケーションサーバ110は、ウェブブラウザ106のウィンドウ108のようなクライアント側のブラウザウィンドウのライフサイクルをトラッキングするよう構成され得る。たとえば一実施例では、アプリケーションサーバ110は、アプリケーション114へのアクセス中にブラウザ106のユーザが新しいブラウザウィンドウを開いた時を検出し得るとともに、当該新しいウィンドウイベントと、既存のブラウザウィンドウに対するリロード/リフレッシュイベントとを区別し得る。別の実施例では、アプリケーションサーバ110は、ブラウザ106のユーザがウィンドウを閉じるかまたはアプリケーション114から離れることによってブラウザウィンドウを非アクティブにした時を検出し得るとともに、それらの状態を、ユーザが単にアプリケーション114の別のウェブページに進んだだけの状態と区別し得る。これらの場合においてアプリケーションサーバ110が行う具体的な処理の詳細を以下の図2〜図7に関連して説明する。
システム100は、クライアント102およびサーバ104に加えて、データ格納部116をさらに含み得る。データ格納部116は、サーバ104に通信可能に結合され得るとともに、ウェブアプリケーション114といったサーバ104のさまざまなコンポーネントのためにデータ格納サービスを提供し得る。サーバ104およびデータ格納部116は、システム100において別個のエンティティとして示されているが、当業者であれば、サーバ104およびデータ格納部116は単一の物理的な機械または別個の物理的な機械に対応し得るということを理解するであろう。
図1は例示であって、本発明の実施例を限定することを意図していないということが理解されるべきである。たとえば、システム100のさまざまなエンティティは各々、付加的な機能を有してもよく、または具体的に記載されない付加的なコンポーネントを含んでもよい。さらに、単一のクライアント、1つのサーバ、および1つのデータ格納部が示されるが、任意の数のこのようなエンティティがサポートされ得る。当業者であれば、多くの変形例、修正例、および代替例を認識するであろう。
新しいクライアント側のブラウザウィンドウの検出
上で示されるように、ある実施例ではアプリケーションサーバ110は、ブラウザ106のユーザが、アプリケーション114へのアクセス中に新しいブラウザウィンドウを開いた時を判断できるとともに、その新しいウィンドウイベントを既存のブラウザウィンドウに対するリロード/リフレッシュイベントと区別できる。図2は、本発明の実施例に従った、この新しいウィンドウ検出を実現するためにアプリケーションサーバ110が行ない得る処理200を示す図である。さまざまな実施例では、処理200は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実現され得る。ソフトウェアとして、処理200は、機械読取可能記憶媒体上に格納されるプログラムコードとしてエンコードされ得る。
ブロック202では、アプリケーションサーバ110は、クライアント側のウェブブラウザ106のあるウィンドウから発信された、ウェブアプリケーション114によって提供されるリソース(たとえばウェブページ)についてのHTTP要求を受け取り得る。さまざまな実施例ではこの要求は、当該リソースの識別子(たとえばURL)と、特定のブラウザウィンドウの識別子とを含み得る。たとえばこの要求は、URL「X」とウィンドウ識別子「ウィンドウ1」とを含み得る。ほとんどの場合、要求に含まれるウィンドウ識別子は、要求を発信したブラウザウィンドウの識別子に対応することとなる。しかしながら、この要求が既存のウィンドウの文脈から作り出された新しいウィンドウから発信された場合、要求に含まれるウィンドウ識別子は、新しいウィンドウではなく既存のウィンドウの識別子/名前に対応することとなる。したがってこれらの場合、アプリケーションサーバ110は、ウィンドウ識別子のみに基づき、発信元のウィンドウが新しいウィンドウかまたは既存のウィンドウかどうかを識別することが容易にできない。
ブロック204では、アプリケーションサーバ110は当該要求が、JavaScript(登録商標)をサポートしているユーザエージェントからのコンテンツのページについてのHTTP GETまたはHEAD要求であるかどうかを判断し得る。当該要求がこの特定のカテゴリに該当しない場合は、アプリケーションサーバ110は、上記発信元のブラウザウィンドウが新しいウィンドウではないと判断し得る。したがって、アプリケーションサーバ110は、要求されたURLについてコンテンツをレンダリング/取得し、レンダリング/取得されたコンテンツとともに応答をブラウザウィンドウに送る通常の処理フローを行い得る(ブロック206,208)。
この要求がJavaScript(登録商標)をサポートするユーザエージェントからのコンテンツについてのHTTP GETまたはHEAD要求である場合、アプリケーションサーバ110はさらに、当該要求がリダイレクトであるかどうか判断し得る(ブロック210)。この要求がリダイレクトであれば、アプリケーションサーバ110は上述したように、ブロック206,208の処理フローを実行し得る。
当該要求がリダイレクトでない場合、アプリケーションサーバ110は、この要求は新しいブラウザウィンドウから発信され得たと判断し得る。これに応答して、アプリケーションサーバ110は、提案されたウィンドウ識別子およびループバック識別子を生成し、当該ループバック識別子を、要求に関連付けられるユーザセッションに格納し得る(ブロック212)。実施例の一集合では、ループバック識別子はランダムに生成された数であり得る。アプリケーションサーバ110はさらに、ループバック識別子と、提案されたウィンドウ識別子と、受け取られた要求からのURLおよびウィンドウ識別子(たとえば、「X」および「ウィンドウ1」)とを含むクライアント側のスクリプトを生成し得るとともに、当該スクリプトを発信元のブラウザウィンドウへ送り得る(ブロック214,216)。実施例の一集合では、クライアント側のスクリプトは、クライアント側のブラウザ106によってキャッシュ可能ではないように構成され得る。次いで、発信元のブラウザウィンドウの実際の識別子を取得するよう、クライアント側のスクリプトはブラウザ106によって実行され得、これにより発信元のウィンドウが新しいウィンドウかまたは既存のウィンドウかどうかの判断を促進する。
図3は、ブロック214にて送られたクライアント側のスクリプトを受け取って実行する際にウェブブラウザ106によって行われ得る処理300を示す図である。ブロック302では、ブラウザ106は、スクリプトに含まれるウィンドウ識別子(すなわちブロック202にて受け取られた要求から抽出されるウィンドウ識別子)が現在のブラウザウィンドウ(すなわち要求を発信したウィンドウ)の識別子/名前と一致するかどうか判断し得る。この識別子同士が一致した場合、現在のウィンドウは既存のウィンドウであるということが示される。この場合、ブラウザ106は、クライアント側のリダイレクトを開始し、オリジナルのHTTP要求をミラーリングした(たとえば、URL「U1」およびウィンドウ識別子「ウィンドウ1」を含む)、ループバック識別子を追加した第2のHTTP要求をサーバ104に送り得る(ブロック304)。
上記の識別子同士が一致しなかった場合、現在のウィンドウは新しいウィンドウであることが示される。この場合、ブラウザ106は、現在のウィンドウについてすでにウィンドウ識別子が存在するかどうか判断し得る(ブロック306)。たとえば、ブラウザ106は、ウィンドウを開く際に、新しい名前/識別子をウィンドウに自動的に割り当てていてもよい。このような既存の識別子が見つかると、ブラウザ106はクライアント側のリダイレクトを開始して、ループバック識別子と、URLと、既存の識別子とを含む第2のHTTP要求をサーバ104に送り得る(ブロック308)。既存のウィンドウ識別子が見つからなかった場合、ブラウザ106はクライアント側のリダイレクトを開始して、ループバック識別子と、URLと、図2のブロック212にて生成された提案されたウィンドウ識別子とを含む第2のHTTP要求を送り得る(ブロック310)。
ブラウザ106が図3のブロック304,308,または310にて送った第2のHTTP要求を受け取る際には、アプリケーションサーバ110は、図4の処理400を行い得る。ブロック402および404にて、アプリケーションサーバ110は、当該第2のHTTP要求を受け取り、第2の要求に含まれるループバック識別子をユーザセッションに格納されたループバック識別子とマッチングし得る。ループバック識別子同士が一致すれば、アプリケーションサーバは、この第2の要求が(ユーザアクションに応答してではなく)ブロック214にて送られたクライアント側のスクリプトに応答して生成されたものであることが分かる。したがって、アプリケーションサーバ110は、ループバック識別子をセッションから除去し得(ブロック406)、処理400の残りへと進む。
ブロック408では、アプリケーションサーバ110は、第2の要求に含まれるウィンドウ識別子が、ブロック202にて受け取られたオリジナルの要求に含まれるウィンドウ識別子と一致するかどうか判断し得る。これらの識別子同士が一致すれば、アプリケーションサーバ110は、ブロック202のオリジナルの要求を発信したウィンドウは既存のウィンドウであると結論付け得る。代替的には、識別子同士が一致しなければ、サーバ104は、ブロック202のオリジナルの要求を発信したウィンドウは新しいウィンドウであると結論付け得る。次いで、アプリケーションサーバ110は、当該URLについてのコンテンツをレンダリング/取得し、レンダリング/取得されたコンテンツを含む応答を発信元のブラウザウィンドウへ送ることによってオリジナルの要求を処理し得る(ブロック414,416)。
特定の実施例では、このオリジナルの要求の処理は、発信元のウィンドウが新しいウィンドウまたは既存のウィンドウであると判断されるかどうかに基づき、異なり得る。たとえば、発信元のウィンドウがブロック410ごとに既存のウィンドウであると判断されれば、アプリケーションサーバ110は、当該ウィンドウに関連付けられるアプリケーション状態情報を自由に更新/修正し得る。しかしながら、当該発信元のウィンドウが、ブロック412ごとに新しいウィンドウであると判断されれば、アプリケーションサーバ110は、如何なる既存のウィンドウの状態も変更されないままであることを確実にするために適切なステップを採り得る。この態様で、アプリケーションサーバ110は、新しいウィンドウからの要求を処理する際に、当該既存のウィンドウの状態を意図せず破棄/無効にすること回避し得る。
処理200、300、および400は例示であって、変形および修正が可能であるということが理解されるべきである。たとえば、連続的として記載されるステップは、並行に実行されてもよく、ステップの順番は変更されてもよく、かつステップは、修正、組み合せ、付加、または省略されてもよい。当業者であれば、多くの変形例、修正例、および代替例を認識するであろう。
非アクティブなクライアント側のブラウザウィンドウの検出
ある実施例では、アプリケーションサーバ110は、ブラウザ106のユーザがウィンドウを閉じるかまたはアプリケーション114から離れることによってブラウザウィンドウを非アクティブにした時を検出し得るとともに、それらの状態を、ユーザが単にアプリケーション114の別のウェブページに進んだ場合と区別し得る。図5は、本発明の実施例に従った、この非アクティブウィンドウ検出を実現するためにアプリケーションサーバ110が実行し得る処理500を説明する図である。さまざまな実施例では、処理500は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実現され得る。ソフトウェアとして、処理500は、機械読取可能記憶媒体上に格納されたプログラムコードとしてエンコードされ得る。
ブロック502として、アプリケーションサーバ110は、ウェブブラウザ106において開いているブラウザウィンドウの「アクティブ」リストを維持し得る。アプリケーションサーバ110の観点から、あるブラウザウィンドウがウェブアプリケーション114にアクセスするのに用いられているならば、当該ブラウザウィンドウは「アクティブ」であると考えられる。このアクティブリストは、ブラウザに関連付けられるユーザセッションの一部として格納され得る。実施例の一集合では、アクティブリストにおける各々のウィンドウについてのエントリは、当該ウィンドウの識別子と、ウィンドウに表示されている現在のページの指示とを含み得る。
ブロック504では、アプリケーションサーバ110は、アクティブブラウザウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知をブラウザ106から受け取り得る。このような通知は、たとえば、ユーザが当該ウィンドウを閉じたか、またはユーザがウィンドウ内で異なるウェブページへ進んだ場合に受け取られてもよい。これに応答して、アプリケーションサーバ110は、失効時間をアクティブウィンドウに関連付け得るとともに、当該ウィンドウを、潜在的に非アクティブ(すなわちアプリケーションにアクセスするのにもはや用いられていない)ウィンドウの「失効」リストに加え得る(ブロック506,508)。
さらに、アプリケーションサーバ110は、アクティブリストにおけるウィンドウのすべてが現在失効リスト中にあるかどうか判断し得る(ブロック510)。失効リスト中になければ、さらに多くのアンロード/破棄通知をアプリケーションサーバ110が受け取ると、ブロック504〜510のステップは繰り返され、これによりさらに別のアクティブウィンドウが失効リストに加えられる。アクティブウィンドウのすべてが現在失効リスト中に存在すれば、アプリケーションサーバ110は、ユーザセッションレベルのリソースを解放するかどうか判断する特別な処理を行い得る。この処理は、以下の図7に関連して議論される。
図5の処理は図6の処理600に続いている。ブロック602では、アプリケーションサーバ110は、以前ブロック508において失効リスト中に配置された特定のブラウザウィンドウから発信されたHTTP要求を受け取り得る。この要求の受け取りは、当該ウィンドウがまだアプリケーション114にアクセスするのに用いられていることを示しているので、アプリケーションサーバ110は、当該ウィンドウはまだアクティブであると結論を下し、このウィンドウを失効リストから除去し得る(ブロック604)。アプリケーションサーバ110はまた、受け取られた要求に含まれた最新のURLで、アクティブリスト中のウィンドウのエントリを更新し得る。
ブロック606では、アプリケーションサーバ110は、失効リストに残っているウィンドウを検討し、各ウィンドウごとに、ブロック602にて要求が受け取られた時間と、当該ウィンドウに関連付けられる失効時間とを比較し得る。この要求の時間がウィンドウについての失効時間よりも遅ければ、アプリケーションサーバ110は、ウィンドウが非アクティブ(すなわち、アプリケーション114にアクセスするのにもはや用いられていない)であると識別するとともに、アクティブリストおよび失効リストの両方から当該ウィンドウを除去し得る。アプリケーションサーバ110はさらに、そのウィンドウに関連付けられるメモリリソース(たとえばアプリケーション状態情報など)を解放し得る。
この要求の時間がウィンドウについての失効時間よりも早ければ、アプリケーションサーバ110は、当該ウィンドウを失効リストに残し得る。このウィンドウは、そのウィンドウから新しい要求が受け取られるまで(ウィンドウがまだアクティブであることを示す)、またはウィンドウに関連付けられる失効時間よりも遅い時間に異なるウィンドウから新しい要求が受け取られるまで(ウィンドウがおそらく非アクティブであることを示す)、失効リスト中に残留し得る。
ブラウザウィンドウにおいて、ユーザが第1のアプリケーションページから第2のアプリケーションページに進んだ場合、アプリケーションサーバ110は、第1のページが破棄/アンロードされたという通知を受け取る前に、第2のページについての要求を受け取り得る。これは、HTTPはメッセージが送られた順番と同じ順番で受け取られることを保証しないからである。このため、ある実施例ではアプリケーションサーバ110は、各ウィンドウに表示されている現在のページを記録し、古いページに関するアンロード通知を無視し得る。
たとえば、ブラウザウィンドウAが現在、アプリケーションページ1を表示しているとする。さらに、ウィンドウAのユーザがアプリケーションページ1からアプリケーションページ2に進むが、(ウィンドウA,ページ1)についてのアンロード通知より前に、アプリケーションサーバ110が(ウィンドウA,ページ2)についての要求を受け取るとする。(ウィンドウA,ページ2)についての要求がひとたび受け取られると、アプリケーションサーバ110は、ウィンドウAについての現在のページがページ2であるようにアクティブウィンドウリストを更新し得る。(ウィンドウA,ページ1)についてのアンロード通知がその後受け取られると、アプリケーションサーバ110は、ウィンドウAについての現在のページはページ1ではない(ページ2である)ので、このアンロード通知を無視し得る。したがって、これにより、アンロード通知を受け取った際に、アプリケーションサーバ110が失効リストにウィンドウAを誤って加えることが防止される。
処理500および600は例示であって、変形および修正が可能であるということが理解されるべきである。たとえば、連続的として記載されるステップは、並行に実行されてもよく、ステップの順番は変更されてもよく、かつステップは、修正、組み合せ、付加、または省略されてもよい。当業者であれば、多くの変形例、修正例、および代替例を認識するであろう。
上述したように、ある実施例では、アプリケーションサーバ110は、あるユーザセッションについて最後に残っているブラウザウィンドウが非アクティブ化/閉じられた時を検出するよう特別な処理を用い得る。この処理は、図7の処理700において例示される。さまざまな実施例では、処理700は、ハードウェア、ソフトウェア、またはそれらの組合せにおいて実現され得る。ソフトウェアとして、処理700は、機械読取可能記憶媒体上に格納されたプログラムコードとしてエンコードされ得る。
ブロック702では、アプリケーションサーバ110は、あるユーザセッションについて最後に残っているブラウザウィンドウ(すなわちアクティブリスト中の最後のウィンドウ)におけるアプリケーションページがアンロード/破棄されたと判断し得る。これは、実施例の一集合では、アクティブリストおよび失効リスト中のウィンドウの集合が同じであるかを比較することによって達成され得る。最後に残っているブラウザウィンドウがアンロード/破棄されたと判断されると、アプリケーションサーバ110は、ユーザセッションに関連付けられるセッションタイムアウト変数を第1の時間期間(たとえば1時間)から第1の時間期間より短い第2の時間期間(たとえば10分)に修正し得、当該変数のカウントダウンを始め得る(ブロック704)。
当該セッションタイムアウト変数が失効する前にHTTP要求が任意のウィンドウから受け取られれば、アプリケーションサーバ110は、そのセッションはまだアクティブであると結論を下し得、セッションタイムアウト変数を第1の時間期間にリセットし得る(ブロック706,708)。さらに、処理は図6のブロック602に戻り得る。
しかしながら、当該セッションタイムアウト変数が失効する前に要求が任意のウィンドウから受け取られなければ、アプリケーションサーバ110は、最後に残っているウィンドウは非アクティブである(したがって、全ユーザセッションが閉じられている)という結論を下し得る。したがって、アプリケーションサーバ110は、ウィンドウおよびユーザセッションに関連付けられるリソースのすべてを解放し得る(ブロック710)。
処理700は例示であって、変形および修正が可能であるということが理解されるべきである。たとえば、連続的として記載されるステップは、並行に実行されてもよく、ステップの順番は変更されてもよく、かつステップは、修正、組み合せ、付加、または省略されてもよい。当業者であれば、多くの変形例、修正例、および代替例を認識するであろう。
図8は、本発明の実施例に従ったシステム環境800を示す簡略ブロック図である。示されるように、システム環境800は、1つ以上のクライアントコンピュータシステム802,804,806,808と、サーバコンピュータシステム810と、ネットワーク812と、データベース814とを含み得る。さまざまな実施例では、クライアントコンピュータシステム802,804,806,808、サーバコンピュータシステム810、およびデータベース814は、図1のクライアント102、サーバ104、およびデータ格納部116をそれぞれ実現するよう用いられ得る。
クライアントコンピュータシステム802,804,806,808は、汎用のパーソナルコンピュータ(たとえば、デスクトップコンピュータおよび/もしくはラップトップコンピュータ)、タブレットコンピュータ、スマートフォン、PDA、ならびに/またはワークステーションコンピュータであり得る。代替的には、クライアントコンピュータシステム802,804,806,808は、図1のブラウザ106のようなウェブブラウザを実行することができる任意の他のタイプの電子装置であり得る。システム環境800は4つのクライアントコンピュータシステムを有するよう示されているが、任意の数のクライアントコンピュータシステムがサポートされ得るということが理解されるべきである。
ネットワーク812は、TCP/IP、SNA、IPX、およびAppleTalkなどといったネットワークプロトコルを用いるデータ通信をサポートし得る、当業者が精通している任意のタイプのネットワークであり得る。単に例示目的として、ネットワーク812は、Ethernet(登録商標)ネットワークのようなローカルエリアネットワーク(LAN)、ワイドエリアネットワーク、仮想プライベートネットワーク(VPN)を含むがそれに限定されない仮想ネットワーク、インターネット、無線ネットワーク(たとえば、IEEE802.11プロトコルスイート、当該技術において公知のBluetooth(登録商標)プロトコル、および/もしくは任意の他の無線プロトコルのいずれかに基づき動作するネットワーク)、ならびに/またはこれらおよび/もしくは他のネットワークの任意の組合せであり得る。
サーバコンピュータシステム810は、汎用コンピュータ、特殊化サーバコンピュータ(たとえば、PCサーバ、UNIX(登録商標)サーバ、メインフレームサーバ、ラックマウント型サーバなど)、サーバクラスタ、または任意の他の適切な構成および/もしくはコンピュータの組合せであり得る。サーバコンピュータシステム810は、Microsoft Windows(登録商標)、Apple OS X(登録商標)、Linux(登録商標)、およびSolaris(登録商標)などといった任意のコンシューマまたはサーバオペレーティングシステムを実行できる。サーバコンピュータシステム810はまた、図1のアプリケーションサーバ110およびウェブアプリケーション114を含む、さまざまなサーバアプリケーションおよび/またはミッドティアアプリケーションのいずれかを実行し得る。
デー夕ベース814は、コンピュータシステム802、804、806、808、および810の1つ以上に対してローカルな(および/または存在している)記憶媒体に存在し得る。代替的には、データベース814は、コンピュータシステム802,804,806,808,810のいずれかまたはすべてからリモートであり得、および/または(たとえば、ネットワーク812を介して)これらのうちの1つ以上と通信し得る。実施例の一集合では、データベース814は、当業者が精通しているストレージエリアネットワーク(SAN)に存在し得る。同様に、コンピュータシステム802,804,806,808,810に帰属する機能を実行するための任意の必要なファイルが適切なように、それぞれのコンピュータ上にローカルに格納され得る、および/またはデータベース814上にリモートに格納され得る。実施例の一集合では、データベース814は、オラクル社から入手可能なOracle 11gのような、SQLフォーマットのコマンドに応答してデータを格納、更新、および取得するよう適合されるリレーショナルデータベースであり得る。
図9は、本発明のある実施例に従ったコンピュータシステム900を示す簡略ブロック図である。さまざまな実施例では、コンピュータシステム900は、上記のシステム環境800について記載したコンピュータシステム802、804、806、808、および810のいずれかを実現するよう用いられ得る。示されるように、コンピュータシステム900は、バス924を介して電気的に結合されるハードウェア要素を含み得る。ハードウェア要素は、1つ以上の中央処理装置(CPU)902と、1つ以上の入力装置904(たとえばマウス、キーボードなど)と、1つ以上の出力装置906(たとえば、表示装置、プリンタなど)とを含み得る。コンピュータシステム900はさらに、1つ以上の記憶装置908を含み得る。例示として、記憶装置908は、プログラム可能および/またはフラッシュ更新可能などである、ディスクドライブ、光学記憶装置、ランダムアクセスメモリ(RAM)および/もしくはリードオンリメモリ(ROM)のようなソリッドステート記憶装置といった装置を含み得る。
コンピュータシステム900はさらに、コンピュータ読取可能記憶媒体読取部912と、通信サブシステム914(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信装置など)と、上述したようなRAMおよびROM装置を含み得るワーキングメモリ918とを含み得る。いくつかの実施例では、コンピュータシステム900はさらに、デジタル信号プロセッサ(DSP)および/または特殊目的プロセッサなどを含み得る処理促進部916を含み得る。
コンピュータ読取可能記憶媒体読取部912は、コンピュータ読取可能記憶媒体910に接続され得、これらはともに(随意では、記憶装置908と組み合わせて)、リモート、ローカル、固定、および/またはリムーバブルの記憶装置と、コンピュータ読取可能な情報を一時的および/またはより永続的に保存する記憶媒体とを包括的に表わす。通信システム914は、ネットワーク812および/またはシステム環境800について上述した任意の他のコンピュータとデータが交換されることを可能にし得る。
コンピュータシステム900はさらに、ワーキングメモリ918内に現在存在しているように示されるソフトウェア要素を含み得る。このソフトウェア要素は、オペレーティングシステム920および/または(クライアント側のウェブブラウザ、ミドルティア/サーバアプリケーションなどであってもよい)アプリケーションプログラムのような他のコード922を含む。コンピュータシステム900の代替的な実施例は、上記のものの多くの変形例を有し得るということが理解されるべきである。たとえば、カスタマイズされたハードウェアが用いられ得るとともに特定の要素がハードウェア、ソフトウェア、またはその両方において実現され得る。さらに、ネットワーク入出力装置のような他のコンピューティング装置への接続も採用され得る。
コンピュータシステム900によって実行可能なコードまたはコードの一部を保存するためのコンピュータ読取可能記憶媒体は、揮発性/不揮発性およびリムーバブル/非リムーバブルの媒体のような、しかしこれらに限定されない当該技術において公知または用いられる任意の適切な媒体を含み得る。コンピュータ読取可能記憶媒体の例は、データおよび/またはプログラムコードを格納するよう用いられ得るとともにコンピュータによってアクセスされ得るRAM、ROM、EEPROM、フラッシュメモリ、CD−ROM、デジタルバーサタイルディスク(DVD)、または他の光学記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、任意の他の媒体を含む。
上記において、本発明の具体的な実施例を記載してきたが、さまざまな修正例、変更例、代替的な構成、および均等例が本発明の範囲内にある。たとえば、本発明の実施例をあるフロー図およびステップについて説明したが、当業者であれば、本発明の範囲は記載された図/ステップに限定されないことは明確であるはずである。
さらに、本発明の実施例をハードウェアおよびソフトウェアの特定の組合せを用いて説明したが、ハードウェアおよびソフトウェアの他の組合せも本発明の範囲内であると認識されるべきである。
したがって、明細書および図面は、限定的な態様ではなく例示的な態様であるとみなされるべきである。添付の特許請求の範囲に記載されるより広い本発明の精神および範囲から逸脱することがなければ、追加、削減、および他の修正もなされてもよいということが明らかであろう。

Claims (14)

  1. サーバコンピュータシステムが、クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を受け取ることと、
    前記サーバコンピュータシステムが、前記クライアントコンピュータシステム上で実行される前記ウェブブラウザの第2のウィンドウから発信された第2の要求を受け取ることとを含み、前記第2の要求は、前記URLおよび前記第1のウィンドウに対応する第1のウィンドウ識別子を含み、
    前記第2の要求がHTTP GETまたはHTTP HEAD要求でであるかどうかを判断することと、
    前記サーバコンピュータシステムが、前記第1の要求に関連付けられたループバック識別子を生成することと、
    前記サーバコンピュータシステムが、前記要求に関連付けられるユーザセッションに前記ループバック識別子を格納することと、
    前記サーバコンピュータシステムが、前記URL、前記第1のウィンドウ識別子、および前記ループバック識別子を含むスクリプトを生成することと、
    前記サーバコンピュータシステムが、前記ウェブブラウザの前記第2のウィンドウへ前記スクリプトを送ることとを含み、前記スクリプトは前記クライアントコンピュータシステムによってキャッシュ可能でないように構成されており、
    前記クライアントコンピュータシステム上で実行される前記ウェブブラウザに、前記第2のウィンドウが新たなウィンドウであるか既存のウィンドウであるかの判断を容易にするために前記スクリプトを実行させることを含み、前記判断は、前記スクリプトに含まれる前記第1のウィンドウ識別子と、前記第2のウィンドウの実際のウィンドウ識別子との比較を含み、
    第3の要求を前記第2のウィンドウから前記サーバコンピュータシステムに送信することを可能にすることを含み、前記第3の要求は、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致する場合に、前記URLと、前記第1のウィンドウに対応する前記第1のウィンドウ識別子と、前記ループバック識別子とを含み、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致しない場合に、前記URLと、前記第2のウィンドウの前記実際のウィンドウ識別子と、前記ループバック識別子とを含む、方法。
  2. サーバコンピュータシステムが、クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を受け取ることと、
    前記サーバコンピュータシステムが、前記クライアントコンピュータシステム上で実行される前記ウェブブラウザの第2のウィンドウから発信された第2の要求を受け取ることとを含み、前記第2の要求は、前記URLおよび前記第1のウィンドウに対応する第1のウィンドウ識別子を含み、
    前記サーバコンピュータシステムが、前記第1の要求に関連付けられたループバック識別子を生成することと、
    前記サーバコンピュータシステムが、前記要求に関連付けられるユーザセッションに前記ループバック識別子を格納することと、
    前記サーバコンピュータシステムが、前記URL、前記第1のウィンドウ識別子、および前記ループバック識別子を含むスクリプトを生成することと、
    前記サーバコンピュータシステムが、前記ウェブブラウザの前記第2のウィンドウへ前記スクリプトを送ることとを含み、前記スクリプトは前記クライアントコンピュータシステムによってキャッシュ可能でないように構成されており、
    前記クライアントコンピュータシステム上で実行される前記ウェブブラウザに、前記第2のウィンドウが新たなウィンドウであるか既存のウィンドウであるかの判断を容易にするために前記スクリプトを実行させることを含み、前記判断は、前記スクリプトに含まれる前記第1のウィンドウ識別子と、前記第2のウィンドウの実際のウィンドウ識別子との比較を含み、
    第3の要求を前記第2のウィンドウから前記サーバコンピュータシステムに送信することを可能にすることを含み、前記第3の要求は、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致する場合に、前記URLと、前記第1のウィンドウに対応する前記第1のウィンドウ識別子と、前記ループバック識別子とを含み、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致しない場合に、前記URLと、前記第2のウィンドウの前記実際のウィンドウ識別子と、前記ループバック識別子とを含む、方法。
  3. 前記ループバック識別子はランダムに生成される数である、請求項1または2に記載の方法。
  4. 前記第1の要求はハイパーテキスト転送プロトコル(HTTP)要求である、請求項1から3のいずれかに記載の方法。
  5. 前記スクリプトは、前記第2の要求がHTTP GETまたはHEAD要求である場合に、前記第2のウィンドウに送られる、請求項4に記載の方法。
  6. 前記第2の要求がHTTP GETまたはHTTP HEAD要求であるか否かを判断することをさらに含み、
    前記第2の要求がHTTP GETまたはHTTP HEAD要求である場合に、前記スクリプトは前記第2のウィンドウに送信される、請求項2に記載の方法。
  7. 前記スクリプトに含まれる前記第1のウィンドウ識別子が、現在のウィンドウの識別子と一致する場合、前記第2の要求は、前記URLと、前記ループバック識別子と、前記第1のウィンドウ識別子とを含む、請求項1から6のいずれかに記載の方法。
  8. 前記スクリプトに含まれる前記第1のウィンドウ識別子が、前記第2の前記ウィンドウの識別子と一致しない場合、前記第2の要求は、前記URLと、前記ループバック識別子と、前記第1のウィンドウ識別子とは異なる第2のウィンドウ識別子とを含み、前記第2のウィンドウ識別子は、前記現在のウィンドウの識別子に対応する、請求項7に記載の方法。
  9. 前記サーバコンピュータシステムが、前記第2の要求を受け取ることと、
    前記サーバコンピュータシステムが、前記第2の要求に含まれる前記ループバック識別子を前記ユーザセッションに格納される前記ループバック識別子とマッチングすることと、
    前記ループバック識別子を前記ユーザセッションから除去することとをさらに含む、請求項8に記載の方法。
  10. 前記第2の要求が前記第1のウィンドウ識別子を含む場合、前記サーバコンピュータシステムが、前記第2のウィンドウが新しいウィンドウであると判断することと、
    前記第2の要求が前記第2のウィンドウ識別子を含む場合、前記サーバコンピュータシステムが、前記第2のウィンドウが既存のウィンドウであると判断することとをさらに含む、請求項9に記載の方法。
  11. 前記サーバコンピュータシステムが、前記第2のウィンドウが前記新しいウィンドウであるかまたは前記既存のウィンドウであるかどうかに基づき、前記URLについてのコンテンツをレンダリングすることと、
    前記サーバコンピュータシステムが、レンダリングされた前記コンテンツを前記第2のウィンドウに送ることとをさらに含む、請求項10に記載の方法。
  12. サーバコンピュータシステムであって、プロセッサを含み、前記プロセッサは、
    クライアントコンピュータシステム上で実行されるウェブブラウザのウィンドウから発信された、ユニフォームリソースロケータ(URL)および第1のウィンドウ識別子を含む第1の要求を受け取り、
    前記サーバコンピュータシステムが、前記クライアントコンピュータシステム上で実行される前記ウェブブラウザの第2のウィンドウから発信された第2の要求を受け取るように構成されており、前記第2の要求は、前記URLおよび前記第1のウィンドウに対応する第1のウィンドウ識別子を含み、
    前記プロセッサは、
    前記第1の要求に関連付けられるループバック識別子を生成し、
    前記要求に関連付けられるユーザセッションに前記ループバック識別子を格納し、
    前記URL、前記第1のウィンドウ識別子、および前記ループバック識別子を含むスクリプトを生成し、かつ
    前記ウェブブラウザの前記第2のウィンドウへ前記スクリプトを送り、
    前記クライアントコンピュータシステム上で実行される前記ウェブブラウザに、前記第2のウィンドウが新たなウィンドウであるか既存のウィンドウであるかの判断を容易にするために前記スクリプトを実行させるように構成されており、前記判断は、前記スクリプトに含まれる前記第1のウィンドウ識別子と、前記第2のウィンドウの実際のウィンドウ識別子との比較を含み、
    前記プロセッサは、
    第3の要求を前記第2のウィンドウから前記サーバコンピュータシステムに送信することを可能にするように構成されており、前記第3の要求は、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致する場合に、前記URLと、前記第1のウィンドウに対応する前記第1のウィンドウ識別子と、前記ループバック識別子とを含み、
    前記スクリプトに含まれる前記第1のウィンドウ識別子と前記第2のウィンドウの前記実際のウィンドウ識別子とが一致しない場合に、前記URLと、前記第2のウィンドウの前記実際のウィンドウ識別子と、前記ループバック識別子とを含む、サーバコンピュータシステム。
  13. 前記プロセッサは、
    前記第2の要求がHTTP GETまたはHTTP HEAD要求であるか否かを判断するようにさらに構成されており、
    前記第2の要求がHTTP GETまたはHTTP HEAD要求である場合に、前記スクリプトは前記第2のウィンドウに送信される、請求項12に記載のサーバコンピュータシステム。
  14. 請求項1から11のいずれかに記載の方法を1つ以上のプロセッサに実行させるためのプログラム。
JP2013548467A 2011-01-06 2012-01-03 新しいブラウザウィンドウを検出するための技術 Active JP6018080B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/985,799 2011-01-06
US12/985,799 US9015226B2 (en) 2011-01-06 2011-01-06 Techniques for detecting new browser windows
PCT/US2012/020106 WO2012154221A1 (en) 2011-01-06 2012-01-03 Techniques for detecting new browser windows

Publications (2)

Publication Number Publication Date
JP2014508986A JP2014508986A (ja) 2014-04-10
JP6018080B2 true JP6018080B2 (ja) 2016-11-02

Family

ID=45532043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548467A Active JP6018080B2 (ja) 2011-01-06 2012-01-03 新しいブラウザウィンドウを検出するための技術

Country Status (5)

Country Link
US (2) US9015226B2 (ja)
EP (1) EP2661708B1 (ja)
JP (1) JP6018080B2 (ja)
CN (1) CN103348346B (ja)
WO (1) WO2012154221A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499065B2 (en) * 2010-09-30 2013-07-30 The Nielsen Company (Us), Llc Methods and apparatus to distinguish between parent and child webpage accesses and/or browser tabs in focus
US9015226B2 (en) 2011-01-06 2015-04-21 Oracle International Corporation Techniques for detecting new browser windows
US8892635B2 (en) 2011-01-06 2014-11-18 Oracle International Corporation Techniques for detecting inactive browser windows
US9424236B2 (en) 2011-04-26 2016-08-23 Oracle International Corporation Filtered Stylesheets
US9250872B2 (en) 2011-10-19 2016-02-02 Oracle International Corporation Task flow interface in a popup region
US9218428B2 (en) 2012-10-15 2015-12-22 Dell Products, L.P. Techniques for generating different sessions for multiple tabs of a single browser window
US9239878B2 (en) 2012-12-19 2016-01-19 Amazon Technologies, Inc. Interactivity analyses of web resources based on reload events
US10691299B2 (en) 2014-09-25 2020-06-23 Oracle International Corporation Display of hierarchical datasets using high-water mark scrolling
JP6540793B2 (ja) * 2015-03-19 2019-07-10 富士通株式会社 表示方法、情報処理装置、表示制御装置及びプログラム
CN106886397A (zh) * 2015-12-16 2017-06-23 中兴通讯股份有限公司 信息采集方法、网关设备及服务器
CN105808257B (zh) * 2016-03-08 2020-07-07 杭州朗和科技有限公司 一种应用弹窗识别方法和装置
US11188941B2 (en) 2016-06-21 2021-11-30 The Nielsen Company (Us), Llc Methods and apparatus to collect and process browsing history
CN106371757A (zh) * 2016-09-23 2017-02-01 吉林省联宇合达科技有限公司 一种触控一体机网页点击超链接新窗口打开方法
CN107025107A (zh) * 2016-10-24 2017-08-08 阿里巴巴集团控股有限公司 一种页面重定向循环的检测方法和装置
US10645174B2 (en) * 2017-12-07 2020-05-05 Sage Intacct, Inc. Enabling multiple sessions in a single browser
US11163424B2 (en) * 2018-06-25 2021-11-02 Citrix Systems, Inc. Unified display for virtual resources
US11392414B2 (en) * 2019-10-04 2022-07-19 Target Brands, Inc. Cooperation-based node management protocol

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048039A1 (en) 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US6061697A (en) 1996-09-11 2000-05-09 Fujitsu Limited SGML type document managing apparatus and managing method
US5970496A (en) 1996-09-12 1999-10-19 Microsoft Corporation Method and system for storing information in a computer system memory using hierarchical data node relationships
US6052730A (en) 1997-01-10 2000-04-18 The Board Of Trustees Of The Leland Stanford Junior University Method for monitoring and/or modifying web browsing sessions
US6418471B1 (en) 1997-10-06 2002-07-09 Ncr Corporation Method for recording and reproducing the browsing activities of an individual web browser
US7024622B1 (en) 1997-11-26 2006-04-04 Adobe Systems Incorporated Keeping track of locations in electronic documents
US7444374B1 (en) 1998-12-10 2008-10-28 Michelle Baker Electronic mail software with modular integrated authoring/reading software components including methods and apparatus for controlling the interactivity between mail authors and recipients
US6427123B1 (en) 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
US8375127B1 (en) 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
JP2001051997A (ja) 1999-08-11 2001-02-23 Sony Corp 文書データ作成装置、文書データ作成方法、及び記録媒体
US20030221162A1 (en) 2000-03-20 2003-11-27 Sridhar Mandayam Andampillai Meta-templates in website development and methods therefor
JP2004514192A (ja) 2000-04-03 2004-05-13 スターク ジュールゲン コンテンツ制御された電子メッセージ処理を行うための方法及びシステム
IL148037A0 (en) 2000-06-14 2002-09-12 Sap Ag Communication between client and server computers via http, method, computer program product and system
US6654734B1 (en) 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
US20020087596A1 (en) 2000-12-29 2002-07-04 Steve Lewontin Compact tree representation of markup languages
GB2373085B (en) 2001-03-08 2004-10-06 Ibm Method, computer program and system for style sheet generation
US7703009B2 (en) 2001-04-09 2010-04-20 Huang Evan S Extensible stylesheet designs using meta-tag information
WO2003017123A1 (en) * 2001-08-16 2003-02-27 Redline Networks, Inc. System and method for maintaining statefulness during client-server interactions
CN100338573C (zh) 2001-10-04 2007-09-19 皇家飞利浦电子股份有限公司 设计用户界面样式的方法以及具有自适应用户界面的设备
US7124358B2 (en) 2002-01-02 2006-10-17 International Business Machines Corporation Method for dynamically generating reference identifiers in structured information
US7392348B2 (en) * 2003-08-06 2008-06-24 International Business Machines Corporation Method for validating remotely cached dynamic content web pages
US7237192B1 (en) 2002-04-30 2007-06-26 Oracle International Corporation Methods and systems for naming and indexing children in a hierarchical nodal structure
US8635254B2 (en) * 2002-08-08 2014-01-21 Axeda Corporation Maintaining independent states for multiple web browser instances
US7716322B2 (en) 2002-09-23 2010-05-11 Alcatel-Lucent Usa Inc. Automatic exploration and testing of dynamic Web sites
CN100518176C (zh) * 2002-12-02 2009-07-22 Sap股份公司 实现有状态网络应用的会话返回
JP4146434B2 (ja) * 2002-12-20 2008-09-10 研一 澤田 ウェブアプリケーションサーバ用支援プログラム及びサーバ
ATE513266T1 (de) 2003-02-07 2011-07-15 Research In Motion Ltd System und verfahren zur verarbeitung einer mittels mobilem computergerät gesendeten nachricht in einem server eines computernetzwerkes
US6990632B2 (en) 2003-02-28 2006-01-24 Microsoft Corporation Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
JP3938121B2 (ja) 2003-09-17 2007-06-27 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US7421621B1 (en) 2003-09-19 2008-09-02 Matador Technologies Corp. Application integration testing
US7430597B2 (en) 2003-09-30 2008-09-30 Toshiba Corporation System and method for tracking web-based sessions
DE10349015A1 (de) * 2003-10-17 2005-05-19 Siemens Ag Betriebsverfahren für einen Server und hiermit korrespondierende Gegenstände
US7607110B2 (en) 2003-10-23 2009-10-20 Microsoft Corporation Element persistent identification
JP4381861B2 (ja) * 2004-03-26 2009-12-09 富士通株式会社 端末エミュレーションプログラム、記録媒体、負荷試験方法、負荷試験装置
US7653896B2 (en) 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
US7895528B2 (en) 2004-08-05 2011-02-22 International Business Machines Corporation System and method for reversing a windows close action
US7721195B2 (en) 2004-08-24 2010-05-18 Oracle International Corporation RTF template and XSL/FO conversion: a new way to create computer reports
US7949941B2 (en) 2005-04-22 2011-05-24 Oracle International Corporation Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
US7369129B2 (en) 2005-06-13 2008-05-06 Sap Aktiengesellschaft Automated user interface testing
US7395456B2 (en) 2005-08-17 2008-07-01 Microsoft Corporation Query-based identification of user interface elements
US20070240118A1 (en) 2006-02-28 2007-10-11 Ido Keren System, method, and software for testing a software application
US7685513B2 (en) 2006-04-18 2010-03-23 Xerox Corporation Optimization of storage and delivery of markup language files
US7685255B2 (en) * 2006-04-24 2010-03-23 Blue Coat Systems, Inc. System and method for prefetching uncacheable embedded objects
US7934201B2 (en) 2006-10-17 2011-04-26 Artoftest, Inc. System, method, and computer readable medium for universal software testing
US9069745B2 (en) 2007-01-16 2015-06-30 Ebay, Inc. Electronic form automation
US7949569B2 (en) 2007-01-30 2011-05-24 Oracle International Corporation Distributed device information management system as a distributed information repository system
US7895598B2 (en) 2007-06-15 2011-02-22 Microsoft Corporation Page and device-optimized cascading style sheets
US8379027B2 (en) 2007-06-20 2013-02-19 Red Hat, Inc. Rendering engine test system
US7930401B2 (en) 2007-06-26 2011-04-19 International Business Machines Corporation Accessing shared resources with improved request peak management
US8176409B2 (en) 2007-07-24 2012-05-08 De Novo Software System and method for electronic publication of scientific data and analysis
CN101369249B (zh) 2007-08-14 2011-08-17 国际商业机器公司 标识软件的gui部件的方法和装置
JP4906672B2 (ja) 2007-10-22 2012-03-28 株式会社日立製作所 ウェブアプリケーションの処理記録方法および処理記録装置
KR101573333B1 (ko) 2008-01-29 2015-12-02 삼성전자주식회사 컨텐츠 공유 서비스 제공 방법 및 그 장치
US7707513B2 (en) * 2008-02-06 2010-04-27 Oracle International Corporation System for streaming data from server to multiple slave browser windows in client computer through a master browser window
US8176205B2 (en) 2008-02-14 2012-05-08 Research In Motion Limited Method, server and system for optimizing HTML-based content
JP5182693B2 (ja) 2008-03-17 2013-04-17 Necインフロンティア株式会社 Htmlメール作成システム、htmlメール作成方法、そのプログラムおよびプログラム記録媒体
US9906620B2 (en) 2008-05-05 2018-02-27 Radware, Ltd. Extensible, asynchronous, centralized analysis and optimization of server responses to client requests
US8522135B2 (en) 2008-06-06 2013-08-27 International Business Machines Corporation Generating a transformation description document for transforming messages
US8819560B2 (en) * 2008-08-04 2014-08-26 International Business Machines Corporation Dispatching events to multiple browser windows/tabs using a single connection
US20100211893A1 (en) 2009-02-19 2010-08-19 Microsoft Corporation Cross-browser page visualization presentation
JP5159711B2 (ja) * 2009-06-25 2013-03-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 組込み機器およびその状態表示制御方法
AU2010328326B2 (en) 2009-12-07 2016-12-01 Robert Buffone System and method for website performance optimization and internet traffic processing
US8683311B2 (en) 2009-12-11 2014-03-25 Microsoft Corporation Generating structured data objects from unstructured web pages
US20110173589A1 (en) 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
US20110191676A1 (en) 2010-01-29 2011-08-04 Microsoft Corporation Cross-Browser Interactivity Recording, Playback, and Editing
US9104809B2 (en) 2010-03-24 2015-08-11 Fujitsu Limited Facilitating automated validation of a web application
US20110271173A1 (en) 2010-05-03 2011-11-03 Xerox Corporation Method and apparatus for automatic filling of forms with data
US8499065B2 (en) 2010-09-30 2013-07-30 The Nielsen Company (Us), Llc Methods and apparatus to distinguish between parent and child webpage accesses and/or browser tabs in focus
US9576068B2 (en) 2010-10-26 2017-02-21 Good Technology Holdings Limited Displaying selected portions of data sets on display devices
US9015226B2 (en) 2011-01-06 2015-04-21 Oracle International Corporation Techniques for detecting new browser windows
US8892635B2 (en) 2011-01-06 2014-11-18 Oracle International Corporation Techniques for detecting inactive browser windows
US8924934B2 (en) 2011-02-04 2014-12-30 Oracle International Corporation Automated test tool interface
US9424236B2 (en) 2011-04-26 2016-08-23 Oracle International Corporation Filtered Stylesheets

Also Published As

Publication number Publication date
EP2661708A1 (en) 2013-11-13
US20150188781A1 (en) 2015-07-02
WO2012154221A1 (en) 2012-11-15
US20120179743A1 (en) 2012-07-12
JP2014508986A (ja) 2014-04-10
US9015226B2 (en) 2015-04-21
US9225617B2 (en) 2015-12-29
EP2661708B1 (en) 2020-06-17
CN103348346B (zh) 2016-11-23
CN103348346A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
JP5837940B2 (ja) 非アクティブのブラウザウィンドウを検出するための技術
JP6018080B2 (ja) 新しいブラウザウィンドウを検出するための技術
JP6423059B2 (ja) セキュリティプロトコルの動的選択
JP5923171B2 (ja) サーバサイドリモートデスクトップの記録及び再生の方法及び装置
US9092287B2 (en) Product deployment system
US11405363B2 (en) File upload control for client-side applications in proxy solutions
AU2017265064B2 (en) Access to data on a remote device
US20170371728A1 (en) Programmatic implementations generated from an api call log
US10635508B1 (en) Programmatic implementations generated by recording user actions via an ephemeral user account
US20150205675A1 (en) Method and System for Improving Reliability of a Background Page
JP2020035465A (ja) 三角アプローチを用いた仮想マシンインスタンス
US20180097820A1 (en) Managing content upload and content retrieval
US10846149B1 (en) Event context service

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160711

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160929

R150 Certificate of patent or registration of utility model

Ref document number: 6018080

Country of ref document: JP

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250