KR20080088576A - 고가용성 네트워크 시스템 - Google Patents

고가용성 네트워크 시스템 Download PDF

Info

Publication number
KR20080088576A
KR20080088576A KR1020087010167A KR20087010167A KR20080088576A KR 20080088576 A KR20080088576 A KR 20080088576A KR 1020087010167 A KR1020087010167 A KR 1020087010167A KR 20087010167 A KR20087010167 A KR 20087010167A KR 20080088576 A KR20080088576 A KR 20080088576A
Authority
KR
South Korea
Prior art keywords
core
network
configuration
primary
database
Prior art date
Application number
KR1020087010167A
Other languages
English (en)
Inventor
마그너스 런드스트롬
안드레아스 오만
토마스 스카레
Original Assignee
패킷프론트 스웨덴 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 패킷프론트 스웨덴 에이비 filed Critical 패킷프론트 스웨덴 에이비
Publication of KR20080088576A publication Critical patent/KR20080088576A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 일 태양은 가입자들에게 서비스를 제공하기 위하여 네트워크를 운영하는 방법을 이루고, 상기 네트워크는 컨피규레이션 시스템을 포함하고, 상기 컨피규레이션 시스템은, 프라이머리 및 세컨더리 코어를 포함하는 코어 시스템, 여기서 각 코어는 개별적으로 상기 전체 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어함; 상기 코어 시스템에 연결되는 적어도 하나의 셀; 그리고 상기 셀에 연결된 적어도 하나의 네트워크 엘리먼트, 여기서 각 네트워크 엘리먼트는 상기 서비스의 제공을 위해서 다수의 가입자들을 지원함;을 포함하고, 상기 방법은, 상기 프라이머리 코어를 이용하여 상기 컨피규레이션 시스템을 운영하는 단계; 상기 프라이머리 코어가 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트에 관하여 상기 프라이머리 코어의 동작을 모니터하는 단계; 고장 이벤트의 탐지 시에, 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전시키는 단계; 상기 프라이머리 코어가 다시 상기 네트워크 및 컨피규레이션 시스템의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 더 이상 변경되지 않도록 상기 세컨더리 코어를 컨피규어하고, 상기 프라이머리 코어의 컨피규레이션과 상기 세컨더리 코어의 컨피규레이션을 동기화하는 단계; 그리고 상기 시스템의 운영을 다시 상기 프라이머리 코어로 이전하는 단계;를 포함한다.
Figure P1020087010167
네트워크, 네트워크 컨피규레이션, 고가용성

Description

고가용성 네트워크 시스템{HIGH-AVAILABILITY NETWORK SYSTEMS}
본 발명은 가입자들에게 서비스를 제공하기 위하여 네트워크를 컨피규어(configure)하고 운영하는 방법에 관련된 것으로, 고가용성 서비스(high-availability of services)를 제공하도록 브로드밴드(broadband) 통신 네트워크와 같은 네트워크를 컨피규어하고 운영하는 방법에 관련된 것이다.
도 1은 다수의 위치에 있는 가입자들(subcribers)에게 전화, 인터넷, 그리고 TV/비디오 서비스를 제공하기 위한 브로드밴드 네트워크의 일반적인 모습을 나타낸다. 일련의 서비스 제공자들(service providers)은 다양한 서비스들(SP1, SP2, SP3)을 통상적인 액세스 포인트들(12)을 경유하여 네트워크(10)로 제공한다. 네트워크(10)는 상기 가입자들 근처에 위치한 라우터들(14)을 통하여 이들의 가입자들로의 연결을 제공한다. 이것들은 상업적 자산(commercial property)(16) 내의 라우터들을 포함할 수 있는 사무 장소들과, 별도의 거처(집, 17)의 이웃들을 위한 중앙국(central office)(18) 내에 또는 아파트 빌딩과 같은 싱글 빌딩(19) 내에 위치한 라우터들을 가지는 도메스틱(domestic) 가입자들을 포함할 수 있다.
네트워크의 운영은, 요구되는 방식으로 운영하기 위하여 네트워크의 다양한 엘리먼트들을 컨피규어(configure)하는 제어 및 공급 시스템(control and provisioning system)(20)에 의해 제어된다.
제어 및 공급 시스템(20)의 기능에 관하여, 네트워크는, 도 2에 도시된 바와 같이, 하나 또는 그 이상의 셀들(cells)(24)을 가지는 코어(core)(22)와, 하나 또는 그 이상의 네트워크 엘리먼트들(26)을 가지는 각 셀로 구성되는 것처럼 추상적인 방식으로 고려될 수 있다. 가입자들(28)은 네트워크 엘리먼트들(26)과 연결된다. 이 구조는 네트워크를 구성하는 물리적인 엘리먼트들과 혼동되지 말아야 한다. 기능적 블록들(22, 24, 26)은, 정확한 사이즈와 당해 네트워크의 구성에 따라서 전체적 혹은 부분적으로 동일한 혹은 다른 물리적 엘리먼트들 내에 존재할 수 있다. 비록 전형적으로는 각 네트워크 엘리먼트(26)는 라우터로 이루어질 것이지만 말이다.
운영자(operator)는, 각 네트워크 엘리먼트들(26)의 기능을 정하고 사용자 기능 및 동작을 정하고 관리하는 기능을 가지는 제어 및 공급 시스템(20)의 사용에 의하여 네트워크 기능을 관리한다. 제1의 제어는, 코어(22)의 레벨에서 달성되는데, 코어(22)는 네트워크의 토폴로지 및 컨피규레이션(configuration)을 정의하고, 이는 물리적 또는 논리적 링크들을 설정하는 것, IP 주소들을 부여하는 것, 네트워크에 연결된 사용자들에게 이용 가능한 특정 서비스를 생성하는 것을 포함한다. 현재의 시스템에서, 네크워크의 컨피규레이션을 위한 데이터는 응용 프로그램 인터페이스(application program interface, API)를 통하여 액세스되는 코어 데이터베이스 내에 수용된다. 스타트-업(start-up) 시에, 네트워크 모듈은 컨피규레이션 데이터를 함유하고 있지 않다. 요구되는 경우에, 예를 들면 네트워크 모듈에 새로운 디 바이스가 접속되면, 네트워크 모듈은 데이터베이스에 문의하고, 필요한 컨피규레이션 데이터를, 변경되기까지 유지되는 곳에 지역적으로 캐싱한다. 네트워크 컨피규레이션에 변경이 일어나면, 상기 변경은 데이터베이스에 만들어지고, 경보가 네트워크를 통하여 네트워크 모듈들로 발신된다. 네트워크 모듈들은 차례로, 변경된 정보-변경된 정보는 변경된 데이터가 캐싱되는 네트워크 모듈 내의 해당하는 데이터베이스에 로딩됨-를 찾기 위해서 데이터베이스에게 문의한다(네트워크 모듈 데이터베이스는 코어 데이터베이스와 동일한 기본적 구조를 가지고 있으나, 단지 네트워크 모듈과 그것의 연관된 네트워크 엘리먼트들을 컨피규어하는 데 요구되는 데이터를 가진다).
제어 및 공급 시스템(20)의 부분적 결함은 가입자들에게 서비스를 제공하기 위한 전체 시스템의 결함을 야기할 수 있기 때문에, 프라이머리(primary) 시스템에 관한 문제가 처리되는 동안에 서비스 제공이 유지될 수 있도록 프라이머리 시스템의 결함 시에 운영이 백업 시스템으로 이전되는 것과 같이, 백업 또는 세컨더리(secondary) 시스템의 사용이 제안되어 왔다. 일단 프라이머리 시스템에 관한 문제가 해결되면, 운영은 세컨더리 시스템에서 프라이머리 시스템으로 반환된다. 프라이머리 시스템은 다른 문제가 발생할 때까지 동작을 계속한다. 이러한 접근 방식이 네트워크 시스템에서 일반적이다.
프라이머리 시스템과 세컨더리 시스템은 모두 운영 동안에 계속적으로 변경되는 데이터베이스를 포함한다. 만일 그것이 액티브 상태가 될 때 다른 시스템으로 전달되지 않는 변화가 액티브 시스템의 데이터베이스 내에서 발생한다면, 문제가 발생할 수 있다.
본 발명에서, 시스템은 전체 네트워크의 오퍼레이션을 제어하기 위한 코어 시스템, 전체 네트워크의 정의된 부분의 오퍼레이션을 제어하기 위한 하나 또는 그 이상의 셀들, 그리고 가입자들이 연결되는 네트워크 엘리먼트들(예를 들어 라우터)을 포함한다.
본 발명의 일 태양은 가입자들에게 서비스를 제공하기 위하여 네트워크를 운영하는 방법을 이루고, 상기 네트워크는 컨피규레이션 시스템을 포함하고, 상기 컨피규레이션 시스템은,
- 프라이머리 및 세컨더리 코어를 포함하는 코어 시스템, 여기서 각 코어는 네트워크 컨피규레이션 데이터를 함유하고, 각 코어는 개별적으로 상기 전체 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어함;
- 상기 코어 시스템에 연결되고 셀에 연결된 적어도 하나의 네트워크 엘리먼트를 포함하는 상기 네트워크의 정의된 부분을 제어하는 것이 가능한 적어도 하나의 셀, 여기서 각 네트워크 엘리먼트는 상기 서비스의 제공을 위해서 다수의 가입자들을 지원함;을 포함하고,
상기 방법은,
- 상기 프라이머리 코어를 이용하여 상기 네트워크 및 컨피규레이션 시스템을 운영하는 단계, 여기서 상기 프라이머리 및 세컨더리 코어 내의 네트워크 컨피규레이션 데이터는 주기적으로 변경됨;
- 상기 프라이머리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트에 관하여 상기 프라이머리 코어의 동작을 모니터하는 단계;
- 고장 이벤트의 탐지 시에, 상기 네트워크 및 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전시키는 단계;
- 상기 프라이머리 코어가 다시 상기 네트워크 및 컨피규레이션 시스템의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터가 더 이상 변경되지 않도록 상기 세컨더리 코어를 컨피규어하고, 상기 프라이머리 코어의 네트워크 컨피규레이션 데이터와 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터를 동기화하는 단계; 및
상기 네트워크 및 컨피규레이션 시스템의 운영을 다시 상기 프라이머리 코어로 이전하는 단계;를 포함한다.
바람직하게는, 각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고, 상기 방법은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 세컨더리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템을 제어하는 시간 동안 변경되지 않도록, 리드-온리(read-only) 모드로 설정하는 단계를 포함한다.
대안적으로, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고, 상기 방법은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 네트워크 컨피규레이션 데이터가 상기 네트워크 및 상기 컨피규레이션 시스템의 제어 동안에 계속적으로 변경되도록 설정하는 단계를 포함하고, 상기 컨피규레이션 동기화 단계는 상기 프라이머리 코어의 데이터베이스를 상기 세컨더리 코어의 데이터베이스와 동기화하는 단계를 더 포함한다.
전형적으로, 상기 프라이머리 코어를 이용하여 상기 네트워크 및 상기 컨피규레이션 시스템을 운영하는 동안에, 상기 세컨더리 코어는, 상기 시스템의 오퍼레이션이 상기 세컨더리 코어로 이전될 때 상기 세컨더리 코어가 상기 프라이머리 코어와 실질적으로 동일한 컨피규레이션 및 데이터베이스를 가지도록, 동작 중인 상기 프라이머리 코어를 미러(mirror)한다.
상기 각 코어는 다른 코어의 동작을 모니터하는 코어 모듈 엘리먼트 매니저를 포함할 수 있고, 상기 두 엘리먼트 매니저는 링크되어 있으며, 상기 프라이머리 코어의 고장을 탐지하는 단계는, 상기 세컨더리 코어 내의 상기 엘리먼트 매니저를 이용하여 상기 링크의 상태를 모니터하는 단계 및 상기 링크가 소정의 시간 기간 이상 동안 동작하지 않는 경우에 고장임을 나타내는 단계를 포함한다.
상기 각 코어는 또한 다수의 어플리케이션 모듈들을 포함할 수 있고, 상기 각 코어의 엘리먼트 매니저는 해당 코어 내의 상기 모듈들의 동작을 제어한다. 하나의 그러한 모듈은, 전체 네트워크를 위한 컨피규레이션 데이터와 해당 셀에 의하여 제어되는 네트워크의 부분을 위하여 상기 셀에 대한 적절한 컨피규레이션 데이터를 함유하는 컨피규레이션 트리를 저장하고 업데이트하기 위한 컨피규레이션 작업 매니저이다.
상기 각 셀은 또한, 해당 셀 내의 네트워크를 제어하기 위한 어플리케이션 모듈들을 포함할 수 있다. 하나의 그러한 모듈은, 상기 셀에 대한 컨피규레이션 데이터를 저장하고 상기 셀에 대한 상기 컨피규레이션 데이터를 상기 네트워크 엘리먼트들로 배치하는 컨피규레이션 렌더링 엔진을 포함할 수 있다.
더 나아간 실시예에서, 상기 각 셀은 프라이머리 및 세컨더리 컨피규레이션 렌더링 엔진을 포함하고, 각 컨피규레이션 렌더링 엔진은 상기 셀 및 그것의 네트워크 엘리먼트들을 제어할 수 있고, 상기 방법은,
- 상기 셀에 관련된 컨피규레이션 데이터를 상기 코어로부터 상기 양 엔진들로 제공하는 단계;
- 상기 프라이머리 엔진이 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트에 관하여 상기 프라이머리 엔진의 동작을 모니터하는 단계;
- 고장 이벤트의 탐지 시에, 상기 셀 및 그것의 네트워크 엘리먼트들의 운영의 제어를 상기 세컨더리 엔진으로 이전시키는 단계;
- 상기 프라이머리 엔진이 다시 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 프라이머리 엔진의 컨피규레이션과 상기 세컨더리 엔진의 컨피규레이션을 동기화하는 단계; 및
- 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 다시 상기 프라이머리 엔진으로 이전하는 단계;를 더 포함한다.
본 발명의 다른 태양은, 가입자들에게 네트워크 서비스를 제공하기 위한 컨피규레이션 시스템을 이루고, 상기 시스템은,
- 프라이머리 및 세컨더리 코어를 포함하는 코어 시스템, 여기서 각 코어는 네트워크 컨피규레이션 데이터를 함유하고, 각 코어는 개별적으로 상기 전체 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어함;
- 상기 코어 시스템에 연결되고 셀에 연결된 적어도 하나의 네트워크 엘리먼트를 포함하는 상기 네트워크의 정의된 부분을 제어하는 것이 가능한 적어도 하나의 셀, 여기서 각 네트워크 엘리먼트는 상기 서비스의 제공을 위해서 다수의 가입자들을 지원함;을 포함하고,
상기 프라이머리 코어는 정상 사용에서 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어하고,
상기 시스템은 모니터링 시스템을 더 포함하고, 상기 모니터링 시스템은,
- 상기 프라이머리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트를 탐지하고, 고장 이벤트지 탐지 시에 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전시키고;
- 상기 프라이머리 코어가 다시 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터가 더 이상 변경되지 않도록 상기 세컨더리 코어를 컨피규어하고, 상기 프라이머리 코어의 네트워크 컨피규레이션 데이터와 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터를 동기화하고;
상기 네트워크 및 상기 시스템의 운영을 다시 상기 프라이머리 코어로 이전하기 위한 모니터링 시스템이다.
상기 각 코어는 바람직하게는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고, 상기 모니터링 시스템은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 세컨더리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템을 제어하는 시간 동안 변경되지 않도록, 리드-온리(read-only) 모드로 설정한다.
대안적으로, 상기 각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함할 수 있고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어 동안 계속적으로 변경되고, 상기 프라이머리 코어는 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경을 상기 세컨더리 데이터베이스로 전달하는 동작을 하고, 상기 모니터링 시스템은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 네트워크 컨피규레이션 데이터가 상기 네트워크 및 상기 컨피규레이션 시스템의 제어 동안에 계속적으로 변경되도록 설정하는 동작을 하고, 컨피규레이션 동기화 시에 상기 프라이머리 코어의 데이터베이스를 상기 세컨더리 코어의 데이터베이스와 동기화한다.
상기 프라이머리 코어를 이용하여 상기 네트워크 및 상기 컨피규레이션 시스템을 운영하는 동안에, 상기 세컨더리 코어는, 상기 시스템의 오퍼레이션이 상기 세컨더리 코어로 이전될 때 상기 세컨더리 코어가 상기 프라이머리 코어와 실질적으로 동일한 컨피규레이션 및 데이터베이스를 가지도록, 동작 중인 상기 프라이머리 코어를 미러(mirror)하는 것이 바람직하다.
상기 각 코어는 전형적으로, 다른 코어의 동작을 모니터하는 코어 모듈 엘리먼트 매니저를 포함하고, 상기 두 엘리먼트 매니저는 링크되어 있으며, 상기 세컨더리 코어 내의 상기 엘리먼트 매니저는 상기 링크의 상태를 모니터하고 상기 링크가 소정의 시간 기간 이상 동안 동작하지 않는 경우에 고장임을 나타낸다.
상기 각 코어는 또한 다수의 어플리케이션 모듈들을 포함할 수 있고, 상기 각 코어의 엘리먼트 매니저는 해당 코어 내의 상기 모듈들의 동작을 제어한다.
동기화 동안에 상기 세컨더리 코어의 변경을 방지함으로써, 동기화 동안의 데이터의 손실이 예방된다.
더 나아간 실시예에서, 상기 각 셀은 프라이머리 및 세컨더리 컨피규레이션 렌더링 엔진을 포함하고, 각 컨피규레이션 렌더링 엔진은 상기 셀 및 그것의 네트워크 엘리먼트들을 제어할 수 있다.
도 1은 본 발명과 관련된 네트워크의 개략적인 다이아그램을 나타낸다.
도 2는 이러한 네트워크의 개략적인 기능적 관점의 도면을 나타낸다.
도 3은 본 발명에 따른 방법을 구현하기 위한 시스템을 나타낸다.
본 발명에 따른 컨피규레이션 시스템은 실질적으로 동일한 프라이머리 및 세컨더리 코어(core) 시스템들 A, B로 이루어진다. 이들은 모두 일반적으로 전체 네트워크를, 그리고 특히 그것의 컨피규레이션(configuration)을 제어하기 위하여 동작한다. 도 3은 하나의 이러한 컨피규레이션 시스템을 나타낸다. 프라이머리 및 세컨더리 코어 시스템들 A, B가 도 3에 도시되어 있다. 코어(22)는, 파일 시스템(30), 데이터베이스(32), 코어 모듈 엘리먼트 매니저(core module element manager)(33), 그리고 네트워크에 대하여 코어 서비스들을 제공하는 모듈들의 집합(34a-h)으로 이루어진다. 파일 시스템(30), 데이터베이스(32), 그리고 모듈들(34)은 모두 중앙 서버(central server)에 위치한다. 다만 다양한 컴포넌트들이 한 개 이상의 서버에 걸쳐서 분산되는 것이 가능하다. 코어 모듈들(34)은 서로 간에, 그리고 셀들(cells)(24)과, 그리고 네트워크 엘리먼트들(26)과 상호작용한다. 코어(22)는 또한 외부의 API(37)를 통하여 서비스 제공자(service provider) 시스템들과 같은 외부의 어플리케이션들과 상호작용한다. 코어 모듈들(34)은, 시스템 매니저 모듈(34a), 넷 로그(net log) 모듈(34b), 로그 매니저 모듈(34c), 데이터베이스 어플리케이션 인터페이스(DBAPI)(34d), 가입자 관리 도구 브리지(subscriber management tool bridge, SMTB)(34e), 외부 어플리케이션 인터페이스(external application interface, EAPI)(34f), 스크립트 엔진(script engine)(34g), 그리고 컨피규레이션 작업 매니저(configuration job manager, CJM)(34h)를 포함한다. 상기 다양한 코어 모듈들(34)은 어플리케이션 간 메시지 버스(inter-application message bus, IAMB)(35)를 통하여 서로 통신한다. 각 셀(cell)(24)은 상기 네트워크의 어느 특정 부분을 제어하기 위하여 동작하고, 해당 셀 내에, 네트워크 토폴로지의 상기 부분을 핸들링하는 모듈들을 포함한다. 셀(24)은 코어(22)와 같이 동일한 서버에 위치할 수 있지만, 대규모 네트워크의 경우라면 셀(24)은 코어 서버와 분리되어, 네트워크 내에 배치될 수도 있다. 각 셀은 컨피규레이션 렌더링 엔진 모듈(configuration rendering engine module, CRE)(36)과 엘리먼트 매니저 모듈(38)을 포함할 수 있다. 각 네트워크 엘리먼트(26)는 전형적으로 프로그래머블 라우터(programmable router)(40)를 포함한다.
코어(22)의 고가용성(High-Availablity, HA) 운영(operation)은, 하드웨어 또는 소프트웨어 문제의 발생 시에 현존하는 가입자들에게 계속해서 서비스를 제공 하도록 하기 위하여 바람직하다. 컨피규레이션 트리의 구축과 결합된 코어 시스템의 모듈화는 고 레벨의 운영을 가능케 한다.
코어 모듈 엘리먼트 매니저(33)는 코어 내의 모든 다른 모듈들을 제어한다. 즉, 그들을 올바른 인자(argument)로 기동시키고, 만일 고장나면 다시 기동시키며, 그들에 대한 정보를 유지하여 둔다. 그것은 또한 시스템 내에서 고가용성 기능을 제어하기 위하여 역할을 한다. 세컨더리 코어 B가 언제 액티브 상태로 들어가야 하는지를 결정하고 모든 모듈들의 HA 상태를 제어하는 것이 코어 모듈 엘리먼트 매니저(33)이다.
본 실시예에서는, HA 구조은 두 개의 코어로 구성되는데, 하나는 프라이머리 A이고, 다른 하나는 세컨더리 B이다. 이 구조는 하나의 HA 페어(pair)로 불린다. HA 페어 내의 각 코어는 전형적으로 동일한 모듈들(여기서 나타난 바와 같이)을 가지고 있으나, 각 HA 페어 내에서 모듈들의 선택은 임의로 선택 가능하다.
코어 모듈 엘리먼트 매니저(33)와 다른 모듈들 사이, 그리고 하나의 HA 페어 내의 프라이머리 및 세컨더리 코어 A, B 내의 두 코어 모듈 엘리먼트 매니저들 사이의 모든 통신은 IAMB(35) 상의 통신 채널을 통하여 이루어진다.
각 코어(프라이머리 및 세컨더리) A, B는 자신의 코어 모듈 엘리먼트 매니저(33)를 가진다. 이들 두 코어 모듈 엘리먼트 매니저(33) 사이의 SSD 채널 링크(39)는 이들 둘 간의 상태를 공유하고, 고장(프라이머리가 다운됨)의 탐지 또는 복구(다운된 후에 프라이머리가 액티브 상태로 복구)를 수행하기 위하여 역할을 한다.
프라이머리 코어 A의 고장은, 링크(39)의 연결이 미리 정하여진 시간(예를 들어 3초) 이상 동안 다운될 때 세컨더리 코어 모듈 엘리먼트 매니저(33)에서 탐지된다. 이 시점에서 전체 프라이머리 코어 A는 동작할 수 없는 것으로 가정된다.
각 코어 A, B 상의 코어 모듈 엘리먼트 매니저(33)는 동일한 코어 상의 다른 모듈들(34) 각각에 대해 열려 있는 연결을 가지고 있다. 이 연결은 코어 모듈 엘리먼트(33)와 다른 모듈들(34) 사이에서 제어 신호들을 전달하는 데 사용된다.
모듈들(34)의 컨피규레이션은 전형적으로, 모듈들(34)을 기동하는 코어 모듈 엘리먼트 매니저(33)와, 제어 시스템을 인스톨할 때 생성되는 컨피규레이션 파일들에 의해 사용되는 명령행 인자(command line arguments)를 통하여 만들어진다. 대안적인 접근은, 셀(24) 내에 있는 엘리먼트 매니저(38)가 네트워크 엘리먼트들(26)을 위하여 행하는 것과 동일한 방식으로, 모듈들(34)을 컨피규어하는 것이다(이것은 이하에서 더 상세히 설명된다).
프로그램이 시작되면, 그것은 적절한 채널 상에서 코어 모듈 엘리먼트 매니저(33)에 연결한다.
정상적인 운영에서, 프라이머리 및 세컨더리 코어 A, B 모두가 올라와 동작하고, 페일오버(failover)가 발생하지 않는다. 기동 시에, 프라이머리로 동작하는 프로그램으로 활성(activation) 명령이 보내지고, 세컨더리로 동작하는 프로그램으로는 스탠바이(standby) 명령이 보내진다. 세컨더리 모듈은 전형적으로 그의 프라이머리 파트너로부터의 라이브 업데이트를 위한 연결만을 허용한다.
프라이머리 코어 A가 인액티브(inactive)되고, 미리 정해진 시간 이상 동안 인액티브 상태로 유지하면 페일오버(failover)가 발생한다. 전형적으로, 만일 세컨더리 코어 B가 인액티브가 되거나 또는 프라이머리 코어 A가 상기 미리 정해진 시간 기간의 끝 전에 다시 액티브 상태로 돌아오면 페일오버는 발생하지 않는다.
페일오버 시에 세컨더리 모듈들은 활성(activation) 명령을 수신하고, 마치 그들이 프라이머리 코어인 것처럼 활동을 개시한다.
복구(restoration) 프로세스는 몇 개의 단계들로 수행되어, 세컨더리 B로부터 프라이머리 A로의 데이터의 동기화(synchronization)가 완전할 것을 확실하게 한다.
복구의 시작에서, 명령이 모든 세컨더리 모듈로 전달되어 리드 온리(read only) 모드로 들어가고, 어떠한 변경도 허용하지 않는다. 모듈들은 이것이 완료되면 적절한 신호를 반환한다. 모든 세컨더리 모듈들이 리드-온리 모드를 확인하면, 메시지가 모든 프라이머리 모듈들로 전달되고 동기화(synchronization)를 시작한다. 프라이머리 모듈들이, 대응하는 세컨더리 모듈들과 완전히 동기화가 되면, 활성(activation) 명령이 프라이머리 모듈들로 전달되고, 스탠바이(standby) 명령이 세컨더리 모듈들로 전달된다. 정상적인 운영이 다시 시작된다.
프라이머리 코어 A가 인액티브 상태가 되고 페일오버가 발생하는 전형적인 상황은 서버 하드웨어 고장, 서버 파워 고장, 네트워크 디바이스 고장, 네트워크 디바이스 파워 고장, 네트워크 연결 고장 및 소프트웨어 업그레이드를 포함한다.
IAMB(35)는 시스템 내의 모듈들(34) 간에 사용되고, 어떤 두 모듈 간에 최적의 경로에 걸쳐 연결을 탐지하고 확립하기 위한 최단 경로 우선 알고리즘(shortest path first algorithm)을 사용하는 모든 인터페이스들 상에서 동작하도록 설정된다. 전형적인 HA-페어(pair)에서, 서버들(즉, 코어 A, B)은 다중의 물리적 인터페이스들을 가진다. 이것은 잠재적인 문제를 내포하는데, 서버들은 서로 통신할 수 없지만, 양쪽은 네트워크의 나머지로 통신 가능하게 되는 것과 같이 네트워크에서 문제가 네트워크를 분리시킬 수 있다. 이러한 상황으로부터 보호하기 위해서, 전용의 물리적 링크가 두 서버 간에 제공될 수 있다. 전형적으로, 두 서버의 이더넷 인터페이스 간에 직접적으로 중개 디바이스가 없는 크로스 이더넷 연결(crossed Ethernet connection)이다.
코어 모듈 엘리먼트 매니저 (33)은 페일오버 메커니즘을 제어한다. 코어 모듈 엘리먼트 매니저(33)는 IAMB(35) 위에서 동작하고, 시스템 내에서 각 모듈(34)과 접속을 유지한다. 만일 코어 모듈 엘리먼트가 그것의 대응물(counterpart)과 접속을 잃는다면, 페일오버가 유발된다.
HA 페어에서 모듈들 간의 데이터 동기화는 다음과 같은 방식으로 일어난다.
외부의 어플리케이션들은 EAPI 모듈(34f)을 통하여 시스템과 접속한다. EAPI 모듈(34f)은 프라이머리 및 세컨더리 서버 A, B 모두 상에서 활성화 상태이다. 서버들 중 하나가 비활성화되는 이벤트에서, 그 서버를 위한 EAPI 모듈(34f)은 응답할 수 없게 되고 세션은 중단될 것이다. 그 시점에서 외부의 어플리케이션에 의하여 생성되었지만 넘겨지지 않은 데이터는 손실될 것이다. 작업으로의 복원을 위하여는 외부의 어플리케이션에 의하여 새로운 연결이 수립되어야 한다. 이것은 어플리케이션에 의해서 자동으로 수행되거나, 사용자의 행위에 의해서 수동적으로 수행 될 수 있다.
CJM(34h)은 전체 컨피규레이션 트리를 코어 서버들 A, B 상의 메모리에 저장한다. 활성화된 CJM(34h)은 또한, 셀(24)에게 업데이트를 제공하고, 데이터베이스 오퍼레이션을 수행한다. 두 서버들 상의 CJM 모듈들 간에는 활성(active) 동기화 또는 진행 중인 통신이 존재하지 않는다. 대신에 스탠바이 상태의 CJM(34h)(B)이 DBAPI 모듈로부터 외부의 데이터베이스로 만들어지는 모든 업데이트들의 복사본을 수신한다. 그리고 이 업데이트들을, 그 때문에 액티브 CJM 컨피규레이션 트리와 동기화된 상기 컨피규레이션 트리의 자신의 메모리 카피로 삽입한다.
DBAPI(34d)는 데이터베이스(32)로 쓰기(write) 동작을 동기화한다. 스탠바이 DBAPI(34d)(B)는 쓰기 동작의 복사본을 수신하고, 대응되는 변경을 스탠바이 데이터베이스(32)(B)에 생성한다. 게다가 스탠바이 DBAPI(34d)(B)는 상기 데이터베이스로 생성된 상기 변경를, 귀를 기울이는 모듈에(예를 들면, 컨피규레이션 트리 테이블의 변경에 귀를 기울이는 CJM(34h)(B)에) 송신한다.
시스템 매니저(34a)는 그것의 대응물 파일 저장소 내의 모든 파일들을 예약(subscribe)한다. 이것은 각 시스템 매니저(34a)가 그것의 대응물(counterpart) 상에서 사용 가능한 모든 파일들을 가지는 것을 확실하게 한다. 상기 대응물은 페일오버 상태일 때 수신되는 모든 오퍼레이팅 시스템 코어 이미지들을 포함한다. 코어 및 오퍼레이팅 시스템 이미지들은 복구 동안에 동기화된다.
로그 매니저(34c)는 데이터베이스의 리드-온리(read-only)/리드-라잇(read-write) 상태와 무관하게 페일오버 동안에 동작을 계속한다. 정상 동작 동안에 액티 브/프라이머리 로그 매니저(34c)(A)는 디스크에 쓰여지는 모든 로그 메시지를 스탠바이/세컨더리 로그 매니저(34c)(B)로 포워딩한다. 페일오버가 발생하면, 이제 액티브 상태가 되는 스탠바이/세컨더리 로그 매니저(34c)(B)는 현재 로그 파일을 순환(rotate)시킨다. 이제 그것(B)만이 로그를 받는 로그 매니저(34c)이므로, 로그들은 새로운 로그 데이터베이스 파일에 저장되고 정상적인 로그 파일 순환(rotation) 규칙이 적용된다.
복구 동안에, 순환된 로그 데이터베이스(34c')는 동기화되지 않은 로그 매니저(34)(A)로 보내진다. 동기화 동안에 수신되는 새로운 로그 메시지들은 활성화 상태의 로그 매니저(34c)(B)에 의해 씌여지고, 동기화되지 않은 로그 매니저(34)(A)로 큐(queue)에 얹어진다. 정상 동작 동안에 동기화를 유지하기 위해서 사용되는 것과 동일한 메커니즘이 사용된다. 만일 액티브 로그 매니저가 세컨더리 로그 매니저(34c)(B)라면, 거의 모든 로그들이 전달되었을 때 그것은 스탠바이/프라이머리 로그 매니저(34c)(A)에게 신호를 보낼 것이다. 그러면 프라이머리 로그 매니저(34c)(A)는 액티브 상태가 되고 메모리에 로그될 첫 번째 메시지를 유지한다. 세컨더리 로그 매니저(34c)(B)는 이 시점에서 스탠바이로 진입한다. 그러나 부가적인 로그 메시지가 수신될 수도 있기 때문에, 동기화는 세컨더리의 큐(queue)가 비워질 때까지 계속된다. 프라이머리/액티브 로그 매니저(34c)(A)는, 큐가 비거나 현재 메모리에 있는 것과 동일한 로그 메시지(액티브가 된 후에 첫번째 로그된 것)를 수신할 때까지, 세컨더리로부터 받은 모든 로그 메시지를 기록한다.
넷 로그 모듈(34b)은 로그 매니저 모듈(34c)와 같은 방식으로 동작하고, 데 이터베이스의 리드-온리/리드-라잇 상태에 무관하게 페일오버 동안에 계속해서 동작한다. 정상 동작 동안에, 액티브/프라이버리 넷 로그(34b)(A)는 스탠바이/세컨더리 넷 로그(34b)(B)로 디스크에 기록되는 모든 로그 메시지를 포워딩한다. 페일오버가 발생하면, 이제 액티브가 된 스탠바이/세컨더리 넷 로그(34b)(B)는 현재 로그 파일을 순환시킨다. 이제 그것만이 로그들을 수신하는 넷 로그이므로, 로그들은 새로운 로그 데이터베이스 파일에 저장된다. 정상적인 로그 파일 순환(rotation) 규칙이 적용된다. 복구 동안에, 순환된 로그 데이터베이스는 동기화되지 않은 넷 로그(34b)(A)로 전달된다. 동기화 동안에 수신되는 새로운 로그 메시지들은 액티브 넷 로그(34b)(B)에 기록되고 동기화되지 않은 넷 로그(34b)(A)로 큐에 얹어진다. 정상 동작 동안에 동기화를 유지하기 위해서 사용되는 것과 동일한 메커니즘이 사용되다. 올바른 액티브 넷 로그(34b)로 스위치오버(switchover)하는 과정은 로그 매니저(34c)에 관한 것과 동일하다.
스크립트 엔진(34g) 스크립트 저장소는 IAMB(35)에 의해 동기화된다. 이것은 페일오버 동안에 더해지거나 변경되는 모든 스크립트들이 복원 동안에 동기화되는 것을 확실하게 한다. 페일오버 이벤트가 발생할 때 나오는 스크립트는 차단될 것이다.
SMTB 모듈(34e)은 페일오버 상태 정보를 가지고 있지 않다. 이것은, 페일오버 이벤트가 발생하면 상기 모듈은 단지 스탠바이 서버 상에서 단지 활성화됨을 의미한다.
페일오버 이벤트는, 인액티브(inactive) 시스템 상의 코어 모듈 엘리먼트 매 니저(33)가 액티브 시스템 상의 그것의 대응물과의 통신 내에서 비정상을 감지할 때 인액티브(inactive) 시스템 상의 코어 모듈 엘리먼트 매니저(33)에 의하여 유발된다. 만일 모든 통신이 불명되면, 세컨더리 코어 모듈 엘리먼트 매니저(33)(B)는 모든 모듈들(34)(B)을 활성화시킬 것이다. 세컨더리 코어 모듈 엘리먼트 매니저(33)(B)와 동일한 서버 상의 다른 모듈들(34)(B)은 이미 상기 서버 상의 코어 모듈 엘리먼트 매니저(33)(B)와 통신을 수립한다.
페일오버가 발생할 때마다, 세컨더리 서버(B)는 오퍼레이션을 인계받는다. 전형적으로, 컨피규레이션 트리 데이터베이스는 자동적으로 리드-온리 모드로 설정된다. 이것은, 컨피규레이션 트리에 변경을 발생하는 것이 가능하지 않음을 의미한다. 컨피규레이션 트리가 리드-온리이므로, 더 이상 어떤 오브젝트를 더하거나 변경하거나 삭제할 수 없다. 이것은 차례로, 어느 네트워크 엘리먼트 또는 링크도 변경될 수 없음과, 컨피규레이션 라인 오브젝트(configuration line objects) 또는 파라미터를 변경할 수 없음을 의미한다. 가입자들은 그들이 어떤 서비스를 기대하는지 정의하기 위한 서비스 첨부 오브젝트(service attach objects)를 요구하기 때문에, 현재의 가입자들은 그들의 현재 서비스를 계속 받지만, 서비스는 변경될 수 없다. 새로운 가입자들은 더해질 수 없고 만기된 서비스는 서비스는 삭제될 수 없다. 리드-온리 모드에서 컨피규레이션 트리를 유지하는 것의 장점은 페일오버 복구가 훨씬 더 간단하다는 점이다. 컨피규레이션 트리 데이터베이스는, 프라이머리 서버(A)가 다시 한번 액티브가 되면, 동기화될 필요가 없다. 이것은 복구 시간을 감소시킨다. 게다가, 데이터가 더해지지 않기 때문에, 프라이머리(A)가 동작에서 벗 어난 동안에 세컨더리 서버(B) 상에 문제가 발생하더라도 정보를 잃을 염려가 없다. 어떤 데이터도 더해질 수 없기 때문에 어떤 데이터도 잃게 될 수 없다. 일단 복구가 완료되면, 컨피규레이션 트리는 리드-라잇 모드로 돌아온다.
고장의 유형에 따라서, 지속된 시간 기간 동안 컨피규레이션 트리를 리드-온리 모드로 유지하는 것은 바람직하지 않을 수 있다. 따라서 세컨더리 서버(B) 상에서 동작할 때라 하더라도 컨피규레이션 트리(그리고 시스템의 나머지)를 리드-라잇 모드로 설정하는 것이 가능하다.
시스템이 한번 리드-라잇 모드이면 그것은 페일오버 이벤트 이전과 동일하게 작동한다. 주요한 차이는 한번 프라이머리 서버(A)가 다시 액티브가 되면, 데이터베이스들은 재동기화되어야 한다는 점이다. 이것은 교환할 정보의 양에 따라서 연장된 시간이 걸릴 수 있다.
운영의 복구는 관리적 작업이다. 고장난 서버의 문제가 일단 해결되면, 서버는 재기동될 수 있다. 고장난 서버(A)가 다시 액티브가 되면, 시스템 관리자는 적절한 어플리케이션을 시작시킴으로써 복구를 개시한다. 코어 모듈 엘리먼트 매니저 모듈(32)(B)은, 재기동되는 서버(A) 상의 모듈들(34)이 그들의 액티브한 대응물들(34)(B)과 동기화가 될 때까지 데이터베이스(32)(B)를 리드-온리 모드로 설정한다. 데이터베이스 또는 파일 저장소들로의 업데이트는 리드-온리 모드일 때 만들어지지 않으므로, 리드-온리 모드는 더 빠른 동기화를 확실히 한다. 동기화 동안에 수행되는 활동은 각 모듈(34)마다 개별적이다. IAMB(35)를 통한 모듈들(34) 간의 연결은, 동기화가 완료될 때까지 수립되지 않는다(예를 들어, CJM(34h)에서 CRE(36)로의 연결). 모든 모듈들(34)이, 그들과 동기 상태의 코어 모듈 엘리먼트 매니저(33)로 보고하고 나면, 상기 코어 모듈 엘리먼트 매니저는 올바른 모듈들이 활성화됨을 확실히 한다. 이것은 예를 들어, 현재 액티브 상태의 EAPI 모듈(34f)(B)이 폐쇄되고 외부 어플리케이션이 다른 EAPI 모듈(34f)(A)에 재접속해야 함을 의미할 수 있다.
복구 동안에, 시스템은 동기화의 계속구간 동안 리드-온리 모드로 물러난다.
코어(22)로의 모듈화된 접근은 코어의 다양한 기능의 효과적인 동작을 가능하게 한다. 이하에서는 모듈들(34a-h)의 상세한 설명을 하기로 한다.
시스템 매니저 모듈(34a)은 다양한 유형의 파일들이 저장되는 중앙 파일 저장소를 관리한다. 시스템 매니저(34a)는 요구되는 대로 상기 파일들을 시스템의 다른 부분들로 분배하고, 시스템의 다른 부분들로부터 오는 파일들에 대하여 집합소로서 역할을 한다. 시스템 매니저(34a)가 기동되면, 그것은 파일 저장소 경로(file repository path) 내에 존재하는 파일들의 목록을 생성한다. 그리고 시스템 매니저(34a)는 어플리케이션 간 메시지 버스(inter-application message bus, IAMB)(35)에 연결하고, 요청에 대하여 귀기울이기 시작한다. 그럼 다른 모듈들은 시스템 매니저(34a)에 연결하고 어떤 유형의 파일들에 대한 관심(예약, subscribe)을 보고한다. 시스템 매니저(34a)는 마찬가지로, 연결 모듈들로부터 파일들을 예약(subscribe)한다.
내부 파일 전송 서브시스템(IAMB(35)의 최상에 있는 레이어로서 존재하는)은, 서브스크립션(subcription)과 매칭되는 파일들의 서브스크라이빙(subscribing) 모듈로의 전송을 핸들링한다. 파일 전송은 내부 파일 전송 서브시스템에 의하여 자동으로 이루어진다. 파일 저장소 경로로 더해지는 파일들은, 새로운 파일이 이용 가능함을 상기 모듈에 통지하는 상기 서브시스템에 의하여 자동으로 감지된다. 그러면 상기 모듈은 상기 서브시스템을 이용하여 파일 전송을 요청할 수 있다. 상기 서브시스템은, 시스템 매니저(34a)와 파일 전송을 수행하는 모든 모듈들에 의해 사용된다.
오퍼레이팅 시스템 이미지들은, 어떤 네트워크 엘리먼트(40) 상에서 어느 오퍼레이팅 시스템 이미지가 수행될지 지정하는 명령행 오브젝트(command line objects)의 내용에 기초하여, 엘리먼트 매니저 모듈(38)에 의해서 요구된다. 오퍼레이팅 시스템 이미지 패키지들은 GUI로부터 시스템 매니저로 업로드된다.
시스템 로깅 기능들은 넷 로그 모듈(34b)과 로그 매니저 모듈(34c) 두 모듈에서 제공된다. 본 실시예에서는 이들이 분리되어 있으나 이들은 어떤 케이스에서는 단일 모듈로 결합될 수 있다. 넷 로그 모듈(34b)은 주소 히스토리 로그(address history log) 및 네트워크 내의 가입자들로의 IP 주소 할당과 관련된 중요한 정보를 가지고 있다.
넷 로그 (34b)에 의해 생성되는 데이터베이스 파일들은 크기와 수명게 기초하여 순환되도록 설정된다. 최대 파일 사이즈와 최대 수명에 다다를 때마다 로그 파일은 순환된다.
로그 매니저 모듈(34c)은 시스템 로그를 가진다. 이 정보는 시스템의 오퍼레이션과 관련되고, 네트워크 엘리먼트에 관련된 활동을 포함하는 시스템의 오퍼레이 션 내의 중요한 이벤트에 관한 정보를 담고 있다. 로그 매니저(34c)는 또한, 네트워크 액션 요청(network action request, NAR) 메시지의 수령자이며, 그러한 이벤트들을 핸들링하도록 고안된 스크립트 엔진 모듈(34g) 내에서 자동화되는 스크립트들을 유발한다. 로그 매니저 모듈(34c)은 또한 단순 데이터베이스(34c') 내에 시스템 로그를 저장하고, 또한, 특정 이벤트를 핸들링하는 스크립트를 수행하도록 스크립트 엔진 모듈(34g)을 호출하는 것을 포함하는 네트워크 액션 요청 이벤트 핸들링을 위해 역할한다.
시스템 모듈들은 그 시스템 내에서 발생하는 이벤트들 및 상태들과 관련된 로그 메시지들을 생성할 수 있다. 로그 메시지들은 IAMB(35)를 통하여 보내진다. 로그 매니저는 로깅 채널들에 귀기울이고 수신된 로그 메시지들을 데이터베이스(34c')에 저장한다.
만일 모듈이 로깅 정보로 가득 차게 되면, 로그 매니저는 자동적으로 로그 메시지들에 우선 순위를 매기기 시작한다. 낮은 우선 순위의 로그 메시지들은, 만일 큐가 어떤 임계치 이상으로 커지면 탈락된다. 압박이 감소되면 로그 매니저는 낮은 우선 순위의 메시지들의 저장을 다시 계속한다.
네트워크 액션 요청들(NARs)은 시스템 모듈에 의해 유발되는 특별한 이벤트이다. NAR 이벤트는, 해결하기 위해 외부의 상호작용을 요구하는 예외적인 상태를 가리킨다. NAR 이벤트의 예는, IP 주소 풀(pool) 고갈과, 미지의 네트워크 엘리먼트로부터의 접속이 있다. 만일 시스템이 상기 상황을 스스로 해결할수 없다면, GUI를 통하여 운영자에 의해서 또는 스크립트 엔진 모듈(34g) 상에서 수행되는 자동화 된 스크립트에 의해서, 원조가 요구된다. 로그 매니저(34c)는 NAR 채널에 귀기울이는데, 이는 로그 매니저(34c)가 모든 NAR 이벤트들을 수신하는 것을 의미한다. 상기 이벤트들은 순환되지 않는 별도의 데이터베이스 파일에 저장된다. 그리고 상기 이벤트는 알려진 스크립트의 리스트에 대응하여 매칭되고, 만일 어떠한 매칭되는 스크립트가 발견되면, 상기 이벤트는 상기 스크립트를 수행하라는 명령과 함께 스크립트 엔진(34g)에 전송된다. 스크립트 엔진(34g)이, 상기 스크립트를 성공적으로 핸들링햇음을 보고하면, NAR 이벤트는 NAR 이벤트 데이터베이스로부터 삭제된다.
데이터베이스 어플리케이션 인터페이스(DBAPI) 모듈(34d)은 데이터베이스 스토리지 및 다른 코어 모듈들을 위한 접근 설비(access facilities)를 제공한다. ODBC가, 컨피규레이션 트리와 시스템의 운용을 위한 다른 중요한 데이터를 가지는 외부의 데이터베이스(32)와 통신하기 위해서 사용된다.
DB-API(34d)는 시스템 모듈들과 외부의 데이터베이스(32) 사이의 추상 레이어(abstraction layer)를 제공한다. 그 목적은 다른 모듈들에 의한 데이터베이스 운영과 무관한 외부 데이터베이스의 선택을 만들기 위함이다. 데이터베이스 접근을 요구하는 모듈은 DPAPI를 통하여 연결을 생성한다. 데이터베이스 테이블들로부터 삽입, 업데이팅, 그리고 선택을 위한 일반적인 함수로의 호출들은, 내부 시스템 API로부터 데이베이스로의 ODBC 호출로 변형된다.
가입자 관리 도구 브리지 모듈(34e)은, 외부 가입자 관리 도구 어플리케이션(미도시)와의 상호작용을 허락하기 위해, 외부 API(37)에 구속된다.
외부 어플리케이션 인터페이스 모듈(34f)은, GUI, 자기등록 포털(self- registration portals), 그리고 시스템 데이터에 접근을 가지는 가입자 관리 도구 등과 같은 외부 어플리케이션을 제공한다. EAPI 모듈(34f)은, 다른 시스템과 통신할 때, 외부 어플리케이션을 위한 어플리케이션 인터페이스를 제공한다. EAPI (34f)를 사용하는 외부 어플리케이션의 예가 GUI이다.
EAPI(34f)로의 이출(export) 함수들을 가지는 다른 시스템 모듈들은 외부 어플리케이션에 의해 호출될 수 있다. EAPI(34f)는 상기 호출될 함수들과 모든 파라미터들을 분석하고, 모든 요구되는 파라미터들이 제공되고 적절한 타입인지 검증하고, 상기 함수를 호출할 함수를 생성한다. 함수들은 EAPI에 내재될 수도 있고, 시스템 모듈들 중 하나에 위치할 수도 있다. 만일 상기 함수가 시스템 모듈들 중 하나에 위치한다면, 상기 함수는 IAMB(35)를 통하여 호출된다.
EAPI(34f)의 주된 프론트-엔드(front-end)는 SOAP/XML 프론트-엔드이다.
EAPI(34f)는 사용자 인증 메커니즘을 담고 있다. 여기서, 외부 어플리케이션들을 통하여 접속하는 사용자들은, 데이터와 함수들에 접근이 주어지기 전에 인증을 받아야 한다. 인증이 되면, 사용자가 상기 사용자가 속한 이름공간(namespace)에 관련된 모든 데이터와 함수들에 접근할 수 있는 세션이 확립된다.
스크립트 엔진 모듈(34g)은 자동화된 스크립트 실행을 제공한다. 정상 동작 동안에, 시스템이 그 상황을 해결하기 위하여 외부의 로직을 요구하는 상황이 발생할 수 있다. 이것의 예는, 미지의 네트워크 엘리먼트가 시스템에 접속을 시도하는 경우이다. 그러한 엘리먼트는 정상적인 배치(deployment)의 부분일 수 있고, 자동화된 스크립트가, 상기 엘리먼트가 접속할 때, 데이터베이스 내에 필요한 오브젝트 들을 생성할 수 있다. 스크립트 엔진 모듈(34g)은 또한, GUI를 통하여 네트워크의 관리에서 도움을 줄 위저드(wizards)를 위한 프레임워크를 제공할 수 있다.
컨피규레이션 작업 매니저(CJM) 모듈(34h)은 컨피규레이션 트리를 가진다. 컨피규레이션 트리는, 가입자들에 이용 가능한 서비스, 가입자들이 네트워크 내에 어디에 존재하는지, 그리고 그들이 가입한 서비스들을 기술한다. 컨피규레이션 트리는 또한, 네트워크 엘리먼트들(26)의 컨피규레이션을 포함하는 네트워크 토폴로지 정보를 담고 있다. CJM(34)은 컨피규레이션 트리를 유지하고, 외부 어플리케이션들로부터 상기 트리에의 모든 변경은 셀(24) 내로 배치되기 전에 분석된다.
CJM(34h)은, 모든 오브젝트의 생성, 삭제, 그리고 업데이트 오퍼레이션의 역할을 하고, 시스템 내의 IP 주소 관리를 핸들링하는 자원 관리 서브시스템을 포함한다.
CJM(34h)은 스타트-업 시에 DB-API 모듈(34d)에 연결된다. 그리고 완전한 컨피규레이션 트리를 메모리에 읽기를 시도한다. 완료되면, CJM(34h)은 시스템 내의 다른 모듈들로부터 연결을 기다린다. 사용자가 GUI를 통하여, 컨피규레이션 트리 내의 오브젝트들을 보고, 생성하고, 삭제하고, 변경할 때, 오브젝트 처리를 위해 CJM(34h)으로 포워딩되는 호출들(calls)이 EAPI 모듈(34f)로 들어간다. EAPI(34f)에 더하여, 셀(24) 내의 컨피규레이션 렌더링 엔진(CRE)(36)이 또한 CJM(34h)과 통신한다.
CRE(36)가 CJM(34h)에 접속할 때, 모듈들 간에 세션이 확립된다. CRE(36)는 네트워크 내에서 그것의 위치와 관련된 컨피규레이션 트리의 지역적 사본(local copy)을 가지고 있다. 두 모듈이 접속할 때, 그들은 CRE가 가지고 있는 컨피규레이션 트리의 지역적 사본의 버전과, 현재 CJM의 메모리에 있는 버전을 비교한다. 만일 다르다면, CRE(36)는 그것의 사본을 내보내고, CJM(34h)으로부터 새로운 사본을 받는다. 이것은 CRE(36)가 CJM(34h)과 컨피규레이션 트리의 정확히 동일한 사본을 가지는 것을 확실하게 한다.
CJM(34h)에서 컨피규레이션 트리의 변경이 수신되고 핸들링되면, 그것은, 만일 있다면, CRE들(36) 중 어느 것이 업데이트될 필요가 있는지 결정한다. 그러면 업데이트는 적절한 CRE(36)로 전달된다.
CJM(34h)은 컨피규레이션 트리의 변경이 정확하고 허가될 수 있도록 배치되는 것을 가능하게 할 것을 요구한다. 이것은 검증-수용 절차(verify-commit procedure)를 통하여 제어된다. 오브젝트의 생성, 삭제, 변경 오퍼레이션을 포함하는 컨피규레이션 트리의 변경들은, 그들이 영구적으로 컨피규레이션 트리로 수용되기 전에, 시스템 모듈들에 의해 검증되어야 한다. 검증 오퍼레이션이 호출되면, CJM(34h)은, 마치 오브젝트들에 변경이 포함된 것처럼, 컨피규레이션 트리에 조정을 가한다. 이것은 셀 모듈들 내에서 컨피규레이션 렌더링과 컨피규레이션 검증을 일으키도록 한다. 그러나 컨피규레이션은 네트워크로 실제로 배치되지 않는다. 검증이 완료되면, 존재하는 에러가 리포트되고 이전의 컨피규레이션 트리로의 유효한 롤백(rollback)이 발생한다. 에러가 발견되지 않는다면, 작업은 수용(commit)을 위해서 준비된다. 그렇지 않다면 에러는 정정되어야 하고 새로운 검증 오퍼레이션이 발생한다.
수용(commit)이 되면, 변경은 영구적으로 컨피규레이션 트리에 수용되고(앞으로 상기 작업이 발생되지 않는다면, 이하 참조), DABPI를 통하여 데이터베이스로 저장된다. 그리고 변경은 즉시 효력이 나타난다. 컨피규레이션은 요구되는 대로 네트워크로 만들어지고(rendered) 배치된다.
CJM(34h)의 자원 관리 서브시스템은 시스템 내의 자원을 관리하는 역할을 한다. 전형적인 자원은, 네트워크 내의 가입자들에 할당 뿐만 아니라 인터페이스 주소로 사용되는 IPv4 주소 공간이다. 시스템은, IP 주소 관리를 위하여 특유한 오브젝트로, 자원 IPv4 오브젝트를 가진다. 상기 오브젝트는 IPv4 주소 공간의 조각을 나타내며, 주소 풀(pool)로 불려진다. 상기 오브젝트의 이름은, 한 오브젝트-트리의 루트에 가장 가까운 오브젝트-가 상기 주소 풀의 100%의 오브젝트를 나타내도록, 다수의 오브젝트들을 함께 연결하기 위해 사용된다. 컨피규레이션 트리 가지들(branches)의 더 아래에 있는, 동일한 이름을 가지는 다른 오브젝트들은 주요 풀의 더 작은 부분-직접적인 조상(immediate ancestor)의 상기 주소 풀의 100%까지-을 나타낸다.
자원 IPv4 오브젝트가 생성되고 컨피규레이션 트리에 수용되면, 그것이 나타내는 상기 풀의 주소들은 그것의 조상(ancestor)들로부터 할당된다. 루트 노드에 있는 전체 IPv4 주소 풀을 나타내는 보이지 않은 조상이 있다. 그래서 사실은 자원 오브젝트를 루트 노드의 아래에 직접 생성할 때라 하더라도 할당이 항상 만들어진다.
만일 오브젝트가 조상(트리의 루트에 더 가까운 다른 자원 IPv4 오브젝트)을 가지지 않는다면, “글로벌” IPv4 공간으로부터 할당하기 위한 서브넷(subnet)과 프리픽스 길이(prefix length)가 지정되어야 한다. 조상 오브젝트가 있다면, 상기 서브넷은 언제 상기 오브젝트가 생성되어야 할지 지정하기 위해 선택적이다. 만일 지정되면, 시스템은 조상 자원 오브젝트 풀로부터 지정된 서브넷을 할당할 것을 시도할 것이다. 만일 서브넷이 이미 할당되어 있다면, 검증 단계가 새로운 자원 오브젝트에 대하여 실패할 것이다. 만일 조상 자원 오브젝트가 있다면, 상기 새로운 자원 오브젝트를 위해 요구되는 프리픽스 길이를 지정하는 것으로 충분한다. 그러면 시스템은, 새로운 오브젝트가 컨피규레이션 트리로 수용되면 조상 풀로부터 그 사이즈의 서브넷을 할당할 것이다.
이 메커니즘은, 풀로부터의 특정 서브넷이 (만일 요구된다면) 지정될 것을 허용한다. 그러나 또한, 사용되는 실제 서브넷이 중요하지 않을 때, 요구되는 그 사이즈의 서브넷만이 지정될 것을 허용한다(다음에 이용 가능한 요구되는 사이즈의 서브넷을 할당하는 것은 시스템에 달려 있다).
링크는 둘 또는 그 이상의 네트워크 엘리먼트들 사이의 연결이다. IP 네트워크를 위하여는, 상기 링크는 서브넷을 요구하고, 상기 링크와 연결된 각 네트워크 엘리먼트의 각 인터페이스는 또한 주소를 가져야 한다. 주소 풀 시스템은 링크들이 동적으로 할당되는 것을 허용한다. 그러나 또한, 요구된다면 각 인터페이스에서 사용되는 정확한 주소들을 지정하는 것을 가능하게 한다.
코어 모듈들(34a-h)의 오퍼레이션은, 이하에서 자세히 설명될 백업 시스템에 의하여 코어 기능의 고가용성(high availability)을 유지하기 위한 역할을 하는 코 어 모듈 엘리먼트 매니저(33)에 의해 제어된다.
셀(24) 내에서, CRE(36)는, 그 셀(24)에 의해서 커버되는 네트워크의 부분을 커버하는 컨피규레이션 트리의 지역적 사본을 가지고 있다. CRE(36)는 상기 컨피규레이션 트리로부터 오브젝트들을 수집하여 각 네트워크 엘리먼트(40)로 배치될 최종 컨피규레이션을 형성한다. 이 과정은 컨피규레이션 라인 오브젝트(configuration line objects) 및 파라미터들을 연결하는 것, IP 주소들을 할당하는 것, 엘리먼트 매니저 모듈(38)로 전달되는 최종 네트워크 엘리먼트 컨피규레이션을 형성하기 위해서 모든 컨피규레이션 전처리기(pre-processor) 상태를 결정하는 것을 포함한다.
CRE(36)는 셀(24)의 한 부분이다. 그것의 주요 목적은, 그것의 제어 하에 네트워크 엘리먼트의 각 유형에 대하여 완전한 컨피규레이션을 생성하는 것이다. 그러면 상기 컨피규레이션은, 검증(verification)과 배치(deployment)를 위하여, 엘리먼트 매니저(38)로 전달된다. CRE(36)는 주소 할당의 역할을 하고 모든 알려진 클라이언트들의 목록을 관리한다.
CRE(36)은 코어 내의 CJM(34h)과 통신한다. CJM(34h)은 전체 네트워크를 위한 완전한 컨피규레이션 트리를 관리한다. 각 CRE(36)는, 셀(24)에 의해 커버되는 네트워크의 부분을 기술하는 컨피규레이션 트리의 지역적 사본을 수신한다(CRE(36)는, 그것이 단 하나의 동작하는 셀(24)이 아닌 한 컨피규레이션 트리의 완전한 사본을 가지지 않는다). CRE(36)가 기동하면, 그것은 CJM(34h)과 함께 작업 세션을 확립하고 작업 아이디를 받는다. CJM(34h)은 계속해서 각 연결된 CRE(36)와 함께 사용되는 작업 아이디 데이터베이스 버전을 검증한다. 만일 작업 아이디가 변경되면(세션이 다시 시작되었다는 지시, 예를 들면 네트워크 문제), CJM(34h)은 CRE(36)에게 그것의 컨피규레이션 트리를 제거하고, 컨피규레이션 트리를 다시 CRE(36)에게 보낸다. 이것은 CRE(36)가 항상 가장 최근의 그리고 정확한 컨피규레이션 트리의 사본을 가지도록 하여 준다.
정상 운영 동안에, CJM(34h)은 네트워크 토폴로지의 변경, 컨피규레이션 업데이트 등을 함께 컨피규레이션 트리로 업데이트를 보낸다. CRE(36)는 그것이 받은 변경을 분석하고, 컨피규레이션을 만들기(render) 위한 내부 작업을 개시한다.
어떤 작업들은 타이머에 의해 제어될 수 있다. 정확한 시점 또는 적절한 간격을 가지고 발생하도록 말이다. 이러한 이유로, CRE(36)는, 컨피규레이션 업데이트를 만들기(render) 위한 내부 작업을 개시하는 내부 타이머를 동작시킨다.
CJM(34h)에 더하여, 개시되는 내부 작업들, 그러한 작업들은 또한 네트워크 내에서의 활동의 결과로 시작될 수 있다. 전형적인 예는, 네트워크 내의 클라이언트가 요구할 때와 DHCP를 가지는 주소이다. 적절한 메시지가, 엘리먼트 매니저(38)가 CRE(36)로의 클라이언트 컨텍스트를 열도록 유발한다. 이것은 차례로 CRE(36)가, 클라이언트를 위한 적절한 컨피규레이션을 만들고, IP 주소들을 할당하고, 네트워크 로그와 클라이언트를 위한 가능한 동적 DNS 업데이트를 생성하고, 그리고 물론 만들어진 컨피규레이션을 배치를 위해 엘리먼트 매니저(38)로 송신해야 함을 의미한다.
CRE(36) 내의 중요한 기능은 주소 할당이다. 클라이언트들에게 할당될 IP 주 소를 요구하는 서비스, 링크들, 또는 네트워크 엘리먼트들이 CRE(36)를 통하여 통과하면, CRE(36)는, 컨피규레이션 트리 내의 자원 아이넷 오브젝트(resource inet objects)에 의해 정의된 대로, 어드레스 풀로부터 사용되는 주소들을 할당한다. CRE(36)는 최소 블록, 예를 들어 주소들의 /30 블록을 각 네트워크 엘리먼트에게 할당한다. 클라이언트 컨텍스트들이 열릴 때, 상기 블록으로부터의 개별 주소들이 할당되고 만들어진(rendered) 컨피규레이션으로 삽입된다.
EAPI(34f)를 통하여, CRE(36)는 티켓을 발행하고 취소하는 기능을 제공한다. 티켓은 단지 변수에 붙여지는 명명된 값이다. 티켓은 클라이언트-상기 클라이언트를 위해서 티켓을 생성-에 구속되기 때문에, 렌더링 서비스 컨피규레이션 시에 그것은 컨피규레이션 라인 오브젝트(CLOB) 내의 조건문(condition statements)과 함께 사용될 수 있다. 예를 들어, 외부의 포털 어플리케이션에 의하여 클라이언트를 위하여 설정되거나 설정되지 않은, 웹로긴(weblogin)이라 명명된 티켓을 가정하면 된다. 클라이언트가 명백하게 네트워크에 접속하면, 이용 가능한 티켓은 없다. 적절한 CLOB에서, 그 클라이언트에 대하여 그 포탈 이외에는 무엇이든 접근을 막는 액세스 리스트를 표현하기 위해 조건(condition)이 사용될 수 있다. 클라이언트가 포털에 접근하여 네트워크에 로긴하면, 포털 어플리케이션은 $client.ticket.weblogin 티켓을 상기 클라이언트를 위해 생성한다(그의 IP 주소에 기초하여). EPAI(34f)를 통한 CRE(36)로의 상기 생성 콜은 CRE(36)가 상기 클라이언트를 위해 컨피규레이션을 다시 만들도록(re-render) 하는 작업 업데이트를 생성한다. 이전의 조건이 이제 거짓이므로, 액세스 리스트는 더 이상 상기 클라이언트 를 위해 생성되지 않고 상기 클라이언트는 전체 네트워크에 접근할 수 있다.
엘리먼트 매니저 모듈(38)은 네트워크 엘리먼트의 각 유형에 특유하다. 전형적으로 이것은 문제되는 특정 하드웨어 상에서 돌아가는 오퍼레이팅 시스템을 포함한다. 모듈(38)은 CRE(36)로부터 컨피규레이션을 받고, 모든 컨피규레이션 문(statements)이 정확하고 그것이 수행될 오퍼레이팅 시스템에 유효한지 검증한다. 네트워크 엘리먼트(40)는, 컨피규레이션을 받기 위해, 적절한 프로토콜을 통하여 엘리먼트 매니저(38)에 접속한다.
시스템은, 다른 유형의 네트워크 엘리먼트들(40)을 위하여, 다수의 엘리먼트 매니저들(38)을 허용한다. 엘리먼트 매니저는 네트워크 엘리먼트들(40)에 의하여 사용되는 각 타입의 오퍼레이팅 시스템과 연관된다. 오퍼레이팅 시스템을 위한 엘리먼트 매니저는 적절한 프로토콜을 사용하여 네트워크 엘리먼트들과 통신을 유지한다. 엘리먼트 매니저(38)는 셀(24)의 부분이다. 그것은 CRE(36)로부터 네트워크로 배치할 컨피규레이션을 받는다.
코어 내의 시스템 매니저(34a)는 모든 오퍼레이팅 시스템 이미지들을 포함하는 중앙 파일 저장소를 가지고 있다. 사용자가 GUI에서 오퍼레이팅 시스템 이미지들을 업로드하면, 시스템 매니저(34a)는 그들을 실제 이미지 파일과 검증 라이브러리 파일(verification library file)로 분리시키고, 그들을 상기 저장소에 저장한다. 그리고 시스템 매니저(34a)는 모든 엘리먼트 매니저들(38)에게 새로운 이미지에 관하여 통지한다. 엘리먼트 매니저(38)는, 만일 그것이 상기 이미지를 사용하도록 지정된 엘리먼트들(40)를 가지고 있다면, 새로운 이미지를 요청할 수 있다. 시 스템 매니저(34a)로부터 요청되는 이미지는 셀 서버 상의 엘리먼트 매니저 지역 파일 저장소에 저장된다. 상기 지역 파일 저장소에 존재하는 이미지들만이 네트워크 엘리먼트들(40)로 제공될 수 있다. 이것은 또한, 어떤 오퍼레이팅 시스템 이미지 업그레이드가 발생하기 위하여, 네트워크 엘리먼트(40)가 이미지를 다운로드하기 전에, 이미지가 먼저 시스템으로 업로드되어야 함을 의미한다.
본 발명의 범위 내에서 다양한 변형이 이루어질 수 있다. 예를 들어, 셀 자체가, 세컨더리 서버 상에 복제된 CRE를 가지는 HA 페어로 이루어질 수 있다. CRE-프라이머리와 CRE-세컨더리는 그들 간에 오픈 컨텍스트의 동기화를 유지한다. 그러나 각각은 코어 내의 CJM으로부터 컨피규레이션 트리 및 업데이트들을 수신한다. 프라이머리 및 세컨더리 CRE는 모두 컨피규레이션 트리 상에 동일한 id를 가지고 둘 중 하나가 CJM 내에 유지되는 것과 매치되지 않는다면, 컨피규레이션 트리의 새로운 사본이 셀로 다운로드된다. 그들이 다시 동기화될 때까지 프라이머리 및 세컨더리 CRE 사이에서 모든 변경이 큐(queue)에 넣어진다.
본 발명은 가입자들에게 서비스를 제공하기 위하여 네트워크를 컨피규어(configure)하고 운영하는 방법으로서 산업상 이용가능성이 있다.

Claims (20)

  1. 가입자들에게 서비스를 제공하기 위하여 네트워크를 운영하는 방법에 있어서, 상기 네트워크는 컨피규레이션 시스템을 포함하고,
    상기 컨피규레이션 시스템은,
    - 프라이머리 및 세컨더리 코어를 포함하는 코어 시스템, 여기서 각 코어는 네트워크 컨피규레이션 데이터를 함유하고, 각 코어는 개별적으로 상기 전체 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어함;
    - 상기 코어 시스템에 연결되고 셀에 연결된 적어도 하나의 네트워크 엘리먼트를 포함하는 상기 네트워크의 정의된 부분을 제어하는 것이 가능한 적어도 하나의 셀, 여기서 각 네트워크 엘리먼트는 상기 서비스의 제공을 위해서 다수의 가입자들을 지원함;을 포함하고,
    상기 방법은,
    - 상기 프라이머리 코어를 이용하여 상기 네트워크 및 컨피규레이션 시스템을 운영하는 단계, 여기서 상기 프라이머리 및 세컨더리 코어 내의 네트워크 컨피규레이션 데이터는 주기적으로 변경됨;
    - 상기 프라이머리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트에 관하여 상기 프라이머리 코어의 동작을 모니터하는 단계;
    - 고장 이벤트의 탐지 시에, 상기 네트워크 및 컨피규레이션 시스템의 운영 의 제어를 상기 세컨더리 코어로 이전시키는 단계;
    - 상기 프라이머리 코어가 다시 상기 네트워크 및 컨피규레이션 시스템의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터가 더 이상 변경되지 않도록 상기 세컨더리 코어를 컨피규어하고, 상기 프라이머리 코어의 네트워크 컨피규레이션 데이터와 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터를 동기화하는 단계; 및
    상기 네트워크 및 컨피규레이션 시스템의 운영을 다시 상기 프라이머리 코어로 이전하는 단계;를 포함하는 네트워크 운영 방법.
  2. 제1항에 있어서,
    각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고,
    상기 방법은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 세컨더리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템을 제어하는 시간 동안 변경되지 않도록, 리드-온리(read-only) 모드로 설정하는 단계를 포함하는 네트워크 운영 방법.
  3. 제1항에 있어서,
    상기 각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고,
    상기 방법은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 네트워크 컨피규레이션 데이터가 상기 네트워크 및 상기 컨피규레이션 시스템의 제어 동안에 계속적으로 변경되도록 설정하는 단계를 포함하고, 상기 컨피규레이션 동기화 단계는 상기 프라이머리 코어의 데이터베이스를 상기 세컨더리 코어의 데이터베이스와 동기화하는 단계를 더 포함하는 네트워크 운영 방법.
  4. 제1, 2, 또는 3항에 있어서,
    상기 프라이머리 코어를 이용하여 상기 네트워크 및 상기 컨피규레이션 시스템을 운영하는 동안에, 상기 세컨더리 코어는, 상기 시스템의 오퍼레이션이 상기 세컨더리 코어로 이전될 때 상기 세컨더리 코어가 상기 프라이머리 코어와 실질적으로 동일한 컨피규레이션 및 데이터베이스를 가지도록, 동작 중인 상기 프라이머 리 코어를 미러(mirror)하는 네트워크 운영 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 각 코어는 다른 코어의 동작을 모니터하는 코어 모듈 엘리먼트 매니저를 포함하고, 상기 두 엘리먼트 매니저는 링크되어 있으며,
    상기 프라이머리 코어의 고장을 탐지하는 단계는, 상기 세컨더리 코어 내의 상기 엘리먼트 매니저를 이용하여 상기 링크의 상태를 모니터하는 단계 및 상기 링크가 소정의 시간 기간 이상 동안 동작하지 않는 경우에 고장임을 나타내는 단계를 포함하는 네트워크 운영 방법.
  6. 제5항에 있어서,
    상기 각 코어는 다수의 어플리케이션 모듈들을 포함하고, 상기 각 코어의 엘리먼트 매니저는 해당 코어 내의 상기 모듈들의 동작을 제어하는 네트워크 운영 방법.
  7. 제5항에 있어서,
    상기 코어는, 어플리케이션 모듈로서 컨피규레이션 작업 매니저를 포함하고,
    상기 방법은, 전체 네트워크를 위한 컨피규레이션 데이터와 해당 셀에 의하여 제어되는 네트워크의 부분을 위하여 상기 셀에 대한 적절한 컨피규레이션 데이터를 함유하는 컨피규레이션 트리를 저장하고 업데이트하는 단계를 포함하는 네트 워크 운영 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 각 셀은 어플리케이션 모듈들을 포함하고, 상기 방법은, 해당 셀 내의 네트워크를 제어하기 위해 상기 어플리케이션 모듈들을 이용하는 단계를 포함하는 네트워크 운영 방법.
  9. 제8항에 있어서,
    상기 셀은, 어플리케이션 모듈로서 컨피규레이션 렌더링 엔진을 포함하고,
    상기 방법은, 상기 셀에 대한 컨피규레이션 데이터를 저장하는 단계 및 상기 셀에 대한 상기 컨피규레이션 데이터를 상기 네트워크 엘리먼트들로 배치하는 단계를 포함하는 네트워크 운영 방법.
  10. 제8항에 있어서,
    상기 각 셀은 프라이머리 및 세컨더리 컨피규레이션 렌더링 엔진을 포함하고, 각 컨피규레이션 렌더링 엔진은 상기 셀 및 그것의 네트워크 엘리먼트들을 제어할 수 있고,
    상기 방법은,
    - 상기 셀에 관련된 컨피규레이션 데이터를 상기 코어로부터 상기 양 엔진들로 제공하는 단계;
    - 상기 프라이머리 엔진이 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트에 관하여 상기 프라이머리 엔진의 동작을 모니터하는 단계;
    - 고장 이벤트의 탐지 시에, 상기 셀 및 그것의 네트워크 엘리먼트들의 운영의 제어를 상기 세컨더리 엔진으로 이전시키는 단계;
    - 상기 프라이머리 엔진이 다시 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 프라이머리 엔진의 컨피규레이션과 상기 세컨더리 엔진의 컨피규레이션을 동기화하는 단계; 및
    - 상기 셀 및 그것의 네트워크 엘리먼트들의 운영을 다시 상기 프라이머리 엔진으로 이전하는 단계;를 더 포함하는 네트워크 운영 방법.
  11. 가입자들에게 네트워크 서비스를 제공하기 위한 컨피규레이션 시스템에 있어서, 상기 시스템은,
    - 프라이머리 및 세컨더리 코어를 포함하는 코어 시스템, 여기서 각 코어는 네트워크 컨피규레이션 데이터를 함유하고, 각 코어는 개별적으로 상기 전체 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어함;
    - 상기 코어 시스템에 연결되고 셀에 연결된 적어도 하나의 네트워크 엘리먼트를 포함하는 상기 네트워크의 정의된 부분을 제어하는 것이 가능한 적어도 하나의 셀, 여기서 각 네트워크 엘리먼트는 상기 서비스의 제공을 위해서 다수의 가입 자들을 지원함;을 포함하고,
    상기 프라이머리 코어는 정상 사용에서 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 제어하고, 상기 프라이머리 및 세컨더리 코어 내의 네트워크 컨피규레이션 데이터는 주기적으로 변경되고,
    상기 시스템은 모니터링 시스템을 더 포함하고, 상기 모니터링 시스템은,
    - 상기 프라이머리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것을 방해하는 고장 이벤트를 탐지하고, 고장 이벤트지 탐지 시에 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전시키고;
    - 상기 프라이머리 코어가 다시 상기 네트워크 및 상기 컨피규레이션 시스템의 운영을 적절히 제어하는 것이 가능해지도록 상기 고장 이벤트의 정정에 이어, 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터가 더 이상 변경되지 않도록 상기 세컨더리 코어를 컨피규어하고, 상기 프라이머리 코어의 네트워크 컨피규레이션 데이터와 상기 세컨더리 코어의 네트워크 컨피규레이션 데이터를 동기화하고;
    상기 네트워크 및 상기 시스템의 운영을 다시 상기 프라이머리 코어로 이전하기 위한 모니터링 시스템인 컨피규레이션 시스템.
  12. 제11항에 있어서,
    각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피 규레이션 시스템의 운영 동안 계속적으로 변경되고, 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경은 상기 세컨더리 데이터베이스로 전달되고,
    상기 모니터링 시스템은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 세컨더리 코어가 상기 네트워크 및 상기 컨피규레이션 시스템을 제어하는 시간 동안 변경되지 않도록, 리드-온리(read-only) 모드로 설정하는 컨피규레이션 시스템.
  13. 제11항에 있어서,
    상기 각 코어는 상기 네트워크 컨피규레이션 데이터를 함유하는 데이터베이스를 더 포함하고, 상기 프라이머리 코어의 데이터베이스는 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어 동안 계속적으로 변경되고, 상기 프라이머리 코어는 상기 프라이머리 데이터베이스 내의 상기 네트워크 컨피규레이션 데이터의 변경을 상기 세컨더리 데이터베이스로 전달하는 동작을 하고, 상기 모니터링 시스템은, 상기 네트워크 및 상기 컨피규레이션 시스템의 운영의 제어를 상기 세컨더리 코어로 이전한 후, 상기 세컨더리 데이터베이스를, 상기 네트워크 컨피규레이션 데이터가 상기 네트워크 및 상기 컨피규레이션 시스템의 제어 동안에 계속적으로 변경되도록 설정하는 동작을 하고, 컨피규레이션 동기화 시에 상기 프라이머리 코어의 데이터베이스를 상기 세컨더리 코어의 데이터베이스와 동기화하는 컨피규레이션 시스템.
  14. 제11, 12, 또는 13항에 있어서,
    상기 프라이머리 코어를 이용하여 상기 네트워크 및 상기 컨피규레이션 시스템을 운영하는 동안에, 상기 세컨더리 코어는, 상기 시스템의 오퍼레이션이 상기 세컨더리 코어로 이전될 때 상기 세컨더리 코어가 상기 프라이머리 코어와 실질적으로 동일한 컨피규레이션 및 데이터베이스를 가지도록, 동작 중인 상기 프라이머리 코어를 미러(mirror)하는 컨피규레이션 시스템.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 각 코어는 다른 코어의 동작을 모니터하는 코어 모듈 엘리먼트 매니저를 포함하고, 상기 두 엘리먼트 매니저는 링크되어 있으며, 상기 세컨더리 코어 내의 상기 엘리먼트 매니저는 상기 링크의 상태를 모니터하고 상기 링크가 소정의 시간 기간 이상 동안 동작하지 않는 경우에 고장임을 나타내는 컨피규레이션 시스템.
  16. 제15항에 있어서,
    상기 각 코어는 다수의 어플리케이션 모듈들을 포함하고, 상기 각 코어의 엘리먼트 매니저는 해당 코어 내의 상기 모듈들의 동작을 제어하는 컨피규레이션 시스템.
  17. 제16항에 있어서,
    상기 코어는, 어플리케이션 모듈로서, 전체 네트워크를 위한 컨피규레이션 데이터와 해당 셀에 의하여 제어되는 네트워크의 부분을 위하여 상기 셀에 대한 적절한 컨피규레이션 데이터를 함유하는 컨피규레이션 트리를 저장하고 업데이트하기 위한 컨피규레이션 작업 매니저를 포함하는 컨피규레이션 시스템.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    상기 각 셀은 해당 셀 내의 네트워크를 제어하기 위한 어플리케이션 모듈들을 포함하는 컨피규레이션 시스템.
  19. 제18항에 있어서,
    상기 셀은, 어플리케이션 모듈로서, 상기 셀에 대한 컨피규레이션 데이터를 저장하고 상기 셀에 대한 상기 컨피규레이션 데이터를 상기 네트워크 엘리먼트들로 배치하는 컨피규레이션 렌더링 엔진을 포함하는 컨피규레이션 시스템.
  20. 제19항에 있어서,
    상기 각 셀은 프라이머리 및 세컨더리 컨피규레이션 렌더링 엔진을 포함하고, 각 컨피규레이션 렌더링 엔진은 상기 셀 및 그것의 네트워크 엘리먼트들을 제어할 수 있는 컨피규레이션 시스템.
KR1020087010167A 2005-10-31 2006-10-30 고가용성 네트워크 시스템 KR20080088576A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05077476A EP1780940B1 (en) 2005-10-31 2005-10-31 High availability network systems
EP05077476.9 2005-10-31

Publications (1)

Publication Number Publication Date
KR20080088576A true KR20080088576A (ko) 2008-10-02

Family

ID=36126610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087010167A KR20080088576A (ko) 2005-10-31 2006-10-30 고가용성 네트워크 시스템

Country Status (9)

Country Link
US (1) US7869373B2 (ko)
EP (1) EP1780940B1 (ko)
JP (1) JP2009514282A (ko)
KR (1) KR20080088576A (ko)
CN (1) CN101300780B (ko)
AT (1) ATE434310T1 (ko)
DE (1) DE602005014992D1 (ko)
TW (1) TW200805941A (ko)
WO (1) WO2007051580A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200662B2 (en) 2001-07-06 2007-04-03 Juniper Networks, Inc. Integrated rule network management system
US8181071B2 (en) * 2007-06-29 2012-05-15 Microsoft Corporation Automatically managing system downtime in a computer network
US7953016B2 (en) * 2008-03-03 2011-05-31 Nortel Networks Limited Method and system for telecommunication apparatus fast fault notification
US8174962B2 (en) * 2008-04-15 2012-05-08 Honeywell International Inc. Global broadcast communication system
CN101345658B (zh) * 2008-08-19 2011-05-11 中兴通讯股份有限公司 一种改进的失败观察装置及方法
US8490084B1 (en) * 2009-06-18 2013-07-16 Amazon Technologies, Inc. Installation testing in automated application distribution
CN102123040A (zh) * 2010-01-08 2011-07-13 华为技术有限公司 数据配置的方法和装置
JP5699658B2 (ja) * 2011-02-10 2015-04-15 日本電気株式会社 待機系計算機、クラスタシステム、サービス提供方法およびプログラム
US8850261B2 (en) 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US20120311111A1 (en) * 2011-06-03 2012-12-06 Microsoft Corporation Dynamic reconfiguration of cloud resources
US10585766B2 (en) * 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8938470B1 (en) * 2011-11-08 2015-01-20 Juniper Networks, Inc. Managing and troubleshooting changes in device configurations on a network node
US10394611B2 (en) 2012-11-26 2019-08-27 Amazon Technologies, Inc. Scaling computing clusters in a distributed computing system
US9258234B1 (en) 2012-12-28 2016-02-09 Juniper Networks, Inc. Dynamically adjusting liveliness detection intervals for periodic network communications
US8953460B1 (en) 2012-12-31 2015-02-10 Juniper Networks, Inc. Network liveliness detection using session-external communications
US8953434B1 (en) * 2013-03-29 2015-02-10 Juniper Networks, Inc. Providing high availability as a service with network devices
JP6013420B2 (ja) * 2014-09-17 2016-10-25 株式会社日立製作所 ストレージシステム
US9769017B1 (en) 2014-09-26 2017-09-19 Juniper Networks, Inc. Impending control plane disruption indication using forwarding plane liveliness detection protocols
US10374936B2 (en) 2015-12-30 2019-08-06 Juniper Networks, Inc. Reducing false alarms when using network keep-alive messages
US10397085B1 (en) 2016-06-30 2019-08-27 Juniper Networks, Inc. Offloading heartbeat responses message processing to a kernel of a network device
US10409697B2 (en) * 2017-02-23 2019-09-10 Salesforce.Com, Inc. Automated self-healing database system and method for implementing the same
US10425274B2 (en) 2017-05-11 2019-09-24 Salesforce.Com, Inc. Techniques and architectures for recovering from a service disruption in a multi-server environment
US10635561B2 (en) * 2017-05-11 2020-04-28 Salesforce.Com, Inc. Techniques and architectures for managing database failure in a single-node database architecture
US11750441B1 (en) 2018-09-07 2023-09-05 Juniper Networks, Inc. Propagating node failure errors to TCP sockets
US10891308B2 (en) 2018-09-24 2021-01-12 Salesforce.Com, Inc. Automated self-scaling database system for automatically scaling out write operations and method for implementing the same in a multi-tenant, cloud-based computing environment
US10902021B2 (en) 2018-09-24 2021-01-26 Salesforce.Com, Inc. Automated self-scaling database system for automatically scaling out read operations and method for implementing the same
CN109905457B (zh) * 2019-01-09 2022-01-11 广州视源电子科技股份有限公司 主从服务器数据同步方法、装置、计算机设备和存储介质
US11231985B1 (en) * 2020-07-21 2022-01-25 International Business Machines Corporation Approach to automated detection of dominant errors in cloud provisions
US11003498B1 (en) 2020-08-10 2021-05-11 Coupang Corp. Computerized systems and methods for fail-safe loading of information on a user interface using a circuit breaker

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253184A (en) * 1991-06-19 1993-10-12 Storage Technology Corporation Failure and performance tracking system
EP0537903A2 (en) 1991-10-02 1993-04-21 International Business Machines Corporation Distributed control system
EP0549506A3 (en) * 1991-12-23 1995-04-12 Ibm Dual ring fault isolation
US6005694A (en) * 1995-12-28 1999-12-21 Mci Worldcom, Inc. Method and system for detecting optical faults within the optical domain of a fiber communication network
US5974459A (en) * 1997-01-23 1999-10-26 At&T Corp. Telecommunications network devoid of a distinct network management layer
US6385204B1 (en) * 1999-11-22 2002-05-07 Worldcom, Inc. Network architecture and call processing system
US8762568B1 (en) * 2001-07-06 2014-06-24 Cisco Technology, Inc. Method and apparatus for inter-zone restoration

Also Published As

Publication number Publication date
EP1780940B1 (en) 2009-06-17
CN101300780B (zh) 2010-12-29
US20090201799A1 (en) 2009-08-13
JP2009514282A (ja) 2009-04-02
TW200805941A (en) 2008-01-16
ATE434310T1 (de) 2009-07-15
CN101300780A (zh) 2008-11-05
DE602005014992D1 (de) 2009-07-30
WO2007051580A2 (en) 2007-05-10
US7869373B2 (en) 2011-01-11
EP1780940A1 (en) 2007-05-02
WO2007051580A3 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
US7869373B2 (en) High-availability network systems
US11880679B2 (en) System and method for supporting patching in a multitenant application server environment
US11080144B2 (en) System and method for managing blockchain nodes
CN106716360B (zh) 支持多租户应用服务器环境中的补丁修补的系统和方法
US8935216B2 (en) Automated computing appliance cloning or migration
US20100174807A1 (en) System and method for providing configuration synchronicity
CN112491606B (zh) 一种基于ansible的自动化部署业务系统高可用集群的方法
US20070083723A1 (en) Highly-available blade-based distributed computing system
EP1780941B1 (en) Network configuration
US20020161890A1 (en) System and method for intelligently distributing content over a communicatons network
JP2008533573A (ja) 障害回復アーキテクチャー
JP2005535241A (ja) マルチコンピュータ・アーキテクチャにおけるアプリケーション・ソフトウェアの移動方法、前記移動方法を用いて作動の連続性を実現するマルチコンピュータ方法および装置
CN104935672A (zh) 负载均衡服务高可用实现方法和设备
CN111835862B (zh) 一种参考流量类型部署对象存储后端服务的实现方法
US20080183878A1 (en) System And Method For Dynamic Patching Of Network Applications
CN106850747B (zh) 一种分布式实时转码系统的转码节点管理系统及方法
US20240097979A1 (en) Fabric availability and synchronization
US20230146880A1 (en) Management system and management method
JP2007053790A (ja) 管理システム、およびネットワーク接続方法
WO2024093328A1 (zh) 一种虚拟桌面连接方法及装置
CN114915545A (zh) 基于dhcp网络高可用集群的应用调度部署管理方法
JP5307223B2 (ja) 障害回復アーキテクチャ
CN117093425A (zh) 一种数据库高可用的方法、系统、设备和存储介质
CN114650213A (zh) 配置Jenkins服务器集群的方法、装置、存储介质
JP2001045033A (ja) アドレス配布装置及びその配布方法

Legal Events

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