KR19980086649A - 서버 그룹 사이의 액션을 조정하는 방법 - Google Patents

서버 그룹 사이의 액션을 조정하는 방법 Download PDF

Info

Publication number
KR19980086649A
KR19980086649A KR1019980015015A KR19980015015A KR19980086649A KR 19980086649 A KR19980086649 A KR 19980086649A KR 1019980015015 A KR1019980015015 A KR 1019980015015A KR 19980015015 A KR19980015015 A KR 19980015015A KR 19980086649 A KR19980086649 A KR 19980086649A
Authority
KR
South Korea
Prior art keywords
client
server
servers
controller
group
Prior art date
Application number
KR1019980015015A
Other languages
English (en)
Other versions
KR100308321B1 (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 KR19980086649A publication Critical patent/KR19980086649A/ko
Application granted granted Critical
Publication of KR100308321B1 publication Critical patent/KR100308321B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따르면, 하나 또는 그 이상의 참여 서버 및 하나 또는 그 이상의 제어기 서버를 포함하며, 각각의 참여 서버가 적어도 하나의 제어기 서버와 통신할 수 있도록 되어 있는 서버 그룹을 구비한 클라이언트-서버 환경에서, 서버 그룹 내의 서버 사이의 액션을 조정하기 위한 방법이 제공되며, 이 방법은, (1) 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, (2) 클라이언트로부터의 액션을 위한 요구를 서버 중의 한 서버로 전송하는 단계, 및 (3) 상기 요구에 응답하여 상기 서버 중 적어도 몇 개의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 다수의 서버 사이에서 통신하는 단계를 포함한다. 이 방법의 양호한 실시예는, 대화 동안에 클라이언트에 의해 클라이언트 식별 정보를 한 번 제공하는 단계, 하나 또는 그 이상의 서버에 의해 클라이언트 식별 정보를 검증하는 단계, 대화에서 보존되는 클라이언트 인증 정보를 하나 또는 그 이상의 제어기 서버에 의해 생성하는 단계, 및 대화의 잔여 부분 동안에 클라이언트를 자동적으로 인증하기 위해 상기 보존된 클라이언트 인증 정보를 이용하는 단계를 포함한다. 이 방법의 다른 실시예는, 다수의 서버에 의한 참여를 필요로하는 요구를 클라이언트에 의해 전송하는 단계 및 클라이언트로부터의 요구에 응답하여 다수의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 상기 서버 사이에서 통신하는 단계를 포함한다.

Description

서버 그룹 사이의 액션을 조정하는 방법
본 발명은 일반적으로 서버 그룹 사이에서 액션(actions)을 조정(coordinating)하기 위한 방법에 관한 것이다. 특히, 본 발명은 클라이언트의 인증(authentication), 정보의 집단화(aggregation), 그룹 트랜잭션, 및 서버 그룹을 통한 멀티-페이즈 코미트(multi-phase commits)를 조정하기 위한 방법에 관한 것이다. 본 발명의 실시예는 월드 와이드 웹 상에서의 상업(commerce)에 관한 것이다.
월드 와이드 웹 상에서 전자 상업이 급증하고 있다. 많은 회사들이 소비자로 하여금 온-라인으로 제품을 쇼핑하고 구매할 수 있도록 하는 웹 사이트 상의 가상 상점(store)을 갖추고 있다. 이들 개별적인 가상 상점으로부터의 필연적인 진전으로서, 웹 상에 가상 상점가(malls)도 나타나기 시작했다.
실제적인 상점가 처럼, 가상 상점가도 회사와 소비자 모두에게 유익한 기회를 제공한다. 회사는 상점가에 대한 그 가시성(visibility)으로부터 이익을 얻을 가능성이 있다. 예를 들어, 가상 상점가의 가상 상점은 원래 다른 상점으로부터 상품을 구매하기 위해 상점가로부터 오는 소비자의 주목을 받을 수 있다. 소비자는 상점가의 상품 및 서비스의 통합 및 조정에 대한 기회로부터 이익을 얻을 수 있다. 가상 상점가는 예를 들어, 많은 가상 상점의 상품 및 서비스의 통합된 디렉토리를 제공할 수도 있다. 또한, 가상 상점가는 그 상점가의 모든 가상 상점에 대한 단일 인증 포인트를 제공할 수도 있다. 가상 상점가는 또한, 복수의 상점을 수반하는 그룹 트랜잭션을 조정할 수 있다.
지금까지 웹 상에 나타난 가상 상점가는 2가지 접근방식 중 한 가지 방식을 취해왔다. 첫 번째로, 소규모 상점가는 독립적인 가상 상점에 대한 하이퍼링크를 웹 페이지에 제공하는 것이다. 두 번째로, 몇몇 상점가는 동일한 웹 사이트 내에 복수의 가상 상점을 제공해 왔다. 이들 후자의 상점가는 IBM 월드 애비뉴 시스템(http://mer.shop.ibm.com)과 넷스케이프 머천트 시스템(http://home.netscape.com/comprod/products/iapps/capps/mersys.html)과 같은 시스템을 이용해 왔다.
이들 접근방식은 각각 단점을 갖고 있다. 첫 번째 접근방식은 그 URL(Universal Resource Locator: 범용 자원 로케이터)의 집합을 제외하고는 개별적인 상점 사이의 조정을 제공하지 못한다는 것이다. 두 번째 접근방식은 개별 상점 사이의 조정을 제공하지만, 가상 상점이 단일 웹 사이트 내에서 구현되거나 관리되어야 하기 때문에 제한적이다. 그러므로, 두 번째 접근방식을 이용하여 가상 상점가를 결합하기 위해, 웹 상에 설립된 가상 상점을 가진 회사는 그 구현을 상당히 변경할 필요가 있을 수도 있다.
따라서, 복수의 웹 사이트에 걸쳐 분산될 수 있는 복수의 독립적인 가상 상점을 조정하기 위한 방법 및 시스템에 대한 필요성이 있다.
본 발명의 목적은 서버 그룹 사이의 액션을 조정하기 위한 방법에 관한 것이다. 본 발명의 양호한 실시예는 웹 상의 복수의 가상 상점을 조정하는 것에 관한 것이지만, 본 발명은 또한 다른 형태의 네트워크 통신에도 적용된다.
본 발명의 한 목적은, 클라이언트가 일단 인증 정보에 대해 프롬프트되면, 더 이상 인증 정보에 대한 프롬프팅 없이 어떤 상점에서도 또는 어떤 상점의 부분집합에 걸쳐서도 트랜잭션을 실행할 수 있도록, 상점의 집합 사이에서 클라이언트의 단번의 인증을 조정하기 위한 방법을 제공하는 것이다.
본 발명의 다른 목적은 복수의 상점으로부터의 정보의 통합을 조정하는 것이다. 예를 들어, 클라이언트가 방문한 각 상점의 쇼핑 바구니(basket)에 포함된 항목을 통합하고, 그 정보의 단일 디스플레이를 클라이언트에게 제공하는 것이 바람직하다. 또는 다른 예로서, 클라이언트로 하여금 검색을 위한 키워드를 명시하고, 상점의 소정의 부분집합에 검색 요구를 전송하고, 조합된 검색 결과를 클라이언트에게 전송할 수 있도록 하는 것이 바람직하다.
본 발명의 또다른 목적은 복수의 상점을 수반하는 그룹 트랜잭션에 대한 요구를 조정하는 것이다. 예를 들어, 클라이언트는 상점을 통해 일련의 항목의 전부 아니면 무(all-or-nothing) 방식의 구매를 포함하는 그룹 구매를 요구할 수도 있다. 이와 같은 구매는 예를 들어, 상이한 상점으로부터 어울리는 재킷과 바지(slacks)를 구매하는 것을 포함할 수 있다. 이러한 형태의 요구는 상점을 통한 단일의 또는 멀티-페이즈 코미트와 함께 사용될 수 있다.
본 발명의 아키텍처는 하나 또는 그 이상의 참여 서버 및 하나 또는 그 이상의 제어기 서버를 포함하며, 각각의 참여 서버가 적어도 하나의 제어기 서버와 통신할 수 있도록 되어 있는 서버 그룹을 구비한 클라이언-서버 환경이다. 이러한 환경에서, 본 발명은 서버 그룹 내의 서버 사이의 액션을 조정하는 방법에 관한 것으로서 이 방법은, (1) 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, (2) 클라이언트로부터의 액션을 위한 요구를 서버 중의 한 서버로 전송하는 단계, 및 (3) 상기 요구에 응답하여 상기 서버 중 적어도 몇 개의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 다수의 서버 사이에서 통신하는 단계를 포함한다.
본 발명의 양호한 실시예는 대화 동안에 클라이언트의 인증을 조정하고, 클라이언트에 의해 요구된 그룹 트랜잭션을 조정하는 것을 포함한다. 대화 동안에 클라이언트의 인증을 조정하기 위해, 본 발명에 따른 양호한 방법은, (1) 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, (2) 클라이언트에 의한 제1 액션에 대한 요구를 인증을 요구하는 서버로 전송하는 단계, (3) 클라이언트에 의해 클라이언트 식별 정보를 제공하는 단계, (4) 하나 또는 그 이상의 제어기 서버에 의해 상기 클라이언트 식별 정보를 검증하는 단계, (5) 하나 또는 그 이상의 제어기 서버에 의해 클라이언트 인증 정보를 생성하는 단계, (6) 하나 또는 그 이상의 서버에 의해 상기 클라이언트 인증 정보를 유지관리하는 단계, (7) 하나 또는 그 이상의 서버에 의해 대화에서 상기 클라이언트 인증 정보를 보존하기 위한 수단을 이용하는 단계, (8) 클라이언트에 의한 제2 액션에 대한 요구를 인증을 요구하는 서버 중 한 서버로 전송하는 단계, 및 (9) 클라이언트를 인증하기 위해, 대화에서 보존된 클라이언트 인증 정보와 서버에 의해 유지관리되는 클라이언트 인증 정보를 이용하는 단계를 포함한다.
클라이언트에 의해 요구된 그룹 트랜잭션을 조정하기 위해, 본 발명에 따른 양호한 방법은, (1) 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, (2) 클라이언트로부터의 다수의 서버에 의한 참여를 필요로하는 액션에 대한 요구를 서버 중의 한 서버로 전송하는 단계, 및 (3) 상기 요구에 응답하여 상기 다수의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 상기 서버 사이에서 통신하는 단계를 포함한다.
본 발명의 상기 및 다른 특징, 관점 및 장점은 다음의 상세한 설명, 첨부된 특허청구의 범위 및 첨부 도면을 참조하면 보다 잘 이해될 것이다.
도1은 본 발명의 양호한 실시예에 따라 사용되는 전체 아키텍처의 블록도.
도2는 본 발명의 양호한 실시예에 따라 클라이언트의 인증을 조정하기 위한 방법의 블록도.
도3은 본 발명의 양호한 실시예에 따라 참여 서버 사이의 그룹 트랜잭션을 조정하기 위한 방법의 블록도.
도4는 본 발명의 양호한 실시예에 따라 사용되는 다른 전체 아키텍처의 블록도.
도5는 대화시 보존되는 양호한 변수의 리스트를 도시하는 도면.
도6은 월드 와이드 웹 하이퍼링크에서 상태 정보를 동적으로 내장하기 위한 방법의 블록도.
*도면의 주요 부분에 대한 부호의 설명
101:참여 서버 102:제어기 서버
103:클라이언트 104:서버 그룹
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 클라이언트는 명령과 관련된 태스크를 수행하는 다른 프로그램 또는 애플리케이션(소위 서버로 불림)에 명령을 발생하는 프로그램 또는 애플리케이션이다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 공통 게이트웨이 인터페이스(CGI)는 월드 와이드 웹 클라이언트가 웹 사이트 상에서 프로그램의 실행을 요구할 수 있도록 하는 메카니즘이다. 웹 사이트는 CGI 프로그램을 실행하고, 그 프로그램의 출력을 클라이언트로 전송한다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 계속요구(continuation)는 클라이언트에 의한 이전의 요구에 응답하여 서버에 의해 제공되었던, 클라이언트가 서버로 전송할 수도 있는 새로운 요구이다. 하이퍼텍스트 링크(또는 하이퍼링크)는 클라이언트-서버 통신에서 계속요구의 예이다. 클라이언트가 서버로 요구를 할 때 마다, 서버는 그 응답에서 하나 또는 그 이상의 계속요구를 포함할 수 있다. 비록 서버에 의해 제공되는 계속요구는 유효한 요구가 될 수 있지만, 유용한 계속요구는 일반적으로 클라이언트에 의한 원래의 요구와 논리적으로 관련되어 있다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 대화(conversation)는 클라이언트와 서버 사이의 일련의 통신으로서, 서버는 클라이언트로부터의 각각의 요구에 대해 일련의 계속요구로 응답하며, 클라이언트는 항상 서버에 의해 제공되는 일련의 계속요구로부터 다음 요구를 선택한다. 월드 와이드 웹 상에서, 하이퍼텍스트 링크는 계속요구의 예이며, 클라이언트는 서버에 의해 제공되는 하이퍼텍스트 링크를 추종할 때 마다 서버와의 통신에 참여한다. 보다 공식적으로, 일련의 웹 페이지 h1,h2,...,hn은 (1) 페이지 h1,h2,...,hn이 모두 클라이언트에 의해 관찰된 경우 및 모든 i에 대해 1<i≤n 이 되도록, 페이지 hi가 페이지 hi-1상의 하이퍼텍스트 링크를 추종함으로써 얻어진 경우에 대화를 계속한다. 인터럽트되지 않은 대화시, 클라이언트는 역추적(backtracking) 없이 페이지 h1내지 hn을 얻기 위해 단순히 n-1 하이퍼텍스트 링크를 추종한다. 인터럽트된 대화시, 클라이언트는 적어도 한 번 역추적한다. 역추적이란, 클라이언트가 (1) 초기에 페이지 hi(여기서, 1≤i<n)를 방문하고, (2) 하이퍼텍스트 링크, 특히 요구한 URL을 추종하거나 웹 브라우저의 캐시(cache)를 이용하여 다른 웹 페이지를 관찰하고, (3) (브라우저 캐시와 같은) 메모리로부터 hi를 재로딩함으로써 페이지 hi로 복귀하는 프로세스를 말한다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 홈 페이지는, 월드 와이드 웹 이용자를 웹 사이트 상에 저장된 정보로 안내하는 내용(contents)의 테이블이다. 종종, 홈 페이지는 멀티미디어 내용을 포함한다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 '하이퍼링크 또는 하이퍼텍스트 링크는 사람이 그것을 선택할 때 활성화되는, 단어(word), 구절(phrase), 아이콘 또는 화상에 내장된, 범용 자원 로케이터(Universal Resource Locator:URL)와 같은 네트워크 어드레스이다. 클라이언트가 하이퍼링크를 활성화하면, 그 하이퍼링크에 대응하는 정보가 클라이언트로 응답되며, 웹 브라우저를 이용하여 디스플레이된다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 하이퍼텍스트 마크업 언어(HTML)는 웹 클라이언트에 의해 관찰되는 하이퍼텍스트 문서를 작성하고 접속하기 위해 웹 서버에 의해 사용되는 언어이다. 하이퍼텍스트 문서의 다른 사용에 대해서는, 1993년 4월 20일자로 Bernstein 등에 특허 허여된 미국 특허 제5,204,947호, 1994년 3월 22일자로 Bernstein 등에 특허 허여된 미국 특허 제5,297,249호, 및 1994년 10월 11일자로 Lewis 에 특허 허여된 미국 특허 제5,355,472호에 기재되어 있다. 이들 특허는 모두 IBM사에 양도되었으며, 본 명세서에 참조로써 병합되어 있다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 하이퍼텍스트 트랜스퍼 프로토콜(HTTP)은 컴퓨터 사이에서 데이터를 전송하기 위해 월드 와이드 웹에 의해 사용되는 프로토콜이다. HTTP는 클라이언트로 하여금 파일을 요구하거나 CGI 프로그램을 호출함으로써 서버로부터 데이터를 얻을 수 있도록 한다. HTTP는 스테이트리스(stateless) 프로토콜이며, 이것은 클라이언트로부터 서버로의 모든 요구가 독립적으로 처리되는 것을 의미한다. 서버는 클라이언트와의 이전의 접속에 관한 기록을 갖고 있지 않다. URL의 앞부분에 있는, http:는 사용될 프로토콜이 HTTP라는 것을 나타낸다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 인터넷은 TCP/IP 프로토콜을 이용하여 서로 접속되는 컴퓨터 네트워크 및 게이트웨이의 집합이다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 서버는 다른 프로그램 또는 애플리케이션(클라이언트로 불림)의 명령의 태스크를 수행하는 프로그램 또는 애플리케이션이다. 본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 웹 사이트는 서버가 될 수 있다. 용어 서버는 웹 사이트를 지원하는 웹 서버와 동일한 의미가 아니다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 트랜잭션은 클라이언트에 의해 서버로 전송된 요구를 말한다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 전송 제어 프로토콜/인터넷 프로토콜(TCI/IP)은 데이터를 패킷으로 분할하고, 네트워크를 통해 패킷을 루팅(route)하고, 그 수신지에서 패킷을 재구성하는 프로토콜의 집합이다. 데이터는 E-메일 텍스트에서부터 비디오까지 어느 것이 될 수도 있다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 범용 자원 로케이터(URL)는 웹 상의 정보를 유일하게 식별하거나 어드레스하는 경로이다. URL은 E-메일 어드레스와 동등한 웹으로 간주될 수 있다. URL은 그것이 다른 URL 내의 깊은 곳에 매립되어 있는 문서에 속한 경우에 곤란하게 될 수 있지만, 이들은 종종 하이퍼링크를 이용하여 억세스될 수 있다. URL의 일례로서, http://www.arun.com:80/table.html이 있다.
URL은 4개의 구성요소를 갖고 있다. 좌측으로부터 시작하여, 제1 구성요소는 사용될 프로토콜을 명시하는 것이다. 이것은 콜론(:)에 의해 URL의 잔여부분으로부터 분리되어 있다. 그 다음 구성요소는 목표로하는 호스트의 호스트명 또는 IP(인터넷 프로토콜) 어드레스이다. 이 구성요소는 좌측에서는 //에 의해 경계가 정해지고, 우측에서는 / 또는 콜론에 의해 경계가 정해진다. 제3 구성요소는 좌측에서는 콜론에 의해, 우측에서는 /에 의해 경계가 정해진다. 제4 구성요소는 실질적인 파일명 또는 프로그램명이다.
전술한 예에서, 프로토콜은 http이고, 호스트명은 www.arun.com이고, 포트 번호는 80이고, 파일명은 table.html이다. 본 예에서, http는 하이퍼텍스트 트랜스포트 프로토콜을 말하고, 파일명의 html 확장자는 하이퍼텍스트 마크업 언어를 말한다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 웹 브라우저는 개인이 월드 와이드 웹 상의 하이퍼텍스트 문서를 디스플레이할 수 있도록 하는 클라이언트 프로그램이다. 웹 브라우저는 인터넷 투어 가이드로서 작용하며, 인터넷을 항해 또는 서핑(surf)하기 위해 개인에 의해 사용될 수 있는 픽토리얼 데스크탑(pictorial desktops), 디렉토리 및 검색 툴을 완비하고 있다.
본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 월드 와이드 웹(또는 단순히 웹)은 인터넷 상의 하이퍼텍스트 문서의 집합이다. 하이퍼텍스트 문서는 다른 문서로의 하이퍼링크를 포함하며, 이것은 개인이 문서간을 항해하기 위해 사용할 수 있다. 실제적으로, 인터넷 상에서 정보를 탐색하는 사람은, 통상적으로 문서 내에서 강조된 단어 또는 구절로서 디스플레이되는 하이퍼링크를 선택함으로써 서버간 및 데이터베이스간에 전환하기 위해 웹을 사용할 수 있다. 웹 상의 자원은 URL을 통해 억세스될 수 있다. 웹은 URL에 대응하는 정보를 디스플레이하고 다른 URL에 대한 포인트-클릭(point-and-click) 인터페이스를 제공하기 위해 하이퍼텍스트 마크업 언어를 사용한다.
도1에 도시된 바와 같이, 본 발명의 양호한 실시예에 따라 사용되는 전체 아키텍처는 클라이언트(103)와 서버 그룹(104)으로 구성되며, 서버 그룹은 참여(participating) 서버(101)와 제어기 서버(102)를 포함한다. (간략성을 위해, 제어기 서버(102)는 본 명세서에서 단순히 제어기로서 언급되게 된다.) 참여 서버 및 제어기의 물리적인 배치는 중요하지 않다. 각각의 참여 서버(101)와 제어기(102)는 네트워크에 의해 접속된 독립된 컴퓨터들에 내재할 수도 있으며, 또는 이와 달리 복수의 서버가 단일 컴퓨터 상에 내재할 수도 있다. 또한, 제어기 및/또는 하나 이상의 참여 서버가 동시에 수개의 컴퓨터에 내재하는 것도 가능하다. 예를들어, 이것은 제어기 및/또는 하나 이상의 참여 서버가 확장가능한(scalable) 웹 서버로서 구현된 경우가 된다. (확장가능한 웹 서버에 대한 정보를 위해서는, D. Dias 등의 Proceedings of COMPCON '96 의 A Scalable and Highly Available Web Server를 참조하자.)
제어기(102)는 클라이언트 어카운트(account) 정보(예, 이용자 ID, 이용자 이름, 패스워드, 주소 및 전화 번호)를 유지관리한다. 도1에 도시된 바와 같이, 각각의 참여 서버(101)는 제어기(102)와 통신할 수 있으며, 클라이언트(103)는 각각의 참여 서버(101) 및 제어기(102)와 통신할 수 있다. 제어기 및 참여 서버는 HTTP와 같은 표준 프로토콜을 이용하여 서로 통신할 수 있다. 대안으로, 이들 서버는 소유자(proprietary) 프로토콜을 이용하여 통신할 수도 있다.
클라이언트(103)는 클라이언트 상태 정보를 유지관리하기 위해 제한된 또는 정의되지 않은 절차를 가진, HTTP와 같은 통신 프로토콜을 통해 참여 서버(101) 및 제어기(102)와 통신한다. 클라이언트 상태 정보를 유지관리하기 위한 제한된 또는 정의되지 않은 절차는, 프로토콜을 이용한 클라이언트와 서버 사이의 통신 형태의 부분 집합에 대해, 상태 변수(state variables)가 대화의 잔여 부분 동안에 서버에 의해 계속해서 검색될 수 있도록 프로토콜에 의해 정의된 절차를 이용한 대화에서 클라이언트의 신분 또는 클라이언트의 패스워드와 같은 상태 변수를 보존하는 것이 어렵거나 불가능하다는 것을 의미한다.
참여 서버가 수행할 수 있는 2가지 형태의 트랜잭션이 있다. 먼저, 참여 서버는 단순 트랜잭션을 수행할 수 있다. 참여 서버는 다른 참여 서버 및 제어기와 무관하게 클라이언트를 대신하여 단순 트랜잭션을 수행할 수 있다. 따라서, 클라이언트는 참여 서버로부터 직접 단순 트랜잭션을 요구할 수 있다. 두 번째로, 참여 서버는 그룹 트랜잭션을 수행할 수도 있다. 그룹 트랜잭션은 제어기의 조정하에 하나 또는 그 이상의 참여 서버에 의해 수행된다. 클라이언트는 오직 제어기로부터 그룹 트랜잭션을 요구할 수 있는 것이 바람직하다.
도2는 제어기(102)가 참여 서버 사이에서 클라이언트(103)의 인증(authenticatuon)을 조정하는, 본 발명의 양호한 실시예를 도시하고 있다. 인증은 클라이언트(103)가 그룹 서버(104) 내의 한 서버에게 그 자체의 신분을 증명하는 프로세스이다. 양호한 실시예에서, 클라이언트(103)는 단지 대화의 잔여 부분 동안에 서버 그룹 내의 소정의 서버 상의 트랜잭션을 수행하기 위해 소정의 참여 서버 또는 제어기에 의해 대화 중에 한 번만 인증 정보에 대해 촉구받을 필요가 있다.
단계(201)에서, 제어기는 바람직하게는 참여 서버와의 개방 접속(open connections)을 설정한다. 이와 달리, 제어기는 참여 서버와 통신할 필요가 있을 때마다 새로운 접속을 설정할 수도 있다. 그러나, 단계(201)에 도시된 바와 같이 개방 접속을 유지하는 것은 매번 새로운 접속을 설정하는것 보다 향상된 성능을 초래할 가능성이 매우 높다.
단계(202)에서, 클라이언트(103)는 인증없이 서버 그룹과 대화한다. 예를 들어, 클라이언트는 카탈로그(catalogs)를 브라우징할 수도 있다.
단계(204)에서, 클라이언트(103)는 인증을 필요로하는 대화의 제1 트랜잭션을 수행하기 위해 시도한다.
단계(205)에서, 클라이언트는 HTML 폼(forms)을 통해 이용자 ID와 패스워드를 입력한다. 비밀을 유지하기 위해, 클라이언트와 서버 그룹 사이에서 전달되는 정보는 보안 소켓 레이어(Secure Sockets Layer:SSL)와 같은 시스템을 이용하여 암호화되는 것이 바람직하다. (SSL에 관한 정보를 위해서는, A.O. Freier, P. Karlton, 및 P. C. Kocher 의 The SSL Protocol Version 3.0, Internet Draft, March 1996, http://home.netscape.com/eng/ssl3/ssl-toc.html을 참조하자.)
단계(207)에서, 클라이언트에 의해 교신된 서버는 클라이언트가 유효한 이용자 ID 및 패스워드를 입력했는지 검사한다. 만일 클라이언트에 의해 교신된 서버가 참여 서버이면, 그 참여 서버는 이용자 ID(401)와 패스워드를 확인하기 위해 제어기와 교신해야 한다. 만일 클라이언트가 유효 이용자 ID 및 패스워드를 입력하지 않았으면, 단계(206)에서 에러 처리가 이루어진다.
단계(206)는 여러 가지 방식으로 구현될 수 있다. 제1 대안으로서, 클라이언트는 이용자 ID 및 패스워드를 입력할 새로운 기회를 부여받을 수 있다. 제2 대안으로, 클라이언트는 새로운 이용자로서 등록할 기회를 부여받을 수 있다. 이 경우에, 클라이언트는 이름, 주소 및 전화번호와 같은 정보를 입력할 것을 촉구받을 수 있다. 제3 대안으로서, 에러 메시지에 의해 대화가 종료될 수도 있다. 마지막 대안이 에러 처리를 취급하는 양호한 방법이다. 물론, 다른 구현도 역시 가능하다.
단계(207)에서, 유효 이용자 ID(401) 및 패스워드가 입력되었으면, 제어기는 단계(208)에서 세션 ID(402)를 발생한다. 세션 ID는 대화의 지속기간 동안에 클라이언트를 인증하기 위해 사용된다. 이것은 부당한(malicious) 이용자가 세션 ID를 추측하지 못하도록 충분히 큰 키 스페이스로부터 랜덤하게 선택된다. 다음에, 제어기는 이용자 ID 및 세션 ID를 데이터베이스에 저장한다. (파일 시스템과 같은 다른 저장 방법도 역시 사용될 수 있다.) 현재의 세션 ID는 특정 이용자 ID에 대해 이전에 저장된 세션 ID위에 겹쳐 기록된다.
단계(208)에서, 클라이언트에 의해 교신된 서버는 대화에서의 이용자 ID 및 세션 ID를 상태 변수로서 보존한다. 본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 대화에서의 상태 정보를 보존한다는 것은 서버 그룹 내의 소정의 서버가 대화 동안에 클라이언트와의 미래의 통신에서 그 정보에 대해 억세스할 수 있게 되도록 정보를 보존한다는 것을 의미한다.
단계(208)에서, 서버는 또한, 방문 노드 상태 변수(403)에 그 신분을 인코드하고, 그 대화에서의 방문 노드 상태 변수를 보존한다. 방문 노드 상태 변수(403)는 인증이 이루어진 이래로 클라이언트가 방문한 참여 서버를 나타내는 하나 또는 그 이상의 상태 변수를 포함한다. 단일 변수를 이용하여 방문한 모든 서버를 나타내는 것도 가능하다. 그러나, 인증 이전에 방문한 참여 서버, 인증 이후에 방문한 참여 서버, 및 단순 트랜잭션이 수행된 참여 서버와 같이, 보다 상세한 정보를 나타내기 위해서는 복수의 변수를 사용하는 것이 바람직할 수도 있다.
제어기가 클라이언트를 인증하기 위해 그 데이터베이스에 저장한 상태 정보와 대화시 보존된 상태 정보가 반드시 동일한 것은 아니다. 한 정보가 다른 정보 보다 더 많거나 또는 더 적은 상태 변수를 포함할 수도 있다. 그럼에도 불구하고, 각각에 저장된 변수 중에서 적어도 일부는 동일하다. 예를 들어, 본 발명의 양호한 실시예에서, 이용자 ID 및 세션 ID 변수는 모두 제어기 데이터베이스에 저장되고, 대화에서 보존된다. 본 명세서 및 특허청구의 범위에서 사용되는 바와 같이, 용어 클라이언트 인증 정보는 모두 서버에 의해 저장되고, 대화에서 보존되는 변수 셋트를 말한다.
대화에서 상태 변수를 보존하는 양호한 방법은 동적 인수 내장법(dynamic argument embedding)이다. 동적 인수 내장법에서, 서버는 그것이 클라이언트로 전송하는 계속요구에 상태 정보를 순환방식으로 삽입한다. 이 방법을 이용하여, 클라이언트는 계속요구를 선택할 때마다, 계속요구의 일부로서 상태 정보를 다시 서버로 전송한다. 다음에, 서버는 필요에 따라 상태 정보를 검사하고, 요구를 처리하고, 클라이언트로 전송된 계속요구의 그 다음 셋트에 다시 한 번 상태 정보를 삽입한다.
월드 와이드 웹과 관련하여, 동적 인수 내장법은 상태 정보를 보존하도록 하이퍼링크를 변경(modify)한다. 일반적으로, 하이퍼링크는 인수 임베더(argument embedder)로서 알려진 특수한 프로그램을 호출하도록 변경된다. 인수 임베더는 하이퍼링크에 보존된 상태 정보를 웹 사이트 상의 다른 CGI 스크립트에 전달한다. 또한, 인수 임베더는 그 자체적으로 호출하기 위해 CGI 스크립트의 결과로서 생성된 출력(resulting output)에서 모든 하이퍼링크를 변경한다. 그러므로, 동적 인수 내장법을 이용하여 상태가 보존되는 대화를 추구하는 클라이언트는 인수 임베더로의 모든 호출(calls)인 하이퍼링크를 전달받는다.
도6은 웹 상의 하이퍼링크에서 상태 정보를 보존하기 위해 동적 인수 내장법을 이용하는 방법을 도시하고 있다. 단계(601)에서, 클라이언트는 웹 사이트 상의 CGI 스크립트 p1을 호출한다.
단계(603)에서, CGI 스크립트 p1은 상태 변수가 대화 중에 호출될 수도 있는 모든 CGI 스크립트로 억세스될 수 있도록 상태 변수 x1,x2,...xn가 대화에서 삽입되어야 하는지 판단한다. CGI 스크립트 p1은 대화를 계속하기 위해 클라이언트에 대한 하이퍼링크를 가진 HTML 페이지 h를 생성한다. 그러나, 클라이언트로 직접 페이지 h를 응답하는 대신에, p1은 embed1으로 불리는 인수 임베더의 모듈을 호출한다. CGI 스크립트 p1은 페이지 h 및 상태 변수 x1,x2,...xn를 embed1으로 전달한다.
단계(605)에서, embed1 모듈은 embed2로 불리는 인수 임베더의 다른 모듈을 호출하기 위해 페이지 h 내의 모든 하이퍼텍스트 링크를 변경한다. embed2로 전달되는 독립변수는 페이지 h 내의 링크가 HTML 파일에 대한 것인지 또는 CGI 스크립트에 대한 것인지 여부에 의존한다. 만일 페이지 h 내의 한 링크가 HTML 파일에 대한 것이면, embed2는 파일에 대한 독립 레퍼런스(absolute reference) 및 모든 상태 변수를 전달받는다. 만일 페이지 h 내의 링크가 CGI 스크립트에 대한 것이면, embed2는 CGI 스크립트에 대한 독립 레퍼런스, CGI 스크립트에 대한 원래의 독립변수, 원래의 독립변수의 종단(end)의 경계를 정하는 매개변수(parameter), 및 상태 변수를 전달받는다.
예를 들어, CGI 스크립트 p1이 다음의 2개의 하이퍼링크를 포함하는 HTML 페이지와 함께 상태 변수 x1=32 및 x2=45를 embed1으로 전달하는 것으로 가정하자.
(1) http://www.watson.ibm.com/mail.html
(2) http://www.watson.ibm.com/cgi-bin/prog?arg1=55
모듈 embed1은 이들 2개의 하이퍼링크를 각각 다음과 같이 변환한다.
(1)http://www.watson.ibm.com/cgi-bin/
embed2?url=//www.watson.ibm.com/mail.htmlx1=32x2=45
(2)http://www.watson.ibm.com/cgi-bin/
embed2?url=//www.watson.ibm.com/cgi-bin/progarg1=55
comma=1x1=32x2=45
제2 하이퍼링크에서 스트링 comma=1은 embed2로 하여금 상태 변수 x1 및 x2로부터 원래의 독립변수 arg1을 구별할 수 있도록 한다. 구획문자(delimiter)로서 어떤 유일한 변수 명칭도 사용될 수 있다. 만일 comma가 동일한 명칭의 다른 변수와 상충될 수 있는 위험이 있으면, 유일한 구획문자 변수 명칭을 선택하기 위해 보다 정교한(sophisticated) 방법이 사용될 수도 있다.
단계(607)에서, embed1 모듈은 변형된 하이퍼링크로 이루어진 HTML 페이지 h'를 클라이언트로 전송한다. 페이지 h' 내의 모든 하이퍼텍스트 링크는 embed2로의 호출(call)이다.
단계(609)에서, 클라이언트는 대화를 계속하기 위해 페이지 h'로부터 하나의 하이퍼텍스트 링크를 선택한다. 이 하이퍼텍스트 링크는 모듈 embed2를 호출한다.
단계(611)에서, embed2는 요구를 처리한다. 만일 embed2에 대한 독립변수가 파일을 포함하고 있으면, 그 파일이 펫치(fetch)된다. 만일 embed2에 대한 독립변수가 CGI 스크립트에 대한 호출(call)을 포함하고 있으면, 원래의 독립변수 및 상태 변수를 가진 CGI 스크립트가 호출된다. 전술한 예를 이용하여, 만일 제1 하이퍼링크가 클라이언트에 의해 선택되었으면, embed2는 파일 mail.html을 펫치하게 된다. 그러나, 만일 클라이언트에 의해 제2 하이퍼링크가 선택되었으면, embed2는 원래의 변수 arg1=55 및 상태 변수 x1=32 및 x2=45를 가진 CGI 스크립트 prog를 호출하게 된다.
단계(613)에서, 일단 HTML 파일이 펫치되거나 또는 CGI 스크립트가 호출되면, 그 결과로서 생성된 출력 및 상태 변수는 embed1으로 전달된다. 다음에, 프로세스는 단계(605)로 복귀하며, 여기서, embed1은 출력에서 하이퍼링크를 변경한다. (A. Iyengar에 의해 1996년 6월 7일자로 출원된 Preserving State in Stateless Network Protocols란 제목의 미국 특허원 제 08/660,633 호에는 동적 인수 내장법에 관해 상세하게 논의되어 있다.)
비록 동적 인수 내장법이 대화에서 상태를 보존하기 위한 양호한 방법이지만, NETSCAPE 쿠키(cookies)도 역시 사용될 수 있다. NETSCAPE 쿠키는 클라이언트에게 HTTP 객체를 응답하는 서버가 클라이언트가 저장한 상태 정보의 일부를 전송할 수 있도록 하는 비표준 HTTP 기능이다. 상태 정보에는, 상태 정보가 유효한 URL 범위의 설명이 포함되어 있다. 만일 클라이언트가 NETSCAPE 쿠키를 지원하면, 클라이언트는 클라이언트가 저장하고 있는 소멸되지 않은(unexpired) 쿠키의 범위 내에 요구의 URL이 속하는지 알기 위해 그 클라이언트가 전송한 HTTP 요구를 검사하게 된다. 만일 HTTP 요구가 쿠키에 의해 정의된 범위 내에 속하면, 클라이언트는 그 HTTP 요구를 가진 쿠키에 대응하는 상태 정보를 포함하게 된다. (NETSCAPE 쿠키에 관한 상세한 논의에 대해서는, Netscape Communications Corporation의 Persistent Client State HTTP Cookies (1996), http://home.netscape.com/newsref/std/cookie_spec.html을 참조하자.)
NETSCAPE 쿠키 이상으로 동적 인수 내장법을 이용하는데 있어 여러 가지 장점이 있다. 동적 인수 내장법을 이용하면, 모든 상태 정보의 수명(lifetime)이 대화의 수명과 연계된다. 클라이언트와 서버 그룹 사이에서 새로운 대화가 시작될 때 마다, 새로운 상태 정보가 생성된다. 쿠키를 이용하면, 상태 정보의 수명을 대화의 수명에 연계시키는 것이 불가능하다. 쿠키의 다른 단점은 그것이 표준 HTTP 프로토콜의 일부가 아니며, 따라서 모든 클라이언트 및 웹 서버와 함께 동작할 수 없다는 것이다. 이와 대조적으로, 동적 인수 내장법은 HTTP를 지원하는 어떤 서버 또는 웹 서버와도 함께 동작한다. 동적 인수 내장법의 다른 장점은 클라이언트에서 다른 어카운트에 대응하는 웹 페이지를 캐싱(caching)함으로써 복수의 어카운트에 대한 억세스가 동시에 제공될 수 있다는 것이다.
또한, 상태를 보존하기 위해 HTML 폼(forms)이 사용될 수 있다. HTML 폼은 그 폼이 클라리언트에 의해 제출될 때 서버로 응답되는 숨은 변수(hidden variables)를 폼에 내장하기 위해 서버에 의해 사용될 수 있다. 그러나, 서버는 항상 대화 동안 내내 상태 정보를 보존하기 위해 동적으로 생성되는 HTML 폼을 이용하여 클라이언트에 응답해야 하기 때문에, HTML 폼을 이용하는 것은 제한적이며, 성가신 일이다.
단계(300)에서는, 트랜잭션이 처리된다. 만일 트랜잭션이 단순 트랜잭션이면, 참여 서버 또는 제어기는 단독으로 그 트랜잭션을 처리한다. 만일 요구된 트랜잭션이 제어기로부터의 그룹 트랜잭션이면, 도3의 단계에 의해 처리가 이루어진다.
단계(209)에서, 단순 트랜젝션을 처리하는 서버는 대화를 계속하기 위한 하이퍼텍스트 링크와 함께 HTML 페이지를 클라이언트로 반송한다. 페이지가 클라이언트로 전송되기 전에, 그 페이지에 상태 정보가 포함될 수도 있다. 예를 들어, 만일 서버 그룹이 동적 인수 내장법을 이용하면, 페이지 상의 하이퍼텍스트 링크는 전술한 바와 같이 변경되어야 한다. 서버 그룹이 동적 인수 내장법을 이용하지 않는 경우에도, 시스템으로 하여금 클라이언트의 인증 이래 방문한 참여 서버를 계속 추적할 수 있도록 하기 위해 페이지 내의 하이퍼텍스트 링크를 변경할 필요가 있을 수도 있다. 예를 들어, 페이지를 전송하지 않고 있는 참여 서버에 대응하는 페이지 내의 하이퍼텍스트 링크도 필요에 따라, 방문 노드 상태 변수(403)을 갱신하게 될 CGI 스크립트를 호출하도록 변경될 수 있다.
단계(210)에서, 일단 트랜잭션이 처리되고 응답 페이지가 클라이언트로 반송되면, 클라이언트는 (가능하면 다른 정보를 입력시키는 것과 함께) 응답 페이지로부터 새로운 하이퍼텍스트 링크를 선택함으로써 대화를 계속한다.
만일 단계(210)에서 선택된 하이퍼텍스트 링크가 참여 서버를 지시하면, 단계(211)에서, CGI 스크립트는 인증이 이루어진 이래 그 서버가 방문된 적이 있는지 판단한다. 이것은 방문 노드 상태 변수(403)를 검사함으로써 이루어진다. 만일 서버가 인증 이래 방문되지 않았으면, 그 서버는 단계(212)에서 방문 노드 상태 변수(403)에 추가된다.
단계(213)에서, 클라이언트에 의해 교신된 서버는 클라이언트가 인증을 필요로 하는 트랜잭션을 수행하기 위해 시도했는지 판단한다. 만일 클라이언트가 시도하지 않았으면, 그 트랜잭션은 단계(300)에서 처리된다.
만일 서버가 인증을 필요로 하는 트랜잭션이 선택된 것으로 판단하면, 처리는 단계(214)에서 계속된다. 이 단계에서, 서버는 이용자 ID(401) 및 세션 ID(402)가 유효한지 검증한다. 만일 서버가 참여 서버이면, 본 발명의 양호한 실시예에서는 이용자 ID 및 세션 ID의 유효성을 검증하기 위해 제어기와 교신해야 된다. 만일 이용자 ID 및 세션 ID가 유효하지 않으면, 단계(215)에서 에러 처리가 이루어진다. 단계(206)와 관련하여 전술한 바와 같이, 에러 처리는 여러 가지 방식으로 이루어질 수 있지만, 서버가 에러 메시지를 포함하는 페이지로 응답함으로써 대화를 종료하는 것이 바람직하다. 만일 이용자 ID 및 세션 ID가 유효하면, 전술한 바와 같이 단계(300)에서 트랜잭션이 처리된다.
만일 클라이언트에 의해 요구된 트랜잭션이 그룹 트랜잭션이면, 도3의 본 발명의 양호한 실시예에 따라 참여 서버 사이의 조정(coordination)이 수행된다.
단계(303)에서, 제어기는 인증 이래 방문한 적이 있는 모든 참여 서버로 이루어진 참여 서버의 디폴트 그룹을 구성한다. 이 정보는 방문 노드 상태 변수(403)에 포함된다. 클라이언트는 그 자신이 선택한 참여 서버 셋트에 따라 디폴트 그룹을 수용하거나 또는 디폴트 그룹을 무시할 선택권을 갖는다.
그룹 트랜잭션은 n 페이즈(phases)(n 0)로 이루어질 수 있다. 제1 페이즈부터 n-1 페이즈는 준비 페이즈(prepare phases)로서 알려져 있다. 마지막 페이즈는 완료(commit) 페이즈로서 알려져 있다. 단계(304)에서는, 아직도 준비 페이즈가 수행될 필요가 있는지 판단한다. 만일 준비 페이즈가 수행되어야 하면, 단계(306)에서, 제어기는 단계(303)에서 정의된 그룹 내의 모든 참여 서버로 적절한 준비 메시지를 전송한다.
단계(307)에서, 제어기는 정의된 그룹 내의 모든 참여 서버로부터 응답을 수집하고, 이전의 페이즈로부터의 응답에 그 응답을 추가한다. 참여 서버는 긍정 응답 또는 부정 응답으로 응답한다. 만일 참여 서버가 타임아웃 주기 내에 응답에 실패하면, 그 응답은 부정 응답인 것으로 추정한다. 그 응답의 일부로서, 참여 서버는 HTML 텍스트를 전송할 수도 있다. HTML 텍스트의 포맷은 유연성(flexible)이 있기 때문에, 각각의 참여 서버는 그 참여 서버가 선택한 멀티미디어 내용, 하이퍼텍스트 링크, 및 이미지의 조합을 포함하는 그룹 액션에 대해 개별화된(customized) 응답을 전송할 수 있다.
단계(309)에서, 제어기는 모든 응답이 긍정인지 여부를 검사한다. 만일 어떤 참여 서버의 응답이 부정이면, 처리는 단계(311)로 이동한다. 단계(311)에서, 제어기는 단계(309)에서 긍정으로 응답한 모든 참여 서버에게 준비 페이즈가 실패했다는 것을 통지한다.
단계(312)에서, 제어기는 긍정으로 응답한 모든 참여 서버로부터의 응답을 준비 페이즈를 실패한 클라이언트와 준비 페이즈를 실패한 참여 서버에 통지하는 메시지와 함께 단일 페이지로 합병(merge)한다. 클라이언트로 반송된 페이지는 또한, 클라이언트가 대화를 계속하기 위한 하이퍼텍스트 링크를 포함한다.
만일 단계(309)에서 제어기가 정의된 그룹 내의 모든 참여 서버에 대해 준비 페이즈가 성공한 것으로 판단하면, 처리는 단계(304)로 복귀한다. 만일 모든 준비 페이즈가 성공적으로 완료되면, 처리는 단계(305)로 진행한다. 단계(305)에서, 제어기는 정의된 그룹 내의 모든 참여 서버로 완료 메시지를 전송한다.
단계(308)에서, 제어기는 정의된 그룹 내의 모든 참여 서버로부터 응답을 수집한다. 전술한 바와 같이, 참여 서버는 그 응답에 HTML 텍스트를 포함시킬 수 있다. 단계(310)에서, 제어기는 몇몇 항목(item)을 합병함으로써 클라이언트로 전송되는 단일 페이지 응답을 생성한다. 먼저, 제어기는 단계(308)에서 수신된 모든 응답을 단계(307)에서 준비 페이즈로부터 이전에 수집된 응답과 합병한다. 다음에, 제어기는 모든 준비 페이즈가 성공했다는 것을 기술하는 메시지를 추가한다. 만일 참여 서버가 단계(308)에서 타임아웃 주기 내에 응답에 실패하면, 제어기는 또한, 그 정보를 응답 페이지에 추가할 수 있다. 마지막으로, 클라이언트가 대화를 계속할 수 있도록 하는 하이퍼텍스트 링크가 포함된다. 또한, 페이지가 클라이언트로 전송되기 전에, 상태 정보를 보존하거나 또는 시스템으로 하여금 이전에 방문한 노드를 추적할 수 있도록 하기 위해 페이지의 변경이 필요할 수도 있다.
전술한 실시예에는 여러 가진 확장 및 변형이 가능하다. 한 가지 가능한 변형은 세션 ID의 수명을 제한하는 것이다. 제어기는 단계(208)에서 세션 ID가 생성될 때 각각의 세션 ID - 하루살이(ephemeral) 세션 ID로서 알려짐 - 의 생성 시간 및 수명을 기록할 수 있다. 현재 시간과 생성 시간 사이의 차가 하루살이 세션 ID의 수명을 초과할 때마다, 하루살이 세션 ID는 소멸된다. 하루살이 세션 ID의 소멸은 단계(214)에서 검사될 수 있다. 만일 클라이언트가 소멸된 하루살이 세션 ID로 트랜잭션을 시도하면, 단계(215)에서 에러 처리가 이루어진다. 소멸된 하루살이 세션 ID를 처리하는 양호한 방법은 클라이언트로 하여금 유효 ID 및 패스워드를 제출함으로써 스스로 재인증하도록 요구하는 것이다.
다른 가능한 변형은 각각의 트랜잭션 요구에 대해 새로운 세션 ID를 생성하는 것이다. 이러한 방식에 있어서, 각각의 세션 ID는 오직 하나의 트랜잭션에 대해서만 만족된다. 이러한 방법은 불법 침입자(interloper)가 세션 ID를 도용하여 어카운트로 침입하는 것을 어렵게 만든다. 이러한 변형을 구현하기 위해, 단계(214)는 이전의 세션 ID를 무효화하고, 새로운 세션 ID를 생성하고, 그 새로운 세션 ID를 기록하고, 그 새로운 세션 ID를 대화 내에서 보존하도록 변형될 수 있다.
다른 가능한 변형은 세션 ID를 클라이언트로 전송되기 전에 암호화하고, 제어기에 의해 인증되기 전에 그것을 디코드하는 것이다. 만일 동적 인수 내장법 또는 쿠키와 같은 기술이 사용되면, 암호화 기능은 세션 ID가 전달되는 URL에 근거하여 다른 인코딩을 생성할 수 있다. 그러므로, 다른 URL에 대한 억세스는 다른 암호화된 세션 ID를 필요로하게 된다. 암호화된 세션 ID를 도용한 불법 침입자는 단지 특정 URL(및 가능하게는 특정 인수 셋트만을 가지고)에 대해서만 그것을 이용할 수 있게 된다. 이것은 개인이 끼칠 수 있는 피해를 제한하게 된다.
다른 가능한 변형은 제어기가 특정 세션 ID로부터의 모든 트랜잭션에 대해 그 세션 ID를 생성한 인증 프로세스에 참여한 클라이언트와 동일한 IP 어드레스로부터 오도록 요구하는 것이다. 이러한 기능을 구현하기 위해, 단계(208)에서 세션 ID가 생성될 때 그 자신을 인증하는 클라이언트의 IP 어드레스가 기록된다. 단계(214)에서는, 요구를 한 클라이언트의 어드레스가 그 자신을 인증한 클라이언트의 어드레스와 동일한 경우에만 트랜잭션이 이루어지도록 허용되게 된다. 이러한 방법은, 불법 이용자가 다른 머신으로부터 클라이언트의 어카운트로 침입하기 위해 클라이언트로부터 세션 ID를 도용하는 것을 방지할 수 있다. 그러나, 이것은 그렇게 간단한 것이 아닌데, 그 이유는 (예를 들어, 머신이 동일한 화이어월(firewall) 뒤에 있는 경우에) 다른 머신이 동일한 IP 어드레스를 가진 것으로 나타날 수 있기 때문이다. 따라서, 어카운트가 칩입당할 위험을 더욱 감소시키기 위해 이 방법과 함께, 암호화와 같은 다른 보안 기능이 사용될 수도 있다.
다른 가능한 변형은, 제어기에 의해 유지관리되는 클라이언트 인증 및 어카운트 정보(예, 이용자 ID, 패스워드 및 세션 ID)가 하나 또는 그 이상의 참여 서버 상에 복사되도록 하는 것이다. 이러한 방식에 있어서, 제어기는 각각의 인증을 위해 교신될 필요는 없다. 이 방법은 제어기에 대한 부하를 감소시키고 시스템 성능을 향상시킬 수 있다. 그러나, 인증 및 어카운트 정보의 여러 번의 복사 사이에서 일관성을 유지하기 위해 몇 가지 방법이 필요로 된다.
심각한 작업부하에 대한 시스템 성능을 향상시키게 되는 다른 가능한 변형은 제어기를 복수의 서버 상에서 실행되도록 확장(scale)하는 것이다. 그러나, 복수의 서버 상에서 실행되도록 제어기를 확장하는데 있어서의 한 가지 복잡성은 복수의 노드를 통해 인증 정보를 어떻게 공유하는가 하는 문제이다. 인증 정보는 복수의 노드를 통해 복사될 수 있지만, 그러나, 인증 정보의 복수의 일관된 카피를 유지관리하는 오버헤드 및 복잡성으로 인해, 단계(208)에서 기록된 인증 정보의 오직 하나의 카피만을 유지관리하는 것이 바람직할 수도 있다.
제어기가 복수의 노드를 통해 확장될 때 인증 정보를 유지관리하는 한 가지 방법은 (서버 그룹과 현재 통신하고 있는 모든 클라이언트에 속한) 모든 세션 ID의 셋트를 제어기 노드를 통해 분산시키는 것이다. 그러므로, 오직 어떤 특정 세션 ID의 단일 카피 만이 유지관리 되지만, 세션 ID의 셋트는 제어기 노드를 통해 분산된다. 이 방법을 구현하기 위해, 제어기는 단계(208)에서 제어기 노드 상에 특정 클라이언트의 세션 ID 정보를 저장할 수 있다. 이때, 제어기 노드 n의 신분은 클라이언트와의 대화에서 상태 변수에 인코드될 수 있다. 예를 들어, 세션 ID 변수(402)는 클라이언트의 세션 ID를 저장한 제어기의 노드와 실제적인 세션 ID를 둘다 저장하도록 인코드될 수도 있다. 클라이언트가 그 세션 ID의 인증을 필요로 하는 트랜잭션을 수행하기 위해 시도할 때마다, 단계(214)는 제어기 노드가 클라이언트의 세션 ID를 포함하는지 판단하기 위해 클라이언트와의 대화에서 보존된 적절한 상태 변수를 검사한다. 다음에, 클라이언트의 세션 ID는 적절한 제어기 노드 상에서 검증된다.
클라이언트 인증 정보와 같이, 클라이언트 어카운트 정보도 복수의 제어기 노드 상에서 복사될 수 있으며, 또는 복수의 제어기 노드를 통해 분산될 수 있다. 어떤 방법을 취할 것인가에 관한 판단은 클라이언트 인증 정보에 대해 어떤 방법이 사용되는가에 무관하게 이루어질 수 있다. 만일 클라이언트 어카운트 정보가 복수의 노드를 통해 분산되면, 전술한 방법이 사용될 수 있다. 특정 클라이언트에 대한 어카운트 정보를 포함하는 제어기 노드의 신분이 이용자 ID 변수(401)와 같은 상태 변수에 인코드될 수 있다.
다른 가능한 변형은 클라이언트로 하여금 서버 그룹에 의해 정상적으로 수행되는 기능의 일부를 수행하도록 허용하는 것이다. JAVA와 같은 언어를 이용하면, 서버 그룹에 의해 수행되는 기능의 일부가 다운로드되어 클라이언트에 의해 수행될 수 있다.
다른 가능한 변형은, 대화에서 이용자 ID 및 세션 ID 상태 변수를 모두 보존하는 대신에, 세션 ID 상태 변수만을 보존하는 것이다. 이러한 구현에 있어서, 서버는 이용자 ID와 세션 ID 사이의 대응성을 유지관리하게 된다. 이때, 서버는 세션 ID로부터 이용자 ID를 계산할 수 있게 된다.
다른 가능한 변형은 세션 ID 상태 변수를 생성하는 대신에 상태 변수로서 클라이언트의 패스워드를 유지관리하는 것이다. 그러나, 세션 ID는 대화 동안에만 지속되기 때문에, 패스워드 대신에 세션 ID를 이용하는 장점은 도용된 패스워드 보다 도용된 세션 ID가 덜 유해할 수도 있다는 것이다.
다른 가능한 변형은 멀티-페이즈 코미트(multi-phase commits)를 처리하기 위해 XA 프로토콜을 구현하는 것이다. (XA 프로토콜에 관한 논의에 대해서는, J, Gray 및 A. Reuter의 Transaction Precessing:Concepts Techniques, Morgan Kaufmann(1993)을 참조하자.)
본 발명의 양호한 실시예에서, 그룹 트랜잭션을 위한 참여 서버의 디폴트 그룹은 인증 시간과 그룹 트랜잭션이 요구된 시간 사이에 방문한 적이 있는 참여 서버로 구성된다. 디폴트 그룹을 선택하기 위해 몇 가지 변형이 용이하게 구현될 수 있다. 참여 서버의 디폴트 그룹은, (1) 대화가 개시된 이래 방문한 적이 있는 모든 서버, (2) 대화가 개시된 이래 단순 트랜잭션에 관계되었던 모든 서버, (3) 최종 그룹 트랜잭션 이래 방문한 적이 있는 모든 서버, (4) 최종 그룹 트랜잭션 이래 단순 트랜잭션에 관계되었던 모든 서버, 및 (5) 최종 그룹 트랜잭션에 참여한 모든 서버를 포함할 수 있다. 또한, 전술한 디폴트 그룹의 조합도 가능하다.
일반적으로, 디폴트 그룹은 트랜잭션 형태, 인증 형태 및 임계적인(critical) 이벤트를 고려하여 결정될 수 있다. 트랜잭션은, (1) 모든 트랜잭션, (2) 단순 트랜잭션, 및 (3) 그룹 트랜잭션을 포함하여 여러 그룹으로 분류될 수 있지만, 여기에 제한되지는 않는다. 트랜잭션은 또한, 인증 형태에 따라, (1) 모든 트랜잭션, (2) 인증이 필요한 트랜잭션, 및 (3) 인증이 필요 없는 트랜잭션으로 분류될 수 있다. 임계적인 이벤트는 트랜잭션에 의해 정의되는 대화 동안의 한 시점이다. 예를 들어, (1) 대화의 개시점, (2) 클라이언트가 최초로 유효 인증 정보를 제공하는 시점, 및 (3) 최종 그룹 트랜잭션이 임계적인 이벤트가 될 수 있다. 디폴트 그룹은, 트랜잭션 형태 j 및 인증 형태 k의 트랜잭션을 제공한 임계 이벤트 i 이후에 클라이언트가 통신한 서버의 부분집합이 되는 임계 서버 부분집합 CS(i,j,k)에 관하여 정의될 수 있다. 예를 들어, 전술한 바와 같은 분류를 이용하면, 임계 서버 부분집합 CS(3,1,2)는 인증을 필요로하는 트랜잭션이 수행된 최종 그룹 트랜잭션 이후 클라이언트가 통신한 서버 셋트가 된다.
다른 가능한 변형은 방문한 참여 서버에 의존하지 않는 디폴트 그룹을 명시하는 것이다. 이러한 구현에서, 방문 노드 상태 변수(403)는 보존될 필요가 없으며, 따라서 단계(211, 212)는 필요하지 않다.
또한, 참여 서버가 복수의 제어기와 통신하도록 하는 것도 가능하다. 도4에 도시된 바와 같이, 하나의 제어기가 그 아래의 레벨에 있는 제어기 및 참여 서버로부터의 액션을 조정하도록 되어 있는 제어기 하이어라키를 구비하는 것도 가능하다.
도3의 단계(310, 312)의 양호한 실시에에서, 제어기는 모든 정보를 단일 HTML 페이지로서 클라이언트로 전송한다. 만일 정보의 양이 많으면, 그 정보를 수개의 페이지로 분할하는 것도 대안이 된다. 제어기는 한 번에 한 페이지씩 전송하게 된다. 각각의 페이지는 클라이언트로 하여금 다른 페이지를 관찰할 수 있도록 하는 하이퍼텍스트 링크를 포함하게 된다. (가능하게는 수개의) 하이퍼텍스트 링크를 추종함으로써, 클라이언트는 모든 정보를 관찰할 수 있게 된다. 이러한 기술은 물론 새로운 것이 아니다. 예를 들어, URL http://www.lycos.com의 라이코스 검색 엔진은 이러한 방법을 구현한다.
다른 가능한 변형은 클라이언트로 하여금 인증 정보를 수동적인 방식으로 입력하도록 촉구하는 대신에, 클라이언트를 식별하기 위해 디지탈 증명서(digital certificates)를 이용하는 것이다. 디지탈 증명서는 클라이언트의 디스크 또는 스마트 카드에 저장될 수 있는 인증 정보의 문자열이다. 디지탈 증명서는 클라이언트가 손으로 입력할 것으로 예상되는 것보다 더 길고 복잡한 정보 문자열로 구성될 수 있기 때문에, 디지탈 증명서를 이용하는 것은 클라이언트로 하여금 수동으로 인증 정보를 입력하도록 하는 것보다 클라이언트를 식별하는 보다 안전한 방법을 제공할 수 있다. 대안으로, 디지탈 증명서와 수동 입력의 조합이 사용될 수도 있다. 예를 들어, 클라이언트는 그 스마트 카드를 활성화시키기 위해 개인 인증 번호(PIN)을 입력할 것을 요구받을 수 있다.
전술한 양호한 실시예에서, 클라이언트 어카운트 정보는 제어기 서버에 의해 유지관리된다. 다른 가능한 변형은 제어기가 클라이언트에 의해 제공된 클라이언트 인증 정보를 검증하기 위해 인증국(certifying authority)과 통신하는 것이다.
비록 본 발명이 양호한 실시예를 참조하여 설명되었지만, 이 기술 분야에 통상의 지식을 가진자에게는 다른 실시예도 가능하다는 것은 명백할 것이다. 따라서, 첨부된 특허청구의 범위의 사상 및 범위는 본 명세서에 포함된 양호한 실시예에 제한되지 않는다.
전술한 바와 같은 본 발명에 따르면, 복수의 웹 사이트에 걸쳐 분산될 수 있는 복수의 독립적인 가상 상점을 조정하기 위한 방법이 제공된다.

Claims (41)

  1. 하나 또는 그 이상의 참여 서버 및 하나 또는 그 이상의 제어기 서버를 포함하며, 각각의 참여 서버가 적어도 하나의 제어기 서버와 통신할 수 있도록 되어 있는 서버 그룹을 구비한 클라이언-서버 환경에서, 서버 그룹 내의 서버 사이의 액션을 조정하기 위한 방법에 있어서, 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, 클라이언트로부터의 액션에 대한 요구를 서버 중의 한 서버로 전송하는 단계, 및 상기 요구에 응답하여 상기 서버 중 적어도 몇 개의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 다수의 서버 사이에서 통신하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  2. 하나 또는 그 이상의 참여 서버 및 하나 또는 그 이상의 제어기 서버를 포함하며, 각각의 참여 서버가 적어도 하나의 제어기 서버와 통신할 수 있도록 되어 있는 서버 그룹을 구비한 클라이언-서버 환경에서, 서버 그룹 내의 서버 사이의 액션을 조정하기 위한 방법에 있어서, 클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계, 클라이언트에 의한 제1 액션에 대한 요구를 인증을 요구하는 서버로 전송하는 단계, 클라이언트에 의해 클라이언트 식별 정보를 제공하는 단계, 하나 또는 그 이상의 제어기 서버에 의해 상기 클라이언트 식별 정보를 검증하는 단계, 하나 또는 그 이상의 제어기 서버에 의해 클라이언트 인증 정보를 생성하는 단계, 하나 또는 그 이상의 서버에 의해 상기 클라이언트 인증 정보를 유지관리하는 단계, 하나 또는 그 이상의 서버에 의해 대화에서 상기 클라이언트 인증 정보를 보존하기 위한 수단을 이용하는 단계, 클라이언트에 의한 제2 액션에 대한 요구를 인증을 요구하는 서버 중 한 서버로 전송하는 단계, 및 클라이언트를 인증하기 위해, 대화에서 보존된 클라이언트 인증 정보와 하나 또는 그 이상의 서버에 의해 유지관리되는 클라이언트 인증 정보를 이용하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  3. 하나 또는 그 이상의 참여 서버 및 하나 또는 그 이상의 제어기 서버를 포함하며, 각각의 참여 서버가 적어도 하나의 제어기 서버와 통신할 수 있도록 되어 있는 서버 그룹을 구비한 클라이언-서버 환경에서, 서버 그룹 내의 서버 사이의 액션을 조정하기 위한 방법에 있어서,
    클라이언트와 서버 사이에서 상태 정보를 전달하기 위한 제한된 또는 정의되지 않은 절차를 가진 프로토콜을 이용하여 서버 그룹 내의 적어도 하나의 서버와 클라이언트 사이에서 통신하는 단계,
    클라이언트로부터의 다수의 서버에 의한 참여를 필요로하는 액션에 대한 요구를 서버 중의 한 서버로 전송하는 단계, 및
    상기 요구에 응답하여 상기 다수의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 상기 서버 사이에서 통신하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  4. 제 2 항에 있어서,
    상기 클라이언트에 의한 클라이언트 식별 정보를 제공하는 단계는 상기 클라이언트에 의한 정보의 수동 입력에 의해 수행되는 서버 사이의 액션 조정 방법.
  5. 제 2 항에 있어서,
    상기 클라이언트에 의한 클라이언트 식별 정보를 제공하는 단계는 영속성 메모리에 저장된 정보를 검색함으로써 수행되는 서버 사이의 액션 조정 방법.
  6. 제 5 항에 있어서,
    영속성 메모리에 저장된 상기 정보는 디스크 또는 스마트 카드 상의 하나 또는 그 이상의 디지탈 증명서를 포함하는 서버 사이의 액션 조정 방법.
  7. 제 2 항에 있어서,
    상기 클라이언트 식별 정보를 검증하는 상기 단계는, 하나 또는 그 이상의 제어기 서버에 의해 유지관리되는 클라이언트 어카운트 정보를 검색하는 단계와, 상기 클라이언트 식별 정보를 상기 클라이언트 어카운트 정보와 비교하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  8. 제 2 항에 있어서,
    상기 클라이언트 식별 정보를 검증하는 상기 단계는, 상기 서버 그룹 외부의 인증국 서버와 통신하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  9. 제 2 항에 있어서, 하나 또는 그 이상의 서버에 의해 상기 클라이언트 인증 정보를 유지관리하는 상기 단계는 상기 서버 그룹 내의 하나 이상의 서버 상에 상기 클라이언트 인증 정보를 복사하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  10. 제 2 항에 있어서, 대화에서 상기 클라이언트 인증 정보를 보존하기 위한 상기 수단은 동적 인수 내장법인 서버 사이의 액션 조정 방법.
  11. 제 2 항에 있어서,
    상기 클라이언트는 월드 와이드 웹 클라이언트이고, 상기 서버는 월드 와이드 웹 사이트이고, 대화에서 상기 클라이언트 인증 정보를 보존하기 위한 상기 수단은 하나 또는 그 이상의 넷스케이프 쿠키(NETSCAPE cookies)인 서버 사이의 액션 조정 방법.
  12. 제 2 항에 있어서,
    상기 클라이언트는 월드 와이드 웹 클라이언트이고, 상기 서버는 월드 와이드 웹 사이트이고, 대화에서 상기 클라이언트 인증 정보를 보존하기 위한 상기 수단은 HTML 폼(forms)인 서버 사이의 액션 조정 방법.
  13. 제 2 항에 있어서, 클라이언트 인증 정보를 유지관리하는 상기 서버는 적어도 하나의 제어기 서버인 서버 사이의 액션 조정 방법.
  14. 제 2 항에 있어서, 상기 클라이언트 인증 정보는 세션 ID를 포함하는 서버 사이의 액션 조정 방법.
  15. 제 14 항에 있어서, 상기 세션 ID는 그 이후에는 더 이상 유효하지 않게 되는 수명을 가진 서버 사이의 액션 조정 방법.
  16. 제 14 항에 있어서, 상기 클라이언트에 의한 인증을 필요로하는 지정된 수의 요구를 하나 또는 그 이상의 서버로 전송하는 단계,
    상기 지정된 수의 요구 이후에 하나 또는 그 이상의 제어기 서버에 의해, 새로운 세션 ID를 포함하는 새로운 클라이언트 인증 정보를 생성하는 단계, 및
    상기 하나 또는 그 이상의 서버에 의해 대화에서 상기 새로운 클라이언트 인증 정보를 보존하기 위한 수단을 이용하는 단계를 더 포함하는 서버 사이의 액션 조정 방법.
  17. 제 14 항에 있어서,
    상기 클라이언트 인증 정보를 보존하기 위한 상기 수단은 상기 세션 ID를 암호화하기 위한 수단을 포함하고, 대화에서 보존되는 클라이언트 인증 정보를 이용하는 단계는 상기 암호화된 세션 ID를 디코딩하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  18. 제 17 항에 있어서,
    상기 세션 ID를 암호화하기 위한 상기 수단은 서버와 요구의 특정 조합에 대해서만 유효한 암호화된 세션 ID를 생성하는 서버 사이의 액션 조정 방법.
  19. 제 18 항에 있어서,
    상기 서버 그룹 내의 서버는 월드 와이드 웹 사이트이고, 상기 암호화된 세션 ID는 특정 URL에 대해서만 유효한 서버 사이의 액션 조정 방법.
  20. 제 2 항에 있어서,
    적어도 하나의 서버에 의해 클라이언트 식별 정보를 제공한 클라이언트의 어드레스를 유지관리하는 단계, 및 인증을 필요로하는 대화 동안에 클라이언트에 의해 요구된 적어도 몇 개의 액션에 응답하여 클라이언트를 인증하기 위해 상기 어드레스를 이용하는 단계를 더 포함하는 서버 사이의 액션 조정 방법.
  21. 제 2 항에 있어서,
    적어도 하나의 제어기 서버는 복수의 노드에 걸쳐 분산되어 있는 서버 사이의 액션 조정 방법.
  22. 제 21 항에 있어서,
    상기 클라이언트 인증 정보는 세션 ID를 포함하고, 하나 또는 그 이상의 서버에 의해 클라이언트 인증 정보를 유지관리하는 단계는, 분산된 제어기 서버 중 한 서버의 모든 노드 보다 적은 수의 노드 상에 세션 ID를 저장하는 단계와, 대화에서의 상태 변수에 상기 세션 ID가 저장되는 노드 중 적어도 하나의 노드의 신분을 보존하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  23. 제 21 항에 있어서,
    상기 클라이언트 인증 정보는 분산된 제어기 서버 중 한 서버의 복수 노드 상에 복사되는 서버 사이의 액션 조정 방법.
  24. 제 7 항에 있어서,
    적어도 하나의 제어기 서버는 복수의 노드에 걸쳐 분산되고, 클라이언트 어카운트 정보는 분산된 제어기 서버 중 한 서버의 복수의 노드 상에 복사되는 서버 사이의 액션 조정 방법.
  25. 제 3 항에 있어서, 다수의 서버의 액션을 조정하는 단계는, 클라이언트에 의한 요구에 응답하여 적어도 하나의 제어기 서버에 의해 서버의 디폴트 그룹을 정의하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  26. 제 25 항에 있어서, 서버의 상기 디폴트 그룹은 클라이언트가 대화 동안에 통신했던 서버 그룹 내의 하나 또는 그 이상의 서버를 포함하는 서버 사이의 액션 조정 방법.
  27. 제 26 항에 있어서,
    서버의 상기 디폴트 그룹은 서버의 임계적인 부분집합에 관하여 결정되고, 서버의 각각의 임계적인 부분집합은 트랜잭션 형태, 인증 형태 및 임계적인 이벤트에 관하여 결정되는 서버 사이의 액션 조정 방법.
  28. 제 27 항에 있어서,
    상기 트랜잭션 형태는 모든 트랜잭션 형태, 단순 트랜잭션 형태, 및 그룹 트랜잭션 형태를 포함하는 서버 사이의 액션 조정 방법.
  29. 제 27 항에 있어서,
    상기 인증 형태는, 모든 트랜잭션, 인증이 요구되는 트랜잭션, 및 인증이 요구되지 않는 트랜잭션을 포함하는 서버 사이의 액션 조정 방법.
  30. 제 27 항에 있어서,
    상기 임계적인 이벤트는 대화의 개시, 클라이언트가 최초로 유효 식별 정보를 제공하는 시점, 및 최종 그룹 트랜잭션을 포함하는 서버 사이의 액션 조정 방법.
  31. 제 25 항에 있어서,
    서버의 상기 디폴트 그룹은 상기 최종 그룹 트랜잭션에 관계된 서버에 관하여 결정되는 서버 사이의 액션 조정 방법.
  32. 제 3 항에 있어서,
    액션에 대한 상기 요구는 다수의 서버로부터 정보를 수집하는 것을 포함하는 서버 사이의 액션 조정 방법.
  33. 제 3 항에 있어서,
    다수의 서버의 참여를 필요로하는 액션에 대한 요구는 다수의 서버로부터의 n-페이즈 완료(n-phase commit)(n 0)를 포함하는 서버 사이의 액션 조정 방법.
  34. 제 3 항에 있어서, 다수의 서버의 액션을 조정하는 적어도 하나의 제어기 서버와 서버 사이에서 통신하는 단계는, 적어도 하나의 제어기 서버와 상기 다수의 서버 중 적어도 몇 개의 서버 사이에서 통신하는 단계, 및 상기 적어도 하나의 제어기 서버에 의해 상기 다수의 서버 중 상기 적어도 몇 개의 서버로부터의 응답을 합병하는 단계를 포함하는 서버 사이의 액션 조정 방법.
  35. 제 1 항, 제 2 항 또는 제 3 항에 있어서, 상기 서버는 월드 와이드 웹 사이트인 서버 사이의 액션 조정 방법.
  36. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    상기 클라이언트와 상기 서버 사이의 통신을 위해 사용되는 프로토콜은 하이퍼텍스트 트랜스퍼 프로토콜인 서버 사이의 액션 조정 방법.
  37. 제 1 항, 제 2 항 또는 제 3 항에 있어서, 상기 클라이언트와 상기 서버 사이의 통신을 위해 사용되는 프로토콜은 보안성이 있는 서버 사이의 액션 조정 방법.
  38. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    적어도 하나의 참여 서버는 복수의 제어기와 통신할 수 있는 서버 사이의 액션 조정 방법.
  39. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    제어기 서버의 하이어라키가 존재하며, 그것에 의해 각각의 제어기 서버는 그 아래의 하이어라키 레벨에 있는 참여 서버 및 제어기 서버 사이의 액션을 조정하는 서버 사이의 액션 조정 방법.
  40. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    클라이언트가 서버 그룹의 기능 중 적어도 몇 개의 기능을 수행할 수 있도록 하는 프로그램을 상기 적어도 하나의 서버로부터 클라이언트에 의해 수신하고 실행하는 단계를 더 포함하는 서버 사이의 액션 조정 방법.
  41. 제 1 항, 제 2 항 또는 제 3 항에 있어서,
    상기 참여 서버는 서로 통신할 수 없도록 되어 있는 서버 사이의 액션 조정 방법.
KR1019980015015A 1997-05-08 1998-04-27 서버그룹사이의동작을조정하는방법및시스템 KR100308321B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/854,010 US6170017B1 (en) 1997-05-08 1997-05-08 Method and system coordinating actions among a group of servers
US08/854,010 1997-05-08
US8/854,010 1997-05-08

Publications (2)

Publication Number Publication Date
KR19980086649A true KR19980086649A (ko) 1998-12-05
KR100308321B1 KR100308321B1 (ko) 2001-10-19

Family

ID=25317497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980015015A KR100308321B1 (ko) 1997-05-08 1998-04-27 서버그룹사이의동작을조정하는방법및시스템

Country Status (6)

Country Link
US (3) US6170017B1 (ko)
JP (2) JP4026928B2 (ko)
KR (1) KR100308321B1 (ko)
CN (1) CN1312879C (ko)
GB (1) GB2326802B (ko)
TW (1) TW451150B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078316A (ko) * 2002-03-29 2003-10-08 정보통신연구진흥원 웹 세션 관리기술을 포함한 네트워크 시스템 및 그 동작방법
KR100704616B1 (ko) * 1999-08-11 2007-04-09 야후! 인크. 로컬 상거래 사이트에서 원격 상거래 사이트를 참조하는전자 상거래 시스템

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219045B1 (en) 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
JPH1115666A (ja) * 1997-06-10 1999-01-22 Internatl Business Mach Corp <Ibm> コンピュータ・システム、メッセージ・モニター方法、及び関連メッセージ送信方法
US5999939A (en) * 1997-12-21 1999-12-07 Interactive Search, Inc. System and method for displaying and entering interactively modified stream data into a structured form
JP3569122B2 (ja) * 1998-01-22 2004-09-22 富士通株式会社 セッション管理システム、サービス提供サーバ、セッション管理サーバ、セッション管理方法及び記録媒体
JPH11224288A (ja) 1998-02-06 1999-08-17 Hitachi Ltd 利用条件販売型デジタルコンテンツ販売電子モールシステム
NL1009083C2 (nl) * 1998-05-06 1999-11-09 Telematica Holdings Ltd Stelsel voor het koppelen van het openbare telefoonnet met het Internet.
US6567849B2 (en) * 1998-08-17 2003-05-20 International Business Machines Corporation System and method for configuring and administering multiple instances of web servers
JP2000106552A (ja) * 1998-09-29 2000-04-11 Hitachi Ltd 認証方法
US6292904B1 (en) * 1998-12-16 2001-09-18 International Business Machines Corporation Client account generation and authentication system for a network server
CA2292385A1 (en) * 1999-01-29 2000-07-29 International Business Machines Corporation A method to deliver services to mobile users
AU769163B2 (en) * 1999-02-26 2004-01-15 America Online, Inc. Proxy server augmenting a client request with user profile data
US7801775B1 (en) * 1999-03-29 2010-09-21 Amazon.Com, Inc. Method and system for authenticating users when conducting commercial transactions using a computer
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
JP2000287110A (ja) * 1999-03-31 2000-10-13 Ricoh Co Ltd デジタルカメラ装置の制御システム
US8375127B1 (en) * 1999-03-31 2013-02-12 International Business Machines Corporation Method and system for using virtual URLs for load balancing
US7155605B1 (en) * 1999-03-31 2006-12-26 Lenovo (Singapore) Pte. Ltd. Data processing system and method for maintaining secure data blocks
JP2000293426A (ja) * 1999-04-01 2000-10-20 Nec Soft Ltd レコードロック方式
US7146505B1 (en) 1999-06-01 2006-12-05 America Online, Inc. Secure data exchange between date processing systems
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US6970933B1 (en) 1999-07-15 2005-11-29 F5 Networks, Inc. Enabling application level persistence between a server and another resource over a network
US7287084B1 (en) * 1999-07-15 2007-10-23 F5 Networks, Inc. Enabling encryption of application level persistence between a server and a client
AU5482700A (en) * 1999-07-19 2001-02-05 Savedaily.Com, Inc. On-line savings model
US6339423B1 (en) * 1999-08-23 2002-01-15 Entrust, Inc. Multi-domain access control
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6868394B1 (en) * 1999-09-21 2005-03-15 Daniel Mele Method and apparatus for simplified artist-buyer transactions
WO2001025874A2 (en) * 1999-10-04 2001-04-12 Os Crypto, Inc. System and methods of providing verified network sessions with visual confirmation
US7877492B2 (en) * 1999-10-12 2011-01-25 Webmd Corporation System and method for delegating a user authentication process for a networked application to an authentication agent
US7917397B1 (en) 1999-10-14 2011-03-29 Jarbridge, Inc. Merging private images for gifting
US6903756B1 (en) * 1999-10-14 2005-06-07 Jarbridge, Inc. Merged images viewed via a virtual storage closet
US7401115B1 (en) 2000-10-23 2008-07-15 Aol Llc Processing selected browser requests
US7127500B1 (en) * 1999-11-10 2006-10-24 Oclc Online Computer Library Center, Inc. Retrieval of digital objects by redirection of controlled vocabulary searches
US7107308B2 (en) * 1999-12-01 2006-09-12 Sun Microsystems, Inc. Low cost, stateless, full-featured information appliance
US6862612B1 (en) * 1999-12-10 2005-03-01 Dell Products L.P. Multiple ‘express buy’ profiles for multiple stores (dell.com and gigabuys.com)
JP2001175574A (ja) * 1999-12-14 2001-06-29 Fujitsu Ltd コンソール入出力制御システムおよびコンソール管理装置
US7266511B2 (en) * 2000-01-11 2007-09-04 Fujifilm Corporation Method and system for operating a virtual shopping mall or seller-engaged type
JP2001195482A (ja) * 2000-01-14 2001-07-19 Degital Laboratory Co Ltd コンテンツ配信の課金方法及びその課金システム
US7233926B2 (en) * 2000-03-07 2007-06-19 Thomson Licensing Electronic wallet system with secure inter-purses operations
US7168138B2 (en) * 2000-03-27 2007-01-30 Newfrey Llc Resilient clip fastener
US6785679B1 (en) * 2000-03-29 2004-08-31 Brassring, Llc Method and apparatus for sending and tracking resume data sent via URL
US7526560B1 (en) * 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
US6886037B1 (en) * 2000-03-31 2005-04-26 Ncr Corporation Channel director for cross-channel customer interactions
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6785713B1 (en) * 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
AU2001253406A1 (en) * 2000-05-15 2001-11-26 Efunds Corporation System for and method of effecting an electronic transaction
DE60135125D1 (de) * 2000-05-15 2008-09-11 Nifty Corp Elektronischer kommerz in einem informationsverarbeitungssystem und verfahren
DE60134859D1 (de) * 2000-05-15 2008-08-28 Nifty Corp Bestellungsbearbeitungssystem und -verfahren
US7962603B1 (en) 2000-06-06 2011-06-14 Nobuyoshi Morimoto System and method for identifying individual users accessing a web site
US7380007B1 (en) * 2000-06-30 2008-05-27 Aol Llc, A Delaware Limited Liability Company Automatic user session
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US20020146129A1 (en) * 2000-11-09 2002-10-10 Kaplan Ari D. Method and system for secure wireless database management
US6848000B1 (en) * 2000-11-12 2005-01-25 International Business Machines Corporation System and method for improved handling of client state objects
US7093019B1 (en) * 2000-11-21 2006-08-15 Hewlett-Packard Development Company, L.P. Method and apparatus for providing an automated login process
US7127609B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface for adaptively processing and communicating URL data between applications
US7127608B2 (en) * 2001-01-12 2006-10-24 Siemens Medical Solutions Health Services Corporation System and user interface supporting URL processing and concurrent application operation
US7043752B2 (en) * 2001-01-12 2006-05-09 Siemens Medical Solutions Health Services Corporation System and user interface supporting concurrent application initiation and interoperability
US7143437B2 (en) 2001-01-12 2006-11-28 Siemens Medical Solutions Health Services Corporation System and user interface for managing user access to network compatible applications
US7334031B2 (en) * 2001-01-12 2008-02-19 Siemens Medical Solutions Health Services Corporation System and user interface supporting processing and activity management for concurrently operating applications
US7092987B2 (en) * 2001-02-13 2006-08-15 Educational Testing Service Remote computer capabilities querying and certification
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US20020169665A1 (en) * 2001-05-10 2002-11-14 The Procter & Gamble Company In-channel marketing and product testing system
US6687733B2 (en) 2001-06-01 2004-02-03 Intergenix Method and system for automatically configuring a client-server network
US8392527B2 (en) * 2001-06-04 2013-03-05 Hewlett-Packard Development Company L.P. System and method for requesting computer resources
JP4158365B2 (ja) * 2001-08-27 2008-10-01 ブラザー工業株式会社 ネットワーク端末装置
US20030050892A1 (en) * 2001-09-07 2003-03-13 Efunds Corporation Electronic point-of-sale check processing method and system
US20030069967A1 (en) * 2001-10-10 2003-04-10 International Business Machines Corporation Shared authorization data authentication method for transaction delegation in service-based computing environments
US7117366B2 (en) * 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US20030145204A1 (en) * 2002-01-29 2003-07-31 Mehrdad Nadooshan Method and apparatus for simultaneously establishing user identity and group membership
JP3927834B2 (ja) * 2002-02-12 2007-06-13 キヤノン株式会社 サービス提供システム、方法、プログラム及び記憶媒体
US7356711B1 (en) 2002-05-30 2008-04-08 Microsoft Corporation Secure registration
JP4103460B2 (ja) * 2002-06-17 2008-06-18 ソニー株式会社 サービス提供システムおよび方法、並びにプログラム
US6747107B2 (en) 2002-08-16 2004-06-08 Nova Chemical Inc. Method of dispersion of a non-Newtonian fluid
JP2004086313A (ja) * 2002-08-23 2004-03-18 Fujitsu Ltd 認証方法及びその装置
US7430755B1 (en) 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
US7133534B2 (en) * 2002-09-03 2006-11-07 Koninklijke Philips Electronics N.V. Copy protection via redundant watermark encoding
US7571252B2 (en) * 2003-03-10 2009-08-04 Sun Microsystems, Inc. Computer system with multiple classes of transaction IDs
CA2432616A1 (en) * 2003-06-17 2004-12-17 Ibm Canada Limited - Ibm Canada Limitee Method for managing commerce contexts
US7523200B2 (en) * 2003-07-02 2009-04-21 International Business Machines Corporation Dynamic access decision information module
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7490242B2 (en) 2004-02-09 2009-02-10 International Business Machines Corporation Secure management of authentication information
US7996631B1 (en) 2004-02-17 2011-08-09 Oracle America, Inc. System and method for accessing storage devices attached to a stateless client
US8495305B2 (en) * 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US7724657B2 (en) * 2004-07-23 2010-05-25 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol
ATE535078T1 (de) * 2004-07-23 2011-12-15 Citrix Systems Inc Verfahren und system zur sicherung von zugriff aus der ferne auf private netze
US7730122B2 (en) * 2004-12-09 2010-06-01 International Business Machines Corporation Authenticating a node requesting another node to perform work on behalf of yet another node
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
WO2006072994A1 (ja) * 2005-01-07 2006-07-13 Systemk Corporation ネットワークカメラへのログイン認証システム
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8566452B1 (en) 2006-08-03 2013-10-22 F5 Networks, Inc. Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
JP2009087163A (ja) * 2007-10-01 2009-04-23 Brother Ind Ltd ジョブ実行装置及びジョブ実行方法
US20090097470A1 (en) * 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
CN101984778B (zh) 2008-01-26 2014-08-13 思杰系统有限公司 用于细粒度策略驱动的cookie代理的系统和方法
CN102460428A (zh) * 2009-06-05 2012-05-16 惠普开发有限公司 用于表示与web服务的用户交互的系统和方法
JP2010016912A (ja) * 2009-10-22 2010-01-21 Daikin Ind Ltd 設備機器管理システム及び設備機器管理方法
JP5511463B2 (ja) * 2010-03-25 2014-06-04 キヤノン株式会社 画像形成装置、画像処理システム、画像処理システムを制御する方法、およびプログラム
US20140019309A1 (en) * 2012-07-16 2014-01-16 Dana Michelle Hawkins Online Virtual Mall
NZ707185A (en) 2012-09-25 2018-01-26 Mx Tech Inc Aggregation source routing
US10432703B2 (en) * 2012-11-26 2019-10-01 Facebook, Inc. On-demand session upgrade in a coordination service
CN103973725B (zh) * 2013-01-28 2018-08-24 阿里巴巴集团控股有限公司 一种分布式协同方法和协同器
CN104184765B (zh) * 2013-05-23 2018-04-17 阿里巴巴集团控股有限公司 一种请求控制方法及客户端装置和服务器端装置
US9219722B2 (en) * 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication
US9794070B2 (en) * 2015-01-07 2017-10-17 Cyph, Inc. Method of ephemeral encrypted communications
US9954837B2 (en) 2015-01-07 2018-04-24 Cyph, Inc. Method of multi-factor authenication during encrypted communications
US9826064B2 (en) * 2015-02-23 2017-11-21 Lenovo (Singapore) Pte. Ltd. Securing sensitive data between a client and server using claim numbers
US9692815B2 (en) * 2015-11-12 2017-06-27 Mx Technologies, Inc. Distributed, decentralized data aggregation
US10313342B1 (en) 2015-11-30 2019-06-04 Mx Technologies, Inc. Automatic event migration
WO2018066000A1 (en) * 2016-10-05 2018-04-12 Kaalbi Technologies Private Limited System and method to detect and block bot traffic
CN107517252A (zh) * 2017-08-22 2017-12-26 福建中金在线信息科技有限公司 一种文件下载控制方法、装置及系统

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066566C (en) * 1989-09-08 2001-12-25 David Hitz Multiple facility operating system architecture
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
JPH0415840A (ja) 1990-05-10 1992-01-21 Toshiba Corp 分散型データベース管理装置
JPH0797782B2 (ja) * 1991-09-18 1995-10-18 インターナショナル・ビジネス・マシーンズ・コーポレイション 異種トランザクションの調整方法
US5592675A (en) * 1992-01-08 1997-01-07 Hitachi, Ltd. Computer controlled method and system capable of preserving information representing plural work states and recovering the work states
US5241594A (en) 1992-06-02 1993-08-31 Hughes Aircraft Company One-time logon means and methods for distributed computing systems
US5392400A (en) * 1992-07-02 1995-02-21 International Business Machines Corporation Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
US5497463A (en) 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
US5568612A (en) 1992-11-18 1996-10-22 Canon Kabushiki Kaisha Method and apparatus for advertising services of two network servers from a single network node
EP1130848B1 (en) 1993-03-08 2004-10-06 Hewlett-Packard Company (a Delaware corporation) Network analysis method
JP2557192B2 (ja) 1993-03-15 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法
JPH07210436A (ja) 1994-01-10 1995-08-11 Hitachi Ltd 分散トランザクション処理システム
US5781743A (en) * 1994-02-18 1998-07-14 Hitachi, Ltd. System and method for distributed data processing using different server system specifications
JP3777196B2 (ja) * 1994-05-10 2006-05-24 富士通株式会社 クライアント/サーバシステム用の通信制御装置
US5434994A (en) 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5416842A (en) 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US6205464B1 (en) 1994-09-16 2001-03-20 International Businesss Machines Corporation System for building optimal commit trees in a distributed transaction processing system
US5541589A (en) * 1994-12-15 1996-07-30 Delaney; Patrick J. Power meter data acquisition and control system
US5682478A (en) * 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
JPH08249387A (ja) 1995-03-09 1996-09-27 Fujitsu Ltd 電子市場システムおよび端末
JP3463399B2 (ja) 1995-03-13 2003-11-05 富士通株式会社 通信システムおよびアクセス応答装置およびアクセス要求装置
FR2733068B1 (fr) 1995-04-14 1997-07-04 G C Tech Procede de paiement electronique permettant d'effectuer des transactions liees a l'achat de biens sur un reseau informatique
US5708780A (en) 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5793964A (en) * 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
DE69633564T2 (de) * 1995-06-07 2005-11-24 Divine Technology Ventures, Chicago Zugangskontrolle und überwachungssystem für internetserver
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5826025A (en) 1995-09-08 1998-10-20 Sun Microsystems, Inc. System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
WO1997015885A1 (en) 1995-10-25 1997-05-01 Open Market, Inc. Managing transfers of information in a communications network
KR100286008B1 (ko) * 1995-12-30 2001-04-16 윤종용 소프트웨어 프로그램 자동 갱신방법
US5764155A (en) * 1996-04-03 1998-06-09 General Electric Company Dynamic data exchange server
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5854889A (en) 1996-06-26 1998-12-29 Mci Worldcom, Inc. Method and system for heterogeneous telecommunications network testing
US5818448A (en) 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US6632248B1 (en) * 1996-12-06 2003-10-14 Microsoft Corporation Customization of network documents by accessing customization information on a server computer using uniquie user identifiers
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
CA2202572C (en) * 1997-04-14 2004-02-10 Ka Lun Eddie Law A scaleable web server and method of efficiently managing multiple servers
US6000830A (en) * 1997-04-18 1999-12-14 Tokyo Electron Limited System for applying recipe of semiconductor manufacturing apparatus
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
US5890161A (en) * 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100704616B1 (ko) * 1999-08-11 2007-04-09 야후! 인크. 로컬 상거래 사이트에서 원격 상거래 사이트를 참조하는전자 상거래 시스템
KR20030078316A (ko) * 2002-03-29 2003-10-08 정보통신연구진흥원 웹 세션 관리기술을 포함한 네트워크 시스템 및 그 동작방법

Also Published As

Publication number Publication date
CN1312879C (zh) 2007-04-25
KR100308321B1 (ko) 2001-10-19
JP4026928B2 (ja) 2007-12-26
GB2326802B (en) 2002-05-01
US20050198117A1 (en) 2005-09-08
GB9809607D0 (en) 1998-07-01
JP2004078967A (ja) 2004-03-11
CN1200608A (zh) 1998-12-02
JPH1131126A (ja) 1999-02-02
US6820125B1 (en) 2004-11-16
TW451150B (en) 2001-08-21
US6170017B1 (en) 2001-01-02
US7349974B2 (en) 2008-03-25
GB2326802A (en) 1998-12-30

Similar Documents

Publication Publication Date Title
KR100308321B1 (ko) 서버그룹사이의동작을조정하는방법및시스템
EP0940960A1 (en) Authentication between servers
KR100261386B1 (ko) 컴퓨터화된 자원 명칭 도출 메카니즘
US5586260A (en) Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US6675216B1 (en) Copy server for collaboration and electronic commerce
KR100268095B1 (ko) 데이터통신시스템
EP0844767B1 (en) User controlled browser
EP1645971B1 (en) Database access control method, database access controller, agent processing server, database access control program, and medium recording the program
US20010047477A1 (en) Transparent user and session management for web applications
US20040255137A1 (en) Defending the name space
US20020111996A1 (en) Method, system and apparatus for networking devices
JP2003508838A (ja) 電子取引を行うための方法および装置
WO2005006703A2 (en) System and method for authenticating clients in a client-server environment
WO2000069110A1 (en) Method and apparatus for authenticating users
US7093019B1 (en) Method and apparatus for providing an automated login process
EP2047400B1 (en) Security model for application and trading partner integration
CA2310535A1 (en) Vault controller context manager and methods of operation for securely maintaining state information between successive browser connections in an electronic business system
Iyengar Dynamic argument embedding: Preserving state on the world wide web
CN107026828A (zh) 一种基于互联网缓存的防盗链方法及互联网缓存
JP4667748B2 (ja) マルチノード・プロセスを制御する方法および装置
WO2001001280A2 (en) Method and system for sharing cookie information during internet transactions
JP2006039794A (ja) ファイル管理システム
Iyengar et al. Distributed virtual malls on the World Wide Web
JPH10322325A (ja) 暗号認証方式
Hill et al. Public Key Authentication on Mobile Devices

Legal Events

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

Payment date: 20120725

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20150727

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee