[go: up one dir, main page]

KR20110036573A - 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법 - Google Patents

서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법 Download PDF

Info

Publication number
KR20110036573A
KR20110036573A KR1020117000562A KR20117000562A KR20110036573A KR 20110036573 A KR20110036573 A KR 20110036573A KR 1020117000562 A KR1020117000562 A KR 1020117000562A KR 20117000562 A KR20117000562 A KR 20117000562A KR 20110036573 A KR20110036573 A KR 20110036573A
Authority
KR
South Korea
Prior art keywords
application program
address
server application
instance
client application
Prior art date
Application number
KR1020117000562A
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 KR20110036573A publication Critical patent/KR20110036573A/ko

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

IP 통신 네트워크(103)를 통해 연결된 클라이언트(104)상에서 구동하는 클라이언트 애플리케이션 프로그램과 함께 처리함에 있어서 처리의 연속성을 제공하기 위해서, 제2 IP 주소가 서버(102)상에서 구동하는 서버 애플리케이션 프로그램의 선택된 인스턴스로 할당되는 방법을 도시한다. 상기 제2 IP 주소는 상기 서버 애플리케이션 프로그램에 독점적이고, IP 네트워크 엑세스가 상기 제2 IP 주소를 통해서 상기 서버 애플리케이션 프로그램에 제공된다. 상기 클라이언트 애플리케이션 프로그램의 재연결이 상기 제2 IP 주소를 통해 상기 서버 프로그램에 가능해진다. 본 방법은 IP 버전 6에 호환되는 장치에 의해 수행될 수 있다.

Description

서버 애플리케이션 프로그램으로 IP 네트워크를 통한 엑세스를 제공하는 방법{PROVIDING ACCESS OVER AN IP NETWORK TO A SERVER APPLICATION PROGRAM}
본 발명은 클라이언트 애플리케이션 프로그램에 의해서, 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통한 엑세스를 제공하기 위한 방법, 장치 및 소프트웨어에 관련된 것이다.
클라이언트/서버 컴퓨터 시스템에서는, 증가된 서버 시스템 밴드폭을 제공하기 위해, 서버 애플리케이션 프로그램의 복수의 인스턴스들이 제공될 수 있다. 상기 서버 애플리케이션 프로그램의 모든 인스턴스들은 동일한 IP 어드레스를 공유하고, 동일한 네트워크 포트상에서 통신을 접수하도록 마련된다. 네트워크 포트는 인커밍 네트워크 데이터 트래픽을 수신 컴퓨터상에서 구동하는 주어진 프로세서나 애플리케이션에 매치시키기 위해 사용되는 식별 숫자이다. 다시 말해, 상기 서버 애플리케이션 프로그램의 몇몇 인스턴스들이 액티브되고, 정해진 클라이언트 애플리케이션 프로그램에 의해 사용되는 IP 주소나 포트를 대기한다. 클라이언트 애플리케이션 프로그램이 상기 IP 주소와 포트에 연결할 때, 상기 서버 인스턴스 중 하나가 상기 클라이언트 애플리케이션 프로그램과의 연결을 설정하도록 선택된다.
상기 클라이언트 애플리케이션 프로그램과 상기 서버 애플리케이션 프로그램의 선택된 인스턴스간의 차후 상호작용동안, 데이터나 다른 객체들이 상기 서버 애플리케이션 프로그램의 선택된 인스턴스용 영구 저장장치(persistent storage)안에 생성될 가능성이 있다. 상기 처리의 다음 단계들은 그러한 데이터나 객체들에 좌우될 수 있다. 따라서, 그러한 객체들을 보존하기 위해 상기 클라이언트 애플리케이션 프로그램과 서버 애플리케이션 프로그램의 선택된 인스턴스간의 연결은 유지되어야 한다. 한가지 문제는 만약 상기 연결이 삭제되거나 끊기면 상기 클라이언트 애플리케이션 프로그램은 상기 서버 애플리케이션 프로그램의 동일한 인스턴스로 재연결하는 것이 불가능할 것이고, 상기 생성된 데이터나 객체들의 요소들이 손실될 수 있다는 점이다. 또한, 상기 연결을 유지하는 것은 대량의 네트워크 및 서버 컴퓨터 리소스들을 필요로한다.
본 발명의 실시예는 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 엑세스를 제공하는 방법을 제공하는데, 상기 방법은 a) 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 단계; b) 상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 단계(enabling); c) 상기 클라이언트 애플리케이션 프로그램으로 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 단계 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-; d) 상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 단계; 및 e) 상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 단계를 포함한다.
상기 제2 IP 주소는 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 요청에 반응하여 제공된다. 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 상기 요청은, 상기 클라이언트 애플리케이션 프로그램으로부터의 대응 요청에 반응하여 이루어진다. 상기 제2 IP 주소는 미사용된 IP 주소들의 기정해진 세트로부터 선택된다. 상기 미사용된 IP 주소들의 기정해진 세트는 하나 또는 그 이상의 관련된 도메인 네임 서버들(DNS들)로부터 획득된 사용된 IP 주소들 세트로부터 결정된다. 상기 클라이언트 애플리케이션 프로그램과 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스간의 처리가 완료될 때, 상기 제2 IP 주소가 차후 사용을 위해 해제된다. 상기 제2 IP 주소는 상기 클라이언트 애플리케이션 프로그램으로부터의 요청에 반응하여 해제된다. 상기 IP 네트워크 및 주소는 IP 버전 6 (IPv6) 호환된다.
다른 실시예는 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 의한 엑세스를 제공하기 위한 방법을 제공하는데, 상기 방법은, a) 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로 연결하는 단계; b) 상기 선택된 서버 애플리케이션 프로그램 인스턴스로부터 제2 IP 주소를 요청하는 단계 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점적임-; c) 상기 제2 IP 주소의 접수에 반응하여, 상기 선택된 서버 애플리케이션 프로그램 인스턴스와의 연결을 종료하는 단계; 및 d) 상기 제2 IP 주소를 통해 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스를 재연결하는 단계;를 포함한다.
또 다른 실시예는 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 대한 연결을 제공하기 위한 서버 애플리케이션 프로그램 인스턴스에 대한 방법을 제공하는데, 상기 방법은 a) 서버 애플리케이션 프로그램의 복수의 다른 인스턴스들과 공통인 제1 IP 주소에 대한 포트를 모니터링하는 단계; b) 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 제1 연결을 제공하기 위해 상기 제1 IP 주소를 통해 상기 클라이언트 애플리케이션 프로그램으로 연결하는 단계; c) 상기 클라이언트 애플리케이션 프로그램으로부터 제2 요청에 반응하여, 상기 서버 애플리케이션 프로그램 인스턴스에 독점인 제2 IP 주소를 획득하고 그리고 상기 클라이언트 애플리케이션 프로그램으로 상기 제2 IP 주소를 전달하는 단계(communicating); d) 상기 클라이언트 애플리케이션 프로그램으로부터의 제3 요청에 반응하여, 상기 제1 연결을 종료하는 단계; e) 상기 제2 IP 주소에 대해 포트를 모니터링하는 단계; 및 f) 상기 클라이언트 애플리케이션 프로그램으로부터의 4번째 요청에 반응하여, 상기 제2 IP 주소를 통해서 상기 클라이언트 애플리케이션 프로그램을 재연결하는 단계를 포함한다.
또 다른 실시예는 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램으로 엑세스를 제공하기 위한 장치를 제공하는데, 상기 장치는 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 기능; 상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 기능(enabling); 상기 클라이언트 애플리케이션 프로그램으로 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 기능 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-; 상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 단계; 및 상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 기능을 기능을 수행할 수 있다.
또 다른 실시예는 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 의한 엑세스를 제공하기 위한 장치를 제공하는데, 상기 장치는 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로 연결하는 기능; 상기 선택된 서버 애플리케이션 프로그램 인스턴스로부터 제2 IP 주소를 요청하는 기능 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점적임-; 상기 제2 IP 주소의 접수에 반응하여, 상기 선택된 서버 애플리케이션 프로그램 인스턴스와의 연결을 종료하는 기능; 및 상기 제2 IP 주소를 통해 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스를 재연결하는 기능을 수행할 수 있다.
다른 실시예는 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 대한 연결을 제공하기 위한 서버 애플리케이션 프로그램 인스턴스에 대한 장치를 제공하는데, 상기 장치는 서버 애플리케이션 프로그램의 복수의 다른 인스턴스들과 공통인 제1 IP 주소에 대한 포트를 모니터링하는 기능; 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 제1 연결을 제공하기 위해 상기 제1 IP 주소를 통해 상기 클라이언트 애플리케이션 프로그램으로 연결하는 기능; 상기 클라이언트 애플리케이션 프로그램으로부터의 제2 요청에 반응하여, 상기 서버 애플리케이션 프로그램 인스턴스에 독점인 제2 IP 주소를 획득하고 그리고 상기 클라이언트 애플리케이션 프로그램으로 상기 제2 IP 주소를 전달하는 기능(communicating); 상기 클라이언트 애플리케이션 프로그램으로부터의 제3 요청에 반응하여, 상기 제1 연결을 종료하는 기능; 상기 제2 IP 주소에 대해 포트를 모니터링하는 기능; 및 상기 클라이언트 애플리케이션 프로그램으로부터의 4번째 요청에 반응하여, 상기 제2 IP 주소를 통해서 상기 클라이언트 애플리케이션 프로그램을 재연결하는 기능을 수행할 수 있다.
또 다른 실시예는 디지털 컴퓨터의 내부 메모리로 로드가능한 컴퓨터 프로그램 제품을 포함하는데, 상기 컴퓨터 프로그램 제품은 상기 제품이 컴퓨터상에서 구동할 때 a) 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 단계; b) 상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 단계(enabling); c) 상기 클라이언트 애플리케이션 프로그램으로 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 단계 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-; d) 상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 단계; 및 e) 상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 단계를 포함하는 방법을 수행하기 위한 소프트웨어 코드 부분들을 포함한다.
또 다른 실시예는 디지털 컴퓨터의 내부 메모리로 로드가능한 컴퓨터 프로그램 제품을 제공하는데, 상기 컴퓨터 프로그램 제품은 상기 제품이 컴퓨터상에서 구동할 때, 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 기능; 상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 기능(enabling); 상기 클라이언트 애플리케이션 프로그램으로 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 기능 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-; 상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 단계; 및 상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 기능을 기능을 수행할 수 있는 장치를 제공하기 위한 소프트웨어 코드 부분들을 제공한다.
본 발명의 바람직한 실시예들은 주어진 서버가 다수의 IP 주소들을 가지도록 허용하는 IPv6 프로토콜의 특징을 이용한다. 이러한 특징은, 상기 서버로 소켓/연결을 열어둔 상태를 유지할 필요없이 특정 서버 인스턴스로의 엑세스를 재설정하기 위한 클라이언트를 위한 기능을 제공하기 위해서, 특정 클라이언트에 대해 서버 인스턴스에 의해 고유한 임시 IP 주소를 할당하는데 사용될 수 있다. 따라서, 이러한 소켓/연결 오픈을 유지하는데 필요한 라우터나 다른 물리적 리소스들이 대신해서 다른 유저들을 위해서 이용가능해질 수 있다. 이후에, 상기 클라이언트는 상기 할당된 IP 주소를 이용함으로써 이전에 사용된 특정 서버 프로그램 인스턴스로의 접속을 다시 열수 있을 것이다.
이하의 첨부된 도면들을 참고로 일 예로서 본 발명의 실시예들이 기술될 것이다.
도 1은 네트워크화된 컴퓨터 시스템의 구조도이다;
도 2는 도 1의 상기 컴퓨터 시스템내 서버 컴퓨터에 대한 소프트웨어 컴포넌트들의 구조도이다;
도 3은 도 1의 상기 컴퓨터 시스템내 클라이언트 컴퓨터에 대한 소프트웨어 컴포넌트들의 구조도이다;
도 4는 도 1의 컴퓨터 시스템내 상기 클라이언트 및 서버 컴퓨터들간의 사용을 위한 명령들(instructions)을 도시하는 테이블이다;
도 5는 도 2의 서버 컴퓨터의 소프트웨어 컴포넌트들간의 사용을 위한 명령들(instructions)을 도시하는 테이블이다;
도 6은 도 3의 클라이언트 컴퓨터에 대해 클라이언트 애플리케이션 프로그램에 의해 수행되는 처리를 도시하는 흐름도이다;
도 7은 도 3의 서버 컴퓨터에 대해 서버 애플리케이션 프로그램의 인스턴스에 의해 수행되는 처리를 도시하는 흐름도이다; 그리고
도 8은 도 2의 서버 컴퓨터에 대해 IP 스택 관리 프로그램에 의해 수행되는 처리를 도시하는 흐름도이다.
도 1을 참고로, 컴퓨터 시스템(101)은 클라이언트 컴퓨터(104) 및 DNS(105,Domain Name Server)과 마찬가지로 WAN(103,Wide Area Network)에 연결된 서버 컴퓨터(102)를 포함한다. 상기 서버 컴퓨터(102) 및 클라이언트 컴퓨터(104)는 TCP/IP(Transmission Control Protocol/Internet Protocol) 통신 프로토콜을 사용해서 상기 네트워크(103)를 따라 통신이 가능하도록 마련된 소프트웨어를 가지고 마련된다. 상기 본 실시예에서는, TCP/IP 버전 6(IPv6) 프로토콜이 사용된다. IPv6 주소들은 4개의 16진수로 이루어진 8개 그룹들(콜론으로 분리)로 기록되고, 보통 두개의 논리 부분들(64비트의 네트워크 프리픽스(network prefix) 및 64비트의 호스트 부분(host part))로 구성된다. 상기 호스트부분은 일반적으로 서버 애플리케이션 프로그램의 인스턴스의 주소를 나타내는데(to address) 사용되고, 동적으로 변경될 수 있는데, 즉 서버 리소스는 이따큼 자신의 IPv6 주소를 효율적으로 변경할 수 있다. 상기 DNS(105)는 URLs(Universal Resource Locators) 형태인 네트워크 주소들(예를 들어 www.ibm.com)을 IPv6 주소(예를 들어 al29:e4e2:d5c6:b216: lc22:6ff2:57ab:9el2)로의 변환을 제공한다.
도 2는 상기 서버 컴퓨터(102)의 소프트웨어 컴포넌트들을 더 자세하게 보여준다. 상기 서버 컴퓨터(102)는 운영 시스템(201)상에서 구동하고, 본 실시예에서 운영 시스템(201)은 IBM사(International Business Machines Corporation)의 z/OS 운영 시스템이다. 상기 운영 시스템(201)이 상주 프로그램들에 IP 네트워크 엑세스를 제공하도록 하는 IP 네트워크 인터페이스를 제공하기 위해 마련된 z/OS 통신 관리자 형태인 IP 스택 관리 프로그램(202)을 가진 상기 운영 시스템(201)이 제공된다. 서버 애플리케이션 프로그램의 3개의 인스턴스들(204, 205, 206)이 상기 운영 시스템(201)상에서 구동하는데, 본 실시예에서 이들은 IBM CICS(CICS Transaction Server) 애플리케이션 프로그램의 인스턴스들이다. (IBM, z/OS 및 CICS은 미국 및 그외 국가들 또는 둘다에서 IBM사의 상표들이다). 상기 서버 애플리케이션 프로그램의 각 인스턴스(204, 205, 206)는 높은 서버 사용률(availability)을 제공하도록, 공통 IP 주소를 가지며 상기 IP 스택 관리 시스템(202)에 의해 제공된 공통 포트상에서 수신(listen)하도록 마련된다. 따라서, 상기 클라이언트 컴퓨터(104)로부터 상기 서버 애플리케이션 프로그램의 인스턴스(204, 205, 206)로 엑세스를 위한 요청에 응답하여, 상기 서버 애플리케이션 프로그램 중 하나의 인스턴스(204, 205, 206)가 랜덤하게 선택되고 상기 클라이언트 컴퓨터(104)에 연결된다. 상기 클라이언트 컴퓨터(104)와 상기 서버 애플리케이션 프로그램의 선택된 인스턴스(204, 205, 206)간의 차후 처리동안에 생성될 수 있는 데이터나 다른 객체들(207,208,209)가, 상기 서버 애플리케이션 프로그램의 선택된 인스턴스(204, 205, 206)용 영구 저장장치내에 저장된다. 이러한 데이터(207, 208, 209)는 상기 클라이언트 컴퓨터(104)와 상기 서버 애플리케이션 프로그램의 선택된 인스턴스(204, 205, 206)간의 관련성(affinity)이나 관계(relationship)를 정의한다.
도 3은 클라이언트 컴퓨터(104)의 소프트웨어 컴포넌트들을 더 자세하게 도시한다.
상기 클라이언트 컴퓨터(104)는 웹 브라우저 애플리케이션 프로그램 형태로 클라이언트 애플리케이션 프로그램(302)용 플랫폼을 제공하는 운영 시스템(301)을 구동하고 있다. 상기 웹 브라우저(302)는 상기 서버 애플리케이션 프로그램의 인스턴스들(204,205,206)에 의해 제공된 서비스들로 IP 네트워크(103)를 통해 유저 엑세스를 제공한다. 상기 웹 브라우저(302)는 여기서 관련 주소(affinity address, AA) 클라이언트 플러그인(303)으로 호칭되는 확장 플러그인 프로그램을 더 포함한다. 상기 AA 클라이언트 플러그인(303)은 상기 웹 브라우저(302)가 연결된 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)에 대한 IP 어드레스를 요청하는 기능을 가진 웹 브라우저(302)를 제공하고, 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)에 고유한 새로운 IP 주소를 재할당하도록 마련된다. 여기서, 이러한 새로운 IP 주소는 AA(affinity address)로 호칭된다. 바람직하게는, 상기 IPv6 프로토콜의 특징(주어진 서버가 다수의 IPv6 주소들을 가지는 것이 가능)이 활용된다. IPv6 주소는 a: b: c: d: w: x: y: z 형태인데, 여기서 a, b, c, d, w, x 및 y는 0000부터 FFFF까지의 16진수 문자 엔트리들이다. 사실상, 상기 IPv6 주소의 a: b: c: d 부분은 라우터용으로 상기 네트워크를 통해 아이템을 가리키는데 사용되고, 상기 w: x: y: z 부분은 상기 라우터와 통신중인 서버를 식별하는데 사용된다. 상기 서버는 고유한 임시 IPv6 주소를 요청할 수 있다. 일반적으로, 서버 애플리케이션 프로그램의 관련 주소의 a: b: c: d: 부분은(w: x: y: z 부분은 현재 할당되지 않은 어드레스로 변경되면서), 서버 애플리케이션 프로그램의 첫번째 IP 주소의 부분과 동일할 것이다.
상기 AA 클라이언트 플러그인(303)이 요청된 관련 주소를 수신할 때, 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)까지 자신의 현재 연결을 끊고 상기 수신된 관련 주소를 통해서 상기 동일한 인스턴스로 재연결하도록 마련된다. 이러한 재연결은 클라이언트 애플리케이션 프로그램(302)과 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)간의 연결을 계속해서 유지할 필요없이, 관련된 처리 구문(relevant processing context)(즉 데이터(207, 208, 209))가 보존되도록 한다.
도 4는 상기 서버 애플리케이션 프로그램의 인스턴스들(204, 205, 206)과 함께 제공된 API(Application Program Interface)에 의해서 상기 AA 클라이언트 플러그인(303)에서 사용가능한 요청들을 도시한다. 첫번째 요청(관련 주소 제공)은 상기 서버 애플리케이션 프로그램의 인스턴스(204, 205, 206)에 대해 새로운 관련 주소를 제공하기 위한 것으로, 결과적으로 상술한 바와 같이 상기 AA 클라이언트 플러그인(303)으로 제공되고 있는 새로운 관련 주소를 발생시킨다. 제2 요청(관련 주소 해제)는 상기 서버 애플리케이션 프로그램의 인스턴스(204, 205, 206)에 대해 주어진 관련 주소를 해제하기 위한 것이다. 이는 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)가 종료되고 상기 관련 주소를 가능한 차후 사용을 위해서 IP 스택 관리 프로그램(202)에 의해 해제되는 결과를 낳는다. 다시 말해, 이러한 방법으로 제공된 관련 주소는 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)에 오직 임시적으로만 할당될 수 있다.
본 실시예에서, 상기 AA 클라이언트 플러그인(303)과 상기 서버 애플리케이션 프로그램(204, 205, 206)간의 API는 HTTP(Hypertext Transfer Protocol) 버전 1.1 옵션 명령의 확장을 통해서 제공된다. 상기 옵션 명령은 HTTP 메시지 해더들로서 상기 AA 클라이언트 플러그인(303)과 상기 서버 애플리케이션 프로그램의 각 인스턴스(204, 205, 206)간에 제공 및 해제 요청들과 응답들을 전송하는데 사용된다. 그러므로, 관련 주소를 요청하기 위해, 상기 AA 클라이언트 플러그인(303)은 예를 들어 "관련 주소 제공"으로 명명된 해더를 포함하는 HTTP 메시지를 전송한다. 상기 서버 애플리케이션 프로그램의 각 인스턴스(204, 205, 206)로부터의 응답은 "해더명 관련_주소: 1:2:3:4:5:6:7:8"를 포함하는 HTTP 메시지일 수 것이고, 여기서 1:2:3:4:5:6:7:8은 상기 요청된 관련 주소이다.
도 2로 돌아와서, 상기 서버 애플리케이션 프로그램의 각 인스턴스(204, 205, 206)는 여기서 관련 주소(AA) 서버 플러그인(210, 211, 212)으로 명명된 확장 플러그인 프로그램을 더 포함한다. 게다가, 상기 통신 관리자(202)는 여기서 관련 주소(AA) 제공자 플러그인(213)으로 호칭되는 확장 플러그인 프로그램을 더 포함한다. 상기 AA 서버 플러그인의 각 인스턴스(210, 211, 212)는, 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)가 상기 AA 클라이언트 플러그인(303)과 상기 AA 제공자 플러그인(213)간에 요청들을 라우팅하는 기능을 제공하도록 마련된다. 상기 AA 제공자 플러그인(213)은, 상기 통신 관리자(202)에 관련 주소들(214)의 세트를 식별하고 관리하고 요청에 대해 고유 관련 주소들을 제공하기 위한 기능을 제공하도록 마련된다. 상기 관련 주소들의 관리는 상기 DNS(105)로부터 대응되는 사용 IP주소들 모두의 리스트를 획득하고 사용가능한 주소들의 세트(즉, 가능한 관련 주소들의 세트)의 추정을 포함한다. 또한, 관련 주소들의 제공이나 해제를 위한 요청에 반응하여, 상기 AA 제공자 플러그인(213)은 관련 주소들(214)의 세트들과 상기 DNS(105)를 가지고서, 각각에 상기 관련 어드레스들의 이용가능 상태를 업데이트하도록 마련된다.
도 5는 상기 AA 제공자 플러그인(213)과 함께 제공된 API에 의해서, 상기 AA 서버 플러그인(210, 211, 212)의 각 인스턴스로 제공되는 요청들을 도시한다. 상기 AA 클라이언트 플러그인(303)으로부터 수신된 "관련 주소 제공" 요청에 반응하여, 첫번째 요청(관련 주소 획득)이 상기 AA 서버 플러그인(210,211,212)에 의해 상기 AA 제공자 플러그인(213)으로 발행된다. 응답으로서, 상기 AA 제공자 플러그인(213)은 관련 주소를 선택하고, 상기 선택된 주소를 사용불가능으로 마크하고, 그리고 상기 선택된 주소를 상기 AA 서버 플러그인(210,211,212)에 리턴한다. 그리고나서 상기 선택된 관련 주소는 상기 요청한 AA 클라이언트 플러그인(303)으로 전달되고, 또한 상기 관련 주소를 통해 상기 클라이언트 애플리케이션 프로그램(302)과 상기 서버 애플리케이션 프로그램의 인스턴스(204,205,206)의 재연결이 가능하도록, 상기 서버 애플리케이션 프로그램의 주어진 인스턴스(204, 205, 206)에 배정된다(assigned). 도 5의 API내 두번째 요청(관련 주소 해제)는, 상기 AA 클라이언트 플러그인(303)으로부터 수신된 "관련 주소 해제" 요청에 반응하여, 상기 AA 서버 플러그인(210,211,212)에 의해 상기 AA 제공자 플러그인(213)으로 발행된다. 응답에서는, 상기 AA 제공자 플러그인(213)은 상기 해제된 관련 주소를 사용가능으로 마크한다. 세번째 및 네번째 요청들은 상기 AA 제공자 플러그인(213)에 대한 관리 인터페이스의 일부분으로 제공되고, 각각 주어진 서버에 의해 사용중인 모든 관련 주소들과 상기 IP 스택에서 모든 알려진 관련 주소들이 발견되도록 한다.
상기 클라이언트 애플리케이션 프로그램(302)과 조합으로 상기 AA 클라이언트 플러그인(303)에 의해 수행된 상기 처리는 도 6의 흐름도를 참고로 더 자세하게 기술될 것이다. 단계 601에서, 상기 클라이언트 애플리케이션 프로그램(302)의 초기설정(initialisation)에 대한 반응으로, AA 클라이언트 플러그인(302)의 처리가 개시되고, 처리는 단계 602로 이동한다. 단계 602에서, 연결이 상기 IP 네트워크(103)를 통해, 랜덤하게 선택된 서버 애플리케이션 프로그램의 인스턴스(도 2의 서버 인스턴스1, 204)와 이루어지고, 상기 클라이언트 및 서버 프로그램들(302,204)간의 처리가 개시된다. 그리고나서 처리는 관련 주소의 제공을 위한 요청이 상기 서버 애플리케이션 프로그램의 선택된 인스턴스(204)로 전송되는 단계 603으로 이동하고, 그리고 처리는 단계 604로 이동한다. 단계 604에서, 상기 요청된 관련 주소는 대기되고 일단 수신된 처리는 단계 605로 이동한다. 단계 605에서, 상기 클라이언트와 서버 프로그램들(302,204)간의 처리는 임시적으로 대기되고 처리는 단계 606으로 이동한다. 단계 606에서, 상기 서버 애플리케이션 프로그램의 선택된 인스턴스(204)와의 현재 연결이 종료되고, 따라서 상기 통신을 위한 모든 리소스들이 해제되고, 처리는 단계 607로 이동한다. 단계 607에서, 새로운 연결이 상기 수신된 관련 주소를 통해 상기 서버 애프릴케이션 프로그램의 동일하게 선택된 인스턴스(204)에 이루어지고, 처리는 단계 608로 이동한다. 단계 608에서, 상기 클라이언트와 서버 프로그램들(302,204)간의 처리는 재개되고 처리는 단계 609로 이동한다. 단계 609에서, 상기 클라이언트와 서버 프로그램들(302,204)간의 처리의 완료가 대기되고, 일단 완료된 처리는 단계 610으로 이동한다. 단계 610에서, 상기 수신된 관련 주소의 해제를 위한 요청이 서버 애플리케이션 프로그램(204)으로 전송되고, 서버로의 차후 연결의 개시를 대기하기 위해 처리는 단계 602로 리턴한다.
종래 기술의 경우에는, 단계 606에서 연결을 종료하지 않고, 할당이 계속되어 있어야하고 따라서 다른 요소들에 의해 사용하는 것이 불가능한 통신 리소스들을 가지고, 상기 서버 애플리케이션 프로그램(205)의 선택된 인스턴스와의 현재 연결을 활성화 상태로 유지해야만 한다는 점에 유념해야 한다.
상기 서버 애플리케이션 프로그램(204,205,206)의 연관된 인스턴스와 조합으로 상기 AA 서버 플러그인(210)의 인스턴스에 의해 수행된 처리가 도 7의 흐름도를 참고로 더 자세하게 기술될 것이다. 단계 701에서, 상기 서버 애플리케이션 프로그램(204)의 연관된 인스턴스의 초기설정(initialisation)에 반응하여, 상기 AA 서버 플러그인(210)의 인스턴스의 처리가 개시되고 처리는 단계 702로 이동한다. 단계 702에서, 상기 클라이언트 애플리케이션 프로그램(302)로부터 요청된 연결이 수신되고, 처리는 단계 703으로 이동한다. 단계 703에서, 상기 클라이언트와 서버 애플리케이션(302,204)간의 처리가 수행되고, 그리고 요청에 관련된 관련 주소가 상기 클라이언트 애플리케이션 프로그램(302)로부터 수신되거나 또는 포인트 처리가 단계 704로 이동하여 처리가 종료될 때까지 계속된다. 단계 704에서, 만약 관련 주소와 관련된 요청이 수신되었다면, 처리는 단계 705로 이어진다. 만약 단계 705에서 상기 요청이 관련 주소 제공을 위한 요청으로 식별되었다면, 처리는 단계 706으로 이동한다. 단계 706에서, 새로운 관련 주소를 위한 요청이 AA 제공자 플러그인(213)으로 전송되고, 처리는 새로운 관련 주소의 접수를 대기하는 단계 707로 이동한다. 상기 관련 주소가 수신되면, 처리는 단계 708로 이동한다. 단계 708에서, 상기 수신된 관련 주소는 상기 요청 클라이언트 애플리케이션 프로그램(302)로 다시 패스되고, 처리는 단계 709로 이동한다. 단계 709에서, 상기 새로운 관련 주소는 상기 서버 애플리케이션 프로그램(204)의 현재 인스턴스에 할당되는데, 그리고나서 이는 상기 클라이언트 애플리케이션(302)으로부터의 재연결 요청에 대한 관련 주소를 수신하고(listens), 일단 수신되면 처리는 상기 재연결이 설정되고 상기 클라이언트와 서버 애플리케이션 프로그램들(302,204)간의 처리가 재개되는 단계 710으로 이동한다. 상기 클라이언트와 서버 애플리케이션 프로그램들(302,204)간의 처리가 종료되면, 처리는 단계 711로 이동하고 상기 서버 애플리케이션 프로그램(204)의 상기 인스턴스에 대해 종료한다. 만약 단계 704에서 상기 수신된 요청이 상기 클라이언트와 서버 애플리케이션 프로그램들(302,204)간의 처리를 종료하라는 요청이면, 처리는 단계 711로 이동하고 상술한 바와 같이 종료한다. 만약 단계 705에서 상기 수신된 관련 주소와 관련된 요청이 현재 관련 주소를 해제하라는 요청이면, 처리는 적절한 요청이 상기 AA 제공자 플러그인(213)으로 전송되는 단계 712로 이동하고 상술한 바와 같이 종료한다.
상기 IP 스택 관리 프로그램(202)과 조합으로 상기 AA 제공자 플러그인(213)에 의해 수행되는 처리는 도 8의 흐름도를 참고로 더 자세하게 기술될 것이다. 단계 801에서, 상기 AA 제공자 플러그인(213)의 처리는 상기 IP 스택 관리 프로그램(202)의 처리의 초기 설정(initialisation)에 반응하여 개시되고, 처리는 단계 802로 이동한다. 단계 802에서, 현재 사용중인 IPv6 주소들 모두의 리스트는 DNS(105)로부터 수집되고 처리는 단계 803으로 이동한다. 단계 803에서, 미사용중인 IPv6 주소의 리스트는 현재 사용중인 IPv6 주소들의 리스트로부터 추론되고, 처리는 단계 804로 이동한다. 단계 804에서, 상기 미사용중인 IPv6 주소의 리스트는 가능 고유 주소들(214)의 세트로 저장되고, 처리는 단계 805로 이동한다. 단계 805에서, 처리는 서버 애플리케이션 프로그램(204)의 인스턴스로부터 관련 주소 요청을 대기하고, 일단 수신되면 처리는 단계 806으로 이동한다. 단계 806에서 만약 상기 요청이 새로운 관련 주소를 제공하기 위한 것이면, 처리는 단계 807로 이동한다. 단계 807에서, 주소는 관련 주소들(214)의 세트로부터 선택되고, 사용중으로 마크되고 처리는 단계 808로 이동한다. 단계 808에서, 상기 DNS(105)는 관련 주소가 사용중이라는 사실을 통지받고, 처리는 단계 809로 이동한다. 단계 809에서, 상기 선택된 관련 주소가 상기 서버 애플리케이션 프로그램(204)의 요청 인스턴스로 리턴되고, 처리는 요청과 연관된 다음 관련 주소의 접수를 대기하기 위해 단계 805로 이동한다. 단계 806에서, 만약 상기 요청이 사용중인 관련 주소의 해제를 위한 것이라면, 처리는 단계 810으로 이동한다. 단계 810에서, 상기 DNS(105)는 이에 맞춰 업데이트되고 처리는 단계 811로 이동한다. 단계 811에서, 상기 해제된 관련 주소는 관련 주소(214)의 세트내에 사용가능으로 마크되고 처리는 단계 805로 리턴하고 상술한 바와 같이 진행한다.
본 기술분야에서 통상의 기술을 가진 자들에 의해 이해될 수 있는 바와 같이, 본 발명의 실시예들이 IPv6에 관련해서 기술되었으나, 다른 실시예들은 애플리케이션 프로그램의 주어진 인스턴스로 고유 네트워크 주소들을 동적으로 할당하는데 적절한 메카니즘을 가진 다른 프로토콜들을 사용할 수 있다. 또한, 본 발명의 실시예들이 TCP에 대해서 기술되었으나, 몇몇 실시예들에서는 적절한 다른 네트워크 전송 프로토콜들(예를 들어 UDP(User Datagram Protocol)와 같은)이 대치되거나 TCP와 조합으로 사용될 수 있다.
상술한 실시예들에서, 요청 클라이언트 애플리케이션 프로그램으로 연결을 위한 상기 서버 애플리케이션 프로그램의 인스턴스의 선택은 랜덤하게 이루어진다. 본 기술분야에서 통상의 기술을 가진 자들에 의해서 인식될 수 있는 바와 같이, 예를 들어 서버 워크로드 밸런싱이나 페일오버 메카니즘과 같은 다른 표준(criteria)이 상기 서버 애플리케이션 프로그램의 주어진 인스턴스의 선택에 적어도 일부분이라도 기여할 수 있다.
상기 상술한 실시예에서, 기능들이 상기 클라이언트 및 서버 애플리케이션 프로그램들에 부가되고 각 프로그램을 이용하는 IP 스택 관리 프로그램은 확장이나 플러그인으로 기능한다. 본 기술분야에서 통상의 기술을 이용하는 자들에 의해 인식될 수 있는 바와 같이, 상술한 플러그인들 중 어느 것에 의해 제공된 기능들은 대신에 예를 들어 상기 오리지널 클라이언트나 서버 애플리케이션 프로그램들 또는 상기 IP 스택 관리 프로그램에 대해 코드에 추가하거나 코드를 수정하는 것과 같이 임의의 다른 적절한 방법에 의해서 제공될 수 있다. 또한 상술한 상기 서버의 기능들 및 제공자 플러그인들은 상기 각 시스템들내의 다른 적절한 프로그램들에 의해서나 또는 이에 통합해서(예를 들어 적절한 관련 주소 서버의 추가나 제공자 루틴들에 의해서) 제공될 수 있다.
상술한 실시예에서, 상기 DNS는 상기 AA 제공자 플러그인이 파생하는 사용된 IP 주소들의 리스트를 제공하고, 그리고나서 이용가능한 관련 주소들(AAs)의 세트를 관리한다. 다른 실시예들에서, 상기 AAs의 풀의 관리는 상기 DNS에 의해서 단독으로 수행될 수 있다. 다른 실시예에서, 상기 AAs의 풀의 관리는 상기 DNS와 상기 AA 제공자 플러그인간에 공유될 수 있다.
바람직한 실시예에서, a:b:c:d:e:f:g:h 형태를 가진 주어진 IPv6 주소에서, a:b:c:d 부분은 고정되고, 비고정된 부분의 요소들은 주소가 관련 주소인 것을 가리키도록 예약된다. 본 실시예에서, 상기 DNS는 관련 주소의 선택이나 관리에 관여될 필요가 없다.
본 기술분야에서 통상의 기술을 가진 자들에 의해, 본 발명의 일부 또는 전부를 포함하는 장치는 본 발명의 실시예의 일부나 전부를 제공하도록 마련된 소프트웨어를 가진 범용 디바이스일 수 있다는 점이 인식될 것이다. 상기 디바이스는 단일 디바이스이거나 디바이스들의 그룹일 수 있고, 상기 소프트웨어는 단일 프로그램이나 프로그램들의 세트일 수 있다. 또한, 본 발명을 구현하기 위해 사용된 소프트웨어의 일부나 전부는 적절한 통신수단이나 저장 매체를 통해서 통신할 수 있고, 이에 상기 소프트웨어는 하나 또는 그 이상의 디바이스들에 로드될 수 있다.
본 발명이 상기 실시예들의 설명에 의해서 기술되었고, 상기 실시예들이 상당히 자세하게 기술되었으나, 본 명세서의 발명을 제한하거나 첨부된 청구항의 범위를 이러한 상세한 내용으로 제한하려는 의도는 아니다. 추가적인 개선들이나 수정들이 본 기술분야에서 통상의 기술을 가진 자들에게 기꺼이 나타날 수 있다. 따라서, 본 발명은 상세하게 설명된 특정 장치 및 방법, 그리고 도시되고 기술된 실시예들에 한정되지 않는다. 명확하게 하기 위해서, 본 상세한 설명 및 청구항 전체에서 사용되는 용어 "포함하는" 은 "이것만을 포함하는"이라는 의미로 한정되지 않는다.

Claims (23)

  1. 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 엑세스를 제공하는 방법에 있어서,
    상기 방법은
    a) 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 단계;
    b) 상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 단계(enabling);
    c) 상기 클라이언트 애플리케이션 프로그램의 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 단계 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-;
    d) 상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 단계; 및
    e) 상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 제2 IP 주소는 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 요청에 반응하여 제공되는
    방법.
  3. 제2항에 있어서,
    상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 상기 요청은, 상기 클라이언트 애플리케이션 프로그램으로부터의 대응 요청에 반응하여 이루어지는
    방법.
  4. 전항들 중 어느 한항에 있어서,
    상기 제2 IP 주소는 미사용된 IP 주소들의 기정해진 세트로부터 선택되는
    방법.
  5. 제4항에 있어서,
    상기 미사용된 IP 주소들의 기정해진 세트는
    하나 또는 그 이상의 관련된 도메인 네임 서버들(DNS들)로부터 획득된 사용 IP 주소들 세트로부터 결정되는
    방법.
  6. 제4항 또는 제5항에 있어서,
    상기 클라이언트 애플리케이션 프로그램과 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스간의 처리가 완료될 때, 상기 제2 IP 주소가 차후 사용을 위해 해제되는
    방법.
  7. 제6항에 있어서,
    상기 제2 IP 주소는
    상기 클라이언트 애플리케이션 프로그램으로부터의 요청에 반응하여 해제되는
    방법.
  8. 전항들 중 어느 한항에 있어서,
    상기 IP 네트워크 및 주소는 IP 버전 6 (IPv6) 호환인
    방법.
  9. 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 의한 엑세스를 제공하기 위한 방법에 있어서,
    상기 방법은,
    a) 제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로 연결하는 단계;
    b) 상기 선택된 서버 애플리케이션 프로그램 인스턴스로부터 제2 IP 주소를 요청하는 단계 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점적임-;
    c) 상기 제2 IP 주소의 접수에 반응하여, 상기 선택된 서버 애플리케이션 프로그램 인스턴스와의 연결을 종료하는 단계; 및
    d) 상기 제2 IP 주소를 통해 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스를 재연결하는 단계;를 포함하는
    방법.
  10. 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 대한 연결을 제공하기 위한 서버 애플리케이션 프로그램 인스턴스에 대한 방법에 있어서,
    상기 방법은
    a) 서버 애플리케이션 프로그램의 복수의 다른 인스턴스들과 공통인 제1 IP 주소에 대한 포트를 모니터링하는 단계;
    b) 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 제1 연결을 제공하기 위해 상기 제1 IP 주소를 통해 상기 클라이언트 애플리케이션 프로그램으로 연결하는 단계;
    c) 상기 클라이언트 애플리케이션 프로그램으로부터 제2 요청에 반응하여, 상기 서버 애플리케이션 프로그램 인스턴스에 독점인 제2 IP 주소를 획득하고 그리고 상기 클라이언트 애플리케이션 프로그램으로 상기 제2 IP 주소를 전달하는 단계(communicating);
    d) 상기 클라이언트 애플리케이션 프로그램으로부터의 제3 요청에 반응하여, 상기 제1 연결을 종료하는 단계;
    e) 상기 제2 IP 주소용 포트를 모니터링하는 단계; 및
    f) 상기 클라이언트 애플리케이션 프로그램으로부터의 4번째 요청에 반응하여, 상기 제2 IP 주소를 통해서 상기 클라이언트 애플리케이션 프로그램을 재연결하는 단계;를 포함하는
    방법.
  11. 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 엑세스를 제공하기 위한 장치에 있어서,
    상기 장치는
    제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들에 대해 IP 네트워크 엑세스를 제공하는 기능;
    상기 클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 상기 제1 IP 주소를 통해, 상기 복수의 서버 애플리케이션 프로그램 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로, 클라이언트 애플리케이션 프로그램의 연결(connection)을 가능케하는 기능(enabling);
    상기 클라이언트 애플리케이션 프로그램으로 통신을 위해 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 제2 IP 주소를 할당하는 기능 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점됨-;
    상기 제2 IP 주소를 통해서 상기 선택된 서버 애플리케이션 프로그램 인스턴스로 IP 네트워크 엑세스를 제공하는 기능; 및
    상기 제2 IP 주소를 통해서, 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로 상기 클라이언트 애플리케이션 프로그램의 재연결을 가능케하는 기능을 기능을 수행할 수 있는
    장치.
  12. 제11항에 있어서,
    상기 제2 IP 주소는 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 요청에 반응하여 제공되는
    장치.
  13. 제12항에 있어서,
    상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스로부터의 상기 요청은, 상기 클라이언트 애플리케이션 프로그램으로부터의 대응 요청에 반응하여 이루어지는
    장치.
  14. 제11항 내지 제13항 중 어느 한항에 있어서,
    상기 제2 IP 주소는 미사용된 IP 주소들의 기정해진 세트로부터 선택되는
    장치.
  15. 제14항에 있어서,
    상기 미사용된 IP 주소들의 기정해진 세트는
    하나 또는 그 이상의 관련된 도메인 네임 서버들(DNS들)로부터 획득된 사용된 IP 주소들 세트로부터 결정되는
    장치.
  16. 제14항 또는 제15항에 있어서,
    상기 클라이언트 애플리케이션 프로그램과 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스간의 처리가 완료될 때, 상기 제2 IP 주소가 차후 사용을 위해 해제되는
    장치.
  17. 제16항에 있어서,
    상기 제2 IP 주소는
    상기 클라이언트 애플리케이션 프로그램으로부터의 요청에 반응하여 해제되는
    장치.
  18. 제11항 내지 제17항 중 어느 한항에 있어서,
    상기 IP 네트워크 및 주소는 IP 버전 6 (IPv6) 호환인
    장치.
  19. 서버 애플리케이션 프로그램 인스턴스로 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 의한 엑세스를 제공하기 위한 장치에 있어서,
    상기 장치는
    제1 IP 주소에 대해 공통 포트를 통해 서버 애플리케이션 프로그램의 복수의 인스턴스들 중 선택된 서버 애플리케이션 프로그램 인스턴스로 연결하는 기능;
    상기 선택된 서버 애플리케이션 프로그램 인스턴스로부터 제2 IP 주소를 요청하는 기능 -상기 제2 IP 주소는 상기 선택된 서버 애플리케이션 프로그램 인스턴스에 독점적임-;
    상기 제2 IP 주소의 접수에 반응하여, 상기 선택된 서버 애플리케이션 프로그램 인스턴스와의 연결을 종료하는 기능; 및
    상기 제2 IP 주소를 통해 상기 서버 애플리케이션 프로그램의 상기 선택된 인스턴스를 재연결하는 기능을 수행할 수 있는
    장치.
  20. 인터넷 프로토콜(IP) 네트워크를 통해 클라이언트 애플리케이션 프로그램에 대한 연결을 제공하기 위한 서버 애플리케이션 프로그램 인스턴스에 대한 장치에 있어서,
    상기 장치는
    서버 애플리케이션 프로그램의 복수의 다른 인스턴스들과 공통인 제1 IP 주소에 대한 포트를 모니터링하는 기능;
    클라이언트 애플리케이션 프로그램으로부터의 제1 요청에 반응하여, 제1 연결을 제공하기 위해 상기 제1 IP 주소를 통해 상기 클라이언트 애플리케이션 프로그램으로 연결하는 기능;
    상기 클라이언트 애플리케이션 프로그램으로부터의 제2 요청에 반응하여, 상기 서버 애플리케이션 프로그램 인스턴스에 독점인 제2 IP 주소를 획득하고 그리고 상기 클라이언트 애플리케이션 프로그램으로 상기 제2 IP 주소를 전달하는 기능(communicating);
    상기 클라이언트 애플리케이션 프로그램으로부터의 제3 요청에 반응하여, 상기 제1 연결을 종료하는 기능;
    상기 제2 IP 주소에 대해 포트를 모니터링하는 기능; 및
    상기 클라이언트 애플리케이션 프로그램으로부터의 4번째 요청에 반응하여, 상기 제2 IP 주소를 통해서 상기 클라이언트 애플리케이션 프로그램을 재연결하는 기능을 수행할 수 있는
    장치.
  21. 디지털 컴퓨터의 내부 메모리로 로드가능한 컴퓨터 프로그램 제품에 있어서,
    상기 제품이 컴퓨터상에서 구동할 때, 제1항 내지 제10항 중 어느 한항에 기재된 방법을 수행하기 위한 소프트웨어 코드 부분들을 포함하는
    컴퓨터 프로그램 제품.
  22. 디지털 컴퓨터의 내부 메모리로 로드가능한 컴퓨터 프로그램 제품에 있어서,
    상기 제품이 컴퓨터상에서 구동할 때, 제11항 내지 제20항 중 어느 한항에 기재된 장치를 제공하기 위한 소프트웨어 코드 부분들을 포함하는
    컴퓨터 프로그램 제품.
  23. 하나 또는 그 이상의 프로그램가능한 디바이스들의 그룹이 제1항 내지 제1항 중 어느 한항의 방법을 수행하거나 제11항 내지 제20항 중 어느 한항의 장치를 제공하도록 마련된 하나 또는 그 이상의 프로그램들의 그룹.
KR1020117000562A 2008-06-25 2009-06-03 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법 KR20110036573A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08159010.1 2008-06-25
EP08159010 2008-06-25

Publications (1)

Publication Number Publication Date
KR20110036573A true KR20110036573A (ko) 2011-04-07

Family

ID=41217531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117000562A KR20110036573A (ko) 2008-06-25 2009-06-03 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법

Country Status (6)

Country Link
US (1) US8495190B2 (ko)
EP (1) EP2291982B1 (ko)
JP (1) JP5220920B2 (ko)
KR (1) KR20110036573A (ko)
CN (1) CN102027732B (ko)
WO (1) WO2009156255A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439604B1 (ko) * 2011-07-12 2014-09-12 애플 인크. 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2502465B (en) * 2008-11-24 2014-01-08 Ericsson Telefon Ab L M Methods and arrangements in a communication network
US8621046B2 (en) * 2009-12-26 2013-12-31 Intel Corporation Offline advertising services
WO2012169945A1 (en) * 2011-06-08 2012-12-13 Telefonaktiebolaget L M Ericsson (Publ) Subscription information managing apparatus and control method therefor
EP2749036B1 (en) 2011-08-25 2018-06-13 Intel Corporation System and method and computer program product for human presence detection based on audio
US20130054817A1 (en) * 2011-08-29 2013-02-28 Cisco Technology, Inc. Disaggregated server load balancing
CN103891247B (zh) * 2011-09-20 2017-02-15 西门子瑞士有限公司 用于基于域名系统的设备和目标发现的方法和系统
WO2013121255A1 (en) * 2012-02-14 2013-08-22 International Business Machines Corporation Method for controlling access of clients to a service in a cluster environment
DE102012217136A1 (de) * 2012-09-24 2014-03-27 Robert Bosch Gmbh Überwachungssystem mit Nachrichtenweiterleitung, Verfahren sowie Computerprogramm
CN103002064A (zh) * 2012-11-20 2013-03-27 中兴通讯股份有限公司 一种释放地址的方法、用户节点及远程接入服务器
WO2014082749A1 (en) 2012-11-28 2014-06-05 Telefónica Germany GmbH & Co. OHG Method for anonymisation by transmitting data set between different entities
US10855587B2 (en) 2018-10-19 2020-12-01 Oracle International Corporation Client connection failover
JP2020188380A (ja) * 2019-05-15 2020-11-19 京セラドキュメントソリューションズ株式会社 情報処理システム、ユーザ端末及び電子機器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957276B1 (en) * 2000-10-23 2005-10-18 Microsoft Corporation System and method of assigning and reclaiming static addresses through the dynamic host configuration protocol
US20020143953A1 (en) * 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US7054944B2 (en) * 2001-12-19 2006-05-30 Intel Corporation Access control management system utilizing network and application layer access control lists
JP2004075036A (ja) 2002-08-20 2004-03-11 Yasuhiro Mizuta タイヤホイール脱輪防止金具
US7380021B2 (en) 2002-12-18 2008-05-27 International Business Machines Corporation Method for designating internet protocol addresses
US7454489B2 (en) * 2003-07-01 2008-11-18 International Business Machines Corporation System and method for accessing clusters of servers from the internet network
JP4402975B2 (ja) 2004-02-09 2010-01-20 パナソニック株式会社 カラープラズマディスプレイパネル及びその製造方法
US7403535B2 (en) 2004-12-14 2008-07-22 Hewlett-Packard Development Company, L.P. Aggregation of network resources providing offloaded connections between applications over a network
JP2006262141A (ja) 2005-03-17 2006-09-28 Fujitsu Ltd Ipアドレス適用方法、vlan変更装置、vlan変更システム、および検疫処理システム
US8782278B2 (en) * 2008-03-21 2014-07-15 Qualcomm Incorporated Address redirection for nodes with multiple internet protocol addresses in a wireless network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439604B1 (ko) * 2011-07-12 2014-09-12 애플 인크. 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법

Also Published As

Publication number Publication date
US20090327486A1 (en) 2009-12-31
EP2291982B1 (en) 2016-12-21
US8495190B2 (en) 2013-07-23
EP2291982A1 (en) 2011-03-09
CN102027732A (zh) 2011-04-20
JP5220920B2 (ja) 2013-06-26
JP2011526710A (ja) 2011-10-13
CN102027732B (zh) 2013-10-30
WO2009156255A1 (en) 2009-12-30

Similar Documents

Publication Publication Date Title
KR20110036573A (ko) 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법
KR100984384B1 (ko) 클러스터 노드들을 권위적 도메인 네임 서버들로서사용하여 액티브 부하 조절을 하는 시스템, 네트워크 장치,방법, 및 컴퓨터 프로그램 생성물
US8892768B2 (en) Load balancing apparatus and load balancing method
US20020152307A1 (en) Methods, systems and computer program products for distribution of requests based on application layer information
EP2112788A1 (en) A method, system and nodes for p2p content sharing
CN1954576B (zh) 处理启动请求的方法、装置和系统
US20090222583A1 (en) Client-side load balancing
EP2692095B1 (en) Method, apparatus and computer program product for updating load balancer configuration data
WO2013097484A1 (zh) 虚拟机集群的负载均衡方法、服务器及系统
US9697173B2 (en) DNS proxy service for multi-core platforms
US7564854B2 (en) Network architecture with a light-weight TCP stack
CN111614792B (zh) 透传方法、系统、服务器、电子设备及存储介质
US20140189793A1 (en) Virtual file system for interworking between content server and information-centric network server and operating method thereof
US20110235641A1 (en) Communication apparatus, method of controlling the communication apparatus,and program
CN104969533B (zh) 一种数据包处理方法和装置
US9083718B1 (en) Global grid protocal, a system and method for establishing and simplifying peer-to-peer networking connections among a plurality of computers and divices by dynamically generating identifiers and performing routing and traversal processes
Ivanisenko Methods and Algorithms of load balancing
US11258848B1 (en) Load balancing requests such that target resources serve a single client
JP6665620B2 (ja) サーバ装置、端末装置、クライアントサーバシステム、通知方法、および情報取得方法、並びにコンピュータ・プログラム
KR100920327B1 (ko) 서비스 처리 시스템
JP2008206081A (ja) マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法
JP4617203B2 (ja) サーバ装置および通信接続方法
JP2005157639A (ja) プロキシ通信システムおよびそのためのプログラム
EP3264678A1 (en) Method and device for processing, at a network equipment, a processing request from a terminal
JP2004343465A (ja) ネットワーク情報割当装置及びその方法と、ネットワーク情報割当プログラム及びそのプログラムを記録した記録媒体と、ブート情報割当装置及びその方法と、ブート情報割当プログラム及びそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20110110

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20130604

Comment text: Request for Examination of Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140731

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20141007

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20140731

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I