KR20060125762A - 네트워크 디바이스들의 백업 - Google Patents

네트워크 디바이스들의 백업 Download PDF

Info

Publication number
KR20060125762A
KR20060125762A KR1020067009856A KR20067009856A KR20060125762A KR 20060125762 A KR20060125762 A KR 20060125762A KR 1020067009856 A KR1020067009856 A KR 1020067009856A KR 20067009856 A KR20067009856 A KR 20067009856A KR 20060125762 A KR20060125762 A KR 20060125762A
Authority
KR
South Korea
Prior art keywords
network device
backup
network
master
devices
Prior art date
Application number
KR1020067009856A
Other languages
English (en)
Other versions
KR101130096B1 (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 KR20060125762A publication Critical patent/KR20060125762A/ko
Application granted granted Critical
Publication of KR101130096B1 publication Critical patent/KR101130096B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0062Provisions for network management
    • H04Q3/0075Fault management techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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/104Peer-to-peer [P2P] 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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/50Network services
    • H04L67/535Tracking the activity of the user
    • 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]
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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 processing functionality is redundant
    • G06F11/2035Error 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 processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2097Error 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 maintaining the standby controller/processing unit updated

Abstract

네트워크 디바이스는 적어도 하나의 다른 네트워크 디바이스를 자신의 백업으로서 선택하고, 네트워크 디바이스의 비가용 상태시, 백업 네트워크 디바이스(들)가 네트워크 디바이스의 역할을 맡아 사용하기 위한 정보를 통신한다. 또한, 네트워크 디바이스는, 네트워크 디바이스를 그 백업 디바이스로서 선택한 적어도 하나의 네트워크 디바이스로부터 정보를 수신하여, 선택하는 디바이스(들)의 비가용 상태시, 선택하는 디바이스(들)의 역할을 맡을 때 상기 정보를 사용한다. 각 네트워크 디바이스는 가지고 있는 백업들과 동일한 수의 디바이스들을 위한 백업 디바이스로서 작용할 수 있다. 백업 디바이스들의 선택은 디바이스 신뢰성에 기초할 수 있다. 일 실시예에서, 각 네트워크 디바이스는 1차 및 2차 백업을 갖는다. 1차 백업은 네트워크 디바이스가 비가용할 때, 네트워크 디바이스의 역할을 맡으며, 2차 백업은 네트워크 디바이스 및 그 1차 백업 양자 모두가 비가용할 때, 네트워크 디바이스의 역할을 맡는다.
네트워크 디바이스, 백업, 신뢰성

Description

네트워크 디바이스들의 백업{Back up of network devices}
관련 출원들에 대한 교차 참조
본 출원은 그 내용들이 여기에 참조로 통합되어 있는, 2003년 11월 21일자로 출원된 이전의 가출원 번호 제60/523,703호의 급부를 주장한다.
기술 분야
본 발명은 예로서, 분산식 피어-투-피어 통신 네트워크내의 피어들의 백업 같은 네트워크 디바이스들의 백업에 관한 것이다.
다수의 알려진 회로-교환 또는 패킷-교환 전화 솔루션들에서, 장비의 중앙화된 부분(예로서, 스위치 또는 사설 브렌치 교환기(PBX))은 호 종결, 호 처리, 교환 및/또는 호 취급 기능들을 제공한다. 대형 시스템들에서, 중앙 장비는 컴퓨터에 전화 세트들을 연결하는, 라인 카드들이라 지칭되는 회로 보드들상의 다수의 펑션들을 제어하는 강력한 컴퓨터일 수 있다. 소형 시스템들에서(예로서, 열 개 또는 그 보다 작은 단말 세트들을 가지는 시스템들에서), 중앙 지능은 실제로, 중앙 처리 장비를 유지하도록 특별히 설계되어 있는 "골든(golden)" 전화 세트내에 존재할 수 있다.
중앙 장비가 취하는 형태에 무관하게, 다수의 단말 세트들(예로서, 유선 또 는 무선 전화 세트들)은 일반적으로, 중앙 장비에 연결된다. 단말 세트들은 통상적으로, 중앙 장비에 비해, "비지능적(dumb)" 디바이스들이다. 즉, 단말 세트들은 단순히 후크-스위치 정보 및 키 누름들(예로서, 이중 톤 다중 주파수 또는 DTMF 톤들)을 중앙 장비에 전송하고, 다이얼-톤, 벨울림 톤(ringing tone) 또는 음성 신호들 같은 중앙 장비로부터의 신호들을 음향(또는, 일부 경우들에는 이미지들 또는 비디오)으로 변환한다. 단말 세트들은 통상적으로, 어떤 다른 단말 세트들의 존재를 인지하지 못하며, 자신들을 다른 단말 세트와 상호 연결하기 위한 어떠한 고유 기능도 갖고 있지 않다.
중앙식 전화 시스템들에서, 네트워크내의 전화 세트들의 관리 및 발견은 통상적으로 중앙 장비에 의해 수행된다. 예로서, 전형적인 회로-교환 시간 분할 멀티플렉싱(TDM) 전화 시스템에서, 예로서, 각 단말 세트는 중앙 호 처리 장비상의 포트에 연결될 수 있다. 통상적으로, 전원 공급시(power up) 발생되는 초기화 시퀀스의 일부로서, 각 단말 세트는 그 가용 상태를 중앙 장비에게 보고한다. 중앙 장비는 새로운 단말 세트들이 연결될 때의 이런 보고들을 위해 각 포트를 감시하며, 따라서, 새로이 추가된 단말 세트들을 "발견(discovering)"할 수 있다.
중앙식 보이스-오버 인터넷 프로토콜(IP) 또는 VoIP 전화 시스템에서, 매우 유사하지만 약간 보다 복잡한 절차가 사용되지만, 그러나, 단말 세트는 여전히 그 가용 상태를 중앙 호 처리 장비에게 네트워크를 경유하여 보고한다. 본 기술 분야에 공지된 바와 같이, VoIP는 IP에 기초한 데이터 네트워크를 거친 호들의 전송이다. 통신은 패킷 데이터의 형태를 취하며, 따라서, 회로-교환 네트워크들의 경우에 어떠한 고정된 연결도 존재하지 않는다. 통신은 텍스트, 음성, 그래픽스 또는 비디오일 수 있다. IP 장비는 상호동작성을 위해, H.323 및 세션 개시 프로토콜(SIP) 같은 표준들을 준수한다. H.323 표준은 멀티미디어 통신이 단말들, 네트워크 장비 및 서비스들 사이에서 이루어지는 방식을 포괄적으로 기술한다. SIP 표준은 인터넷을 거쳐 멀티미디어 세션들을 설정, 변경 및 종결하기 위한 기술적 요구사항들을 책임진다. 여기서 사용될 때, 용어 "호(call)"는 두 종점들 사이의 멀티미디어 통신을 지칭하며, 음성 전화 호를 포함한다.
중앙 장비가 회로 교환식이든 패킷 교환식이든 무관하게, 새로운 단말 세트의 발견 과정 동안, 중앙 장비는 일반적으로, 네트워크 어드레스의 형태인 디렉토리 번호(DN)를 자동 할당 및 관리한다. DN은 예로서, PBX 익스텐션(extension)일 수 있다. DN들이 서로 다른 세트들에 할당될 때, DN들은 중앙 장비에 의해 유지된 DN들의 목록에 추가된다. 종종, 호출 단말 세트로부터 DN이 포워딩될 때, 호출되어야 하는 물리적 단말 세트의 신분을 결정하기 위해서 중앙 장비가 할 수 있는 바는 단지 이 중앙화된 목록에만 기초한다.
중앙식 시스템들에서, 각 단말 세트를 위한 호 처리 옵션들도 통상적으로 중앙식으로 저장되며, 연계된 단말 세트가 중앙 장비로부터 연결 해제되는 경우에도 가용 상태로 남아있는다. 용어 "호 처리 옵션들"은 인입 호들이 취급되는 방식, 예로서, 음성사서함으로 포워딩하기 이전에 얼마나 많은 수의 호출음들이 이루어져야 하는지 또는 호를 자동으로 다른 익스텐션으로 포워딩하여야 하는지 여부를 결정하는 설정들을 지칭한다. 호 처리 옵션들이 가용 상태로 남아있기 때문에, 연결 해제 되어 있는 단말 세트를 목적지로 하는 인입 호들은 그럼에도 불구하고, 단말 세트가 연결되어 있을 때와 동일한 방식으로 취급될 수 있다.
보다 큰 처리 용량 및 메모리와 연계된 비용들이 지속적으로 감소하기 때문에, 네트워크에 연결되어 있는 모든 전화 세트내에 호 처리 엔진을 포함시키는 것이 가능하다. 이런 시스템들에서, 중앙 장비를 제거하는 것이 바람직할 수 있다. 이런 비중앙식 시스템은 분산식 전화 시스템이라 지칭될 수 있다.
분산식 전화 시스템에서, 중앙 장비가 존재하지 않기 때문에, 중앙 장비에서의 단말 세트를 위한 호 처리 옵션들의 저장은 불가능하다. 호 처리 옵션들은 그들이 적용되는 개별 단말 세트에 저장될 수 있다. 그러나, 이런 단말 세트가 연결 해제되거나, 다른 방식으로 비활성화되는 경우, 그 단말 세트를 위한 호 처리 옵션들을 억세스할 수 없을 수 있다. 단말 세트가 비가용 상태가 되었을 때에도, 단말 세트를 위한 호 처리 옵션들이 가용 상태로 남아있는 것이 바람직하다.
보다 일반적으로, 그 비가용 상태 동안 비가용한 네트워크 디바이스의 역할을 다른 네트워크 디바이스가 맡을 수 있게 할 수 있도록 그 네트워크 디바이스의 비가용 상태시에도 하나의 네트워크 디바이스에 특정한 데이터를 가용하게 하는 것이 바람직하다.
네트워크 디바이스는 적어도 하나의 다른 네트워크 디바이스를 자신의 백업으로서 선택하고, 네트워크 디바이스의 비가용 상태시, 백업 네트워크 디바이스(들)가 네트워크 디바이스의 역할을 맡아 사용하기 위한 정보를 통신한다. 또한, 네트워크 디바이스는, 네트워크 디바이스를 그 백업 디바이스로서 선택한 적어도 하나의 네트워크 디바이스로부터 정보를 수신하여, 선택하는 디바이스(들)의 비가용 상태시, 선택하는 디바이스(들)의 역할을 맡을 때 상기 정보를 사용한다. 각 네트워크 디바이스는 가지고 있는 백업들과 동일한 수의 디바이스들을 위한 백업으로서 작용할 수 있다. 백업 디바이스들의 선택은 디바이스 신뢰성에 기초할 수 있다. 일 실시예에서, 각 네트워크 디바이스는 1차 및 2차 백업을 가진다. 1차 백업은 네트워크 디바이스가 비가용할 때, 그 네트워크 디바이스의 역할을 맡으며, 2차 백업 디바이스는 네트워크 디바이스 및 그 1차 백업 양자 모두가 비가용할 때, 네트워크 디바이스의 역할을 맡는다.
본 발명의 일 양태에 따라서, 복수의 네트워크 디바이스들 중 하나의 네트워크 디바이스에서, 상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하는 단계로서, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하는 상기 선택 단계; 상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하는 단계로서, 상기 통신된 정보는 상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 통신 단계; 및 마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하는 단계로서, 상기 수신된 정보는 상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 수신 단계를 포함하는 방법이 제공된다.
본 발명의 다른 양태에 따라서, 복수의 네트워크 디바이스들 중 네트워크 디바이스가 제공되며, 이는 상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하여, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하고; 상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하도록, 상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하고; 상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하도록, 마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하도록 적응된다.
본 발명의 또 다른 양태에 따라서, 복수의 네트워크 디바이스들 중 하나의 네트워크 디바이스에서의 실행을 위한 기계 실행가능한 코드를 포함하는 기계 판독가능한 매체가 제공되며, 이는 상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하기 위한 기계 실행가능한 코드로서, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하는 상기 선택하기 위한 기계 실행가능한 코드; 상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하기 위한 기계 실행가능한 코드로서, 상기 통신된 정보는 상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 통신하기 위한 기계 실행가능한 코드; 및 마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하기 위한 기계 실행가능한 코드로서, 상기 수신된 정보는 상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 수신하기 위한 기계 실행가능한 코드를 포함한다.
본 기술 분야에 대한 통상적인 지식을 가진 자들은 첨부 도면과 연계하여 본 발명의 특정 실시예들에 대한 하기의 설명을 고찰할 때, 본 발명의 다른 양태들 및 특징들을 명백히 알 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 피어 백업의 사용을 이용하는 전화 시스템.
도 2는 도 1에 도시된 각 단말 세트의 부분 회로 블록도.
도 3은 도 1의 각 단말 세트상에서 동작하는 소프트웨어의 기능 블록도.
도 4는 도 3의 피어-투-피어 호 처리 모듈의 기능 블록도.
도 5는 도 1의 예시적 단말 세트의 라우팅 테이블.
도 6은 본 발명의 일 실시예에 따른 마스터-슬레이브 관계들을 가지는 세 개의 단말 세트들의 블록도.
도 7은 본 발명의 일 실시예에 따른, 백업 단말 세트들을 선택하는 방법의 플로우 차트.
도 8은 피어 백업을 위한 도 3의 단말 세트들의 일부로서 동작하는 소프트웨어의 기능 블록도.
도 9는 백업들을 할당, 할당해제 및 점유할 때의 마스터 단말 세트의 동작을 통제하는 상태 기계/플로우 차트.
도 10은 백업으로서의 그 할당 및 할당해제를 실행하기 위한 단말 세트의 동작을 통제하는 상태 기계/플로우 차트.
도 11은 두 개의 다른 단말 세트들을 위하여 일 백업 단말 세트로서 할당되는 일 단말 세트의 저널 매니저 콤포넌트의 동작을 통제하는 상태 기계/플로우 차트.
도 12는 백업 단말 세트를 할당 및 할당해제하기 위한 백업 단말 세트와 마스터 단말 세트 사이의 신호들을 예시하는 순서도.
도 13은 본 발명의 다른 실시예에 따른, 백업 단말 세트를 획득하는 것으로부터 다른 마스터 단말 세트를 점유하는 마스터 단말 세트를 위한 순서도.
도 14는 어플리케이션이 초기화될 때, 마스터 단말 세트로서 기능하는 단말 세트에 의한 메시징을 위한 순서도.
도 15는 어플리케이션이 초기화될 때, 다른 단말 세트를 위한 제1 백업 단말 세트로서 기능하는 단말 세트에 의한 메시징을 위한 순서도.
도 16은 마스터 단말 세트가 가용하지 않을 때, 마스터 단말 세트를 위한 백업 단말 세트로서 기능하는 단말 세트를 위한 순서도.
도 17은 마스터 단말 세트가 가용하지 않을 때, 마스터 단말 세트를 위한 백업 단말 세트로서 기능하는 단말 세트를 위한 순서도.
도 18은 도 1의 전화 시스템의 착신 단말 세트로의 호를 개시하는 방법의 플로우 차트.
이제, 첨부 도면들을 참조로 본 발명의 양호한 실시예들을 설명한다.
개요설명하면, 다수의 단말 세트들을 포함하는 분산식 전화 시스템의 단말 세트는 예로서, 피어 발견을 수행하는 것으로부터, 시스템내의 다른 단말 세트들의 이지를 시도한다. 이 인지는 시스템내의 각 단말 세트의 신뢰성의 지시를 포함한다. 본 내용에서, "신뢰성"은 분산식 전화 시스템 외부의 연결을 신뢰성있게 형성하기 위한 단말 세트의 능력을 지칭한다. 예로서, 브리징 연결(예로서, 인트라넷)에 의해 결합된 두 개의 서브 네트워크들을 포함하는 전화 시스템에서, 제1 서브 네트워크가 예로서, 공중 교환 전화 네트워크(PSTN)에 대한 외부 연결을 가지고, 제2 서브 네트워크는 그렇지 않은 경우, 제2 서브 네트워크상의 단말 세트들의 PSTN과의 연결을 형성하기 위한 기능은 브리징 연결의 지속적인 동작에 의존한다. 본 예에서, 제2 서브 네트워크상의 단말 세트들은 브리징 연결의 동작 상태에 무관 하게 PSTN에 대한 연결들을 형성할 수 있는 제1 서브 네트워크상의 단말 세트들 보다 낮은 신뢰성을 갖는 것으로 말해진다.
이 정보를 사용하여, 각 단말 세트는 피어 백업 선택에 결부된다. 피어 백업 선택의 목적은 현재 단말 세트를 위해, 1차 백업 단말 세트 및 2차 백업 단말 세트를 선택하는 것이다. 백업 단말 세트(또는 단순히 "백업")는 현재 단말 세트가 가용하지 않은 경우에(예로서, 연결 해제, 전원 소실 또는 기타의 방식으로 인입 호를 취득할 수 없는 상태에 진입), 현재의 단말 세트의 역할을 맡을 수 있는(예로서, 현재 세트의 호 취급 옵션들 및 음성 사서함 인사들을 에뮬레이팅하는 것 같은 기능들을 포함할 수 있음) 단말 세트이다. 보다 구체적으로, 1차 백업 단말 세트는 현재 단말 세트의 비가용 상태시, 현재 단말 세트의 역할을 맡을 수 있으며, 2차 백업 단말 세트는 현재 단말 세트 및 1차 백업 양자 모두가 비가용 상태가된 경우, 현재 단말 세트의 역할을 맡을 수 있다. 1차 백업들은 또한 "제1 레벨" 백업들이라고도 지칭될 수 있으며, 2차 백업들은 "제2 레벨" 백업들이라 지칭될 수 있다. 일반적으로, 백업들은 대안적으로, "슬레이브들(slaves)"이라 지칭될 수 있다. 슬레이브가 할당되어 있는 단말 세트들은 "양수자(assignee)" 또는 "마스터(master)" 단말 세트들이라 지칭될 수 있다.
다른 단말 세트들 중 어느 것을 현재 단말 세트가 그 백업들로서 선택하여야 하는지를 결정하기 위해, 현재 단말 세트의 신뢰성 및 예측 백업들의 신뢰성 양자 모두가 하기와 같이 고려된다.
시스템내의 단말 세트들 모두가 예측 백업들의 M 풀들(pools)로 그룹화되며, 여기서, M은 1 이상의 정수이다. M 풀들의 생성을 위한 기초는 단말 세트들의 신뢰성이며: 각 단말 세트는 유사 신뢰성을 갖는 예측 백업들의 풀내에 배치된다. 가장 높은 신뢰성의 단말 세트들을 가지는 풀이 예측 백업들의 "현재" 풀로서 최초 선택된다. "현재 백업 레벨"은 어떤 2차 백업들이 할당되기 이전에, 모든 단말 세트들이 1차(즉, 제1 레벨) 백업을 먼저 수신한다는 사실을 반영하도록, "제1 레벨"로 설정된다.
그후, 현재 풀로부터의 단말 세트들이 양수자 단말 세트들의 신뢰성이 증가하는 순서로(즉, 최저 신뢰성 단말 세트들이 가장 먼저 백업들을 받음), 시스템내의 단말 세트들 모두에 1차 백업들로서 할당된다. 백업들은 어떠한 단말 세트도 하나 이상의 1차 백업을 받지 않도록 할당된다.
(a) 예측 백업들의 현재 풀내의 모든 단말 세트가 2회 할당(각 풀내의 단말 세트가 슬레이브로서 할당되어 있는 마스터들의 수가 2임)되거나, (b) 시스템내의 모든 단말 세트가 1차 백업을 받을 때까지, 할당이 계속된다.
(a)의 발생시, 예측 백업들의 다음 풀이 신뢰성이 감소하는 순서로(즉, 예측 백업들의 다음 보다 낮은 신뢰성 풀이 현재 풀이됨) 선택되고, 상술한 바와 같이 할당이 계속된다.
(b)의 발생시, 1차 백업들의 할당이 완료된다. 그후, "현재 백업 레벨"이 제1 레벨(1차)로부터 제2 레벨(2차)로 변경되고, 2차 백업들의 할당이 1차 백업들과 동일한 방식으로 진행된다.
모든 2차 백업들이 할당되고 나서, 백업 선택이 완료된다. 이 스테이지에서, 현재 단말 세트는 어느 단말 세트들이 시스템내의 각 단말 세트를 위한 1차 및 2차 백업들로서 할당되었는지를 알고 있다. 이 정보는 디렉토리 번호(PBX 익스텐션과 유사) 및 IP 어드레스(예로서, VoIP 호들을 발생시키기 위해 사용됨) 같은 각 단말 세트에 대한 다른 정보를 포함하는 라우팅 테이블의 형태로 저장될 수 있다. 그러나, 마스터/슬레이브 관계를 공고히 하기 위해, 하기와 같이, 각 마스터 단말 세트와 그 할당된 슬레이브들 사이의 통신들이 여전히 필요하다.
그 라우팅 테이블을 검사함으로써, 현재 단말 세트는 두 단말 세트들 중 어느 것이 그 1차 및 2차 백업들로서 할당되었는지를 식별할 수 있다. 이 정보를 사용하여, 현재 단말 세트는 공식적으로 그들에게 그 슬레이브들이 될 것을 요청하기 위해 식별된 단말 세트들 각각에게 요청 메시지를 전송한다.
각 단말이 현재 단말 세트를 위한 슬레이브가 되는 것에 대한 그 동의를 제공하는 것을 가정하면, 현재 단말 세트는 슬레이브가 자체적으로 로컬 저장하고 있는 그 로컬 데이터베이스의 사본을 슬레이브 단말 세트에 전송한다. 이런 데이터베이스 사본들은 "샤도우(shadow)" 데이터베이스들이라 지칭된다. 샤도우 데이터베이스는 마스터가 비가용한 경우, 마스터 단말 세트의 역할을 맡을(즉, 그 동작을 에뮬레이팅할) 수 있기 위해 슬레이브에 필요한 정보를 포함한다. 이 정보는 예로서, 호 취급 옵션들 또는 음성 사서함 인사를 포함할 수 있다.
동시에, 현재 단말 세트는 두 개의 다른 단말 세트들로부터 그에게 그 슬레이브로서 작용할 것을 요구하는 요청들을 수신한다. 동의시, 현재 단말 세트는 현재 단말 세트에 "샤도우" 데이터베이스들의 형태의 로컬 저장을 위한 요청 세트들 의 데이터베이스들의 사본들을 수신한다.
시스템 동작 동안, 마스터의 데이터베이스내의 정보가 변할 수 있다. 예로서, 마스터 단말 세트의 사용자가 예로서, 인입 호들이 단말 세트가 먼저 울리게 하는 데신 직접적으로 음성 사서함으로 포워딩되도록 단말 세트의 구성을 갱신할 수 있다. 이 상황에서, 그 소유의 데이터베이스의 갱신 이후, 마스터는 변경된 정보를 각 슬레이브에 통신하여 마스터의 데이터베이스와 슬레이브의 샤도우 데이터베이스들 사이의 일관성을 유지한다.
마스터 단말 세트의 비가용 상태시, 1차 단말 세트는 마스터의 역할을 맡는다. 예로서, 호출 단말 세트가 비가용 상태의 단말 세트에 연결할 수 없을 때, 이는 어느 단말 세트가 비가용 세트를 위한 1차 백업으로서 작용하는지를 식별하기 위해 그 로컬적으로 유지된 라우팅 테이블을 활용한다. 그후, 이는 1차 백업이 그 호가 원래 비가용 마스터를 목적지로 하던 것이라는 것을 알 수 있는 방식으로, 식별된 1차 백업과의 연결을 시도한다. 활성 상태라면, 마스터의 비가용 상태가 호출 집단에 통지되지 않을 수 있도록 마스터가 호를 수락하는 것과 동일한 방식(예로서, 동일한 호 취급 옵션들 및 음성 사서함 인사)으로 호를 수락한다.
또한, 1차 백업도 비가용한 경우, 유사한 형태로 2차 백업에 대한 연결을 위한 시도가 이루어진다.
1차 및 2차 단말 세트들 양자 모두가 비가용한 경우, 호출 집단의 단말 세트는 일반적인 형태로 호를 수락할 수 있다(즉, 비가용 마스터의 데이터베이스의 사본의 이득 없이).
슬레이브 단말 세트가 그 마스터를 에뮬레이팅하는 동안, 슬레이브 단말측에서 이루어진 마스터의 구성에 대한 어떤 변경들은 그 마스터를 위한 슬레이브의 샤도우 데이터베이스에 대한 변경들을 초래한다. 이들 변경들은 슬레이브에 의해 추적되며, 동일 마스터를 서빙하는 다른 슬레이브에게 보고되고, 그래서, 다른 슬레이브는 현재 슬레이브의 샤도우 데이터베이스와 그 샤도우 데이터베이스의 일관성을 유지할 수 있다. 마찬가지로, 마스터가 다시 활성화되었을 때, 추적된 변경들은 마스터에 전송되며, 그래서, 마스터는 마스터의 비가용 상태 동안 슬레이브에 이루어진 어떤 구성 변경들(마스터를 위한 백업으로서의 그 역량내에서)로부터 이득을 얻을 수 있다.
1차 및 2차 백업들이 이미 할당되어 있는 분산식 전화 시스템에 단말 세트가 추가될 때, 새로운 단말 세트는 그 마스터에게 그 백업들 중 하나를 이전해줄 것을 요구하는 요청을 현존하는 마스터 단말 세트에게 전송할 수 있다. 예로서, 새로운 단물 세트가 현존하는 마스터 단말 세트의 1차 백업 및 2차 백업 양자 모두가 최고의 신뢰성을 갖는 것으로 결정하는 경우, 새로운 단말 세트는 마스터에게 새로운 단말 세트가 그 1차 백업으로서 사용하도록 그 2차 백업을 이전해줄 것을 요청할 수 있다. 이 경우, 새로운 단말 세트는 현존하는 마스터에 점유 요청을 전송한다. 마스터에 의한 백업의 이전시, 새로운 단말 세트는 점유된 백업 단말 세트를 그 소유의 1차 백업으로서 주장하며, 그와 필요한 정보의 교환을 수행한다. 이전하는 마스터는 그후 새로운 단말 세트를 그 2차 백업으로서 할당하고, 그와 필요한 정보 교환을 수행한다. 이는 새로운 단말 세트를 위한 2차 백업을 취득하기 위해서도 반 복된다. 이전하는 단말 세트들 각각은 그후 새로운 단말 세트를 그 백업으로서 할당한다.
시스템 동작 동안, 각 단말 세트는 그 현재의 1차 및 2차 백업들의 신분을 모든 다른 단말 세트들에게 주기적으로 통지한다(보다 상세히 후술될, PEER_ASSERT "하트비트(heartbeat)" 메시지를 사용하여). 단말 세트의 백업들의 신분이 변하는 경우, 다른 단말 세트들은 이들 메시지들에 의해 이 변화를 인지하고, 이에 따라 그 라우팅 테이블들을 갱신한다.
도 1을 참조하면, 네트워크 기반 분산식 피어-투-피어 호 처리를 사용하고 본 발명의 실시예에 따른 피어 백업을 수행하는 분산식 전화 시스템(10)(또는 "전화 시스템(10)")이 도시되어 있다. 전화 시스템(10)은 전체 네트워크(30)를 형성하도록 인트라넷(14)을 포함하는 브리징 연결에 의해 상호 연결된 두 개의 근거리 통신망들(LAN들)을 포함한다. 대안 실시예들은 상이한 형태의 브리징 연결(예로서, 공중 인터넷을 경유하여 두 개의 사무실들을 연결하는 가상 사설망(VPN) 터널)을 이용할 수 있다. LAN들(16, 18)은 단순히 네트워크들(16, 18)이라 지칭하거나, 또는 전체 네트워크(30)의 존재를 암시하도록 서브-네트워크들(16, 18)이라 지칭할 수 있다. 제1 서브-네트워크(16)는 스위치(12)에 의해 상호 연결된 두 개의 단말 세트들(100-3, 100-4)을 포함한다. 제2 서브-네트워크(18)는 스위치(20)에 의해 상호 연결된 7개의 단말 세트들(100-1, 100-2 및 100-5 내지 100-9)을 포함한다. 스위치들(12, 20)은 네트워크 허브들로 대체될 수 있다.
서브-네트워크(18)는 또한 외부 연결성을 서브-네트워크(18)에 제공하는 박 형 트렁크 인터페이스(TTI)(40)를 포함한다. TTI(40)는 예로서 기본 아날로그 디지털 T1/E1 인터페이스 또는 어떤 다른 PSTN 인터페이스일 수 있고, 지역 분국 또는 PSTN 상호 작용 인터페이스를 제공하고, 다수의 외부 전화 "라인들" 1, 2, 3, 4에 결합된다. 라인들 1, 2, 3, 4는 지역 분국 또는 PSTN(미도시)에 의해 제공된 설비들을 대표하는 와이어 쌍들이다. 본 발명의 몇몇 실시예들에서, 다중 TTI들이 요구될 수 있도록 다수의 외부 라인들이 존재한다. 예로서, 8개의 라인들이 PSTN에 요구되면 제2 TTI가 시스템(10)에 추가될 수 있다.
도 1의 네트워크(30)의 구조가 제공되면, PSTN과의 연결들을 형성하기 위한(또는 더 일반적으로는, 전체 네트워크(30)의 외부의 연결들을 형성하기 위한) 몇몇 단말 세트들의 능력은 PSTN과의 연결들을 형성하도록 다른 단말 세트들의 능력보다 더 단속 또는 고장에 민감할 수 있다. 예로서, 서브-네트워크(18) 상의 TTI(40)의 존재에 의해, 서브-네트워크(18)에 직접 연결된 단말 세트들, 즉 단말 세트들(100-1, 100-2 및 100-5 내지 100-9)은 PSTN으로의 비교적 신뢰적인 연결성을 향유할 수 있다. 대조적으로, 서브-네트워크(12)의 부재(absence)에 의해, 서브-네트워크12)에 직접 연결된 단말 세트들, 즉 단말 세트들(100-3, 100-4)은 PSTN으로의 덜 신뢰적인 연결성을 가질 수 있다. 즉, 단말 세트들(100-3, 100-4)은 인트라넷(14) 및 서브-네트워크(18)를 거쳐 PSTN에 억세스하는 것이 가능할 수 있지만, 이들의 PSTN 연결성은 중간 인트라넷(14)의 고장의 가능성에 기인하여 덜 신뢰적인 것으로 고려된다. (서브-) 네트워크가 외부 연결성을 유지할 수 있는 가능성은 클래스 번호에 의해 표현된다. 본원에 사용될 때, 더 낮은 클래스 번호들은 더 신뢰 적인 외부 연결성을 지시한다. 따라서, 서브-네트워크(18)는 클래스 1(즉, 더 신뢰적임) 네트워크로 간주될 수 있고, 반면 서브-네트워크(12)는 클래스 2(즉, 덜 신뢰적임) 네트워크로 간주된다. 따라서, 서브-네트워크(18) 상의 단말 세트들 모두는 서브-네트워크(12) 상의 단말 세트들 중 어느 것보다도 더 신뢰적인 것으로 간주된다.
단지 9개의 단말 세트들만이 도 1에 도시된다. 일반적으로, 총 T개의 단말 세트들이 존재할 수 있고, 여기서 T ≥ 2이다. 본 발명의 몇몇 실시예들에서, T는 큰 수, 예로서 수천이다.
종래의 집중식 전화 시스템들과는 달리, 도 1의 시스템(10)은 분산식 호 처리를 특징으로 한다. 이 분산식 호 처리는 예로서 분산식 음성 메일을 포함하는 다수의 성능들을 특징으로 할 수 있다.
도 2를 참조하면, 도 1의 전화 시스템(10)의 예시적인 전화 세트(100-X)(여기서, X=1 내지 9)의 부분 회로 블록 다이어그램이 도시되어 있다. 중앙 처리 유닛(CPU)(530), 메모리 관리 유닛(MMU) 및 임의 접근 메모리(RAM)(535)가 연산 디바이스의 기초를 제공한다. 이 연산 디바이스는 오디오 신호들을 인코딩 및 디코딩하기 위한 디지털 신호 프로세서(DSP)(520)에 연결된다. DSP(520)는 오디오 인터페이스(510)에 연결된다. 연산 디바이스는 또한 LAN 및 퍼스널 컴퓨터(PC)로의 연결을 허용하기 위해 3-포트 스위치(525)에 연결된다. 연산 디바이스는 또한 플래시 비휘발성 메모리(540), 적외선(IR) 인터페이스(550), 키패드 및 버튼 인터페이스(555), 액정 디스플레이(LCD) 제어기(560), 및 단말 세트(100)의 표준화 확장을 허용하기 위한 퍼스널 컴퓨터 메모리 카드 국제 협회(PCMCIA) 인터페이스(565)와 같은 주변 기기들의 호스트에 연결된다. 특정 구조가 도시되었지만, 더 일반적으로는, 충분한 처리 및 메모리 용량이 이하에 설명되는 방법들을 구현하는 것이 가능하다고 가정하여 임의의 패킷 기반(예로서, 인터넷 프로토콜(IP)) 전화가 사용될 수 있다. 예로서, 미텔(Mitel), 노텔 네트웍스(Nortel Networks), 아바야(Avaya), 지멘스(Siemens), NEC, 핑텔(Pingtel) 또는 3COM에 의해 제조되는 것들과 같은 오프-더-쉘프 IP 전화기가 사용될 수 있다(예로서, Nortel i2004, Siemens optiPoint 410, 또는 Avaya 4610).
도 3을 참조하면, 예시적인 단말 세트(100-4) 상에서 동작하는 소프트웨어의 기능 블록도가 도시되어 있다. 동일한 소프트웨어가 도 1의 각각의 단말 세트(100-X) 상에서 동작한다는 것을 이해할 수 있다. 소프트웨어는 일반적으로 도 2의 RAM(535)에 저장되고, CPU(530) 상에서 운영되고, 자기 또는 광 디스크, 테이프, 칩 또는 다른 형태의 1차 또는 2차 저장 장치일 수 있는 기계 판독 가능 매체(32)(도 1)로부터 로딩될 수 있다. 더 일반적으로는, 소프트웨어는 범용 또는 특정 용도 프로세서들, 펌웨어, 하드웨어, 응용 주문형 집적 회로들(ASIC들), 필드 프로그램 가능 게이트 어레이들(FPGA들), 범용 또는 특정 용도 로직에 의해 실행을 위해 메모리 내에 저장된 기계 실행 가능 코드의 어떤 적합한 조합으로서 구현될 수 있다.
시스템 디스패처(120)는 프로토콜 스택(60), 호 처리 모듈(70), 음성 메일 모듈(80), 다이얼링 규칙들 모듈(90), 피어 발견 모듈(110), 디스플레이 핸들 러(130), 오디오 핸들러(140), 입력 핸들러(150), 및 피어 백업 모듈(160)을 포함하는 다양한 기능 소자들 사이의 통신 및 스케쥴링을 제공한다.
프로토콜 스택(60)은 단말 세트가 메시지들을 전송하고 수신하는 것을 허용하는 컴퓨터 네트워킹 프로토콜(또는 프로토콜들의 세트)의 소프트웨어 구현이다. 프로토콜 스택들은 이 기술 분야의 숙련자들에 의해 양호하게 이해된다.
호 처리 모듈(70)은 호들을 설정하고 종료하고 음성 채널들을 설정하기 위해 프로토콜 스택(60)과 상호 작용한다. 호가 수신되고 사용자가 호에 응답하는 것이 불가능할 때, 호는 음성 메일에 포워딩되거나 모듈(70)의 동작에 의해 처리된다. 모듈(70)에 의해 처리되는 호들은 현재 단말 세트에 예정된 호들일 수 있고, 또는 다른 단말 세트가 비가용 상태일 때의 경우에 현재 단말 세트가 백업으로서 작용하는 다른 단말 세트에 예정된 호들일 수 있다. 다수의 세트들의 호 처리 모듈들(70)은 집중 설비의 필요 없이 분산 방식으로 PBX형 호 처리 능력들을 전달하도록 집합적으로 기능한다. 호 처리 모듈(70)은 또한 다양한 호 스레드들을 관리하는 책임이 있는 호 처리 디스패처(CP 디스패처)(71)를 갖는다. 호 처리 모듈(70)은 이하에 더 상세히 설명될 것이다.
음성 메일 모듈(80)은 호가 수신되고 사용자가 호에 응답하는 것이 불가능할 때 음성 메일 서비스를 제공한다.
다이얼링 규칙들 모듈(90)은 어떠한 방식으로 호들이 이루어지는지를 제어하는 호-처리 모듈(70)에 대한 다이얼링 규칙들의 세트를 포함하고 적용한다.
피어 발견 모듈(110)은, 단말 세트(100-X)가 네트워크에 초기에 연결될 때 피어 발견을 촉진한다. 모듈(110)은 다수의 책임들을 갖는다. 첫째로, 모듈(110)은 네트워크로의 단말 세트의 초기 연결시에 현재 단말 세트(100-X)로의 고유 DN의 자동 할당을 촉진한다. 둘째로, 모듈(110)은 단말 세트(100-X)에 할당된 DN이 네트워크(30)로부터의 단말 세트의 연결 해제시에도 또는 단말 세트의 전력의 손실시에도(이들 중 하나는 "비활성"이 되는 단말 세트를 초래함) 보존되는 것을 보장한다. DN을 보존하기 위한 동기는 네트워크(30)로부터의 단말 세트의 일시적인 연결 해제(예로서, 단말 세트와 네트워크 사이의 불완전한 연결, 단순한 전력의 손실, 또는 무선 단말 세트의 범위 밖으로의 이동에 기인함)의 결과로서 비활성 단말 세트의 DN이 재할당되는 것을 방지하기 위한 것일 수 있고, 이 재할당은 단말 세트가 호출되는 호출 집단의 부분에 혼란을 초래할 수 있다. 셋째로, 단말 세트(100-X)에서의 모듈(110)의 동작은, 네트워크(30) 내의 다른 단말 세트들 모두에서의 동작과 연계하여, 네트워크(30)에 연결된 모든 다른 단말 세트의 DN의 인식을 각각의 단말 세트에서 초래하므로, 각각의 단말 세트는 다른 단말 세트들로의 호들을 형성할 수 있다. 피어 전달 모듈(110)에 의해 제공된 동작의 간략한 개요가 이어진다.
"공장 출하"(즉, 아직 미구성됨) 상태의 네트워크로의 단말 세트의 초기 연결시에, 단말 세트는 네트워크 연결 통지에 의해 네트워크로의 그의 연결을 네트워크 상의 다른 단말 세트들(그의 "피어들")에 통지한다. 네트워크 연결 통지는 예로서 매체 억세스 제어(MAC) 어드레스와 같은 단말 세트와 연관된 고유 식별자를 포함한다. 이 기술 분야에 공지된 바와 같이, MAC 어드레스는 네트워크 디바이스에 대한 고유 식별자로서 기능하는 고유 하드웨어 어드레스 또는 하드웨어 번호이다. 네트워크 연결 통지는 메시지가 수신될 수 있는 가능성을 증가시키기 위해 다수회 송신되는 "I_AM_HERE" 메시지의 형태를 취할 수 있다(적어도 본 실시예에서와 같이 확인 응답이 각각의 수신된 메시지에 대해 다른 피어들에 의해 전송되지 않는 경우).
새로이 연결된 단말 세트는 또한 다른 단말 세트들로부터 존재 통지들을 수신한다. 존재 통지는 현재 네트워크 상에 존재하거나(즉, 활성이고 네트워크에 연결됨) 또는 이전에 네트워크 상에 존재했던(즉, 이전에 활성이었고 연결되었지만 지금은 연결 해제되어 비활성임) 단말 세트의 존재의 지시이다. 본 실시예에서, 존재 통지는 "I_AM_HERE" 메시지(상술됨), "PEER_ASSERT" 메시지(후술됨), 또는 "INACTIVE_PEER_ASSERT" 메시지(후술됨) 중 하나일 수 있다. 각각의 존재 통지는 메시지가 송신되는 것에 관하여 단말 세트의 고유 식별자를 포함한다. 후자의 두 개의 유형들의 메시지들("PEER_ASSERT" 및 "INACTIVE_PEER_ASSERT" 메시지들)은 부가적으로 이미 주장된 DN들 및 송신 단말 세트의 1차 백업 및 2차 백업의 신분의 지시를 제공하고, 적어도 하나의 단말 세트가 이미 DN을 주장하고 있는 네트워크에 새로운 단말 세트가 참여할 때에만 수신된다.
존재 메시지들로부터, 네트워크 상의 단말 세트들 전체의 목록(라우팅 테이블이라 함)이 생성된다. 목록 내의 단말 세트들은 이들의 고유 네트워크 디바이스 식별자들에 의해 분류된다. 이미 주장된 DN들을 갖는 어떤 단말 세트들에 대해, 주장된 DN은 분류된 목록에 지시될 수 있다. 새로이 연결된 단말 세트는 목록 내의 순서 위치를 가질 수 있다.
예측 DN을 선택하기 위해, 새로이 연결된 단말 세트는 기초 DN에 대한 목록 내의 그의 순서 위치와 연관된 오프셋을 추가할 수 있다. 예로서, DN이 PBX 확장을 표현하는 시스템에서, 새로운 단말 세트가 9개의 단말 세트들의 목록 내의 4번째라고 가정하면, 예측 DN은 204(단말 세트의 순서 위치, 즉 4 더하기 200의 기초 DN에 대응하는 오프셋)로 결정될 수 있다. 단말 세트와 연관된 고유 순서 위치 상의 예측 DN의 선택에 기초함으로써, 상이한 단말 세트들에 의한 고유 예측 DN들의 선택이 촉진될 수 있다. 이는 다중 공장 출하 단말 세트들이 이전에 할당된 DN들을 갖는 단말 세트들이 존재하지 않는 네트워크에 동시에 참여하는 시나리오를 가정한다. 이론적 근거는 상이한 단말 세트들이 초기에 동일한 예측 DN을 선택하여 시간 소비적인 상충적인 분석 처리를 초래할 수 있는 것을 방지하려고 시도하는 것이다.
그의 예측 DN을 선택할 때, 새로이 연결된 단말 세트는 그후 그의 예측 DN의 각각의 다른 단말 세트를 통지할 수 있다. 이는 "DN 프로브(DN Probe)"라 칭한다. 다른 단말 세트가 예측 DN의 새로이 연결된 단말 세트에 의한 주장을 반대하지 않으면(다른 단말 세트들 중 하나에 의해 해당 DN에 대한 현존하는 주장에 기초하여 어떤 반대가 가능성이 있음), 새로이 연결된 단말 세트는 그 자체로 예측 DN을 주장한다. 새로이 연결된 단말 세트는 어떤 반대들을 상승시키도록 다른 단말 세트들에 대해 충분한 시간을 제공하기 위해, 그의 예측 DN을 주장하기 전에 사전설정된 시간 간격이 경과하는 것을 허용할 수 있다. 예측 DN이 성공적으로 주장된 것으로 가정하면, 새로이 연결된 단말 세트는 해당 DN에 대한 그의 주장을 각각의 다른 단말 세트에 통지한다. 새로이 연결된 세트는 또한 단말 세트가 전력을 손실하면 할 당된 DN이 재호출될 수 있도록 비휘발성 메모리에 주장된 DN을 저장한다. 라우팅 테이블이 또한 저장될 수 있다.
새로이 연결된 단말 세트가 형성된 네트워크에 참여하는 경우, 네트워크 상의 다른 단말 세트들이 이들의 DN들을 미리 선택할 수 있다. 이 경우, 새로이 연결된 단말 세트에 의해 선택된 예측 DN은 현존하는 단말 세트들 중 하나에 미리 할당될 수 있는 것이 가능하다. 예로서, 단말 세트들의 분류된 목록 내의 새로이 연결된 단말 세트의 순서 위치가 목록의 종점이 아니면(예로서, 새로운 단말 세트의 고유 식별자가 이를 분류된 목록의 중간의 어떤 장소에 배치하면), 새로이 연결된 단말 세트의 순서 위치와 연관된 오프셋이 기초 DN에 추가될 때 발생할 수 있는 예측 DN은 현존하는 단말 세트들 중 하나의 DN을 표현할 수 있다.
이 가능성에 비추어, 새로이 연결된 전화가 그의 예측 DN을 어떤 다른 단말 세트에 통지하려고 시도하기 전에, 이는 먼저 예측 DN이 네트워크 내의 어떤 다른 단말 세트들에 의해 이미 주장되어 있는지의 여부를 판정하도록 그의 라우팅 테이블을 참고한다. 예측 DN이 다른 세트에 의해 이미 주장되어 있으면, 새로이 연결된 DN은, 그의 선택을 다른 단말 세트들 중 어떤 세트에 통지하기 전에 목록 내에서 발견된 1 내지 최대 DN과 같은 오프셋을 추가함으로써 다른 예측 DN을 선택할 수 있다. 이는 새로이 연결된 단말 세트가 단지 해당 DN을 이미 주장하고 있는 다른 단말 세트들 중 하나로부터의 반대를 수신하기 위해 그의 예측 DN을 각각의 다른 단말 세트에 통지하는 경우 발생할 수 있는 네트워크 상의 불필요한 통신들 오버헤드를 회피할 수 있다.
일단, 새로이 연결된 단말 세트가 DN을 성공적으로 주장하면, 단말 세트는 해당 DN에 대한 그의 주장을 네트워크 상의 다른 단말 세트들에 주기적으로 통지한다. 본 실시예에서, 각각의 주기적인 통지는 새로이 연결된 단말 세트의 "하트비트"로서 기능하여 지속적인 네트워크 존재 및 그의 DN에 대한 지속적인 주장을 지시하는 "PEER_ASSERT" 메시지의 형태를 취한다. PEER_ASSERT 메시지들은 또한 현재 단말 세트의 1차 및 2차 백업의 신분의 지시를 포함한다(따라서, 현재 단말 세트의 백업들의 신분이 변경되면, 다른 단말 세트들은 변경을 인식할 수 있고 이에 따라 이들의 라우팅 테이블들을 갱신할 수 있음). 통지들은 네트워크 상의 다른 단말 세트들에 의해 감시된다. 본 실시예에서, 주기적인 통지들은 어떤 시간 간격들(예로서, 0 내지 2초)에 발생한다. 사전설정된 시간이 단말 세트로부터의 통지의 수신 없이 경과하면, 단말 세트는 비활성이 된 것으로 추정된다. 주기적인 통지는 또한 후속의 추가된 단말 세트가 그 자체로 해당 DN을 청구하려고 시도하는 것을 방지하는 기능을 한다. 예로서, 다른 단말 세트가 그의 예측 DN으로서 해당 DN을 선택하고 다른 단말 세트들로부터의 어떤 반대를 대기하면, 통지는 해당 단말 세트에 의해 해당 DN의 주장에 대한 반대로서 기능할 수 있다. 반대들 표현(예로서, DN_CONFLICT 메시지)이 또한 송신될 수 있다.
DN을 주장한 단말 세트가 네트워크로부터 연결 해제되거나 전력을 손실하면, 그의 DN에 대한 그의 주장을 네트워크 상의 다른 단말 세트들에 주기적으로 통지하는 것이 불가능할 가능성이 있다. 이 경우, 연결 해제된 단말 세트의 비가용을 인식하고 있는(예로서, 해당 단말 세트로부터의 어떤 최근 PEER_ASSERT 메시지들의 부재에 의해) 네트워크 내의 다른 단말 세트가 참가하고 연결 해제된 단말 세트가 비활성일지라도 그의 DN이 이미 주장되고 있는 사실을 네트워크 상의 다른 단말 세트들에 주기적으로 통지하기 시작한다. 편의상 "대용"이라 칭하는 참가한 단말 세트는 그 자신의 DN에 대한 그의 주장을 다른 단말 세트들에 주기적으로 통지하는 것에 부가하여 이들 주기적인 통지들("INACTIVE_PEER_ASSERT" 메시지들의 형태를 취함, 후술함)을 송신하는 책임이 있다. 어느 단말 세트가 비활성 단말 세트에 대한 대용이 되는지를 판단하기 위해 알고리즘이 적용될 수 있다. 비활성 단말 세트를 대신하여 송신된 대용의 주기적인 통지들은 그 자체로 이후에 추가된 단말 세트가 연결 해제된 단말 세트의 DN을 주장하려고 시도하는 것을 방지할 수 있다.
연결 해제된 단말 세트가 이후에 네트워크와 재연결되면, 자신을 대신하여 그의 DN(그의 비휘발성 메모리로부터 재호출할 수 있음)의 다른 단말 세트들에 통지를 재개할 수 있다. 대용 단말 세트가 재연결을 검출할 때, 재연결된 단말 세트가 이 책임을 다시 맡기 때문에 재연결된 단말 세트의 DN의 다른 단말 세트들에 통지하는 것을 중지할 수 있다.
도 3을 재차 참조하면, 디스플레이 핸들러(130)는 정보를 포맷하고 사용자에게 표시하는 책임이 있다.
오디오 핸들러(140)는 벨울림, 통화중, 호 대기 톤과 같은 오디오 톤들을 울리도록 채택되거나 시스템 디스패처(120)로부터의 오디오 메시지의 수신시에 네트워크로부터 핸드셋 스피커(또는 스피커 폰)로의 음성 채널에 연결하도록 채택된다.
입력 핸들러(150)는 키이 프레스, 후크 스위치, 볼륨 키이들, 핸즈 프리 및 음소거 버튼과 같은 기능들을 감시하고 적절한 작용들이 취해진 것을 시스템 디스패처(120)에 보고하는 책임이 있다.
피어 백업 모듈(160)은 일반적으로 현재 단말 세트에 대한 백업 단말 세트들로서의 다른 단말 세트들의 사용을 선택하고 지원하는 책임이 있다. 모듈(160)은 또한 다른 단말 세트들에 대한 백업 단말 세트로서의 현재 단말 세트의 사용을 지원하는 책임이 있다. 모듈(160)의 동작은 이하에 더 상세히 설명된다.
도 4는 프로토콜 스택(60)과 함께 도 2의 호 처리 모듈(70)의 기능 블록 다이어그램이다. 인입 네트워크 메시지 채널(50)이 도시되어 있고, 이는 전화가 연결되는 네트워크(30)를 통해 메시지들을 수신하고 이들을 프로토콜 스택(60)에 전달하기 위한 어떤 적합한 메커니즘이다. 유사하게, 네트워크(30)를 통해 전송될 생성된 메시지들을 위한 경로를 제공하는 도출 메시지 채널이 52로 도시되어 있다. 도 4의 실시예에서, 단말 세트(100-X)에 의해 지원되는 특징들의 요구들에 부합하기 위해 4개의 호 스레드들(72, 73, 74, 75)이 존재한다. 예로서, 단말로의 음성 호는 하나의 호 스레드로 처리될 수 있고, 반면 음성 메일 메시지는 다른 호 스레드를 사용하여 동시에 기록될 수 있다. 대안 실시예들이 상이한 수의 호 스레드들을 가질 수 있다는 것을 이해해야 한다. 일반적으로, 적어도 두 개의 호 스레드들이 존재해야 하며 : 주 라인을 위한 하나 및 음성 메일을 위한 다른 하나이다. 도 4의 실시예에서, 4개의 호 스레드들(72, 73, 74, 75) 중 3개가 음성 메일에 대한 예비로서 작용하는 제4 호 스레드와의 3-방향 회의를 처리하는데 사용될 수 있다. 제3 호 스레드는 특정 단말은 백업으로서 지정된 다른 단말에 의해 수신되는 음성 메일 메시지를 기록하는 것에 관련될 수 있다.
인입 메시지가 채널(50)을 통해 프로토콜 스택(60)에 도달할 때, 이는 수신(RX) 스택(65)에 큐잉되고 최종적으로 CP 디스패처(71)에 송신된다. CP 디스패처(71)는 호가 예정되고 호 스레드들(72, 73, 74 또는 75) 중 적절한 하나에 메시지를 포워딩하는 스레드를 결정한다. 네트워크 메시지에 응답하여, 적절한 호 스레드가 패키징될 프로토콜 스택(60)에 응답을 송신함으로써 응답하고 전송(TX) 스택(55)을 거쳐 그의 목적지에 송신된다. 네트워크로 재송신될 메시지의 유형은 호 스레드의 상태에 의존한다. 예로서, 메시지가 세션 초기화 프로토콜(SIP) 하의 새로운 호에 대한 INVITE 메시지이면, 응답은 반환되는 "180" RINGING 메시지 또는 호가 응답할 때 "200" OK 메시지와 같은 적절한 확인 응답이다.
도 5는 예시적인 단말 세트(100-X)에 의해 유지되는 예시적인 라우팅 테이블(200)을 도시한다. 정상 상태에서, 도 1의 9개의 단말 세트들 각각은 도 5에 도시된 것과 동일한 라우팅 테이블(200)을 가질 수 있다. 라우팅 테이블(200)은 피어 발견 및 피어 백업 선택이 모두 완료된 후에 도시되어 있다. 피어 발견의 완료에 의해, 엔트리들(즉, 로우들)은 네트워크(30) 상의 각각의 단말 세트에 존재할 수 있고, 각각의 단말 세트는 고유 DN을 주장할 수 있다. 피어 백업 선택(이하에 더 상세히 설명됨)의 완료에 의해, 각각의 피어는 1차 백업 단말 세트 및 2차 백업 단말 세트가 할당될 수 있다.
라우팅 테이블(200) 내의 엔트리를 갖는 각각의 단말 세트 또는 다른 네트워크 디바이스에 대해, 이하의 정보가 유지된다: DN(칼럼 210), MAC 어드레스(칼럼 220), IP 어드레스(칼럼 230), 디바이스 유형(칼럼 250), 제1 백업(칼럼 260), 제1 백업의 유형(칼럼 265), 제2 백업(270), 제2 백업의 유형(칼럼 275), 단말 세트 상태(칼럼 296) 및 네트워크 클래스(칼럼 299). 피어 백업과 관련이 적은 다른 정보(도시 생략)가 또한 유지될 수 있다.
DN(칼럼 210)은 단말 세트의 PBX 확장과 유사하다. MAC 어드레스(칼럼 220)는 단말 세트를 고유하게 식별하는 하드웨어 어드레스이다. 도 5의 예시적인 라우팅 테이블(200)에서, 각각의 MAC 어드레스는 최종의 두 개의 문자들을 제외하고는 동일하다. IP 어드레스(칼럼 230)는 단말 세트의 IP 어드레스이고, 이 어드레스는 예로서 VoIP 메시징을 위해 사용된다. 디바이스 유형(칼럼 250)은 네트워크 디바이스의 유형을 지시한다. 본 예에서, 라우팅 테이블(200)의 최초 9개의 엔트리들은 VoIP-가능 단말 세트들을 표현한다. 최종 엔트리는 TTI(40)를 표현한다. 다양한 다른 유형들의 네트워크 디바이스들(예로서, 게이트웨이들)이 라우팅 테이블(200)에 포함될 수 있다. 제1 및 제2 백업들(칼럼들 260 및 270)은 로우에 의해 표현되는 단말 세트로의 백업들로서 할당되어 있는 두 개의 단말 세트들을 식별한다. 각각의 백업은 칼럼들 260 및 270에 괄호로 지시되어 있는(이해를 돕기 위해) MAC 어드레스(DN)에 의해 식별된다. 제1 및 제2 백업들의 유형들은 각각 칼럼들 265 및 270에 지시된다. "Pri"는 1차 백업을 지시하고, "Sec"는 2차 백업을 지시한다. 마지막으로, 클래스(칼럼 299)는 로우에 의해 표현된 단말 세트가 연결되는 네트워크의 네트워크 클래스(상술됨)를 지시하고, 이는 로우에 의해 표현되는 단말 세트의 신뢰성을 지시한다.
피어 백업 선택
단말 세트(100-X)가 초기에 공장 출하 상태로 네트워크(30)에 연결될 때, 피어 백업 모듈(160)은 피어 백업 선택으로 결합한다. 피어 백업 선택의 목적은 현재 단말 세트가 비가용 상태가 되는 경우에 현재 단말 세트의 역할을 맡을 수 있는 1차 백업 단말 세트 및 2차 백업 단말 세트를 선택하는 것이다. 피어 백업 선택의 결과는 로컬 라우팅 테이블(200)(도 5), 뿐만 아니라 호출 단말 세트가 그의 호를 1차 백업(마스터가 비가용 상태일 때) 또는 2차 백업(마스터 및 1차 백업 모두가 비가용 상태일 때)으로 재지향하는 것을 허용하는데 충분한 백업 정보(칼럼들 260, 265, 270, 275)를 갖는 다른 단말 세트들에서의 라우팅 테이블들(200)의 포퓰레이션(population)이다.
도 6은 3개의 가상 단말 세트들 A, B 및 C 사이의 피어 백업 선택의 결과를 도시하는 개략 블록 다이어그램이다. 각각의 단말 세트는 두 개의 마스터 "포트들"과 두 개의 슬레이브 "포트들"을 갖는 도 6에 박스로서 나타난다. 제1 단말 세트 상의 마스터 포트가 제2 단말 세트 상의 슬레이브 포트와 상호 연결될 때, 이는 제2 단말 세트가 제1 단말 세트로의 슬레이브(즉, 백업)로서 할당된 것을 지시한다. 예로서, 단말 세트 A와 단말 세트 B 사이의 상호 연결부(731)는 B가 A를 위한 백업인 것을 지시한다(1차 또는 2차 백업으로서의 B의 상태는 도 6에 도시되지 않음). 따라서, 상호 연결부들(731, 732, 733, 734)은 단말 세트들 B 및 C가 A의 백업들로서 할당되어 있고, 단말 세트 A가 B의 백업으로서 할당되어 있고, 단말 세트 A는 또한 C의 백업으로서 할당되어 있다는 것을 총괄적으로 지시한다. 이는 단말 세트 들이 서로의 백업들로서 기능할 수 있다는 사실을 나타낸다.
도 6의 포트들 및 상호 연결들은 물리적 포트들 또는 상호 연결들에 대응하지 않는다는 것을 주의하여야 한다. 표시적인 상호 연결들(731, 732, 733, 734)은 단지 예시일 뿐이며, 실제로는 각 세트들에서의 라우팅 테이블(200)(도 5)의 백업 컬럼들(260 및/또는 270)에서 적절히 세트들(A, B 및 C)의 MAC 어드레스들을 식별하는 것 같은 다른 수단에 의해 실행된다.
도 7은 본 발명의 일 실시예에 따른 백업 단말 세트들을 선택하기 위한 동작을 예시한다. 예시적 실시예로서, 도 1의 단말 세트들(100-1 내지 100-9)을 위한 백업 선택이 설명된다. 표 1은 백업 선택이 수행되는 단말 세트들(100-1 내지 100-9) 각각의 네트워크 클레스들을 예시한다.
단말 세트 DN 네트워크 클래스
100-1 201 1
100-2 202 1
100-3 203 1
100-4 204 2
100-5 205 2
100-6 206 1
100-7 207 1
100-8 208 1
100-9 209 1
표 1 : 복수의 단말 세트들을 위한 네트워크의 DN들 및 클래스의 목록
표 1에 나타난 바와 같이, 단말 세트들(100-1, 100-2 및 100-5 내지 100-9)은 클래스 1(서브-)네트워크(18)에 연결되고, 단말 세트(100-3 및 100-4)는 클래스 2(서브-)네트워크(16)에 연결된다(도 1).
도 7을 참조하면, 최초 예측 백업들(즉, 단말 세트들(100-1 내지 100-9) 모두)은 백업 단말 세트들(1810)로서의 선택을 위해 순서화된다. 이 순서화는 이하의 표2에 나타나 있다. 표 2를 참조하면, 본 실시예에서, 예측 백업들은 (1) 네트워크 클래스(클래스 신뢰성을 감소시킴으로써) 및 (2) 백업 유형(백업 우선순위를 감소시킴으로써, 즉, 2차 이전에 1차)에 의해 순서화된다. 본 실시예에서, 각 예측 백업이 1차 백업 및 2차 백업 양자 모두로서 기능하는 백업 동작 체계 때문에, 순서화의 목적을 위해, 각 예측 백업은 2회 목록화된다 : 1차 백업으로서 1회 및 2차 백업으로서 1회. 네트워크 클래스 및 백업 유형의 각 고유한 조합이 "그룹"을 구성한다. 본 실시예에서, 두 개의 네트워크 클래스들이 존재하며, 각 단말 세트가 1차 백업 및 2차 백업 양자 모두로서 기능하기 때문에, 4개 그룹이 존재한다. 이들 4개 그룹들은 표 2에서 그룹들 1-4로 표시되어 있다.
차례 # 네트워크 클레스 백업 유형 단말 세트 그룹 #
1 2 P 100-3 1
2 2 P 100-4
3 1 P 100-1 2
4 1 P 100-2
5 1 P 100-5
6 1 P 100-7
7 1 P 100-6
8 1 P 100-8
9 1 P 100-9
10 2 S 100-3 3
11 2 S 100-4
12 1 S 100-1 4
13 1 S 100-2
14 1 S 100-5
15 1 S 100-7
16 1 S 100-6
17 1 S 100-8
18 1 S 100-9
표 2 : 네트워크 클래스 및 백업 유형에 의해 백업 선택을 위해 순서화된 예측 단말 세트들의 목록
다른 방식으로, 단말 세트들은 예측 백업들의 M "풀들"로 배치되고, 여기서, 각 풀은 특정 신뢰성(즉, 네트워크 클래스)의 단말 세트를 포함한다. 여기서, 수개 의 신뢰성 레벨들이 존재하기 때문에(즉, 클래스 1 및 클래스 2) - 이는 M=2이기 때문임 - 두 개의 풀들이 생성된다 : 제1 풀(세트들 100-3 및 100-9) 및 제2 풀(세트들 100-1, 100-2 및 100-5 내지 100-9). 제1 및 제2 풀들은 표 2의 그룹들 및 2에 대응한다. 그룹들 3 및 4는 단지 그룹들 1 및 2의 복제본이며, 예측 2차 대 예측 1차 백업들과 동일한 그 역량내의 단말 세트들을 나타낸다.
표 2에 나타난 바와 같이, 순서 위치들 1 내지 9의 단말 세트들(그룹 1 및 2)은 예측 1차(P) 백업 단말 세트들로서 그 역량내에 목록화된 시스템내의 단말 세트들 모두를 포함한다. 순서 위치들 10 내지 18의 단말 세트들(그룹들 3 및 4)은 예측 2차(S) 백업 단말 세트들로서의 그 역량내에서 순서 위치들 1 내지 9(동일한 순서로)에 목록화된 것들과 동일한 단말 세트들의 세트이다.
그룹들 1, 2, 3 및 4 각각내에서, 단말 세트들은 그 MAC 어드레스들(미도시)에 따라 순서화된다. 예로서, 표 2의 순서 위치들 6 및 7에서, DN 207을 가지는 단말 세트는 DN 206을 가지는 단말 세트 보다 낮은 MAC 어드레스를 가지며, 따라서, DN 206을 가지는 단말 세트 이전에 선택되도록 순서화된다. 그룹들내에서의 순서화를 위한 이 기초는 본 실시예의 동작에 중요하지 않으며, 대안 실시예들에서는 다를 수 있다.
다음에, 가장 신뢰성있는 네트워크 클래스내의 단말 세트들의 세트(여기서, 클래스 1 네트워크상의 것들, 즉, 단말 세트들 100-1, 100-2 및 100-5 내지 100-9)가 1차 백업들(1820)로서 할당되는 단말 세트들의 제1 풀로서 선택된다. 이 선택은 고 신뢰성 백업들을 위한 초기 선호도를 반영한다.
후속하여, 백업 또는 달리 말하여, 제1 양수자를 받기 위한 제1 단말 세트를 나타내는, 단말 세트들의 순서화된 세트로부터의 제1 단말 세트의 순서 번호(표 2)로 인덱스가 설정된다(1830). 1830에서 식별된 단말 세트는 최소 신뢰성 네트워크 클레스내의 단말 세트, 보다 구체적으로, 최소 신뢰성 네트워크 클래스내의 모든 단말 세트들의 최저 MAC 어드레스를 갖는 단말 세트이다. 최저 신뢰성 네트워크 클래스가 최초에 선택된다는 사실은 최소 신뢰성 네트워크들상의 단말 세트들이 백업들을 먼저 받게되는 백업 할당 전략을 반영한다. "최저 MAC 번호" 기준은 단순한 2차 순서화 체계이며, 보다 적은 중요도를 갖는다. 알 수 있는 바와 같이, 1820에서 식별된 제1 수취자에게 할당되는 제1 백업은 가장 신뢰적인 네트워크 클래스로부터 이루어질 수 있다. 이 접근법을 위한 이유는 최저 신뢰성의 네트워크들상의 단말 세트들이 그 백업들로서, 최고 신뢰성의 네트워크 클레스들내에 있는 단말 세트들을 받아야 한다는 것이다.
1840에서, 1830의 인덱스의 설정에 의해 식별되는 바와 같이, 표 2의 현재 순서 위치의 단말 세트(즉, 단말 세트 100-3)에 백업으로서 할당될 제1 단말 세트(즉, 단말 세트 100-1)가 1차(또는 "제1 레벨") 백업으로서 할당된다. 따라서, 이 제1 반복에서, 네트워크 클래스 1내의 어떤 단말 세트 중 최저 MAC 어드레스를 갖는 단말 세트(단말 세트 100-1)가 최저 신뢰성 네트워크 클래스로부터의 최저 MAC 어드레스를 갖는 단말 세트(단말 세트 100-3)를 위한 1차 백업으로서 할당된다.
다음에, 다른 할당 대상 백업들이 존재하는지 여부에 대한 평가가 이루어진다(즉, 어떤 단말 세트가 1차 백업 및 2차 백업 양자 모두로서 아직 할당되지 않았 는지 여부에 대하여 쿼리가 이루어진다)(1850). 할당 대상 백업들이 남아 있지 않은 경우(즉, 모든 백업들이 1차 및 2차 백업들 양자 모두로서 할당된 경우), 그후, 피어 선택이 종결된다. 그러나, 1차 및 2차 백업 양자 모두로서 할당되지 않은 어떤 단말 세트가 남아있는 경우(어떤 풀내에), 그후, 두 개의 단말 세트들에 백업으로서 아직 할당되지 않은 예측 백업들의 어떤 단말 세트들이 현재 네트워크 클래스(즉, 현재 풀)내에 남아 있는지 여부에 대한 평가가 이루어진다(1860).
1860에서의 평가가 긍정적으로 이루어지는 경우, 그후, 다음 백업 수취자(즉, 다음 양수자)의 표 2내의 순서 위치를 나타내는 인덱스가 증분되고(1865), 동작은 다음 백업을 할당하기 위해 단계 1840으로 복귀한다.
다른 한편, 1860에서의 평가가 부정적으로 이루어지는 경우(즉, 현재 네트워크 클래스/현재 풀의 모든 단말 세트들이 두 개의 단말 세트들에 백업으로서 할당됨), 보다 덜 신뢰적인 네트워크 클래스를 갖는 어떤 단말 세트들이 존재하는지 여부에 대한 평가(즉, 예측 백업들의 어떤 보다 낮은 신뢰성 풀들이 존재하는지 여부)가 이루어진다(1870). 후자의 평가가 긍정적으로 이루어지는 경우, 그후, 새로운 네트워크 클래스를 위한 처리를 반복하기 위해 1840으로 복귀하기 이전에, 1880에서 네트워크 클래스가 증분된다(즉, 보다 낮은 신뢰성의 다음 클래스 번호로 설정된다). 다른 한편, 1870의 평가가 부정적으로 이루어지는 경우에, 그후, 각 단말 세트는 그 두 개의 백업들을 수락하고, 선택이 종료한다.
명료성을 위해, 1870의 "예" 분기부는 통상적으로 "공장 출하" 세트들의 그룹을 위해 백업 선택이 완료될 때 이어진다. 대조적으로, 1850의 "아니오" 분기부 는 새로운 단말 세트가 단말 세트들의 현존하는 그룹에 합류할 때 이어진다.
백업 할당의 종료시, 백업 단말 세트 할당들은 표 3에 예시된 바와 같다.
단말 세트 네트워크 클래스 단말 세트 및 백업 유형 단말 세트 및 백업 유형
100-1 1 100-3(P) 100-8(P)
100-2 1 100-4(P) 100-9(P)
100-5 1 100-1(P) 100-3(S)
100-6 1 100-2(P) 100-4(S)
100-7 1 100-5(P) 100-1(S)
100-8 1 100-7(P) 100-2(S)
100-9 1 100-6(P) 100-5(S)
100-3 2 100-7(S) 100-8(S)
100-4 2 100-6(S) 100-9(S)
표 3 : 백업 단말 세트들 및 그들이 백업들로서 작용하는 단말 세트의 목록
표 3에서, 제1 컬럼은 백업 단말 세트를 표시하며, 제2 컬럼은 백업 세트의 네트워크 클래스를 지정하고, 제3 컬럼은 컬럼 1에 표시된 세트가 백업으로서 작용하는 제1 단말 세트를 표시하며(백업의 유형은 괄호들내에 표시되어 있음), 제4 컬럼은 컬럼 1에 표시된 세트가 백업으로서 작용하는 제2 단말 세트를 나타낸다(백업의 유형은 괄호들내에 표시되어 있음).
표 3의 백업 할당 정보는 시스템내의 단말 세트들 각각의 라우팅 테이블(200)(도 5)내에, 보다 구체적으로는 라우팅 테이블(200)의 컬럼들(260, 265, 270 및 275)내에 유지된다. 백업 할당 정보는 각 디바이스에 의해 주기적으로 전송되는 PEER_ASSERT 메시지들을 경유하여 전파된다. 결과적으로, 각 단말 세트의 라우팅 테이블(200)은 도 5에 도시된 바와 같이 나타난다.
표 3에 나타난 바와 같이, 백업 단말 세트는 두 개의 서로 다른 단말 세트들을 위한 1차 백업으로서, 하나의 단말 세트를 위한 1차 백업 및 다른 단말 세트를 위한 2차 백업으로서, 또는 두 개의 서로 다른 단말 세트들을 위한 2차 백업으로서 기능할 수 있다. 예로서, 표 3의 제1 로우를 참조하면, 단말 세트 100-1은 단말 세트 100-3을 위한 1차 백업 단말 세트이며, 또한, 단말 세트 100-8을 위한 1차 백업 단말 세트라는 것을 알 수 있다. 표 3의 7번째 로우를 참조하면, 단말 세트 100-9는 단말 세트 100-6을 위한 1차 백업으로서, 그리고, 단말 세트 100-5를 위한 2차 백업으로서 기능한다. 마지막으로, 표 3의 최종 로우에 나타난 바와 같이, 단말 세트 100-4는 단말 세트 100-6을 위한 2차 백업 단말 세트로서 기능하고, 또한, 단말 세트 100-9를 위한 2차 백업 단말 세트로서도 기능한다. 그러나, 백업은 동일 마스터에 대한 1차 백업 및 2차 백업 양자 모두로서 기능하지는 않는다.
도 7에 예시된 백업 선택은 예로서, 인터넷(14)의 고장으로 인해, 보다 덜 신뢰적인 네트워크가 PSTN으로부터 호출자들에게 억세스될 수 없는 경우에도, 보다 덜 신뢰적인 네트워크(즉, 서브 네트워크 16)의 단말 세트들이 보다 신뢰적인 네트워크(예로서, 서브 네트워크 18)상에서 백업 기능을 가질 수 있도록 보다 덜 신뢰적인(클래스 2) 네트워크내의 단말 세트들이 보다 신뢰적인(클래스 1) 네트워크내의 단말 세트들을 백업할 수 있게 한다.
일부 실시예들에서, 백업들을 요청하는 단말 세트들은 모두 동일 네트워크 클래스를 갖는다. 이런 경우들에서, 단말 세트들은 예로서, 단지 MAC 어드레스들만을 사용하여 순서화될 수 있다. 또한, 본 발명의 실시예들은 식별자로서 MAC 어드레스를 사용하여(예로서, 표 2에서와 같이) 단말 세트들을 순서화하는 것에 한정되지 않는다. 예로서, IP 어드레스들, DN들 및 일렬 번호들 같은 다른 식별자들이 사용될 수 있다.
도 8은 도 3의 피어 백업 모듈(160)의 구조를 보다 상세히 예시하는 기능적 블록도이다. 각 단말 세트(100-X)에서의 피어 백업 모듈(160)은 동일하다. 예시적 예로서, 피어 백업 모듈(160)의 동작이 도 6의 가정적 단말 세트 A의 견지로부터 설명된다.
백업 매니저(810)는 어느 단말 세트들이 현재 단말 세트 A를 위한, 그리고, 이들 백업들에 대한 마스터가 되도록 현재 세트 A를 위한 필요한 작용들을 위한, 1차 및 2차 백업들이 되는지를 결정할 책임을 진다. 백업 매니저(810)는 그 목적을 위해 그를 보조하는 제1 마스터 백업 모듈(830) 및 제2 마스터 백업 모듈(840)을 위한 펑션들을 관리 및 조화시킨다.
저널 매니저(890)는 단말 세트 A의 슬레이브들(즉, 예시되어 있지 않지만 그 소유의 피어 백업 모듈(160)의 예들을 가지는 단말 세트들 B 및 C) 각각에 의해 유지되는 "샤도우" 데이터베이스들을 마스터 데이터베이스(855)(현재 단말 세트 A의 설정들에 관한 데이터를 포함)와 동기시킬 책임을 갖는다. 샤도우 데이터베이스들은 마스터가 비가용할 때, 마스터를 에뮬레이팅하는 목적들을 위해 슬레이브들에 의해 유지되는 마스터 단말 세트들의 사본들이다. 또한, 저널 매니저(890)는 A가 슬레이브로서 작용하는 각 마스터 단말 세트의 데이터베이스들의 사본(즉, 단말 세트들 B 및 C의 마스터 데이터베이스의 사본들)들을 나타내는 현재 단말 세트 A에 의해 유지되는 한 쌍의 샤도우 데이터베이스(815 및 828)를 동기화시킬 책임을 갖는다. 블록들(854, 814 및 824)은 각각의 데이터베이스들(855, 815 및 828)을 억세스하는 데이터베이스 모듈들을 나타낸다.
도 8의 나머지 블록들은 단말 세트들 B 및 C에 대한 슬레이브로서의 그 역할 또는 마스터 단말 세트로서의 단말 세트 A의 역할 중 어느 하나에 관련한다. 이들은 순차적으로 설명될 것이다.
마스터 단말 세트로서의 단말 세트 A에 관련한 블록들
마스터 백업 모듈(830)은 단말 세트 A를 위한 제1 슬레이브(예로서, 단말 세트 B)을 형성하거나, 그 슬레이브를 제거할 목적을 위해 다른 단말 세트와 현재 단말 세트(A)의 마스터측 상호작용을 관장하는 스레드이다. 모듈(830)의 동작을 보다 상세히 후술한다. 마스터 백업 모듈(840)은 단말 세트 A를 위한 제2 슬레이브(예로서, 단말 세트 C)를 형성하거나, 그 슬레이브를 제거할 목적들을 위한 마스터측 상호작용을 관장하는 것을 제외하면, 모듈(830)과 유사하다.
로컬 저널 모듈(850)은 로컬 저널(851)에 대한 억세스를 제공한다. 로컬 저널(851)은 마스터 데이터베이스(855)에 최근에 발생된 변경들의 세트를 나타낸다(즉, 현재 단말 세트 A의 구성에 대한 최근의 변경들). 이런 변경들은 슬레이브 단말 세트들(B 및 C)에 보고를 위해 추적된다.
업저버(890)는 저널 매니저(880)가 슬레이브 단말 세트들(B 및 C)로의 변경들의 전파를 조화시키도록, 변경들에 대하여 로컬 저널(851)을 감시하고, 변경이 검출된 저널 매니저(880)를 표시할 책임을 갖는다. 저널 매니저(880)는 예로서, 보고할 변경들이 존재하는지 여부를 업저버 모듈(890)로 주기적으로 확인하고, 보고할 변경들이 존재하는 경우, 이 변경들을 네트워크(30)상에서 전송되는 메시지들에 의해 백업 단말 세트들(B 및 C)에게 보고한다(도 1).
슬레이브 단말 세트로서의 단말 세트 A에 관련한 블록들
슬레이브 모듈(811)은 다른 단말 세트(예로서, 단말세트 B)를 위한 슬레이브(1차 또는 2차 중 어느 하나)로서 단말 세트 A을 형성 또는 슬레이브로서 제거하는 목적들을 위해 다른 단말 세트와의 현재 단말 세트 A의 슬레이브측 상호 작용을 관장하는 스레드이다. 슬레이브 모듈(811)의 동작을 보다 상세히 후술한다. 2차 슬레이브 모듈(821)은 다른 단말 세트(예로서, 단말 세트 C)를 위한 슬레이브(1차 또는 2차 중 어느 하나)로서 단말 세트 A를 형성하고, 슬레이브로서 제거하는 목적들을 위한 슬레이브측 상호작용을 관장하는 것을 제외하면 모듈(811)과 유사하다.
샤도우 데이터베이스들(815, 828)은 A가 슬레이브로서 작용하는 각 마스터 단말 세트의 데이터베이스들의 사본들(즉, 단말 세트들 B 및 C의 마스터 데이터베이스들의 사본들)을 나타낸다. 제1 데이터베이스(815)는 단말 세트 B가 가용하지 않을 때, 단말 세트 B를 에뮬레이팅할 수 있게 하도록 단말 세트 A에 의해 사용된다(본 예의 목적상, 단말 세트 A는 단말 세트 B를 위한 1차 슬레이브인 것으로 가정된다). 백업 데이터베이스(815)에 저장된 정보의 예들은 예로서, 단말 세트 B의 사용자 옵션들 및 스피드 다이얼 설정들을 포함한다. 제2 데이터베이스(828)는 데이터베이스(815)와 유사하지만, 필요시 단말 세트 C(본 예에서는 그 2차 백업으로서 단말 세트 A를 선택한 것으로 가정됨)를 에뮬레이팅하기 위해 사용된다.
단말 세트 A가 (비가용 상태의) 마스터 단말 세트 B의 역할을 맡는 경우(즉, 백업으로서 "활성화되는" 경우), 업저버 모듈(860)은 가용하지 않은 마스터의 샤도우 데이터베이스(815)에 대한 변경들을 나타내는 변경들에 대하여 모듈(816)을 경 유하여 로컬 저널(825)을 감시하고, 변경이 검출된 저널 매니저(880)를 표시할 책임을 갖는다. 변경이 검출되는 경우, 저널 매니저(880)는 동일한 비가용 상태의 마스터를 위해 존재할 수 있는 어떤 다른 슬레이브에게로의 변경의 전파를 조화시킨다. 다른 슬레이브들의 신분은 예로서, 로컬 라우팅 테이블(200)(도 5)의 검사를 통해 얻어질 수 있다. 또한, 저널 매니저(880)는 다시 가용해진 이후, 마스터 단말 세트 B로의 변경의 전파를 조화시킨다.
도 8에서, 단 하나의 데이터베이스 및 하나의 저널만이 마스터 및 두 개의 슬레이브들 각각을 위해 도시되어 있다. 그러나, 본 발명의 일부 실시예들에서, 마스터 및 슬레이브들 각각을 위한 복수의 데이터베이스들 및 저널들이 존재한다는 것을 이해하여야 한다.
모듈들(821, 824, 826, 828, 838 및 870)은 그들이 단말 세트 A가 백업으로서 작용하는 다른 마스터 단말 세트(즉, 단말 세트 C)에 관련한다는 것을 제외하면, 모듈들(811, 814, 815, 825 및 860)과 (각각)유사하다.
저널 매니저(880)는 보고 대상 변경들이 존재하는지 여부를 업저버 모듈들(860, 870)로 주기적으로 확인하고, 보고 대상 변경들이 존재하는 경우, 적절한 마스터 단말 세트(B 또는 C)에게 변경들을 보고한다(730).
DN(210)을 가지는 새로운 단말 세트(100-10)가 시스템(10)(도 1)의 서브-네트워크(16)에 연결되는 경우, 1차 및 2차 백업 단말 세트들이 새로운 단말 세트를 위해 제공되는 것이 바람직하다. 그러나, 단말 세트들(100-1 내지 100-9)을 위한 정상 상태 조건에서, 새로운 단말 세트를 위한 백업으로서의 기능을 위해 어떠한 단말 세트들도 가용하지 않다. 특히, 보다 신뢰적인 서브 네트워크(18)내의 어떠한 단말 세트들(이들은 그 우월한 신뢰성으로 인해 백업들로서 바람직함)도 새로운 단말 세트를 위한 백업으로서의 기능을 위해 가용하지 않다.
이 경우에, 새로운 단말 세트(100-10)는 2차 백업들로서 현재 작용하는 어떤 단말 세트들이 네트워크 클래스 1(즉, 가장 신뢰적인)에 있는지 여부를 결정하기 위해, 라우팅 테이블(200)(이는 피어 발견 동작을 통한 네트워크에 대한 그 연결시 구성됨)의 컬럼(270)을 검사할 수 있다. 그 라우팅 테이블(200)이 도 5의 예시적 라우팅 테이블(200)에 나타난 정보를 반영하는 것으로 가정하면, 이 검사는 예로서, 단말 세트들(100-8 및 100-9)이 이 범주에 든다는 것을 밝혀낸다.
이 경우에, 새로운 단말 세트는 그 백업들로서(예로서, 각각 단말 세트들 100-2 및 100-5를 위한) 현재 단말 세트들 100-8 및 100-9를 가지는 마스터 단말 세트들에게 점유 메시지를 전송하여, 마스터 단말 세트들 각각에게 그 2차 백업을 넘겨줄 것을 요청할 수 있다. 그후, 새로운 단말 세트(100-10)는 단말 세트 100-8에게 메시지를 전송하여, 단말 세트 100-10을 위한 1차 백업이 될 것을 요청한다. 유사하게, 새로운 단말 세트(100-10은 단말 세트 100-9에 메시지를 전송하여, 단말 세트 100-10을 위한 2차 백업이 될 것을 요청할 수 있다.
후속하여, 점유의 결과로서 각각 그 2차 백업을 소실한 단말 세트들(100-2 및 100-5)은 각각 메시지를 새로운 단말(100-10)에 전송하여 그 2차 백업이 되기를 요청할 수 있다.
도 9는 도 9의 마스터 백업 모듈(830)을 보다 상세히 예시한다. 마스터 백업 모듈(830)은 단일 백업 단말 세트를 할당, 할당 해제 및 점유하기 위한 마스터 단말 세트의 동작을 관장하는 상태 기계를 구성한다는 것을 인지하여야 한다. 따라서, 각 단말 세트가 1차 및 2차 백업을 가지는 본 실시예에서, 마스터 백업 모듈의 제2 예(즉, 도 9의 모듈 840)도 제2 백업 단말 세트를 할당, 할당 해제 및 점유하기 위한 목적으로 존재한다. 도 9에 예시된 상태 기계는 상태들 사이의 플로우차트 단계들에 유사한 단계들을 통합하고 있으며, 따라서, 도 9는 플로우차트 및/또는 상태 기계의 형태로 고려될 수 있다는 것을 주의하여야 한다. 상태 기계는 마스터 단말 세트로서의 그 역량내에서 단말 세트 A에 의한 동작을 참조로 설명된다.
최초에, 단말 세트 A는 어떠한 백업도 할당받지 않은 유휴 상태(920)에 진입한다. 백업 추가를 위한 백업 매니저(810)로부터의 명령시(이는 백업 매니저(810)가 시동에 이어, 네트워크(30)에 대한 새로운 단말 세트의 추가에 이어, 네트워크(30)로부터의 현존하는 단말 세트의 제거에 이어, 또는, 현존하는 단말 세트의 가용 상태로의 복귀에 이어 그 슬레이브 관계를 검사한 이후에, 발생할 수 있음), 생성 요청 메시지가 단말 세트 A를 위한 백업의 역할을 맡도록 이에 요청하기 위해 예측 단말 세트(934)에게 전송된다. 그후, 단말 세트 A는 "생성" 상태(940)와 연계된 예측 백업 단말 세트로부터의 긍정적 생성 응답 메시지를 기다리며, 이는 단말 세트 A를 위한 백업의 역할을 맡는 것에 대한 예측 백업의 의지를 반영한다. 긍정적 생성 응답 메시지를 백업 단말 세트로부터 수신하였을 때, 백업 단말 세트는 로컬 저널 모듈(850)에 의해 유지되는 로컬 저널들에 업저버로서 추가된다(944). 즉, 생성 응답 메시지는 블록(810)에 도달하고, 처리를 위해 블록(830 또는 840)으로 라우팅된다(이 특정 슬레이브와의 관계를 유지하면서). 슬레이브 단말은 마스터의 데이터베이스(855)에 대한 업저버(890)가 되며, 로컬 저널 모듈(850)에 의해 유지된다. 이는 슬레이브가 이제, 로컬 데이터베이스에 대한 변경들을 통지받는다는 것을 의미한다. 그후, 단말 세트 A는 활성 상태(950)에 진입하며, 여기서, 백업이 이제 할당된다.
백업 단말 세트들로서 가용한 단말세트들이 존재하지 않는 경우, 다른 단말 세트가 그 백업들 중 하나를 양도하게 하는 동작을 트리거링할 목적으로, 백업 매니저(810)에 의해 점유 이벤트가 개시된다. 이 경우에, 현재 단말 세트(세트 A)는 그 백업들 중 하나를 넘겨주도록 다른 마스터 단말 세트(이는 상술된 바와 같이 최고 신뢰성의 2차 백업을 가지는 것으로서 식별될 수 있음)에게 점유 메시지를 전송한다(924). 단말 세트 A는 그후, 백업 단말 세트가 양도되었다는 것을 나타내는 다른 마스터 단말 세트로부터의 긍정적 점유 응답을 기다린다(930).
그후, 단말 세트 A는 상술된 바와 같이, 934에서 시작하는 동작을 진행하며, 활성 상태(950)로의 전이를 초래하고, 여기서, 양도된 백업은 현재 단말 세트에 할당되어 있다.
상태 950에서, 예로서, 마스터 단말 세트가 네트워크로부터 제거되어, 백업 매니저(810)가 마스터 단말 세트로부터 할당된 백업 단말 세트의 할당 해제를 개시하는 경우에, 백업 단말 세트는 로컬 저널 모듈(850)에 의해 유지된 저널들의 업저버로서 제거된다(956). 이 시나리오에서, 백업 매니저(810)는 로컬 단말 세트가 네트워크로부터 제거된다는 것을 백업 마스터(830)에게 알린다. 백업 마스터(830)는 그후, 슬레이브에 삭제 요청을 전송한다. 삭제 응답의 수신시, 마스터 데이터베이스(855)의 업저버 엔트리(890)가 제거되고, 더 이상 로컬 저널 모듈(850)에 의해 감시되지 않는다. 마스터 단말 세트 A는 그후, 단말 세트 A를 위한 백업으로서 더 이상 필요하지 않다는 것을 백업에게 명령하는 백업 삭제 요청을 백업에게 전송한다(958). 그후, 단말 세트 A는 유휴 상태(920)로 복귀하기 이전에, 백업 단말 세트가 그 라우팅 테이블(200)로부터 마스터로서 단말 세트 A에 대한 모든 참조들을 제거하였다는 것을 나타내는 긍정적 삭제 응답을 기다린다(970).
대안적으로, 상태 950으로부터, 단말 세트 A가 그 백업들 중 하나를 양도할 것을 요청하는 점유 요청이 다른 단말 세트로부터 수신되는 경우, 백업 매니저(810)는 로컬 저널 모듈(850)에 의해 유지되는 저널들의 업저버로서 그 백업 B를 제거하기 위한 삭제 요청 이벤트를 개시한다(952). 백업 매니저(810)는 처리를 위해 백업 마스터(830)에게 점유 요청을 라우팅한다. 즉, 마스터 백업 모듈(830)은 그후, 슬레이브에 대해 삭제 요청을 개시한다. 삭제 요청의 수신시, 마스터 데이터베이스(854)의 업저버 엔트리(890)는 제거되며, 더 이상 로컬 저널 모듈(850)에 의해 감시되지 않는다. 그후, 단말 세트 A는 백업 B에게 백업 삭제 요청을 전송하여, 백업 B에게, 그것이 점유되었다는 것을 나타낸다(954). 그후, 단말 세트 A는 백업 단말 세트 B가 마스터 단말 세트로서 세트 A에 대한 모든 참조들을 제거하였다는 것을 나타내는 긍정적 삭제 응답을 기다린다(상태 960). 백업 B로부터의 긍정적 삭제 응답의 수신시, 단말 세트 A는 점유 이벤트가 개시되었다는 긍정적 점유 응답을 단말 세트에게 전송한다(단계 964). 그후, 단말 세트 A는 유휴 상태(920)로 복귀한 다.
도 10은 도 8의 슬레이브 모듈(811)을 보다 상세히 예시한다. 슬레이브 모듈(811)은 제1 마스터에 대한 백업으로서의 그 할당 및 할당 해제를 실행하기 위한 단말 세트 A의 슬레이브측 동작을 관장하는 상태 기계를 구성한다. 슬레이브 모듈(즉, 도 8의 모듈 821)의 제2 예는 또한 제2 마스터에 대한 백업으로서 단말 세트 A의 할당 및 할당 해제의 목적들을 위해 존재한다. 도 10의 모듈(811)은 상태 기계 상태들 사이의 플로우차트 단계들과 유사한 단계들을 포함하며, 따라서, 도 10은 플로우차트 및/또는 상태 기계의 형태로 고려될 수 있다는 것을 주의하여야 한다. 도 10은 단말 세트 B에 대한 백업으로서 할당 및 할당해제되는 단말 세트 A의 견지에서 설명된다.
최초에, 모듈(811)은 단말 세트 A가 아직 백업으로서 할당되어 있지 않다는 것을 나타내는 유휴 상태(1020)에 있다. 단말 세트 B가 단말 세트 A를 그 백업으로서 원할 때, 이는 단말 세트 A에 생성 요청 메시지를 전송한다. 단말 세트 A에서의 생성 요청 메시지의 수신시, 단말 세트 A의 백업 매니저(810)는 세트 B의 비가용 상태시, 세트 B의 역할을 맡는 단말 세트 A에 의한 사용을 위해, 예측 마스터 단말 세트 B로부터 정보를 수신하도록 샤도우 데이터베이스(815)를 생성하는 프로세스를 개시한다(1022). 또한, 백업 매니저(810)는 비가용 마스터의 샤도우 데이터베이스(815)에 대한 어떤 변경들의 추적시 사용하기 위해, 백업 데이터베이스(815)를 위한 저널(825)을 생성하는 프로세스를 개시한다(1024). 그후 단말 세트 A는 요청이 이행되었다는 것을 나타내는 생성 응답 OK 메시지로 단말 세트 B에게 응답하 며(1026), 마스터 단말 세트 B를 위한 백업으로서 할당되어 있는 활성 상태(1030)에 진입한다.
마스터 단말 세트 B가 추후 그 백업으로서의 단말 세트 A를 제거하기를 원하는 경우, 이는 삭제 요청을 단말 세트 A에 전송한다. 단말 세트 B로부터의 삭제 요청의 수신시, 단말 세트 A의 백업 매니저는 각각 1022 및 1024에서 생성되었던 백업 데이터베이스(815) 및 저널(825)의 제거를 개시한다(1034). 그후, 단말 세트 A는 백업으로서 할당 해제되어 있는 유휴 상태(1020)로 복귀하기 이전에, 삭제 요청이 성공적이라는 것을 나타내는 삭제 OK 응답을 마스터 단말 세트 B에게 전송한다(1038).
도 11은 백업으로서 할당된 단말 세트에서의 저널 매니저(880)의 동작을 관장하는 상태 기계/플로우차트이다. 도 11은 단말 세트들 B 및 C 각각을 위한 백업으로서 기능하는 것으로 가정되는 단말 세트 A의 견지로부터 설명된다.
최초에, 단말 세트 A의 저널 매니저(880)는 저널 변경 상태에 대한 대기에 진입한다. 그 백업들 B 또는 C 중 어느 하나로부터 갱신의 수신시(즉, 예로서, 단말 세트 구성에 대한 사용자 지정 변경으로 인하여, 마스터 단말 세트 B 또는 C 중 어느 한쪽에서의 마스터의 데이터에 대한 변경의 지시를 수신시), 샤도우 데이터베이스들(815, 828)(도 8) 중 적절한 하나가 갱신된다. 저널 매니저(880)는 그후, ACK 메시지로 갱신을 전송한 마스터 단말 세트에게 응답하고(1124), 저널 변경 상태를 위한 대기(1120)로 복귀한다.
저널 매니저(880)가 마스터 데이터베이스(855)가 변경되었다는 지시(이 변경 은 슬레이브들로 전파되어야 함)를 로컬 저널 모듈(850)로부터(업저버 890을 경유하여) 수신하는 경우, 타이머가 시동되고(1126), 저널 매니저(880)는 활성 상태(1130)에 진입한다. 타이머는 전송되어야할 어떤 데이터가 존재하는 경우를 점검하기 위해 사용된다. 즉, 저널 매니저(880)는 주기적으로 업저버(890)를 폴링한다(타이머의 만기는 도 14의 동작(1452)에 대응함). 대안적 실시예는 폴링 대신, 비동기 통지를 사용할 수 있다는 것을 이해하여야 한다. 활성 상태(1130)에서, 타이머가 만료하고 나면, 저널 매니저(880)는 업저버 모듈(890)로, 백업 단말 세트들 B 및 C에 전송될 변경들이 존재한다는 것을 확인한다(1136). 전송될 변경들이 존재하는 경우, 그후, 변경들이 단말 세트들 B 및 C 양자 모두에 전송된다(1138). 타이머는 그후, 리셋 및 시동되고(1140), 마스터 단말은 활성 상태(1130)로 복귀한다.
1136에서, 백업 단말 세트 B 및 C에 전송될 변경들이 존재하지 않는 경우, 그후, 저널 매니저(880)는 저널 변경 상태를 위한 대기로 복귀한다(1120). 상태 1130으로부터, 저널 매니저(880)가 1138에서 전송된 변경들에 응답하여 각 백업 단말 세트로부터 ACK 메시지를 수신하는 경우, 변경은 보고 대상 변경들의 목록으로부터 제거되고, 저널 매니저(880)는 활성 상태(1130)로 복귀한다.
활성 상태(1130)에 있는 동안, 변경의 지시가 단말 세트들(B 또는 C) 중 어느 하나로부터 수신될 때, 샤도우 데이터베이스들(815, 828) 중 적절한 하나가 갱신되고(1132), 그후, 저널 매니저(880)는 ACK 메시지로 단말 세트들(B 및 C) 중 각각의 하나에 응답한다. 백업 단말 세트 저널 매니저는 그후 활성 상태(1130)로 복귀한다.
도 12는 마스터에 백업 단말 세트를 할당하고, 마스터로부터 백업 단말 세트를 할당해제하기 위한 마스터 단말 세트와 백업 단말 세트 사이의 신호들의 순서도를 예시한다. 도 12는 단말 세트 A가 마스터 단말 세트이고, 단말 세트 B는 백업 단말 세트라는 것을 가정하여 설명된다. 도 12의 설명에서, 각각 마스터 단말 세트(A)와 백업 단말 세트(B)에서 동작하는 모듈들(830 및 811)을 예시하는 도 9 및 도 10을 참조한다.
단말 세트 B가 그 백업 단말 세트로서 할당되게 하기 위해, 단말 세트 A는 단말 세트 B에 백업 생성 요청(1210)을 전송한다(도 9의 934). 이 메시지는 단말 세트 B에게 단말 세트 A를 위한 백업 세트가 될 것을 명령하며, 추가로, 단말 세트 B에서, 단말 세트 A를 위한 데이터베이스(815), 저널(825) 및 업저버(860)의 생성을 초래한다. 백업으로서 작용할 수 있는 것으로 가정하면, 단말 세트 B는 긍정적 백업 생성 응답(1220)으로 응답한다(도 10의 1026).긍정적 백업 생성 응답(1220)의 수신시, 단말 세트 A는 단말 세트 B를 업저버(890)로서 단말 세트 A에서 로컬 저널 모듈(850)에 의해 유지되는 로컬 저널들(851)에 추가한다(도 9의 944). 이 스테이지에서, 단말 세트 B는 단말 세트 A를 위한 백업이 된다. 따라서, 단말 세트 A는 활성 상태(950)에 있게 되고(도 9), 단말 세트 B는 활성 상태(1030)에 있게 된다(도 10).
도 12를 다시 참조하면, 일정 추후 시간에, 단말 세트 B가 더 이상 단말 A를 위한 백업으로서 필요하지 않은 경우, 단말 세트 A는 백업 삭제 요청(1230)을 단말 세트 B에 전송한다(도 9의 958). 백업 삭제 요청(1230)의 수신시, 단말 세트 B는 단말 세트 A와 연계된 모든 데이터베이스들 및 저널들을 삭제하고(도 10의 1034), 이 것이 성공적이면, 긍정적 백업 삭제 응답(1240)으로 응답한다(도 10의 1038). 이 스테이지에서, 단말 세트 B는 더 이상 단말 세트 A를 위한 백업이 아니며, 따라서, 단말 세트 A는 유휴 상태(920)에 있게 되고(도 9), 단말 세트 B는 유휴 상태(1020)에 있게 된다(도 10).
도 13은 다른 마스터 단말 세트의 백업 단말 세트 할당을 점유하는 마스터 단말 세트를 위한 순서도를 예시한다. 예시적 실시예로서, 도 13에서, 단말 세트 A는 최초에 백업 단말 세트로서 단말 세트 C를 갖는 것으로 가정되며, 단말 세트 B는 단말 세트 C를 그 백업 단말 세트로서 취득하기 위한 단계들을 취하는 것으로 가정된다. 도 13의 설명에서, 단말 세트 A에서의 모듈(830)(및/또는 840)의 동작을 예시하는 도 9 및 단말 세트들 B 및 C 각각에서 모듈(811)(및/또는 821)의 동작을 예시하는 도 10)을 참조한다.
최초에, 백업 생성 요청 및 백업 생성 응답 메시지들(1310 및 1320)이 단말 세트 A를 위한 백업으로서 단말 세트 C가 할당되게 하도록 도 12에 관하여 상술된 방식으로 단말 세트들(A 및 C) 사이에서 교환되는 것으로 가정한다.
일정 추후 시간에, 단말 세트 C를 그 백업으로서 취득하기를 원하는 단말 세트 B가 단말 세트 A에 점유 요청(1330)을 전송한다(도 9의 924). 점유 요청(1330)의 수신시, 단말 세트 A는 상술한 바와 같이 단말 세트 C와 백업 삭제 요청 및 백업 삭제 응답 메시지들(1340 및 1350)을 교환함으로써(도 9의 954 및 도 10의 1038 참조),단말 세트 C가 그 백업 단말 세트로서 할당 해제되게 한다. 긍정적 백업 삭 제 응답(1350)의 수신시, 단말 세트 A는 단말 세트 B에 긍정적 점유 응답(1360)을 전송하여, 단말 세트 C가 이제 백업으로서 가용하다는 것을 나타낸다. 단말 세트 B는 그후, 상술된 바와 같이 단말 세트 C와 백업 생성 요청 및 백업 생성 응답 메시지들(1370 및 1380)을 교환하여, 단말 세트 C가 단말 세트 B를 위한 백업이 되게 한다.
도 14는 어플리케이션이 초기화될 때, 단말 세트 B를 위한 마스터 단말 세트로서의 그 역할시 단말 세트 A에 의한 메시징을 위한 순서도를 예시한다. 도 14에서, 백업 단말 세트에 대하여, 음성 사서함 모듈(80)의 일부를 형성하는 음성 사서함 어플리케이션을 백업하는 것이 필요한 예시적 실시예에 대하여, 단말 세트 A에 의해 이어지는 프로세스가 도시되어 있다. 그러나, 본 발명은 음성 사서함 어플리케이션들의 백업에 제한되는 것은 아니다. 또한, 이는 예로서, 인입 호가 취급되는 방식을 통제하는 "호 제어" 어플리케이션들을 위해 예로서, 사용자 선호도들 및 스피드 다이얼을 백업하기 위해 사용될 수도 있다.
음성 사서함 모듈(80)내의 어플리케이션이 초기화될 때, 음성 사서함 모듈(80)은 신호(1410)로 도시된 바와 같이 데이터베이스를 생성한다(대안 실시예에서, 하나 이상의 데이터베이스가 생성될 수 있다)(예로서, 높은 우선순위의 메시지들 대 표준 우선순위의 메시지들 같은 우선순위에 의해 음성 사서함 데이터를 연결 해제하도록 다수의 데이터베이스들이 사용될 수 있음). 데이터베이스가 다른 단말 세트(단말 세트 B)상에서 백업되는 것이 바람직하기 때문에, 어플리케이션은 데이터베이스 ID를 포함하는 백업 DB 메시지(1412)를 단말 A의 피어 백업 모듈(160)의 백업 매니저(810)에게 전송한다. 백업 DB 메시지(1412)의 수신시, 백업 매니저(810)는 로컬 저널 모듈(850)에 신호(1414)를 전송하여, 음성 사서함 어플리케이션을 위한 로컬 저널을 생성한다. 저널은 데이터베이스에 최근에 발생된 변경들의 세트를 나타낸다. 순차적으로, 로컬 저널 모듈(850)은 메시지(1416)를 데이터베이스에 전송하여, 업저버로서 로컬 저널 모듈(850)을 추가하고, 업저버를 그 목록(1418)에 추가한다. 업저버의 목적은 데이터베이스내의 변경들을 추적하는 것이다. 백업 매니저(810)는 단말 세트 B상에 저널을 위한 업저버를 할당하고, 데이터베이스 및 저널을 생성할 것을 마스터 백업 모듈(830)에게 요청하는 백업 생성 메시지(1420)를 마스터 백업 모듈(830)에 전송한다. 도 14에서, 명료성의 목적을 위해, 백업 생성 메시지(1420)를 통해 이루어진 요청은 단지 마스터 백업 모듈(830)로만 전송되는 것으로 도시되어 있지만, 데이터베이스 및 저널을 생성하고, 단말 세트 C상에 저널을 위한 업저버를 할당하는 것에 관한 유사한 요청이 마스터 백업 모듈(840)에 대하여 이루어진다는 것을 이해하여야 한다.
마스터 백업 모듈(830)은 단말 세트 B에 요청(1424)을 전송하여, 어플리케이션을 위한 백업 단말 세트(단말 세트 B)에서 데이터베이스 및 저널을 생성하고, 단말 세트 B에서의 저널을 위해 단말 세트 B에 업저버를 할당할 것을 단말 세트 B에 명령한다. 단말 세트 B는 긍정적 백업 생성 응답(1430)으로 응답하여 B가 백업이 되는 것에 동의하고, 적절한 저널 엔트리들이 생성되었다는 것을 나타낸다. 그후, 마스터 백업 모듈(830)은 백업 등록 메시지(1432)를 백업 매니저(810)에 전송하여 백업 매니저(810)가 단말 세트 B를 백업 단말 세트로서 등록할 것을 요청한다. 그 후, 백업 매니저(810)는 신호(1434)를 전송하여, 로컬 저널 모듈(850)에게 단말 세트 B를 업저버로서 추가할 것을 요청한다. 로컬 저널 모듈(850)은 그후 단말 세트 B를 위한 업저버(단말 세트 A에)를 생성하도록 업저버 모듈(890)에 업저버 생성 메시지(1436)를 전송한다. 로컬 저널 모듈(850)은 음성 사서함 모듈(80)의 데이터베이스로부터 레코드들을 검색하기 위해 음성 사서함 모듈(80)에 신호(1438)를 전송한다. 그후, 로컬 저널 모듈(850)은 업저버 모듈(890)에 신호(1440)를 전송하여, 이 어플리케이션을 위한 변경 목록(즉, 주어진 백업에 전송될 필요가 있는 데이터베이스에 대한 변경들의 세트)에 로컬 저널 모듈(850)에 의해 유지되는 로컬 저널들내에서 검색된 레코드들을 나타내는 엔트리들을 추가할 것을 업저버 모듈(890)에 명령한다.
추후 시간에, 저널 매니저(880)는 변경 목록 취득 메시지(1442)를 업저버 모듈(730)에 전송하여(예로서, 디바이스가 비가용 주기 이후에 다시 가용해졌을 때), 업저버 모듈(890)로부터 어플리케이션을 위한 변경 목록을 검색한다. 그후, 저널 매니저(880)는 단말 세트 B에 갱신 요청 메시지(1444)를 전송하여 단말 세트 B에게 이 어플리케이션을 위한 각 데이터베이스를 갱신할 것을 명령한다.
도 14에 도시된 바와 같이, 음성 사서함 어플리케이션이 새로운 데이터를 생성할 때(예로서, 호출자에 의해 음성 사서함 메시지가 남겨진 이후), 데이터는 시그널링(1446)을 통해 음성 사서함 모듈(80)의 데이터베이스에 추가 또는 변경된다. 순차적으로, 새로운 데이터의 생성은 음성 사서함 모듈(80)의 데이터베이스가 음성 사서함 모듈(80)내의 데이터베이스로부터 새로운 데이터를 포함하는 DB 변경 갱신 들(1448)을 로컬 저널 모듈(850)에 신호하게 한다. 응답하여, 로컬 저널 모듈(850)은 새로운 데이터를 어플리케이션을 위한 로컬 저널에 추가하고, 메시지(1450)를 업저버 모듈(890)에 전송하여, 업저버 모듈(890)에게 어플리케이션을 위한 변경 목록을 갱신할 것을 명령한다. 추후 시간에, 저널 매니저(880)는 변경 목록 취득 메시지(1452)를 업저버 모듈(890)에 전송하여, 업저버 모듈(890)로부터 어플리케이션을 위한 변경 목록을 검색한다. 그후, 저널 매니저(880)는 단말 세트 B에 갱신 요청 메시지(1454)를 전송하여 단말 세트 B에게 이 어플리케이션을 위한 대응 데이터베이스를 갱신할 것을 명령한다.
도 15는 다른 단말 세트를 위한 백업이 될 때, 백업 단말 세트에서의 메시징을 도시하는 순서도를 예시한다. 본 예에서, 동작은 단말 세트 B에서 설명되며, 그 이유는 이것이 단말 세트 A를 위한 백업의 역할을 맡기 때문이다.
초기에, 세트 A의 백업으로서 동작하도록 단말 세트 B를 위한 요청을 구성하는 마스터 단말 세트 A로부터 단말 세트 B가 백업 생성 요청(1510)을 수신한다. 단말 세트 A에서 백업 매니저(810)는 백업 데이터베이스(즉, 샤도우 데이터베이스) 생성 메시지(1520)를 데이터베이스 모듈(814)(또한, 슬레이브 단말 세트 B에 있음)에 전송하여 마스터상에서 운영되는 어플리케이션, 예로서, 음성 메일 어플리케이션으로부터의 데이터를 위한 데이터베이스를 생성한다. 백업 매니저(810)는 그후, 저널 모듈(816)(모두 단말 세트 B내에 있음)에 백업 저널 생성 메시지(1522)를 전송하여 백업 저널 모듈(816)에게 단말 세트 B상에서 운영되는 어플리케이션을 위한 백업 저널(825)을 생성할 것을 명령한다. 또한, 단말 세트 B의 백업 매니저(810)는 백업 데이터베이스에 업저버로서 단말 세트 A를 추가할 것을 저널 모듈에게 명령하는 메시지(1524)를 저널 모듈(816)에게 전송한다. 부가적으로, 단말 세트 A의 다른 백업 단말 세트(즉, 제2 슬레이브)가 백업 데이터베이스에 업저버로서 추가된다.
그후, 백업 저널 모듈(816)은 업저버 모듈(860)에 생성 신호(1530)를 전송하여 백업 단말 세트에서의 마스터 단말 세트의 어플리케이션 운영을 위한 업저버를 생성할 것을 업저버 모듈에게 명령한다. 그후, 단말 세트 B의 백업 매니저(810)는 마스터 단말 세트 A에게 백업 생성 응답 OK 메시지(1540)를 개시하여 단말 세트 B가이제 단말 세트 A를 위한 백업으로서 할당되었다는 것을 나타낸다. 이 메시지는 데이터베이스, 백업 저널 및 업저버가 마스터 단말 세트 A상에서 운영되는 어플리케이션을 위해 생성되었다는 것을 확인한다.
추후 시간에, 마스터 단말 세트 A는 단말 세트 B의 저널 매니저(880)에 의해 수신되는 저널 갱신 요청(1550)을 백업 단말 세트 B에 전송한다. 단말 세트 B의 저널 매니저(880)는 단말 세트 B상의 어플리케이션을 위해 생성되었던 백업 데이터베이스(815)를 유지하는 단말 세트 B의 백업 데이터베이스 모듈(814)에 갱신 메시지를 전송한다.
도 16은 백업의 마스터 단말 세트가 비가용할 때, 백업 단말 세트에서의 순서도를 예시한다. 본 예에서, 백업 단말 세트는 단말 세트 A가되는 것으로 가정되고, 마스터 단말 세트는 단말 세트 B가 되는 것으로 가정된다(도 6).
마스터 단말 세트 B가 호들을 수신하는 것이 가용하지 않을 때, 슬레이브 단말 세트 A의 저널 매니저(880)는 저널 매니저(880)가 마스터 단말 세트 B에B의 데 이터베이스의 A의 사본에 대한 로컬 변경들에 관한 갱신들을 전송할 수 없다는 것을 나타내는 메시지(1610)를 수신한다(예로서, 모든 피어들의 "업/다운" 상태를 감시하는 피어-투-피어 서브시스템 또는 모듈로부터). 마스터 단말 세트 B를 위한 호들은 1차 백업(단말 세트 A)에 안내된다. 예로서, 호를 개시하는 단말 세트의 피어-투-피어 서브 시스템은 세트 B가 다운일 때, 단말 세트 A에 단말 세트 B를 위한 호들을 전달하도록 그 "호 제어" 어플리케이션에 명령할 수 있다. 슬레이브 단말 세트 A의 어플리케이션이 마스터 단말 세트 B의 어플리케이션을 대신하여 운영되는 동안, 어플리케이션과 연계된 데이터베이스에 대한 변경이 발생할 때, 슬레이브 단말 세트 A에서 운영되는 어플리케이션은 에드 레코드 메시지(1620)를 백업 데이터베이스 모듈(814)에 전송하여 변경이 기록되는 것을 요청한다. 백업 데이터베이스 모듈(814)은 데이터베이스(815)의 변경들을 이행하고, 데이터베이스와 연계된 저널내의 변경들을 기록을 위해 백업 저널 모듈(816)에 통지한다(메시지 1630을 경유하여). 그후, 백업 저널 모듈은 업저버 모듈(860)에 변경 목록 메시지(1640)에 대한 추가를 전송한다.
도 17은 비가용 기간 이후 그 마스터 단말 세트가 가용해졌을 때, 백업 단말 세트를 위한 순서도를 예시한다. 하기의 도 17의 설명에서, 단말 세트 A는 마스터 단말 세트이고, 단말 세트 B는 백업 단말 세트인 것으로 가정된다.
단말 세트 A가 비가용 상태 이후, 호들을 수락할 수 있게 되었을 때, 피어 업 메시지(1710)가 백업 단말 세트 B의 저널 매니저(880)에 의해 수신된다(예로서, B의 피어들의 상태를 감시하는 세트 B의 로컬의 피어-투-피어 서브시스템 또는 모 듈로부터). 단말 세트 B의 저널 매니저(810)는 단말 세트 A가 비가용 상태인 동안 단말 세트 A의 정보(단말 세트 B의 샤도우 데이터베이스내의)에 대해 이루어진 변경들과 연계된 변경 목록의 검색을 위해, 변경 목록 취득 메시지(1720)를 단말 세트 B의 저널 업저버 모듈(860)에 전송한다. 저널 업저버 모듈(860)은 변경 목록을 메시지(1725)내에서 단말 세트 B의 저널 매니저(880)에게 포워딩한다. 그후, 저널 매니저(880)는 저널 갱신 요청(1730)을 개시하여 마스터 단말 세트 A에게 전송한다.
도 18은 백업이 할당된 이후 도 1의 전화 시스템(10)내의 착신 단말 세트에게 호를 개시하기 위한 동작의 플로우차트를 예시한다.
호의 발신자, 예로서, 네트워크(30)에 연결된 전화 단말 세트들 중 하나는 예로서, 발신자 단말 세트의 사용자에 의한 원하는 착신 세트의 DN의 엔트리에 응답하여, 네트워크(30)상의 다른 전화 단말에 대한 연결을 시도한다(600). 예로서, 착신 전화 세트가 네트워크로부터 연결 해제, 포트되어 있거나, 포트를 소실하였거나, 착신 세트의 호 처리 스레드들(72, 73, 74 및 75)(도 4) 모두가 사용중이기 때문에, 착신 단말 세트가 비가용 상태인 경우(605), 이때, 제1 백업이 그 로컬 라우팅 테이블(200)의 컬럼(260)으로부터 발신 전화 세트에 의해 식별된다.
컬럼들(220 또는 230) 중 하나로부터의 대응 착신 어드레스를 사용하여, 발신 단말 세트는 그후, 1차 백업 단말 세트(610)를 호출하기를 시도한다. 이 호가 실패하는 경우(즉, 1차 백업도 비가용한 경우), 그후, 비가용한 마스터를 위한 2차 백업 번호에 관한 정보가 라우팅 테이블(200)의 컬럼(270)으로부터 검색된다. 그 후, 호는 테이블(200)로부터 검색된 바와 같은 그 세트의 착신 어드레스를 사용하여 2차 백업 세트로 시도된다(620).
호가 시도되는 단말 세트는 수신 단말 세트가 호를 받을 수 있는 경우에 호가 답변되는 것을 신호하기 위해서만 울릴 수 있다. 어떤 다른 경우에, 호는 단순히, 연계된 단말 세트의 벨울림 없이, 호에 답변하는 단말의 음성 메일 모듈과 협력하는 호 처리 스레드에 의해서 처리될 수 있다.
일부 실시예들에서, 단말에 특정되지 않은 일반적 호 처리 기능이 제공된다. 일반적 호 처리는 예로서, 개인화된 인사 대신, 일반적 음성메일 인사(예로서, "이 집단은 사용할 수 없습니다. 메시지를 남겨 주세요")의 재생을 포함할 수 있다.
호가 목적하는 단말 세트 또는 그 단말 세트의 백업으로서 작용하는 단말 세트 중 어느 하나에 의해 호가 수신될 때, 단말 세트는 원하는 착신 전화 세트로의 호가 성공적으로 완료되었다는 것을 발신자에게 제시하는 방식으로 호를 수락한다. 이는 예로서, 원하는 단말 세트를 위한 개인화된 음성 메일 인사들의 재생 및 음성 메일 또는 호 포워딩을 취급하는 어떤 사용자 옵션들의 재생을 수반할 수 있다.
대조적으로, 일반적 호 처리 기능은 특정 단말이 그 단말 세트가 백업으로서 지정되어 있지 않은 단말 세트 대신 호를 수락할 수 있게 한다. 일반적 처리 기능들은 도 18에 예시되어 있다.
도 18에 나타난 바와 같이, 일반적 호 처리는 본 실시예에서, 모든 백업들(즉, 1차 및 2차 양자 모두)이 비가용 상태일 때 이루어진다. 630에서, 620에서 2차 백업(즉, "제2 레벨 백업")에 대하여 시도된 호가 실패하는 경우, 그후, 발신자 단말 세트는 선택적으로, 착신 단말 세트를 대신하여 호에 답변할 수 있다(630 및 640). 이는 발신 단말이 어떤 착신 단말 특정 호 처리 기능들을 갖지 않기 때문에, 일반적 방식으로 이루어질 필요가 있다. 일반적 호의 완료로부터 초래되는 어떤 데이터베이스 변경들은 표준 호 완료를 위한 바와 동일하게 처리된다. 즉, 저널 매니저(890)(도 8)에 의해 어떤 세트(들)로 전파된다.
일반적 호 처리가 가용하지 않은 실시예에서, 일반적 호 응답 대신, 백업 단말들 모두가 비가용한 경우 호출자에게 통화중 톤이 재생된다(660). 단계들 600, 610, 620의 어떤 시도들이 성공적인 경우, 그후, 호는 관련 세트에 의해 수락 및 처리된다(650).
본 기술의 숙련자가 인지할 수 있는 바와 같이, 상술된 실시예에 대한 변경들이 본 발명의 요지로부터 벗어나지 않고 이루어질 수 있다. 예로서, 비록, 설명된 실시예는 주로, 단말 세트들인 피어들을 언급하지만, 설명된 방법들이 네트워크 디바이스들의 다른 형태들 같은 단말 세트들 이외의 피어들에게 균등하게 적용가능하다는 것을 인지할 수 있을 것이다. 마찬가지로, 네트워크 디바이스들은 단지 LAN이 아니라, 어떤 형태의 네트워크에 의해 상호 연결될 수 있다. 또한, 비록, 피어 발견 설명이 디렉토리 번호들의 선택, 프로빙(probing) 및 주장에 관련하지만, 상술된 방법들은 디렉토리 번호들이 아닌 네트워크 어드레스들에 균등히 적용가능하다는 것을 알 수 있을 것이다.
백업 레벨들의 수(즉, 마스터당 백업들의 수)는 설명된 실시예의 두 개의 백업 레벨들과 다를 수 있다는 것을 알 수 있을 것이다. 일반적으로, N 백업 레벨들 까지가 존재할 수 있으며, 여기서, N은 1과 같거나 그 보다 큰 정수이다.
또한, 상술된 실시예의 단말 세트들은 각 단말 세트가 N회 백업으로서 작용하며, 자체가 N 백업들을 가진다는 개념에서 "대칭적"이지만, 이는 모든 실시예들에서 그러할 필요는 없다.
또한, 도 5에 도시된 라우팅 테이블(200)은 유지될 수 있는 정보의 유형의 매우 특정한 예라는 것도 인지하여야 한다. 대안 실시예들은 그 라우팅 테이블들내에 다른 정보를 포함할 수 있다. 예로서, 백업 단말 세트들은 MAC 어드레스에 의한 바 이외에 일부 방식으로 식별될 수 있다.
명백히, 본 발명은 다른 단말 세트들을 위해 백업 기능을 제공하는 단말 세트들에 제한되지 않는다는 것을 주의하여야 한다. 본 발명의 일부 실시예들에서, TTI 같은 다른 네트워크 디바이스들이 백업 기능을 제공하거나, 다른 네트워크 디바이스들로부터의 백업 기능으로부터 이득을 얻을 수 있다.
또한, 위에서 사용된 용어 "신뢰성"은 분산식 전화 시스템의 외부 연결(예로서, PSTN으로부터 호를 수신)을 신뢰성있게 형성하기 위한 단말 세트의 능력을 지칭하지만, 이 용어는 네트워크 디바이스들의 다른 유형들을 위해서는 다른 의미들을 가질 수 있다는 것을 인지하여야 한다. 일반적으로, 용어 "신뢰성"은 가능성이 네트워크 디바이스들 간에 변할 수 있는, 네트워크 디바이스가 원하는 임무를 완성하거나, 원하는 목적을 달성할 수 있는 가능성을 지칭한다.
마지막으로, 설명된 실시예들의 네트워크 디바이스들은 피어-투-피어 네트워크내의 피어들이지만, 이는 필수적인 것은 아니라는 것을 인지하여야 한다. 설명된 백업 접근법은 반드시 "피어-투-피어" 네트워크들로서 분류되지는 않는 네트워크들상의 반드시 "피어들"로서 분류되지는 않는 네트워크 디바이스들을 백업하기 위해 사용될 수 있다.
본 발명의 다수의 변형들 및 변용들이 상술한 교지들의 견지에서 이루어질 수 있다. 예로서, 본 발명의 실시예들은 상기 단말이 전화 단말 세트들인 것에 제한되지 않으며, 본 발명의 일부 실시예들에서, 단말 세트는 어떤 네트워크 통신 디바이스들일 수 있다. 따라서, 첨부된 청구범위의 범주내에서, 본 발명은 여기에 특정하게 설명된 바와는 다른 방식으로 실시될 수 있다는 것을 이해하여야 한다.

Claims (78)

  1. 복수의 네트워크 디바이스들 중 하나의 네트워크 디바이스에서,
    상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하는 단계로서, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하는 상기 선택 단계;
    상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하는 단계로서, 상기 통신된 정보는 상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 통신 단계; 및
    마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하는 단계로서, 상기 수신된 정보는 상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 수신 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 적어도 하나의 백업 네트워크 디바이스는 N 백업 디바이스들을 포함하고, 상기 적어도 하나의 마스터 네트워크 디바이스는 N 마스터 디바이스들을 포함하며, N은 1과 같거나 그 보다 큰 정수인, 방법.
  3. 제 2 항에 있어서, 상기 선택 단계는, 상기 하나의 네트워크 디바이스의 신뢰성 및 상기 N 백업 디바이스들 각각의 신뢰성에 기초하는, 방법.
  4. 제 3 항에 있어서, 상기 복수의 네트워크 디바이스들은 네트워크에 의해 상호 연결되며, 네트워크 디바이스의 신뢰성은 그 네트워크 디바이스가 상기 네트워크 외부의 디바이스와의 연결을 형성할 수 있는 가능성을 포함하는, 방법.
  5. 제 3 항에 있어서, 상기 선택 단계는,
    상기 복수의 네트워크 디바이스들을 예측 백업들의 M 풀들로 그룹화하는 단계로서, 예측 백업들의 풀내의 각 네트워크 디바이스는 동일한 신뢰성을 가지며, M은 1과 같거나 그 보다 큰 정수인, 상기 그룹화 단계;
    최고 신뢰성을 가지는 예측 백업들의 풀을 예측 백업들의 현재 풀로서 선택하는 단계;
    현재 백업 레벨을 제1 백업 레벨로 설정하는 단계로서, 상기 백업 레벨은, 백업 네트워크 디바이스가 할당된 특정 네트워크 디바이스의 비가용 상태시 뿐만 아니라, 보다 낮은 백업 레벨들에서 상기 특정 네트워크 디바이스에 백업 네트워크 디바이스들로서 할당된 모든 다른 네트워크 디바이스들의 비가용 상태시의 경우에, 상기 백업 네트워크 디바이스가 상기 다른 백업 네트워크 디바이스들에 관하여 상기 특정 네트워크 디바이스의 역할을 맡는 상대적 순서를 나타내는, 상기 설정 단 계; 및
    현재 백업 레벨에서, (a) 예측 백업들의 현재 풀내의 모든 네트워크 디바이스가 백업 네트워크 디바이스로 N회 할당되는 경우, 또는
    (b) 상기 복수의 네트워크 디바이스들 각각이 현재 백업 레벨에서 백업 네트워크 디바이스의 양수자인 경우 중 어느 하나까지, 어떠한 네트워크 디바이스도 현재 백업 레벨에서 하나 이상의 백업 네트워크 디바이스의 양수자가 되지 않도록 양수자 네트워크 디바이스들의 신뢰성이 증가하는 순서로, 예측 백업들의 현재 풀로부터의 네트워크 디바이스들을 상기 복수의 네트워크 디바이스들에 할당하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서, (a)의 발생시,
    신뢰성이 감소하는 순서로, 예측 백업들의 다른 풀을 예측 백업들의 현재 풀로서 선택하는 단계; 및
    상기 할당 단계를 반복하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 선택 단계 및 상기 반복 단계를 반복하는 단계를 더 포함하는 방법.
  8. 제 5 항에 있어서, (b)의 발생시,
    현재 백업 레벨이 N 보다 작은 경우, 현재 백업 레벨을 다음 백업 레벨로 증분시키는 단계; 및
    상기 할당 단계를 반복하는 단계를 더 포함하는 방법.
  9. 제 8 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 증분 단계 및 상기 반복 단계를 반복하는 단계를 더 포함하는 방법.
  10. 제 1 항에 있어서, 상기 하나의 네트워크 디바이스에서 상기 유지된 정보에 대한 변경 검출시, 상기 변경을 상기 N 백업 네트워크 디바이스들 각각에게 통신하는 단계를 더 포함하는 방법.
  11. 제 1 항에 있어서, 마스터 네트워크 디바이스로부터 수신된 정보에 대한 변경의 지시를 상기 마스터 네트워크 디바이스로부터 수신시, 상기 수신된 정보에 상기 변경을 통합시키는 단계를 더 포함하는 방법.
  12. 제 5 항에 있어서, 마스터 네트워크 디바이스의 비가용 상태 검출시, 상기 마스터 네트워크 디바이스의 역할을 맡는 단계를 더 포함하는 방법.
  13. 제 12 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡는 단계는, 상기 하나의 네트워크 디바이스 보다 낮은 백업 레벨에서 동일한 마스터 네트워크 디바이스에 대한 백업으로서 할당된 모든 다른 백업 네트워크 디바이스의 비가용 상태를 검출하는 것을 조건으로 하는, 방법.
  14. 제 12 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡은 이후, 상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 추적하는 단계를 더 포함하는 방법.
  15. 제 14 항에 있어서, 상기 마스터 네트워크 디바이스의 상기 수신된 정보에 대한 변경들의 발생시,
    상기 마스터 네트워크 디바이스에 할당된 어떤 다른 백업 네트워크 디바이스들을 식별하는 단계; 및
    상기 마스터 네트워크 디바이스에 할당된 상기 다른 백업 네트워크 디바이스들에게 상기 변경들을 통신하는 단계를 더 포함하는 방법.
  16. 제 14 항에 있어서, 상기 마스터 네트워크 디바이스의 가용 상태 검출시,
    상기 마스터 네트워크 디바이스에 상기 마스터 네트워크 디바이스의 역할을 양도하는 단계; 및
    상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 상기 마스터 네트워크 디바이스에게 통신하는 단계를 더 포함하는 방법.
  17. 제 1 항에 있어서, 상기 하나의 네트워크 디바이스가 비가용 상태 기간 이후, 가용해졌을 시,
    상기 백업 네트워크 디바이스들 중 하나로부터 상기 유지된 정보에 대한 변경들을 수신하는 단계; 및
    상기 유지된 정보에 상기 변경들을 통합시키는 단계를 더 포함하는 방법.
  18. 제 2 항에 있어서, 상기 선택 단계는,
    상기 하나의 네트워크 디바이스와 별개의 마스터 네트워크 디바이스에 할당된 백업 네트워크 디바이스를 식별하는 단계;
    상기 식별된 백업 네트워크 디바이스가 상기 마스터 네트워크 디바이스로부터 할당 해제되도록 하는 통신을 전송하는 단계; 및
    상기 백업 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업 네트워크 디바이스로서 주장하는 단계를 포함하는, 방법.
  19. 제 18 항에 있어서, 상기 식별 단계는, 상기 백업 네트워크 디바이스의 신뢰성에 기초하는, 방법.
  20. 제 18 항에 있어서, 상기 식별 단계, 상기 전송 단계 및 상기 주장 단계를 N회 반복하는 단계를 더 포함하는 방법.
  21. 제 1 항에 있어서, 상기 네트워크 디바이스들은 호들을 개시 및 수락할 수 있는 단말 세트들이고, 비가용 상태는 인입 호를 수락하는 것에 대한 불능성을 포함하는, 방법.
  22. 제 21 항에 있어서, 제안된 착신 네트워크 디바이스가 가용한지 여부를 결정하는 단계; 및
    상기 결정에 기초하여 호를 개시하는 단계를 더 포함하는 방법.
  23. 제 22 항에 있어서, 상기 결정 단계가 상기 제안된 착신 네트워크가 비가용한 것으로 결정한 경우, 상기 호를 개시하는 단계는,
    상기 제안된 착신 네트워크 디바이스의 백업 네트워크 디바이스를 식별하는 단계; 및
    상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 단계를 더 포함하는, 방법.
  24. 제 23 항에 있어서, 상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 단계는, 상기 식별된 백업 네트워크 디바이스가 가용한 것으로 결정하는 것을 조건으로 하는, 방법.
  25. 제 24 항에 있어서, 식별된 백업 네트워크 디바이스가 가용한 것으로 발견될 때까지, 또는, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정될 때까지, 상기 식별 단계 및 상기 개시 단계를 반복하는 단계를 더 포함하는 방법.
  26. 제 25 항에 있어서, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정되는 경우, 상기 하나의 네트워크 디바이스에서 상기 호를 수락하는 단계를 더 포함하는 방법.
  27. 복수의 네트워크 디바이스들 중 네트워크 디바이스에 있어서,
    상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하여, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하고;
    상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하도록, 상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하고;
    상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하도록, 마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하도록 적응된, 네트워크 디바이스.
  28. 제 27 항에 있어서, 상기 적어도 하나의 백업 네트워크 디바이스는 N 백업 디바이스들을 포함하고, 상기 적어도 하나의 마스터 네트워크 디바이스는 N 마스터 디바이스들을 포함하며, N은 1과 같거나 그 보다 큰 정수인, 네트워크 디바이스.
  29. 제 28 항에 있어서, 상기 선택은, 상기 하나의 네트워크 디바이스의 신뢰성 및 상기 N 백업 디바이스들 각각의 신뢰성에 기초하는, 네트워크 디바이스.
  30. 제 29 항에 있어서, 상기 복수의 네트워크 디바이스들은 네트워크에 의해 상호 연결되며, 네트워크 디바이스의 신뢰성은 그 네트워크 디바이스가 상기 네트워크 외부의 디바이스와의 연결을 형성할 수 있는 가능성을 포함하는, 네트워크 디바이스.
  31. 제 29 항에 있어서, 상기 선택은,
    상기 복수의 네트워크 디바이스들을 예측 백업들의 M 풀들로 그룹화하는 것으로서, 예측 백업들의 풀내의 각 네트워크 디바이스는 동일한 신뢰성을 가지며, M은 1과 같거나 그 보다 큰 정수인, 상기 그룹화하는 것;
    최고 신뢰성을 가지는 예측 백업들의 풀을 예측 백업들의 현재 풀로서 선택 하는 것;
    현재 백업 레벨을 제1 백업 레벨로 설정하는 것으로서, 상기 백업 레벨은, 백업 네트워크 디바이스가 할당된 특정 네트워크 디바이스의 비가용 상태시 뿐만 아니라, 보다 낮은 백업 레벨들에서 상기 특정 네트워크 디바이스에 백업 네트워크 디바이스들로서 할당된 모든 다른 네트워크 디바이스들의 비가용 상태시의 경우에, 상기 백업 네트워크 디바이스가 상기 다른 백업 네트워크 디바이스들에 관하여 상기 특정 네트워크 디바이스의 역할을 맡는 상대적 순서를 나타내는, 상기 설정하는 것; 및
    현재 백업 레벨에서, (a) 예측 백업들의 현재 풀내의 모든 네트워크 디바이스가 백업 네트워크 디바이스로 N회 할당되는 경우, 또는
    (b) 상기 복수의 네트워크 디바이스들 각각이 현재 백업 레벨에서 백업 네트워크 디바이스의 양수자인 경우 중 어느 하나까지, 어떠한 네트워크 디바이스도 현재 백업 레벨에서 하나 이상의 백업 네트워크 디바이스의 양수자가 되지 않도록 양수자 네트워크 디바이스들의 신뢰성이 증가하는 순서로, 예측 백업들의 현재 풀로부터의 네트워크 디바이스들을 상기 복수의 네트워크 디바이스들에 할당하는 것을 포함하는, 네트워크 디바이스.
  32. 제 31 항에 있어서, (a)의 발생시,
    신뢰성이 감소하는 순서로, 예측 백업들의 다른 풀을 예측 백업들의 현재 풀로서 선택하고,
    상기 할당을 반복하도록 더 적응된 네트워크 디바이스.
  33. 제 32 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 선택 및 상기 반복을 반복하도록 더 적응된 네트워크 디바이스.
  34. 제 31 항에 있어서, (b)의 발생시,
    현재 백업 레벨이 N 보다 작은 경우, 현재 백업 레벨을 다음 백업 레벨로 증분시키고,
    상기 할당을 반복하도록 더 적응된 네트워크 디바이스.
  35. 제 34 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 증분 및 상기 반복을 반복하도록 더 적응된 네트워크 디바이스.
  36. 제 27 항에 있어서, 상기 하나의 네트워크 디바이스에서 상기 유지된 정보에 대한 변경 검출시, 상기 변경을 상기 N 백업 네트워크 디바이스들 각각에게 통신하도록 더 적응된 네트워크 디바이스.
  37. 제 27 항에 있어서, 마스터 네트워크 디바이스로부터 수신된 정보에 대한 변 경의 지시를 상기 마스터 네트워크 디바이스로부터 수신시, 상기 수신된 정보에 상기 변경을 통합시키도록 더 적응된 네트워크 디바이스.
  38. 제 31 항에 있어서, 마스터 네트워크 디바이스의 비가용 상태 검출시, 상기 마스터 네트워크 디바이스의 역할을 맡도록 더 적응된 네트워크 디바이스.
  39. 제 38 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡는 것은, 상기 하나의 네트워크 디바이스 보다 낮은 백업 레벨에서 동일한 마스터 네트워크 디바이스에 대한 백업으로서 할당된 모든 다른 백업 네트워크 디바이스의 비가용 상태를 검출하는 것을 조건으로 하는, 네트워크 디바이스.
  40. 제 38 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡은 이후, 상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 추적하도록 더 적응된 네트워크 디바이스.
  41. 제 40 항에 있어서, 상기 마스터 네트워크 디바이스의 상기 수신된 정보에 대한 변경들의 발생시,
    상기 마스터 네트워크 디바이스에 할당된 어떤 다른 백업 네트워크 디바이스들을 식별하고,
    상기 마스터 네트워크 디바이스에 할당된 상기 다른 백업 네트워크 디바이스 들에게 상기 변경들을 통신하도록 더 적응된 네트워크 디바이스.
  42. 제 40 항에 있어서, 상기 마스터 네트워크 디바이스의 가용 상태 검출시,
    상기 마스터 네트워크 디바이스에 상기 마스터 네트워크 디바이스의 역할을 양도하고,
    상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 상기 마스터 네트워크 디바이스에게 통신하도록 더 적응된 네트워크 디바이스.
  43. 제 27 항에 있어서, 상기 하나의 네트워크 디바이스가 비가용 상태 기간 이후, 가용해졌을 시,
    상기 백업 네트워크 디바이스들 중 하나로부터 상기 유지된 정보에 대한 변경들을 수신하고,
    상기 유지된 정보에 상기 변경들을 통합시키도록 더 적응된 네트워크 디바이스.
  44. 제 28 항에 있어서, 상기 선택은,
    상기 하나의 네트워크 디바이스와 별개의 마스터 네트워크 디바이스에 할당된 백업 네트워크 디바이스를 식별하고,
    상기 식별된 백업 네트워크 디바이스가 상기 마스터 네트워크 디바이스로부터 할당 해제되도록 하는 통신을 전송하며,
    상기 백업 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업 네트워크 디바이스로서 주장하는 것을 포함하는, 네트워크 디바이스.
  45. 제 44 항에 있어서, 상기 식별은, 상기 백업 네트워크 디바이스의 신뢰성에 기초하는, 네트워크 디바이스.
  46. 제 44 항에 있어서, 상기 식별, 상기 전송 및 상기 주장을 N회 반복하도록 더 적응된 네트워크 디바이스.
  47. 제 27 항에 있어서, 상기 네트워크 디바이스들은 호들을 개시 및 수락할 수 있는 단말 세트들이고, 비가용 상태는 인입 호를 수락하는 것에 대한 불능성을 포함하는, 네트워크 디바이스.
  48. 제 47 항에 있어서, 제안된 착신 네트워크 디바이스가 가용한지 여부를 결정하고,
    상기 결정에 기초하여 호를 개시하도록 더 적응된 네트워크 디바이스.
  49. 제 48 항에 있어서, 상기 결정이 상기 제안된 착신 네트워크가 비가용 상태인 것으로 결정한 경우, 상기 호의 개시는,
    상기 제안된 착신 네트워크 디바이스의 백업 네트워크 디바이스를 식별하고,
    상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 것을 포함하는, 네트워크 디바이스.
  50. 제 49 항에 있어서, 상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 것은, 상기 식별된 백업 네트워크 디바이스가 가용한 것으로 결정하는 것을 조건으로 하는, 네트워크 디바이스.
  51. 제 50 항에 있어서, 식별된 백업 네트워크 디바이스가 가용한 것으로 발견될 때까지, 또는, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정될 때까지, 상기 식별 및 상기 개시를 반복하도록 더 적응된 네트워크 디바이스.
  52. 제 51 항에 있어서, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정되는 경우, 상기 하나의 네트워크 디바이스에서 상기 호를 수락하도록 더 적응된 네트워크 디바이스.
  53. 복수의 네트워크 디바이스들 중 하나의 네트워크 디바이스에서의 실행을 위한 기계 실행가능한 코드를 포함하는 기계 판독가능한 매체에 있어서,
    상기 복수의 네트워크 디바이스들 중 적어도 하나의 다른 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업으로서 작용하도록 선택하기 위한 기계 실행가능한 코드로서, 적어도 하나의 백업 네트워크 디바이스의 선택을 초래하는 상기 선택하기 위한 기계 실행가능한 코드;
    상기 하나의 네트워크 디바이스에 의해 유지된 정보를 상기 백업 네트워크 디바이스 각각에 통신하기 위한 기계 실행가능한 코드로서, 상기 통신된 정보는 상기 하나의 네트워크 디바이스의 비가용 상태시, 상기 백업 네트워크 디바이스가 상기 하나의 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 통신하기 위한 기계 실행가능한 코드; 및
    마스터 네트워크 디바이스가 되도록 그 백업으로서 상기 하나의 네트워크 디바이스를 선택한 상기 하나의 네트워크 디바이스와 별개의 적어도 하나의 네트워크 디바이스로부터 정보를 수신하기 위한 기계 실행가능한 코드로서, 상기 수신된 정보는 상기 마스터 네트워크 디바이스의 비가용 상태시, 상기 하나의 네트워크 디바이스가 상기 마스터 네트워크 디바이스의 역할을 맡을 때 사용하기 위한 것인, 상기 수신하기 위한 기계 실행가능한 코드를 포함하는, 기계 판독가능한 매체.
  54. 제 53 항에 있어서, 상기 적어도 하나의 백업 네트워크 디바이스는 N 백업 디바이스들을 포함하고, 상기 적어도 하나의 마스터 네트워크 디바이스는 N 마스터 디바이스들을 포함하며, N은 1과 같거나 그 보다 큰 정수인, 기계 판독가능한 매체.
  55. 제 54 항에 있어서, 상기 선택은, 상기 하나의 네트워크 디바이스의 신뢰성 및 상기 N 백업 디바이스들 각각의 신뢰성에 기초하는, 기계 판독가능한 매체.
  56. 제 55 항에 있어서, 상기 복수의 네트워크 디바이스들은 네트워크에 의해 상호 연결되며, 네트워크 디바이스의 신뢰성은 그 네트워크 디바이스가 상기 네트워크 외부의 디바이스와의 연결을 형성할 수 있는 가능성을 포함하는, 기계 판독가능한 매체.
  57. 제 55 항에 있어서, 상기 선택은,
    상기 복수의 네트워크 디바이스들을 예측 백업들의 M 풀들로 그룹화하는 것으로서, 예측 백업들의 풀내의 각 네트워크 디바이스는 동일한 신뢰성을 가지며, M은 1과 같거나 그 보다 큰 정수인, 상기 그룹화하는 것;
    최고 신뢰성을 가지는 예측 백업들의 풀을 예측 백업들의 현재 풀로서 선택하는 것;
    현재 백업 레벨을 제1 백업 레벨로 설정하는 것으로서, 상기 백업 레벨은, 백업 네트워크 디바이스가 할당된 특정 네트워크 디바이스의 비가용 상태시 뿐만 아니라, 보다 낮은 백업 레벨들에서 상기 특정 네트워크 디바이스에 백업 네트워크 디바이스들로서 할당된 모든 다른 네트워크 디바이스들의 비가용 상태시의 경우에, 상기 백업 네트워크 디바이스가 상기 다른 백업 네트워크 디바이스들에 관하여 상기 특정 네트워크 디바이스의 역할을 맡는 상대적 순서를 나타내는, 상기 설정하는 것; 및
    현재 백업 레벨에서, (a) 예측 백업들의 현재 풀내의 모든 네트워크 디바이스가 백업 네트워크 디바이스로 N회 할당되는 경우, 또는
    (b) 상기 복수의 네트워크 디바이스들 각각이 현재 백업 레벨에서 백업 네트워크 디바이스의 양수자인 경우 중 어느 하나까지, 어떠한 네트워크 디바이스도 현재 백업 레벨에서 하나 이상의 백업 네트워크 디바이스의 양수자가 되지 않도록 양수자 네트워크 디바이스들의 신뢰성이 증가하는 순서로, 예측 백업들의 현재 풀로부터의 네트워크 디바이스들을 상기 복수의 네트워크 디바이스들에 할당하는 것을 포함하는, 기계 판독가능한 매체.
  58. 제 57 항에 있어서, (a)의 발생시,
    신뢰성이 감소하는 순서로 예측 백업들의 다른 풀을 예측 백업들의 현재 풀로서 선택하고,
    상기 할당을 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  59. 제 58 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 선택 및 상기 반복을 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  60. 제 57 항에 있어서, (b)의 발생시,
    현재 백업 레벨이 N 보다 작은 경우, 현재 백업 레벨을 다음 백업 레벨로 증분시키고,
    상기 할당을 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  61. 제 60 항에 있어서, 상기 복수의 네트워크 디바이스들 각각이 N 백업 네트워크 디바이스들의 양수자가 될 때까지 상기 증분 및 상기 반복을 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  62. 제 53 항에 있어서, 상기 하나의 네트워크 디바이스에서 상기 유지된 정보에 대한 변경 검출시, 상기 변경을 상기 N 백업 네트워크 디바이스들 각각에게 통신하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  63. 제 53 항에 있어서, 마스터 네트워크 디바이스로부터 수신된 정보에 대한 변경의 지시를 상기 마스터 네트워크 디바이스로부터 수신시, 상기 수신된 정보에 상기 변경을 통합시키기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  64. 제 57 항에 있어서, 마스터 네트워크 디바이스의 비가용 상태 검출시, 상기 마스터 네트워크 디바이스의 역할을 맡기 위한 기계 실행가능한 코드를 더 포함하 는 기계 판독가능한 매체.
  65. 제 64 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡는 것은, 상기 하나의 네트워크 디바이스 보다 낮은 백업 레벨에서 동일한 마스터 네트워크 디바이스에 대한 백업으로서 할당된 모든 다른 백업 네트워크 디바이스의 비가용 상태를 검출하는 것을 조건으로 하는, 기계 판독가능한 매체.
  66. 제 64 항에 있어서, 상기 마스터 네트워크 디바이스의 역할을 맡은 이후, 상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 추적하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  67. 제 66 항에 있어서, 상기 마스터 네트워크 디바이스의 수신된 정보에 대한 변경들의 발생시,
    상기 마스터 네트워크 디바이스에 할당된 어떤 다른 백업 네트워크 디바이스들을 식별하고,
    상기 마스터 네트워크 디바이스에 할당된 상기 다른 백업 네트워크 디바이스들에게 상기 변경들을 통신하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  68. 제 66 항에 있어서, 상기 마스터 네트워크 디바이스의 가용 상태 검출시,
    상기 마스터 네트워크 디바이스에 상기 마스터 네트워크 디바이스의 역할을 양도하고,
    상기 마스터 네트워크 디바이스로부터 수신된 정보에 대한 어떤 변경들을 상기 마스터 네트워크 디바이스에게 통신하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  69. 제 53 항에 있어서, 상기 하나의 네트워크 디바이스가 비가용 상태 기간 이후, 가용해졌을 시,
    상기 백업 네트워크 디바이스들 중 하나로부터 상기 유지된 정보에 대한 변경들을 수신하고,
    상기 유지된 정보에 상기 변경들을 통합시키기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  70. 제 54 항에 있어서, 상기 선택은,
    상기 하나의 네트워크 디바이스와 별개의 마스터 네트워크 디바이스에 할당된 백업 네트워크를 식별하고,
    상기 식별된 백업 네트워크 디바이스가 상기 마스터 네트워크 디바이스로부터 할당 해제되도록 하는 통신을 전송하며,
    상기 백업 네트워크 디바이스를 상기 하나의 네트워크 디바이스를 위한 백업 네트워크 디바이스로서 주장하는 것을 포함하는, 기계 판독가능한 매체.
  71. 제 70 항에 있어서, 상기 식별은, 상기 백업 네트워크 디바이스의 신뢰성에 기초하는, 기계 판독가능한 매체.
  72. 제 70 항에 있어서, 상기 식별, 상기 전송 및 상기 주장을 N회 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  73. 제 53 항에 있어서, 상기 네트워크 디바이스들은 호들을 개시 및 수락할 수 있는 단말 세트들이고, 비가용 상태는 인입 호를 수락하는 것에 대한 불능성을 포함하는, 기계 판독가능한 매체.
  74. 제 73 항에 있어서, 제안된 착신 네트워크 디바이스가 가용한지 여부를 결정하고,
    상기 결정에 기초하여 호를 개시하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  75. 제 74 항에 있어서, 상기 결정이 상기 제안된 착신 네트워크가 비가용한 것으로 결정한 경우, 상기 호의 개시는,
    상기 제안된 착신 네트워크 디바이스의 백업 네트워크 디바이스를 식별하고,
    상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 것을 포함하는, 기계 판독가능한 매체.
  76. 제 75 항에 있어서, 상기 식별된 백업 네트워크 디바이스에게로 호를 개시하는 것은, 상기 식별된 백업 네트워크 디바이스가 가용한 것으로 결정하는 것을 조건으로 하는, 기계 판독가능한 매체.
  77. 제 76 항에 있어서, 식별된 백업 네트워크 디바이스가 가용한 것으로 발견될 때까지, 또는, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정될 때까지, 상기 식별 및 상기 개시를 반복하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
  78. 제 77 항에 있어서, 상기 제안된 착신 네트워크 디바이스가 어떠한 가용한 백업 네트워크 디바이스들도 갖지 않는 것으로 결정되는 경우, 상기 하나의 네트워크 디바이스에서 상기 호를 수락하기 위한 기계 실행가능한 코드를 더 포함하는 기계 판독가능한 매체.
KR1020067009856A 2003-11-21 2004-11-22 네트워크 디바이스들의 백업 KR101130096B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US52370303P 2003-11-21 2003-11-21
US60/523,703 2003-11-21
PCT/CA2004/002005 WO2005050952A1 (en) 2003-11-21 2004-11-22 Back up of network devices

Publications (2)

Publication Number Publication Date
KR20060125762A true KR20060125762A (ko) 2006-12-06
KR101130096B1 KR101130096B1 (ko) 2012-03-28

Family

ID=34619616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067009856A KR101130096B1 (ko) 2003-11-21 2004-11-22 네트워크 디바이스들의 백업

Country Status (7)

Country Link
US (1) US7441141B2 (ko)
EP (1) EP1695524B1 (ko)
JP (1) JP4713492B2 (ko)
KR (1) KR101130096B1 (ko)
CN (1) CN1894936B (ko)
CA (1) CA2544033C (ko)
WO (1) WO2005050952A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102068131B1 (ko) * 2018-11-28 2020-01-20 한국전자통신연구원 Lcp를 이용하는 스마트온실 시스템

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660297B2 (en) 2002-06-13 2010-02-09 Nice Systems Ltd. Voice over IP forwarding
CA2510509C (en) * 2002-12-20 2011-10-18 Nimcat Networks Inc. Voice mail system, method and network devices
EP1545072A1 (en) * 2003-12-19 2005-06-22 Alcatel Border router for a communication network
US7782877B2 (en) * 2004-11-03 2010-08-24 Verizon Business Global Llc Network-based dedicated backup service
US20060271663A1 (en) * 2005-05-31 2006-11-30 Fabio Barillari A Fault-tolerant Distributed Data Processing System
DE102005046441A1 (de) * 2005-09-28 2007-04-05 Siemens Ag Abwesenheitsassistenzsystem für multimediafähige Kommunikationssysteme
US20070180042A1 (en) * 2006-02-02 2007-08-02 Benco David S User configurable automatic voice message prioritization
EP1853020B1 (de) * 2006-05-02 2018-08-29 Unify GmbH & Co. KG Dezentraler Abwesenheitsassistent
US8149849B2 (en) * 2006-08-31 2012-04-03 Sony Ericsson Mobile Communications Ab Zigbee/IP gateway
US8442517B2 (en) * 2006-11-10 2013-05-14 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for controlling communications
JP2008250632A (ja) * 2007-03-30 2008-10-16 Matsushita Electric Ind Co Ltd データ処理システム
US7788234B2 (en) * 2007-08-23 2010-08-31 Microsoft Corporation Staged, lightweight backup system
US9065910B2 (en) * 2007-09-27 2015-06-23 Cisco Technology, Inc. Integrating telephony and voice mail routing
WO2009122528A1 (ja) * 2008-03-31 2009-10-08 富士通株式会社 統合構成管理装置、異種構成管理装置、バックアップデータ管理システム
TW201011540A (en) * 2008-09-12 2010-03-16 Acer Inc Data backup system and method thereof
US8495317B2 (en) * 2010-02-22 2013-07-23 Ca, Inc. System and method for improving performance of data container backups
FI20105878A (fi) * 2010-08-24 2012-02-25 Tellabs Oy Tiedonsiirtoverkon verkkoelementin suojaus
US8923278B2 (en) * 2011-01-10 2014-12-30 Vtech Telecommunications Limited Peer-to-peer, internet protocol telephone system with system-wide configuration data
JP6035726B2 (ja) * 2011-11-02 2016-11-30 富士通株式会社 接続制御装置、ストレージシステム及び接続制御装置の制御方法
US10616037B2 (en) * 2017-04-25 2020-04-07 International Business Machines Corporation Devices demise actions and notification
TWI670952B (zh) * 2017-08-14 2019-09-01 艾普仕股份有限公司 網路切換控制系統

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978565A (en) * 1993-07-20 1999-11-02 Vinca Corporation Method for rapid recovery from a network file server failure including method for operating co-standby servers
JP3232393B2 (ja) * 1995-12-05 2001-11-26 日本電信電話株式会社 分散処理システムのモジュール運転状態制御方法
US5805786A (en) * 1996-07-23 1998-09-08 International Business Machines Corporation Recovery of a name server managing membership of a domain of processors in a distributed computing environment
JPH10107912A (ja) * 1996-09-26 1998-04-24 Sharp Corp ドアホン装置
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
KR100608638B1 (ko) 1998-12-05 2006-10-24 엘지전자 주식회사 인터넷 폰 시스템의 제어방법
US6665395B1 (en) * 1998-12-11 2003-12-16 Avaya Technology Corp. Automatic call distribution system using computer network-based communication
JP2000295371A (ja) * 1999-04-02 2000-10-20 Kawahara Megumi 通信装置
US6477172B1 (en) * 1999-05-25 2002-11-05 Ulysses Esd Distributed telephony resource management method
US7395282B1 (en) * 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US6505216B1 (en) * 1999-10-01 2003-01-07 Emc Corporation Methods and apparatus for backing-up and restoring files using multiple trails
KR20010048036A (ko) * 1999-11-24 2001-06-15 서평원 중계 장치의 백업 방법
CN1147803C (zh) * 1999-12-29 2004-04-28 上海龙林通信技术有限公司 Ip网络设备的热备份方法
JP4323681B2 (ja) * 2000-05-15 2009-09-02 パナソニック株式会社 通信装置、電子決済機能付き通信装置及び電子決済方法
CN1198406C (zh) * 2000-09-02 2005-04-20 中兴通讯股份有限公司 通讯系统备份方法和设备
DE10059175A1 (de) * 2000-11-29 2002-06-20 Siemens Ag Verfahren und Vorrichtung zur Anrufumleitung mittels eines Stellvertreters in einem Kommunikationssystem
US20030018657A1 (en) * 2001-07-18 2003-01-23 Imation Corp. Backup of data on a network
DE10158822B4 (de) * 2001-11-30 2006-06-08 Siemens Ag Verfahren zum Bereitstellen von Leistungsmerkmalen für Alternativ-Verbindungen von Primär-Verbindungen
JP4008237B2 (ja) * 2001-12-17 2007-11-14 三菱電機株式会社 情報共有システム
US20030120819A1 (en) * 2001-12-20 2003-06-26 Abramson Howard D. Active-active redundancy in a cable modem termination system
US20030126247A1 (en) * 2002-01-02 2003-07-03 Exanet Ltd. Apparatus and method for file backup using multiple backup devices
JP3895601B2 (ja) * 2002-01-07 2007-03-22 株式会社日立コミュニケーションテクノロジー Ip電話機、及びこれを備えた電話システム
US7162013B2 (en) 2002-01-31 2007-01-09 Sharp Laboratories Of America, Inc. Home network telephone answering system and method for same
US7127613B2 (en) 2002-02-25 2006-10-24 Sun Microsystems, Inc. Secured peer-to-peer network data exchange
JP3883452B2 (ja) * 2002-03-04 2007-02-21 富士通株式会社 通信システム
ATE473574T1 (de) * 2002-05-03 2010-07-15 Cedar Point Communications Inc Kommunikation vermittlungs architektur
WO2003096189A1 (en) 2002-05-09 2003-11-20 Innomedia Pte Ltd. Real time streaming media communication system with improved session detail collection
US7034678B2 (en) * 2002-07-02 2006-04-25 Tri-Sentinel, Inc. First responder communications system
EP1579638A1 (en) 2002-12-02 2005-09-28 Operax AB Arrangements and method for hierarchical resource management in a layered network architecture
US7023977B2 (en) * 2002-12-16 2006-04-04 Alcatel Method and system for providing softswitch failure protection in a communication network
CA2510509C (en) 2002-12-20 2011-10-18 Nimcat Networks Inc. Voice mail system, method and network devices
JP4404246B2 (ja) * 2003-09-12 2010-01-27 株式会社日立製作所 データ特性に基づくバックアップシステム及び方法
US7379540B1 (en) * 2003-09-24 2008-05-27 Shortel, Inc. Server with backup capability for distributed IP telephony systems
US7436820B2 (en) * 2004-09-29 2008-10-14 Lucent Technologies Inc. Method and apparatus for providing fault tolerance to intelligent voice-over-IP endpoint terminals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102068131B1 (ko) * 2018-11-28 2020-01-20 한국전자통신연구원 Lcp를 이용하는 스마트온실 시스템

Also Published As

Publication number Publication date
JP4713492B2 (ja) 2011-06-29
EP1695524B1 (en) 2016-07-06
CN1894936B (zh) 2010-12-22
US7441141B2 (en) 2008-10-21
EP1695524A4 (en) 2011-10-19
CA2544033A1 (en) 2005-06-02
JP2007516668A (ja) 2007-06-21
US20050193249A1 (en) 2005-09-01
KR101130096B1 (ko) 2012-03-28
CN1894936A (zh) 2007-01-10
CA2544033C (en) 2013-07-23
WO2005050952A1 (en) 2005-06-02
EP1695524A1 (en) 2006-08-30

Similar Documents

Publication Publication Date Title
KR101130096B1 (ko) 네트워크 디바이스들의 백업
US7580510B2 (en) Peer to peer voice over IP network with distributed call processing
EP1690368B1 (en) Peer discovery
US7751546B2 (en) Call transfer system, method and network devices
US7616749B2 (en) Call park and call park pickup systems, methods and network devices
CA2513495C (en) Call forwarding in a packet switched system with back up terminals
US7940781B2 (en) Paging between network devices
US20060067327A1 (en) Information distribution system, method and network devices
WO2006034564A1 (en) Information distribution system, method and network devices

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160222

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170310

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180308

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200305

Year of fee payment: 9