KR20060088474A - 액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기위한 메커니즘 - Google Patents

액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기위한 메커니즘 Download PDF

Info

Publication number
KR20060088474A
KR20060088474A KR1020050123759A KR20050123759A KR20060088474A KR 20060088474 A KR20060088474 A KR 20060088474A KR 1020050123759 A KR1020050123759 A KR 1020050123759A KR 20050123759 A KR20050123759 A KR 20050123759A KR 20060088474 A KR20060088474 A KR 20060088474A
Authority
KR
South Korea
Prior art keywords
session
service module
input buffer
messages
instance
Prior art date
Application number
KR1020050123759A
Other languages
English (en)
Other versions
KR101159360B1 (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 KR20060088474A publication Critical patent/KR20060088474A/ko
Application granted granted Critical
Publication of KR101159360B1 publication Critical patent/KR101159360B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/544Buffers; Shared memory; Pipes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

서비스 모듈 인스턴스가 일반 입력 버퍼로부터 메시지를 수신하는 분산 컴퓨팅 환경에서의 세션 상태 상관관계를 보존한다. 일반 입력 버퍼는 리사이클되기로 결정된 서비스 모듈 인스턴스에 의해서는 액세스되지 않는다. 서비스 모듈 인스턴스가 일반 입력 버퍼를 통해 세션 개시 메시지를 수신한 후에는, 세션 지향(session-oriented)의 입력 버퍼가 서비스 모듈 인스턴스에 연결된다. 그러면, 후속하는 임의의 세션 메시지는 이 세션 지향 입력 버퍼를 통해 서비스 모듈에 수신된다. 세션 도중에 서비스 모듈 인스턴스가 리사이클되기로 결정되는 경우에도, 서비스 모듈 인스턴스는 여전히 세션 입력 버퍼로부터의 모든 나머지 세션 메시지들을 프로세싱하도록 동작하므로 세션의 연속성이 보존된다.
서비스 모듈, 분산 컴퓨팅 환경, HTTP.sys, 리사이클, 세션의 연속성

Description

액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기 위한 메커니즘{MECHANISM FOR PRESERVING SESSION STATE WHEN USING AN ACCESS-LIMITED BUFFER}
도 1은 본 발명의 특징을 구현하는 적절한 컴퓨팅 시스템을 예시한 도면.
도 2는 본 발명의 원리가 적용될 수 있는 분산 컴퓨팅 환경을 예시한 도면.
도 3은 본 발명의 원리에 따른 세션 지향(session-oriented)의 입력 버퍼를 이용하여 세션의 연속성을 보존하는 방법을 예시한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
200: 분산 컴퓨팅 환경
211A: 제1 서비스 모듈 인스턴스
211B: 제2 서비스 모듈 인스턴스
212A, 212B: 입력 버퍼
220, 221: 요청 모듈
본 발명은 분산 서비스 기동 기술에 관한 것으로, 특히 세션 도중에 서비스 모듈 리사이클이 요청되는 경우에 세션 상태의 연속성을 제공하기 위한 메커니즘에 관한 것이다.
컴퓨팅 기술은 우리의 업무, 놀이 방식에 따라 변화해 오고 있다. 컴퓨팅 시스템은 이제 데스크탑 컴퓨터, 랩탑 컴퓨터, 테블릿 PC, PDA(Personal Digital Assistants), 가전기기 등을 포함하는 다양한 형태를 취하고 있다. 그 가장 기본이 되는 형태로는, 컴퓨터 시스템은 시스템 메모리 및 하나 이상의 프로세서를 포함한다. 이 프로세서에 의해 시스템 메모리 내의 소프트웨어가 실행됨으로써 컴퓨터 시스템의 다른 하드웨어로 하여금 원하는 기능을 수행하도록 한다.
분산 컴퓨팅 기술은 복수의 애플리케이션 또는 프로세스가 특정 태스크를 실현하기 위해 통신하는 것을 허용한다. 이러한 분산 컴퓨팅은 물리적으로 분산되어 있을 필요는 없다. 예를 들어, 동일 프로세스 내의 오브젝트가 통신할 수도 있고, 서로 다른 프로세스 내의 오브젝트가 동일 로컬 컴퓨팅 시스템 상에서 통신할 수도 있다. 한편, 분산 컴퓨팅 기술은 원격 컴퓨팅 시스템 상에서 동작하는 프로세스들 간의 통신도 허용한다. 분산 컴퓨팅 기술은 컴퓨팅 시스템이 로컬에서 또는 매우 원거리에서 통신하는 것을 가능케 함으로써 컴퓨터의 기능성을 확장시킨다.
분산 컴퓨팅 환경에서, 서비스 모듈은, 그 요청 모듈 및 서비스 모듈이 동일한 물리 머신에 위치하고 있든지 원격지에 위치하고 있든지에 무관하게, 하나 이상의 다른 요청 모듈로부터의 메시지에 응답하는 경우가 많다. 서비스 모듈은 때로는 서비스를 제공하기 위하여 다른 컴퓨팅 시스템과의 전 세션에 관여하기도 한다. 세션들은 다수의 메시지 교환에 의해 이루어지는데, 이 메시지 교환에는 그 세션이 성공적으로 완수되기 위하여 세션들 간에 유지되어야 하는 세션에 관한 상태가 존 재한다.
이러한 세션 지향의 메시지 교환에서의 한가지 문제점은 서비스 모듈이 리사이클하는 경우에 발생된다. '리사이클'이라 함은 그 서비스 모듈의 하나의 인스턴스를 불활성화(deactivation)시키는 것을 말한다. 그 서비스 모듈에 대한 미래의 요청은 그 서비스 모듈의 다른 인스턴스에 의해 처리된다. 이러한 리사이클은 이상적으로는 요청 모듈의 관점에서 투명(transparent)해야 한다. 세션 지향의 메시지 교환 시에는, 전형적으로 서비스 모듈은 수신(incoming) 메시지를 입력 버퍼를 통해 액세스한다. 일부 입력 버퍼들은 서비스 모듈의 인스턴스를 리사이클되기로 결정된 경우 그 서비스 모듈의 인스턴스는 해당 입력 버퍼를 더 이상 액세스하지 않도록 구성된다.
입력 버퍼에 모든 세션 메시지가 아직 전달되지 않았다면, 향후의 모든 세션 메시지는 다른 서비스 모듈 인스턴스에 의해 수신될 것이다. 세션의 상태는 활성 메모리에 유지되는 경우가 많다. 따라서, 서비스 모듈의 제1 인스턴스에 의해 액세스된 동일 세션의 상태는 서비스 모듈의 제2 인스턴스에 의해서는 액세스되지 않는다. 그러므로, 서비스 모듈의 제2 인스턴스에 의해 세션이 성공적으로 완료될 가능성이 낮다. 세션의 상태를 리사이클 동안 불활성 메모리에 보존할 수도 있다. 그러나, 불활성 메모리에의 액세스는 그 크기로 인해 일반적으로 활성 메모리에의 액세스에 비해 느리다.
따라서, 세션을 처리하는 서비스 모듈 인스턴스에 대한 리사이클 판정이 세 션 도중에 일어나는 경우에도 서비스 모듈에 대한 세션 상태를 보존하기 위한 메커니즘이 요구된다.
전술한 종래기술의 문제점은 일반 입력 버퍼를 이용하여 서비스 모듈에의 메시지를 액세스하도록 구성된 컴퓨팅 시스템을 포함하는 분산 컴퓨팅 환경에서 구현된 본 발명의 원리에 의해 해결된다. 상기 입력 버퍼는 리사이클되기로 결정된 서비스 모듈 인스턴스에 의해서는 액세스되지 않는다. 본 발명의 원리는 서비스 모듈 인스턴스가 세션 도중에 리사이클되기로 결정되는 경우에도 서비스 모듈 인스턴스에 의해 처리되는 동일 세션의 메시지들 간의 상관관계를 보존하기 위한 메커니즘에 관한 것이다.
구체적으로, 서비스 모듈 인스턴스가 제1 입력 버퍼를 통해 세션 개시 메시지를 수신한 후, 그 서비스 모듈 인스턴스에는 다른 세션 지향 입력 버퍼가 연결된다. 후속하는 임의의 세션 메시지는 그 후 세션 지향 입력 버퍼를 통해 서비스 모듈 인스턴스에 의해 수신된다. 세션 지향 입력 버퍼는 서비스 모듈 인스턴스가 리사이클되기로 결정되는 경우에도 그 서비스 모듈 인스턴스에 의해 액세스 가능하므로, 동일한 서비스 모듈 인스턴스에 의해 모든 세션 메시지가 처리된다. 이러한 인스턴스는 해당 세션이 완료되고 나면 비활성화됨으로써 세션의 연속성을 보존한다.
아래의 상세한 설명란에서는 본 발명의 다른 특징 및 장점들을 설명하겠으며, 일부의 특징 및 장점들은 이러한 상세한 설명을 통해 또는 본 발명을 실시함으 로써 명백해질 것이다. 본 발명의 특징 및 장점들은 특허청구범위에 규정된 수단 및 이들의 조합에 의해 실현 및 달성될 것이다. 전술한 및 그 밖의 본 발명의 특징들은 아래의 상세한 설명 및 특허청구범위를 통해 보다 명백해질 것이며, 후술하는 본 발명의 실시예를 통해 알게 될 것이다.
전술한 및 그 밖의 본 발명의 특징 및 장점들이 어떻게 달성되는지를 설명하기 위하여, 첨부 도면에 예시되어 있는 특징 실시예를 참조하여 앞서 간략히 설명한 본 발명을 보다 구체적으로 설명하기로 한다. 먼저, 이들 도면은 본 발명의 전형적인 실시예를 묘사한 것이므로 본 발명의 범주를 제한하려는 것은 아님을 이해하기 바라며, 아래에서는 첨부 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
본 발명의 원리는 입력 버퍼를 이용하여 서비스 모듈에의 메시지를 액세스하도록 구성된 컴퓨팅 시스템을 포함하는 분산 컴퓨팅 환경에서 구현된다. 입력 버퍼는 리사이클되기로 결정된 서비스 모듈 인스턴스에 의해서는 액세스되지 않는다. 본 발명의 원리는 세션을 처리하고 있는 서비스 모듈 인스턴스가 입력 버퍼를 액세스할 수 없는 경우에도 리사이클 이벤트 시의 세션의 연속성을 촉진한다.
다음으로, 동일 참조 부호로써 유사한 부재를 지칭하고 있는 도면에 있어서는, 본 발명의 원리를 적절한 컴퓨팅 환경에서 구현되는 것으로 예시하고 있다. 아래의 설명은 본 발명의 예시된 실시예에 기초하며 본 명세서에 명시적으로 기재되지 않은 다른 실시예에 관해서 본 발명을 제한하는 것으로 이해되어서는 안된다.
아래의 설명에서는, 달리 기재되지 않는 한, 본 발명의 실시예를 하나 이상 의 컴퓨터에 의해 수행되는 단계(act)들 및 동작들의 실볼 표현을 참조하여 설명한다. 따라서, 이러한 단계 및 동작들은 컴퓨터에 의해 실행되는 것으로서 언급되기도 하지만 구조화된 형태의 데이터를 표현하는 전기 신호를 컴퓨터의 프로세싱 유닛이 조작하는 것도 포함한다. 이러한 조작에 의해 데이터가 변환되거나 컴퓨터의 메모리 시스템 내의 여러 장소에 유지되며, 또한 본 기술분야의 전문가에게 잘 알려진 방식으로 이것에 의해 컴퓨터의 동작이 재설정되거나 변경된다. 데이터가 유지되는 데이터 구조는 해당 데이터의 포맷에 의해 정해진 특정한 속성을 갖는 메모리의 물리적 장소이다. 그러나, 본 발명의 원리를 전술한 관점에서 설명하였지만, 본 발명의 전문가라면 아래에서 설명하는 단계 및 동작들 중 일부는 하드웨어로 구현될 수 있다는 것을 인식하고 있을 것이므로, 이것에 국한되지는 않는 것으로 이해되어야 한다.
<실시예>
도 1은 이러한 서비스에 이용할 수 있는 컴퓨터 아키텍처의 일례를 개략적으로 도시한 도면이다. 설명의 편의상, 도시된 아키텍처는 적절한 환경의 일례일 뿐이며, 본 발명의 용도 또는 기능의 범위가 이것에 국한되는 것으로 이해되어서는 안된다. 컴퓨팅 시스템은 도 1에 예시된 일 구성요소 또는 이들의 조합에 대하여 어떠한 종속관계 또는 필요조건을 갖는 것으로 해석되어서는 안된다.
본 발명의 원리는 다른 다수의 범용(또는 전용)의 컴퓨팅(또는 통신) 환경(또는 구성)에서 동작할 수 있다. 본 발명이 이용되기에 적합한 잘 알려진 컴퓨팅 시스템, 환경 및 구성의 예로는, 이것에 국한되지는 않지만, 모바일폰, 포켓 컴퓨 터, 퍼스널 컴퓨터, 서버, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 및 이들 시스템 또는 디바이스 중 어느 하나를 포함하는 분산 컴퓨팅 환경을 들 수 있다.
가장 기본적인 구성으로서, 컴퓨터 시스템(100)은 전형적으로 적어도 하나의 프로세싱 유닛(102) 및 메모리(104)를 포함한다. 메모리(104)는 활성(RAM 등), 불활성(ROM, 플래시 메모리 등), 또는 이들의 조합 형태일 수 있다. 이 가장 기본적인 구성을 도 1에서 점선(106)으로 예시하였다.
스토리지 매체 디바이스는 추가의 특징 및 기능을 구비할 수 있다. 예를 들어, 추가의 스토리지(착탈식 및 비착탈식)를 포함할 수 있는데, 여기에는 이것에 국한되지는 않지만, PCMCIA 카드, 자기 및 광 디스크, 및 자기 테이프가 포함된다. 이러한 추가의 스토리지는 도 1에서 착탈식 스토리지(108) 및 비착탈식 스토리지(110)로 예시되고 있다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈, 또는 그 밖의 데이터와 같은 정보를 저장하기 위한 임의의 방법 및 기술로 구현되는 활성 및 불활성, 착탈식 및 비착탈식 매체를 포함한다. 메모리(104), 착탈식 스토리지(108), 및 비착탈식 스토리지(110)는 모두 컴퓨터 스토리지 매체의 일례이다. 컴퓨터 스토리지 매체로는, 이것에 국한되지는 않지만, RAM, ROM, EEPROM, 플래시 메모리, 그 밖의 메모리 기술, CD-ROM, DVD(digital versatile disk), 그 밖의 광학식 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 그 밖의 자기 스토리지 디바이스, 및 그 밖의 원하는 정보를 저장하는데 이용할 수 있고 컴퓨팅 시스템에 의해 액세스 가능한 매체를 들 수 있다.
본 명세서에서 "모듈" 또는 "컴포넌트"라는 용어는 컴퓨팅 시스템에서 실행되는 소프트웨어 오브젝트 또는 루틴을 지칭한다. 본 명세서에 기재되는 서로 다른 컴포넌트, 모듈, 엔진 및 서비스는 컴퓨팅 시스템에서 실행되는 오브젝트 또는 프로세스로서(예컨대 개별적인 쓰레드(thread)로서) 구현될 수도 있다. 본 명세서에 기재되는 시스템 및 방법은 소프트웨어 형태로 구현되는 것이 바람직하지만, 소프트웨어와 하드웨어를 혼용하는 구현 또는 하드웨어만의 구현도 가능하며 생각해 볼 수 있다.
컴퓨팅 시스템(100)은 통신 채널(112)을 구비할 수도 있는데, 이것은 호스트가 예컨대 네트워크(120)를 통해 다른 시스템 및 디바이스와 통신할 수 있도록 한다. 통신 채널(112)은 통신 매체의 일례이다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈, 또는 그 밖의 예컨대 반송파나 그 밖의 트랜스포트 메커니즘과 같은 변조된 데이터 신호로 된 데이터를 담고 있으며, 임의의 정보 전달 매체를 포함할 수 있다. 일례로서, 이것에 국한되지는 않지만, 통신 매체로는 유선 네트워크 및 직접배선 접속과 같은 유선 매체와 어쿠스틱, RF, 적외선 또는 그 밖의 무선 매체와 같은 무선 매체를 포함한다. 본 명세서에서 말하는 컴퓨터 판독가능 매체는 스토리지 매체와 통신 매체의 양방을 포함한다.
컴퓨팅 시스템(100)은 키보드, 마우스, 펜, 음성입력 컴포넌트, 터치입력 디바이스 등의 입력 컴포넌트(114)를 구비할 수도 있다. 출력 컴포넌트(116)로는 스크린 디스플레이, 스피커, 프린터 등과 이들을 구동하기 위한 렌더링 모듈("어댑터"라고 하기도 함)을 포함한다. 컴퓨팅 시스템(100)은 전원(118)을 구비한다. 이들 컴포넌트들은 모두 본 기술분야에 공지되어 있으므로 본 명세서에서는 더 이상 설명하지 않기로 한다.
도 2는 본 발명의 원리가 적용될 수 있는 분산 컴퓨팅 환경(200)을 예시한 것이다. 분산 컴퓨팅 환경(200)은 단일 프로세스에서 실행되는 수개의 오브젝트들에 걸쳐 분산될 수도 있고, 동일한 컴퓨팅 시스템에서 실행되는 복수의 프로세스에 걸쳐 분산될 수도 있고, 복수의 컴퓨팅 시스템에 걸쳐 분산될 수도 있다. 이러한 컴퓨팅 시스템은 도 1의 컴퓨팅 시스템(100)과 관련하여 설명한 형태를 취할 수도 있고, 다른 형태를 취할 수도 있다.
분산 컴퓨팅 환경(200)은 가로방향의 점들 222(···)로 표시한 바와 같이 임의의 잠재적인 요청 모듈들 중에서 요청 모듈(221)을 포함하는 하나 이상의 요청 모듈들(220)에 의해 발생되는 메시지를 액세스하도록 구성된 서비스 모듈을 포함한다. 메시지 교환의 특정 세션 도중에, 서비스 모듈이 다수의 수신 메시지를 수신할 수 있다. 도 2에서는 제1 서비스 모듈 인스턴스(211A)와 제2 서비스 모듈 인스턴스(211B)의 형태로 된 동일 서비스 모듈(211)의 2개의 인스턴스를 예시하고 있다. 서비스 모듈은 프로세스, 애플리케이션, 또는 프로세스나 애플리케이션 내의 오브젝트일 수 있다.
처음에는, 서비스 모듈(211)에 보내질 수신 메시지 중에서 확립되어 있는 세션과 관련이 없는 모든 수신 메시지는 입력 버퍼(212A)에 수신된다. 예를 들어, 서비스 모듈(211)에 보내질 수신 메시지(231)는 입력 버퍼(212A)에 수신된 다음, 화살표 232로 나타낸 바와 같이 제1 서비스 모듈 인스턴스(211A)에 제공된다.
도 3은 입력 버퍼의 입력이 제한되어 있는 상황에서 동일 세션의 메시지들 간의 상관관계를 보존하기 위한 방법(300)의 흐름도를 예시한 것이다. 도 3의 방법(300)은 도 2의 분산 컴퓨팅 환경(200)에서 수행될 수 있으므로, 도 3을 설명함에 있어서 도 2에 대해서도 설명하기로 한다.
먼저, 방법(300)에서, 제1 서비스 모듈 인스턴스는 제1 입력 버퍼로부터 세션 개시 메시지(즉, 세션 확립 요청)를 액세스한다. 구체적으로, 도 2를 참조하면, 제1 입력 버퍼(212A)가 세션 개시 메시지(231)를 수신하면, 이 세션 개시 메시지는 화살표 232로 나타낸 바와 같이 제1 서비스 모듈 인스턴스(211A)에 제공된다. 그런 다음, 이 수신된 세션 개시 메시지는 제1 서비스 모듈 인스턴스(211A)에 의해 프로세싱된다. 이러한 세션 개시 메시지 외에도, 세션 지향이 아닌 다른 메시지들도 제1 입력 버퍼(212A)에 의해 서비스 모듈에 제공된다. 이러한 비세션 메시지들은 세션의 부분으로서의 다른 메시지와는 관련이 없기 때문에, 이들 비세션 메시지들은 서비스 모듈의 임의의 인스턴스에 의해 처리될 수 있다.
이러한 프로세싱의 결과, 세션의 개시가 결정되고(단계 302), 제2 입력 버퍼("세션 지향 입력 버퍼" 또는 "세션 입력 버퍼"라고도 함)가 제1 서비스 모듈 인스턴스에 연결된다(단계 303). 제2 입력 버퍼(212B)는 해당 세션의 임의의 후속 메시지들을 수신하는데 이용된다. 제1 서비스 모듈 인스턴스는 예를 들어 세션 개시 메시지를 제공한 관련 요청 모듈(220)에게 제2 입력 버퍼(212B)의 어드레스를 통지하여(화살표 233 참조), 요청 모듈이 후속 세션 메시지들을 제2 입력 버퍼(212B)에게 보내도록 한다(화살표 234 및 가로방향의 점들 234A 참조).
주어진 서비스 모듈 인스턴스가 리사이클되기로 결정되었다면 제1 입력 버퍼(212A)는 그 서비스 모듈 인스턴스에 의해서는 액세스되지 않는다. 일 실시예에서, 입력 버퍼(212A)는 IIS(Internet Information Server)에 의해 오픈되는 HTTP.sys 메시지큐 등의 큐(queue)일 수 있는데, 이러한 경우 주어진 서비스 모듈 인스턴스가 리사이클되기로 결정되었다면 그 서비스 모듈 인스턴스에게는 어떠한 메시지도 제공되지 않는다. 이것과 대조적으로, 제1 서비스 모듈 인스턴스(211A)는 그 서비스 모듈 인스턴스(211A)에 대한 리사이클 결정 여부와 무관하게 제2 입력 버퍼(212B)로부터의 메시지 수신을 계속한다.
따라서, 제2 입력 버퍼(212B)에는 하나 이상의 세션 메시지가 수신된다(단계 304)(화살표 234 및 가로방향의 점들 234A 참조). 이 단계 304에 대해서는, 도 3에서 이 단계은 세션 도중에 리사이클 결정이 이루어지는 것과 무관하게 수행된다는 것을 강조하기 위하여 별표(*) 표시와 함께 나타내었다. 이러한 수신 세션 메시지는 세션의 연속성을 유지하기에 적합하도록 세션 상태(214A)를 수정하기 위하여 제1 서비스 모듈 인스턴스(211A)에 의해 액세스 및 프로세싱된다(단계 305)(화살표 235 및 가로방향의 점들 235A 참조). 이 단계 305에 대해서도, 제1 서비스 모듈 인스턴스(211A)는 세션 도중의 리사이클 결정과 무관하게 세션 지향 입력 버퍼(212B)로부터 세션 메시지에 대한 프로세싱을 계속한다는 것을 강조하기 위하여 별표(*) 표시와 함께 나타내었다.
본 발명은 그 사상 또는 필수 특징을 일탈하지 않고 다른 특정 형태로 구현될 수도 있다. 본 명세서에 개시된 실시예들은 어떠한 경우에도 예시적이고 비제 한적인 것으로서 이해되어야 한다. 그러므로, 본 발명의 범주는 이상의 설명에 의해서가 아니라 특허청구범위에 의해서 규정되어야 한다. 따라서, 특허청구범위의 균등물의 의미 및 범위에 속하는 모든 변형은 이러한 범주에 속하는 것으로 이해되어야 한다.
전술한 바와 같이, 본 발명의 원리에 따르면, 세션의 전체 라이프사이클 내내 단일 서비스 모듈 인스턴스에 의해 세션이 관리되므로, 세션 도중에 해당 세션을 서비스하는 서비스 모듈 인스턴스에 대한 리사이클이 결정되는 경우뿐만 아니라, 세션의 상태가 활성 메모리에 유지되는 경우에도 세션이 중단되지 않고 완료될 수 있다.

Claims (20)

  1. 제1 입력 버퍼를 이용하여 서비스 모듈에의 메시지를 액세스하도록 구성된 컴퓨팅 시스템을 포함하는 분산 컴퓨팅 환경 - 상기 제1 입력 버퍼는 서비스 모듈의 인스턴스가 리사이클되기로 결정된 경우에도 상기 서비스 모듈 인스턴스에 의해서는 액세스되지 않음 - 에서, 상기 서비스 모듈 인스턴스에 의해 처리되는 동일 세션의 메시지들 간의 상관관계를 보존하기 위한 방법으로서,
    상기 서비스 모듈 인스턴스가 상기 제1 입력 버퍼로부터 세션 개시 메시지를 액세스하는 단계;
    상기 서비스 모듈 인스턴스의 세션 개시 메시지 액세스 단계 후, 세션의 개시 여부를 결정하는 단계;
    상기 세션 개시 여부를 결정하는 단계에 응답하여, 상기 서비스 모듈 인스턴스에 제2 입력 버퍼를 연결하는 단계;
    상기 제2 입력 버퍼에서 상기 세션의 하나 이상의 후속 메시지를 수신하는 단계; 및
    상기 서비스 모듈 인스턴스가 상기 제2 입력 버퍼로부터의 하나 이상의 후속 세션 메시지를 프로세싱하는 단계
    를 포함하는 세션 메시지들 간의 상관관계 보존 방법.
  2. 제1항에 있어서,
    상기 서비스 모듈은 프로세스인 세션 메시지들 간의 상관관계 보존 방법.
  3. 제1항에 있어서,
    상기 서비스 모듈은 애플리케이션 도메인인 세션 메시지들 간의 상관관계 보존 방법.
  4. 제1항에 있어서,
    상기 제1 및 제2 입력 버퍼는 각각 큐(queue)인 세션 메시지들 간의 상관관계 보존 방법.
  5. 제4항에 있어서,
    상기 큐는 HTTP.sys 큐인 세션 메시지들 간의 상관관계 보존 방법.
  6. 제1항에 있어서,
    상기 세션 개시 여부를 결정하는 단계에 응답하여, 상기 세션 개시 메시지의 발신자에게 상기 제2 입력 버퍼의 어드레스를 통지하는 단계를 더 포함하는 세션 메시지들 간의 상관관계 보존 방법.
  7. 제1항에 있어서,
    상기 제1 입력 버퍼는 세션 개시 메시지가 아닌 비세션(non-session) 메시지 를 담고 있는 세션 메시지들 간의 상관관계 보존 방법.
  8. 제7항에 있어서,
    상기 비세션 메시지는 제1 입력 큐로부터 상기 서비스 모듈의 복수의 인스턴스 중 어느 하나에게 제공되는 세션 메시지들 간의 상관관계 보존 방법.
  9. 제1 입력 버퍼를 이용하여 서비스 모듈에의 메시지를 액세스하도록 구성된 컴퓨팅 시스템을 포함하는 분산 컴퓨팅 환경 - 상기 제1 입력 버퍼는 서비스 모듈의 인스턴스가 리사이클되기로 결정된 경우에도 상기 서비스 모듈 인스턴스에 의해서는 액세스되지 않음 - 에서 이용하기 위한 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은, 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행되는 경우, 상기 컴퓨팅 시스템이 상기 서비스 모듈 인스턴스에 의해 처리되는 동일 세션의 메시지들 간의 상관관계를 보존하기 위한 방법을 수행하도록 하는 컴퓨터 판독가능 명령문을 저장하고 있는 하나 이상의 컴퓨터 판독가능 매체를 구비하며, 상기 세션 메시지들 간의 상관관계 보존 방법은,
    상기 서비스 모듈 인스턴스가 상기 제1 입력 버퍼로부터 세션 개시 메시지를 액세스하는 단계;
    상기 서비스 모듈 인스턴스의 세션 개시 메시지 액세스 단계 후, 세션의 개시 여부를 결정하는 단계;
    상기 세션 개시 여부를 결정하는 단계에 응답하여, 상기 서비스 모듈 인스턴 스에 제2 입력 버퍼를 연결하는 단계;
    상기 제2 입력 버퍼에서 상기 세션의 하나 이상의 후속 메시지를 수신하는 단계; 및
    상기 서비스 모듈 인스턴스가 상기 제2 입력 버퍼로부터의 하나 이상의 후속 세션 메시지를 프로세싱하는 단계
    를 포함하는 컴퓨터 프로그램 제품.
  10. 제9항에 있어서,
    상기 서비스 모듈은 프로세스인 컴퓨터 프로그램 제품.
  11. 제9항에 있어서,
    상기 서비스 모듈은 애플리케이션 도메인인 컴퓨터 프로그램 제품.
  12. 제9항에 있어서,
    상기 제1 및 제2 입력 버퍼는 각각 큐(queue)인 컴퓨터 프로그램 제품.
  13. 제12항에 있어서,
    상기 큐는 HTTP.sys 큐인 컴퓨터 프로그램 제품.
  14. 제9항에 있어서,
    상기 세션 개시 여부를 결정하는 단계에 응답하여, 상기 세션 개시 메시지의 발신자에게 상기 제2 입력 버퍼의 어드레스를 통지하는 단계를 더 포함하는 컴퓨터 프로그램 제품.
  15. 제9항에 있어서,
    상기 제1 입력 버퍼는 세션 개시 메시지가 아닌 비세션(non-session) 메시지를 담고 있는 컴퓨터 프로그램 제품.
  16. 제15항에 있어서,
    상기 비세션 메시지는 제1 입력 큐로부터 상기 서비스 모듈의 복수의 인스턴스 중 어느 하나에게 제공되는 컴퓨터 프로그램 제품.
  17. 컴퓨터 판독가능 명령문을 저장하고 있는 하나 이상의 컴퓨터 판독가능 매체로서, 상기 컴퓨터 판독가능 명령문은 하나 이상의 프로세서에 의해 실행되는 경우,
    세션에 관련된 복수의 메시지들을 프로세싱하도록 구성된 서비스 모듈;
    세션의 개시에 앞서, 세션 개시 메시지를 수신하도록 구성된 제1 입력 버퍼; 및
    상기 세션이 개시된 후, 상기 세션에 관련된 하나 이상의 후속 메시지를 수신하도록 구성된 제2 입력 버퍼
    를 실체화하도록 하며,
    상기 서비스 모듈은 또한 상기 제1 입력 버퍼로부터의 세션 개시 메시지 및 상기 제2 입력 버퍼로부터의 하나 이상의 후속 메시지를 수신하도록 구성된 컴퓨터 판독가능 매체.
  18. 제17항에 있어서,
    상기 서비스 모듈은 프로세스 또는 애플리케이션 도메인 중 하나인 컴퓨터 판독가능 매체.
  19. 제17항에 있어서,
    상기 제1 및 제2 입력 버퍼는 각각 큐인 컴퓨터 판독가능 매체.
  20. 제17항에 있어서,
    상기 하나 이상의 컴퓨터 판독가능 매체는 물리 메모리 매체인 컴퓨터 판독가능 매체.
KR1020050123759A 2005-02-01 2005-12-15 액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기위한 메커니즘 KR101159360B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/049,071 2005-02-01
US11/049,071 US7565395B2 (en) 2005-02-01 2005-02-01 Mechanism for preserving session state when using an access-limited buffer

Publications (2)

Publication Number Publication Date
KR20060088474A true KR20060088474A (ko) 2006-08-04
KR101159360B1 KR101159360B1 (ko) 2012-06-25

Family

ID=35976535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050123759A KR101159360B1 (ko) 2005-02-01 2005-12-15 액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기위한 메커니즘

Country Status (7)

Country Link
US (1) US7565395B2 (ko)
EP (1) EP1686763B1 (ko)
JP (1) JP5005921B2 (ko)
KR (1) KR101159360B1 (ko)
CN (1) CN1816034B (ko)
AT (1) ATE452502T1 (ko)
DE (1) DE602006011064D1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980232A (zh) * 2005-12-02 2007-06-13 国际商业机器公司 远程登录会话维护方法、远程登录代理和计算机网络系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2041992A1 (en) * 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
CA2152329C (en) * 1994-09-08 1999-02-09 N Dudley Fulton Iii Apparatus and methods for software rejuvenation
US5881239A (en) * 1995-01-23 1999-03-09 Tandem Computers Incorporated Network system with resilient virtual fault tolerant sessions
US6393481B1 (en) * 1997-10-06 2002-05-21 Worldcom, Inc. Method and apparatus for providing real-time call processing services in an intelligent network
US6854114B1 (en) * 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
US6594784B1 (en) * 1999-11-17 2003-07-15 International Business Machines Corporation Method and system for transparent time-based selective software rejuvenation
WO2001090919A2 (en) * 2000-05-24 2001-11-29 Virtual Clinic, Inc. Method and apparatus for providing personalized services
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
US20020065915A1 (en) * 2000-11-30 2002-05-30 Anderson Elizabeth A. System and method for server-host connection management to serve anticipated future client connections
US6651111B2 (en) 2001-02-16 2003-11-18 Microsoft Corporation System and method for managing a serial port
US7849190B2 (en) * 2001-02-23 2010-12-07 Nokia Siemens Networks Oy Internet protocol based service architecture
US7225362B2 (en) * 2001-06-11 2007-05-29 Microsoft Corporation Ensuring the health and availability of web applications
US7228551B2 (en) * 2001-06-11 2007-06-05 Microsoft Corporation Web garden application pools having a plurality of user-mode web applications
US7594230B2 (en) * 2001-06-11 2009-09-22 Microsoft Corporation Web server architecture
US7116673B2 (en) * 2001-08-09 2006-10-03 International Business Machines Corporation Queue pair resolution in infiniband fabrics
US6961539B2 (en) * 2001-08-09 2005-11-01 Hughes Electronics Corporation Low latency handling of transmission control protocol messages in a broadband satellite communications system
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7130891B2 (en) * 2002-02-04 2006-10-31 Datasynapse, Inc. Score-based scheduling of service requests in a grid services computing platform
US20030182464A1 (en) * 2002-02-15 2003-09-25 Hamilton Thomas E. Management of message queues
CA2372092C (en) * 2002-02-15 2010-04-06 Cognos Incorporated A queuing model for a plurality of servers
US20030204551A1 (en) * 2002-04-30 2003-10-30 Ling Chen System and method for providing media processing services
US20030212818A1 (en) * 2002-05-08 2003-11-13 Johannes Klein Content based message dispatch
US7627693B2 (en) * 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA
US7631106B2 (en) * 2002-08-15 2009-12-08 Mellanox Technologies Ltd. Prefetching of receive queue descriptors
EP1414211A1 (en) * 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
US7007004B2 (en) * 2002-11-20 2006-02-28 Nokia Corporation Concurrent operation of a state machine family
US7827282B2 (en) * 2003-01-08 2010-11-02 At&T Intellectual Property I, L.P. System and method for processing hardware or service usage data
US20040167961A1 (en) * 2003-02-26 2004-08-26 Microsoft Corporation Fragment response cache
US7231269B2 (en) * 2003-03-20 2007-06-12 Microsoft Corporation Recovery upon access violation by audio processing object
US20040249958A1 (en) * 2003-06-04 2004-12-09 Ozdemir Hasan Timucin Method and apparatus for secure internet communications
US7562254B2 (en) * 2003-07-01 2009-07-14 International Business Machines Corporation Checkpointing and restarting long running web services
US7467202B2 (en) * 2003-09-10 2008-12-16 Fidelis Security Systems High-performance network content analysis platform
US20050188070A1 (en) * 2004-01-28 2005-08-25 Sun Microsystems, Inc. Vertical perimeter framework for providing application services

Also Published As

Publication number Publication date
EP1686763A1 (en) 2006-08-02
CN1816034B (zh) 2012-03-28
KR101159360B1 (ko) 2012-06-25
JP5005921B2 (ja) 2012-08-22
EP1686763B1 (en) 2009-12-16
US20060174011A1 (en) 2006-08-03
DE602006011064D1 (de) 2010-01-28
ATE452502T1 (de) 2010-01-15
CN1816034A (zh) 2006-08-09
JP2006216023A (ja) 2006-08-17
US7565395B2 (en) 2009-07-21

Similar Documents

Publication Publication Date Title
JP5042454B2 (ja) 受信コンピューティングシステムのための方法とコンピュータプログラム、およびコンピューティングシステム
CN110865888B (zh) 一种资源加载方法、装置、服务器及存储介质
US20150281035A1 (en) Monitoring of Node.JS Applications
US20170177277A1 (en) Managing data operations in a quorum-based data replication system
US20180046635A1 (en) Discovery of calling application for control of file hydration behavior
CN107800779B (zh) 优化负载均衡的方法及系统
EP3788487A1 (en) Notification updates for saved sites
KR20060063643A (ko) 운영 체제의 성능을 향상시키는 방법 및 시스템
US20200089512A1 (en) Method and Apparatus for Invoking Input Method, Server, and Terminal
US20120331469A1 (en) Gracefully shutting down a computer process
KR101159360B1 (ko) 액세스 제한 버퍼를 이용하는 경우 세션 상태를 보존하기위한 메커니즘
US8726230B1 (en) Generating a user interface for sending data among resources
KR101917325B1 (ko) 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체
CN111049883A (zh) 分布式表格系统的数据读取方法、装置及系统
CN107656702B (zh) 加速硬盘读写的方法及其系统、以及电子设备
US10339462B2 (en) System and method for executing a high bandwidth network activity as a background activity in a virtual desktop environment
CN116503005A (zh) 流程动态修改方法、装置、系统及存储介质
US20180167340A1 (en) Technologies for multi-core wireless network data transmission
US20050160242A1 (en) Asynchronous hybrid mirroring system
US11263325B2 (en) System and method for application exploration
US20190356748A1 (en) Service Worker Push Violation Enforcement
US20180341717A1 (en) Providing instant preview of cloud based file
US20220350665A1 (en) Queue Management System and Method
CN116578334B (zh) 基于配置化的用户在线动态对接方法及系统
CN116561467A (zh) 一种网页资源的加载方法、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 7