JP2014508344A - 非アクティブのブラウザウィンドウを検出するための技術 - Google Patents

非アクティブのブラウザウィンドウを検出するための技術 Download PDF

Info

Publication number
JP2014508344A
JP2014508344A JP2013548465A JP2013548465A JP2014508344A JP 2014508344 A JP2014508344 A JP 2014508344A JP 2013548465 A JP2013548465 A JP 2013548465A JP 2013548465 A JP2013548465 A JP 2013548465A JP 2014508344 A JP2014508344 A JP 2014508344A
Authority
JP
Japan
Prior art keywords
window
list
request
computer system
web browser
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.)
Granted
Application number
JP2013548465A
Other languages
English (en)
Other versions
JP5837940B2 (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 JP2014508344A publication Critical patent/JP2014508344A/ja
Application granted granted Critical
Publication of JP5837940B2 publication Critical patent/JP5837940B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本発明の実施例は、ウェブアプリケーションの文脈においてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術を提供する。実施例の一集合では、ウェブアプリケーションのサーバコンポーネントが、第1のウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、第1のウィンドウを失効時間に対応付けるとともに、当該第1のウィンドウを、潜在的に非アクティブであるウィンドウの「失効」リストに加え得る。第1のウィンドウが失効リスト中にある間にサーバコンポーネントが第1のウィンドウから要求を受け取れば、サーバコンポーネントは、第1のウィンドウがアクティブであると識別し、第1のウィンドウを当該リストから除去し得る。第1のウィンドウに関連付けられる失効時間の後、サーバコンポーネントが第2のウィンドウから要求を受け取れば、サーバコンポーネントは、第1のウィンドウを非アクティブであると識別し、第1のウィンドウについてのすべてのリソースを解放し得る。

Description

関連出願への相互参照
本願は、2011年1月6日に出願された、「非アクティブのブラウザウィンドウを検出するための技術(TECHNIQUES FOR DETECTING INACTIVE BROWSER WINDOWS)」という名称の米国出願番号第12/985,805号の利益を主張する。その全内容は、すべての目的について本願明細書において参照により援用される。本開示は、2011年1月6日に出願された「新しいアクティブのブラウザウィンドウを検出するための技術(TECHNIQUES FOR DETECTING NEW BROWSER WINDOWS)」という名称の、共通に譲渡された同時係属中の米国特許出願番号第12/985,799号に関連付けられる。当該同時係属中の米国特許出願は、すべての目的について本願明細書において全文参照により援用される。
背景
本開示は一般的にウェブアプリケーションに関し、特にこのようなアプリケーションにおいてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術に関する。
一般的に言うと、ウェブアプリケーションは、サーバ上にホスティングされるソフトウェアアプリケーションであって、クライアント側のウェブブラウザを介してユーザによってアクセス可能なものである。典型的な使用の場合では、ユーザはクライアント側のブラウザウィンドウを開き、当該アプリケーションの最初のウェブページに進む。ユーザはそこから、(たとえばページマークアップに埋め込まれたフォーム要素を介して)情報を入力し得る、および/または何らかのタスクもしくは処理を完了するために当該アプリケーションのさらに別のページに進み得る。
いくつかの場合では、ユーザは、当該アプリケーションにアクセスしながら、既存のブラウザウィンドウの文脈から新しいブラウザウィンドウを開くことがある。これにより、ブラウザはサーバに、既存のウィンドウに表示されるアプリケーションページについて新しい要求を送る。現在の実現例では、サーバは一般的に、この新しいウィンドウのイベントと、ユーザが既存のウィンドウをリロード/リフレッシュする状態とを区別することができない。いずれの場合でも、サーバが受け取った要求は、既存のウィンドウから発信されたように思われる。サーバは典型的に、各ブラウザウィンドウごとに別個のアプリケーション状態情報を維持しているのでページをレンダリングする前にどのウィンドウを取り扱っているのかを知る必要があるため、これは問題となり得る。たとえば、サーバが誤ってクライアント要求が既存のウィンドウのリロードに対応すると判断した場合(実際には新しいウィンドウを開くことに対応する場合)、サーバは、要求を処理する際に、既存のウィンドウのアプリケーション状態を意図せず修正してしまう場合がある。
他の場合では、ユーザは、アプリケーションにアクセスするために用いたブラウザウィンドウを閉じるか、またはこのウィンドウ内で当該アプリケーションから離れる(たとえばサードパーティのウェブサイトへ離れる)ことがある。現在の実現例ではサーバは一般的に、これらの状態と、ユーザが同じアプリケーション中の別のウェブページに(当該ウィンドウ内で)進んだ状態とを区別することができない。いずれの場合でも、サーバは単に、ウィンドウ内のアプリケーションページがアンロード/破棄されたという通知をブラウザから受け取るだけである。これにより、サーバが、各ブラウザウィンドウごとにサーバによって維持されるメモリリソース(たとえば、アプリケーション状態情報)をいつ解放するのかを決定するのが困難になり得る。たとえば、ブラウザウィンドウがまだアプリケーションにアクセスするのに用いられているとサーバが誤って判断すると(実際にはユーザがウィンドウを閉じたかまたは当該アプリケーションから離れた場合)、サーバは、必要とされるよりも長く当該ウィンドウについてメモリにリソースを保持し得る。これは効率およびセキュリティの観点から望ましくない。
概要
本発明の実施例は、ウェブアプリケーションの文脈においてクライアント側のブラウザウィンドウのライフサイクルをトラッキングするための技術を提供する。実施例の一集合では、ウェブアプリケーションのサーバコンポーネントは、クライアント側のブラウザウィンドウから発信された要求を受け取り得る。この要求は、リソースロケータ(たとえばURL)およびウィンドウ識別子を含む。これに応答して、サーバコンポーネントは、ウィンドウの実際の識別子/名前を取得するためにスクリプトをウィンドウに送り得る。当該スクリプトによって返された実際の識別子および最初の要求に含まれたウィンドウ識別子に基づき、サーバコンポーネントは、このウィンドウが新しいウィンドウであるか、または既存のウィンドウであるかを判断し得るとともに、上記要求を適切なように処理し得る。
実施例の別の集合では、サーバコンポーネントは、第1のクライアント側のブラウザウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、第1のウィンドウを失効時間に関連付け得るとともに、潜在的に非アクティブである(すなわち閉じられるかまたはもはやアプリケーションにアクセスするのに用いられていない)ウィンドウの「失効」リストに第1のウィンドウを加え得る。第1のウィンドウが失効リストにある間に第1のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第1のウィンドウがアクティブであると識別して(すなわちアプリケーションにアクセスするようまだ用いられていると識別して)、第1のウィンドウを当該リストから除去し得る。第1のウィンドウが失効リストにある間に第2のウィンドウからサーバコンポーネントが新しい要求を受け取った場合、サーバコンポーネントは、第2のウィンドウからの要求を受け取った時間と、第1のウィンドウに関連付けられた失効時間とを比較し得る。当該要求の時間が失効時間よりも遅い場合、サーバコンポーネントは、第1のウィンドウが非アクティブであると識別し得るとともに、第1のウィンドウに関連付けられるすべてのリソースを解放し得る。
実施例のさらに別の集合では、サーバコンポーネントは、クライアント側のブラウザについて最後に残っているウィンドウにおけるアプリケーションページがアンロード/破棄されたという通知を受け取り得る。これに応答して、サーバコンポーネントは、当該ブラウザに関連付けられるユーザセッションについてのセッションタイムアウト変数を第1の持続時間(たとえば1時間)から第1の持続時間より短い第2の持続時間(たとえば10分)に修正し得る。次いでサーバコンポーネントは、セッションタイムアウト変数のカウントダウンを始め得る。第2の持続時間が失効する前に最後に残っているウィンドウからサーバコンポーネントが要求を受け取れば、サーバコンポーネントは、当該ウィンドウがアクティブであると識別し得るとともに、セッションタイムアウト変数を第1の持続時間にリセットし得る。第2の持続時間が失効する前に、最後に残っているウィンドウから要求が受け取られなければ、サーバコンポーネントは当該ウィンドウが非アクティブであると識別し得、このウィンドウに関連付けられるすべてのリソースを解放し得、かつユーザセッションに関連付けられるすべてのリソースを解放し得る。
本発明の一実施例に従うと、サーバコンピュータシステムが、クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを維持することと、上記サーバコンピュータシステムが、上記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を上記ウェブブラウザから受け取ることと、上記サーバコンピュータシステムが、上記第1のウィンドウを失効時間に関連付けることと、上記サーバコンピュータシステムが、上記第1のウィンドウをウィンドウの第2のリストに加えることとを含む方法が提供される。上記第2のリストは、上記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記第1のウィンドウから発信された要求を上記ウェブブラウザから受け取ることと、上記サーバコンピュータシステムが、上記第1のウィンドウがまだアクティブであると識別することとをさらに含む。
一実施例では、上記第1のウィンドウがまだアクティブであると識別することは、上記第1のウィンドウを上記第2のリストから除去することを含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記第2のリスト中の第2のウィンドウから発信された要求を上記ウェブブラウザから受け取ることと、上記サーバコンピュータシステムが、上記第2のウィンドウがまだアクティブであると識別することとをさらに含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記要求が受け取られた時間を、上記第2のリスト中のウィンドウに関連付けられる失効時間と比較することと、上記要求が受け取られた時間がウィンドウの失効時間よりも遅ければ、上記サーバコンピュータシステムが、上記ウィンドウが非アクティブであると識別することとをさらに含む。
一実施例では、上記ウィンドウが非アクティブであると識別することは、上記第1のリストおよび上記第2のリストから上記ウィンドウを除去することと、上記ウィンドウに関連付けられるリソースを解放することとを含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記ウェブブラウザにおいて開いている上記ウィンドウに関連付けられるユーザセッションについてのセッションタイムアウト変数を維持することをさらに含み、上記セッションタイムアウト変数は第1の時間期間に初期化されており、さらに、上記サーバコンピュータシステムが、上記第1のリストに最後に残っているウィンドウがアンロードされたと判断することと、上記サーバコンピュータシステムが、上記第1の時間期間から上記第1の時間期間よりも短い第2の時間期間に上記セッションタイムアウト変数を修正することとを含む。
一実施例では、上記方法は、上記第2のリストにおける任意のウィンドウから発信された要求が上記第2の時間期間の失効の前に受け取られれば、上記サーバコンピュータシステムが上記セッションタイムアウト変数を上記第1の時間期間にリセットすることと、そうでなければ、上記サーバコンピュータシステムが、上記ユーザセッションおよび上記最後に残っているウィンドウに関連付けられるリソースを解放することとをさらに含む。
一実施例では、上記方法は、上記サーバコンピュータシステムが、上記第1のリスト中の各ウィンドウごとに、当該ウィンドウにロードされた現在のページの識別子を格納することをさらに含む。
本発明の別の実施例に従うと、プロセッサが実行可能な命令を格納する一時的でないコンピュータ読取可能記憶媒体が提供される。当該命令は、クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを上記プロセッサに維持させる命令と、上記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を上記ウェブブラウザから上記プロセッサに受け取らせる命令と、上記第1のウィンドウを失効時間に上記プロセッサに関連付けさせる命令と、上記第1のウィンドウをウィンドウの第2のリストに上記プロセッサに加えさせる命令とを含み、上記第2のリストは、上記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む。
本発明の別の実施例に従うと、プロセッサを含むシステムが提供される。上記プロセッサは、クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを維持し、上記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を上記ウェブブラウザから受け取り、上記第1のウィンドウを失効時間に関連付け、上記第1のウィンドウをウィンドウの第2のリストに加えるよう構成されており、上記第2のリストは、上記第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)。
図3のブロック304、308、または310にてブラウザ106が送った第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 (24)

  1. サーバコンピュータシステムが、クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを維持することと、
    前記サーバコンピュータシステムが、前記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を前記ウェブブラウザから受け取ることと、
    前記サーバコンピュータシステムが、前記第1のウィンドウを失効時間に関連付けることと、
    前記サーバコンピュータシステムが、前記第1のウィンドウをウィンドウの第2のリストに加えることとを含み、前記第2のリストは、前記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む、方法。
  2. 前記サーバコンピュータシステムが、前記第1のウィンドウから発信された要求を前記ウェブブラウザから受け取ることと、
    前記サーバコンピュータシステムが、前記第1のウィンドウがまだアクティブであると識別することとをさらに含む、請求項1に記載の方法。
  3. 前記第1のウィンドウがまだアクティブであると識別することは、前記第1のウィンドウを前記第2のリストから除去することを含む、請求項2に記載の方法。
  4. 前記サーバコンピュータシステムが、前記第2のリスト中の第2のウィンドウから発信された要求を前記ウェブブラウザから受け取ることと、
    前記サーバコンピュータシステムが、前記第2のウィンドウがまだアクティブであると識別することとをさらに含む、請求項1に記載の方法。
  5. 前記サーバコンピュータシステムが、前記要求が受け取られた時間を、前記第2のリスト中のウィンドウに関連付けられる失効時間と比較することと、
    前記要求が受け取られた時間がウィンドウの失効時間よりも遅ければ、前記サーバコンピュータシステムが、前記ウィンドウが非アクティブであると識別することとをさらに含む、請求項4に記載の方法。
  6. 前記ウィンドウが非アクティブであると識別することは、
    前記第1のリストおよび前記第2のリストから前記ウィンドウを除去することと、
    前記ウィンドウに関連付けられるリソースを解放することとを含む、請求項5に記載の方法。
  7. 前記サーバコンピュータシステムが、前記ウェブブラウザにおいて開いている前記ウィンドウに関連付けられるユーザセッションについてのセッションタイムアウト変数を維持することをさらに含み、前記セッションタイムアウト変数は第1の時間期間に初期化されており、さらに、
    前記サーバコンピュータシステムが、前記第1のリストに最後に残っているウィンドウがアンロードされたと判断することと、
    前記サーバコンピュータシステムが、前記第1の時間期間から前記第1の時間期間よりも短い第2の時間期間に前記セッションタイムアウト変数を修正することとを含む、請求項1に記載の方法。
  8. 前記第2のリストにおける任意のウィンドウから発信された要求が前記第2の時間期間の失効の前に受け取られれば、前記サーバコンピュータシステムが前記セッションタイムアウト変数を前記第1の時間期間にリセットすることと、
    そうでなければ、前記サーバコンピュータシステムが、前記ユーザセッションおよび前記最後に残っているウィンドウに関連付けられるリソースを解放することとをさらに含む、請求項7に記載の方法。
  9. 前記サーバコンピュータシステムが、前記第1のリスト中の各ウィンドウごとに、当該ウィンドウにロードされた現在のページの識別子を格納することをさらに含む、請求項1に記載の方法。
  10. プロセッサが実行可能な命令を格納する一時的でないコンピュータ読取可能記憶媒体であって、前記命令は、
    クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを前記プロセッサに維持させる命令と、
    前記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を前記ウェブブラウザから前記プロセッサに受け取らせる命令と、
    前記第1のウィンドウを失効時間に前記プロセッサに関連付けさせる命令と、
    前記第1のウィンドウをウィンドウの第2のリストに前記プロセッサに加えさせる命令とを含み、前記第2のリストは、前記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む、一時的でないコンピュータ読取可能記憶媒体。
  11. 前記命令は、
    前記第1のウィンドウから発信された要求を前記ウェブブラウザから前記プロセッサに受け取らせる命令と、
    前記第1のウィンドウがまだアクティブであると前記プロセッサに識別させる命令とをさらに含む、請求項10に記載の一時的でないコンピュータ読取可能記憶媒体。
  12. 前記第1のウィンドウがまだアクティブであると識別することは、前記第1のウィンドウを前記第2のリストから除去することを含む、請求項11に記載の一時的でないコンピュータ読取可能媒体。
  13. 前記命令は、
    前記第2のリスト中の第2のウィンドウから発信された要求を前記ウェブブラウザから前記プロセッサに受け取らせる命令と、
    前記第2のウィンドウがまだアクティブであると前記プロセッサに識別させる命令とをさらに含む、請求項10に記載の一時的でないコンピュータ読取可能媒体。
  14. 前記命令は、
    前記要求が受け取られた時間を、前記第1のウィンドウに関連付けられる失効時間と前記プロセッサに比較させる命令と、
    前記要求が受け取られた時間が、前記第1のウィンドウに関連付けられる失効時間よりも遅ければ、前記第1のウィンドウが非アクティブであると前記プロセッサに識別させる命令とをさらに含む、請求項13に記載の一時的でないコンピュータ読取可能記憶媒体。
  15. プロセッサを含むシステムであって、
    前記プロセッサは、
    クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを維持し、
    前記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を前記ウェブブラウザから受け取り、
    前記第1のウィンドウを失効時間に関連付け、
    前記第1のウィンドウをウィンドウの第2のリストに加えるよう構成されており、前記第2のリストは、前記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む、システム。
  16. 前記プロセッサはさらに、
    前記第1のウィンドウから発信された要求を前記ウェブブラウザから受け取り、
    前記第1のウィンドウがまだアクティブであると識別するよう構成されている、請求項15に記載のシステム。
  17. 前記第1のウィンドウがまだアクティブであると識別することは、前記第1のウィンドウを前記第2のリストから除去することを含む、請求項16に記載のシステム。
  18. 前記プロセッサはさらに、
    前記第2のリスト中の第2のウィンドウから発信された要求を前記ウェブブラウザから受け取り、
    前記第2のウィンドウがまだアクティブであると識別するよう構成されている、請求項15に記載のシステム。
  19. 前記プロセッサはさらに、
    前記要求が受け取られた時間を、前記第1のウィンドウに関連付けられる失効時間と比較し、
    前記要求が受け取られた時間が、前記第1のウィンドウに関連付けられる失効時間よりも遅ければ、前記第1のウィンドウが非アクティブであると識別するよう構成されている、請求項18に記載のシステム。
  20. システムであって、
    クライアントコンピュータシステム上において実行されるウェブブラウザにおいて開いているウィンドウの第1のリストを維持するための手段と、
    前記第1のリスト中の第1のウィンドウに表示されたアプリケーションページがアンロードされたという通知を前記ウェブブラウザから受け取るための手段と、
    前記第1のウィンドウを失効時間に関連付けるための手段と、
    前記第1のウィンドウをウィンドウの第2のリストに加えるための手段とを含み、前記第2のリストは、前記第1のリスト中に潜在的に非アクティブであるウィンドウのサブセットを含む、システム。
  21. 前記第1のウィンドウから発信された要求を前記ウェブブラウザから受け取るための手段と、
    前記第1のウィンドウがまだアクティブであると識別するための手段とをさらに含む、請求項20に記載のシステム。
  22. 前記第1のウィンドウがまだアクティブであると識別することは、前記第1のウィンドウを前記第2のリストから除去することを含む、請求項21に記載のシステム。
  23. 前記第2のリスト中の第2のウィンドウから発信された要求を前記ウェブブラウザから受け取るための手段と、
    前記第2のウィンドウがまだアクティブであると識別するための手段とをさらに含む、請求項20に記載のシステム。
  24. 前記要求が受け取られた時間を、前記第1のウィンドウに関連付けられる失効時間と比較するための手段と、
    前記要求が受け取られた時間が、前記第1のウィンドウに関連付けられる失効時間よりも遅ければ、前記第1のウィンドウが非アクティブであると識別するための手段とをさらに含む、請求項23に記載のシステム。
JP2013548465A 2011-01-06 2012-01-03 非アクティブのブラウザウィンドウを検出するための技術 Active JP5837940B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/985,805 2011-01-06
US12/985,805 US8892635B2 (en) 2011-01-06 2011-01-06 Techniques for detecting inactive browser windows
PCT/US2012/020104 WO2012094339A1 (en) 2011-01-06 2012-01-03 Techniques for detecting inactive browser windows

Publications (2)

Publication Number Publication Date
JP2014508344A true JP2014508344A (ja) 2014-04-03
JP5837940B2 JP5837940B2 (ja) 2015-12-24

Family

ID=45532042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548465A Active JP5837940B2 (ja) 2011-01-06 2012-01-03 非アクティブのブラウザウィンドウを検出するための技術

Country Status (5)

Country Link
US (2) US8892635B2 (ja)
EP (1) EP2661686B1 (ja)
JP (1) JP5837940B2 (ja)
CN (1) CN103348321B (ja)
WO (1) WO2012094339A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606703B2 (en) 2011-01-06 2017-03-28 Oracle International Corporation Techniques for detecting inactive browser windows
US10325012B2 (en) 2011-04-26 2019-06-18 Oracle International Corporation Filtered stylesheets
US10359902B2 (en) 2011-10-19 2019-07-23 Oracle International Corporation Task flow interface in a popup region
US10691299B2 (en) 2014-09-25 2020-06-23 Oracle International Corporation Display of hierarchical datasets using high-water mark scrolling

Families Citing this family (24)

* 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
US9928083B2 (en) * 2011-07-08 2018-03-27 Microsoft Technology Licensing, Llc Tab trimming
US9351331B2 (en) 2012-04-18 2016-05-24 Qualcomm Incorporated Invasive socket manager
US9596328B2 (en) * 2012-08-09 2017-03-14 Oracle International Corporation Hierarchical criteria-based timeout protocols
CN103973641B (zh) 2013-01-29 2017-08-25 国际商业机器公司 管理不同网站的会话的方法及装置
US20140351417A1 (en) * 2013-05-21 2014-11-27 Tsz Fung Chan Session timeout method for dhtmlx interface control library
US9584438B2 (en) * 2013-06-02 2017-02-28 Microsoft Technology Licensing, Llc Idle worker-process page-out
DE102013107127A1 (de) 2013-07-05 2015-01-08 Hilite Germany Gmbh Pleuel für eine zweistufige variable Verdichtung
JP5884843B2 (ja) * 2014-02-18 2016-03-15 コニカミノルタ株式会社 表示装置、画面制御方法及びプログラム
US20150268838A1 (en) * 2014-03-20 2015-09-24 Institute For Information Industry Methods, systems, electronic devices, and non-transitory computer readable storage medium media for behavior based user interface layout display (build)
KR102457006B1 (ko) * 2015-08-19 2022-10-21 삼성전자 주식회사 전자 장치의 정보 제공 방법 및 장치
US10209851B2 (en) 2015-09-18 2019-02-19 Google Llc Management of inactive windows
US10891106B2 (en) 2015-10-13 2021-01-12 Google Llc Automatic batch voice commands
US11188941B2 (en) 2016-06-21 2021-11-30 The Nielsen Company (Us), Llc Methods and apparatus to collect and process browsing history
US10038788B1 (en) * 2017-05-09 2018-07-31 Oracle International Corporation Self-learning adaptive routing system
CN107665257A (zh) * 2017-10-11 2018-02-06 成都知道创宇信息技术有限公司 一种浏览器窗口切换时暂停页面内活动的方法
US11163424B2 (en) * 2018-06-25 2021-11-02 Citrix Systems, Inc. Unified display for virtual resources
US10574768B1 (en) * 2018-08-17 2020-02-25 Oath Inc. Automatic browser inactivity detection method and apparatus
KR20200100492A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 전자 장치 및 전자 장치의 어플리케이션 관리 방법
US11392414B2 (en) * 2019-10-04 2022-07-19 Target Brands, Inc. Cooperation-based node management protocol
US11431787B1 (en) * 2021-09-20 2022-08-30 Dell Products L.P. Managing cloud native workloads at an information handling system
US20230097446A1 (en) * 2021-09-30 2023-03-30 Johnson Controls Tyco Ip Holdings, Llp Methods and apparatuses for managing network security using video surveillance and access control system
US20230275954A1 (en) * 2022-02-03 2023-08-31 Citrix Systems, Inc. Remote browser session presentation with local browser tabs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213280A (ja) * 2002-12-27 2004-07-29 Nri & Ncc Co Ltd ウェブブラウザ利用処理システムにおけるデータ領域管理方法
US20060031781A1 (en) * 2004-08-05 2006-02-09 International Business Machines Corporation System and method for reversing a windows close action
JP2006508622A (ja) * 2002-12-02 2006-03-09 エスアーペー アーゲー セッション復帰可能な、処理状態を把握するウェブアプリケーション

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226117A (en) 1990-05-15 1993-07-06 International Business Machines Corporation Method for simultaneous update and change in parent and child windows
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
US5999911A (en) 1995-06-02 1999-12-07 Mentor Graphics Corporation Method and system for managing workflow
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
US6286129B1 (en) 1997-12-02 2001-09-04 Aspect Communications Method and apparatus for compiling transaction processing workflows
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
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 文書データ作成装置、文書データ作成方法、及び記録媒体
US6845369B1 (en) 2000-01-14 2005-01-18 Relevant Software Inc. System, apparatus and method for using and managing digital information
US20030221162A1 (en) 2000-03-20 2003-11-27 Sridhar Mandayam Andampillai Meta-templates in website development and methods therefor
AU2001247934A1 (en) 2000-04-03 2001-10-15 Craig Goren Method and system for content driven electronic messaging
WO2001097012A2 (en) 2000-06-14 2001-12-20 Sap Aktiengesellschaft 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
US8346848B2 (en) 2001-08-16 2013-01-01 Juniper 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
US7472165B2 (en) 2002-12-20 2008-12-30 Kenichi Sawada Support program for web application server and server
AU2003303879A1 (en) 2003-02-07 2004-08-30 Research In Motion Limited System and method for processing a message in a server of a computer network sent by a mobile computer device
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
US7039482B2 (en) 2003-10-28 2006-05-02 Taiwan Semiconductor Manufacturing Company, Ltd. Floating process flow control system to handle operation events in a full automation plant
JP4381861B2 (ja) 2004-03-26 2009-12-09 富士通株式会社 端末エミュレーションプログラム、記録媒体、負荷試験方法、負荷試験装置
US7653896B2 (en) 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
US7721195B2 (en) 2004-08-24 2010-05-18 Oracle International Corporation RTF template and XSL/FO conversion: a new way to create computer reports
CN101366005A (zh) * 2005-02-09 2009-02-11 软件在线有限公司 在线讨论的简易化
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
US20070282660A1 (en) 2006-06-01 2007-12-06 Peter Forth Task management systems and methods
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部件的方法和装置
US20090094552A1 (en) 2007-10-04 2009-04-09 Microsoft Corporation Guided Transition User Interfaces
JP4906672B2 (ja) * 2007-10-22 2012-03-28 株式会社日立製作所 ウェブアプリケーションの処理記録方法および処理記録装置
US7925988B2 (en) 2007-11-13 2011-04-12 International Business Machines Corporation System and method for providing sticky applications
US8762465B2 (en) 2008-01-29 2014-06-24 Samsung Electronics Co., Ltd. Method for providing a content-sharing service, and device therefor
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
US20090319922A1 (en) 2008-06-19 2009-12-24 Bank Of America Corporation Non-Bypassable Disclosures in Electronic Transactions
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 組込み機器およびその状態表示制御方法
US8635177B2 (en) 2009-08-17 2014-01-21 Adobe Systems Incorporated Rule-based binding
US8112471B2 (en) 2009-12-07 2012-02-07 Yottaa, Inc 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
US8892635B2 (en) 2011-01-06 2014-11-18 Oracle International Corporation Techniques for detecting inactive browser windows
US9015226B2 (en) 2011-01-06 2015-04-21 Oracle International Corporation Techniques for detecting new 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
US9250872B2 (en) 2011-10-19 2016-02-02 Oracle International Corporation Task flow interface in a popup region
US10691299B2 (en) 2014-09-25 2020-06-23 Oracle International Corporation Display of hierarchical datasets using high-water mark scrolling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006508622A (ja) * 2002-12-02 2006-03-09 エスアーペー アーゲー セッション復帰可能な、処理状態を把握するウェブアプリケーション
JP2004213280A (ja) * 2002-12-27 2004-07-29 Nri & Ncc Co Ltd ウェブブラウザ利用処理システムにおけるデータ領域管理方法
US20060031781A1 (en) * 2004-08-05 2006-02-09 International Business Machines Corporation System and method for reversing a windows close action

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606703B2 (en) 2011-01-06 2017-03-28 Oracle International Corporation Techniques for detecting inactive browser windows
US10325012B2 (en) 2011-04-26 2019-06-18 Oracle International Corporation Filtered stylesheets
US10726195B2 (en) 2011-04-26 2020-07-28 Oracle International Corporation Filtered stylesheets
US10359902B2 (en) 2011-10-19 2019-07-23 Oracle International Corporation Task flow interface in a popup region
US10691299B2 (en) 2014-09-25 2020-06-23 Oracle International Corporation Display of hierarchical datasets using high-water mark scrolling

Also Published As

Publication number Publication date
CN103348321B (zh) 2017-02-08
US9606703B2 (en) 2017-03-28
US8892635B2 (en) 2014-11-18
JP5837940B2 (ja) 2015-12-24
WO2012094339A1 (en) 2012-07-12
EP2661686A1 (en) 2013-11-13
US20150067547A1 (en) 2015-03-05
US20120179744A1 (en) 2012-07-12
CN103348321A (zh) 2013-10-09
EP2661686B1 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
JP5837940B2 (ja) 非アクティブのブラウザウィンドウを検出するための技術
JP6018080B2 (ja) 新しいブラウザウィンドウを検出するための技術
JP6423059B2 (ja) セキュリティプロトコルの動的選択
US11405363B2 (en) File upload control for client-side applications in proxy solutions
US9092287B2 (en) Product deployment system
AU2017265064B2 (en) Access to data on a remote device
US9813306B1 (en) Response rate limiting device
US20150205675A1 (en) Method and System for Improving Reliability of a Background Page
US9253244B1 (en) Subscription based polling for resource updates
US9197711B1 (en) Systems and methods for detecting the presence of web tracking
US10846149B1 (en) Event context service
JP2020035465A (ja) 三角アプローチを用いた仮想マシンインスタンス

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

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: 20151027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151106

R150 Certificate of patent or registration of utility model

Ref document number: 5837940

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250