[go: up one dir, main page]

KR20210078115A - 전화 교환 시스템의 메시지 전달 장치 및 방법 - Google Patents

전화 교환 시스템의 메시지 전달 장치 및 방법 Download PDF

Info

Publication number
KR20210078115A
KR20210078115A KR1020190169861A KR20190169861A KR20210078115A KR 20210078115 A KR20210078115 A KR 20210078115A KR 1020190169861 A KR1020190169861 A KR 1020190169861A KR 20190169861 A KR20190169861 A KR 20190169861A KR 20210078115 A KR20210078115 A KR 20210078115A
Authority
KR
South Korea
Prior art keywords
node
message
http
interface unit
websocket
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020190169861A
Other languages
English (en)
Other versions
KR102611301B1 (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 KR1020190169861A priority Critical patent/KR102611301B1/ko
Publication of KR20210078115A publication Critical patent/KR20210078115A/ko
Application granted granted Critical
Publication of KR102611301B1 publication Critical patent/KR102611301B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 개시는 API(Application Programming Interface) 인터페이스 노드를 이용하여 단일 노드 구성에서 사용하던 어플리케이션 장비를 다중 노드 구성에서 변경없이 사용 가능하도록 한 메시지 전달 장치 및 방법에 관한 것이다. 본 개시의 실시예에 따른 메시지 전달 장치는, HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지를 수신하고, 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하며, 노드 내부 메시지를 송신할 노드를 결정하고, 결정된 노드로 노드 내부 메시지를 송신하며, 결정된 노드로부터 응답 메시지를 수신하고, 응답 메시지의 송신 여부를 결정한다.

Description

전화 교환 시스템의 메시지 전달 장치 및 방법{APPARATUS AND METHOD FOR FORWARDING MESSAGE OF PRIVATE BRANCH EXCHANGE SYSTEM}
본 개시는 전화 교환 시스템에 관한 것으로, 특히 API(Application Programming Interface) 인터페이스 노드를 이용하여 단일 노드 구성에서 사용하던 어플리케이션 장비를 다중 노드 구성에서 변경없이 사용 가능하도록 한 메시지 전달 장치 및 방법에 관한 것이다.
기존 PBX(Private Branch eXchange) 시스템은 경우에 따라서 단일 노드(Node) 또는 다중 노드로 구성되어 어플리케이션 서버(Application Server)와 노드 사이에 HTTP(Hyper Text Transfer Protocol) 및 웹소켓(Websocket)으로 통신을 수행한다.
일반적인 경우에는 작은 단일 노드 구성으로 사용하다가, 자원이 많아지면 다중 노드 환경으로 확장하는 경우가 많은데, 이때 어플리케이션 장비는 기존 구조로는 그대로 사용하지 못하고 다중 노드 구성에 맞도록 수정해야 하는 비용이 발생하거나 동일한 어플리케이션 장비로 서비스를 사용하지 못하는 문제점이 발생할 수 있다.
본 개시는 전화 교환 시스템의 API(Application Programming Interface) 인터페이스 노드를 이용하여 단일 노드 구성에서 사용하던 어플리케이션 장비를 다중 노드 구성에서 변경없이 사용 가능하도록 한 메시지 전달 장치 및 방법을 제공한다.
본 개시의 실시예에 따른 전화 교환 시스템의 메시지 전달 장치는, HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지의 인터페이스(interface) 기능을 수행하는 HTTP 인터페이스부; 상기 HTTP 인터페이스부와 연결되어 상기 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행하는 HTTP 시스템 인터페이스부; 및 상기 HTTP 시스템 인터페이스부와 연결되어 상기 노드 내부 메시지를 송신할 노드를 결정하고, 상기 노드로부터 수신된 응답 메시지를 상기 HTTP 시스템 인터페이스부로 송신할지 여부를 결정하는 API 인터페이스부를 포함할 수 있다.
일 실시예로서, 상기 HTTP 인터페이스부는, 어플리케이션 서버(Application Server)와 연결되고, 상기 API 인터페이스부는, 적어도 하나의 노드와 연결될 수 있다.
일 실시예로서, 상기 API 인터페이스부는, 적어도 하나의 노드의 정상 동작 여부 및 상기 적어도 하나의 노드의 클러스터 구성에 대한 정보를 저장하는 노드 결정부; 및 상기 적어도 하나의 노드로부터 수신된 이벤트를 저장하고, 수신된 이벤트를 어플리케이션 서버로 전송하는 이벤트 수집부를 포함할 수 있다.
일 실시예로서, HTTP 시스템 인터페이스부는, HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성할 수 있다.
본 개시의 실시예에 따른 전화 교환 시스템의 메시지 전달 방법은, HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지를 수신하는 단계; 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계; 상기 노드 내부 메시지를 송신할 노드를 결정하는 단계; 결정된 노드로 상기 노드 내부 메시지를 송신하는 단계; 상기 결정된 노드로부터 응답 메시지를 수신하는 단계; 및 상기 응답 메시지의 송신 여부를 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계는, HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는 단계를 포함할 수 있다.
일 실시예로서, 상기 노드 내부 메시지를 송신할 노드를 결정하는 단계는, 적어도 하나의 노드의 정상 동작 여부를 고려하여 송신 대상 노드가 비정상 동작 상태일 경우 동일한 클러스터에 포함된 다른 노드를 상기 노드 내부 메시지를 송신할 노드로 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 응답 메시지를 HTTP 또는 웹소켓 메시지로 변환하는 단계; 및 변환된 HTTP 또는 웹소켓 메시지를 어플리케이션 서버(Application Server)로 전송하는 단계를 더 포함할 수 있다.
본 개시에 의하면, 전화 교환 시스템의 어플리케이션 서버가 단일 노드 구성 또는 다중 노드 구성 여부에 관계없이 동일한 구성을 사용하여 시스템 서비스를 구성할 수 있으므로, 확장성을 가진 유연한 시스템을 형성할 수 있다.
도 1은 단일 노드로 구성된 PBX 시스템의 구성도이다.
도 2 및 도 3은 단일 노드로 구성된 PBX 시스템의 구성도이다.
도 4는 본 개시의 실시예에 따른 API(Application Programming Interface) 서비스 시스템의 단일 노드 구성을 보이는 예시도이다.
도 5는 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 6은 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 7은 본 개시의 실시예에 따른 API 인터페이스의 구성을 보이는 예시도이다.
본 개시의 실시예들은 본 개시의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 개시에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다.
본 개시에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 개시에 사용되는 모든 용어들은 본 개시를 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 개시에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.
본 개시에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.
본 개시에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.
본 개시에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다.
본 개시에서 사용되는 용어 "부"는, 소프트웨어, 또는 FPGA(field-programmable gate array), ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미한다. 그러나, "부"는 하드웨어 및 소프트웨어에 한정되는 것은 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세서, 함수, 속성, 프로시저, 서브루틴, 프로그램 코드의 세그먼트, 드라이버, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조, 테이블, 어레이 및 변수를 포함한다. 구성요소와 "부" 내에서 제공되는 기능은 더 작은 수의 구성요소 및 "부"로 결합되거나 추가적인 구성요소와 "부"로 더 분리될 수 있다.
본 개시에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정, 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.
본 개시에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 개시의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
도 1은 단일 노드로 구성된 PBX 시스템의 구성도이다.
기존 PBX(Private Branch eXchange) 시스템에서 단일 노드(Node) 구성 시에는 도 1에 도시한 바와 같이 하나의 노드(20)에 어플리케이션(Application) 서버(10)가 연결되어 있고, 어플리케이션 서버(10)와 노드(20)에 연결된 시스템 사이에는 HTTP(Hyper Text Transfer Protocol)와 웹소켓(WebSocket)으로 통신한다. HTTP는 어플리케이션 서버(10)가 노드(20)에 연결된 시스템에게 동작을 요청하거나 정보를 요청할 때 사용되며 각 요청에 대하여 응답이 송신된다. HTTP 요청으로 시스템이 정해진 동작을 하는데, 이 동작 중간에 시스템에서 발생한 이벤트를 어플리케이션으로 알려 줄 수 있는 통로가 웹소켓을 통하여 연결되어 있다.
도 2는 다중 노드로 구성된 PBX 시스템의 구성도이다.
도 2에 도시한 바와 같이, 다중 노드 구성(2 Node)으로 용량 확장 시, 어플리케이션 서버(10)와 노드(20, 30, 40, 50) 간의 구성이 변경되어야 한다. 노드별로 보유한 자원(Resource)이 다르기 때문에, 시스템 노드의 기존 구조를 유지하면서 확장 시에는 어플리케이션 장비가 구조적으로 변경이 이루어져야 할 수 있다. HTTP 요청을 하는 경우에는 어플리케이션 서버(10)가 어느 노드에 자원이 존재하는지 미리 알아야하고, 해당 자원이 존재하는 노드로 접속할 수 있도록 노드 정보를 구성해 놓아야 한다. 이벤트를 수신할 경우 모든 노드(20, 30, 40, 50)에 접속하여 발생된 이벤트를 수신하여야 한다. 도 2는 하나의 어플리케이션 서버(10)와 다수의 노드(20, 30, 40, 50)를 연동할 경우를 예시하고 있으나, 어플리케이션 서버(10)의 개수가 늘어나면 연결 구성이 복잡해지고 각 노드는 어플리케이션 서버(10)의 인증 처리를 위한 동일한 설정이 동일하게 유지되어야 한다. 여기서 이벤트 수신 시에 사용되는 연결은 연결 지향성 프로토콜(protocol)이어서 어플리케이션 서버(10)에서 모든 노드(20, 30, 40, 50)에 한번 서비스를 시작하면 계속해서 연결된 상태로 유지되어야 한다.
도 3은 다중 노드로 구성된 PBX 시스템의 구성도이다.
도 2와 같은 PBX 시스템 구성의 문제점을 해결하기 위하여, 도 3에 도시한 바와 같이 오픈 소스(open source)인 HA 프록시(proxy)/역 웹 프록시(Reverse web proxy)(60)를 사용할 수 있다. 이러한 경우, HTTP 연결은 단순하게 구성될 수 있으나, 여전히 어플리케이션 서버(10)에서 원하는 자원이 어느 노드에 존재하는지 알아서 HTTP request에 포함 시켜서 HA proxy안 Reverse web proxy가 routing를 할 수 있도록 정보를 제공해야 하며, 웹소켓 연결은 도 2와 다르지 않게 어플리케이션 서버(10)에서 모든 노드에 연결을 유지하고 있어야 한다.
도 4는 본 개시의 실시예에 따른 API(Application Programming Interface) 서비스 시스템의 단일 노드 구성을 보이는 예시도이다.
도 4에 도시한 바와 같이, API 서비스 시스템(100)은, 어플리케이션 서버(110), HTTP(Hyper Text Transfer Protocol) 인터페이스부(120), HTTP 시스템 인터페이스부(130), 시스템 어플리케이션(140) 및 메시지 스위치(150)를 포함할 수 있다. 일 실시 예에 따르면, 노드(160) 내부의 메시지의 외부 통로는 단일 노드 구성에서는 사용되지 않고, 멀티 노드 구성 시에 사용될 수 있다.
HTTP 인터페이스부(120)는, HTTP 및 웹소켓(WebSocket) 메시지의 인터페이스 기능을 수행할 수 있다. 일 실시 예에 따르면, HTTP 인터페이스부(120)는, 정상적인 HTTP 요청(request)만을 HTTP 시스템 인터페이스부(130)로 전달하고, 비정상적인 HTTP 요청(request)은 HTTP 시스템 인터페이스부(130)로 전달하지 않을 수 있다.
HTTP 시스템 인터페이스부(130)는, HTTP 인터페이스부(120)와 연결되어 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행할 수 있다. 즉, HTTP 시스템 인터페이스부(130)는, HTTP 요청을 시스템에서 처리가능하도록 시스템(노드, 160) 내부 메시지로 변환하고, 노드(160) 내부 메시지를 HTTP 메시지로 변환할 수 있다. 일 실시 예에 따르면, HTTP 요청을 노드(160) 내부 메시지로 변환할 경우 HTTP를 사용하지 않고, HTTP보다 하위 레벨(low level)의 TCP(Transmission Control Protocol)를 사용하여 노드(160)의 처리 부하(load)를 감소시킬 수 있다.
시스템 어플리케이션(140)은, 노드(160)의 내부 메시지들을 처리하여 실제 서비스가 제공되도록 할 수 있다.
메시지 스위치(150)는, 노드(160)의 내부 메시지들을 노드(160) 내부 또는 외부로 전송하도록 전송 방향을 변환하는 역할을 수행할 수 있다.
도 4에 도시한 바와 같은, 단일 노드의 구성일 경우 서비스 흐름은 다음과 같다. 외부의 어플리케이션 서버(110)가 노드(160)에 서비스를 요청하기 위해서는 노드(160)에 인증 관련 정보를 미리 설정하고, HTTP를 이용하여 노드(160)에 접속을 시도할 수 있다. 노드(160)는, 접속을 시도하는 어플리케이션 서버(110)의 인증 정보를 확인하여 인증 정보가 확인되면 어플리케이션 서버(110)로 인증 관련 토큰(token)을 전송하고, 인증 정보가 확인되지 않으면 어플리케이션 서버(110)의 접속 시도에 대해서 접속을 허용하지 않을 수 있다. 어플리케이션 서버(110)는, 인증이 정상적으로 완료되면, 인증 완료 후 노드(160)로부터 수신한 토큰 정보를 이용하여 노드(160)에 웹소켓 연결을 시도할 수 있다.
상기 인증 과정이 성공하면 어플리케이션 서버(110)는, 실제 기능을 수행할 수 있는 준비가 되어 HTTP API로 전화 걸기 등의 시스템 기능을 사용할 수 있다. 이 서비스 중간에 발생하는 각종 이벤트(Event)는, 웹소켓을 통하여 노드(160)에서 어플리케이션 서버(110)로 전달될 수 있다.
도 5는 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 5에 도시한 바와 같이, API 서비스 시스템(200)은, 제1 어플리케이션 서버(210), API 인터페이스 노드(220), 제2 어플리케이션 서버(230), 제1 노드(240), 제2 노드(250), 제3 노드(260)를 포함할 수 있다. API 인터페이스 노드(220)는, HTTP 인터페이스부(221), HTTP 시스템 인터페이스부(222) 및 API 인터페이스부(223)를 포함하고, 제1 노드(240)는, HTTP 인터페이스부(241), HTTP 시스템 인터페이스부(242), 시스템 어플리케이션(243) 및 메시지 스위치(244)를 포함할 수 있다.
도 4에서 도시한 단일 노드 구성에 비하여, 모든 외부 HTTP/웹소켓을 연결해주는 API 인터페이스 노드(220)가 추가될 수 있다. API 인터페이스 노드(220)는, 밖으로는 제1 어플리케이션 서버(210)와 연결되고, 내부로는 제1 노드(240), 제2 노드(250), 제3 노드(260)를 포함한 다수의 노드와 연결될 수 있다.
제1 어플리케이션 서버(210)와 API 인터페이스 노드(220) 간에는, HTTP/웹소켓 프로토콜을 사용하고, API 인터페이스 노드(220)와 제1 노드(240), 제2 노드(250), 제3 노드(260) 간에는 HTTP/웹소켓에 해당하는 기능을 포함하는 TCP를 사용할 수 있다.
일 실시예에 따르면, 제1 노드(240), 제2 노드(250), 제3 노드(260)는, 도 4에 도시한 노드(160)와 동일한 구성을 포함할 수 있다.
API 인터페이스 노드(220)에서 HTTP 인터페이스부(221) 및 HTTP 시스템 인터페이스부(222)는, 도 4에서 도시한 HTTP 인터페이스부(120) 및 HTTP 시스템 인터페이스부(130)와 동일한 기능을 수행할 수 있다.
HTTP 시스템 인터페이스부(222)에서 HTTP 메시지가 노드 내부 메시지로 변환되는데, API 인터페이스부(223)는, 내부 HTTP 요청(Request)을 수신하여 노드 내부 메시지를 분석하고, 노드 내부 메시지를 어느 노드로 송신하고 응답을 수신하여 전달할 것인가를 결정할 수 있다. HTTP 시스템 인터페이스부(222)의 내부 구성에 대해서는 후술하도록 한다.
도 6은 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 6에 도시한 바와 같이, 고 가용성 서비스 제공을 위하여 소정 개수(예를 들어, 2개)의 노드를 묶어서 클러스터(cluster)로 구성해 놓고, 클러스터에 속한 노드(240, 250)들은 해당 노드가 서비스를 수행하지 않더라도 다른 노드의 정보를 동일하게 저장하도록 할 수 있다. 예를 들어, 제1 노드(240)와 제2 노드(250)는 동일한 정보를 저장하고, 각각의 서비스를 수행하도록 구성할 수 있다. 만약 제1 노드(240)가 서비스 수행 중 정상 처리가 불가능한 상태가 발생할 경우 제1 노드(240)에서 수행하던 서비스를 제2 노드(250)가 수행하도록 처리하도록 구성할 수 있다.
도 7은 본 개시의 실시예에 따른 API 인터페이스부의 구성을 보이는 예시도이다.
도 7에 도시한 바와 같이, API 인터페이스부(223)는, 노드 결정부(223-1) 및 이벤트 수집부(223-2)를 포함할 수 있다.
API 인터페이스 노드(220)는, 지속적으로 노드들의 정상 동작 여부를 관찰하고 기록하는데, 노드 결정부(223-1)에서 서비스 노드를 결정할 때 노드들의 정상 동작 여부가 기록된 테이블에서 HTTP 요청이 전달되어야 하는 노드가 비정상 동작 상태이면 동일한 클러스터에 있는 다른 노드에게 메시지를 전달하도록 결정할 수 있다. 즉, API 인터페이스부(223)는, 서비스 노드를 결정할 때 제1 노드(240)가 비정상 동작 상태로 판단된 경우, 동일한 클러스터에 존재하는 제2 노드(250)로 HTTP 요청(메시지)을 전달할 수 있다. 또한, 이 메시지를 전달할 때, 인증정보를 확인하여 인증된 메시지만 제2 노드(250)에 전달되어 처리할 수 있도록 하며, 제2 노드(250)에서는 추가 인증이 필요 없도록 구성할 수 있다.
이벤트 수집부(223-2)는, 모든 노드에서 수신되는 이벤트를 저장하고, 제1 어플리케이션 서버(210)로 수신된 이벤트를 전달해주는 기능을 수행할 수 있다. 이벤트는, 노드(240, 250)에서 제1 어플리케이션 서버(210)로 전송되는 메시지이고, 이벤트 수집부(223-2)가 없을 경우 제1 어플리케이션 서버(210)는 모든 노드에 웹소켓 연결을 유지해야 한다.
다중 노드 구성에서 각 노드의 동작은 기능적으로는 단일 노드 구성일 때와 동일하다. 다만, 메시지 스위치가 추가 설치될 수 있다. 메시지 스위치를 노드와 연결된 어플리케이션 서버로 연결할 경우, 해당 노드는 API 인터페이스 노드와의 연결은 관계없어지고, 단일 노드 구성으로 동작할 수 있다. 한편, 메시지 스위치를 API 인터페이스 노드로 연결할 경우, 모든 요청 및 이벤트는 API 인터페이스 노드에서 송수신할 수 있다. 일 실시예에 따르면, 모든 요청 및 이벤트 송수신에 사용되는 메시지는 TCP 메시지를 포함할 수 있지만, 이에 한정되지 않는다.
다중 노드 구성에서 본 개시를 통하여 달성하고자 하는 메시지 플로우는 다음과 같다. 다중 노드 구성 후, 제1 어플리케이션 서버(210)에서 HTTP 요청을 API 인터페이스 노드(220)로 송신하면 API 인터페이스 노드(220)에 포함된 HTTP 인터페이스부(221)가 정상적인 HTTP 요청만을 HTTP 시스템 인터페이스부(222)에 전달할 수 있다. HTTP 시스템 인터페이스부(222)는 HTTP/웹소켓 요청을 시스템 내부 TCP 메시지로 변환하여 API 인터페이스부(223)에 전달한다. HTTP 시스템 인터페이스부(222)는, 시스템 메시지를 HTTP 웹소켓 메시지로 변환하는 기능도 수행할 수 있다. 한편, API 인터페이스부(223)는, 전달받은 HTTP 요청을 분석하여 고가용성 기능을 포함하여 어느 노드로 전송해야 할 메시지인지 판단하고, 해당 요청 메시지를 전송하고자 하는 노드(예를 들어, 240)의 외부 TCP 메시지 인터페이스를 통하여 전달할 수 있다. 이때, 시스템은 외부 TCP 메시지를 사용할 수 있도록 메시지 스위치(244)를 설정해 놓아야 한다. 시스템은 전달받은 메시지를 분석하여 요청을 수신한 TCP 포트로 응답을 전송할 수 있다. 이 응답 메시지는 API 인터페이스 노드(220)로 전송되어 API 인터페이스부(223)의 노드 결정부(223-1)가 응답을 전송하면 HTTP 시스템 인터페이스부(222), HTTP 인터페이스부(221)를 통하여 외부의 제1 어플리케이션 서버(210)로 전달되어 다중 노드 구성에서의 Request/Response가 완성될 수 있다. Event 통로는 제1 어플리케이션 서버(210)에서 API 인터페이스 노드(220)로 연결을 요청하고, 정상 연결되면 웹소켓 연결(connection) 1개로 API 인터페이스 노드(220)로 연결되며, API 인터페이스부(223)에 포함된 이벤트 수집부(223-2)가 모든 이벤트 메시지를 모아서 제1 어플리케이션 서버(210)로 전달할 수 있다.
상기와 같은 구성으로 인해서, 제1 어플리케이션 서버(210)는 단일 노드 구성 또는 다중 노드 구성 여부와 관계없이 동일한 동작을 수행할 수 있다. 즉, 제1 어플리케이션 서버(210)는 단일 노드 구성 또는 다중 노드 구성 여부에 관계없이 동일한 연결을 사용하여 시스템 서비스를 제공할 수 있음으로 확장성을 가진 유연할 시스템 구조를 포함할 수 있다.
상기 방법은 특정 실시예들을 통하여 설명되었지만, 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 개시가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 개시의 기술적 사상이 설명되었지만, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 개시의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.
10: 어플리케이션 서버 20,30,40,50: 노드
100,200: API 서비스 시스템 110: 어플리케이션 서버
120,221: HTTP 인터페이스부 130,222: HTTP 시스템 인터페이스부
140: 시스템 어플리케이션 150: 메시지 스위치
160: 노드 210: 제1 어플리케이션 서버
220: API 인터페이스 노드 230: 제2 어플리케이션 서버
240: 제1 노드 250: 제2 노드
260: 제3 노드 223: API 인터페이스부
223-1: 노드 결정부 223-2: 이벤트 수집부

Claims (8)

  1. 전화 교환 시스템의 메시지 전달 장치로서,
    HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지의 인터페이스(Interface) 기능을 수행하는 HTTP 인터페이스부;
    상기 HTTP 인터페이스부와 연결되어 상기 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행하는 HTTP 시스템 인터페이스부; 및
    상기 HTTP 시스템 인터페이스부와 연결되어 상기 노드 내부 메시지를 송신할 노드를 결정하고, 상기 노드로부터 수신된 응답 메시지를 상기 HTTP 시스템 인터페이스부로 송신할지 여부를 결정하는 API 인터페이스부를 포함하는,
    전화 교환 시스템의 메시지 전달 장치.
  2. 제1항에 있어서,
    상기 HTTP 인터페이스부는, 어플리케이션 서버(Application Server)와 연결되고,
    상기 API 인터페이스부는, 적어도 하나의 노드와 연결되는,
    전화 교환 시스템의 메시지 전달 장치.
  3. 제1항에 있어서,
    상기 API 인터페이스부는,
    적어도 하나의 노드의 정상 동작 여부 및 상기 적어도 하나의 노드의 클러스터 구성에 대한 정보를 저장하는 노드 결정부; 및
    상기 적어도 하나의 노드로부터 수신된 이벤트를 저장하고, 수신된 이벤트를 어플리케이션 서버로 전송하는 이벤트 수집부를 포함하는,
    전화 교환 시스템의 메시지 전달 장치.
  4. 제1항에 있어서,
    상기 HTTP 시스템 인터페이스부는,
    HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는,
    전화 교환 시스템의 메시지 전달 장치.
  5. 전화 교환 시스템의 메시지 전달 방법으로서,
    HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지를 수신하는 단계;
    수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계;
    상기 노드 내부 메시지를 송신할 노드를 결정하는 단계;
    결정된 노드로 상기 노드 내부 메시지를 송신하는 단계;
    상기 결정된 노드로부터 응답 메시지를 수신하는 단계; 및
    상기 응답 메시지의 송신 여부를 결정하는 단계를 포함하는,
    전화 교환 시스템의 메시지 전달 방법,
  6. 제5항에 있어서,
    상기 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계는,
    HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는 단계를 포함하는,
    전화 교환 시스템의 메시지 전달 방법.
  7. 제5항에 있어서,
    상기 노드 내부 메시지를 송신할 노드를 결정하는 단계는,
    적어도 하나의 노드의 정상 동작 여부를 고려하여 송신 대상 노드가 비정상 동작 상태일 경우 동일한 클러스터에 포함된 다른 노드를 상기 노드 내부 메시지를 송신할 노드로 결정하는 단계를 포함하는,
    전화 교환 시스템의 메시지 전달 방법.
  8. 제5항에 있어서,
    상기 응답 메시지를 HTTP 또는 웹소켓 메시지로 변환하는 단계; 및
    변환된 HTTP 또는 웹소켓 메시지를 어플리케이션 서버(Application Server)로 전송하는 단계를 더 포함하는,
    전화 교환 시스템의 메시지 전달 방법.
KR1020190169861A 2019-12-18 2019-12-18 전화 교환 시스템의 메시지 전달 장치 및 방법 Active KR102611301B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190169861A KR102611301B1 (ko) 2019-12-18 2019-12-18 전화 교환 시스템의 메시지 전달 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190169861A KR102611301B1 (ko) 2019-12-18 2019-12-18 전화 교환 시스템의 메시지 전달 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210078115A true KR20210078115A (ko) 2021-06-28
KR102611301B1 KR102611301B1 (ko) 2023-12-08

Family

ID=76607815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190169861A Active KR102611301B1 (ko) 2019-12-18 2019-12-18 전화 교환 시스템의 메시지 전달 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102611301B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938475A (zh) * 2021-12-16 2022-01-14 深圳市大头兄弟科技有限公司 一种数据传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097746A (ja) * 2011-11-05 2013-05-20 Kyocera Document Solutions Inc クライアントサイドWebサービスインターフェイス及びこれを備えたソフトウェア開発キット並びにこの開発キットを用いたソフトウェア開発方法
KR20130061725A (ko) * 2010-08-10 2013-06-11 구글 인코포레이티드 웹 어플리케이션에 리소스 성능들의 노출
KR20170003578A (ko) * 2014-05-16 2017-01-09 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 언어-독립형 디스패치를 위한 코드 서비스 기법
KR20170087941A (ko) * 2014-11-26 2017-07-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 클라이언트 애플리케이션을 통한 pbx 전화 호의 제어

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130061725A (ko) * 2010-08-10 2013-06-11 구글 인코포레이티드 웹 어플리케이션에 리소스 성능들의 노출
JP2013097746A (ja) * 2011-11-05 2013-05-20 Kyocera Document Solutions Inc クライアントサイドWebサービスインターフェイス及びこれを備えたソフトウェア開発キット並びにこの開発キットを用いたソフトウェア開発方法
KR20170003578A (ko) * 2014-05-16 2017-01-09 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 언어-독립형 디스패치를 위한 코드 서비스 기법
KR20170087941A (ko) * 2014-11-26 2017-07-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 클라이언트 애플리케이션을 통한 pbx 전화 호의 제어

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938475A (zh) * 2021-12-16 2022-01-14 深圳市大头兄弟科技有限公司 一种数据传输方法
CN113938475B (zh) * 2021-12-16 2022-03-29 深圳市大头兄弟科技有限公司 一种数据传输方法

Also Published As

Publication number Publication date
KR102611301B1 (ko) 2023-12-08

Similar Documents

Publication Publication Date Title
US11689606B2 (en) Communication method, system and apparatus
US8639848B2 (en) Data communication efficiency
CN100446495C (zh) 一种动态共享连接的方法和系统
EP1987657B1 (en) Scalable wireless messaging system
US20060179150A1 (en) Client server model
US6389550B1 (en) High availability protocol computing and method
US20070192495A1 (en) Gateway for wireless mobile clients
US10530669B2 (en) Network service aware routers, and applications thereof
CN111327668B (zh) 网络管理方法、装置、设备和存储介质
US9560135B2 (en) Technique for communication between networks for distributing digital contents
CN112671554A (zh) 一种节点故障处理方法及相关装置
JP2006285377A (ja) 故障監視プログラム及び負荷分散装置
KR20210078115A (ko) 전화 교환 시스템의 메시지 전달 장치 및 방법
US8964596B1 (en) Network service aware routers, and applications thereof
MXPA02006896A (es) Metodo y aparato para proporcionar comunicaciones confiables en una red inteligente.
JP6117345B2 (ja) 処理性能低下を回避するメッセージシステム
WO2007100413A2 (en) Carrier interoperability for critical services
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
JP5017391B2 (ja) 加入者収容変更方法、移行先セッション制御サーバ装置および管理サーバ
KR100450605B1 (ko) 웹-어플리케이션 서버 및 그의 동적 컨텐츠 제공 방법
EP4531372A1 (en) Methods for optimizing routing of a message and devices thereof
CN115102854B (zh) 微服务的远程过程调用路由管理控制方法、系统及设备
CN118055393A (zh) 一种业务处理方法及装置
JP2002165239A (ja) マルチプロセッサ型呼処理方式
KR19980071085A (ko) 분산 스위칭 소프트웨어를 포함하는 근거리 통신망

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20191218

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

Patent event code: PA02012R01D

Patent event date: 20220901

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20191218

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20230821

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20231129

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20231204

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20231205

End annual number: 3

Start annual number: 1

PG1601 Publication of registration