KR20050055743A - 클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템 - Google Patents

클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템 Download PDF

Info

Publication number
KR20050055743A
KR20050055743A KR1020057005749A KR20057005749A KR20050055743A KR 20050055743 A KR20050055743 A KR 20050055743A KR 1020057005749 A KR1020057005749 A KR 1020057005749A KR 20057005749 A KR20057005749 A KR 20057005749A KR 20050055743 A KR20050055743 A KR 20050055743A
Authority
KR
South Korea
Prior art keywords
session
server
user
client
user session
Prior art date
Application number
KR1020057005749A
Other languages
English (en)
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 KR20050055743A publication Critical patent/KR20050055743A/ko

Links

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
    • 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
    • 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/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 클라이언트-서버 네트워크를 통해 통신하기 위한 서버에 관한 것이다. 상기 서버는, 제1 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 수신하기 위한 수신기를 포함한다. 상기 서버는 상기 제1 요청에 응답하여 사용자 세션을 개설하기 위한 사용자 세션 메커니즘을 또한 포함한다. 상기 서버는 상기 제1요청에 응답하여 상기 제1 클라이언트와 클라이언트 세션을 개설하기 위한 클라이언트 세션 메커니즘을 또한 포함한다. 상기 클라이언트 세션의 종료에 응답하여, 상기 서버는 사용자 세션 데이터를 메모리 요소(예, 데이터베이스)에 저장한다. 수신기는 제2 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 또한 수신한다. 제2 요청을 수신하면, 상기 사용자 세션 메커니즘은 상기 사용자 세션을 재활성시킨다.

Description

클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및 시스템{Method and system for communicating over a client-server network}
본 발명은 일반적으로 클라이언트-네트워크를 통해 통신하는 것에 관련된 것으로서, 구체적으로는, 제1 클라이언트를 작동시키는 사용자가 서버와의 통신 세션으로부터 분리된 후 나중에 동일하거나 다른 클라이언트로부터 언제라도 동일한 세션에 재접속하는 것을 가능케 하는 것에 관련된다.
도 1을 참조하면, 통상적으로 종래에 공지된 한 유형의 네트워크 컴퓨터 시스템(100)은 클라이언트 컴퓨터(110)와 서버(115)를 포함한다. 클라이언트 컴퓨터(110)는 통상적으로 서버(115)로부터 정보를 다운로드할 수 있는 개인용 컴퓨터이다. 전형적인 클라이언트(110)는 인터넷 또는 WWW와 같은 네트워크(125)를 통과하는 클라이언트-서버 통신 채널(120)을 통해 서버(115)와 통신한다. 서버(115) 또한 클라이언트(110)에 의해 액세스될 수 있는 하나 이상의 애플리케이션 프로그램(130)을 호스트할 수 있다.
클라이언트(110)는 넷스케이프 커뮤니케이션 코포레이션(미국 캘리포니타 마운튼 뷰 소재)에서 개발한 넷스케이프 네비게이터(NETSCAPE NAVIGATOR) 또는 마이크로소프트사(워싱톤, 레드몬드 소재)에서 개발한 인터넷 익스플로러와 같은 웹브라우저(135)를 또한 포함하여, 웹에 접속하고/하거나 서버(115)로부터 콘텐트를 다운로드할 수 있다. 통상적으로, 서버(115)는 클라이언트(110)로부터의 통신 요청에 응답하여 클라이언트(110, 예, 웹 브라우저(135))에 웹페이지를 전달한다.
클라이언트(110)와 서버(115)는 인터넷(125)을 통해 통신할 때 전형적으로 HTTP(Hypertext Transfer Protocol)를 이용한다. 그러나, 불행히도, HTTP는 "상태 비보전(stateless)" 프로토콜이다. 다시 말하면, 서버(115)에게는 서버(115)로의 각각의 방문이 통상적으로 사용자에 의한 처음 방문으로 간주된다. 기본적으로, 서버는 각 통신 요청 이후에는 모든 것을 "잊는다(forget)".
예를 들어, 클라이언트(110)를 작동시키는 사용자는 인터넷(125)을 통해 서버(115)와 통신할 수 있다. 이러한 통신중에, 사용자는, 예를 들어 어떠한 작업을 수행하기 위해, 서버(115)상에서 실행되는 애플리케이션(130)을 사용할 수 있다. 또한, 서버(115)는 통상적으로 통신과 연관된 데이터를 저장한다. 이후에, 사용자가 그 지역을 떠나야 하는 경우와 같이, 서버(115)와 통신을 종료한다. 통신 종료 결과로서, 서버(115)는 통상적으로 해당 통신과 관련된 데이터를 삭제한다. 이후에 사용자가 동일한 클라이언트(110)를 이용하기 위해 그 지역으로 돌아올 때, 사용자는 서버(115)와 다시 통신하기 위해 클라이언트(110)를 이용할 수 있다. HTTP의 상태 비보전 특성으로 인하여 서버(115)는 이전 통신과 연관된 데이터에 대한 액세tm를 더 이상 갖고 있지 않으므로, 서버(115)가 이전 통신중에 저장했던 데이터를 사용자가 액세스하고자 시도한다면, 사용자는 실패하게 된다.
이러한 문제점에 대한 한가지 해결책은 HTTP 세션의 개설이었다. 통상적으로, HTTP 세션은 클라이언트(110)를 작동시키는 한 명의 사용자에 의한 다수의 웹페이지 요청 지속 기간을 일컫는다. HTTP 세션동안, 상태 보전을 위해 쿠키가 통상적으로 이용된다. 예를 들어, 서버(115)는 클라이언트(110)상에 이후에 저장되도록 웹브라우저(135)에 쿠키를 생성 및 전송할 수 있다. HTTP 세션동안, 클라이언트(110)는 상태를 보전하기 위해 서버(115)에 사용자의 쿠키에 연관된 데이터를 통상적으로 전송한다.
또한, 서버(115)가 마이크로소프트사에서 개발한 애플리케이션 서비스 프로바이더(ASP.NET)로 실행한다면, ASP.NET 모듈은 통상적으로 서버(115)내에 HTTP 세션 상태가 저장될 수 있도록 한다. 또한, 서버(115)는 세션 상태의 이후 식별을 위해 클라이언트(110)에 인증 쿠키를 지정할 수 있다. 더욱이, 클라이언트(110)와 서버(115)사이에는 인증 쿠키만이 전송되고, 세션 상태는 서버(115)내에 저장된다.
HTTP 세션의 실행은, 쿠키를 이용하더라도, 유연성과 강건성이 종종 결여된다. 예를 들어, 쿠키는 전형적으로 특정 클라이언트(110)에 한정된다. 더욱이, 전형적인 HTTP 세션은 짧고 간단한 서비스를 제공하는 웹 애플리케이션(130)에 전통적으로 적합하다. 서버(115)가 HTTP 세션을 이용하는 애플리케이션(130)의 경우에, 사용자는 인터럽트없이 임의의 단기간내에 타스크를 끝내야할 필요가 있다. 사용자가 타스크중에 너무 오랫동안 정지하고 있다면, 서버(115)는 세션을 종료시킬 수 있으며, 다시금 사용자 데이터의 손실을 가져온다.
예를 들어, 사용자가 온라인상에서(예, 인터넷(125)을 통해) 제품을 구매하기를 원하는 경우에, 사용자는 클라이언트(110)를 이용하여 원하는 제품을 판매하는 웹페이지로 로그온한다. 통상적으로, 사용자는 제품 선택 스크린 및 개인 정보(예, 우편 주소) 입력 스크린과 같은 다수의 스크린을 횡보하게 된다. 어느 시점에, 사용자는 지불 정보(예, 신용카드 정보)를 입력해야 하는 스크린에 도달한다. 사용자가 사용자의 신용카드 정보를 제공하기 전에 너무 오랫동안 대기한다면, 서버(115)는 통신 세션을 종료하고 사용자로 하여금 서버(115)와 또다른 통신 세션을 개설하도록 강요할 수 있다. 이러한 제2 통신 세션동안, 통상적으로, 클라이언트(110)와 서버(115)간의 타임아웃으로 인하여 사용자는 나중 통신 세션에서 다시 사용자 데이터 전부를 다시 입력하여야 한다.
또한, 클라이언트(110)를 이용하여 웹페이지를 이전에 액세스하였던 사용자는 해당 클라이언트(110)상에 저장된 쿠키 이득을 얻기 위해 해당 클라이언트(110)에 이후에 "매이게(tied)" 된다. 따라서, 클라이언트(110)와 서버(115)사이의 통신 세션의 유연성 및 견고성을 증가시킬 필요가 있다.
전술한 본 발명의 장점들 및 더 나아간 장점들은 첨부된 도면과 함께 이하의 설명을 참조함으로써 더 잘 이해될 수 있다. 도면에서, 유사한 도면부호 문자는 상이한 도면들 전반에 걸쳐 동일한 부분들을 지칭한다. 또한, 도면들은 반드시 크기 조절되거나 강조되지 않았으며, 대신에 본 발명의 원리를 설명하기 위해 통상적으로 놓인 것이다.
도 1은 종래 기술의 클라이언트-서버 네트워크 실시예의 블록도이다.
도 2는 사용자 세션 메커니즘을 구비한 서버를 갖는 클라이언트-서버 네트워크의 실시예를 도시한 블록도이다.
도 3은 사용자 세션 메커니즘을 갖는 서버의 실시예를 좀더 상세하게 도시한 블록도이다.
도 4는 서버에 의해 수행되는 단계들의 방법을 예시한 흐름도이다.
도 5는 사용자 세션 개설을 위해 서버에 의해 수행되는 단계들의 실시예를 도시한 흐름도이다.
도 6은 클라이언트 세션 종료를 위해 서버에 의해 수행되는 단계들의 실시예를 도시한 흐름도이다.
도 7은 사용자 세션 재활성을 위해 서버에 의해 수행되는 단계들의 실시예를 도시한 흐름도이다.
도 8은 사용자 세션에 지정되는 상태들의 실시예를 도시한 상태도이다.
도 9는 사용자와 클라이언트 세션의 상대적 타이밍 실시예를 예시한 흐름도이다.
도 10은 도 9의 사용자와 클라이언트 세션의 상대적 타이밍에 연관된, 서버에 의해 수행된 단계들을 도시한 흐름도이다.
도 11은 메모리 요소의 실시예의 상세한 블록도이다.
본 발명은 사용자가 웹서버와의 통신 세션으로부터 분리된 후에 임의의 장치를 통해 어느 장소로부터 어느 때라도 동일한 세션에 재접속할 수 있도록 가능케 해주는 방법 및 시스템에 관한 것이다. 따라서, 선정된 기간동안 타스크를 끝내지 못한 경우의 데이터 손실 가능서과 같은 통신 세션과 연관된 상기에서 언급한 제한점들이 약화된다. 더욱이, 본 발명은 서버와 클라이언트간의 전형적인 통신 세션과 통상적으로 연관된 시간 제약 및 클라이언트 제약을 없앰으로써 통신 세션에 증각된 유연성 및 견고성을 제공한다.
일 측면에서, 본 발명은 클라이언트-서버 네트워크를 통해 통신하기 위한 서버에 관한 것이다. 서버는 서버와의 통신 세션을 개설하고자 하는 제1 요청을 제1 클라이언트로부터 수신하는 수신기를 포함한다. 또한, 서버는 상기 제1 요청에 응답하여 사용자 세션을 개설하는 사용자 세션 메커니즘을 포함한다. 서버는 상기 제1 요청에 응답하여 제1 클라이언트 세션을 개설하는 클라이언트 세션 메커니즘을 또한 포함한다. 제1 클라이언트 세션이 종료되면, 서버는 메모리 요소(예, 데이터베이스)에 사용자 세션 데이터를 저장한다. 수신기는 제2 클라이언트로부터 서버와의 통신 세션을 개설하고자 하는 제2 요청을 제2 클라이언트로부터 또한 수신한다. 상기 제2 요청을 수신하면, 사용자 세션 메커니즘은 해당 사용자 세션을 재활성시킨다. 일 실시예에서, 사용자 세션 메커니즘은 개설된 사용자 세션에 상태를 지정한다. 이러한 상태에는, 활성 상태, 정지 상태 또는 완료 상태가 있을 수 있다.
또다른 측면에서, 본 발명은 클라이언트-서버 네트워크를 통해 통신하는 방법에 관한 것이다. 방법은 서버와의 통신을 개설하고자 하는 요청을 서버에서 수신하는 단계를 포함한다. 사용자에 의해 작동되는 제1 클라이언트는 서버에 상기 요청을 전송한다. 수신된 요청에 응답하여, 서버와 식별된 사용자간의 사용자 세션이 개설된다. 유사하게, 상기 수신된 요청에 응답하여, 제1 클라이언트와 서버간의 클라이언트 세션이 또한 개설된다. 방법은 클라이언트 세션의 종료에 응답하여 사용자 세션 데이터를 서버에 저장하는 단계를 또한 포함한다. 방법은 상기 사용자에 의해 작동되는제2 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 상기 서버가 수신하고 사용자 세션을 재활성시키는 단계를 또한 포함한다.
일실시예에서, 요청은 사용자 인증서와 같은 것으로 사용자를 식별한다. 방법은 제1 클라이언트로부터 종료 메시지를 수신하는 단계와 상기 사용자 세션 데이터를 저장하기 이전에 상기 제1 클라이언트와 상기 서버간의 클라이언트 세션을 종료하는 단계를 또한 포함한다. 또다른 실시예에서, 서버는 제1 클라이언트와 서버간의 클라이언트 세션을 종료하고 선정된 시간동안 대기한 이후에 사용자 세션 데이터를 저장한다. 어떤 실시예에서, 방법은 상기 개설된 사용자 세션에, 활성, 정지 또는 완료 상태와 같은 상태를 지정하는 단계를 또한 포함한다.
서버와의 통신을 개설하고자 하는 또다른 요청을 수신한 이후에 상기 사용자와 연관되어 개설된 사용자 세션의 존재 여부를 판단하기 위해 저장된 사용자 세션 데이터가 이용될 수 있다. 일실시예에서, 사용자 세션은 개설된 사용자 세션의 존재가 판단된 때에 재활성된다.
도 2를 참조하면, HTTP, 또는 클라이언트, 세션의 제약중 많은 부분을 제거하면서 클라이언트-서버 네트워크(125)를 통해 통신을 가능케 하는 컴퓨터 시스템(200)의 실시예가 도시되어 있다. 구체적으로, 시스템(200)은 서버(115)가 통신 세션중의 상태를 유지할 수 있도록 하여, 사용자가 이후 통신 세션에서 제1 클라이어트 세션중에 저장된 데이터를 액세스할 수 있도록 해준다. 따라서, 일 실시예에서, 세션 데이터의 액세스는 제1 클라이언트 통신 세션이 종료한 후에 발생한다.
컴퓨터 시스템(200)은 제1 클라이언트(110'), 제2 클라이언트(110")(통상적으로 이하에서는 클라이언트(110)이라 칭함)와 서버(115)를 포함한다. 일실시에에서, 각 클라이언트(110', 110")는 각각 웹브라우저(135',135")(총칭하여, 이하에서는,"135"라 칭함)를 포함한다. 2개의 클라이언트(110', 110")만이 도시되어 있지만, 컴퓨터 시스템(200)은 임의 개수의 클라이언트(예, 1, 3,또는 50개)를 포함할 수 있다.
클라이언트(110)는 임의의 퍼스널 컴퓨터(예, x86 계열, 펜티엄 계열, 680x0 계열, 파워PC, PA-RISC, MIPS 계열 마이크로프로세서기반), 스마트 또는 더미 터미널, 네트워크 컴퓨터, 무선 장치, 정보 어플라이언스, 워크스테이션, 미니컴퓨터, 메인프레임 컴퓨터 또는 기타 컴퓨터 장치일 수 있다. 클라이언트(110)에 의해 지원되는 운영체제는 마이크로소프트사의 윈도우계열 운영체제, MacOS, JavaOS 및 UNIX의다양한 변종(예, Solaris, SunOS, Linux, HP-UX, A/IX, 및 BSD-기반 배포물)중 어느 하나일 수 있다.
일 실시예에서, 웹브라우저(135)는 서버(115)로의 통신을 위한 보안소켓층(Secure Socket Layer: SSL) 지원을 이용한다. SSL은 넷스케이프 커뮤니케이션사(캘리포이나, 마운트 뷰 소재)에서 개발한 보안 프로토콜이며 IETF(Internet Engineering Task Force)에 의해 표준으로 공표되어 있다. 웹브라우저(135)는 대안적으로 Terisa System(캘리포니아, 로스 알토스 소재)에서 개발한 보안 HTTP(SHTTP), HTTP over SSL(HTTPS), 마이크로소프트사에서 개발한 개인통신 기술(Private Communication Technology: PCT), IETF사에서 표준 공표된 트랜스포트 레벨 보안(Transport Level Security: TLS)와 같은 다른 보안 프로토콜을 이용하여 서버(115)에 접속될 수 있으며, 이에 한정되는 것은 아니다.
웹브라우저(135)에 대하여 전술하고 이후에서 설명하겠지만, 대안적으로 클라이언트(110)는 웹브라우저(135) 없이도 서버(115)로부터 콘텐트를 획득할 수 있다. 예를 들어, 클라이언트(110)는 웹을 액세스하지 않고, 대신에 서버(115)와 직접 통신하는 통신 디바이스 또는 모듈을 이용하여 서버(115)로부터 콘텐트를 획득할 수 있다. 더욱이, 서버(115)와 클라이언트(110)사이의 통신에 사용된 프로토콜은 HTTP로서 기재되고 있지만, 다른 프로토콜도 사용가능하다.
전술한 바와 같이, 일실시예에서, 각 클라이언트(110)는 네트워크(125)를 통해 서버(115)로부터 콘텐트를 다운로드할 수 있다. 네트워크(125)는 LAN, WAN, 또는 인터넷 또는 월드와이드웹(즉, 웹)과 같은 네트워크의 네트워크일 수 있다. 또다른 실시예에서, 제1 클라이언트(110')와 제2 클라이언트(110")는 상이한 네트워크를 통해 서버(115)와 통신한다. 구체적으로, 각 클라이언트(110', 110")는 네트워크(125)를 통과하는 개별 클라이언트-서버 채널(120', 120")(이하에서는 클라이언트-서버 통신 채널(120)로 통칭됨)을 통해 서버(115)와 통신할 수 있다.
통신 채널(120', 120")의 예로서, 표준 전화선, LAN 또는 WAN 링크(예, T1, T3, 56kb, x.25), 브로드밴드 접속(ISDN, 프레임 릴레이, ATM) 및 무선 접속을 들 수 있다. 통신채널(120', 120")을 통한 접속은 다양한 통신 프로토콜(예, HTTP, HTTPS, TCP/IP, IPX, SPX, NetBIOS, 이더넷, RS232, 메시징 어플리케이션 프로그래밍 인터페이스(MAPI) 프로토콜, 실시간 스트리밍 프로토콜(Real-time streaming protocol: RTSP), 사용자 데이터그램 프로토콜 스킴용 실시간 스트리밍 프로토콜(RTSPU), 리얼네트워크사에서 개발한 프로그레시브 네트워크 멀티미디어(Progressive Network Multimedia :PNM) 프로토콜, 제조 메시지 사양(manufacturing message specification: MMS) 프로토콜 및 직접 비동기 접속)을 이용하여 개설될 수 있다.
일 실시예에서, 서버(115)는 클라이언트(110)에 콘텐트(예, 웹 페이지)를 전달한다. 서버(115)는 클라이언트(110)에 대하여 전술한 종류와 같은 클라이언트(110)와 통신할 수 있는 임의의 개인용 컴퓨터일 수 있다. 또한, 서버(115)는 임의의 운영체제를 지원할 수 있으며, 이러한 예는 클라이언트(110)에 대해 전술한 예들이다.
일 실시예에서, 서버(115)는 클라이언트(110)에 의해 이용될 수 있는 애플리케이션(130)을 호스팅한다. 이러한 애플리케이션의 예에는 마이크로포스트 워드와 같은 워드프로세싱 프로그램과 마이크로소프트 액셀과 같은 스프레드쉬트 프로그램(이들 모두 마이크로소프트사에서 개발했음), 재정 보고서 프로그램, 고객 등록 프로그램, 기술지원정보 제공 프로그램, 고객 데이터베이스 애플리케이션, 또는 애플리케이션 세트 관리자가 포함될 수 있다.
서버(115)는 사용자 세션 메커니즘(205)을 또한 포함한다. 사용자 세션 메커니즘(205)은 서버(115)와 사용자간의 하나 이상의 세션을 개설하고 관리한다. 일 실시예에서, 사용자 세션은 동일하게 식별된 사용자로부터 발생한 일련의 HTTP 요청을 포함한다. 일부 실시예에서, 요청은 애플리케이션(130)으로 어드레싱된다(addressed). 사용자 세션을 개설하라는 요청이 동일한 웹브라우저(135)(따라서, 클라이언트(110))로부터라기보다는 동일한 사용자로부터 발생하기 때문에, 사용자 세션 메커니즘(205)은 상이한 웹브라우저 및/또는 상이한 클라이언트의 동일한 사용자와 하나의 사용자 세션을 유지할 수 있다. 또한, 사용자 세션 메커니즘(205)은 동일 또는 복수의 클라이언트(110)를 통해 서버(115)와 사용자간의 복수의 사용자 세션을 개설하고 유지할 수 있다.
일 실시예에서, 사용자 세션 메커니즘(205)은 서버(115)상에서 실행하는 소프트웨어 모듈이다. 사용자 세션 메커니즘(205)은 서버(115)에 사용자 세션 능력을 추가하기 위해 서버(115)에 "플러그인(plug into)"하는 외부 소프트웨어 모듈일 수도 있다. 시간에 의해 제약받는 HTTP 세션과는 달리, 특정 사용자와 사용자 세션 메커니즘(205)간의 사용자 세션은 임의 시간 기간에 종속되지 않는다. 더 나아간 실시예에서, 사용자 세션 메커니즘(205')은 애플리케이션(130)의 서브루틴 또는 프로세스와 같은 애플리케이션(130)의 일부를 실행한다.
또한, 서버(115)는 서버팜(210) 또는 서버 네트워크(단일 개체로서 관리되는 하나 이상 서버의 논리 그룹)의 구성원일 수 있다. 일 실시예에서, 서버팜(210)은 3개의 웹서버(115,115', 115","115"로 통칭됨)를 포함한다. 도 2에 도시된 실시예가 3개의 웹 서버(115)를 포함하지만, 서버팜(210)은 임의 개수의 서버를 포함할 수 있다. 다른 실시예에서, 서버팜(210)은, 기업 인트라넷, 가상사설망(VPN), 또는 보안 엑스트라넷과 같이 허가되지 않은 개인들에 의해 액세스될 수 없는 보호형 네트워크이다. 또한, 서버팜(210)을 구성하는 서버들은 전술한 임의의 프로토콜을 이용하여 전술한 네트워크(예, WAN, LAN)중 어느 하나를 통해 통신할 수 있다.
서버(115)에 대해 좀더 상세히 설명하기 위해, 도 3을 참조하면, 일 실시예에서, 서버(115)는, 수신기(305), 클라이언트 세션 메커니즘(310), 메모리 요소(315), 사용자 세션 메커니즘(205) 및 애플리케이션(130)을 포함한다. 이들 구성요소들은 서버(115)가 개설된 클라이언트 세션이 종료된 후라도 사용자 세션을 생성하고 유지하는 것을 가능케 한다.
구체적으로, 일 실시예에서, 수신기(305)는 클라이언트(110)로부터 서버(115)와의 통신 세션을 개설하라는 하나 이상의 요청(320)을 수신하는 소프트웨어 모듈이다. 따라서, 일 실시예에서, 요청(320)은 수신기(305)에 어드레싱된다. 요청(320)은, 예를 들어, 로그인하고 마이크로소프트 워드와 같은 애플리케이션(130)을 이용하고자 하는 요청일 수 있다. 일 실시예에서, 수신기(305)는 애플리케이션(130)내에서 실행한다. 다른 실시예에서, 수신기(305)는 서버(115)상에서 독립적으로 실행하는 소프트웨어 모듈이거나 서버(115)의 또다른 모듈(예, 사용자 세션 메커니즘(205))의 일부일 수 있다.
또한, 서버(115)는 수신기(305)와 통신하는 클라이언트 세션 메커니즘(310)을 포함한다. 클라이언트 세션 메커니즘(310)은 서버(115)와 클라이언트(110)간의 HTTP 통신 세션을 개설하고 관리하는 소프트웨어 모듈이다. 이러한 관리의 일부로서, 클라이언트 세션 메커니즘(310)은 클라이언트(110)와 서버(115)간의 각 통신 세션과 연관된 세션 데이터를 저장하고 유지한다. 일 실시예에서, 클라이언트 세션 메커니즘(310)은 메모리 요소(315)내에 세션 데이터를 저장한다.
메모리 요소(315)는, DRAM, 스태틱 RAM, 동기 DRAM(SDRAM), 더블 데이터 속도 동기 동적 RAM(DDR SDRAM), 전기적으로 소거가능한 프로그래밍 판독전용 메모리(EEPROM), 또는 프로그래머블 판독전용 메모리(PROM)와 같은 임의의 표준 메모리 디바이스일 수 있다. 메모리 요소(315)는 내부에 위치하거나 서버(115)의 외부에 위치할 수 있다. 메모리 요소(315)의 부가적인 예로서, 영구 데이터베이스(예, 영구적 사용자 세션 데이터베이스), 자기 디스크, 자기-광학 드라이브를 들 수 있다. 일부 실시예에서, 애플리케이션(130)은 또한 메모리 요소(315)내의 정보를 액세스하고 저장할 수 있다.
이하에서 자세히 설명하는 바와 같이, 일 실시예에서, 클라이언트 세션 메커니즘(310)은 하나 이상의 클라이언트 세션과 연관된 세션 데이터를 저장하기 위해 클라이언트 세션 객체(325)를 생성할 수 있다. 또한, 사용자 세션 메커니즘(205)은 하나 이상의 사용자 세션과 연관된 세션 데이터를 저장하기 위해 사용자 세션 객체(330)를 또한 생성할 수 있다.
클라이언트 세션의 개설 이후 임의의 시점에서, 서버(115)는 통신 세션을 종료할 것이다. 일 실시예에서, 통신 세션의 종료는 구체적인 종료 메시지에 응답하여 이루어진다. 일부 실시예에서, 종료 메시지는, 사용자가 웹브라우저(135)를 닫을 때와 같이, 클라이언트(110)상의 사용자에 의해 수행된 동작에 응답하거나 클라이언트(110)로부터 전송된 메시지일 수 있다. 대안적으로, 서버(115)가 선정된 기간동안 클라이언트 통신 세션에 대하여 클라이언트(110)로부터 어떠한 정보도 수신하지 못하는 때에 종료 메시지가 수신될 수 있다. 즉, 클라이언트(110)의 사용자가 너무 오랫동안 유휴 상태로 있는 경우에, 서버(115)는 클라이언트 세션을 종료시킬 수 있다.
클라이어트 세션이 일단 종료되면, 통상적으로 서버(115)는 통신 채널이 완료되었기 때문에 세션 데이터를 무시한다. 그러나, 사용자가 이후에 동일하거나 상이한 클라이언트(110)를 통해 사용자의 통신 세션에 복귀할 수 있도록 하기 위해, 사용자 세션 메커니즘(205)은 클라이언트 세션의 종료후에도 세션 데이터를 보존한다.
또한, 소프트웨어(130, 205, 305, 310, 315, 325, 330)의 어떠한 조합도 하나의 모듈로 결합될 수 있다. 예를 들어, 사용자 세션 메커니즘(205)과 클라이언트 세션 메커니즘(310)은 하나의 세션 메커니즘 모듈(335)로 통합될 수 있다. 또한, 소프트웨어 모듈(130, 205, 305, 310, 315, 325, 330, 335)의 일부 또는 전부가 서버(115)의 내부 또는 외부에 위치할 수 있다.
서버(115)에 의해 수행되는 단계의 개요도로서, 도 4를 참조하면, 수신기(305)는 애플리케이션(130)으로의 액세스와 같이, 서버(115)와 통신 세션을 개설하려는 요청(320)을 제1 클라이언트(110')로부터 수신한다(단계 405). 일 실시예에서, 수신기(305)가 요청(320)을 일단 수신하면, 사용자 세션 메커니즘(205)은 제1 클라이언트(110')를 작동시키는 사용자와 서버(115)간에 사용자 세션을 개설한다(단계 410).
다음, 서버(115)는 제1 클라이언트(110')와 서버(115)간에 클라이언트 세션을 개설한다(단계 415). 전술한 바와 같이, 클라이언트 세션 메커니즘(310)은 클라이언트 세션동안 이에 연관된 세션 데이터를 저장한다. 클라이언트 세션 메커니즘(310)은 서버(115)가 단계(420)에서 (예를 들어, 타임아웃 또는 종료 메시지에 응답하여) 클라이언트 세션을 종료하기로 결정할 때까지 클라이언트 세션중의 세션 데이터를 계속해서 저장한다. 이러한 결정후에, 서버(115)는 클라이언트 세션을 종료하고(단계 425), 사용자 세션 메커니즘(205)는 사용자 세션 데이터를 저장하는 책임을 인수한다.
서버(115)는 그 후에 사용자의 통신 세션을 계속하려는 요청을 제2 클라이언트(110")로부터 수신한다(단계 430). 그러면, 사용자 세션 메커니즘(205)은 사용자 세션을 재활성시킨다(단계 435). 이전 클라이언트 세션의 종료에도 불구하고, 사용자 세션의 재활성은 사용자로 하여금 상이한 머신(예, 제2 클라이언트(110"))상에서 상이한 시간ㅇ에 사용자 작업을 계속하는 것을 가능케 해준다.
사용자 세션 개설과 관련하여 좀더 상세히 살펴보기 위해 도 5를 참조하면, 서버(115)가 (단계(405)에서 전술한 바와 같이) 사용자 세션을 개설하라는 요청을 제1 클라이언트(110')로부터 수신한 후에, 서버(115)는 사용자 세션 개설 이전에 단계(510-520)에서 사용자를 인증한다. 인증 프로세스는 사용자(115)가 사용자의 로그인 명칭 및 패스워드와 같은 사용자 증명정보를 요청하는 단계(510)를 포함한다. 일 실시예에서, 사용자는 제 클라이언트(110')의 웹브라우저(135') 디스플레이상에 사용자 증명정보를 입력하고, 웹브라우저(135')는 이 정보를 서버(115)에 전송한다. 다른 실시예에서, 웹브라우저(135')는 사용자 검증을 위해 이러한 정보를 서버(115)에 자동 전송한다. 또다른 실시예에서, 서버(115)는 음성 인식 또는 생체학적 정보(예, 얼굴인식 또는 안구 스캐닝)를 통해 사용자를 검증한다.
서버(115)는 사용자 증명정보를 수신하기를 기다리다가(단계 515), 서버(115)가 수신된 사용자 증명정보를 인식하는지를 판단한다(단계 520). 일 실시예에서, 서버(115)는 서버(115)가 메모리 요소(315)에 저장해둔 사용자 증명정보 목록을 통해 수신된 사용자 증명정보를 검사한다. 서버(115)가 단계(520)에서 사용자를 인식하지 못하면(예, 서버(115)가 수신된 사용자 증명 정보를 인식하지 못하면), 서버(115)는 사용자 증명정보에 대한 요청을 계속한다. 일 실시예에서, 서버(115)는 제1 클라이언트(110')와의 통신을 종료하기 이전에 고정된 회수만큼만 사용자 증명 정보를 요청한다. 서버(115)는 선정된 시간 기간동안 단계(515)에서 사용자의 어떠한 증명 정보도 수신하지 못하는 경우에 제1 클라이언트(110')와 통신을 종료할 수도 있다.
서버(115)가 사용자 증명 정보를 인식하고 이에 따라 사용자를 확인한 경우에(단계(520), 서버(115)는 제1 클라이언트(110')와의 클라이언트 세션 개설을 위해 인증 쿠키를 생성한다(단계 525). 일 실시예에서, 서버(115)는 제1 클라이언트(110')에, 예를 들어, 하나 이상의 HTTP 헤더의 부분으로서, 인증 쿠키를 전송한다. 또한, 일부 실시예에서, 서버(115)는 또한 사용자 확인을 위해 나중에 사용하기 위해 인증 쿠키로 전송된 데이터 사본을 또한 보유한다. 일 실시예에서, 서버(115)는 인증 쿠키와 연관된 클라이언트 세션 객체(325)를 생성한다(단계 530). 따라서, 제1 클라이언트(110')와 서버(115)간의 클라이언트 통신 세션중에, 서버(115)는 클라이언트 세션 객체(325)에 클라이언트 세션과 연관된 세션 데이터를 저장한다.
단계(535)에서, 서버(115)는 단계(510-520)에서 기인증된 사용자와 관된 사용자 세션 객체(330)를 또한 생성한다. 사용자 세션이 동일한 사용자를 위한 클라이언트 세션에 관련되도록 서버(115)는 사용자 세션과 클라이언트 세션을 연관시킨다(단계 540). 일 실시예에서, 서버(115)는클라이언트 세션 객체(325)를 사용자 세션 객체(330)와 링크시킴으로써 사용자 세션과 클라이언트 세션을 연관시킨다. 또다른 실시예에서, 서버(115)는 클라이언트 세션 식별자와 사용자 세션 식별자간의 매핑을 유지함으로써 사용자 세션과 클라이언트 세션을 연관시킨다. 일 실시예에서, 서버(115)는 자신이 클라이언트 세션 객체(325)에 저장한 데이터가 클라이언트 세션 종료후에도 사용자 세션 객체(330)에 의해 액세스될 수 있도록 객체들(325, 330)을 연관시킨다.
일실시예에서, 사용자 세션 메커니즘(205)이 사용자 세션을 생성한 후에 통신 세션을 개설하라는 후속 요청(320)을 수신한 때에, 서버(115)는 요청자 헤더의 인증 쿠키와 서버(115)가 미래의 사용자 확인을 위해 저장해둔 쿠키와 연관된 데이터를 비교한다. 수신된 쿠키의 정보가 저장된 데이터와 일치하면, 서버(115)는 현재 요청(320)을 클라이언트 세션과 연관시킨다. 일 실시예에서, 이러한 연관은 기생성되어 사용자에 의해 사용된 것과 동일한 사용자 세션내에 클라이언트 세션을 생성하는 것을 포함한다.
제1 클라이언트(110')와의 클라이언트 세션 종료 이후에 서버(115)가 수행하는 단계들에 관하여 좀더 상세히 살펴보기 위해, 도 6을 참조하면, 서버(115)는 종료 메시지의 수신을 판단한 후에 HTTP 헤더로부터 인증 쿠키를 제거한다(단계 605). 그 다음에, 제1 클라이언트(110')아의 클라이언트 세션 종료에도 불구하고 나중에 사용자가 동일한 세션 데이터를 액세스할 수 있도록 서버(115)는 클라이언트 세션 객체(325)에 기저장된 클라이언트 세션 데이터를 사용자 세션 객체(330)에 전달한다(단계 610). 단계(615)에서, 서버(115)는 사용자 세션과 클라이언트 세션간의 연관성을 제거한다. 일실시예에서, 서버(115)는 클라이언트 세션 객체(325)를 삭제한다.
도 7을 참조하면, 도 4(단계 430 및 435)에서 간단히 설명된 바와 같이, 서버(115)가 제1 클라이언트(110')와 클라이언트 세션을 종료하기로 판단한 후에, 사용자는 동일한 사용자 세션을 재활성시키라는 요청을 제2 클라이언트(110")로부터 전송할 수 있다(단계 705). 예를 들어, 사용자의 회사 컴퓨터로부터 서버(1150에 접속했던 사용자가 출장중인 경우에 발생할 수 있다. 사용자는 사용자의 회사 컴퓨터상에서 기개설된 통신 세션을 계속하기를 선호할 수 있지만, 사용자는 여행중에 단지 랩탑(예, 제2 클라이언트(110"))에 대한 액세스만이 가능할 수 있다. 이러한 상황에서, 예를 들어, 사용자는 그의 랩탑 컴퓨터를 이용하여 이전 사용자 세션을 재활성시키고자 하는 사용자의 소망을 표현한 요청을 서버(115)에 전송할 수 있다.
단계(710)에서, 서버(115)는 이전 통신 세션에 생성했던 세션 데이터에 대한 액세스를 가능케하기 이전에 사용자를 인증한다. 이러한 인증 프로세스는 도 5의 단계(510-520)에 관련하여 상술한 바 있다. 일단 사용자를 인증하면, 서버(115)는 도 5의 단계(525)에 전술한 바와 같이 인증 쿠키를 생성할 수 있다(단계 715). 또한, 서버(115)는 서버(115)와 제2 클라이언트(110")간의 새로운 클라이언트 세션을 개설하기 위해 클라이언트 세션 객체(325)를 생성할 수 있다(단계 720).
일 실시예에서, 다음에 서버(115)는 사용자의 증명 정보(예, 사용자 이름, 사용자 패스워드 또는 기타 사용자 식별자)와 연관된 사용자 세션 객체(330)를 메모리 요소(315)에서 찾는다. 연관된 사용자 세션 데이터 및 사용자 세션을 찾은 후에(단계 725), 서버(115)는 클라이언트 세션과 사용자 세션을 연관시킨다(단계 730). 서버(115)는 도 6의 단계(610)에서 사용자 세션 객체(330)에 이미 전송된 세션 데이터를 검색하고 클라이언트 세션 객체(325)에 전송하여 클라이언트 세션 메커니즘(310)이 세션 데이터를 관리하고 갱신할 수 있도록 해준다.
사용자 세션에 대하여 좀더 상세히 살펴보기 위해, 도 8을 참조하면, 일 실시예에서, 사용자 세션 메커니즘(205)은 사용자 통신 세션 동안의 상태를 유지하도록 사용자 세션에 상태를 지정한다. 사용자 세션에 상태를 지정함으로서 사용자 세션의 재활성을 가능케 한다. 구체적으로, 사용자 세션 메커니즘은 사용자 세션에, 활성 상태(805), 정지 상태(810), 또는 완료 상태(815)를 지정할 수 있다.
일 실시예에서, 사용자 세션은 활성 상태(805)에서 시작한다. 사용자 세션은 클라이언트 세션이 클라이언트(110)와 서버(115)간에 개설되어 있는 한은 활성 상태(805)에 있게 된다. 따라서, 일 실시예에서, 사용자 세션 메커니즘(205)은 시작 이벤트(820)에 응답하여 사용자 세션에 활성 상태(805)를 지정한다. 시작 이벤트(820)의 예로서, 단계(도 4의 405)에서 전술한 바와 같이, 서버(115)와 사용자 통신을 개설하고자 하는 요청을 클라이언트(110)로부터 수신하는 것을 들 수 있다. 사용자 세션 메커니즘(205)은 연결해제 이벤트(825)(예, 종료 메시지)가 발생할 때까지 사용자 세션을 활성 상태(805)로 유지한다. 서버(115)가 연결해제 이벤트(825)를 겪을 때에, 사용자 세션 메커니즘(205)은 사용자 세션 상태를 활성 상태(805)로부터 정지 상태(810)로 재지정한다. 그런 후에, 서버(115)가 계속 이벤트(830)(예, 다른 클라이언트상의 동일한 사용자로부터 이전 사용자 세션을 계속하려는 요청)를 수신하면, 사용자 세션 메커니즘(205)은 사용자 세션 상태를 정지 상태(810)에서 다시 활성 상태(805)로 재지정한다. 따라서, 사용자 세션 메커니즘(205)은 사용자가 원하는 만큼 여러번 사용자 세션 상태를 활성 상태(805)에서 정지 상태(810)로 (또는 그 반대로) 지정 및 재지정할 수 있다. 구체적으로, 사용자 세션 메커니즘(205)은 서버가 계속 이벤트(830) 및/또는 연결해제 이벤트(825)를 수신할 때마다 사용자 세션 상태를 활성에서 정지로 그리고 그 반대로 변경시킬 수 있다.
또한, 전술한 바와 같이, 서버(115)는 종료 이벤트(835)(예, 사용자 세션 종료 메시지를 통해)의 수신에 따라 사용자 세션을 종료한다. 종료 이벤트(835)를 수신하면, 사용자 세션 메커니즘(205)은 사용자 세션 상태를 활성 상태(803)에서 완료 상태(815)로 전환한다. 일실시예에서, 사용자 세션 상태는 클린업 이벤트(840)에 응답하여 정지 상태(810)에서 완료 상태(815)로 전환할 수 있다. 일실시예에서, 클린업 이벤트(840)는 (서버(115), 사용자 세션 메커니즘(205) 등의) 관리자에 의해 취해지는 명령 또는 동작이다. 또다른 실시예에서, 임의의 정지된 세션이 선정된 시간 기간(예, 한 달)을 넘어서 정지된 상태로 남아있는지를 주기적으로 판단하기 위해 관리 프로그램이 정지된 세션을 검사한다. 이러한 정지 세션이 존재한다면, 사용자 세션은 미래에 사용자에 의해 재활성될 가능성이 적다. 따라서, 관리 프로그램은 이러한 세션 상태를 완료 상태(815)로 전환할 수 있다.
도 9 및 10을 참조하면, 사용자 세션의 상태 변화의 스케쥴(900)과 사용자 세션 상태에 관련하여 서버(115)에 의해 수행되는 단계들이 도시되어 있다. 서버(115)(즉, 수신기(305)는 제1 클라이언트(110')로부터 제1 시작 이벤트(820')(예, 서버(115)와 통신을 개설하라는 요청)를 수신한다(단계 1005). 제1 시작 이벤트(820')를 수신하면, 사용자 세션 메커니즘(205)은 사용자와 이전에 연관된 임의의 사용자 세션(즉, 정지 상태(810)의 사용자 세션)이 있는지 메모리 요소를 검사한다(단계 1010). 일 실시예에서, 전술한 바와 같이, 이는 사용자를 인증한 후에 일어난다. 사용자 세션 메커니즘(205)이 단계(1010)에서 상기 확인된 사용자에 대해 어떠한 사용자 세션도 존재하지 않는 것으로 판단한다면, 사용자 세션 메커니즘(205)은, 도 5에 대하여 전술한 바와 같이, 사용자에 대한 새로운 사용자 세션을 생성한다(단계 1020). 따라서, 전술한 바와 같이, 사용자 세션 메커니즘(205)이 제1 사용자 세션을 생성한 때에, 사용자 클라이언트 세션 메커니즘(310)은 제1 클라이언트 세션(905)를 또한 생성한다. 또한, 클라이언트 세션 메커니즘(310)은 초기 클라이언트 세션 객체(325')를 생성하고 이 객체(325')에 디폴트 사용자 세션 상태를 지정한다.
제1 클라이언트 세션(905)이 진행함에 따라, 클라이언트 세션 메커니즘(310)은 초기 클라이언트 세션 객체(325') 내에 제1 클라이언트 세션(905)과 연관된 세션 데이터를 저장함으로써, 이에 의해 객체(325')의 상태가 제1 메모리 사용자 세션 상태를 갖는 초기 제1 상태 클라이언트 세션 객체(325")로 전환하도록 야기한다. 나중에, 서버(115)는 제1 클라이언트 세션(905)을 종료시키기 위해 연결해제 이벤트(825)를 수신한다. 이 시점에서, 사용자 세션 메커니즘(205)이 사용자 세션을 정지 상태(810)로 전환시킬 때, 사용자 세션 메커니즘(205)은 초기의 제1 상태 클라이언트 세션 객체(325")로부터 지속되는 사용자 세션 객체(330')로 세션 데이터를 또한 전송한다(화살표(910)로 도시됨). 따라서, 사용자 세션 메커니즘(205)은 지속되는 사용자 세션 객체(330')에 제1의 지속되는 사용자 세션 상태를 지정한다.
그러나, 사용자 세션 메커니즘(205)이, 연결해제 이벤트(825) 이후에 계속 이벤트(830)(예, 제2 클라이언트(110")로부터의 요청)를 수신한 때와 같이, 단계(1010)에서 확인된 사용자에 대한 정지된 사용자 세션(810)이 존재하는 것으로 판단한 경우라면, 서버(115)는 가장 최근에 통신을 요청한 클라이언트(110)(예, 제2 클라이언트(110"))상에 사용자에게 이용가능한 각각의 정지된 사용자 세션(810)에 대한 정보를 디스플레이한다. 일 실시예에서, 사용자 세션 메커니즘은, 사용자로부터 입력을 수신하는 것을 통해서와 같이, 단계(1030)에서 정지된 사용자 세션(810)을 재접속하기를 사용자가 원하는지를 판단한다. 사용자가 정지된 사용자 세션에 재접속하는 것을 선택하지 않은 것으로 서버(115)가 판단하면, 서버(115)는 단계(1020)에서 새로운 사용자 세션을 생성한다.
사용자가 정지된 사용자 세션(810)을 계속하는 것을 선택한다면, 사용자 세션 메커니즘(205)은, 상기 확인 사용자에 대해 하나 이상의 정지된 사용자 세션(810)이 존재하는 경우에, 사용자 세션 디스플레이로부터 사용자가 1개의 정지된 사용자 세션(810)을 선택할 때까지 기다린다. 일 실시예에서, 서버(115)는 클라이언트(110, 예, 제2 클라이언트(110"))상에서 서버의 정지된 사용자 세션(810) 디스플레이로부터의 1개의 정지된 사용자 선택(810)을 계속 이벤트(830)로서 간주한다.
대안적으로, 계속 이벤트(830)는 제2 클라이언트(110")로부터 수신된 서버(115)와 통신 세션을 개설하고자 하는 직접적인 요청일 수 있다. 이러한 실시예에서, 서버(115)는 사용자에게 어떠한 선택도 제공하지 않는다. 대신에, 서버(115)는 가장 최근에 정지된 사용자 세션(810), 가장 먼저 정지된 사용자 세션(810), 또는 미리 결정된 정지된 사용자 세션(810)에 접속할 수 있다. 일부 실시예에서, 요청은 어떠한 사용자 세션(810)이 사용자가 재활성하기를 원하는지 나타낸다.
사용자 세션 메커니즘(205)이 계속 이벤트(830)를 수신한 것으로 일단 판단하면, 사용자 세션 메커니즘(205)은 정지된 사용자 세션(810)을 활성 사용자 세션(805)으로 전환하고 클라이언트 세션 메커니즘(310)은 제2 클라이언트 세션(915)을 생성한다. 더욱이, 일 실시예에서, 사용자 세션 메커니즘(205)은 지속되는 사용자 세션 객체(330')로부터 제2의 제1 상태 클라이언트 세션 객체(325"')로 세션 데이터를 복원한다(화살표(920)로 도시됨)(단계 1035). 이러한 클라이언트 세션 객체(325"')는 처음 제1 상태 클라이언트 세션 객체(325")가 제1 클라이언트 세션(905)의 종료 이전에 가졌던 세션 데이터와 동일한 세션 데이터를 갖는다. 사용자 세션 메커니즘(205)이 세션 데이터를 복원하면, 이전에 정지되었던 사용자 세션이 계속된다(단계 1040).
제2 클라이언트 세션(915)이 진행함에 따라, 클라이언트 세션 메커니즘(310)은 제2의 제1 상태 클라이언트 세션 객체(325"')내에 새로운 세션 데이터를 저장함으로써, 이에 의해 클라이언트 세션 객체(325"')를 제2 메모리 사용자 세션 상태를 갖는 제2 상태 클라이언트 세션 객체(325"")로 전환시킨다. 사용자가 사용자 세션을 종료시킬 것을 요청하면, 서버(115)는 종료 이벤트(835)를 수신한다. 종료 이벤트(835)의 수신시에, 사용자 세션 메커니즘(205)은 제1 사용자 세션 상태를 갖는 지속되는 사용자 세션 객체(330')를 비움으로써, 공백의 지속되는 사용자 세션 객체(330')를 만든다. 서버(115)가 그 후에 제2 시작 이벤트(820')를 수신한다면, 프로세스는 제3 클라이언트 세션(925)의 생성과 같은 동작을 반복한다.
사용자 세션 메커니즘(205)의 좀더 상세한 실시예에서, 사용자 세션 메커니즘(205)은 임의의 컴퓨터 언어 또는 프레임워크로 작성될 수 있다. 예를 들어, 사용자 세션 메커니즘(205)은 애플리케이션 서비스 프로바이더(ASP.NET) HTTP 모듈 또는 HTTP 핸들러가 될 수 있다. 일 실시예에서, 사용자 세션 메커니즘(205)은 HTTP 이벤트 핸들러에 부착되는 HTTP 이벤트 모듈이다. ASP.NET 프레임워크를 이용하여, 사용자 세션 메커니즘(205)은 전술한 바와 같은 사용자 세션 능력을 제공하기 위해 HTTP 실행시간의 파이프라인에 추가되는 HTTP 모듈일 수 있다.
일실시예에서, 사용자 세션 메커니즘(205)은 사용자 세션 서비스를 제공하라는 요청을 전/후처리할 수 있다. 구체적으로 일 실시예에서, HTTP 모듈은 사용자 세션을 시작하거나 계속할 필요가 있는지를 판단함으로써 요청(320)을 전처리한다. HTTP 모듈은 사용자가 사용자 세션의 연결해제 또는 종료를 요청했는지 여부를 확인하기 위해 요청(320)을 후처리할 수 있다.
서버(115)가 메모리 요소(315)에 저장하는 클라이언트 세션 데이터 및 사용자 세션 데이터의 실시예가 도 11에 도시되어 있다. 클라이언트 세션 객체(325)는, 예를 들어, 애플리케이션 모듈(1115)내에 AppID 필드(1105)와 AppName 필드(1110)를 포함한다. 세션 모듈(1120)내에, 클라이언트 세션 객체(325)는, 예를 들어, SessionID 필드(1122), Created(생성) 필드(1125), Expires(종료) 필드(1130), LockDate 필드(1135), LockCookie 필드(1140), Timeout 필드(1145), Locked 필드(1150), SessionItemShort 필드(1155) 및 SessionItemLong 필드(1160)를 저장한다. 일 실시예에서, 클라이언트 세션 메커니즘(310)은 이들 필드에 클라이언트 세션용 세션 데이터를 저장한다. 일부 실시예에서, 이들 필드는 데이터베이스(315)에 저장된 테이블 필드이다.
일실시예에서, 클라이언트 세션 메커니즘(310)은 SessionID 필드(1122)에 클라이언트(110)와의 클라이언트 통신 세션 식별자를 저장한다. Created 필드(1125)는 클라이언트 통신 세션이 생성된 시점의 시간 스탬프를 저장할 수 있다. 이와 유사하게, Expires(종료) 필드(1130)는 클라이언트 세션이 종료하는 시간을 포함한다. LockDate 필드(1135)는세션이 액세스될 수 없도록 클라이언트 세션이 잠금(lock)된 날짜가 있는 경우에 이를 저장한다. 일 실시예에서, LockCookie 필드(1140)는 (예, 쿠키가 갱신중인 때와 같이 사용중에) 특정 쿠키에 연관된 데이터가 액세스될 수 없도록 특정 쿠키가 잠금되는지 여부에 대한 불린값(즉, 참 또는 거짓)을 저장한다. 또다른 실시예에서, LockCookie 필드(1140)는 세션 데이터가 잠금되는 경우에 메모리 요소(315)내의 클라이언트 세션 데이터의 잠금 유형을 포함한다. 일 실시예에서, 3가지 가능한 잠금 유형, 판독 잠금(Read Lock), 기록 잠금(Write Lock) 및 스핀 잠금(Spin Lock)이 존재한다. 일 실시예에서, 판독 잠금은 프로그램이 세션 데이터를 기록하는 것은 방지하면서 다수의 프로그램들이 동시에 세션 데이터를 판독할 수 있도록 설정된다. 또한, 기록 잠금은 하나의 프로그램이 세션 데이터를 기록중인 때에 다른 프로그램이 세션 데이터를 판독하거나 기록하지 못하도록 한다. 부가적으로, 일실시예에서, 스핀 잠금은 하나의 프로그램이 세션 데이터를 액세스하는 중일 때(즉, 판독하거나 기록중일 때) 세션 데이터의 액세스를 금지하도록 설정된다. 타임아웃 필드(1145)는, 예를 들어, 서버(115)가 입력을 수신하지 못하기 때문에 클라이어트 세션을 종료하는 시간값을 저장한다. 일 실시예에서, 잠금 필드(1150)는 데이터가 잠금되어 있음을 나타내는 불린값이므로, 이에 따라, 클라이언트 세션이 세션 데이터를 사용중인 동안에(예, 기록 및/또는 판독) 데이터의 액세스가 금지된다. SessionItemShort 필드(1155) 및 SessionItemLong 필드(1160)는 서버(115)가 세션 데이터를 저장하는 필드일 수 있다.
사용자 세션 메커니즘(205)은 클라이언트 세션 메커니즘(310)에 대한 부가적인 정보를 저장한다. 구체적으로, 사용자 세션 메커니즘(205)은 사용자 세션 객체(330)의 세션 사용자 모듈(1180)내에 USerID 필드(1165), UserName 필드(1170) 및 AuthType 필드(1175)를 저장한다. 일 실시예에서, UserID 필드(1165)는 사용자에 대한 유일한 식별자를 포함한다. UserName 필드(1170)는 사용자를 식별하기 위해 이용된 명칭을 포함할 수 있다. 일부 실시예에서, AuthType 필드(1175)는 웹 폼, 윈도우 또는 패스포트 인증 등을 통해 사용자를 인증하기 위해 사용되는 방법을 포함한다.
사용자 세션 객체(330)는 활성 세션 모듈(1185)을 또한 포함할 수 있다. 활성 세션 모듈(1185)은 SessionID 필드(1190), Created 필드(1195) 및 UserID 필드(1200)를 포함한다. 일 실시예에서, SessionID 필드(1190)는 사용자 세션에 대한 유일한 식별자를 포함한다. Created 필드(1195)는 사용자 세션 메커니즘(205)이 사용자 세션을 생성한 시점을 포함한다. 일 실시예에서, UserID 필드(1200)는 활성 사용자 세션에 관련된 사용자에 대한 유일한 식별자를 포함한다.
사용자 세션 객체(330)는 연결해제 세션 모듈(1205)를 또한 포함할 수 있다. 연결해제 세션 모듈(1205)은 SessionID 필드(1210), Create 필드(1215), LockCookie 필드(1220), TimeOut 필드(1225), SessionItemShort 필드(1230), SessionItemLong 필드(1235), UserID 필드(1240), 및 DisconnectTime 필드(1245)를 포함한다. 일 실시예에서, LockCookie 필드(1220)는 세션 데이터가 잠금된 경우 메모리 요소(315)의 세션 데이터의 잠금 유형(예, 판독 잠금, 기록 잠금 또는 스핀 잠금)을 포함한다. TimeOut 필드(1225)는 클라이언트(110)에 의한 아무런 동작이 없는 이후에(예, 클라이언트(10)로부터 어떠한 요청(320)도 수신되지 않음) 클라이언트 세션을 종료시키기 위한 선정된 시간을 포함한다. SessionItemShort 필드(1230)는 데이터가 선정된 개수의 바이트(예, 7000)보다 작은 경우에 세션 데이터를 저장할 수 있다. 마찬가지로, SessionItemLong 필드(1235)는 데이터가 선정괸 개수의 바이트(예, 7000)보다 큰 경우에 세션 데이터를 종료할 수 있다. 일 실시예에서, DisconnectTime 필드(1245)는 사용자 세션이 종료된 때를 포함한다.
사용자 세션의 실행은 최종 사용자에게 수많은 장점을 제공한다. 예를 들어, 사용자 세션은, 사용자가 제1 장소에서 업무를 실행하다가 다른 장소로 이동하여 상기 업무 작업을 계속하는 경우와 같이, 사용자에게 높은 이동성을 제공한다. 또한, 사용자가 작업을 계속하기 위한 올바른 지점을 찾기 위해 웹 애플리케이션(130) 주변을 네비게이션할 필요 없이, 사용자는 서버(115)로 로그인하자마자 바로 작업할 수 있다. 또한, 사용자 세션 능력은 사용자가 애플리케이션(130)을 정지할 기회를 얻기 전에 떠나야 할 필요가 있는 경우에도, 사용자의 일부 작업이 손실되지 않도록 보장한다. 또한, 사용자 세션에 대한 어떠한 시간 제한도 없으며, 사용자는 사용자가 하나의 업무에서 다른 업무로 이동할 수 있도록 복수의 사용자 세션을 동시에 활성시킬 수 있다.
이와 유사하게, 웹 개발자에도 많은 장점이 존재한다. 예를 들어, 사용자 세션 능력은 웹 애플리케이션이 사용자가 원하는 동안까지는 사용자 세션 데이터를 유지할 수 있는 특징을 단순화시킨다. 또한, 일 실시예에서, 현재 프로그래밍되는 방식과 동일한 방식으로 세션 데이터를 프로그래밍하는 것에 대하여 높은 수준의 투영성(transparency)이 존재하기 때문에, 사용자 세션의 도입은 웹 개발자에게 부담주지 않는다. 더욱이, 사용자 세션은 임의의 웹 애플리케이션(130)에 의해 사용될 수 있다. 또한, 사용자 세션은 웹 개발자에게 세션 데이터보다는 비즈니스 문제에 중점을 둘 수 있도록 많은 자유를 줄 수 있으므로, 잠재적으로는 애플리케이션(130)의 개발 시간을 단축시키게 된다.
본 발명은 하나 이상의 제조물에 구현된 하나 이상의 컴퓨터-판독 프로그램으로 제공될 수 있다. 제조물은, 플로피 디스크, CD ROM, 플레시 메모리 카드, PROM, RAM, ROM, 휴대용 저장장치, 또는 자기 테이프이 될 수 있다. 통상적으로, 컴퓨터-판독가능 프로그램은 임의의 프로그래밍 언어로 구현될 수 있다. 사용될 수 있는 언어의 일부 예에는 C, C++, 또는 자바를 들 포함한다. 소프트웨어 프로그램은 목적 코드로서 하나이상의 제조물에 저장될 수 있다.
본 발명의 특정 실시예에 대하여 설명하였으나, 본 기술분야의 당업자들에게는 본 발명의 개념을 포함하는 다른 실시예들도 이용될 수 있음이 자명하다. 따라서, 본 발명은 특정 실시예에 한정되는 것은 아니며, 이하의 청구범위에 의해서만 한정될 것이다.

Claims (27)

  1. 클라이언트-서버 네트워크를 통해 통신하기 위한 방법에 있어서, 상기 방법은,
    (a) 사용자에 의해 작동되는 제1 클라이언트로부터 서버와의 통신을 개설하고자 하는 요청을 서버가 수신하는 단계와,
    (b) 상기 수신된 요청에 응답하여, 상기 서버와 확인된 사용자간의 사용자 세션을 개설하는 단계와,
    (c) 상기 수신된 요청에 응답하여, 상기 제1 클라이언트와 상기 서버간의 클라이언트 세션을 개설하는 단계와,
    (d) 상기 클라이언트 세션의 종료에 응하여 사용자 세션 데이터를 상기 서버가 저장하는 단계와,
    (e) 상기 사용자에 의해 작동되는 제2 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 상기 서버가 수신하는 단계와,
    (f) 상기 사용자 세션을 재활성시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 단계(a)는 서버와 통신을 개설하고자 하는 요청을 상기 서버가 수신하는 단계를 포함하고, 상기 요청은 사용자를 식별해주는 방법.
  3. 제1항에 있어서, 사용자 인증 증명정보를 서버가 수신하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 단계(a)는 상기 서버와 통신을 개설하고자 하는 HTTP(HyperText Transfer Protocol) 요청을 서버가 수신하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 단계(d)는,
    (d-a) 상기 제1 클라이언트로부터 종료 메시지를 수신하는 단계와,
    (d-b) 상기 제1 클라이언트와 상기 서버간에 클라이언트 세션을 종결시키는 단계와,
    (d-c)상기 제1 클라이언트와 상기 서버간의 클라이어트 세션 종결에 응답하여 상기 서버가 사용자 세션 데이터를 저장하는 단계
    를 포함하는 방법.
  6. 제1항에 있어서, 상기 단계(d)는,
    (d-a) 선정된 시간동안 대기하는 단계와,
    (d-b) 상기 제1 클라이언트와 상기 서버간의 클라이언트 세션을 종결하는 단계와,
    (d-c) 상기 제1 클라이언트와 상기 서버간의 클라이언트 세션 종결에 응답하여 사용자 세션 데이터를 상기 서버가 저장하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서, 상기 단계(d)는 클라이언트 세션의 종결에 응답하여상기 서버가 사용자 세션 데이터를 데이터베이스내에 저장하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 개설된 사용자 세션에 상태를 지정하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 단계(b)는 사용자 세션이 활성임을 나타내는 식별자를 상기 개설된 사용자 세션에 지정하는 단계를 더 포함하는 방법.
  10. 제8항에 있어서, 상기 단계(f)는 상기 재활성된 사용자 세션이 활성임을 나타내는 식별자를 상기 사용자 세션에 지정하는 단계를 더 포함하는 방법.
  11. 제8항에 있어서, 상기 단계(d)는 사용자 세션이 정지되어 있음을 나타내는 식별자를 상기 사용자 세션에 지정하는 단계를 더 포함하는 방법.
  12. 제1항에 있어서,
    (g) 상기 사용자 세션을 종결하라는 사용자 세션 종결 메시지를 수신하는 단계와,
    (h) 상기 사용자 세션이 완료됨을 나타내는 식별자를 상기 사용자 세션에 지정하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서, 상기 저장된 사용자 세션 데이터를 삭제하는 단계를 더 포함하는 방법.
  14. 제1항에 있어서, 상기 단계(e)는,
    (e-a) 사용자에 의해 작동되는 상기 제1 클라이언트 및 제2 클라이언트중 적어도 하나로부터 서버와 통신을 개설하고자 하는 또다른 요청을 서버가 수신하는 단계와,
    (e-b) 상기 사용자와 연관되어 개설된 사용자 세션의 존재를 상기 저장된 사용자 세션 데이터를 이용하여 판단하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서, 상기 개설된 사용자 세션의 존재를 판단한 것에 응답하여 상기 사용자 세션을 재활성시키는 단계를 더 포함하는 방법.
  16. 제1항에 있어서, 상기 단계(d)는, 상기 사용자의 사용자 식별자, 상기 사용자를 식별하기 위한 명칭, 상기 사용자를 인증하기 위해 사용된 방법을 지정한 방법 표시자, 상기 사용자 세션의 유일한 식별자, 상기 사용자 세션이 생성된 시간, 세션 데이터의 잠금(lock) 유형, 타임아웃(timeout), 세션 데이터 및 연결해제 시간중 적어도 하나를 상기 서버가 저장하는 단계를 더 포함하는 방법.
  17. 제1항에 있어서, 상기 단계(b)는,
    (b-a) 상기 제1 클라이언트로부터 사용자 증명정보를 상기 서버가 수신하는 단계와,
    (b-b) 상기 사용자 증명 정보를 이용하여 상기 사용자를 인증하는 단계와,
    (b-c) 인증 쿠키를 생성하는 단계와,
    (b-d) 상기 인증 쿠키에 연관된 클라이언트 세션 객체를 생성하는 단계와,
    (b-e) 상기 사용자에 연관된 사용자 세션 객체를 생성하는 단계와,
    (b-f) 상기 클라이언트 세션을 상기 사용자 세션에 연관시키는 단계
    를 포함하는 방법.
  18. 제17항에 있어서, 상기 제1 클라이어트 및 상기 제2 클라이언트중 적어도 하나로부터 상기 서버와 통신을 개설하고자 하는 또다른 요청을 수신하는 단계를 더 포함하는 방법.
  19. 제18항에 있어서, 상기 또다른 요청으로 클라이언트 세션을 개설하기 이전에 상기 서버상의 쿠키와 상기 또다른 요청의 헤더내의 쿠키를 비교하는 단계를 더 포함하는 방법.
  20. 클라이언트-서버 네트워크를 통해 통신하기 위한 서버에 있어서,
    (a) 제1 클라이언트로부터 상기 서버와 통신 세션을 개설하고자 하는 제1 요청을 수신하고 제2 클라이언트로부터 상기 서버와 통신 세션을 개설하고자 하는 제2 요청을 수신하는 수신기와,
    (b) 상기 수신기와 통신하여 상기 서버와 통신 세션을 개설하고자 하는 상기 제1 요청에 응답하여 사용자 세션을 개설하는 사용자 세션 메커니즘과,
    (c) 상기 수신기와 통신하여 상기 서버와 통신 세션을 개설하고자 하는 상기 제1 요청에 응답하여 제1 클라이언트 세션을 개설하는 클라이언트 세션 메커니즘과,
    (d) 상기 제1 클라이언트 세션의 종료에 응답하여 사용자 세션 데이터를 저장하는 메모리 요소
    를 포함하고, 상기 사용자 세션 메커니즘은 상기 제2 요청을 수신하는 수신기에 응답하여 상기 사용자 세션을 재활성시키는 서버.
  21. 제20항에 있어서, 상기 사용자 세션 메커니즘은 이벤트 핸들러를 포함하는 서버.
  22. 제20항에 있어서, 상기 사용자 세션 메커니즘은 HTTP 핸들러를 포함하는 서버.
  23. 제20항에 있어서,상기 메모리 요소는 데이터베이스를 포함하는 서버.
  24. 제20항에 있어서, 상기 사용자 세션 메커니즘은 개설된 사용자 세션에 상태를 지정하는 서버.
  25. 제24항에 있어서, 상기 사용자 세션 메커니즘은, 활성 상태, 완료 상태 및 정지 상태중 적어도 하나를포함하는 상태를 지정하는 서버.
  26. 클라이언트-서버 네트워크를 통해 통신하기 위한 서버에 있어서,
    (a) 사용자에 의해 작동되는 제1 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 수신하기 위한 수단과,
    (b) 상기 수신된 요청에 응답하여, 상기 식별된 사용자와 사용자 세션을 개설하기 위한 수단과,
    (c) 상기 수신된 요청에 응답하여, 상기 제1 클라이언트와 클라이언트 세션을 개설하기 위한 수단과,
    (d) 상기 클라이언트 세션의 종료에 응답하여 사용자 세션 데이터를 저장하기 위한 수단과,
    (e) 상기 사용자에 의해 작동되는 제2 클라이언트로부터 상기 서버와 통신을 개설하고자 하는 요청을 수신하기 위한 수단과,
    (f) 상기 사용자 세션을 재활성시키기 위한 수단
    을 포함하는 서버.
  27. 내부에 컴퓨터-판독가능 프로그램 수단이 구현된 제조물에 있어서, 상기 제조물은,
    (a) 제1 클라이언트로부터 서버와 통신 세션을 개설하고자 하는 제1 요청을 수신하고 제2 클라이언트로부터 상기 서버와 통신 세션을 개설하고자 하는 제2 요청을 수신하기 위한 컴퓨터-판독가능 프로그램 수단과,
    (b) 상기 서버와 통신 세션을 개설하고자 하는 상기 제1 요청에 응답하여 사용자 세션을 개설하기 위한 컴퓨터-판독가능 프로그램 수단과,
    (c) 상기 서버와 통신 세션을 개설하고자 하는 상기 제1 요청에 응답하여 제1 클라이언트 세션을 개설하기 위한 컴퓨터-판독가능 프로그램 수단과,
    (d) 상기 제1 클라이언트 세션의 종료에 응답하여 사용자 세션 데이터를 저장하기 위한 컴퓨터-판독가능 프로그램 수단
    를 포함하고, 상기 제1 요청에 응답하여 사용자 세션을 개설하기 위한 컴퓨터-판독가능 프로그램 수단은 상기 제2 요청을 수신하는 수신기에 응답하여 상기 사용자 세션을 재활성시키는 제조물.
KR1020057005749A 2002-10-04 2003-10-03 클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템 KR20050055743A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/264,487 2002-10-04
US10/264,487 US20040068572A1 (en) 2002-10-04 2002-10-04 Methods and systems for communicating over a client-server network

Publications (1)

Publication Number Publication Date
KR20050055743A true KR20050055743A (ko) 2005-06-13

Family

ID=32042238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057005749A KR20050055743A (ko) 2002-10-04 2003-10-03 클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템

Country Status (8)

Country Link
US (1) US20040068572A1 (ko)
JP (1) JP2006502496A (ko)
KR (1) KR20050055743A (ko)
CN (1) CN1717676A (ko)
AU (1) AU2003299554A1 (ko)
CA (1) CA2501170A1 (ko)
RU (1) RU2005111592A (ko)
WO (1) WO2004034192A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100864940B1 (ko) * 2006-12-27 2008-10-22 (재)대구경북과학기술연구원 Oma dm 프로토콜을 위한 세션 제어 방법
KR100917985B1 (ko) * 2002-10-07 2009-09-18 퀄컴 인코포레이티드 글로벌 분산 네트워크에서 인증 세션 상태를 공유하는 방법및 장치
KR100919606B1 (ko) * 2000-06-22 2009-09-29 마이크로소프트 코포레이션 분산 컴퓨팅 서비스 플랫폼

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213040B1 (en) * 2002-10-29 2007-05-01 Novell, Inc. Apparatus for policy based storage of file data and meta-data changes over time
US7653645B1 (en) * 2002-10-29 2010-01-26 Novell, Inc. Multi-epoch method for saving and exporting file system events
US7546630B2 (en) * 2003-07-17 2009-06-09 International Business Machines Corporation Methods, systems, and media to authenticate a user
US7747759B1 (en) * 2003-11-26 2010-06-29 Teradata Us, Inc. Techniques for maintaining persistent preferences
US7735120B2 (en) * 2003-12-24 2010-06-08 Apple Inc. Server computer issued credential authentication
US8442227B1 (en) 2004-02-23 2013-05-14 Rockstar Consortium Us Lp Providing additional information with session requests
US7469293B1 (en) * 2004-02-23 2008-12-23 Nortel Networks Limited Using additional information provided in session requests
US8219609B1 (en) * 2004-05-17 2012-07-10 Oracle America, Inc. Establishing a stateful environment for a stateless environment
KR20050114047A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 원격지에 소재하는 다수의 클라이언트들을 지원하는 방법및 서버
KR100690764B1 (ko) 2004-06-08 2007-03-09 엘지전자 주식회사 아이엠피에스 클라이언트의 상태정보 동기화 방법
US7984149B1 (en) * 2004-08-04 2011-07-19 Cisco Technology, Inc. Method and apparatus for identifying a policy server
US20100299736A1 (en) * 2004-09-01 2010-11-25 Nortel Networks Limited Automated session admission
US10169765B2 (en) 2004-10-01 2019-01-01 Reachlocal, Inc. Method and apparatus for generating advertisement information for performing a marketing campaign
US20060130135A1 (en) * 2004-12-10 2006-06-15 Alcatel Virtual private network connection methods and systems
US8515490B2 (en) * 2004-12-30 2013-08-20 Alcatel Lucent Method and apparatus for providing same session switchover between end-user terminals
DE102005055293A1 (de) * 2005-08-05 2007-02-15 Osram Opto Semiconductors Gmbh Verfahren zur Herstellung von Halbleiterchips und Dünnfilm-Halbleiterchip
US7921208B2 (en) * 2005-10-24 2011-04-05 Sap Aktiengesellschaft Network time out handling
US8756326B1 (en) 2005-11-08 2014-06-17 Rockstar Consortium Us Lp Using interactive communication session cookies in web sessions
US20070106670A1 (en) * 2005-11-08 2007-05-10 Nortel Networks Limited Interactive communication session cookies
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US7587031B1 (en) * 2005-12-22 2009-09-08 Nortel Networks Limited Forced hold call handling in a VoP environment
DE102006001503B4 (de) * 2006-01-11 2016-09-15 Intel Deutschland Gmbh Verfahren und System zum Übermitteln von Zusatzdaten
US20070239528A1 (en) * 2006-03-29 2007-10-11 Reachlocal, Inc. Dynamic proxy method and apparatus for an online marketing campaign
US8635247B1 (en) * 2006-04-28 2014-01-21 Netapp, Inc. Namespace and storage management application infrastructure for use in management of resources in a storage system environment
US20080002695A1 (en) * 2006-06-28 2008-01-03 Motorola, Inc. Preservation of session information on a communications network
US7953861B2 (en) * 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
KR100804831B1 (ko) * 2006-12-28 2008-02-20 삼성전자주식회사 무선 usb 호스트 및 무선 usb 디바이스간에 세션을생성하고 관리하는 방법, 무선 usb 호스트 및 무선usb 디바이스
US8417675B2 (en) * 2007-01-19 2013-04-09 Tepa Datasolutions Co., Llc Method of distributing contact and calendar records
US8150422B2 (en) * 2007-01-19 2012-04-03 Tepa Datasolutions Co., Llc Method of displaying contact information
US20080177797A1 (en) * 2007-01-19 2008-07-24 Eldering Charles A Method of Updating Contact Information on Merchant Websites
US8234244B2 (en) * 2007-01-19 2012-07-31 Tepa Datasolutions Co., Llc Method of distributing contact and calendar records
US8346307B2 (en) * 2007-01-19 2013-01-01 Tepa Datasolutions Co., Llc Method of displaying contact information
US20080177796A1 (en) * 2007-01-19 2008-07-24 Eldering Charles A Method of Distributing Contact Information to Merchant Websites
DE102007004304A1 (de) * 2007-01-29 2008-07-31 Osram Opto Semiconductors Gmbh Dünnfilm-Leuchtdioden-Chip und Verfahren zur Herstellung eines Dünnfilm-Leuchtdioden-Chips
KR100862354B1 (ko) * 2007-04-10 2008-10-13 전자부품연구원 비동기 검색 환경을 지원하는 멀티미디어 검색 방법
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
US7769828B2 (en) * 2007-10-05 2010-08-03 International Business Machines Corporation System for provisioning time sharing option (TSO) and interactive productivity system facility (ISPF) services in a network environment
US20090113058A1 (en) * 2007-10-29 2009-04-30 Microsoft Corporation Terminal server draining
EP2541930B1 (en) * 2010-02-22 2017-04-05 Sony Interactive Entertainment Inc. Content playback device
KR101053681B1 (ko) * 2010-05-19 2011-08-02 계영티앤아이 (주) 사용자 단말 및 이의 소프트웨어 관리제어방법 및 장치
CN101977224B (zh) * 2010-10-28 2013-10-09 神州数码网络(北京)有限公司 一种基于SSL VPN设备的Web资源认证信息管理方法
WO2012116463A2 (en) * 2011-02-28 2012-09-07 Hewlett-Packard Development Company, L.P. Multi-session user interfaces
CN102546795A (zh) * 2011-12-31 2012-07-04 成都巴比塔网络技术股份有限公司 基于用户对话模式的客户机服务器持续会话的方法
US9749373B2 (en) * 2012-08-14 2017-08-29 Apple Inc. System and method for improved content streaming
US10904312B2 (en) * 2014-12-10 2021-01-26 Akamai Technologies, Inc. Server-side prediction of media client steady state
US10389652B2 (en) 2014-12-19 2019-08-20 International Business Machines Corporation Connection pool management
US20160344807A1 (en) * 2015-05-20 2016-11-24 International Business Machines Corporation Message synchronization across multiple clients
US10673956B2 (en) * 2017-11-03 2020-06-02 International Business Machines Corporation Control of an application session to accommodate different users
CN110191041B (zh) * 2019-05-05 2021-03-23 杭州迪普科技股份有限公司 局域网的设备的管理方法和装置
CN111800316B (zh) * 2020-07-16 2021-08-13 浙江百应科技有限公司 一种解决管线式http请求的服务器链路关闭的方法
US11861041B2 (en) * 2021-02-08 2024-01-02 Capital One Services, Llc Methods and systems for automatically preserving a user session on a public access shared computer
WO2023129613A1 (en) * 2021-12-30 2023-07-06 Skillz Platform Inc. System and method for remotely interacting with cloud-based client applications

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216151B1 (en) * 1995-12-13 2001-04-10 Bea Systems, Inc. Saving connection time by obtaining result of request at later reconnection with server supplied associated key
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
JP4676060B2 (ja) * 1997-11-14 2011-04-27 マイクロソフト コーポレーション 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
US6460071B1 (en) * 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
US6138120A (en) * 1998-06-19 2000-10-24 Oracle Corporation System for sharing server sessions across multiple clients
US6205480B1 (en) * 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6574239B1 (en) * 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
US6446117B1 (en) * 1998-11-09 2002-09-03 Unisys Corporation Apparatus and method for saving session variables on the server side of an on-line data base management system
US6519643B1 (en) * 1999-04-29 2003-02-11 Attachmate Corporation Method and system for a session allocation manager (“SAM”)
US6499052B1 (en) * 1999-08-11 2002-12-24 Yahoo! Inc. Electronic commerce system for referencing remote commerce sites at a local commerce site
US6526434B1 (en) * 1999-08-24 2003-02-25 International Business Machines Corporation System and method for efficient transfer of data blocks from client to server
US6434543B1 (en) * 1999-11-01 2002-08-13 Sun Microsystems, Inc. System and method for reliable caching of database connections in a distributed application
US7287093B2 (en) * 2000-08-04 2007-10-23 Mobileaware Technologies Limited E-business mobility platform
JP3754912B2 (ja) * 2000-11-13 2006-03-15 キヤノン株式会社 マルチメディアコンテンツの配信方法
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7228414B2 (en) * 2001-11-02 2007-06-05 General Instrument Corporation Method and apparatus for transferring a communication session
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US6926199B2 (en) * 2003-11-25 2005-08-09 Segwave, Inc. Method and apparatus for storing personalized computing device setting information and user session information to enable a user to transport such settings between computing devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919606B1 (ko) * 2000-06-22 2009-09-29 마이크로소프트 코포레이션 분산 컴퓨팅 서비스 플랫폼
KR100917985B1 (ko) * 2002-10-07 2009-09-18 퀄컴 인코포레이티드 글로벌 분산 네트워크에서 인증 세션 상태를 공유하는 방법및 장치
KR100864940B1 (ko) * 2006-12-27 2008-10-22 (재)대구경북과학기술연구원 Oma dm 프로토콜을 위한 세션 제어 방법

Also Published As

Publication number Publication date
WO2004034192A2 (en) 2004-04-22
CA2501170A1 (en) 2004-04-22
JP2006502496A (ja) 2006-01-19
CN1717676A (zh) 2006-01-04
RU2005111592A (ru) 2006-01-20
WO2004034192A3 (en) 2004-07-29
AU2003299554A1 (en) 2004-05-04
US20040068572A1 (en) 2004-04-08

Similar Documents

Publication Publication Date Title
KR20050055743A (ko) 클라이언트-서버 네트워크를 통해 통신하기 위한 방법 및시스템
US9438633B1 (en) System, method and computer program product for providing unified authentication services for online applications
US9787664B1 (en) Methods systems and articles of manufacture for implementing user access to remote resources
EP1839224B1 (en) Method and system for secure binding register name identifier profile
US8607322B2 (en) Method and system for federated provisioning
US6934848B1 (en) Technique for handling subsequent user identification and password requests within a certificate-based host session
US7219154B2 (en) Method and system for consolidated sign-off in a heterogeneous federated environment
US6976164B1 (en) Technique for handling subsequent user identification and password requests with identity change within a certificate-based host session
US7631346B2 (en) Method and system for a runtime user account creation operation within a single-sign-on process in a federated computing environment
EP1654852B1 (en) System and method for authenticating clients in a client-server environment
US8042162B2 (en) Method and system for native authentication protocols in a heterogeneous federated environment
JP4026928B2 (ja) サーバ・グループ間で操作を調整する方法
US8561161B2 (en) Method and system for authentication in a heterogeneous federated environment
US7526801B2 (en) Bulk transmission of messages using a single HTTP request
US20080040773A1 (en) Policy isolation for network authentication and authorization
US8219609B1 (en) Establishing a stateful environment for a stateless environment
CA2403383C (en) System, method and computer program product for providing unified authentication services for online applications
CA2398584C (en) System, method and computer program product for enrolling and authenticating communication protocol-enabled clients for access to information
JP2004178466A (ja) サービスサイト単位のセッションを確立させる方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid