KR100788631B1 - 인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링 - Google Patents
인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링 Download PDFInfo
- Publication number
- KR100788631B1 KR100788631B1 KR1020057014037A KR20057014037A KR100788631B1 KR 100788631 B1 KR100788631 B1 KR 100788631B1 KR 1020057014037 A KR1020057014037 A KR 1020057014037A KR 20057014037 A KR20057014037 A KR 20057014037A KR 100788631 B1 KR100788631 B1 KR 100788631B1
- Authority
- KR
- South Korea
- Prior art keywords
- pool
- backup
- pool element
- data packet
- transport
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2005—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
ENRP 서버(124, 130)는 제 1 풀 엘리먼트(PE) 및 제 2 PE(118) 각각으로부터 등록 정보를 수신하며, 상기 각각의 PE로부터 수신되는 상기 등록 정보는 동일한 풀 핸들을 포함한다. 상기 제 1 PE로부터 등록 정보는 리던던시 모델을 더 포함한다. 상기 ENRP 서버는 상기 제 1 및 제 2 PE들 모두를 포함하는 풀(108)을 생성하고, 상기 풀에 상기 수신된 리던던시 모델을 적응시킨다. 그 후, 풀 사용자(PU)(102)는 상기 풀 핸들을 상기 ENRP 서버로 운반하고, 응답시 상기 PE들에 대응하는 전송 어드레스들과 상기 풀에 의해 구현되는 리던던시 모델을 수신함으로써 상기 풀을 접속할 수 있다. 그 후, 상기 PU는 상기 수신된 전송 어드레스들 및 적절할 때, 상기 수신된 리던던시 모델에 기초하여 상기 풀을 접속할 수 있다.
인터넷 프로토콜-기반 통신 시스템, 종단점 네임 결정 프로토콜 서버, 풀 핸들 변환 응답, 네임 서버, 전송 어드레스, 풀 엘리먼트
Description
본 발명은 일반적으로 인터넷 프로토콜-기반 통신 시스템들에 관한 것으로, 특히, 인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링에 관한 것이다.
시스템 가용성(system availability)은 모든 통신 시스템들의 중요한 특징이다. 즉, 모든 통신 시스템의 목표는, 상기 시스템의 일부가 충돌하면 상기 시스템이 서비스를 여전히 제공할 수 있도록 높은 가용성을 달성하는 것이다. 높은 가용성을 달성하는 하나의 수단은 시스템 리던던시(system redundancy)를 제공하는 것이다. 리던던시는 액티브 시스템을 위한 백업 시스템(backup system)을 제공하여 상기 액티브 시스템이 충돌하면 상기 백업 시스템이 참여하고 상기 액티브 시스템에 의해 수행된 기능들을 수행할 수 있다.
리던던시의 단점은 백업 시스템의 비용이다. 상기 액티브 시스템이 충돌할 때까지 유휴(idle)로 될 수 있는 백업 시스템을 제공하는 것은 고가이다. 리던던시의 비용을 양호하게 제공하는 하나의 방법은 리소스들을 "풀(pool)"하는 것이다. "풀링"은, 풀 사용자(pool user;PU)가 임의의 하나 이상의 풀링된 리소스들을 이용할 수 있도록 유사한 기능들을 함께 풀로 수행하는 복수의 리소스들을 번들링하는 것을 포함한다. 상기 풀에서 하나의 리소스, 즉, 풀 엘리먼트(PE)가 장애가 있을 때, 다른 PE, 전형적으로, 백업 또는 대기 PE(stanby PE)는 상기 PU에 대해 서비스의 최소의 간섭을 갖는 상기 장애가 있는 PE를 대신할 수 있다. 장애가 있는 액티브 PE에서 대기 PE로 전환하는 기술은 장애 극복(fail-over)으로 공지된다.
인터넷 프로토콜(IP) 환경에서, 특정 서비스를 응용에 각각 제공하는 웹-기반 서버들에서 동작하는 프로세서들과 같은 응용 프로세서들은 풀링될 수 있다. 각각의 이러한 응용 프로세서는 다른 풀 엘리먼트들(PE들), 즉, 응용 프로세서들과 기능적으로 동일하고, 특정 서비스를 응용에 제공한다. 상기 PE들의 풀링은 상기 풀의 최상부에서 동작하는 응용에 대해 투과성이 있으며, 다시 말해서, 모든 PE들은 응용에 대한 단일 엘리먼트로 나타난다. 상기 PE들을 풀링함으로써, 시스템 비용은, 선반 재고(off-the-shelf) 구성 요소들이 함께 풀로 결합될 수 있고 동일한 서비스가 상당히 보다 비싼 컴퓨터의 사용에 의해 얻어진 바와 같이 얻어질 수 있으므로 감소될 수 있다. 게다가, PE들을 풀링함으로써, PE가 충돌할 때 전체의 시스템을 대체하는 것보다 상기 PE 만이 대체되어야 한다.
다른 가능성으로부터, 풀링은 응용 계층에 투과하는 방식으로 상기 응용 계층 아래의 프로토콜 계층들에서 엘리먼트들의 번들링을 포함한다. 상기 응용 계층은 인터넷 프로토콜(IP)-기반 네트워크 시스템들의 상호 접속에 공통으로 사용되는 4개의 계층 프로토콜 스택(protocol stack)에서 최고의 계층이다. 최고에서 최하까지, 상기 스택은 응용 계층, 전송 계층, 네트워크 계층, 및 물리 계층을 포함한다. 상기 프로토콜들은 상기 네트워크를 거쳐 교환되는 데이터 패킷의 각각의 데 이터 비트를 해석하는 방식을 규정한다. 프로토콜 계층화(protocol layering)는 네트워크 설계를 기능 계층들로 분할하고, 그 후 각각의 계층의 태스크를 수행하기 위해 개별 프로토콜들을 할당한다. 프로토콜 계층화를 사용함으로써, 상기 프로토콜들은 약간의 잘 정의된 태스크들로 간단해진다. 그 다음, 상기 프로토콜들은 유용한 전체로 어셈블링될 수 있고, 개별 프로토콜들은 필요에 따라 제거되거나 대체될 수 있다. 풀링을 사용하는 시스템에서, 상기 응용 계층은 하위 계층들의 복잡성(complexity)을 알지 못하며, 이에 따라, 상기 하위 계층들은 임의의 방식으로 구성될 수 있고 용이하게 대체될 수 있다. 그 결과, 상기 응용 계층은 서비스가 구현되는 방식보다 상기 응용 계층에 제공되는 서비스의 품질과 더 관련될 수 있다.
높은 가용성을 상기 응용 계층에 제공하기 위해, 몇몇 모델들은 통신 시스템에서 리던던시를 구현하기 위해 개발되어 왔다. 하나의 이러한 모델은 'N+1' 리던던시 모델이며, 'N' 액티브 서버들은 노드를 공유하고 하나의 서버는 백업으로서 준비된다. 상기 'N' 서버들 중 하나가 충돌하면, 상기 백업 단계는 그 장소를 차지하기 위해 들어간다. 다른 이러한 모델은 'N+M' 리던던시 모델이며, 'N' 액티브 서버들은 노드를 공유하고 'M' 서버들은 백업들로서 설정된다. 또 다른 이러한 모델은 'M쌍' 리던던시 모델이며, '2xM' 서버들은 액티브 및 백업 서버를 각각 포함하는 'M'쌍들로 짝을 이뤄진다. 액티브 서버가 충돌하면, 상기 쌍의 백업 서버가 대신한다. 상기 백업이 충돌하면, 이는 대체되지 않는다. 각각의 모델은 이점들과 불리점들을 갖는다. 상기 'M쌍' 모델의 장점은, 각각의 백업이 대응하는 액티브의 상태를 알고 시스템 설계의 복잡성을 감소시킨다는 것이다. 상기 'N+1' 및 'N+M' 리던던시 모델들에서, 각각의 백업은, 사용자 통지 없이 액티브를 위해 대신할 수 있도록 상기 액티브들 모두의 상태들을 알아야 하고, 이러한 상태 공유는 매우 비싸다. 그러나, 상기 'M쌍' 모델은, 상기 시스템이 장애가 없을 때 보다 더 큰 양의 리소스들을 유휴시킬 수 있다. 따라서, 하나는 각각의 리던던시 모델의 비용과 이점들 및 시스템 설계자에 따라 구현하는 리던던시 모델의 결정의 가중을 남기고 싶을 수 있다. 게다가, 하나는 통신 시스템이 리던던시 모델들을 동적으로 구현하는 것을 원할 수 있다. 예를 들면, 상기 시스템에서 모든 풀들을 위한 싱글 리던던시 모델로 로킹되는 대신에, 풀마다 리던던시 모델들을 확립하는 것이 바람직할 수 있다.
현재, 인터넷 프로토콜(IP) 통신 시스템들에 대한 표준들은 싱글 리던던시 모델만을 지원하며, 풀에서 각각의 PE는 상기 풀에서 모든 다른 풀들의 백업이다. 이 리던던시 모델은 구현하는데 매우 비싸고, 다양한 환경들에서 차선이고, 시스템 설계를 위해 매우 한정된다.
따라서, 복수의 리던던시 모델들의 구현을 지원하고 IP 통신 시스템에서 리던던시 모델들의 동적 구현을 더 지원하는 방법과 장치에 대한 필요가 존재한다.
도 1은 본 발명의 실시예에 따른 통신 시스템의 블록도.
도 2는 본 발명의 실시예에 따른 프로토콜 스택(protocol stack)의 블록도.
도 3은 본 발명의 실시예에 따른 풀 엘리먼트 등록 처리의 논리 흐름도.
도 4는 본 발명의 실시예에 따른 풀 엘리먼트 등록 메시지의 블록도.
도 5A는 본 발명의 실시예에 따라 도 1의 풀 사용자가 도 1의 풀에 의해 제공되는 서비스들을 접속할 수 있는 방법의 논리 흐름도.
도 5B는 본 발명의 실시예에 따라 도 1의 풀 사용자가 도 1의 풀에 의해 제공되는 서비스들을 접속할 수 있는 방법의 도 5A의 논리 흐름도의 연속.
도 6은 본 발명의 실시예에 따른 풀 핸들 변환 요청의 블록도.
도 7은 본 발명의 실시예에 따른 풀 핸들 변환 응답의 블록도.
도 8은 본 발명의 실시예에 따라 도 1의 통신 시스템이 풀 사용자를 위한 대안의 풀 엘리먼트를 결정하는 방법의 논리 흐름도.
복수의 리던던시 모델들의 구현을 지원하고 IP 통신 시스템에서 리던던시 모델들의 동적 구현을 더 지원하는 방법과 장치에 대한 필요성을 부각하기 위해, IP-기반 통신 시스템에서 ENRP 서버는 제 1 풀 엘리먼트(PE) 및 제 2 PE 각각으로부터 등록 정보를 수신하며, 각각의 PE로부터 수신되는 등록 정보는 동일한 풀 핸들을 포함한다. 상기 제 1 PE로부터의 등록 정보는 리던던시 모델을 더 포함한다. 상기 ENRP 서버는 상기 제 1 및 제 2 PE들 모두를 포함하는 풀을 생성하고 리던던시 모델을 적응시키는 풀을 생성한다. 그 후, 풀 사용자(PU)는 상기 풀 핸들을 상기 ENRP 서버에 운반하고, 응답시, 상기 PE들에 대응하는 전송 어드레스들과 상기 풀에 적응되는 리던던시 모델을 수신함으로써 상기 풀을 접속할 수 있다. 그 후, 상기 PU는 상기 수신된 전송 어드레스들과 적절할 때 상기 리던던시 모델에 기초하여 상기 풀에 접속할 수 있다.
일반적으로, 본 발명의 실시예는 인터넷 프로토콜-기반 통신 시스템에서 리소스들을 풀링하는 방법을 포함한다. 상기 방법은 제 1 풀 엘리먼트로부터 풀 핸들과 리던던시 모델을 포함하는 제 1 등록 정보를 수신하는 단계, 및 상기 제 1 등록 정보로서 동일한 풀 핸들을 포함하는 제 2 풀 엘리먼트로부터 제 2 등록 정보를 수신하는 단계를 포함한다. 상기 방법은 상기 제 1 풀 엘리먼트와 상기 제 2 풀 엘리먼트를 포함하는 풀을 생성하는 단계를 더 포함하며, 상기 풀의 생성은 상기 풀에 상기 수신된 리던던시 모델을 적응시키는 단계를 포함한다.
본 발명의 다른 실시예는 인터넷 프로토콜-기반 통신 시스템에서 풀링된 리소스들을 접속시키는 방법을 포함한다. 상기 방법은 풀 핸들에 의도된 데이터 패킷을 어셈블링하고, 네임 서버로부터 상기 풀 핸들의 변환을 요청하고, 상기 요청에 응답하여, 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 리던던시 모델을 수신하는 단계를 포함한다. 상기 방법은 상기 수신된 복수의 전송 어드레스들과 상기 수신된 리던던시 모델을 저장하고, 선택된 전송 어드레스를 생성하기 위해 복수의 전송 어드레스들로부터 전송 어드레스를 선택하고, 상기 데이터 패킷을 상기 선택된 전송 어드레스에 운반하는 단계를 더 포함한다.
본 발명의 또 다른 실시예는 복수의 풀 엘리먼트들로부터 대안의 풀 엘리먼트를 결정하는 방법을 포함한다. 상기 방법은 상기 복수의 풀 엘리먼트들의 풀 엘리먼트와의 통신에 관하여 전송 장애(transport failure)를 검출하고, 상기 복수의 풀 엘리먼트들로부터 백업 풀 엘리먼트의 지정에 기초하여 백업 풀 엘리먼트를 결 정하고, 상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하는 단계들을 포함한다. 상기 방법은 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하며, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 아닐 때 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고 데이터 패킷들을 상기 리던던시 모델에 기초하여 결정되는 백업 풀 엘리먼트에 운반하는 것을 더 포함한다.
본 발명의 또 다른 실시예는 인터넷 프로토콜-기반 통신 시스템에서 동작할 수 있는 네임 서버를 포함한다. 상기 네임 서버는 적어도 하나의 메모리 장치에 결합되는 프로세서를 포함한다. 상기 프로세서는 제 1 풀 엘리먼트로부터 풀 핸들, 제 1 풀 엘리먼트, 및 리던던시 모델을 포함하는 제 1 등록 정보를 수신하고, 제 2 풀 엘리먼트로부터 상기 제 1 등록 정보 및 제 2 풀 엘리먼트 식별자와 동일한 풀 핸들을 포함하는 제 2 등록 정보를 수신하고, 상기 제 1 풀 엘리먼트와 상기 제 2 풀 엘리먼트를 포함하는 풀을 생성하고, 상기 풀에 상기 수신된 리던던시 모델을 적응시킬 수 있다. 상기 프로세서는 상기 제 1 풀 엘리먼트 식별자, 상기 제 2 풀 엘리먼트 식별자, 및 상기 리던던시 모델과 관련하여 상기 풀 핸들을 상기 적어도 하나의 메모리 장치에 저장한다.
본 발명의 또 다른 실시예는 종단점 네임 결정 프로토콜(ENRP) 서버를 포함하고 상기 ENRP 서버로부터 전송 어드레스를 검색할 수 있는 인터넷 프로토콜-기반 통신 시스템을 포함한다. 상기 통신 장치는 적어도 하나의 메모리 장치에 결합된 프로세서를 포함한다. 상기 프로세서는 풀 핸들에 의도된 데이터 패킷을 어셈블링하고, 상기 ENRP 서버로부터 상기 풀 핸들의 변환을 요청하고, 상기 요청에 응답하여 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 로드-공유 폴리시과 리던던시 모델 중 적어도 하나를 수신하고, 상기 적어도 하나의 메모리 장치에 상기 수신된 복수의 전송 어드레스들과 상기 수신된 로드-공유 폴리시과 리던던시 모델 중 적어도 하나를 저장하고, 선택된 전송 어드레스를 생성하기 위해 상기 복수의 전송 어드레스들로부터 전송 어드레스를 선택하고, 상기 데이터 패킷을 상기 선택된 전송 어드레스에 운반한다.
본 발명의 또 다른 실시예는 인터넷 프로토콜-기반 통신 시스템에서 동작할 수 있는 통신 장치를 포함한다. 상기 통신 장치는 풀에서 복수의 풀 엘리먼트들의 각각의 풀 엘리먼트와 관련된 전송 어드레스들과 서비스 상태들, 및 상기 풀과 관련된 리던던시 모델을 저장하는 적어도 하나의 메모리 장치를 포함한다. 상기 통신 장치는 상기 복수의 풀 엘리먼트들의 풀 엘리먼트와의 통신에 관하여 전송 장애를 검출하고, 상기 복수의 풀 엘리먼트들로부터 백업 풀 엘리먼트의 지정에 기초하여 백업 풀 엘리먼트를 결정하고, 상기 적어도 하나의 메모리 장치에 참조하여 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때 상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하고, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하고, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 아닐 때 상기 적어도 하나의 메모리 장치에 참조하여 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고, 상기 리던던시 모델 에 기초하여 결정되는 상기 백업 풀 엘리먼트에 데이터 패킷들을 운반하는 상기 적어도 하나의 메모리 장치에 결합되는 프로세서를 더 포함한다.
본 발명은 도 1 내지 도 8을 참조하여 더 상세히 설명될 수 있다. 도 1은 본 발명의 실시예에 따른 인터넷 프로토콜(IP) 통신 시스템(100)의 블록도이다. 상기 통신 시스템(100)은 적어도 하나의 풀 사용자(PU)(102), 즉, 상기 PU에 의해 접속되는 애플리케이션들을 동작시키는, 전화기와 같은 클라이언트 통신 장치 또는 개인용 컴퓨터, 랩탑 컴퓨터, 또는 워크스테이션과 같은 데이터 단말기 설비 및 컴퓨터들, 워크스테이션들, 또는 서버들과 같은 복수의 호스트 통신 장치들(110, 116)(2개 도시됨)을 포함한다. PU(102)에서 동작하는 애플리케이션은 데이터 패킷들을 하나 이상의 호스트 통신 장치들(110, 116) 각각에서 동작하는 애플리케이션과 교환시킨다. 그러나, 상기 하나 이상의 호스트 통신 장치들(110, 116)의 하위 레벨 프로토콜 계층들은 상기 하나 이상의 호스트 통신 장치들(110, 116)이 상기 PU의 응용 계층에 싱글 호스트로서 나타나는 결과에 따라 상기 PU(102)의 응용 계층에 투과성이 있다. IP 환경에서, 상기 PU(102)는 또한 셀룰러 전화기, 무선 전화기, 또는 개인용 컴퓨터, 랩탑 컴퓨터 또는 워크스테이션과 같은 데이터 단말기 설비에 결합되거나 포함되는 무선 모뎀과 같은 무선 통신 장치일 수 있다.
각각의 호스트 통신 장치(110, 116)는 풀(108)의 개별 처리 리소스 또는 풀 엘리먼트(PE)(112, 118)를 포함한다. 풀(108)은 응용 처리 서비스들을 상기 PU(102)에서 동작하는 애플리케이션에 제공한다. 풀(108)에서 각각의 처리 리소스, 또는 PE(112, 118)는 동일하고, 특정한 서비스를 응용에 제공하고 상기 풀에서 다른 PE들에 기능적으로 동일한 응용 프로세서이다. 각각의 PE(112, 118)가 컴퓨터와 같은 호스트 통신 장치(110, 116) 또는 웹-기반 서버와 같은 서버에 존재할 수 있지만, 상기 각각의 PE(112, 118)의 특정 존재는 본 발명에 중요하지 않다. 또한, 상기 통신 시스템(100)은 풀에서 상기 PE들에 대한 지리적인 제한을 부과하지 않고, 다시 말해서, 풀(108)에서 각각의 PE(112, 118)는 상기 통신 시스템(100)을 거쳐 임의의 호스트 통신 장치에서 자유롭게 배치될 수 있다. 그러나, 상태 공유 메커니즘이 풀(108)에 의해 사용되는 본 발명의 다른 실시예에서, 상기 통신 시스템(100)은 상기 풀에 속하는 상기 PE들(112, 118)에 대한 지리적인 제한들을 부과할 수 있다. 또, 상기 PU(102)는 또한 풀(108)과 통신하는 다른 풀의 PE일 수 있다.
풀(108)은, 상기 풀이 상기 풀을 접속하는 사용자에게 서비스하기 위해 PE를 지정하는 순서를 결정하는 로드 공유 폴리시과 관련된다. 예를 들면, 풀(108)이 라운드-로빈 로드 공유 폴리시(round-robin load sharing policy)과 관련되고 PE(112)가 가장 최근의 사용자 세션으로 지정되었을 때, PE(118)가 상기 라운드 로빈 큐에서 다음 PE이면, 풀(108)은 상기 풀에 접속하는 상기 다음의 사용자에게 서비스하기 위해 PE(118)를 할당한다. 그러나, 당업자는 적게 사용되고 가중된 라운드 로빈과 같이, 다양한 로드 공유 폴리시들이 기술분야에 공지되어 있다는 것을 알고 있고, 임의의 것은 본 발명의 사상과 범위를 벗어나지 않고 풀(108)에 의해 구현될 수 있다. 풀(108)은 또한 액티브 PE를 위해 백업 PE를 결정하는 리던던시 모델과 관련되며, 이에 따라, 상기 액티브 PE가 충돌하면 상기 PU는 상기 액티브 PE에 의해 수행된 기능들을 수행하는 백업 PE를 선택할 수 있다. 예를 들면, 풀(108)은 'N+1' 리던던시 모델과 관련될 수 있으며, 'N' 액티브 PE들은 노드를 공유하고 하나의 PE가 백업으로서 준비된다. 상기 'N' PE들 중 하나가 충돌하면, 상기 PU는 그것을 발생시키기 위해 백업 PE를 가져와서 참가할 수 있다. 다른 예로서, 풀(108)은 'N+M' 리던던시 모델과 관련될 수 있으며, 'N' 액티브 PE들은 노드를 공유하고 'M' PE들은 백업들로서 제외된다. 또 다른 예로서, 풀(108)은 'M 쌍' 리던던시 모델과 관련될 수 있으며, '2xM' PE들은 액티브 및 백업 PE를 각각 포함하는 'M'쌍들로 이뤄진다. 액티브 PE가 충돌하면, 상기 PU는 상기 쌍의 백업 PE로 전환한다. 상기 백업 PE가 충돌하면, 이는 대체되지 않는다. 당업자는 다양한 리던던시 모델들이 있다는 것을 알고 있으며, 임의의 것은 본 발명의 사상과 범위를 벗어나지 않고 풀(108)에 의해 구현될 수 있다.
통신 시스템(100)은 풀(108)의 각각의 PE(112, 118)와 통신하여 종단점 네임 결정 프로토콜(ENRP) 명칭 공간 서비스(namespace service;122)를 더 포함한다. ENRP 명칭 공간 서비스(122)는 싱글 ENRP 서버를 포함할 수 있거나 복수의 완전히 분포된 ENRP 서버들(124, 130)(2개 도시됨)의 풀을 포함할 수 있다. ENRP 서버들의 풀을 포함함으로써, ENRP 명칭 공간 서비스(122)는 높은 가용성 서비스, 즉, 한점의 장애도 없는 서비스를 제공할 수 있다. ENRP 명칭 공간 서비스(122)가 복수의 ENRP 서버들을 포함할 때, 상기 복수의 ENRP 서버들(124, 130) 각각이 상기 명칭 공간 서비스의 다른 ENRP 서버들과 통신하고 상기 ENRP 프로토콜의 사용에 의해 다른 ENRP 서버들과 통신한다.
각각의 PU(102) 및 ENRP 명칭 공간 서비스(122)에서 하나 이상의 ENRP 서버들(124, 130)은 하나 이상의 마이크로프로세서들, 마이크로제어기들, 디지털 신호 프로세서들(DSP들), 그 조합과 같은 개별 프로세서(104, 126, 132) 또는 당업자에게 공지된 이러한 다른 장치들을 포함한다. 구성 요소들(102, 112, 118, 124, 130) 각각은 상기 구성 요소의 프로세서에 의해 실행될 수 있는 데이터 및 프로그램들을 저장하는 랜덤 접속 메모리(RAM), 동작 랜덤 접속 메모리(DRAM), 및/또는 읽기 전용 메모리(ROM) 또는 그 등가물과 같은 하나 이상의 개별 메모리 장치들(106, 114, 120, 128, 134)을 더 포함하거나, 이들에 관련된다.
통신 시스템(100)은 여기에 제공된 프로토콜들에 수정된 인터넷 엔지니어링 태스크 포스(IETF) 신뢰성있는 서버 풀링(RSERPOOL) 프로토콜 슈트, IETF RFC(코멘트들에 대한 요청) 3237과 관련하여 동작하는 IP-기반 통신 시스템이며, 상기 프로토콜들은 여기에 참조로서 통합된다. 상기 IETF RSERPOOL 프로토콜 슈트는 IP-기반 네트워크에서 클러스터, 또는 풀, 관리를 제공하고 버지니아 레스톤에 있는 IETF 사무실에서 상기 IETF 또는 ietf.org/rfc에서 온라인으로 얻어질 수 있다.
시스템(100)과 같은 상호 접속된 네트워크들 시스템들의 수준에서, 프로토콜들로 공지된 이해들은 네트워크들의 복수의 사용자들 중에서 데이터의 교환에 대해 개발되어 왔다. 상기 프로토콜들은 상기 네트워크들을 통해 교환된 데이터 패킷의 매 데이터 비트마다 해석하는 방법을 규정한다. 네트워크 설계들을 간략화하기 위해, 상기 프로토콜들을 계층화하는 몇몇 널리 공지된 기술들이 개발되었다. 프로토콜 계층화는 상기 네트워크 설계를 기능성 계층들로 분할한 다음, 각각의 계층의 태스크를 수행하기 위해 별도의 프로토콜들을 지정한다. 프로토콜 계층화를 사용하여, 상기 프로토콜들은 약간의 널리 정의된 태스크들로 간단해진다. 그래서, 상기 프로토콜들은 유용한 전체로 어셈블링될 수 있고, 개별 프로토콜들은 필요에 따라 제거되거나 대체될 수 있다.
프로토콜들의 계층화된 표현은 프로토콜 태스크로서 공통으로 공지되어 있다. 도 2는 통신 시스템(100)의 각각의 구성 요소, 즉, PU(102), PE들(112, 118), ENRP 서버들(124, 130)에서 구현되는 프로토콜 태스크(200)의 블록도이다. 상기 프로토콜 스택(protocol stack)은 계층들이 최고에서 최하까지 응용 계층(210), 세션 계층(208), 전송 계층(206), 네트워크 계층(204), 및 물리 계층(202)인 5개의 계층들을 포함한다. 상기 물리 계층 이외의 상기 프로토콜 스택의 각각의 계층은 각각의 구성 요소의 프로세서에서 구현되고 대응하는 메모리 장치들에서 저장된 명령들에 기초하여 동작한다.
프로토콜 스택(200)의 바닥 계층, 즉, 물리 계층(202)은 데이터의 운반을 위해 이더넷과 같이 네트워크 하드웨어 및 물리적 매체를 포함한다. 위로 다음의 계층, 즉, 네트워크 계층(204)은 데이터의 소스 및 데이터에 대한 수신지(destination)를 상호 접속하는 일련의 다른 물리 네트워크들을 통해 데이터를 전달하는 것을 담당한다. 라우팅 프로토콜들(routing protocols), 예를 들면, IPx4 또는 IPv6과 같은 IP 프로토콜들은 상기 네트워크 계층에 포함된다. 동등 네트워크 계층들(peer network layers) 사이에 교환되는 IP 데이터 패킷은 상기 IP 프로토콜에 대한 정보 및 보다 높은 레벨 프로토콜들에 대한 데이터를 포함하는 IP 헤 더(IP header)를 포함한다. 상기 IP 헤더는 프로토콜 식별 필드를 포함하고, 전송 어드레스들, 전형적으로, 데이터 패킷을 소싱하는 운송 계층 및 데이터 패킷의 전송 계층 지정의 각각에 대응하는 IP 어드레스들을 더 포함한다. 전송 어드레스는 상기 네트워크 계층을 거쳐 데이터 패킷들을 전송 계층들에 전송하고 수신할 수 있고 IETF의 다른 공보인, IETF RFC 1246에 상세히 기재된 인터페이스를 독특하게 식별한다. 상기 IP 프로토콜은 IETF RFC 791에 상세히 정의된다.
네트워크 계층(204)으로부터의 위로 다음의 계층은 전송 계층(206)이다. 전송 계층(206)은 접속 랑데뷰(connection rendezvous) 및 흐름 제어와 같은 상호 접속된 네트워크 시스템들을 통해 종단 간 흐름 관리(end-to-end data flow management)를 제공한다. 전형적으로, 상기 전송 계층은 네트워크 계층 데이터 패킷을 특정의 포트로 전달하기 위한 메커니즘을 각각 제공하는 SCTP(스트림 제어 전송 프로토콜(Stream Control Transmission Protocol)), TCP(전송 제어 프로토콜(Transmission Control Protocol)), 또는 UDP(사용자 데이터그램 프로토콜(User Datagram Protocol))과 같은 복수의 전송 프로토콜들 중 하나를 포함한다. 전송 계층(206)의 위는 세션 계층(208)이다. 세션 계층(208)은 ASAP(집합체 서버 접속 프로토콜(Aggregate Server Access Protocol)) 및 ENRP과 같은 RSERPOOL 프로토콜들을 구현하고, RSERPOOL 시그널링이 통신 시스템(100)의 구성 요소들(102, 112, 118, 124, 130) 중에서 교환되는 계층이다. 상기 ASAP 및 ENRP 프로토콜들은 IETF의 공보물이고 여기에 참조로서 통합된, 2002년 10월 31일자의 IETF 인터넷-초안 논문들 'draft-ietf-rserpool-asap-05', 및 2002년 10월 1일자의 'draft-ietf- rserpool-common-param-02'에 기재되었다. 세션 계층(208)의 위는 파일 전송(file transfer)과 메일 전달과 같이 사용자-레벨 응용들을 구현하는 프로토콜들을 포함하는 응용 계층(120)이다.
복수의 리던던시 모델들의 구현을 지원하고 리던던시 모델들의 동적 구현을 더 지원하기 위해, 통신 시스템(100)은 풀 엘리먼트 등록 처리 및 상기 풀에 의해 복수의 리던던시 모델들 중 임의의 것의 구현들을 지원하는 대응하는 풀 생성 처리를 제공한다. 또한, 로드 공유 폴리시와 상기 풀의 리던던시 모델/장애 극복 폴리시는 미리 결정될 수 없고 상기 풀의 생성시 확립될 수 있으므로, 통신 시스템(100)은 리던던시 모델들의 동적 구현을 지원한다. 또, 통신 시스템(100)에서, 풀을 접속하는 PU는 상기 풀의 리던던시 모델/장애 극복 폴리시에 기초하여 지정 PE 또는 장애가 있는 PE를 위한 백업 PE를 선택할 수 있으므로, 보다 큰 유동성을 상기 시스템에 제공할 수 있다.
도 3은 본 발명의 실시예에 따른 풀 엘리먼트 등록 절차의 논리 흐름도(300)이다. 논리 흐름도(300)는, PE(112)와 같은 제 1 PE가 ENRP 명칭 공간 서비스(122), 특히, 상기 ENRP 명칭 공간 서비스에 포함된 ENRP 서버(124)와 같은 홈 ENRP 서버로 등록할 때(304) 시작한다(302). 전형적으로, PE는 홈 ENRP 서버가 서비스들을 상기 PE에 제공하는 ENRP 서버인 임의의 주어진 시간에서 단지 하나의 홈 ENRP 서버를 갖는다. 본 발명의 하나의 실시예에서, 상기 홈 ENRP 서버의 전송 어드레스는 각각의 PE(112, 118)의 개별 메모리 장치들(114, 120)에 수동으로 저장될 수 있다. 본 발명의 다른 실시예에서, 각각의 PE(112, 118)는 멀티캐스트 채널을 통해 서비스 요청을 ENRP 명칭 공간 서비스(122)에서 하나 이상의 ENRP 서버들(124, 130)의 각각에 운반함으로써 ENRP 서버(124)와 같은 홈 ENRP 서버의 전송 어드레스를 자동 발견할 수 있다. 상기 PE가 하나 이상의 ENRP 서버들로부터의 응답을 수신할 때, 상기 PE는 상기 PE의 홈 ENRP 서버의 역할을 하기 위해 상기 하나 이상의 ENRP 서버들을 선택하고 상기 PE의 메모리 장치들에서 대응하는 전송 어드레스를 저장한다.
PE(112)는 세션 계층(208) 등록 메시지(136)를 상기 홈 ENRP 서버에 운반함으로써 등록한다. 등록 메시지(136)는 풀 핸들, 즉, 등록 PE, 즉, PE(112)가 ENRP 명칭 공간 서비스(122)로 등록하길 바라는 "rnc_cp_pool"와 같은 풀 명칭을 포함한다. 등록 메시지(136)는 상기 등록하는 PE와 관련된 PE 식별자를 더 포함한다. 상기 PE 식별자는 상기 PE와 관련된 IP 어드레스 및 포트 번호와 같이 전송 계층 프로토콜들과 전송 어드레스들을 포함한다. 등록 메시지(136)는 또한 상기 PE에 의해 바람직한 로드 공유 폴리시과 리던던시 모델/장애 극복 폴리시, 상기 PE의 역할, 즉, 상기 PE가 액티브 PE, 대기 PE, 액티브 및 대기 PE 모두, 또는 미정의된 역할의 PE인지, 및 상기 PE의 서비스 상태, 즉, 상기 PE가 서비스 중이거나 서비스 중이 아닌지를 통지한다. 또한, 등록 메시지(136)는 상기 PE 및 상기 PE가 하나 이상의 백업 PE들을 갖는지의 여부를 알리고/알리거나 상기 하나 이상의 백업 PE들을 식별하는 백업 PE 식별자와 관련된 '가중(weight)' 또는 '노드 인덱스(node index)'를 더 포함할 수 있다. 그래서, 풀에서 각각의 PE에 관련된 가중 또는 노드 인덱스는 상기 풀을 접속할 때 접속하기 위해 복수의 PE들 중 어느 PE인지를 결정하거나, 상기 PU를 서비스하는 PE가 장애가 있을 때 접속하기 위해 복수의 PE들의 어느 PE인지를 결정하기 위해 상기 풀을 접속하는 PU에 의해 사용될 수 있다.
예를 들면, 도 4는 본 발명의 실시예에 따른 예시적인 등록 메시지(400)의 블록도이다. 등록 메시지(400)는 등록 정보를 포함하는 복수의 데이터 필드들(401 내지 409)을 포함한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 1 데이터 필드(401)는 메시지 형태, 즉, 메시지가 폴리시 메시지(policy message)임을 알린다. 데이터 필드(401)는 등록 메시지로서 상기 메시지를 또한 식별할 수 있다. 상기 복수의 데이터 필드들(401 내지 409)의 제 2 데이터 필드(402)는, 응용 계층(201) 풀 명칭, 즉, PE의 풀, 즉, 풀(108)과 독특하게 관련된 "rnc_cp_pool"와 같은 풀 핸들을 제공함으로써 상기 PE가 속하는 풀을 식별한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 3 데이터 필드(403)는 상기 PE와 관련된 태그와 같은 PE 식별자를 제공한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 4 데이터 필드들(404)은, 상기 PE가 SCTP와 같이 기꺼이 지원하는 하나 이상의 전송 프로토콜들을 식별한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 5 데이터 필드(405)는 상기 PE에서 특정 응용을 접속하기 위해 IP 어드레스 및 포트 번호와 같이 전송 어드레스를 제공한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 6 데이터 필드(406)는 로드 공유 폴리시 및/또는 리던던시 모델/장애 극복 폴리시와 같이 로드 공유-관련 정보를 제공한다. 상기 복수의 데이터 필드들(401 내지 409)의 제 7 데이터 필드(407)는, 상기 PE의 역할, 즉, 상기 PE가 액티브 PE, 대기 PE, 액티브 PE 및 대기 PE, 또는 미정의된 역할의 PE인지를 통지한다. 상기 복수의 데이 터 필드들(401 내지 409)의 제 8 데이터 필드(408)는 상기 PE의 서비스 상태, 즉, 상기 PE가 서비스 중이거나 서비스 중이 아닌지를 통지한다. 게다가, 등록 메시지(136)는 상기 PE가 하나 이상의 백업 PE들을 갖고/갖거나 상기 하나 이상의 백업 PE들을 식별하는지를 통지하고, 상기 PE와 관련된 '가중' 또는 '노드 인덱스'를 알리고, 등록이 상기 PE의 로드 용량과 상기 PE와 상기 PE에 적용될 수 있는 로드 공유 폴리시 및/또는 리던던시 모델/장애 극복 폴리시에 관련된, 가중 또는 노드 인덱스와 같은 로드 인자(load factor)에 대하여 적절한 등록 수명(registration lifetime), 즉, 시간량과 같이, 상기 풀에서 상기 PE의 동작에 관련된 다른 정보를 제공한다.
PE(112)로부터 등록 정보를 수신할 때, ENRP 서버(124)는 풀, 즉, 상기 수신된 풀 핸들에 대응하는 풀(108)을 생성한다(306). 상기 풀을 생성할 때, ENRP 서버(124), 바람직하게, 상기 ENRP 서버의 프로세서(126)는 상기 서버의 메모리 장치들(128)에 풀(108)의 프로파일을 저장한다(308). 상기 풀(108)의 프로파일은 상기 풀 핸들, PE(112)의 상기 PE 식별자, 상기 PE의 역할 및 서비스 상태, 상기 PE의 전송 어드레스(들) 및 전송 프로토콜들, 상기 PE에 의해 제공되는 상기 로드 공유 폴리시과 상기 리던던시 모델/장애 극복 폴리시, 및 등록 PE에 의해 제공되는 임의의 백업 PE들와 같은 추가 정보를 포함하여, PE(112)에 의해 상기 ENRP 서버로 운반되는 등록 정보를 포함한다. 또한, PE(112)로부터 등록 메시지(136)를 성공적으로 수신할 때, ENRP 서버(124), 바람직하게 프로세서(126)는 등록 확인응답(registration message; 138)을 상기 PE로 바람직하게 운반함으로써 상기 메시지를 확인응답한다(310).
풀(108)에 할당된 홈 ENRP 서버(124)에 대한 백업 시스템을 제공하기 위해, ENRP 명칭 공간 서비스(122)는 상기 ENRP 명칭 공간 서비스에 포함된 모든 서버들(124, 130) 중에서 풀(108)의 프로파일을 공급한다. 본 발명의 하나의 실시예에서, ENRP 명칭 공간 서비스(122)는 풀(108)의 초기 설정시 풀 프로파일 정보를 공급할 수 있다. ENRP 명칭 공간 서비스(122)는 PE가 풀(108)로 등록하고, 등록취소하거나, 재등록할 때마다 추가의 풀 프로파일 정보를 공급한다. 본 발명의 다른 실시예에서, ENRP 명칭 공간 서비스(122)는 풀 프로파일 정보의 간헐적인 업데이트들을 제공할 수 있다. 예를 들면, ENRP 명칭 공간 서비스(122)의 상기 하나 이상의 서버들(124, 130) 각각은, 각각의 서버가 상기 서버에 의해 제공되는 PE들 및 PU들의 등록, 등록취소 및 재등록에 대해 다른 서버들을 업데이팅하는 교차-감사들(cross-audits) 동안에, 다른 서버들을 간헐적으로 교차-감사할 수 있다. 그 결과, ENRP 명칭 공간 서비스(122)에서 상기 하나 이상의 ENRP 서버들(124, 130) 각각은 상기 서버의 상기 개별 메모리 장치들(128, 134)에서 명칭 공간의 완전한 카피, 즉, 풀, 즉, 상기 명칭 공간 서비스에 의해 제공되는 풀(108)에 포함된 각각의 PE(112, 118)에 대한 등록 정보의 완전한 기록을 유지한다.
상기 복수의 PE들(112, 118) 중 PE(118)와 같이 적어도 제 2 PE로부터 적어도 제 2 등록 메시지(136)를 수신할 때(312), ENRP 서버(124), 바람직하게는 프로세서(126)는 상기 적어도 제 2 PE의 등록 메시지(136)를 확인응답한다(314). 상기 적어도 제 2 PE(118)로부터 수신된 상기 적어도 제 2 등록 메시지(136)가 제 1 PE(112)에 의해 규정된 것과 동일한 풀 핸들을 규정할 때, 프로세서(126)는 또한 서버(124)의 메모리 장치들(128)에 유지된 풀(108)의 프로파일에 그리고 상기 등록 PE와 관련하여 상기 적어도 제 2 PE에 의해 제공되는 등록 정보를 저장한다. ENRP 서버(124)의 프로세서(126)는 동일한 풀 핸들, 즉, PE들(112, 118)을 싱글 서버 풀, 즉, 풀(108)로 규정하는 각각의 PE를 또한 결합한다(318).
본 발명의 하나의 실시예에서, ENRP 서버(124)의 프로세서(126)는 대응하는 풀, 즉, 풀(108)의 리던던시 모델/장애 극복 폴리시로서, 상기 제 1 등록 PE, 즉, PE(112)의 리던던시 모델/장애 극복 폴리시를 적응시킨다(320). 이 모델/폴리시는 제 1 PE(112)의 등록시에 풀 모델/폴리시로서 적응될 수 있다. 그러나, 본 발명의 다른 실시예에서, 상기 ENRP 서버(124)는 동일한 리던던시 모델/장애 극복 폴리시가 상기 풀을 통해 구현되는 바와 같이 풀(108)에 대해 상기 풀의 일부로서 등록하는 임의의 PE(112, 118)의 리던던시 모델/장애 극복 폴리시를 적응시킬 수 있다. 그 후, 논리도(300)는 종료한다(322). 풀(108)에서 각각의 PE(112, 118)는 상기 풀에서 다른 PE들에 기능적으로 동일한 것으로 고려된다. 그러나, 풀(108)에서 각각의 PE는 PE의 개별 등록 메시지(136)에서 상기 풀에서 상기 다른 PE들과는 다른 로드 용량을 결정할 수 있다.
통신 시스템(100)은 또한 풀들의 동적 변경을 허용한다. PE(112, 118)가 풀(108)을 빠져나가고 싶을 때, 상기 PE는 등록취소 메시지를 홈 ENRP 서버(124)를 전송한다. 등록취소 메시지들은 기술분야에 공지되어 있고 풀 핸들과 상기 PE에 관련된 상기 PE 식별자를 포함하여, 상기 PE의 홈 ENRP 서버가 등록취소한 PE의 ID 를 검증하게 한다. ENRP 서버(124)가 상기 등록취소 메시지를 수신할 때, 상기 ENRP 서버는 상기 풀의 프로파일로부터 상기 PE 및 상기 PE의 관련된 등록 정보를 삭제한다. PE들(112, 118)은 또한 새로운 등록 메시지를 홈 ENRP 서버(124)에 전송함으로써 그들의 등록을 업데이트할 수 있다. 상기 새로운 등록 메시지를 수신할 때, 상기 ENRP 서버는 상기 PE에 대해 상기 풀 프로파일에 저장된 정보를 업데이트할 것이다. 예를 들면, PE가 많이 로드되는 경우에, 상기 PE는 상기 PE가 추가 처리가 할당될 것을 감소시킨 다음에, 상기 PE의 처리 로드가 감소할 때 관련된 가중 또는 노드 인덱스를 재조정하기 위해 상기 PE와 관련된 가중 또는 노드 인덱스를 업데이팅할 수 있다.
풀(108)의 확립시, PU(102)와 같은 PU에서 동작하는 응용은 상기 풀에 의해 제공되는 서비스들을 접속시킬 수 있다. 도 5A 및 5B는, PU(102)가 본 발명의 실시예에 따라 풀(108)에 의해 제공되는 서비스들을 접속시킬 수 있는 단계들의 논리 흐름도(500)를 제공한다. 논리 흐름도(500)는, PU(102)의 응용 계층(210)에서 동작하는 애플리케이션이 "rnc_cp_pool"와 같이 상기 풀과 관련되는 응용 계층 풀 핸들(application layer pool handle)에 의해 풀(108)에 제공되는 응용 계층 메시지를 어셈블링한다(504). 그 다음, PU(102)의 세션 계층(208), 바람직하게 ASAP는 상기 PU의 메모리 장치들(106)에 유지된 세션 계층 캐시(session layer cache)를 참조하여 풀(108)의 PE(112 또는 118)와 같은 PE의 IP 어드레스 및 포트 번호(port number)와 같은 하부 계층 전송 어드레스에 대해 상기 풀 핸들을 결정하려고 한다(506).
PU(102)가 IP 어드레스와 같은 전송 어드레스에 대해 상기 풀 핸들을 결정할 수 없을 때(508), PU(102), 바람직하게는 상기 PU의 세션 계층(208)은 ENRP 명칭 공간 서비스(122), 바람직하게는 ENRP 서버(124)와 같이 상기 PU에 상기 풀 핸들과 관련된 전송 어드레스에 상기 풀 핸들의 변환을 제공하는 ENRP 서버를 요청한다(510). PU(102)는 상기 ENRP 서버의 어드레스로 프로그램될 수 있거나, 공지된 ENRP 발견 메커니즘을 통해 어드레스를 얻을 수 있다. 예를 들면, PU(102)의 세션 계층(208)이 처음에 풀(108)을 접속할 때, PU(102)는 풀(108)의 풀 핸들과 관련된 하부 계층 전송 어드레스의 기록을 가질 수 없을 것이다. 이러한 예에서, PU(102)는 상기 PU의 상기 메모리 장치들(106)로부터 상기 풀 핸들과 관련된 전송 어드레스를 검색할 수 없을 것이다. 여기 도 6을 참조하여, PU(102)에 의해 ENRP 서버(124)에 운반되는 풀 핸들 변환 요청(140)의 블록도는 본 발명의 실시예에 따라 도시된다. 풀 핸들 변환 요청(pool handle translation request;140)은 데이터 패킷, 바람직하게는 복수의 데이터 필드들(601, 602)을 포함하는 네임 결정 메시지를 포함한다. 상기 복수의 데이터 필드들(601, 602)의 제 1 데이터 필드(601)는 상기 메시지가 명칭 요청 메시지와 같은 전송 어드레스 질의(transport address query)인 메시지 형태를 통지한다. 상기 복수의 데이터 필드들(601, 602)의 제 2 데이터 필드(602)는 "rnc_cp_pool"와 같은 풀 핸들을 제공한다.
여기서 도 1, 도 5A, 도 5B 및 도 7을 참조하여, PU(102)로부터 풀 핸들 변환 요청(140)을 수신할 때, 상기 PU를 서비스하는 ENRP 서버, 즉, ENRP 서버(124)는 풀 파라미터들과 상기 서버의 상기 메모리 장치들(128)로부터 상기 수신된 풀 핸들과 관련된 PE 파라미터들을 검색하고(512), 풀 핸들 변환 응답(142)에서 상기 검색된 정보를 요청자 PU(102)에 운반한다(514). 도 7은 본 발명의 실시예에 따른 풀 핸들 변환 응답(142)의 블록도이다. 풀 핸들 변환 응답(142)은 데이터 패킷, 바람직하게는 복수의 데이터 필드들(701 내지 704)을 포함하는 종래 기술의 네임 결정 응답 메시지의 수정된 버전을 포함한다. 상기 복수의 데이터 필드들(701 내지 704)의 제 1 데이터 필드(701)는 메시지 형태를 통지, 즉, 메시지가 풀 핸들 변환 응답인 메시지 형태를 통지한다. 상기 복수의 데이터 필드들(701 내지 704)의 제 2 데이터 필드(702)는 "rnc_cp_pool" 와 같은 풀 핸들 변환 요청(140)과 관련된 풀 핸들을 제공한다. 상기 복수의 데이터 필드들(701 내지 704)의 제 3 데이터 필드(703)는 상기 PE들, 즉, 상기 풀, 즉, 상기 풀 핸들과 관련되는 풀(108)에 포함된 PE(112, 118)에 대응하는 파라미터들을 제공한다. 각각의 PE에 대해 제공되는 파라미터들은 IP-기반 시스템에서 IP 어드레스 및 포트 번호와 같이 상기 PE와 관련된 하부 계층 전송 어드레스, 및 상기 PE와 관련된 역할과 서비스 상태를 포함한다. 바람직하게, 상기 PE 파라미터들은 하나 이상의 로드 인자들, 및 하나 이상의 백업 PE들의 리스트와 같이 상기 PE와 관련된 임의의 추가 등록 정보를 더 포함한다. 상기 복수의 데이터 필드들(701 내지 704)의 제 4 데이터 필드(704)는 로드 공유 폴리시 및/또는 리던던시 모델/장애 극복 폴리시와 같은 로드 공유-관련 정보와 같이 상기 풀과 관련된 풀 파라미터들을 제공한다.
ENRP 서버(124)로부터 풀 핸들 변환 응답(142) 수신시, PU(102)는 상기 PU의 상기 메모리 장치들(106)에 상기 세션 계층 캐시에서의 풀 핸들 변환 응답에 포함 된 정보를 저장한다(516). 바람직하게는, PU(102)는 테이블이 상기 풀(108)에 각각의 PE(112, 118)를 포함하고 각각의 PE와 관련하여 상기 PE의 전송 어드레스와 같이 상기 PE가 제공되는 상기 PE 파라미터들, 상기 PE의 역할과 서비스 상태, 및 상기 PE와 관련된 임의의 로드 인자들을 더 포함한다. PU(102)는 상기 로드 공유-관련 정보, 즉, 상기 풀의 로드 공유 폴리시과 리던던시 모델/장애 극복 폴리시를 포함하여 상기 풀에 관하여 제공되는 상기 풀 파라미터들을 상기 캐시 및 풀(108)과 관련하여 또한 저장한다. PU(102)의 세션 계층(208)이 동일한 풀 핸들에 제공되는 상기 PU의 응용 계층으로부터 후속하는 메시지들을 수신할 때, 상기 세션 계층(즉, ASAP)은 ENRP 서버(124)를 다시 문의하지 않고 적절한 PE에 상기 메시지들을 라우팅할 수 있다. 즉, PU(102)가 다음의 풀(108)에 접속할 때, 상기 PU의 세션 계층(208)은 상기 PU의 세션 계층 캐시를 참조하고 만약 있다면, 상기 풀에서 각각의 PE(112, 118)와 관련된 로드 인자들 및 풀과 관련된 로드 공유 폴리시에 기초하여 지정 PE(112, 118)를 선택한다. 예를 들면, 풀(108)이 라운드 로빈 로드 공유 폴리시 및 PE(112)와 마지막으로 통신된 PU(102)를 구현하면, PU(102)는 상기 PU의 세션 계층 캐시에 저장된 테이블에서 다음에 나열되거나 다음의 노드 인덱스 번호를 갖는 PE(118)와 같은 PE를 선택할 수 있다. 다른 예로서, 풀(108)이 가중된 라운드 로빈 로드 공유 폴리시과 PE(112)와 마지막으로 통신된 PU(102)를 구현하면, PU(102)는 각각의 PE와 관련하여 상기 PU의 세션 계층 캐시에 저장된 가중들에 기초하여 최저로 할당된 가중을 갖는 PE(112) 이외에 풀(108)에서 PE를 선택할 수 있다.
본 발명의 다른 실시예에서, 풀 핸들 변환 응답(142)에 의해 PU(102)에 제공되는 정보는 PU(102)로 프로그래밍될 수 있고, 풀(108)에 접속하려는 상기 PU의 첫 번째 시도 이전에 상기 PU의 세션 계층 캐시에 저장된다. 이러한 실시예에서, 첫 번째를 포함하여 상기 PU가 풀(108)을 접속하려고 할 때마다, 상기 PU의 세션 계층(208)은 상기 PU의 세션 계층 캐시를 참조하고 풀(108)과 관련된 상기 로드 공유 폴리시과 각각의 PE(112, 118)과 관련된 로드 인자들에 기초하여 상기 풀의 상기 복수의 PE들(112, 118) 중에서 지정 PE를 선택할 수 있다.
PU(102)에서 상기 세션 계층에 할당된 메모리량을 최소화하기 위해, 상기 세션 계층 캐시에 저장된 정보는 타임-아웃 기간의 종료시 타임-아웃할 수 있다. 타임-아웃 시, 상기 정보는 상기 캐시로부터 삭제된다. 그러나, 상기 타임-아웃 기간과 상기 캐시의 삭제는 상기 PU의 설계자에 의존하고 본 발명에는 중요하지 않다.
메시지의 라우팅을 위한 하부 계층 전송 어드레스를 결정할 때, PU(102)의 세션 계층(208)은 상기 결정된 전송 어드레스를 거쳐 풀(108)에서 지정 PE에 라우팅되는 데이터 패킷(144)을 어셈블링한다(520). 상술된 바와 같이, 풀(102)이 PE들(112, 118), PU(102)과 같이 복수의 PE들을 포함하고, 특히, 상기 PU의 세션 계층(208)은 풀(108)의 로드 공유 폴리시과 각각의 이러한 PE들(112, 118)의 로드 인자에 기초하여 상기 복수의 PE들(112, 118) 각각에 대응하는 전송 어드레스들로부터 PE(112)와 관련된 IP 어드레스 및 포트 번호와 같이 지정 PE의 전송 어드레스를 선택할 수 있다(518). PU(102) 및, 특히, 상기 PU의 세션 계층(208)은 상기 지정 PE의 전송 어드레스 및 상기 PU에 의해 지원되는 전송 프로토콜들에 관한 정보를 데이터 패킷(144)에 매립한다. 그 후, PU(102)는 상기 매립된 전송 어드레스를 통해 데이터 패킷(144)을 상기 선택된 PE(112)에 운반한다.
PU(102)가 전송 장애를 검출할 때, 예를 들면, 하나 이상의 데이터 패킷들이 상기 PE에 의해 확인응답되지 않을 때, 상기 PU의 전송 계층(206)은 상기 PU의 세션 계층(208)에 전송 계층 장애(transport layer failure)를 통지한다. 상기 장애 통지 수신시, PU(102)의 세션 계층(208)은 PU(102)의 상기 세션 계층 캐시에 PE(112) 및/또는 풀(108)과 관련하여 저장된 정보에 기초하여 풀(108)의 PE(118)와 같은 대안의 PE의 전송 어드레스를 결정한다(524). PU(102) 및, 특히 상기 PU의 세션 계층(208)은, 다음에, 상기 PU의 응용 계층(210)에서 동작하는 애플리케이션에 투과하는 방식으로 데이터 패킷들을 상기 결정된 대안의 PE에 운반하고(526) 논리 흐름도를 종료한다(528). 그러나, PU(102)에서 동작하는 애플리케이션은 장애 극복, 롤오버(rollover)의 실시, 또는 장애 극복 디스에이블 모두를 함께 디스에이블시키는 방법 및 시기의 규칙을 규정할 수 있다. 또한, PU(102)에서 동작하는 애플리케이션은 통신 세션의 시작과 끝을 정의할 수 있고 세션당 로드 공유와 장애 극복을 행할 수 있다.
도 8은 본 발명의 실시예에 따라 대안의 PE의 전송 어드레스를 결정할 때, PU(102), 바람직하게는 PU(102)의 세션 계층(208)에 의해 실행되는 단계들의 논리 흐름도(800)이다. 논리 흐름도(800)는 패킷이 지정 PE, 즉 PE(112)에 의해 성공적으로 수신되지 않았는지를 결정할 때(804) 시작한다. 그 후, PU(102)는 상기 PU의 메모리 장치들(106)에 저장된 세션 계층 캐시를 참조하여 PE(118)와 같은 백업 PE가 상기 PU, 즉, PE(112)를 서비스한 상기 PE에 대해 지정되었는지를 결정한다(806). 백업 PE가 상기 장애 PE, 즉, PE(112)에 대해 지정되었을 때, 상기 PU는, 지정된 백업 PE가 '서비스 중'인지의 여부를 결정한다(808). 상기 지정된 백업 PE가 '서비스 중'이면, 그 후 PU(102)는 대안의 PE로서 상기 지정된 백업 PE를 선택하고(810) 로직 흐름을 종료한다. 바람직하게는, PU(102)는 상기 백업 PE와 관련하여 상기 PU의 세션 계층 캐시에 저장된 규칙과 무관하게 대안의 PE로서 상기 지정된 백업 PE를 선택한다. 그러나, 본 발명의 다른 실시예에서, 상기 PU는, 상기 대안의 PE와 관련하여 상기 PU의 캐시에 저장된 정보가 상기 PE의 역할이 '대기' 또는 '액티브와 대기 모두'인지를 나타내면 대안의 PE로서 상기 지정된 백업 PE를 선택한다.
PU(102)의 세션 계층이 상기 장애 PE, 즉, PE(112)에 대해 지정된 백업 PE를 포함하지 않거나, 또는 상기 지정된 백업 PE 또는 PE들이 '서비스 중'이 아니거나 '서비스 중'인 것으로 결정될 수 없다면, PU(102)는 상기 세션 계층 캐시에 참조하여 대안의 PE를 결정하고(812) 상기 논리 흐름은 종료한다(814). 바람직하게, 대안의 PE에 자격을 부여하기 위해, 상기 PE와 관련하여 상기 PU의 캐시에 저장된 정보는, 상기 PE의 역할이 '대기' 또는 '액티브 및 대기', 즉, 듀얼이고 상기 대안의 PE의 서비스 상태가 '서비스 중'임을 나타낸다. 풀(108)에서 하나 이상의 PE가 이들 기준들 하에서 대안의 PE로서 자격을 부여할 때, PU(102)는 풀(108)에 관련하여 상기 캐시에 저장된 리던던시 모델/장애 극복 폴리시를 이용함으로써 상기 복수의 자격 인정 PE들로부터 대안의 PE를 결정한다(812). 그러나, 본 발명의 다른 실시예에서, 대안의 PE를 선택할 때, PU(102)는 백업 PE들의 지정들을 무시하고 상기 PU의 세션 계층 캐시에 저장된 리던던시 모델/장애 극복 폴리시에 기초하여 대안의 PE를 선택할 수 있다.
요약해서, 인터넷 프로토콜-기반 통신 시스템(100)은, ENRP 서버(124)가 제 1 풀 엘리먼트 PE(112) 및 제 2 PE(118) 각각으로부터 등록 정보를 수신한다. 각각의 PE(112, 118)로부터 수신된 등록 정보는 풀 핸들과 전송 계층 프로토콜들 및 상기 PE와 관련된 IP 어드레스와 포트 번호와 같은 전송 어드레스들을 포함하고, 상기 PE에 의해 바람직한 로드 공유 폴리시과 리던던시 모델/장애 극복 폴리시, 상기 PE의 역할, 즉, 상기 PE가 액티브 PE, 대기 PE, 액티브와 대기 PE 모두, 또는 미정의된 역할의 PE인지, 및 상기 PE의 서비스 상태, 즉, 상기 PE가 '서비스 중' 또는 '서비스 중이 아닌지'를 통지한다. 상기 등록 정보는 상기 PE와 관련된 '가중' 또는 '노드 인덱스', 및 상기 PE가 하나 이상의 백업 PE들을 갖는지의 통지 및/또는 상기 하나 이상의 백업 PE들을 식별하는 것을 가리키는 백업 PE 식별자를 더 포함할 수 있다. 그 후, 풀에서 각각의 PE와 관련된 가중 또는 노드 인덱스는 상기 풀에 접속하는 PU에 의해 사용되어, 상기 풀에 접속할 때 접속하기 위해 상기 복수의 PE들(112, 118) 중 어느 PE인가를 결정하거나, 상기 PU를 서비스하는 PE가 동작하지 않을 때 접속하기 위해 상기 복수의 PE들(112, 118) 중 어느 PE인가를 결정할 수 있다. ENRP 서버(124)는, 각각의 PE가 동일한 풀 핸들을 제공할 때 상기 복수의 PE들(112, 118) 각각을 포함하는 풀(108)을 생성하고, 상기 풀에 대하여 상 기 복수의 PE들 중 하나의 PE에 의해 제공되는 리던던시 모델을 적응시킨다.
그 후, PU(102)는 상기 풀과 관련된 풀 핸들에 의도된 데이터 패킷을 어셈블링하고 ENRP 서버(124)로부터 풀 핸들의 변환 또는 ENRP 명칭 공간 서비스(122)에서 임의의 다른 서버를 요청함으로써 풀(108)에 접속할 수 있다. 상기 요청에 응답하여, PU(102)는 풀(108)에서 각각의 PE(112, 118)에 대응하여 전송 어드레스들, PE 역할들, PE 서비스 상태들, 및 PE 로드 인자들과 같이, 풀(108)에서 각각의 PE(112, 118)과 관련된 PE 파라미터들을 수신하고, 상기 풀에 적응되는 리던던시 모델/장애 극복 폴리시를 포함하는 풀 파라미터들을 더 포함한다. PU(102)는 상기 수신된 PE 파라미터들과 풀(108)와 관련하여 풀 파라미터들을 세션 계층 캐시에 저장한다. PU(102)가 풀(108)의 PE와 통신하고 전송 장애를 검출할 때, 상기 PU는 PE 파라미터들과 상기 풀의 적응된 리던던시 모델/장애 극복 폴리시에 기초하여 대안의 PE의 전송 어드레스를 선택하고 후속하여 상기 선택된 대안의 PE에 데이터 패킷들을 운반한다.
본 발명이 특정 실시예들을 참조하여 특히 도시되고 기재되었지만, 당업자는 다양한 변경들이 이뤄질 수 있고 이하 청구범위에 기재된 본 발명의 사상과 범위를 벗어나지 않고 등가물들이 그 소자들에 대체될 수 있다는 것을 알아야 한다. 따라서, 명세서 및 도면들은 한정하기보다 설명으로 간주되고, 모든 이러한 변경들과 대체들은 본 발명의 범위 내에 포함되도록 의도된다.
이점들, 다른 장점들, 문제에 대한 해결 방안들은 특정 실시예들을 참조하여 상술되었다. 그러나, 상기 이점들, 다른 장점들, 문제에 대한 해결 방안들, 및 임 의의 이점, 장점, 또는 발생하거나 더욱 표명될 해결 방안을 일으킬 수 있는 임의의 요소(들)는 임의의 또는 모든 청구항들의 중요하고, 요구되거나 필수적인 특징 또는 요소로서 해석되도록 되지 않는다. 여기에 사용된 바와 같이, 용어 "포함한다", "포함하는", 또는 임의의 그 변경은 통상의 포괄을 포함하도록 의도되어, 요소들의 리스트를 포함하는 공정, 방법, 물건, 또는 장치 그들 요소들만을 포함하는 것이 아니라, 이러한 공정, 방법, 물건, 또는 장치에 표면적으로 나열되지 않거나 이들에 고유한 다른 요소들을 포함할 수 있다. 제 1 및 제 2, 상부 및 하부 등과 같은 관계 용어의 사용은 엔티티들 또는 동작들 간의 임의의 실제 이러한 관계 또는 순서를 반드시 요구하거나 도출하지 않고 다른 엔티티 또는 동작으로부터 하나의 엔티티 또는 동작을 구별하는데만 사용된다는 것을 알아야 한다.
Claims (19)
- 인터넷 프로토콜-기반 통신 시스템에서 리소스들을 풀링하는 방법에 있어서,제 1 풀 엘리먼트(pool element)로부터 제 1 등록 정보를 수신하는 단계로서, 상기 등록 정보는 풀 핸들(pool handle)과 리던던시 모델(redundancy model)을 포함하는, 상기 제 1 등록 정보 수신 단계;제 2 풀 엘리먼트로부터 제 2 등록 정보를 수신하는 단계로서, 상기 제 2 등록 정보는 상기 제 1 등록 정보와 동일한 풀 핸들을 포함하는, 상기 제 2 등록 정보 수신 단계; 및상기 제 1 풀 엘리먼트 및 상기 제 2 풀 엘리먼트를 포함하는 풀을 생성하는 단계를 포함하고,상기 풀을 생성하는 단계는 상기 수신된 리던던시 모델을 상기 풀에 적응시키는 단계를 포함하는, 리소스들을 풀링하는 방법.
- 제 1 항에 있어서,상기 제 1 등록 정보는 제 1 풀 엘리먼트 식별자(pool element identifier)를 더 포함하며, 상기 제 2 등록 정보는 제 2 풀 엘리먼트 식별자를 더 포함하며, 상기 방법은 상기 풀 핸들과 관련하여 상기 제 1 등록 정보의 적어도 일부, 상기 제 2 등록 정보의 적어도 일부, 및 상기 리던던시 모델을 저장하는 단계를 더 포함하는, 리소스들을 풀링하는 방법.
- 인터넷 프로토콜-기반 통신 시스템에서 풀링된 리소스들에 액세스하는 방법에 있어서,풀 핸들에 의도된 데이터 패킷을 어셈블링하는 단계;네임 서버로부터 상기 풀 핸들의 변환(translation)을 요청하는 단계;상기 요청에 응답하여, 복수의 전송 어드레스(transport address)들, 복수의 풀 엘리먼트들과 관련된 서비스 상태들, 및 상기 풀 핸들에 대응하는 리던던시 모델을 수신하는 단계;상기 수신된 복수의 전송 어드레스들과 상기 수신된 리던던시 모델을 저장하는 단계;선택된 전송 어드레스를 생성하기 위해 상기 복수의 전송 어드레스들로부터 전송 어드레스를 선택하는 단계; 및상기 데이터 패킷을 상기 선택된 전송 어드레스에 운반하는 단계를 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 제 3 항에 있어서,상기 어셈블링 단계는 풀 사용자의 응용 계층에 의해 풀 핸들에 의도된 데이터 패킷을 어셈블링하는 단계를 포함하며,상기 요청 단계는:상기 풀 사용자의 세션 계층에 의해 상기 풀 핸들을 전송 어드레스로 결정하도록 시도하는 단계; 및상기 세션 계층이 상기 풀 핸들을 전송 어드레스로 결정할 수 없을 때, 상기 네임 서버(name server)의 세션 계층에 의해 상기 풀 핸들의 변환을 요청하는 단계를 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 제 3 항에 있어서,상기 수신 단계는 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 로드-공유 폴리시(load-sharing policy)를 수신하는 단계를 포함하며, 상기 데이터 패킷은 제 1 데이터 패킷을 포함하며, 상기 선택된 전송 어드레스는 제 1 전송 어드레스를 포함하고,상기 방법은,상기 풀 핸들에 의도된 제 2 데이터 패킷을 어셈블링하는 단계;상기 로드-공유 폴리시에 기초하여 상기 복수의 전송 어드레스들의 제 2 전송 어드레스를 결정하는 단계; 및상기 제 2 데이터 패킷을 상기 제 2 전송 어드레스로 운반하는 단계를 더 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 제 3 항에 있어서,상기 수신 단계는 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 리던던시 모델을 수신하는 단계를 포함하며, 상기 데이터 패킷은 적어도 제 1 데이터 패킷을 포함하며, 상기 선택된 전송 어드레스는 제 1 전송 어드레스를 포함하고,상기 방법은,상기 적어도 제 1 데이터 패킷의 데이터 패킷이 상기 데이터 패킷의 의도된 수신지(destination)에서 성공적으로 수신되지 않았음을 결정하는 단계;상기 리던던시 모델에 기초하여 상기 복수의 전송 어드레스들의 제 2 전송 어드레스를 결정하는 단계; 및상기 성공적으로 수신되지 않은 데이터 패킷을 상기 제 2 전송 어드레스로 다시 운반하는 단계를 더 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 제 3 항에 있어서,상기 데이터 패킷은 적어도 제 1 데이터 패킷을 포함하고,상기 방법은,상기 선택된 전송 어드레스와 관련된 풀 엘리먼트로부터 적어도 하나의 백업 풀 엘리먼트의 지정(designation)을 수신하는 단계;전송 장애(transport failure)를 검출하는 단계;적어도 하나의 백업 풀 엘리먼트의 지정에 기초하여 백업 풀 엘리먼트를 결정하는 단계; 및상기 전송 장애의 검출에 후속하여, 데이터 패킷들을 상기 결정된 백업 풀 엘리먼트에 운반하는 단계를 더 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 제 7 항에 있어서,상기 복수의 전송 어드레스들과 리던던시 모델을 수신하는 단계는 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 리던던시 모델을 수신하는 단계를 포함하며, 상기 적어도 하나의 백업 풀 엘리먼트의 지정을 수신하는 단계는 상기 선택된 전송 어드레스와 관련된 풀 엘리먼트로부터 복수의 풀 엘리먼트들 중에서 적어도 하나의 백업 풀 엘리먼트의 지정을 수신하는 단계를 포함하고,상기 방법은,상기 풀 핸들의 변환에 대한 요청에 응답하여, 상기 복수의 풀 엘리먼트들의 각각의 풀 엘리먼트의 서비스 상태를 수신하는 단계;상기 대응하는 풀 엘리먼트들과 관련하여 상기 수신된 서비스 상태들을 저장하는 단계;상기 적어도 하나의 백업 풀 엘리먼트의 지정에 기초하여 지정된 백업 풀 엘리먼트를 결정하는 단계;상기 적어도 하나의 백업 풀 엘리먼트의 지정에 기초하고 상기 저장된 서비스 상태들을 참조하여 상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하는 단계;상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하는 단계; 및상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중이 아닐 때, 상기 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고 데이터 패킷들을 상기 리던던시 모델에 기초하여 결정된 상기 백업 풀 엘리먼트에 운반하는 단계를 더 포함하는, 풀링된 리소스들에 액세스하는 방법.
- 복수의 풀 엘리먼트들 중에서 대안의 풀 엘리먼트를 결정하는 방법에 있어서,상기 복수의 풀 엘리먼트들의 풀 엘리먼트와의 통신에 관하여 전송 장애를 검출하는 단계;상기 복수의 풀 엘리먼트들 중에서 백업 풀 엘리먼트의 지정에 기초하여 백업 풀 엘리먼트를 결정하는 단계;상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하는 단계;상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하는 단계; 및상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중이 아닐 때, 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고 데이터 패킷들을 상기 리던던시 모델에 기초하여 결정된 상기 백업 풀 엘리먼트에 운반하는 단계를 포함하는, 대안의 풀 엘리먼트 결정 방법.
- 인터넷 프로토콜-기반 통신 시스템에서 동작할 수 있는 네임 서버에 있어서,제 1 풀 엘리먼트로부터 제 1 등록 정보를 수신하고, 상기 등록 정보는 풀 핸들, 제 1 풀 엘리먼트 식별자, 및 리던던시 모델을 포함하며, 제 2 풀 엘리먼트로부터 제 2 등록 정보를 수신하고, 상기 제 2 등록 정보는 상기 제 1 등록 정보와 동일한 풀 핸들과 제 2 풀 엘리먼트 식별자를 포함하며, 상기 제 1 풀 엘리먼트와 상기 제 2 풀 엘리먼트를 포함하는 풀을 생성하고, 상기 리던던시 모델을 상기 풀에 적응시킬 수 있는 프로세서; 및상기 프로세서에 결합되는 적어도 하나의 메모리 장치를 포함하며,상기 프로세서는 상기 제 1 풀 엘리먼트 식별자, 상기 제 2 풀 엘리먼트 식 별자, 및 상기 리던던시 모델과 관련하여 상기 풀 핸들을 상기 적어도 하나의 메모리 장치에 저장하는, 네임 서버.
- 제 10 항에 있어서,상기 프로세서는 또한 상기 제 1 등록 정보와 상기 제 2 등록 정보 각각의 수신을 확인응답하는, 네임 서버.
- 제 10 항에 있어서,상기 프로세서는 복수의 프로토콜 계층들을 구현하며, 상기 복수의 프로토콜 계층들은 전송 계층과 응용 계층 사이에 구현되는 세션 계층을 포함하며, 상기 제 1 등록 정보는 제 1 세션 계층 등록 메시지로 수신되고, 상기 제 2 등록 정보는 제 2 세션 계층 등록 메시지로 수신되는, 네임 서버.
- 종단점 네임 결정 프로토콜(End-Point Name Resolution Protocol; ENRP) 서버를 포함하는 인터넷 프로토콜-기반 통신 시스템에서, 상기 ENRP 서버로부터 전송 어드레스를 검색할 수 있는 통신 장치에 있어서,적어도 하나의 메모리 장치; 및풀 핸들에 의도된 데이터 패킷을 어셈블링하고, 상기 ENRP 서버로부터 상기 풀 핸들의 변환을 요청하고, 상기 요청에 응답하여 복수의 전송 어드레스들, 복수의 풀 엘리먼트들과 관련된 서비스 상태들, 및 상기 풀 핸들에 대응하는 리던던시 모델을 수신하고, 상기 수신된 복수의 전송 어드레스들, 상기 수신된 서비스 상태들, 및 상기 수신된 리던던시 모델을 상기 적어도 하나의 메모리 장치에 저장하며, 선택된 전송 어드레스를 생성하기 위해 상기 복수의 전송 어드레스들 중에서 전송 어드레스를 선택하고, 상기 데이터 패킷을 상기 선택된 전송 어드레스에 운반하는 프로세서를 포함하는, 통신 장치.
- 제 13 항에 있어서,상기 프로세서는 복수의 프로토콜 계층들을 구현하며, 상기 복수의 프로토콜 계층들은 응용 계층, 상기 응용 계층 아래의 세션 계층, 및 상기 세션 계층 아래의 전송 계층을 포함하며, 상기 응용 계층은 풀 핸들에 의도된 상기 데이터 패킷을 어셈블링하고, 상기 세션 계층은 상기 풀 핸들을 전송 어드레스에 결정하도록 시도하고, 상기 세션 계층이 상기 풀 핸들을 전송 어드레스에 결정할 수 없을 때 네임 서버에 상기 풀 핸들의 변환을 요청하는, 통신 장치.
- 제 13 항에 있어서,상기 데이터 패킷은 제 1 데이터 패킷을 포함하며, 상기 선택된 전송 어드레스는 제 1 전송 어드레스를 포함하고, 상기 프로세서는 상기 풀 핸들에 의도된 제 2 데이터 패킷을 또한 어셈블링하고, 상기 적어도 하나의 메모리 장치에 저장된 로드 공유 폴리시를 참조하여 상기 복수의 전송 어드레스들의 제 2 전송 어드레스를 결정하고, 상기 제 2 데이터 패킷을 상기 제 2 전송 어드레스에 운반하는, 통신 장치.
- 제 13 항에 있어서,상기 프로세서는 복수의 전송 어드레스들과 리던던시 모델을 수신하며, 상기 데이터 패킷은 적어도 제 1 데이터 패킷을 포함하며, 상기 선택된 전송 어드레스는 제 1 전송 어드레스를 포함하고, 상기 프로세서는 또한 상기 적어도 제 1 데이터 패킷의 데이터 패킷이 상기 선택된 전송 어드레스와 관련된 상기 풀 엘리먼트에 의해 성공적으로 수신되지 않았음을 결정하고, 상기 적어도 하나의 메모리 장치에 저장된 상기 리던던시 모델을 참조하여 상기 복수의 전송 어드레스들의 제 2 전송 어드레스를 결정하고, 상기 성공적으로 수신되지 않은 데이터 패킷을 상기 제 2 전송 어드레스에 운반하는, 통신 장치.
- 제 13 항에 있어서,상기 데이터 패킷은 적어도 제 1 데이터 패킷을 포함하고, 상기 프로세서는 또한 상기 선택된 전송 어드레스와 관련된 풀 엘리먼트로부터 적어도 하나의 백업 풀 엘리먼트의 지정을 수신하고, 상기 적어도 하나의 백업 풀 엘리먼트의 지정을 상기 적어도 하나의 메모리 장치에 저장하고, 전송 장애를 검출하고, 상기 적어도 하나의 메모리 장치에 저장된 적어도 하나의 백업 풀 엘리먼트의 지정을 참조하여 백업 풀 엘리먼트를 결정하고, 상기 전송 장애의 검출에 후속하여 데이터 패킷들을 상기 결정된 백업 풀 엘리먼트에 운반하는, 통신 장치.
- 제 17 항에 있어서,상기 프로세서는 복수의 전송 어드레스들과 상기 풀 핸들에 대응하는 리던던시 모델을 수신하고 상기 적어도 하나의 메모리 장치에 저장하며, 상기 프로세서는 상기 풀 핸들의 변환에 대한 요청에 응답하여, 상기 복수의 풀 엘리먼트들의 각각의 풀 엘리먼트의 서비스 상태를 또한 수신하고 상기 대응하는 풀 엘리먼트들과 관련하여 상기 수신된 서비스 상태들을 상기 적어도 하나의 메모리 장치에 저장하며, 상기 프로세서에 의해 상기 적어도 하나의 백업 풀 엘리먼트의 지정을 수신하는 것은 상기 선택된 전송 어드레스와 관련된 풀 엘리먼트로부터 상기 프로세서에 의해 복수의 풀 엘리먼트들 중에서 적어도 하나의 백업 풀 엘리먼트의 지정을 수신하는 것을 포함하고, 상기 프로세서는 또한 상기 적어도 하나의 백업 풀 엘리먼트의 지정에 기초하여 지정된 백업 풀 엘리먼트를 결정하고, 상기 적어도 하나의 메모리 장치를 참조하여 상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하고, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하고, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중이 아닐 때, 상기 저장된 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고 데이터 패킷들을 상기 리던던시 모델에 기초하여 결정된 상기 백업 풀 엘리먼트에 운반하는, 통신 장치.
- 인터넷 프로토콜-기반 통신 시스템에서 동작할 수 있는 통신 장치에 있어서,풀에서 복수의 풀 엘리먼트들의 각각의 풀 엘리먼트와 관련된 서비스 상태들 과 전송 어드레스들, 및 상기 풀과 관련된 리던던시 모델을 저장하는 적어도 하나의 메모리 장치; 및상기 복수의 풀 엘리먼트들의 풀 엘리먼트와의 통신에 관하여 전송 장애를 검출하고, 상기 복수의 풀 엘리먼트들 중에서 백업 풀 엘리먼트의 지정에 기초하여 백업 풀 엘리먼트를 결정하고, 상기 적어도 하나의 메모리 장치를 참조하여 상기 지정된 백업 풀 엘리먼트의 서비스 상태를 결정하고, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중일 때, 데이터 패킷들을 상기 지정된 백업 풀 엘리먼트에 운반하고, 상기 전송 장애의 검출에 후속하여 상기 지정된 백업 풀 엘리먼트가 서비스 중이 아닐 때, 상기 적어도 하나의 메모리 장치를 참조하여 리던던시 모델에 기초하여 백업 풀 엘리먼트를 결정하고 데이터 패킷들을 상기 리던던시 모델에 기초하여 결정된 백업 풀 엘리먼트에 운반하는 상기 적어도 하나의 메모리 장치에 결합되는 프로세서를 포함하는, 통신 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/355,480 | 2003-01-31 | ||
US10/355,480 US20040151111A1 (en) | 2003-01-31 | 2003-01-31 | Resource pooling in an Internet Protocol-based communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050095637A KR20050095637A (ko) | 2005-09-29 |
KR100788631B1 true KR100788631B1 (ko) | 2007-12-27 |
Family
ID=32770546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057014037A KR100788631B1 (ko) | 2003-01-31 | 2004-01-20 | 인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040151111A1 (ko) |
EP (1) | EP1593232A4 (ko) |
JP (1) | JP2006515734A (ko) |
KR (1) | KR100788631B1 (ko) |
CN (1) | CN1745541A (ko) |
WO (1) | WO2004071016A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441035B2 (en) * | 2002-03-04 | 2008-10-21 | Nokia Corporation | Reliable server pool |
WO2004088931A1 (ja) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法 |
FR2870420B1 (fr) * | 2004-05-17 | 2006-09-08 | Alcatel Sa | Dispositif de gestion d'un protocole de mobilite pour un equipement d'un reseau de communications ip, en vue d'une continuite de service |
US7480725B2 (en) * | 2004-09-16 | 2009-01-20 | Invensys Systems, Inc. | Transparent relocation of an active redundant engine in supervisory process control data acquisition systems |
US7818615B2 (en) * | 2004-09-16 | 2010-10-19 | Invensys Systems, Inc. | Runtime failure management of redundantly deployed hosts of a supervisory process control data acquisition facility |
US20060056285A1 (en) * | 2004-09-16 | 2006-03-16 | Krajewski John J Iii | Configuring redundancy in a supervisory process control system |
US20080016215A1 (en) * | 2006-07-13 | 2008-01-17 | Ford Daniel E | IP address pools for device configuration |
CN104468304B (zh) * | 2013-09-22 | 2018-07-03 | 华为技术有限公司 | 一种池元素状态信息同步的方法、池注册器和池元素 |
CN104579732B (zh) * | 2013-10-21 | 2018-06-26 | 华为技术有限公司 | 虚拟化网络功能网元的管理方法、装置和系统 |
US9626262B1 (en) * | 2013-12-09 | 2017-04-18 | Amazon Technologies, Inc. | Primary role reporting service for resource groups |
US11381998B2 (en) * | 2017-02-28 | 2022-07-05 | Nec Corporation | Communication apparatus, method, program, and recording medium |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3153129B2 (ja) * | 1996-05-27 | 2001-04-03 | 日本電気株式会社 | サーバ選択方式 |
JPH1027148A (ja) * | 1996-07-10 | 1998-01-27 | Hitachi Ltd | インターネット用サーバシステム |
FR2788651B1 (fr) * | 1999-01-14 | 2001-03-30 | Cit Alcatel | Procede de gestion des ressources de protection partagees comprenant un modele d'information |
JP2001034583A (ja) * | 1999-07-23 | 2001-02-09 | Nippon Telegr & Teleph Corp <Ntt> | 分散オブジェクト性能管理機構 |
JP2001160024A (ja) * | 1999-12-02 | 2001-06-12 | Nec Corp | サーバアプリケーションの管理選択方式 |
US6691244B1 (en) * | 2000-03-14 | 2004-02-10 | Sun Microsystems, Inc. | System and method for comprehensive availability management in a high-availability computer system |
US7143167B2 (en) * | 2000-05-02 | 2006-11-28 | Sun Microsystems, Inc. | Method and system for managing high-availability-aware components in a networked computer system |
JP2002163241A (ja) * | 2000-11-29 | 2002-06-07 | Ntt Data Corp | クライアントサーバシステム |
US6826198B2 (en) * | 2000-12-18 | 2004-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Signaling transport protocol extensions for load balancing and server pool support |
US7870258B2 (en) * | 2001-08-08 | 2011-01-11 | Microsoft Corporation | Seamless fail-over support for virtual interface architecture (VIA) or the like |
US7441035B2 (en) * | 2002-03-04 | 2008-10-21 | Nokia Corporation | Reliable server pool |
US20040030801A1 (en) * | 2002-06-14 | 2004-02-12 | Moran Timothy L. | Method and system for a client to invoke a named service |
-
2003
- 2003-01-31 US US10/355,480 patent/US20040151111A1/en not_active Abandoned
-
2004
- 2004-01-20 KR KR1020057014037A patent/KR100788631B1/ko not_active IP Right Cessation
- 2004-01-20 JP JP2005518811A patent/JP2006515734A/ja not_active Ceased
- 2004-01-20 EP EP04703587A patent/EP1593232A4/en not_active Withdrawn
- 2004-01-20 CN CNA2004800031292A patent/CN1745541A/zh active Pending
- 2004-01-20 WO PCT/US2004/001283 patent/WO2004071016A1/en active Application Filing
Non-Patent Citations (2)
Title |
---|
Endpoint Name Resolution Protocol(ENRP), 2001.06.01 |
Service Provided by Reliable Service Pooling, 2002.11.01 |
Also Published As
Publication number | Publication date |
---|---|
EP1593232A1 (en) | 2005-11-09 |
WO2004071016A8 (en) | 2005-05-26 |
JP2006515734A (ja) | 2006-06-01 |
US20040151111A1 (en) | 2004-08-05 |
EP1593232A4 (en) | 2007-10-24 |
WO2004071016A1 (en) | 2004-08-19 |
CN1745541A (zh) | 2006-03-08 |
KR20050095637A (ko) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100984384B1 (ko) | 클러스터 노드들을 권위적 도메인 네임 서버들로서사용하여 액티브 부하 조절을 하는 시스템, 네트워크 장치,방법, 및 컴퓨터 프로그램 생성물 | |
US7441035B2 (en) | Reliable server pool | |
US8775628B2 (en) | Load balancing for SIP services | |
US6330605B1 (en) | Proxy cache cluster | |
US7020707B2 (en) | Scalable, reliable session initiation protocol (SIP) signaling routing node | |
US7742421B2 (en) | Systems, methods, and computer program products for distributing application or higher layer communications network signaling entity operational status information among session initiation protocol (SIP) entities | |
US8005979B2 (en) | System and method for uniquely identifying processes and entities in clusters | |
JP4616159B2 (ja) | クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム | |
CN101326493B (zh) | 用于多处理器服务器中的负载分配的方法和装置 | |
US7535915B2 (en) | System and method for scalable and redundant SIP message routing in an IP multimedia subsystem | |
US7882226B2 (en) | System and method for scalable and redundant COPS message routing in an IP multimedia subsystem | |
KR100788631B1 (ko) | 인터넷 프로토콜-기반 통신 시스템에서 리소스 풀링 | |
EP3000221A1 (en) | Methods, systems, and computer readable media for performing enhanced service routing | |
US7792936B2 (en) | Method and apparatus for virtualizing network resources | |
JP2007219637A (ja) | 負荷分散システムおよびそのプログラム | |
WO2023207189A1 (zh) | 负载均衡方法及系统、计算机存储介质、电子设备 | |
JP2023547880A (ja) | バックアップネットワーク機能を提供するためのネットワークノードおよびネットワークノードにおける方法 | |
KR101382177B1 (ko) | 동적 메시지 라우팅 시스템 및 방법 | |
CN111835858A (zh) | 设备接入方法、设备及系统 | |
Kimmatkar et al. | Applications sharing using binding server for distributed environment | |
Kuzminykh | Failover and load sharing in SIP-based IP telephony | |
Xiao-Fei et al. | A mechanism of improving subscriber registration in P2PSIP network |
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: 20121129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131129 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20141205 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |