KR100377864B1 - 다중화 서버 시스템을 위한 통신 시스템 및 방법 - Google Patents

다중화 서버 시스템을 위한 통신 시스템 및 방법 Download PDF

Info

Publication number
KR100377864B1
KR100377864B1 KR1020000018556A KR20000018556A KR100377864B1 KR 100377864 B1 KR100377864 B1 KR 100377864B1 KR 1020000018556 A KR1020000018556 A KR 1020000018556A KR 20000018556 A KR20000018556 A KR 20000018556A KR 100377864 B1 KR100377864 B1 KR 100377864B1
Authority
KR
South Korea
Prior art keywords
server
vmp
servers
message
host
Prior art date
Application number
KR1020000018556A
Other languages
English (en)
Other versions
KR20010090635A (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 (주) 로커스네트웍스
Priority to KR1020000018556A priority Critical patent/KR100377864B1/ko
Publication of KR20010090635A publication Critical patent/KR20010090635A/ko
Application granted granted Critical
Publication of KR100377864B1 publication Critical patent/KR100377864B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 다중화된 서버 시스템 사이의 통신 시스템 및 통신 방법을 제공한다.
본 발명에 따른 다중화 서버 시스템의 통신 기술은 각각의 호스트에서 운영 중인 프로세스가 통신을 하고자 하는 경우, 각각의 호스트에 구비된 VMP(virtual message path) 프로세스를 사용하여 활성(active) 상태와 대기(stand-by) 상태로 다중화된 서버 및 네트워크 망에서 통신을 수행함으로써, 서버의 장애 또는 네트워크 망의 장애가 발생한 경우에도 중단 없이 지속적으로 메시지를 전송할 수 있다.
그 결과, 본 발명에 따른 통신 시스템 및 방법은, 각각의 프로세스들이 통신을 위하여 다중화된 서버와 다중화된 네트워크 망에 대한 검색을 위한 작업 부담을 지니지 않고, 장애가 발생한 경우에도 메시지의 유실 없이 신뢰성 있게 통신을 지속할 수 있다.

Description

다중화 서버 시스템을 위한 통신 시스템 및 방법{SYSTEM AND METHOD OF COMMUNICATION FOR MULTIPLE SERVER SYSTEM}
본 발명은 서버 다중화 시스템 및 서버 다중화를 위한 통신 방법에 관한 것으로서, 특히 복수의 서버들 사이에 중단 없는 통신 상태를 유지하기 위한 통신 프로토콜 및 운영 소프트웨어 시스템에 관한 것이다.
교환기 제어를 위한 서버 시스템의 경우에는 어떠한 상황에서도 중단됨이 없는 고 신뢰성 서비스가 요구되므로, 서버를 다중화하여 서로 감시하고 있다가 활성 (active) 서버에 장애가 발생한 경우 대기(stand-by)중이던 서버가 빠른 시간 내에 절체를 하여 서비스를 복구하는 방식이 사용되고 있다.
미합중국 특허 제5,812,751호 및 제5,596,720호에 개시되어 있는 서버 다중화 기술은 다중화된 두 개의 서버가 데이터 저장 유니트를 공유하면서 운용되고 있으므로, 활성 서버와 대기 서버가 관리하는 데이터의 동기화 문제를 해결하고 있다. 그런데, 전술한 미합중국 특허에 개시되어 있는 서버 다중화 기술은 활성 서버가 장애를 발생시킨 경우 대기 서버가 서비스를 절체시키는 동안 서비스 중단이 불가피하게 되므로, 절체 기간 중에 데이터가 유실되고 서비스 복구가 지연되는 문제점이 있다.
더욱이, 각각 다중화된 복수 개의 서버 및 다중화된 네트워크를 이용하여 분산 처리하는 시스템의 경우, 각각의 서버들은 다중화에 따른 추가의 작업 부담 없이 신속하고 안전하게 메시지를 주고받는 것이 필요하다. 즉, 메시지를 수신하여야 하는 프로세스가 로드(load)되어 있는 호스트(host)가 다운(down)되어 대기하고 있던 대기(stand-by) 시스템에 프로세스가 재 가동된다면, 송신하고자 하는 프로세스는 새로운 프로세스와 다시 접속을 맺어야 통신이 재개된다.
또한, 사용하고 있던 네트워크 포트의 이상으로 인해 다중화되어 있는 다른네트워크 포트를 통하여 통신을 하려고 할 경우에도 송신 측의 프로세스는 네트워크 포트의 이상 감지 및 새로운 가용 네트워크 포트를 통한 통신 재개 등의 작업 부담을 감당하여야 한다.
더욱이, 수신측 프로세스가 로드되어 있는 서버에 장애가 발생하여 메시지 수신이 불가능한 경우에도, 송신측 서버의 프로세스는 메시지를 계속하여 송신 (SEND)하게 되므로 전송된 메시지가 유실되는 문제점이 발생할 수 있다. 따라서, 다중화된 분산 서버 시스템에 있어서 각 서버들 사이에 통신을 편리하고 신뢰성 있도록 보장할 수 있는 새로운 방식의 통신 프로토콜 및 운영 소프트웨어 모듈의 출현이 절실히 요구되고 있다.
따라서, 본 발명의 제1 목적은 다중화된 분산 서버 시스템에 있어서, 각각의 서버들 사이에 편리하고 신뢰성 있는 통신을 보장하기 위한 통신 방법 및 시스템을 제공하는데 있다.
본 발명의 제2 목적은 상기 제1 목적에 부가하여, 서버가 장애를 일으킨 경우 또는 통신 네트워크가 장애를 일으킨 경우에도 데이터의 유실 없이 서비스를 지속적으로 제공할 수 있는 다중화된 서버들 간의 통신 방법 및 시스템을 제공하는데 있다.
본 발명의 제3 목적은 상기 제1 목적에 부가하여, 다중화된 서버들 사이에 메시지를 통신하는데 있어서 활성중인 서버를 검색하거나, 활성중인 통신 포트를 찾기 위한 추가의 작업 부담을 해결한 다중화된 서버들 간의 통신 방법 및 시스템을 제공하는데 있다.
본 발명의 제4 목적은 상기 제1 목적에 부가하여, 다중화된 네트워크 및 다중화된 서버들 사이에 메시지를 통신하는데 있어서, 네트워크의 상태, 통신 채널의 유지, 다중화된 시스템의 변경 등을 관리하는 통신 프로토콜 및 소프트웨어 모듈을 제공하는데 있다.
도1은 본 발명에 따른 다중화 서버 시스템의 구성의 일 실시예를 나타낸 도면.
도2는 본 발명에 따른 다중화 서버의 장치 구성의 일 실시예를 나타낸 도면.
도3a는 본 발명에 따른 다중화 서버 시스템의 운용 방법의 작업 흐름의 일 실시예를 나타낸 도면.
도3b는 본 발명의 바람직한 실시예에 따른 초기 서버들 사이의 연결 방법을 나타낸 작업 흐름도.
도3c는 본 발명의 바람직한 실시예에 따라, VMP 환경 설정 테이블에 메시지를 받을 서버가 존재하는지 확인하는 방법을 나타낸 작업 흐름도.
도3d는 본 발명의 바람직한 실시예에 따른 네트워크 망 또는 서버의 장애가 복구되면 파일로 저장된 메시지를 다시 전송하는 방법을 나타낸 작업 흐름도.
상기 목적을 달성하기 위하여, 본 발명은 다중화된 서버 시스템에 있어서 시스템 사이의 메시지 전달을 위한 가상 메시지 통로(virtual message path; 이하 VMP라 칭함) 프로세스 및 프로토콜(protocol)을 제공한다.VMP는 Virtual Message Path의 약자로서 이중화 서버 시스템에서 메시지 송수신에 사용되는 프로토콜이다. VMP의 주기능은 시스템 간의 메시지 전달을 위한 가상 통로(Virtual Path)의 제공이다.통신 시스템은 기본적으로 모든 유니트들이 이중화되어 있다. 이는 호스트의 이중화 뿐만 아니라 네트웍의 이중화도 포함한다. 이렇게 이중화된 시스템 안에서 통신을 할 경우에는 고려해야 할 사항들이 많이 있다. 예컨대, 메시지를 받는 대상 프로세스가 로드되어 있는 호스트가 다운되어 대기하고 있던 스탠바이 시스템에 프로세스가 재기동된다면 새로운 프로세스와 다시 커넥션을 맺어야 통신이 재개되게 된다. 또한, 사용하고 있던 네트웍 포트의 이상으로 인해 이중화되어 있는 다른 네트웍 포트를 통해서 통신을 하려고 할 경우에도 네트웍 포트의 이상 감지, 새 어드레스를 통한 통신의 재개 등을 처리해야 한다.이처럼, 어떤 프로세스가 외부 시스템과 메시지를 주고 받을 경우 네트워크의 이상, 통신 채널의 유지, 이중화된 시스템의 변경 등의 사항들에 대한 고려가 중요하다. 이런 부분들은 어플리케이션의 주기능이 아니면서도 구현 시 많은 어려움을 만들어내고 고도의 기술을 필요로 하게 한다. 따라서, 본 발명에 따른 VMP를 구현함으로써 어플리케이션 개발자들의 많은 노력을 덜 수 있다.
본 발명에 따른 VMP 프로세스는 메시지를 전달하는 기능을 구비한 소프트웨어 모듈로서, 애플리케이션 프로세스(application process)들은 통신을 하고자 하는 타겟 프로세스(target process)와 직접 메시지를 송수신하는 것이 아니라, 가상 메시지 통로를 경유하여 송수신한다. 본 발명에 따른 VMP 프로세스는 프로세스 (process) 사이에 가상 채널(virtual channel)을 제공함으로써, 각각의 프로세스들은 각종 통신 장애에 대한 처리를 수행해야 하는 부담이 없이 가상 메시지 통로에게만 송신을 하면 안전하게 목적지(target) 프로세스까지 전달이 되도록 한다.
본 발명에 따른 VMP 프로세스를 사용함으로써, 다중화된 서버의 사용자 애플리케이션(user application)은 메시지 송수신의 실제 레이어(physical layer)는 블랙 박스로 남겨둔 채, 단지 가상 메시지 통로에서 제공하는 응용 프로그래밍 인터페이스 (API; application programming interface) 라이브러리(library) 만을 이용하여 송수신 모듈을 용이하게 제작할 수 있다.
본 발명에 따른 VMP 프로세스는 타겟쪽 애플리케이션이 실시간으로 메시지를 수신하지 못하는 경우에 파일로 저장하여 두었다가 통신이 재개되면 다시 전송함으로써, 장애 시에도 메시지의 유실 없이 통신을 지속할 수 있는 기능을 포함하고 있다.
본 발명에 따른 VMP 프로세스의 통신 채널은 TCP/IP를 기반으로 하여, 로컬 프로세스들은 로컬 VMP 프로세스와 TCP/IP 접속을 맺고 있으며, VMP 프로세스들도 서로 TCP/IP 접속이 맺어져 있다. 본 발명에 따른 VMP 프로세스는 상호 연결이 독립적이고, 시스템 간 연결은 다중화되어 있다.
본 발명에 따른 VMP 프로세스를 통한 통신은 TCP/IP 프로토콜을 이용하지만, 상기 VMP 프로세스를 이용한 애플리케이션들은 VMP 라이브러리를 통하여 마치 UDP로 통신하듯 패킷(packet) 베이스로 통신을 할 수 있다.
본 발명에 따른 VMP 프로세스는 통신하고자 하는 유니트들과 모두 접속되어 있으며, 모든 유니트들 내의 VMP 프로세스와 하트 비트(heart beat) 메시지를 주고받음으로써, 네트워크 또는 프로세스/호스트에 이상이 발생한 경우 이를 곧바로 감지할 수 있다. 그 결과, 본 발명에 따른 VMP 프로세스는 프로세스 관리 모듈(PNR; process and resource manager)이 네트워크 자원을 감시하는데 필요한 정보를 제공할 수 있다.
이하, 본 발명에 따른 다중화 서버 시스템 및 통신 방법의 양호한 실시예를 첨부 도면 도1 내지 도3을 참조하여 상세히 설명한다.
도1은 본 발명에 따른 다중화 서버 시스템의 구성을 나타낸 도면이다. 도1을 참조하면, 동일 기능을 수행하는 서버들을 그룹으로 묶은 제1 서버 그룹(100)과 제2 서버 그룹(110), 제1 서버 그룹에 포함되는 서버들 중에서 서비스를 수행 중인 활성 서버(active server; 101)와 대기 상태(stand-by)인 대기 서버(102), 제2 서버 그룹에 포함되는 서버들 중에서 서비스를 수행중인 활성 서버(111)와 대기 상태인 대기 서버(112)가 도시되어 있다.
모든 서버들은 네트워크 망(120, 130)을 통해 서버들 사이의 데이터 전송, 장애 감시, 서버의 전환 등의 작업을 수행할 수 있다. 제1 서버 그룹(100)에는 한 개의 호스트 이름이 할당될 수 있으며, 제1 서버 그룹의 호스트 이름을 제1 호스트라고 부를 수 있다. 제1 호스트의 중단 없는 서비스를 위하여 다수 개의 서버(101, 102)들이 활성 상태와 대기 상태에 있게 된다.
또한, 제1 호스트(100)에 그룹화되어 있는 각각의 서버(101, 102)들은 엘리아스(alias) 이름을 할당받을 수 있다. 또한, 제1 서버 그룹과 제2 서버 그룹의 서버들은 다중화된 네트워크를 통하여 서로 통신을 할 수 있다. 제1 서버 그룹(100)과 제2 서버 그룹(110)에 포함되는 서버들은 제1 네트워크 망(120)과 제2 네트워크 망(130)에 동시에 연결된다. 본 발명에 따른 서버들이 연결되는 네트워크 망(120, 130)은 하나 또는 다수 개가 될 수 있다.
본 발명에 따른 양호한 실시예로서, 네트워크 망(120, 130)이 두 개 이상이 되도록 구성할 경우에는 서로 다른 도매인(domain)에 연결되는 네트워크 망(120, 130)을 사용하여 하나의 도매인에 대한 네트워크 장애 발생 시에도 다른 도매인에연결된 네트워크 망을 사용하도록 사용할 수 있다.
도2는 본 발명에 따른 다중화 서버 시스템의 구성에 따른 다중화 서버 장치의 구성도이다. 도2를 참조하면, 다중화 서버 시스템의 제1 서버 그룹(100)에 포함되는 활성 서버(101)는 프로세스 관리(PNR; process and resource manager) 모듈(201), 다중화 감시 프로세스(DGP; duplication guardian process) 모듈(202), VMP(virtual message path) 프로세스 모듈(203), 네트워크 선택 모듈(204), VMP 환경 설정 테이블(205), 동적 엘리아스 테이블(206) 등으로 구성되어 있고, 대기 서버(102)도 활성 서버(101)와 같이 프로세스 관리 모듈(211), 다중화 감시 프로세스 모듈(212), VMP 프로세스 모듈(213), 네트워크 선택 모듈(214), VMP 환경 설정 테이블(215), 동적 엘리아스 테이블(216) 등으로 구성되어 있다.
프로세스 관리 모듈(201, 211)은 서버의 구동 초기 단계에 생성되어, 서버에서 구동되는 모든 프로세스 모듈들을 생성시키고 관리하는 역할을 수행하며, 외부와 메시지를 송수신할 때에는 VMP 프로세스 모듈(203, 213)을 통하여 통신한다.
다중화 감시 프로세스 모듈(202, 212)은 다중화된 네트워크 망(120, 130)의 장애 발생이나, 다른 서버의 장애 발생을 검사하기 위하여 일정한 시간 간격(∼1초)으로 장애 검사용 데이터를 통신한다. 본 발명에 따른 장애 검사용 데이터 통신 신호의 바람직한 실시예로서, 하트 비트(heart beat)를 사용할 수 있다. 또한, 통신하고 있는 서버의 장애 발생시 동적 엘리아스 테이블을 변경하여 장애 발생 서버를 대체할 대기 서버를 연결하는 역할을 수행한다.
VMP 프로세스 모듈(203, 213)은 서버 내부에서 외부로 전송할 메시지를 받아서 전송하거나, 외부 서버로부터 들어오는 메시지를 받아들이는 역할을 수행한다. 본 발명에 따른 다중화 서버 시스템에 포함되는 모든 서버들은 VMP 프로세스 모듈을 통하여 메시지를 주고받는다. 또한, VMP 프로세스 모듈(203, 213)은 TCP/IP 프로토콜을 사용하면서, 데이터를 패킷(packet)화 하여 통신한다. 한편, 네트워크 선택 모듈(204, 214)은 다중화된 네트워크 망을 통하여 통신할 때, 상대 서버와 통신할 네트워크 망을 선택한다.
VMP 환경 설정 테이블(205, 215)은 본 발명의 다중화 서버 시스템에 참여하는 모든 서버들의 IP 주소와 엘리아스(alias)를 저장한다. 본 발명에 따른 VMP 환경 설정 테이블은 시스템 아이디, 서버 이름, 하나 또는 다수 개의 서버 엘리아스, 각 서버 엘리아스에 대응되는 서버 IP 주소로 구성될 수 있다.
가상 메시지 통로 프로토콜(201, 211)은 서버 내부에서 외부로 전송할 데이터를 받아서 전송하거나, 외부 서버로부터 들어오는 데이터를 받아들이는 역할을 수행한다. 본 발명에 따른 다중화 서버 시스템에 포함되는 모든 서버들은 가상 메시지 통로 프로토콜을 통하여 메시지를 주고받는다. 또한, 가상 메시지 통로 프로토콜(201, 211)은 TCP/IP 프로토콜을 사용하면서, 데이터를 패킷(packet)화 하여 통신한다.
네트워크 선택 모듈(202, 212)은 다중화된 네트워크 망을 통하여 통신할 때, 상대 서버와 통신할 네트워크 망을 선택한다. 한편, 프로세스 관리 모듈(203, 213)은 요청 받은 프로세스를 수행하고, 요청할 프로세스를 가상 메시지 통로 프로토콜을 통하여 전송한다.
다중화 감시 모듈(204, 214)은 다중화된 네트워크 망(120, 130)의 장애 발생이나, 다른 서버의 장애 발생을 검사하기 위하여 일정한 시간 간격(∼1초)으로 장애 검사용 데이터를 통신한다. 본 발명에 따른 장애 검사용 데이터 통신 신호의 바람직한 실시예로서, 하트 비트(heart beat)를 사용할 수 있다.
VMP 환경 설정 테이블(205, 215)은 본 발명의 다중화 서버 시스템에 참여하는 모든 서버들의 IP 주소와 엘리아스(alias) 저장한다. 한편, 동적 엘리아스 테이블(206, 216)은 본 발명의 다중화 서버 시스템을 구성하는 서버들의 역할 수행 기능에 따라서 분류되는 서버 그룹들의 활성 서버의 엘리아스 및 대기 서버의 엘리아스에 대하여, 이들 각각에 대응하는 서버 이름, 서버 엘리아스, 서버 IP 주소 중에서 하나 또는 이들의 조합으로 이루어진 정보들을 저장한다.VMP의 구현은 프로세스가 된다. 동작은 N개의 시스템 각각에 하나씩의 VMP 프로세스가 기동되고 이것은 TCP/IP 서버로써의 역할을 하게 된다. 어플리케이션 프로세스는 자신의 시스템의 VMP에 프로세스의 기동 시 접속하여 등록한다.VMP의 초기 기동은 구성파일(configuration file)을 참조하여 초기화를 한다. 모든 VMP간의 구성(configuration)들은 자신의 시스템 ID를 제외하고 동일한 정보를 유지하여야 한다. 그러기 위하여 모든 정보들의 변경 시 브로드 캐스팅(Broadcasting)을 통해 모든 VMP에 전달 되어야 한다. 시스템 이상으로 나중에 VMP 그룹에 접속하는 VMP들에게 변경된 내용을 알려 줄 수 있도록 정보의 요구와 이에 대한 응답이 가능하여야 한다.활성/스탠바이(Active/Standby)로 이중화 된 시스템들의 경우에 외부에서 그 시스템들이 ACTIVE인지 STANDBY인지를 알아야 한다. 그러므로, DGP와 연동하여 VMP는 자신의 시스템이 ACTIVE인지 아닌지를 알아내어야 하고, 이 정보는 모든 VMP에 전달되어야 한다. 이런 ACTIVE/STANDBY 구조는 하나의 시스템이 엘리아스(alias)를 동적으로 갖도록 함으로써 구현할 수 있다.시스템의 이름은 하나 만이 아니라 엘리아스(alias)가 가능하여야 한다. 이것은 각각의 기능 시스템이 통합될 때 어플리케이션의 변경을 하지 않아도 되는 장점이 된다. VMP는 N개의 VMP 간에 하트 비트(Heart beat)을 통한 상호 통신 채널의 유지, 초기 채널의 연결하여야 한다. 이것을 토대로 메시지의 전달과 이상 시의 보전 기능을 수행한다.
도3a는 본 발명의 바람직한 실시예에 따른 다중화 서버 시스템의 운용 방법을 나타낸 작업 흐름도이다. 도3a를 참조하면, 본 발명에 따른 다중화 서버 시스템을 구성하는 서버들이 작동하기 시작하면서, 다중화 서버 시스템을 구성하는 서버들의 정보를 저장하고 있는 동적 엘리아스 테이블을 읽어들인다(단계 S300). 본 발명에 따른 다중화 서버 시스템을 구성하는 서버들이 작동하기 시작하면서, 각 서버들은 동적 엘리아스 테이블을 읽어 들여서 서버들의 정보를 알아내고, 모든 서버들과 연결한다.
본 발명에 따른 VMP 프로세스 모듈은 VMP 환경 설정 테이블을 독출하기 위한 VMP 문법 해석부와, VMP 환경 설정 테이블을 독출하기 위한 변수 할당부, VMP 환경 설정 테이블을 열어 상기 VMP 문법 해석부와 상기 변수 할당부를 이용하여 설정 환경을 독출하는 VMP 환경 설정부와, 내부 및 외부 시스템과의 통신을 위한 소켓을 열어두고, 자신의 시스템 아이디를 이용하여 서버와 접속하기 위한 접속 스레드(thread)를 생성하며, 외부 서버에 전달될 저장 파일을 조사하는 스레드와 다중화 감시를 위한 하트 비트(heart beat)를 발생하는 스레드를 생성하는 메인 VMP 부로써 구성될 수 있다.
본 발명에 따른 동적 엘리아스 테이블(dynamic alias table)을 작성함에 있어서 각 서버 그룹에 속하는 서버들 중에서 하나를 활성 서버로 등록하고, 나머지 서버들은 대기 서버로 등록한다. 작성된 동적 엘리아스 테이블은 모든 서버들이 똑같은 테이블을 저장한다.본 발명에 따른 VMP를 구성하는 소프트웨어 유닛트를 상세히 설명한다. 우선, 본 발명에 따른 VMP는 vmp-yacc.y, vmp-lex.l, vmp-conf.c, vmp-main.c로 구성되어 있다. vmp-yacc.y는 vmp.tab을 읽어들이는 문법으로 구성되며, 시스템 아이디, 복수의 엘리아스, 아이피 등으로 구성된다.vmp-lex.l은 vmp.tab을 읽어들일 때 정의된 키워드와 문자열을 받아들인다. vmp-conf.c는 vmp.tab 파일을 열어 lex, yacc를 이용하여 파일의 내용을 읽어 들인다. 메인에서 사용하는 호스트 변수 테이블의 내용을 채운다.한편, vmp-main.c는 vmp 메인 모듈을 구성한다. ReadConf()를 이용하여 파일의 내용을 읽어들인다. 외부 시스템 간 연결을 위한 소켓을 열어둔다. 또한 내부시스템을 위한 소켓을 열어둔다. 자신의 시스템 아이디(ID)를 알아내어, 자신보다 큰 시스템들에 연결을 요청할 접속 시도자(Connection Try) 스레드를 생성한다. 외부 시스템으로 전달될 저장된 파일을 조사하는 ReadFileAllHost 스레드와 일정 시간 간격으로 하트 비트(Heart Beat)을 보내고 체크하는 하트 비트 전송자(Heart Beat Sender) 스레드를 생성한다.
본 발명에 다른 양호한 실시예로서, 동적 엘리아스 테이블은 본 발명의 다중화 서버 시스템을 구성하는 서버들의 역할 수행 기능에 따라서 분류되는 서버 그룹들의 활성 서버의 엘리아스 및 대기 서버의 엘리아스에 대하여, 이들 각각에 대응하는 서버 이름, 서버 엘리아스, 서버 IP 주소 중에서 하나 또는 이들의 조합으로 이루어진 정보들로 구성할 수 있다.
본 발명에 따른 또 다른 양호한 실시예로서, 동적 엘리아스 테이블에 분류되어 있는 서버 그룹들의 활성 서버 엘리아스와 대기 서버 엘리아스를 모두 하나의 서버에 대한 정보로 대응시켜, 하나의 서버에서 여러 가지 기능들을 모두 수행하는 단일 서버 시스템으로 구성할 수 있다. 이어서, 활성 서버로 들어오는 메시지는 VMP 프로세스를 거쳐 프로세스 관리 모듈에 프로세스로 등록되고, 활성 서버에서 전송할 메시지는 프로세스 관리 모듈에 등록된다(단계 S301).
이어서, 프로세스 관리 모듈에 등록된 메시지를 수신할 서버가 동적 엘리아스 테이블에 존재하는지를 확인한다(단계 S302). 이어서, 메시지를 수신할 서버가 존재할 경우에는 VMP 프로세스를 통하여 메시지를 전송한다(단계 S303). 그렇지 않고, 메시지를 전송할 네트워크 망이 모두 장애를 발생한 경우 또는 메시지를 수신할 서버가 동적 엘리아스 테이블에 존재하지 않을 경우에는 전송할 메시지를 파일로 저장한다(단계 S304).
이어서, 네트워크 망의 장애 또는 메시지를 수신할 서버의 장애가 복구되어, 메시지를 수신할 서버와 통신이 가능해지면, 파일로 저장되어 있던 메시지를 다시 전송한다(단계 S305).
도3b는 본 발명의 바람직한 실시예에 따른 다중화 서버 시스템을 구성하는 서버들 사이의 연결 방법을 나타낸 작업 흐름도이다. 도3b를 참조하면, 본 발명에 따른 다중화 서버 시스템에 참여하는 각 서버들은 VMP 환경 설정 테이블을 읽어서 자신의 정보와 전체 서버들의 정보를 알아낸다(단계 S310).
본 발명의 양호한 실시예로서, 각 서버의 정보는 시스템 아이디, 서버 이름, 하나 또는 다수 개의 서버 엘리아스, 각 서버 엘리아스에 대응하는 IP 주소 등의 조합으로 구성할 수 있다. 이어서, 각 서버들은 VMP 프로세스를 통해서 자신의 시스템 아이디보다 큰 시스템 아이디를 가진 서버들과 접속이 될 때까지 접속을 시도한다(단계 S311).
이어서, 접속이 이루어지면 접속을 받아들인 서버가 결정하는 네트워크 망을 사용하여 통신할 것으로 결정한다(단계 S312). 본 발명의 양호한 실시예로서, 접속을 요청한 서버가 결정한 네트워크 망을 사용하여 통신할 것으로 결정할 수도 있다. 이어서, 동적 엘리아스 테이블을 읽어들여 엘리아스와 대응되는 서버와 통신을 수행한다(단계 S313).
도3c는 본 발명의 바람직한 실시예에 따른 동적 엘리아스 테이블에 메시지를 받을 서버가 존재하는지 확인하는 방법을 나타낸 작업 흐름도이다. 도3c를 참조하면, VMP 환경 설정 테이블에 등록되어 있는 모든 서버들에게 주기적으로 장애 검사 데이터를 전송한다(단계 S320). 본 발명의 양호한 실시예로서, VMP 환경 설정 테이블에 등록되어 있는 모든 서버들의 하나 또는 다수 개의 IP 주소로 일정 시간 간격(∼1초)으로 장애 검사용 데이터를 전송하여 서버의 장애 또는 네트워크 망의 장애를 검사할 수 있다.
이어서, 장애 검사 데이터가 일정 시간 동안 도착하지 않는 서버에 대하여는 일방적으로 연결을 종료한다(단계 S321). 본 발명의 양호한 실시예로서, 장애 검사 데이터를 전송하는 일정한 시간 간격의 두 배에 해당하는 시간 간격 동안에 장애 검사 데이터가 수신되지 않는 서버에 대해서는 일방적으로 연결을 종료할 수 있다.
이어서, 연결이 종료된 서버의 정보를 동적 엘리아스 테이블에서 삭제하고(단계 S322), 전체 서버에게 변경된 동적 엘리아스 테이블을 전송한다(단계 S323). 본 발명의 양호한 실시예로서, 연결이 종료된 서버가 동적 엘리아스 테이블에서 대기 서버인 경우에는 동적 엘리아스 테이블에서 삭제하고, 활성 서버인 경우에는 대기 서버중 하나를 활성 서버로 등록하고 전체 서버에게 변경된 동적 엘리아스 테이블을 전송할 수 있다. 본 발명의 양호한 실시예로서 단계 S320 내지 단계 S323은 본 발명에 따른 다중화 서버 시스템이 운용되는 동안에 항상 수행할 수 있다.
도3d는 본 발명의 바람직한 실시예에 따른 네트워크 망 또는 서버의 장애가 복구되면 파일로 저장된 메시지를 다시 전송하는(단계 S307) 방법을 나타낸 작업 흐름도이다. 도3d를 참조하면, 전체 서버에게 장애 검사 데이터를 주기적으로 전송하다가(단계 S330), 장애가 발생 중인 서버로부터 장애 검사 데이터를 수신하면(단계 S331), 동적 엘리아스 테이블에 새로이 연결된 서버의 정보를 추가하고(단계 S332), 전체 서버에게 변경된 동적 엘리아스 테이블을 전송한다(단계 S333).
본 발명에 따른 양호한 실시예로서, 단계 S330 내지 단계 S333은 본 발명에 따른 다중화 서버 시스템이 운용되는 동안에 항상 수행할 수 있다. 이어서, 네트워크 망 또는 연결할 서버의 장애로 인하여 전송하지 못하고 파일로 저장하고 있던 메시지를 다시 전송한다(단계 S334). 본 발명의 양호한 실시예로서 서버에게 전송할 프로세스를 프로세스 관리 모듈에 등록하기만 하면, 네트워크 망의 장애 또는 메시지를 수신할 서버의 장애 발생에 의한 제약을 받지 않고 메시지를 전송할 수 있는 신뢰성을 보장받을 수 있다.
본 발명에 따른 양호한 실시예로서, 각각의 호스트에서 운영 중인 프로세스들은 VMP 프로세스 모듈에 등록하기 위하여, VMP 프로세스 모듈이 통신을 위한 소켓(socket)을 개방하는 단계와 각각의 프로세스는 초기 기동 시에 상기 VMP 프로세스 모듈에 상기 소켓을 통하여 연결을 시도하고 자신의 프로세스 이름을 등록하는 단계를 거쳐 프로세스 등록을 완료할 수 있다.이하에서는, 본 발명에 따른 VMP의 동작 알고리즘을 (1) 초기 VMP 연결 단계, (2) 프로세스 등록 단계, (3) ACTIVE/STANDBY 시스템 등록 단계, (4) 저장 메시지 전달 단계, (5) 하트 비트를 통한 전송도 검사 단계, (6) ACTIVE/STANDBY 절체 시의 메시지 전송 단계 등으로 분류하여 상세히 설명한다.(1) 초기 VMP 상호간의 연결 단계① VMP 환경 설정 테이블 vmp.conf를 통하여 전체 시스템들의 정보를 알아낸다. 즉, 자신의 시스템 아이디와 상대방의 아이피 주소 정보를 알아낸다.② VMP 간의 통신 채널의 연결은 TCP/IP로 연결된다. VMP는 자신의 시스템 아이디보다 큰 시스템으로 접속을 시도한다. (만약, 현재 접속이 되지 않으면 지속적으로 시도한다.)③ 처음 연결된 VMP에게 전체 시스템의 정보를 동적 엘리아스 테이블 (Dynamic Alias Table)을 통해 요구한다. 또한, 두 시스템간에 처음 연결된 경우 연결을 받아들이는 쪽에서 어떤 네트워크를 쓸 것인가를 결정한다. 이것은 처음 연결되는 네트웍이다(즉, A,B 네트웍 중 어떤 것을 쓸 것인가는 연결을 허용하는 프로세스가 먼저 연결 요청한 네트웍을 사용할 것으로 결정한다).④ 연결을 요청 받은 전체 시스템의 정보를 추가하고(하나의 VMP가 그룹에 참여함으로), 정보의 요청을 받으면 정보를 전달하여 준다.⑤ 모든 VMP가 똑같은 동적 엘리아스 테이블(Dynamic Alias Table)을 갖는다고 가정한다(예, MCU).(2) 프로세스의 등록 단계① VMP는 자신의 시스템 내의 프로세스들이 등록하기 위하여 TCP/IP 서버를 열어둔다.② 프로세스들은 초기 기동 시 VMP에 연결을 시도하고 연결이 되면 자신의 프로세스 이름을 등록한다.③ 기존에 등록된 프로세스로 등록하는 것은 마지막 등록된 프로세스를 남기고 접속을 끊는다.④ 새로 연결된 프로세스에게, 기존에 저장된 메시지가 있는지 조사하여 전달한다.(3) ACTIVE/STANDBY 시스템의 등록 단계① VMP는 DGP에 한하여 호스트 이름의 등록과 삭제 메시지를 처리한다. 즉 DGP는 ACTIVE로 동작하는 시점에 하나의 엘리아스(Alias)를 추가한다(예, MCUA) 또는, 엘리아스(ALIAS)를 삭제한다(MCUS). 이것을 모든 VMP에 알린다.② 모든 VMP들은 호스트 이름 목록을 가지고 있으므로, 이것에 같은 엘리아스가 추가되면 기존의 엘리아스를 삭제한다.(4) 저장된 메시지의 전달 단계① 새로운 커넥션이 이루어지면, 외부 시스템으로 전달을 요청받았으나 전달이 되지 못하고 저장된 데이터 파일을 찾아서 전달한다.② 전달이 종료되면 해당 파일을 지운다.③ 프로세스에 전달하여야 할 저장된 메시지는, 프로세스의 연결 시 그 프로세스에 전달될 메시지를 검사하여 전달한다.(5) 하트 비트(Heart Beat)를 통한 전송로의 검사 단계① 모든 VMP 간의 연결은 주기적인 하트 비트(Heart Beat, 1초) 보내어 연결을 검사한다.② 만약 하트 비트(Heart Beat)가 2초 동안 도착하지 않으면 연결을 종료한다. 연결이 끊김으로써 초기 연결 알고리즘에 의해 네트웍이 복구되면 다시 연결 된다. 일방적인 연결 종료로 인해 상대 VMP는 바로 알게 되어 똑같이 종료한다. 만약 네트웍의 이상으로 알 수 없다 하더라도, 상대 VMP 또한 같은 하트 비트(Heart Beat)가 알고리즘에 의해 연결이 종료되고, 다시 연결을 시도한다.③ VMP로 전송로가 모두 불가능하면 파일에 저장한다. (이중화된 네트웍으로 인해 전송로는 두 개이다. 데이터의 전송으로 사용하는 네트웍이 아니더라도 항상 하트 비트(Heart Beat)가 검사를 한다.)(6) 액티브/스탠바이(ACTIVE/STANDBY) 절체 시의 메시지 전송 단계MCU0에서 MCU1으로 절체되는 경우에 대한 설명이다. 이 때에, MUCA는 MCU0에서 MCU1으로 변경되게 된다.① MFU에서 메시지 A를 MCUA로 전송한다. 이것은 MCU0 시스템의 VMP에 전송 되었다.② 절체시 MCUA는 엘리아스에서 삭제된다. 그 후, MFU내의 VMP에서 메시지 B가 MCUA로 전송되어 지도록 요구 받는다. 이것은 MCUA가 없으므로 파일에 저장된다. MCU1는 MCUA가 되었고 이 정보는 모든 VMP로 전달된다.③ MFU는 MCUA가 등록되므로 그 시스템으로 전달될 파일을 조사하여 메시지 B를 MCUA로 전달한다.본 발명에 따른 VMP 사이의 전송 메시지의 양호한 실시예를 이하에서 상세히 설명한다.(1) M_HEARTBEAT
변수명 타입 크기 비고
Type Int 4 Heart Beat 메시지 임을 표시하는 tag(0x10)
Len Int 4 전체 메시지의 크기(메시지 하나의 모든 것을 포함한 크기)
Seq Int 4 현재까지 이 메시지를 보내는 네트웍으로 받은 vmp의시퀀스 번호로서 아직 사용하지 않음
(2) 엘리아스(ALIAS) 관련 메시지M_ALIAS_ADD M_ALIAS_DEL M_ALIAS_QUERY M_ALIAS_RESET: 동적으로 할당되는 시스템의 ID 정보의 변동을 표시한다. 타입만 다르고 같은 메시지 구조를 갖는다.
변수명 타입 크기 비고
Type Int 4 M_ALIAS_ADD(0x05)M_ALIAS_DEL(0x06)M_ALIAS_QUERY(0x07)M_ALIAS_RESET(0x08) 중에 하나의 값
Len Int 4 전체 메시지의 크기(메시지 하나의 모든 것을 포함한 크기)
Host Int 4 시스템의 고유한 번호(hostname마다 할당되는 번호이다.)
Sid Int 4 동적으로 변화하는 시스템 ID
(3)M_PREG프로시스가 VMP에 접속하여 자신을 등록하는 메시지이다.
변수명 타입 크기 비고
Type Int 4 M_PREG(0x02)을 표시하는 tag
Len Int 4 전체 메시지의 크기(메시지 하나의 모든 것을 포함한 크기)
Sid Int 4 프로세스가 속하는 ID
Pid Int 4 자신의 프로세스 ID
(4)네트웍 설정관련 메시지M_NET_SET M_NET_GETVMP 간에 설정된 이중화된 네트웍 중 어떤 네트웍을 사용하여 data를 전송 할것인가 결정할 때 사용된다. 연결을 받아들이는 VMP에서 M_NET_SET을 보낸다. 연결이 설정된 후에 M_NET_GET을 사용하여 묻고, M_NET_SET을 사용하여 답을 한다.
변수명 타입 크기 비고
Type Int 4 M_NET_SET(0x03) M_NET_GET(0x04)
Len Int 4 전체 메시지의 크기(메시지 하나의 모든 것을 포함한 크기)
Net Int 4 어떤 네트웍을 사용하는가의 정보, 0:A NETWORK, 1:B NETWORK
(5)M_SENDVmp <-> vmp, vmp <-> process 간에 데이터 전송을 위한 메시지 구조이다.
변수명 타입 크기 비고
Type Int 4 M_SEND(0X01)
Len Int 4 전체 메시지의 크기
Ssid Int 4 전송을 요청하는 시스템의 ID, 혹은 메시지의 발생지현재 1 ~ 255까지 사용
Spid Int 4 전송을 요청하는 프로세스의 ID현재 1 ~ 255까지 사용
Dsid Int 4 메시지가 전송되어야 하는 시스템의 ID
Dpid Int 4 메시지가 전송되어야 하는 프로세스의 ID
Stamp Timeval 8 메시지가 발생된 시점의 1970부터 환산된 초와 10^-6초
Seq Int 4 두 메시지 전송로간의 일련번호
Option Int 4 메시지 전송의 옵션MOPT_SEND_ONLY(0x00) 메시지를 단순 전송한다.이상 발생시 폐기, 메시지를 보낸 프로세스에 알리지 않는다.MOPT_KEEP_IT(0x01) 메시지 전송 실패시 저장하여 전달한다.메시지를 보낸 프로세스에 알리지 않는다.
Reserve Char 8 예비용
Data Char 가변 실제 전송할 데이터를 담는다. Vmp간 메시지 전송은2048을 최대 크기로 한다. 그러므로, 현재 48바이트의메시지 헤더가 있으므로, data는 최대 2000 bytes를 넘을 수 없다.
통합 메일 시스템과 같은 이중화 시스템은 여러 개의 유닉스(UNIX) 시스템이 모여서 하나의 시스템을 구성한다. 이런 각각 시스템은 하드웨어로 구분이 된다. 이런 하드웨어적인 시스템의 구분은 소프트웨어의 설계와 관련이 있지만, 그것만으로 시스템을 구분하기는 힘들다. 예를 들면, 시스템의 개발시 MFU, MCU의 시스템으로 구분이 되어 개발이 되어 있지만 이것이 소용량의 이중화 시스템이 필요할때는 MFU, MCU의 시스템으로 구분이 되어 기능할 수 있어야 할 것이다.따라서, MFU, MCU의 구분은 하드웨어적인 구분이기보다는 단지 개념적인 구분으로 남아야 한다. 그러면, 두 유니트가 하나의 호스트안에서 구현될 수도 있고 분리된 두 개의 호스트 안에서 구현될 수도 있게 될 것이다.본 발명에 따른 VMP는 전술한 점을 고려하여 엘리아스(alias)라는 개념을 적용한다. 즉, 소프트웨어의 개발 시 MFU, MCU로 구분되어진 시스템 블록들은 개발이 되어지고, 실제로 동작 시 그 독립된 하드웨어가 MFU, MCU 두 개 모두의 역할을 하기 위해서는 VMP만 그 이름을 알면 되는 것이다. 이런 엘리아스들의 구분을 시스템 ID(sid)라 하고 또한 프로세스의 ID를 PID라고 한다.한편, 본 발명에 따른 VMP는 커넥션을 맺어야 할 대상에 대한 정보를 환경 설정 화일인 “vmp.tab”을 통해서 알아내는데, vmp.tab의 내용의 양호한 실시예는 다음과 같다.
#SYSTEMID HOSTNAME ALIAS NIC#IP address must be dotnotation0 lipsmcu MCU0, MFU0 210.112.25.161(qfe0), 210.112.24.161(qfe1)1 lipsmfu MCU1, MFU1 210.112.25.159(qfe0), 210.112.24.159(qfe1)
여기서,SYSTEM ID: 하드웨어적인 시스템에 따른 번호HOSTNAME: 시스템의 이름(hostname 혹은 uname-n)ALIAS: sid에 따른 이름IP: IP Address와 그 NIC 이름으로 정의한다.
전술한 내용은 후술할 발명의 특허 청구 범위를 보다 잘 이해할 수 있도록 본 발명의 특징과 기술적 장점을 다소 폭넓게 개설하였다. 본 발명의 특허 청구 범위를 구성하는 부가적인 특징과 장점들이 이하에서 상술될 것이다. 개시된 본 발명의 개념과 특정 실시예는 본 발명과 유사 목적을 수행하기 위한 다른 구조의 설계나 수정의 기본으로서 즉시 사용될 수 있음이 당해 기술 분야의 숙련된 사람들에 의해 인식되어야 한다.
또한, 본 발명에서 개시된 발명 개념과 실시예가 본 발명의 동일 목적을 수행하기 위하여 다른 구조로 수정하거나 설계하기 위한 기초로서 당해 기술 분야의 숙련된 사람들에 의해 사용되어질 수 있을 것이다. 또한, 당해 기술 분야의 숙련된 사람에 의한 그와 같은 수정 또는 변경된 등가 구조는 특허 청구 범위에서 기술한 발명의 사상이나 범위를 벗어나지 않는 한도 내에서 다양한 변화, 치환 및 변경이 가능하다.
이상과 같이, 본 발명에 따른 다중화 서버 시스템 및 다중화 서버 시스템의 통신 방법은 VMP 프로세스와 VMP 환경 설정 테이블을 사용하여 다중화된 서버 시스템 및 다중화된 네트워크 망을 구성하고, 서버에서 전송할 프로세스를 대신하여 전달함으로써, 종래 기술과는 달리 서버에서 구동되는 각각의 프로세스들이 직접 메시지 통신을 수행해야 하는 부담을 가지지 않고, VMP 프로세스를 통하여 항상 동일한 인터페이스를 사용하여 통신할 수 있다.
그 결과, 다중화된 서버 시스템 내의 통신의 안정성을 보장하고 다중화된 시스템 내에서 통신하는 프로그램 개발에 소요되는 시간과 노력을 감소시킬 수 있다.

Claims (28)

  1. 활성(Active)과 비활성(Standby) 상태로 다중화된 통신 네트워크 상에서 활성(Active)과 비활성(Standby) 상태로 다중화된 복수 개의 서버에서 작동 중인 프로세스들 사이에 메시지 전달 시에 애플리케이션 프로세스들이 목적 프로세스와 직접 메시지를 송수신하는 대신에 가상 통로를 제공하고 하트 비트 메시지를 서로 주고 받음으로써 네트워크의 장애 또는 프로세스/호스트의 장애를 감지하는 VMP 프로세스를 각각의 호스트에 구비한 다중화 서버 시스템에 있어서, 상기 다중화 서버 시스템을 구성하는 제1 호스트는 제2 호스트의 활성 서버와의 통신 장애를 감지하고 제1 호스트의 제1 프로세스로부터 제2 호스트의 제2 프로세스로 제1 메시지를 전송하는 통신 방법은,
    상기 제1 프로세스는 상기 제1 호스트에서 운영 중인 제1 VMP 프로세스 모듈에 상기 전송하고자 하는 제1 메시지를 전달하는 단계;
    상기 제1 VMP 프로세스 모듈은 상기 다중화된 통신 네트워크 중 가용한 활성 통신 네트워크와, 상기 제2 호스트에 대응하여 다중화된 복수 개의 서버 가운데 활성 상태에 있는 제2 서버의 시스템 아이디를 VMP 환경 설정 테이블로부터 독출하는 단계;
    상기 제1 VMP 프로세스 모듈은 상기 시스템 정보로부터 상기 제1 서버의 시스템 아이디보다 값이 큰 시스템 아이디를 갖는 제2 서버로 연결을 요청하는 단계;
    상기 제1 VMP 프로세스 모듈로부터 연결 요청을 받은 제2 서버의 제2 VMP 프로세스 모듈은 상기 다중화된 통신 네트워크 중 어떤 네트워크를 사용할 것인가를 결정하는 단계;
    상기 제1 서버와 제2 서버는 상기 호스트들의 활성 서버에 대응하는 엘리아스 및 대기 서버에 대응하는 엘리아스와, 상기 엘리아스에 대응되는 호스트 이름, 서버 엘리아스, 아이피 주소 중 어느 하나 또는 이들의 조합을 포함하는 동적 엘리아스 테이블을 읽어들여 서버 엘리아스를 결정하는 단계;
    상기 제1 VMP 프로세스 모듈은 상기 제2 서버에 운영 중인 제2 VMP 프로세스 모듈로 상기 가용 통신 채널을 이용하여 상기 제1 메시지를 전송하는 단계; 및
    상기 제2 VMP 프로세스 모듈은 상기 제2 서버의 상기 제2 프로세스에게 상기 제1 메시지를 전달하는 단계
    를 포함하는 다중화 시스템의 통신 방법.
  2. 제1항에 있어서, 상기 제1 프로세스가 상기 제1 VMP 프로세스 모듈에 상기 제1 메시지를 전송하는 단계는 선행하여,
    상기 제1 VMP 프로세스 모듈은 통신을 위한 소켓을 개방하는 단계; 및
    상기 제1 프로세스는 초기 기동 시에 상기 프로세스 관리자 모듈에 자신의 프로세스 이름을 등록하는 단계
    를 더 포함하는 다중화 시스템 통신 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서, 상기 VMP 환경 설정 테이블은 상기 복수 개의 서버의 시스템 아이디, 호스트 이름, 엘리아스, 아이피 주소, 네트워크 인터페이스 카드 이름 중 어느 하나 또는 이들의 조합을 포함하는 다중화 시스템 통신 방법.
  7. 활성(Active)과 비활성(Standby) 상태로 다중화된 통신 네트워크 상에서 활성(Active)과 비활성(Standby) 상태로 다중화된 복수 개의 서버에서 작동 중인 프로세스들 사이에 메시지 전달 시에 애플리케이션 프로세스들이 목적 프로세스와 직접 송수신하는 대신에 가상 통로를 제공하고 하트 비트 메시지를 서로 주고 받음으로써 네트워크의 장애 또는 프로세스/호스트의 장애를 감지하는 VMP 프로세스를 각각의 호스트에 구비한 다중화 서버 시스템에 있어서, 상기 다중화 서버 시스템을 구성하는 제1 호스트는 제2 호스트의 활성 서버와의 통신 장애를 감지하고 제1 호스트의 제1 프로세스로부터 제2 호스트의 제2 프로세스로 제1 메시지를 전송하는 방법에 있어서,
    제2 호스트의 활성 서버인 제2A 서버와의 통신 장애를 제1 호스트의 활성 서버인 제1 서버의 다중화 감시 프로세스가 감지하는 단계;
    상기 제1 서버의 다중화 감시 프로세스는 제1 서버의 제1 VMP 모듈에 상기 통신 장애를 통지하고, 상기 제1 메시지를 파일로 저장한 후 상기 제1 VMP 모듈은 상기 제2A 서버의 엘리아스를 동적 엘리아스 테이블로부터 삭제하는 단계;
    상기 제1 VMP 모듈은 상기 VMP 환경 설정 테이블을 이용하여 상기 복수 개의 서버들의 VMP 모듈들과 연결을 시도하고, 상기 동적 엘리아스 테이블에 대기 상태에서 활성 상태로 바뀐 제2S 서버의 시스템 정보를 업데이트하여, 연결된 상기 VMP 모듈들에게 전송하는 단계; 및
    상기 제2 호스트의 대기 서버이던 제2S 서버의 제2 VMP 모듈은 상기 복
    수 개의 서버들의 VMP 모듈들과 연결되는 단계
    를 포함하는 다중화 시스템 통신 방법.
  8. 삭제
  9. 삭제
  10. 다중화된 통신 네트워크 상에서 동작하는 다중화 서버 시스템을 구성하는 각각의 서버들은,
    상기 서버에서 수행 중인 프로세스들이 상기 통신 네트워크를 통해 접속된 다른 서버의 프로세스와 통신을 하기 위한 환경을 제공하고, VMP 환경 설정 테이블을 독출하기 위한 VMP 문법 해석부, 상기 VMP 환경 설정 테이블을 독출하기 위한 변수 할당부, 상기 VMP 환경 설정 테이블을 열어 상기 VMP 문법 해석부와 상기 변수 할당부를 이용하여 설정 환경을 독출하는 VMP 환경 설정부, 내부 및 외부 시스템과의 통신을 위한 소켓을 열어두고, 자신의 시스템 아이디를 이용하여 시스템과 접속하기 위한 접속 스레드를 생성하며, 외부 시스템에 전달될 저장 파일을 조사하는 스레드와 다중화 감시를 위한 하트 비트를 발생하는 스레드를 생성하는 메인 VMP부로 구성된 VMP 모듈과;
    상기 VMP 모듈이 서로 통신하기 위한 환경을 설정하여 주기 위하여, 상기 복수 개의 서버의 시스템 아이디, 호스트 이름, 엘리아스, 아이피 주소, 네트워크 카드 이름 중 어느 하나 또는 이들의 조합을 포함하는 VMP 환경 설정 테이블과;
    상기 서버의 활성 상태와 대기 상태를 분별하여 감시하는 다중화 감시 프로세스
    를 포함하는 다중화 서버 시스템.
  11. 삭제
  12. 삭제
  13. 복수 개의 서버로 구성되는 서버 시스템을 다중화하는 방법에 있어서,
    상기 서버 시스템에 포함되는 서버들의 정보를 엘리아스와 이에 대응한 주소와 함께 VMP 환경 설정 테이블에 등록하는 단계;
    상기 서버 시스템이 동작을 시작하면서 상기 VMP 환경 설정 테이블을 읽어들인 후, 자신의 시스템 아이디를 인식하고 상기 VMP 환경 설정 테이블에 등록된 서버들 가운데 자신의 시스템 아이디보다 큰 시스템 아이디를 가진 서버들과 연결을 시도함으로써 이용하여 전체 서버들과 연결하는 단계;
    상기 연결되는 활성 서버들과 비활성 서버들을 동적 엘리아스 테이블에 등록하는 단계;
    상기 동적 엘리아스 테이블을 이용하여 서버에서 전송할 메시지를 프로세스 관리 모듈에 등록하는 단계;
    상기 등록된 메시지를 수신할 활성 서버가 동적 엘리아스 테이블에 존재하면, 상기 VMP 프로세스를 통해 패킷화하여 TCP/IP 프로토콜로 메시지를 전송하는 단계; 및
    상기 등록된 메시지를 수신할 서버가 동적 엘리아스 테이블에 존재하지 않으면 전송할 메시지를 파일로 저장하고 상기 저장된 메시지를 서비스 장애가 복구된 후 다시 전송하는 단계
    를 포함하는 다중화 서버 통신 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 다중화된 서버 및 다중화된 네트워크 망을 이용하여 다중화 서버 시스템의 장애를 검사하는 방법에 있어서,
    상기 다중화 서버 시스템을 구성하는 서버들이 VMP 환경 설정 테이블에 등록되어 있는 모든 서버들에게 주기적으로 장애 검사 데이터를 전송하는 단계;
    상기 주기적인 장애 검사 데이터를 수신한 서버로부터 일정 시간 간격 동안 장애 검사 데이터의 회신이 없으면 일방적으로 연결을 종료하는 단계;
    상기 연결이 종료된 서버가 동적 엘리아스 테이블에 활성 서버로 등록되어 있는 경우에는 같은 그룹의 대기 서버를 활성 서버로 전환하는 단계;
    상기 연결이 종료된 서버가 동적 엘리아스 테이블에 대기 서버로 등록되어 있는 경우에는 상기 서버의 정보를 제거하는 단계; 및
    상기 동적 엘리아스 테이블을 전체 서버로 전송하는 단계
    를 포함하는 다중화 서버 통신 방법.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
KR1020000018556A 2000-04-10 2000-04-10 다중화 서버 시스템을 위한 통신 시스템 및 방법 KR100377864B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000018556A KR100377864B1 (ko) 2000-04-10 2000-04-10 다중화 서버 시스템을 위한 통신 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000018556A KR100377864B1 (ko) 2000-04-10 2000-04-10 다중화 서버 시스템을 위한 통신 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20010090635A KR20010090635A (ko) 2001-10-19
KR100377864B1 true KR100377864B1 (ko) 2003-03-29

Family

ID=19662957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018556A KR100377864B1 (ko) 2000-04-10 2000-04-10 다중화 서버 시스템을 위한 통신 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100377864B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021852A (ko) * 2017-08-24 2019-03-06 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 업그레이드 방법 및 그를 위한 전화 교환기

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460509B1 (ko) * 2000-12-22 2004-12-08 엘지전자 주식회사 이중화된 호스트와 클라이언트 사이의 로딩 방법
CN114706703B (zh) * 2022-03-23 2023-10-20 飞腾信息技术有限公司 多路服务器系统故障诊断装置、系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021852A (ko) * 2017-08-24 2019-03-06 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 업그레이드 방법 및 그를 위한 전화 교환기
KR102350333B1 (ko) * 2017-08-24 2022-01-14 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 업그레이드 방법 및 그를 위한 전화 교환기

Also Published As

Publication number Publication date
KR20010090635A (ko) 2001-10-19

Similar Documents

Publication Publication Date Title
US6597700B2 (en) System, device, and method for address management in a distributed communication environment
US8098682B2 (en) System and method for interfacing with a management system
US5964837A (en) Computer network management using dynamic switching between event-driven and polling type of monitoring from manager station
US7839848B2 (en) Method, device and system for message transmission
US20060294211A1 (en) Forwarding table synchronization for virtual environments
US7567505B2 (en) VRRP technology keeping VR confidentiality
US20030046394A1 (en) System and method for an application space server cluster
US20030101284A1 (en) Virtual network with adaptive dispatcher
CN109831318A (zh) 一种获取网络拓扑的系统、方法和服务器
CN114024880B (zh) 基于代理ip与流表的网络靶场探针采集方法与系统
US20070223494A1 (en) Method for the resolution of addresses in a communication system
CN108632099B (zh) 一种链路聚合的故障检测方法及装置
US6977924B1 (en) Control and distribution protocol for a portable router framework
CN110704250A (zh) 一种分布式系统的热备份装置
US20080205376A1 (en) Redundant router having load sharing functionality
KR20210147966A (ko) 네트워크 토폴로지 발견 방법, 디바이스, 및 시스템
KR100377864B1 (ko) 다중화 서버 시스템을 위한 통신 시스템 및 방법
US7184394B2 (en) Routing system providing continuity of service for the interfaces associated with neighboring networks
CN113805788B (zh) 一种分布式存储系统及其异常处理方法和相关装置
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages
Cisco System Error Messages

Legal Events

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

Payment date: 20080314

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee