KR101865432B1 - 메시지 큐 관리 - Google Patents

메시지 큐 관리 Download PDF

Info

Publication number
KR101865432B1
KR101865432B1 KR1020137006459A KR20137006459A KR101865432B1 KR 101865432 B1 KR101865432 B1 KR 101865432B1 KR 1020137006459 A KR1020137006459 A KR 1020137006459A KR 20137006459 A KR20137006459 A KR 20137006459A KR 101865432 B1 KR101865432 B1 KR 101865432B1
Authority
KR
South Korea
Prior art keywords
message queue
component
tab
unresponsive
components
Prior art date
Application number
KR1020137006459A
Other languages
English (en)
Other versions
KR20130107276A (ko
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 KR20130107276A publication Critical patent/KR20130107276A/ko
Application granted granted Critical
Publication of KR101865432B1 publication Critical patent/KR101865432B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

멀티-컴포넌트 애플리케이션이 응답 없음(non-responsive)이 될 가능성을 감소시키고 개별 컴포넌트가 응답 없음이 될 경우 개별 컴포넌트에 대한 복구 옵션이 가능하도록 설계된 메시지 큐 관리 기술이 다양한 실시예를 통해 제공된다. 적어도 일부 실시예에서, 메시지 큐 관리자는 애플리케이션 인터페이스의 컴포넌트가 응답 없음이 되는 것을 탐지하여 그 컴포넌트를 공유된 메시지 큐로부터 분리한다. 응답 없는 컴포넌트에 대한 메시징이 별개의 큐를 통해 관리되는 동안 공유된 메시지 큐는 다른 응답 가능한 컴포넌트에 대한 메시지의 처리를 계속할 수 있다. 메시지 큐 관리자는 또한 사용자에게 응답 없는 컴포넌트에 대해 통지하고 응답 없는 컴포넌트의 복구를 용이하게 하는 옵션을 사용자에게 제공할 수 있다. 게다가, 적어도 일부 실시예에서는, 메시지 큐 관리자는 분리된 컴포넌트를 모니터하고 분리된 컴포넌트가 다시 응답 가능(responsive)이 된 경우 이를 재결합시킬 수 있다.

Description

메시지 큐 관리{MESSAGE QUEUE MANAGEMENT}
탭 방식 웹 브라우저(tabbed web browser)와 같은 멀티-컴포넌트 애플리케이션들은 하나의 애플리케이션을 통해 동시에 복수의 리소스(예컨대, 문서, 웹페이지, 파일 등)와 상호작용할 수 있는 편리한 방법이기 때문에 사용자에게 인기가 있다. 전통적으로, 멀티-컴포넌트를 사용하는 애플리케이션들은 메시지 처리 및 복수 컴포넌트의 시퀀싱을 다루기 위해 공유된 입력 메시지 큐를 이용한다. 불행하게도, 전통적인 처리 방식 하에서는, 만약 하나의 컴포넌트가 응답 없음(non-responsive)이 되면, 그 컴포넌트는 공유된 큐로부터 메시지를 처리하는 것을 중단한다. 이러한 동작은 동일한 메시지 큐를 공유하는 다른 컴포넌트들에 대한 메시지의 손상(disruption)을 야기할 수 있다. 그러므로, 하나의 응답 없는 컴포넌트가 실질적으로 그 큐를 막아버리고 다른 컴포넌트들까지 응답 없음이 되게 할 수 있다.
본 요약부는 이하 발명의 상세한 설명에서 보다 자세히 기술될 선택된 개념들을 단순화된 형태로 소개하기 위해 제공된다. 본 요약부는 청구대상의 주요 특징 혹은 핵심적인 특징을 밝히기 위한 것이 아니며, 청구대상의 범위를 한정하기 위해 사용되는 것은 더더욱 아니다.
멀티-컴포넌트 애플리케이션이 응답 없음(예컨대, 잠김("locking-up"), 기능정지("hanging"), 충돌("crashing") 등)이 될 가능성을 감소시키고 개별 컴포넌트가 응답 없음이 될 경우 그들에 대한 복구 옵션이 가능하도록 설계된 메시지 큐 관리 기술이 다양한 실시예를 통해 제공된다. 적어도 일부 실시예에서, 메시지 큐 관리자는 애플리케이션의 컴포넌트가 응답 없음이 되는 경우를 탐지하여 그 컴포넌트를 공유된 메시지 큐로부터 분리하도록 구현될 수 있다. 응답 없는 컴포넌트에 대한 메시징이 별개의 큐를 통해 관리되는 동안 공유된 메시지 큐는 다른 응답 가능 컴포넌트에 대한 메시지의 처리를 계속할 수 있다. 메시지 큐 관리자는 또한 사용자에게 응답 없는 컴포넌트에 대해 통지하고 응답 없는 컴포넌트의 복구를 용이하게 하는 옵션을 사용자에게 제공할 수 있다. 게다가, 적어도 일부 실시예에서는, 메시지 큐 관리자는 분리된 컴포넌트를 모니터하고 분리된 컴포넌트가 다시 응답 가능(responsive)이 된 경우 이를 재결합시킬 수 있다.
동일한 부호는 도면 전체에서 동일한 요소를 나타내기 위해 사용된다.
도 1은 본 발명에 기술된 다양한 원리들이 하나 이상의 실시예에 의해 이용되는 작동 환경을 도시한다.
도 2는 하나 이상의 실시예에 의해 멀티-컴포넌트 애플리케이션에 대한 예시적인 메시지 큐 관리 기술의 표현을 도시한 것이다.
도 3은 하나 이상의 실시예에 의한 예시적인 웹 브라우저를 도시한 것이다.
도 4는 하나 이상의 실시예에 의한 방법의 단계들을 기술한 흐름도이다.
도 5는 하나 이상의 실시예를 구현하데 사용될 수 있는 예시적인 시스템을 도시한 것이다.
개관 ( Overview )
멀티-컴포넌트 애플리케이션이 응답 없음(예컨대, 잠김("locking-up"), 기능정지("hanging"), 충돌("crashing") 등)이 될 가능성을 감소시키고 개별 컴포넌트가 응답 없음이 될 경우 그들에 대한 복구 옵션이 가능하도록 설계된 메시지 큐 관리 기술이 다양한 실시예를 통해 제공된다. 브라우징 환경에서, 메시지 큐 관리자는 탭 방식 브라우저 사용자 인터페이스에 대한 탭을 관리하도록 구현될 수 있다. 적어도 일부 실시예에서, 메시지 큐 관리자는 애플리케이션의 컴포넌트(예컨대, 탭)가 응답 없음이 되는 경우를 탐지하여 그 컴포넌트를 공유된 메시지 큐로부터 분리하도록 구현될 수 있다. 응답 없는 컴포넌트에 대한 메시징이 별개의 큐를 통해 관리되는 동안 공유된 메시지 큐는 다른 응답 가능 컴포넌트에 대한 메시지의 처리를 계속할 수 있다. 메시지 큐 관리자는 또한 사용자에게 응답 없는 컴포넌트에 대해 통지하고 응답 없는 컴포넌트의 복구를 용이하게 하는 옵션을 사용자에게 제공할 수 있다. 게다가, 적어도 일부 실시예에서는, 메시지 큐 관리자는 분리된 컴포넌트를 모니터하고 분리된 컴포넌트가 다시 응답 가능(responsive)이 된 경우 이를 재결합시킬 수 있다.
이하의 논의에서, "동작 환경" 부분에서는 하나 이상의 실시예에서 이용될 수 있는 환경을 제공 및 기술한다. 이어서, "메시지 큐 관리" 부분에서는 하나 이상의 실시예에 의해 멀티-컴포넌트 애플리케이션에 대해 메시지 큐를 관리하는 예시적인 기술을 기술한다. 다음으로, "예시적인 웹 브라우저" 부분에서는 하나 이상의 실시예에 의한 탭 방식 웹 브라우저 인터페이스, 알림, 및 복구 옵션의 예들을 기술한다. 그리고 나서, "예시적인 방법" 부분은 예시적인 방법의 맥락에서 메시지 큐 관리와 연관된 예시적인 기술과 특징들을 기술한다. 마지막으로, "예시적인 시스템" 부분은 하나 이상의 실시예를 구현하는 데 이용될 수 있는 예시적인 시스템을 기술한다.
동작 환경 ( Operating Environment )
도 1은 하나 이상의 실시예에 의한 동작 환경을 도시한 것이다(100). 환경(100)은 하나 이상의 프로세서(104), 하나 이상의 컴퓨터-판독가능한 기록 매체(106) 및 컴퓨터-판독가능한 기록 매체에 존재하고 프로세서(들)에 의해 실행될 수 있는 하나 이상의 애플리케이션(108)을 가지는 컴퓨터 장치(102)를 포함한다. 컴퓨터-판독가능 기록 매체는 전형적으로 컴퓨터 장치와 연관되는 모든 형태의 휘발성 및 비휘발성 메모리 및/또는 기록 매체를 포함하나, 이는 예시적인 것으로서 여기에 한정되는 것은 아니다. 이러한 매체는 ROM, RAM, 플래시 메모리, 하드 디스크, 이동식 매체 등을 포함할 수 있다. 컴퓨터 장치의 구체적인 예가 도 5의 이하에서 보여지고 설명될 것이다.
게다가, 컴퓨터 장치(102)는 전술 및 후술된 것처럼 작동하는 메시지 큐 관리자(111)를 포함하거나 사용하는 웹 브라우저(110)의 형태로 소프트웨어 애플리케이션을 포함한다. 메시지 큐 관리자는 응답 없는 컴포넌트로 인한 충돌/정지로부터 복구 및 저항할 수 있도록 멀티-컴포넌트 애플리케이션의 컴포넌트들에 대한 관리를 제공하도록 구성될 수 있다. 탭 방식 브라우징 환경에서, 메시지 큐 관리자는 웹 브라우저(110)의 복수의 탭에 대한 하나 이상의 입력 메시지 큐를 다루도록 작동할 수 있다. 적어도 일부 실시예에서, 메시지 큐 관리자는 애플리케이션의 컴포넌트(예를들면 탭)가 응답 없음이 되는 것을 탐지하고 그 컴포넌트를 공유된 입력 메시지 큐로부터 분리할 수 있다. 그렇게 함으로써, 응답 없는 컴포넌트에 대한 메시지의 처리는 별개의 "분리된" 메시지 큐에서 다뤄질 수 있다. 이렇게 하면 공유된 큐가 애플리케이션의 다른 응답 가능한 컴포넌트들에 대한 메시지의 처리를 계속하게 하여 응답 가능한 컴포넌트 간의 상호작용이 계속될 수 있다. 메시지 큐 관리자는 또한 사용자에게 응답 없는 컴포넌트에 대해 통지하고 응답 없는 컴포넌트에 대한 복구를 용이하게 하는 옵션을 사용자에게 제공할 수 있다. 게다가, 적어도 일부 실시예에서는, 메시지 큐 관리자는 분리된 컴포넌트/탭을 모니터하고 분리된 컴포넌트가 다시 응답 가능해진 경우 이를 재결합할 수 있다.
다양한 예시들이 브라우징 환경 및 웹 브라우저 또는 다른 애플리케이션에 대한 탭의 맥락으로 기술된다. 그러나, 메시지 큐 관리자(111) 및 대응되는 기술들은 다양한 환경에서 복수의 컴포넌트를 사용하는 적절한 애플리케이션과 함께 이용될 수 있다. 메시지 큐 관리자는 이메일 애플리케이션, 데스크탐 생산성 애플리케이션, 게임 애플리케이션, 미디어 애플리케이션 및/또는 컴퓨터 장치(102)의 다른 적절한 애플리케이션을 포함하는 다양한 애플리케이션(108)에 대해 컴포넌트를 관리하도록 구현될 수 있으며, 이에 한정되지 않는다.
이에 더하여, 환경(100)은 전술 및 후술된 바와 같이 콘텐츠가 수신 및 송신될 수 있는 인터넷과 같은 네트워크(112) 및 하나 이상의 웹서버(114)를 포함한다. 이러한 콘텐츠는 웹 서버로부터 수신되는 웹 페이지를 포함한다.
컴퓨터 장치(102)는 적절한 컴퓨터 장치, 예컨대 데스크탑 컴퓨터, 포터블 컴퓨터, PDA와 같은 휴대용 컴퓨터, 셀룰러 폰 등으로 실시될 수 있으며, 이는 예시적인 것으로서 여기에 한정되는 것은 아니다.
예시적인 동작 환경을 기술하였으므로, 이제 메시지 큐 관리자(111)를 활용할 수 있는 몇가지 예시적인 실시예를 논의한다.
메시지 큐 관리자 ( Message Queue Management )
도 2는 하나 이상의 실시예에 의해 멀티-컴포넌트 애플리케이션의 메시지 큐 관리에 대한 예시적인 기술의 표현을 도시한다. 특히, 도 2는 메시지 큐 관리자(111)를 포함하거나 사용하는 도 1의 예시적인 컴퓨터 장치(102)와 같은 적절하게 구성된 컴퓨터 장치에 의해 수행될 수 있는 메시지 큐와 연관된 상이한 상태 간의 전환을 표현한다.
상태(200)에서, 복수의 컴포넌트 204(1) 내지 204(3)을 가지는 멀티-컴포넌트 애플리케이션(202)의 인스턴스는 처음에는 공유된 입력 메시지 큐(206)를 사용하도록 구성된다. 이 상태에서, 각각의 예시적인 컴포넌트 204(1) 내지 204(3)에 대한 메시지는 공유된 입력 메시지 큐(206)를 통해 시퀀스되고 다뤄진다.
본 명세서에서 사용된 것처럼, 멀티-컴포넌트 애플리케이션은 애플리케이션에 대한 인터페이스의 분리된 별개의 부분이나 "컴포넌트"를 통해 복수의 리소스(예컨대, 웹페이지, 문서, 파일, 스크립트, 미디어 콘텐츠 등)와의 사용자 상호작용을 가능케 하는 애플리케이션이다. 이런 맥락에서, 컴포넌트라는 용어는 멀티-컴포넌트 애플리케이션의 분리되어 탐색 및/또는 작동가능한 각각의 부분을 지칭하는 것일 수 있다. 컴포넌트는 부모 애플리케이션의 공통 메인 윈도우 또는 프레임에 포함된 별개의 서브-애플리케이션일 수 있다. 그러므로, 멀티-컴포넌트를 사용하는 인터페이스는 애플리케이션에 대한 단일 윈도우에 포함될 수 있다. 컴포넌트가 동일한 애플리케이션의 일부분일 수 있다는 점에서는 컴포넌트들이 반-독립적(semi-autonomous)인 것으로 여겨질 수 있으나, 하나의 컴포넌트를 통한 사용자 상호작용은 다른 컴포넌트를 통한 사용자 상호작용과 독립적일 수 있다. 각각의 컴포넌트들은 공통되는 디스플레이 부분을 통해 대체적으로 및/또는 사용자 인터페이스의 별개의 영역 각각에서 동시에 선택적으로 노출될 수 있다. 공유된 큐는 각각의 복수의 반-독립적 컴포넌트들을 동기화하고 조정하여 그들이 하나의 컴포넌트처럼 행동하게 하는데 이용될 수 있다.
본 명세서에서 기술된 메시지 큐 관리가 이용될 수 있는 멀티-컴포넌트 애플리케이션의 다양한 예들이 고려된다. 앞에서 언급하였듯이, 복수의 탭이 가능하도록 구성된 탭 방식 웹 브라우저가 멀티-컴포넌트 애플리케이션의 한 예이다. 텝들은 또한 워드 프로세싱 애플리케이션, 이메일 클라이언트, 또는 멀티미디어 애플리케이션과 같은 다른 맥락에서 사용될 수도 있다. 다른 예로는, 사무용 생산성 프로그램 모음 같은 애플리케이션이 다른 탭, 섹션, 열 또는 텍스트 문서, 웹 페이지, 스프레드쉬트, 그래프 등을 포함하는 복수의 리소스들과의 상호작용을 용이하게 하는 다른 컴포넌트를 가지도록 구성될 수 있다.
메시지 큐 관리자(111)(도 1)가 컴포넌트가 응답 없음을 탐지하면, 메시지 큐 관리자(111)는 응답 없는 컴포넌트가 공유된 입력 메시지 큐(206)로부터 분리되도록 대응할 수 있다. 예컨대, 어떤 이유로 컴포넌트(204(1))가 정지되거나 또는 응답이 없다고 가정하자. 메시지 큐 관리자(111)는 적절한 방법으로 컴포넌트(204(1))가 응답이 없음을 탐지할 수 있으며, 그 예는 이상 및 이하에서 논의된 바 있다. 탐지에 대응하여, 메시지 큐 관리자(111)는 공유된 입력 메시지 큐로부터 컴포넌트(204(1))를 분리하도록 작동할 수 있다.
특히, 응답 없는 컴포넌트(204(1))는 도 2의 분리된 상태(208)에 의해 표현된 것처럼 분리될 수 있다. 서술된 바와 같이, 분리된 메시지 큐(210)는 응답 없는 컴포넌트(204(1))와 연관될 수 있고 컴포넌트(204(1))에 대한 메시징을 관리하는데 이용될 수 있다. 컴포넌트(204(2))와 컴포넌트(204(3))는 공유된 입력 메시지 큐(206)를 계속 사용할 수 있다. 따라서, 응답 없는 컴포넌트에 대한 메시지는 분리된 메시지 큐(210)에 의해 다루어질 수 있다. 공유된 입력 메시지 큐(206)는 다른 응답 가능 컴포넌트에 대한 메시지의 처리를 계속할 수 있으므로 개개의 컴포넌트에 의해 야기된 문제 때문에 전체 애플리케이션이 응답 없는 상태가 되지 않는다. 적어도 일부 실시예에서, 메시지 큐 관리자(111)는 요구에 따라 분리된 메시지 큐(210)를 생성하고 그 큐를 한 컴포넌트 전용으로 할당하도록 구성될 수 있다. 이것은 컴포넌트가 응답 없음을 탐지하는 것에 응답하여 일어날 수 있다. 그러면 그 컴포넌트에 대한 메시지는 새로 생성된 큐로 이전될 수 있다. 이에 더하여 또는 이를 대신하여, 메시지 큐 관리자(111)는 필요에 따라 응답 없는 컴포넌트를 다루기 위한 미리 존재하는 분리된 메시지 큐를 사용하도록 구성될 수 있다. 미리 존재하는 분리된 메시지 큐는 컴포넌트가 응답 없음이 되거나 응답이 없게 된 경우 다른 컴포넌트들에 대하여 반복적으로 사용될 수 있다. 이런 경우에, 메시지 큐 관리자(111)는 각각의 사용 이전에 미리 존재하는 분리된 메시지 큐를 초기화하거나 및/또는 다음번 사용을 위한 큐를 준비하기 위해 각각의 사용 후에 큐를 비울 수 있다.
메시지 큐 관리자(111)가 분리되었던 컴포넌트에 대한 응답이 복원되었음을 탐지하면, 메시지 큐 관리자(111)는 응답 없는 컴포넌트를 공유된 입력 메시지 큐(206)에 재결합되도록 할 수 있다. 예를 들어, 컴포넌트(204(1))가 전술한 것처럼 일정 시간 동안 분리되어 있었고 다시 응답 가능이 되었다고 가정하자. 메시지 큐 관리자(111)는 그 예시가 전술 또는 후술되었던 적절한 방법으로 컴포넌트(204(1))가 다시 한번 응답 가능이 되었음을 탐지할 수 있다. 이 탐지에 응답하여, 메시지 큐 관리자(111)는 컴포넌트(204(1))을 재결합하도록 동작할 수 있다.
특히, 응답 없는 컴포넌트(204(1))는 도 2의 재결합된 상태(212)에 의해 표현된 것처럼 재결합될 수 있다. 묘사된 바와 같이, 별개의 컴포넌트 메시지 큐(21)는 종료되거나 제거된다. 재결합된 상태(212)에서, 컴포넌트(204(1))에 대한 메시징은 다시 한번 공유된 입력 메시지 큐(206)에 의해 다루어진다. 이것은 컴포넌트(204(1))에 대한 메시지를 공유된 입력 메시지 큐(206) 내의 컴포넌트(204(2)) 및 컴포넌트(204(3))에 대한 메시지와 통합시키는 것을 수반한다. 공유된 입력 메시지 큐로부터 컴포넌트를 분리 및 재결합하는데 이용될 수 있는 기술은 이하의 "예시적인 방법" 부분에서 더 자세히 설명된다.
메시지 큐 관리의 예시를 설명하였으므로, 이제 하나 이상의 실시예에 따라 메시지 큐 관리자(111)를 활용할 수 있는 예시적인 웹 브라우저에 대해 논의하겠다.
예시적인 웹 브라우저 ( Example Web Browser )
인터페이스 ( Interface )
도 3은 하나 이상의 실시예에 의한 예시적인 웹 브라우저(300)를 도시한 것이다. 묘사된 웹 브라우저는 복수의 컴포넌트(예컨대 탭) 및 컴포넌트 관리를 용이하게 하기 위한 메시지 큐 관리자(111)(도 1)를 사용할 수 있는 애플리케이션의 한 예시일 뿐이다. 웹 브라우저(300)는 뒤로 가기 및 앞으로 가기 버튼, 주소 바, 검색 바, 복수의 탭을 지원하는 탭 밴드(tap band)와 같은 전형적인 수단들을 포함하는 웹 브라우저 사용자 인터페이스(302)를 포함한다. 예를 들어, 복수의 탭이 도 3의 탭 밴드에 보여지고 있다. 탭들은 컴포넌트 (204(1)) 내지 (204(3))로 표시되어 있는데, 도 2와 관련하여 논의된 컴포넌트들이 예컨대 도 3의 예시적인 탭과 같은 탭에 대응될 수 있음을 나타내기 위한 것이다. 웹 브라우저 사용자 인터페이스는 또한 콘텐츠가 렌더링될 콘텐츠 렌더링 영역(304)(사선으로 표시되어 있음)을 포함한다. 게다가, 웹 브라우저 사용자 인터페이스(302)는 알림 바(306)를 포함한다. 하나 이상의 실시예에서, 알림 바는 제안의 형태로 알림을 제공하는 동안, 사용자들이 그들의 브라우징 활동에 초점을 유지하는 것을 돕도록 설계되어 있다. 알림 바를 통해 표현되는 알림은 메시지 큐 관리에 대한 다양한 기술들을 가능하게 하는 메시지 큐 관리자(111)의 동작을 통해 출력되거나 야기되는 응답 없는 탭과 관련된 알림을 포함할 수 있다.
적어도 일부 실시예에서, 알림 바는 비 모달형(non-modal)이며, 사용자의 집중을 방해하지 않도록 선택된 브라우징의 시야 범위 내의 위치에서 표현된다. 예컨대, 도시되고 설명된 실시예에서, 알림바는 웹 브라우저의 사용자 인터페이스의 바닥 또는 바닥 근처에 표현된다 - 여기서는 콘텐츠 렌더링 영역(304) 아래 또는 바닥에 인접해 있다. 알림 바는 눈에 잘 띄면서도 무시할 수 있도록 설계되며, 따라서 사용자로 하여금 모달 다이얼로그(modal dialog)에 의해 방해받지 않으면서 콘텐츠 렌더링 영역(304)에서의 그들의 브라우징 작업을 계속할 수 있도록 해준다. 게다가, 적어도 일부 실시예에서, 알림 바는 웹 브라우저에 의해 렌더링되는 콘텐츠에 오버레이(overlay)되는 방식으로 표현된다. 그러므로, 알림 바의 위치는 실질적으로 알림 바에 나타날 수 있는 특정한 알림보다 콘텐츠 렌더링 영역(304) 내에 렌더링 되는 콘텐츠를 효과적으로 우선화(prioritize)한다.
알림 ( Notification )
응답 없는 컴포넌트에 관한 알림은 적절한 방식으로 구성될 수 있다. 적절한 알림은 팝-업 다이얼로그 박스, 브라우저(300) 또는 다른 애플리케이션에 의해 렌더링되는 html 페이지, 탭 방식 사용자 인터페이스의 탭 경고, 알림 바(306)를 통해 표현되는 알림 및/또는 이들의 결합을 포함한다. 알림은 직접적으로 및/또는 알림을 통해 접속가능한 별개의 회복 다이얼로그를 통해 회복을 수행하기 위한 하나 이상의 사용자가 선택가능한 수단들을 포함하도록 구성될 수 있다. 회복 다이얼로그는 충돌에 관한 추가적인 정보 및/또는 다양한 사용가능한 회복 옵션을 제공하도록 구성될 수 있다.
예를 들어, 도 3의 알림 바(306)는 응답하지 않는 컴포넌트에 관한 예시적인 알림을 디스플레이하는 것으로 묘사되고 있다. 특히, 메시지 큐 관리자(111)는 예시적인 브라우저(300)의 탭이 응답 없음을 탐지하는 것에 응답하여 알림이 표시되도록 할 수 있다. 알림은 대응되는 탭을 가로질러 나타나도록 구성될 수 있다. 그러므로, 백그라운드에 있는 탭에 대응되는 알림은 사용자가 그 백그라운드 탭을 활성 탭으로 선택할 때까지 나타나지 않을 수 있다. 이런 처리방법은 사용자의 브라우징 또는 활성 탭과의 다른 상호작용을 방해하는 것을 제한할 수 있다.
도시된 예에서, 알림은 "탭이 응답하지 않습니다"라고 표시하는 정보 부분(308)을 포함한다. 정보 부분은 또한 충돌의 원인을 식별하기 위하여 페이지 이름, URL, 도메인 이름 및/또는 다른 응답 없는 컴포넌트와 연관된 식별자들을 식별할 수 있다. 예를 들어, 메시지 큐 관리자는 도메인 이름을 판단하기 위하여 웹 리소스에 대한 도메인 문자열을 파스(parse)하고 도메인 이름을 표시하기 위해 응답 없는 탭에 관한 알림, 예컨대 "Foo.com이 응답하지 않습니다"를 표시하는 알림을 구성할 수 있다. 또는, 알림은 또한 응답 없는 탭 또는 다른 컴포넌트의 복구에 대한 다양한 옵션을 제공하도록 구성된 하나 이상의 사용자가 선택가능한 수단, 예컨대 일반적으로 (310)에 보여지는 도시된 버튼들과 같은 수단을 포함할 수 있다. 예를 들어, 도 3의 예시적인 버튼은 선택될 경우 탭을 복구하는 알림을 통해 직접적인 동작을 수행하도록 구성된 "탭 복구" 버튼을 포함한다. 예시적인 동작으로는 페이지 다시 로딩하기, 탭과 연관되어 실행중인 스크립트를 중단하기, 브라우징 히스토리의 이전의 리소스 또는 URL로 롤 백하기 등을 포함한다. 이에 더하여 또는 이를 대신하여, "탭 복구" 버튼은 사용자가 이를 통해 응답 없는 탭에 관한 더 자세한 정보를 얻거나 및/또는 다양한 복구 옵션을 선택할 수 있는 다른 다이얼로그 또는 인터페이스를 표시할 수 있다. 예시적인 버튼은 사용자가 응답 없는 탭을 닫아버리도록 선택할 수 있는 "탭 닫기" 버튼을 더 포함한다.
복구 옵션 ( Recovery Options )
위에서 언급한 것처럼, 알림과 함께 포함된 사용자가 선택가능한 수단을 통해 및/또는 다양한 선택가능한 복구 옵션을 가진 복구 다이얼로그를 통해, 응답 없는 탭 또는 다른 컴포넌트를 복구하기 위한 다양한 옵션들이 이용가능하다. 복구 옵션은 메뉴 아이템 옵션, 툴바, 키보드 단축키, 버튼 등의 전형적인 수단을 통해 이용가능하다.
이제 응답 없는 탭이 탐지되었을 때 이용가능한 몇몇 예시적인 복구 옵션에 대해 더 자세히 고려한다. 탭을 닫는 옵션이 제공될 수 있다.그러므로, 사용자는 단순히 응답 없는 탭과의 상호작용을 중단할 것을 선택할 수 있다. 또한 탭을 복원하는 옵션이 제공될 수 있다. 복원 옵션의 선택은 웹 브라우저로 하여금 선택된 리소스(예컨대 페이지, 문서, 웹사이트 등)를 다시 로드하거나 및/또는 다시 탐색하도록 시도하게 할 것이다.
다른 옵션은 사용자가 응답 없는 컴포넌트와 연관된 리소스 간의 교체를 수행하도록 허용한다. 교체는 실질적으로 응답 없는 컴포넌트를 숨기거나 및/또는 제거하며 응답 없는 컴포넌트를 대체할 새로운 리소스를 가진 새로운 컴포넌트를 생성한다. 교체는 사용자에게는 보이지 않게 백그라운드에서 수행될 수 있다. 사용자의 관점에서는 이는 마치 새로운 리소스가 선택되어 컴포넌트를 통해 표현되는 것처럼 보일 것이다.
예를 들어, 자신이 선택될 경우, 응답 없는 탭을 다른 웹 페이지로 자동으로 이동하게 하는 버튼 또는 다른 수단이 제공될 수 있다. 다른 웹 페이지는 미리 정해진 기본 페이지 또는 홈페이지일 수 있다. 이에 더하여 또는 이를 대신하여, 사용자는 다양한 방법, 예컨대 즐겨찾기 리스트로부터 링크를 선택하는 것, 웹 브라우저의 주소 바에 새로운 주소를 타이핑하거나, "뒤로가기" 또는 "홈" 버튼과 같은 탐색 버튼을 선택하는 등에 의해 다른 리소스를 입력 또는 선택하는 것에 의해 교체를 개시할 수 있다. 응답 없는 탭에 대해 다른 리소스의 선택이 일어난 경우, 메시지 큐 관리자(111)는 이를 탐지하여 자동으로 응답 없는 탭을 숨기거나 제거하고, 새로 선택된 리소스에 연결되는 새로운 탭을 생성하고, 응답 없는 탭을 새로운 탭으로 매끄럽게 대체하는 교체를 개시할 수 있다.
게다가, 사용자에게 응답 없는 탭의 원인일 수 있는 스크립트의 실행을 중단할 수 있게 해주는 스크립트 복구 옵션이 제공될 수 있다. 예를 들어, 메시지 큐 관리자(111)가 응답 없는 탭을 탐지하면, 탭과 관련된 스크립트가 실행되었는지를 확인하기 위한 점검이 이루어질 수 있다. 만약 스크립트가 인식되면, 메시지 큐 관리자(111)는 이상 및 이하에서 기술된 대로 알림을 사용하여 사용자에게 이를 안내할 수 있다. 알림은 또한, 자신이 선택될 경우 스크립트의 실행을 중단시키는 버튼이나 다른 사용자 선택가능한 수단을 포함할 수 있다. 만약 스크립트가 탭을 응답 없는 상태로 만들었다면, 위에서 기술한 바와 같이 가능한 한 빨리 스크립트를 중단하는 것이 빠르게 탭을 응답 가능하게 복원하고 사용자의 브라우징의 방해를 제한할 수 있다.
또한 메시지 큐 관리자(111)로 하여금 사용자의 개입 없이 자동으로 복구를 수행하도록 허용하는 "자가-복구" 옵션이 구현될 수 있다는 것이 주목되어야 한다. 이 옵션 하에서는, 메시지 큐 관리자(111)는 응답 없는 컴포넌트가 다시 응답 가능해졌음을 판단할 수 있다. 이 판단은 사용자가 복구 버튼을 선택하는 것이나 복구 다이얼로그와의 상호작용과 같은 사용자의 행동과는 독립적으로 일어난다. 메시지 큐 관리자(111)가 응답이 복원되었다고 판단하면, 메시지 큐 관리자(111)는 자동으로 그 컴포넌트를 큐에 재결합하고, 도 3의 콘텐츠 렌더링 영역(304)과 같은 디스플레이 부분에 컴포넌트에 대응되는 데이터를 렌더링하고, 적절한 경우 대응되는 알림을 해제하도록 동작할 수 있다. "자가-복구" 처리 방법은 자주 발생하는, 자신들 스스로 복구되는 컴포넌트들에 대한 알림 및/또는 복구 옵션으로 사용자를 방해하는 것을 피하도록 구현될 수 있다.
하나 이상의 실시예에 의한 복수의 탭 및 알림 바를 사용하는 예시적인 웹 브라우저를 고려하였으므로, 이제 예시적인 방법의 맥락에서 기술되는 메시지 큐 관리에 관해 더 자세히 논의한다.
예시적인 방법 ( Example Method )
도 4는 하나 이상의 실시예에 의한 방법의 단계들을 기술하는 흐름도이다. 본 발명의 방법은 적절한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 결합과 관련되어 구현될 수 있다. 적어도 일부 실시예에서, 본 발명의 방법은 적절히 구성된 컴퓨터 장치, 예컨대 메시지 큐 관리자(111)를 포함하거나 사용하는 도 1의 예시적인 컴퓨터 장치(102)의 형태로 구현될 수 있다.
초기 상태에서, 멀티-컴포넌트 애플리케이션, 예컨대 탭 방식 웹 브라우저는 각각의 컴포넌트에 대한 메시지를 다루기 위한 공유된 입력 메시지 큐를 사용할 수 있음을 상기해보자. 특정한 예에서, 웹 브라우저는 독립적으로 동작하고 웹 서버로부터 서로 다른 리소스들에 접속하는데 이용될 수 있는 복수의 탭을 가질 수 있다. 그러므로, 각각의 탭은 다른 리소스 혹은 URL을 포인팅하고 대응되는 콘텐츠를 표현할 수 있다. 초기 상태에는, 웹 브라우저는 각각의 탭을 관리하기 위해 공유된 입력 메시지 큐를 사용하도록 구성될 수 있다. 예를 들어, 각각의 새로운 탭은 기본적으로 공유된 큐에 할당될 수 있다.
메시지 큐 관리자(111)는 탭들이 응답 가능하게 남아있는지를 확인하도록 탭들을 모니터하도록 구현될 수 있다. 특히, 단계(400)는 애플리케이션, 예컨대 예시적인 웹 브라우저의 탭들의 응답을 모니터한다. 모니터링에 기초하여, 단계(402)는 탭들이 응답이 없는지를 판단한다.
탭의 모니터링은 적절한 방법으로 할 수 있다. 탭을 모니터링하는 한가지 방법은 주기적인 "심장박동(heartbeat)" 메시지를 탭에 보내는 것이다. 다시 말해서, 메시지 큐 관리자(111)는 각각의 탭을 심장박동 메시지를 통해 조사하도록 구성될 수 있다. 심작박동 메시지는 탭들로 하여금 응답 메시지를 보내도록 하는 기본적인 요청 메시지일 수 있다. 그러므로, 메시지 큐 관리자(111)는 탭들이 응답 메시지를 보내는지 여부를 모니터할 수 있다. 응답이 가능한 탭은 메시지에 응답할 것이고 메시지 큐 관리자(111)는 그 탭이 응답 가능하다고 결론내릴 것이다. 그러나 만약 탭이 심장박동 메시지에 대해 응답하는데 실패할 경우, 메시지 큐 관리자(111)는 그 탭이 응답 없음이라고 결론내릴 것이다.
모니터링하는 다른 예시적인 기술으로서, 리소스들이 자신들이 응답 가능함을 메시지 큐 관리자(111)에게 통지하기 위하여 메시지 큐 관리자(111)에게 메시지를 푸쉬하도록 구성될 수 있다. 이 방법은 적절하지만, 푸쉬된 메시지를 가능하게 하는 코드로 리소스를 재구성하는 것을 수반한다. 따라서, 비록 두 방법 모두 가능한 처리 방식이지만, 기술된 바와 같이 탭들을 조사하기 위해 심장박동 메시지를 사용하는 것이 메시지를 푸쉬하는 처리 방식보다 좀 더 효과적이고 저비용이며 덜 복잡할 수 있다. 만약 단계(402)에서 어떤 탭도 응답 없는 것으로 탐지되지 않을 경우, 단계(400)의 모니터링이 계속 수행될 수 있다. 비록 그림에는 명시적으로 묘사되지 않았으나, 단계(400)의 모니터링은 응답 없는 탭이 존재하는 경우에도 계속된다는 것을 이해하여야 한다.
응답 없는 탭이 탐지될 경우, 단계(404)는 그 탭을 분리할 수 있다. 특히, 응답 없는 탭은 웹 브라우저나 다른 애플리케이션에 의해 사용되는 공유된 입력 메시지 큐로부터 분리될 수 있다. 분리를 수행하기 위해, 단계(406)이 분리된 큐(detached queue)를 개시한다. 예컨대, 메시지 큐 관리자(111)는 응답 없는 탭에 대한 메시지를 관리하기 위해 적절한 방법으로 큐를 생성하거나 또는 획득할 수 있다. 이것은 요구에 따라 새 큐를 생성하거나 및/또는 응답 없는 탭에 의해 사용될 미리 존재하는 큐를 준비하는 것을 수반한다. 초기화는 큐와 응답 없는 탭 간의 연관을 만들어낸다.
일단 적합한 분리된 큐가 개시되면, 단계(408)는 탭에 대한 메시지를 공유된 큐로부터 분리된 큐로 이전한다. 이것은 큐 간에 메시지를 이동하고 메시지들의 순서가 정확한지를 확인하는 것을 포함한다. 예를 들어, 메시지는 입력 큐에서 메시지의 순서를 정하는데 사용되는 타임스탬프 및/또는 우선순위와 같은 순서 정보와 연관될 수 있다. 메시지는 또한 메시지를 적절한 탭으로 향하게 하는데 사용될 수 있는 메시지 번호, 소스 이름 및/또는 프로세스 ID와 같은 타겟팅 정보를 포함할 수 있다.
특정한 응답 없는 탭과 연관된 메시지의 이전을 수행하기 위해, 메시지 큐 관리자(111)는 분리된 큐로 옮겨져야 할 메시지를 식별하고 선택하기 위해 타겟팅 정보를 조사할 수 있다. 옮겨지는 메시지와 연관된 순서 정보는 메시지 순서를 유지하고 및/또는 적절한 경우 분리된 큐의 메시지를 재정렬하는데 이용될 수 있다. 이제 탭은 분리된 것으로 여겨질 수 있으며 분리된 탭에 대한 메시지 처리는 분리된 큐를 사용하여 수행될 수 있다. 동시에, 공유된 입력 메시지 큐는 다른 "응답하는" 탭에 대한 메시지를 다루는데 계속 사용될 수 있다. 공유된 입력 메시지에 유지되는 메시지들은 또한 순서 정보를 사용하여 적절하게 재정렬될 수 있다.
일단 탭이 분리되면, 단계(410)는 분리된 탭을 모니터링한다. 모니터링에 기초하여, 단계(412)는 분리된 탭이 다시 응답하게 되는 것을 판단한다. 분리된 탭을 모니터링하기 위해 적절한 메커니즘이 이용될 수 있다. 예를 들어, 분리된 탭에 대한 모니터링은 위에서 기술된 것처럼 공유된 큐에 대한 탭들을 모니터링하는 것과 어느 정도 유사한 방법으로 일어날 수 있다. 적어도 일부 실시예에서, 메시지 큐 관리자(111)는 심장박동 메시지를 분리된 탭에 보내고 분리된 탭이 심장박동 메시지에 기초하여 응답하는지 여부를 판단하도록 동작할 수 있다.
분리된 탭이 다시 연결 가능해지면, 단계(414)가 탭을 재결합한다. 예를 들어, 만약 메시지 큐 관리자(111)가 분리된 탭으로부터 심장박동 메시지 응답을 수신하거나 또는 탭이 응답 가능하다고 판단되면, 메시지 큐 관리자(111)는 탭을 공유된 큐에 재결합시킬 수 있다. 재결합을 수행하기 위해, 단계(416)는 분리된 큐의 탭에 대한 메시지를 공유된 큐로 통합시킨다. 예를 들어, 메시지 큐 관리자(111)는 메시지를 분리된 큐로부터 공유된 큐의 메시지와 적절한 순서로 공유된 큐에 이동할 수 있다. 전에 언급된 순서 정보는 메시지들을 결합하는데 이용되어 메시지가 정확한 순서가 되도록 할 수 있다. 예를 들어, 메시지와 연관된 타임 스탬프 및/또는 우선순위가 메시지가 공유된 큐로 병합될 때 메시지를 재정렬하는데 사용될 수 있다.
일단 단계(416)에서 메시지가 통합되면, 단계(418)는 분리된 큐를 비운다. 이 단계는 만약 메시지 큐 관리자(111)가 큐를 반복적으로 사용하도록 구성된 경우 다른 응답 없는 탭에 사용하기 위해 큐를 준비하기 위해 수행될 수 있다. 메시지 큐 관리자(111)가 요구에 따라 응답 없는 탭에 대한 큐를 생성하는 실시예에서, 이 단계는 분리된 큐를 닫거나, 지우거나 또는 폐쇄하는 것을 수반할 수 있다. 그러면 다른 분리된 큐가 다른 응답하지 않는 탭에 사용하기 위해 적절하게 요구에 따라 생성될 수 있다.
탭은 이제 공유된 큐에 재결합된 것으로 여겨지며 재결합된 탭에 대한 메시지 처리는 다른 탭들과 마찬가지로 다시 공유된 큐를 통해 다루어진다.
하나 이상의 실시예에 의해 예시적인 방법을 기술하였으므로, 이제 하나 이상의 실시예에 의해 메시지 큐 관리에 대한 다양한 기술들을 구현하도록 이용될 수 있는 예시적인 시스템을 고려한다.
예시적인 시스템 ( Example System )
도 5는 위에서 설명된 다양한 실시예들을 구현하는데 사용될 수 있는 예시적인 컴퓨터 장치(500)를 도시한다. 컴퓨터 장치(500)는 예컨대 도 1의 컴퓨터 장치(102)나 웹 서버(114)일 수 있다.
컴퓨터 장치(500)는 하나 이상의 프로세서나 프로세싱 유닛(502), 하나 이상의 메모리 및/또는 기록 컴포넌트(504), 하나 이상의 입력/출력 컴포넌트(506) 및 다양한 컴포넌트 및 장치들이 서로 간에 통신할 수 있게 해주는 버스(508)를 포함한다. 버스(508)는 여러 가지의 버스 구조 중 하나 이상을 나타내며, 메모리 버스, 메모리 컨트롤러, 주변 장치 버스(peripheral bus), 가속 그래픽 포트(accelerated graphics port) 및 다양한 버스 아키텍쳐를 사용하는 프로세서 또는 로컬 버스를 포함한다. 버스(508)는 무선 또는 유선 버스를 포함한다.
메모리/기록 컴포넌트(504)는 하나 이상의 컴퓨터 기록 매체를 나타낸다. 컴포넌트(504)는 휘발성 매체(예컨대 RAM(Random Access Memory)) 및/또는 비휘발성 매체(예컨대 ROM(Read Only Memory), 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 컴포넌트(504)는 고정 매체(예컨대 RAM, ROM, 고정식 하드 디스크 등) 뿐만 아니라 이동식 매체(예컨대 플래시 메모리 드라이브, 이동식 하드 디스크, 광학 디스크 등)를 포함할 수 있다.
하나 이상의 입력/출력 장치(506)는 사용자로 하여금 컴퓨터 장치(500)에 명령어나 정보를 입력하도록 하거나, 또는 정보가 사용자 및/또는 다른 컴포넌트나 장치에 주어지도록 해준다. 입력 장치의 예로는 키보드, 커서 제어 장치(예컨대 마우스), 마이크로폰, 스캐너 등이 포함된다. 출력 장치의 예로는 디스플레이 장치(예컨대, 모니터나 프로젝터), 스피커, 프린터, 네트워크 카드 등이 포함된다.
본 명세서에서 기술된 다양한 기술들은 소프트웨어나 프로그램 모듈의 일반적인 맥락에서 기술될 수 있다. 일반적으로, 소프트웨어는 특정한 작업을 수행하거나 특정한 추상 데이터 형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 이 모듈들의 구현과 테크닉은 컴퓨터로 판독가능한 매체의 일정한 형태로 기록되거나 또는 전송될 수 있다. 컴퓨터로 판독가능한 매체는 컴퓨터 장치에 의해 접근가능한 어떠한 사용가능한 매체나 미디어가 될 수 있다. 예를 들어, 컴퓨터로 판독가능한 미디어는 "컴퓨터-판독가능 기록 매체"를 포함하나, 이에 한정되지 않는다.
"컴퓨터-판독가능 기록 매체"는 컴퓨터로 판독가능한 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보 기록을 위한 방법이나 기술을 구현하는 휘발성 및 비휘발성, 이동식 및 고정식 미디어를 포함한다. 컴퓨터-판독가능 기록 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disks, DVD) 또는 다른 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터에 의해 접근가능한 매체를 포함하지만 이에 한정되지는 않는다.
결론 ( Conclusion )
멀티-컴포넌트 애플리케이션이 응답 없음(예컨대, 잠김("locking-up"), 기능정지("hanging"), 충돌("crashing") 등)이 될 가능성을 감소시키고 개별 컴포넌트가 응답 없음이 될 경우 그들에 대한 복구 옵션이 가능하도록 설계된 메시지 큐 관리에 대한 기술이 다양한 실시예를 통해 제공된다. 적어도 일부 실시예에서, 메시지 큐 관리자는 애플리케이션의 컴포넌트가 응답 없음이 될 경우를 탐지하여 그 컴포넌트를 공유된 메시지 큐로부터 분리하도록 구현될 수 있다. 응답 없는 컴포넌트에 대한 메시징이 별개의 큐를 통해 관리되는 동안 공유된 메시지 큐는 다른 응답 가능 컴포넌트에 대한 메시지의 처리를 계속할 수 있다. 메시지 큐 관리자는 또한 사용자에게 응답 없는 컴포넌트에 대해 통지하고 응답 없는 컴포넌트의 복구를 용이하게 하는 옵션을 사용자에게 제공할 수 있다. 게다가, 적어도 일부 실시예에서는, 메시지 큐 관리자는 분리된 컴포넌트를 모니터하고 분리된 컴포넌트가 다시 응답 가능(responsive)이 된 경우 이를 재결합시킬 수 있다.
비록 본 발명이 구조적 특징 및/도는 방법적인 동작에 특유한 표현을 이용하여 기술되었지만, 첨부된 특허청구범위에서 정의된 청구발명은 전술한 구체적인 특징이나 동작으로 한정되지 않는 것으로 이해되어야 한다. 오히려, 전술한 구체적인 특징 및 동작은 특허청구범위를 구현하는 예시적인 형태로서 공개된 것이다.

Claims (21)

  1. 컴퓨팅 장치에 의해 실행되는 경우, 상기 컴퓨팅 장치로 하여금 메시지 큐 관리자를 구현하게 하는 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 하드웨어 저장 매체로서,
    상기 메시지 큐 관리자는,
    상기 컴퓨팅 장치상에서 애플리케이션의 복수의 컴포넌트에 대한 메시지들을 처리하기 위한 공유된 입력 메시지 큐를 관리하는 동작과,
    상기 컴퓨팅 장치상에서 상기 복수의 컴포넌트 중 응답이 없는 컴포넌트를 탐지하는 동작과,
    상기 탐지에 응답하여, 상기 응답이 없는 컴포넌트를 상기 공유된 입력 메시지 큐로부터 분리하는(detaching) 동작과,
    분리된 메시지 큐를 개시하는 동작과,
    상기 응답이 없는 컴포넌트에 의해서만 사용되도록 상기 분리된 메시지 큐를 할당하는 동작- 상기 분리된 메시지 큐는 상기 응답이 없는 컴포넌트에 대한 메시징을 관리하는데 이용됨 -
    을 수행하도록 구성된
    컴퓨터 판독가능 하드웨어 저장 매체.
  2. 제 1 항에 있어서,
    상기 애플리케이션은 웹브라우저를 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  3. 제 1 항에 있어서,
    상기 복수의 컴포넌트는 상기 애플리케이션의 탭 방식 인터페이스(tabbed interface)의 복수의 탭을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  4. 제 1 항에 있어서,
    상기 애플리케이션은 웹 브라우저를 포함하고 상기 복수의 컴포넌트는 상기 웹 브라우저의 탭 방식 인터페이스의 복수의 탭을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  5. 제 1 항에 있어서,
    상기 응답이 없는 컴포넌트를 탐지하는 동작은,
    상기 복수의 컴포넌트의 응답 여부를 모니터하기 위해 상기 복수의 컴포넌트 각각에 주기적으로 메시지를 송신하는 동작과,
    상기 응답이 없는 컴포넌트가 상기 메시지에 응답하는 것에 실패하였음을 판정하는 동작
    을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  6. 제 1 항에 있어서,
    상기 메시지 큐 관리자는,
    상기 응답이 없는 컴포넌트에 관하여 사용자에게 통지하기 위한 알림을 출력하는 동작- 상기 알림은 비 모달형(non modal)이며, 상기 애플리케이션에 의해 콘텐츠 렌더링 영역에 렌더링되는 콘텐츠에 오버레이되는 알림 바(notification bar)를 통해 출력됨 -을 더 수행하도록 구성된
    컴퓨터 판독가능 하드웨어 저장 매체.
  7. 제 6 항에 있어서,
    상기 알림은 상기 응답이 없는 컴포넌트를 복구하기 위한 복구 옵션들이 가능하도록 구성된 하나 이상의 사용자 선택가능 수단(user selectable instrumentalities)을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  8. 제 1 항에 있어서,
    상기 복수의 컴포넌트는 상기 애플리케이션의 공통 프레임 내에 포함되는 개별적으로 동작가능한 서브-애플리케이션들을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
  9. 제 1 항에 있어서,
    상기 메시지 큐 관리자는,
    상기 컴포넌트가 응답이 없는 동안, 상기 응답이 없는 컴포넌트에 대한 새로운 메시지를 상기 분리된 메시지 큐로 이전하는 동작을 더 수행하도록 구성된
    컴퓨터 판독가능 하드웨어 저장 매체.
  10. 제 1 항에 있어서,
    상기 메시지 큐 관리자는,
    응답이 없는 것으로 탐지된 상기 컴포넌트가 다시 응답 가능하게 되었다고 판정하는 동작과,
    상기 판정에 응답하여, 상기 컴포넌트를 상기 공유된 입력 메시지 큐에 재결합하는(reattaching) 동작
    을 더 수행하도록 구성된
    컴퓨터 판독가능 하드웨어 저장 매체.
  11. 제 10 항에 있어서,
    상기 컴포넌트를 재결합하는 동작은
    분리된 메시지 큐로부터 상기 공유된 입력 메시지 큐로 상기 컴포넌트에 대한 메시지들을 통합하는 동작과,
    상기 분리된 메시지 큐를 비우는 동작
    을 포함하는,
    컴퓨터 판독가능 하드웨어 저장 매체.
  12. 컴퓨터에 의하여 구현되는 방법으로서,
    단일 컴퓨팅 장치에 의해, 탭 방식 애플리케이션의 복수의 탭에 대한 응답 여부를 모니터하기 위해 상기 복수의 탭에 주기적으로 메시지를 송신하는 단계- 상기 복수의 탭은 메시지를 다루기 위한 공유된 입력 메시지 큐를 사용하도록 구성됨 -와,
    상기 단일 컴퓨팅 장치에 의해, 상기 메시지에 기초하여 상기 복수의 탭 중 응답이 없는 탭을 탐지하는 단계와,
    상기 단일 컴퓨팅 장치에 의해, 상기 공유된 입력 메시지 큐로부터 상기 탭에 대한 메시지들을 분리된 메시지 큐로 이전(migrate)시킴으로써, 상기 공유된 입력 메시지 큐로부터 상기 응답이 없는 탭을 분리하는 단계와,
    상기 단일 컴퓨팅 장치에 의해, 응답이 없는 것으로 탐지된 상기 탭이 다시 응답 가능하게 되었다고 판정하는 단계와,
    상기 단일 컴퓨팅 장치에 의해, 상기 분리된 메시지 큐로부터 상기 공유된 입력 메시지 큐로 상기 탭에 대한 메시지들을 통합함으로써 상기 탭을 상기 공유된 입력 메시지 큐에 재결합하는 단계- 상기 재결합하는 단계는 네트워크 활동을 요구하지 않고 수행됨 -
    를 포함하는 방법.
  13. 제 12 항에 있어서,
    상기 응답이 없는 탭에 관하여 사용자에게 안내하기 위한 알림을 출력하는 단계와,
    상기 알림에 포함된 하나 이상의 사용자 선택가능 수단을 통해 복구 옵션들에 대한 액세스를 제공하는 단계- 상기 복구 옵션들은 상기 알림에 포함된 상기 하나 이상의 사용자 선택가능 수단이 선택된 것에 응답하여 출력됨 -
    를 더 포함하는 방법.
  14. 제 13 항에 있어서,
    상기 복구 옵션들은 상기 응답이 없는 탭을 통해 액세스된 리소스를 다른 리소스로 교체하는 옵션을 포함하는 방법.
  15. 제 13 항에 있어서,
    상기 복구 옵션들은 상기 응답이 없는 탭에 연관된 스크립트의 실행이 상기 응답이 없는 탭의 원인으로 식별된 경우 상기 스크립트의 실행을 중단하는 옵션을 포함하는 방법.
  16. 제 12 항에 있어서,
    상기 애플리케이션은 웹 브라우저를 포함하는 방법.
  17. 제 12 항에 있어서,
    상기 공유된 입력 메시지 큐와 상기 분리된 메시지 큐 사이에서 메시지들을 이전하는 것 및 통합하는 것은 상기 메시지들과 연관된 순차 정보에 따라 상기 메시지들을 순서화하는 것을 포함하는
    방법.
  18. 시스템으로서,
    하나 이상의 처리 장치와,
    컴퓨터 판독가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체
    를 포함하되,
    상기 컴퓨터 판독가능 명령어들은 상기 하나 이상의 처리 장치에 의해 실행되는 경우 웹 브라우저와 연계하여 사용되도록 설계된 메시지 큐 관리자를 구현하고,
    상기 메시지 큐 관리자는,
    상기 웹 브라우저의 복수의 탭에 대한 메시지들을 처리하기 위한 공유된 입력 메시지 큐를 관리하는 동작과,
    상기 복수의 탭에 주기적으로 메시지를 송신함으로써 상기 웹 브라우저의 상기 복수의 탭의 응답 여부를 모니터하는 동작과,
    상기 복수의 탭 중 상기 메시지에 응답하는 것에 실패한 탭을 응답이 없는 탭인 것으로 탐지하는 동작과,
    상기 응답이 없는 탭에 대한 메시지를 다루기 위해, 상기 웹 브라우저를 포함하는 상기 하나 이상의 처리 장치 중 적어도 하나 상에 분리된 메시지 큐를 생성하고,
    상기 공유된 입력 메시지 큐로부터 상기 분리된 메시지 큐로 상기 탭에 대한 메시지들을 이전
    함으로써 상기 웹 브라우저의 상기 응답이 없는 탭을 상기 공유된 입력 메시지 큐로부터 분리하는 동작
    을 수행하도록 구성된
    시스템.
  19. 제 18 항에 있어서,
    상기 메시지 큐 관리자는 상기 응답이 없는 탭을 복구하기 위해 상기 웹 브라우저를 통해 노출되는 하나 이상의 사용자 선택가능 수단을 통해 복구 옵션들에 대한 액세스를 제공하는 동작을 더 수행하도록 구성되고,
    상기 복구 옵션들은 적어도
    상기 응답이 없는 탭을 통해 액세스된 리소스를 다른 리소스로 교체하는 옵션과,
    상기 응답이 없는 탭에 연관된 스크립트의 실행이 상기 응답이 없는 탭의 원인으로 식별된 경우 상기 스크립트의 실행을 중단하는 옵션
    을 포함하는 시스템.
  20. 제 18 항에 있어서,
    상기 메시지 큐 관리자는,
    응답이 없는 것으로 탐지된 상기 탭이 다시 응답 가능하게 되었다고 판정하는 동작과,
    상기 분리된 메시지 큐로부터 상기 공유된 입력 메시지 큐로 상기 탭에 대한 메시지들을 통합하고,
    상기 분리된 메시지 큐를 삭제
    함으로써 상기 탭을 상기 공유된 입력 메시지 큐에 재결합하는 동작
    을 더 수행하도록 구성된
    시스템.
  21. 제 6 항에 있어서,
    상기 알림은 상기 응답이 없는 컴포넌트와 연관된 페이지 이름, URL(uniform resource locator), 도메인 이름 또는 식별자를 포함하는 정보 부분을 포함하는
    컴퓨터 판독가능 하드웨어 저장 매체.
KR1020137006459A 2010-09-14 2011-09-06 메시지 큐 관리 KR101865432B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/882,000 2010-09-14
US12/882,000 US8667505B2 (en) 2010-09-14 2010-09-14 Message queue management
PCT/US2011/050470 WO2012036932A2 (en) 2010-09-14 2011-09-06 Message queue management

Publications (2)

Publication Number Publication Date
KR20130107276A KR20130107276A (ko) 2013-10-01
KR101865432B1 true KR101865432B1 (ko) 2018-06-07

Family

ID=45760777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137006459A KR101865432B1 (ko) 2010-09-14 2011-09-06 메시지 큐 관리

Country Status (8)

Country Link
US (1) US8667505B2 (ko)
EP (1) EP2616930B1 (ko)
JP (1) JP5902173B2 (ko)
KR (1) KR101865432B1 (ko)
CN (1) CN102368212B (ko)
ES (1) ES2605415T3 (ko)
TW (1) TWI540513B (ko)
WO (1) WO2012036932A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996403B2 (en) 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment
CN103019866B (zh) * 2012-10-24 2017-02-08 北京京东世纪贸易有限公司 基于消息队列的分布式方法和系统
CN103118138B (zh) * 2013-03-04 2016-02-10 中国信息安全测评中心 一种基于云服务的消息队列流处理方法
WO2015116075A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Copy message from application buffer to send buffer within kernel
US10609155B2 (en) * 2015-02-20 2020-03-31 International Business Machines Corporation Scalable self-healing architecture for client-server operations in transient connectivity conditions
US9853933B2 (en) 2015-08-13 2017-12-26 60East Technologies, Inc. Message queue replication with message ownership migration
US10230678B2 (en) * 2015-08-20 2019-03-12 International Business Machines Corporation Storing messages of a message queue
US10270671B2 (en) 2015-09-22 2019-04-23 Microsoft Technology Licensing, Llc External process user interface isolation and monitoring
US10169116B2 (en) 2015-10-21 2019-01-01 International Business Machines Corporation Implementing temporary message queues using a shared medium
US10218656B2 (en) 2016-03-08 2019-02-26 International Business Machines Corporation Smart message delivery based on transaction processing status
CN109564560A (zh) * 2016-06-01 2019-04-02 北京易掌云峰科技有限公司 基于队列的消息同步
KR20180079584A (ko) * 2016-12-30 2018-07-11 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
CN106933589B (zh) * 2017-03-13 2020-07-28 车智互联(北京)科技有限公司 一种基于配置的消息队列组件及其集成的方法
TWI658369B (zh) * 2017-10-13 2019-05-01 遊戲橘子數位科技股份有限公司 保證訊息通知及回覆之方法
CN109542643B (zh) * 2018-11-16 2021-04-30 北京金山云网络技术有限公司 一种OpenStack系统中消息的恢复方法及装置
US11036365B2 (en) * 2019-06-07 2021-06-15 Microsoft Technology Licensing, Llc Hang condition mitigation for browser applications
CN115344168A (zh) * 2021-05-13 2022-11-15 荣耀终端有限公司 消息展示方法、终端及计算机可读存储介质
KR102639786B1 (ko) 2021-11-22 2024-02-22 주식회사 이글루코퍼레이션 메시지큐를 이용한 무중단 로그 전송 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278726A1 (en) * 2000-12-18 2005-12-15 Cano Charles E Storing state in a dynamic content routing network
US20060218238A1 (en) * 2005-03-28 2006-09-28 Microsoft Corporation Failed message error recovery using application specific error queues
US20060230321A1 (en) * 2005-03-29 2006-10-12 Microsoft Corporation User interface panel for hung applications
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US20090287824A1 (en) * 2008-05-13 2009-11-19 Google Inc. Multi-process browser architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202566A (ja) * 1995-01-24 1996-08-09 Nissin Electric Co Ltd プロセス間通信システム
JP4205843B2 (ja) * 2000-09-22 2009-01-07 株式会社日立製作所 ネットワーク接続装置の制御方法
US20050149952A1 (en) 2003-04-11 2005-07-07 Microsoft Corporation Persisting state across navigations in a navigation-based application and responding to navigation-related events throughout an application
US7440997B2 (en) 2003-06-13 2008-10-21 Microsoft Corporation Mechanism for supporting browser navigation while preserving important application return states
US7283993B2 (en) * 2004-04-29 2007-10-16 International Business Machines Corporation Methods, systems, and media for handling errors in script files
US8261286B1 (en) * 2008-06-18 2012-09-04 Amazon Technologies, Inc. Fast sequential message store
US8443379B2 (en) * 2008-06-18 2013-05-14 Microsoft Corporation Peek and lock using queue partitioning
US7934129B2 (en) 2008-09-05 2011-04-26 Microsoft Corporation Network hang recovery
JP5272595B2 (ja) * 2008-09-05 2013-08-28 沖電気工業株式会社 表示制御装置、表示制御システム、表示制御方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050278726A1 (en) * 2000-12-18 2005-12-15 Cano Charles E Storing state in a dynamic content routing network
US20060218238A1 (en) * 2005-03-28 2006-09-28 Microsoft Corporation Failed message error recovery using application specific error queues
US20060230321A1 (en) * 2005-03-29 2006-10-12 Microsoft Corporation User interface panel for hung applications
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US20090287824A1 (en) * 2008-05-13 2009-11-19 Google Inc. Multi-process browser architecture

Also Published As

Publication number Publication date
EP2616930A2 (en) 2013-07-24
CN102368212A (zh) 2012-03-07
TWI540513B (zh) 2016-07-01
CN102368212B (zh) 2015-08-12
ES2605415T3 (es) 2017-03-14
US8667505B2 (en) 2014-03-04
EP2616930B1 (en) 2016-08-24
WO2012036932A2 (en) 2012-03-22
US20120066616A1 (en) 2012-03-15
JP5902173B2 (ja) 2016-04-13
KR20130107276A (ko) 2013-10-01
TW201224935A (en) 2012-06-16
EP2616930A4 (en) 2014-05-14
WO2012036932A3 (en) 2012-07-19
JP2013541091A (ja) 2013-11-07

Similar Documents

Publication Publication Date Title
KR101865432B1 (ko) 메시지 큐 관리
EP2919496B1 (en) Method for realizing downloading of mobile terminal application program and mobile terminal
US8671384B2 (en) Web application pinning including task bar pinning
EP2580683B1 (en) Creating and launching a web application with credentials
US9367636B2 (en) Web application home button
EP2580679B1 (en) Web application transitioning and transient web applications
EP2580684B1 (en) Creating task sessions
US9195519B2 (en) Disabling the self-referential appearance of a mobile application in an intent via a background registration
US20140289724A1 (en) Dynamic Web Application Notifications Including Task Bar Overlays
US20110307810A1 (en) List integration
US20110307794A1 (en) Web application navigation domains
US7934129B2 (en) Network hang recovery
CN106959879B (zh) 一种控制方法及电子设备
US10541854B2 (en) Component loading based on user interactions
CN110574006B (zh) 用于自动同步设备上响应与条件的系统和方法
JP2016218541A (ja) 情報処理装置およびプログラム
US11704014B1 (en) Supporting micro swipes for generating custom user interface responses
JP2007272771A (ja) 情報選択装置、復元装置及び情報選択処理方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal