KR20210078115A - Apparatus and method for forwarding message of private branch exchange system - Google Patents
Apparatus and method for forwarding message of private branch exchange system Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
본 개시는 전화 교환 시스템에 관한 것으로, 특히 API(Application Programming Interface) 인터페이스 노드를 이용하여 단일 노드 구성에서 사용하던 어플리케이션 장비를 다중 노드 구성에서 변경없이 사용 가능하도록 한 메시지 전달 장치 및 방법에 관한 것이다.The present disclosure relates to a telephone switching system, and more particularly, to a message delivery apparatus and method using an API (Application Programming Interface) interface node to enable application equipment used in a single node configuration to be used without change in a multi-node configuration.
기존 PBX(Private Branch eXchange) 시스템은 경우에 따라서 단일 노드(Node) 또는 다중 노드로 구성되어 어플리케이션 서버(Application Server)와 노드 사이에 HTTP(Hyper Text Transfer Protocol) 및 웹소켓(Websocket)으로 통신을 수행한다.Existing PBX (Private Branch eXchange) system is composed of a single node or multiple nodes in some cases to communicate between the application server and the node using HTTP (Hyper Text Transfer Protocol) and Websocket. do.
일반적인 경우에는 작은 단일 노드 구성으로 사용하다가, 자원이 많아지면 다중 노드 환경으로 확장하는 경우가 많은데, 이때 어플리케이션 장비는 기존 구조로는 그대로 사용하지 못하고 다중 노드 구성에 맞도록 수정해야 하는 비용이 발생하거나 동일한 어플리케이션 장비로 서비스를 사용하지 못하는 문제점이 발생할 수 있다.In general, it is used in a small single-node configuration, and when there are many resources, it is often expanded to a multi-node environment. There may be a problem that the service cannot be used with the same application equipment.
본 개시는 전화 교환 시스템의 API(Application Programming Interface) 인터페이스 노드를 이용하여 단일 노드 구성에서 사용하던 어플리케이션 장비를 다중 노드 구성에서 변경없이 사용 가능하도록 한 메시지 전달 장치 및 방법을 제공한다.The present disclosure provides a message delivery apparatus and method that enable application equipment used in a single node configuration to be used without change in a multi-node configuration by using an API (Application Programming Interface) interface node of a telephone switching system.
본 개시의 실시예에 따른 전화 교환 시스템의 메시지 전달 장치는, HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지의 인터페이스(interface) 기능을 수행하는 HTTP 인터페이스부; 상기 HTTP 인터페이스부와 연결되어 상기 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행하는 HTTP 시스템 인터페이스부; 및 상기 HTTP 시스템 인터페이스부와 연결되어 상기 노드 내부 메시지를 송신할 노드를 결정하고, 상기 노드로부터 수신된 응답 메시지를 상기 HTTP 시스템 인터페이스부로 송신할지 여부를 결정하는 API 인터페이스부를 포함할 수 있다.A message transfer apparatus of a telephone switching system according to an embodiment of the present disclosure includes an HTTP interface unit that performs an interface function of a Hyper Text Transfer Protocol (HTTP) or WebSocket message; an HTTP system interface unit connected to the HTTP interface unit to perform conversion between the HTTP or WebSocket message and the node internal message; and an API interface unit connected to the HTTP system interface unit to determine a node to transmit the node internal message and to determine whether to transmit a response message received from the node to the HTTP system interface unit.
일 실시예로서, 상기 HTTP 인터페이스부는, 어플리케이션 서버(Application Server)와 연결되고, 상기 API 인터페이스부는, 적어도 하나의 노드와 연결될 수 있다.As an embodiment, the HTTP interface unit may be connected to an application server, and the API interface unit may be connected to at least one node.
일 실시예로서, 상기 API 인터페이스부는, 적어도 하나의 노드의 정상 동작 여부 및 상기 적어도 하나의 노드의 클러스터 구성에 대한 정보를 저장하는 노드 결정부; 및 상기 적어도 하나의 노드로부터 수신된 이벤트를 저장하고, 수신된 이벤트를 어플리케이션 서버로 전송하는 이벤트 수집부를 포함할 수 있다.In an embodiment, the API interface unit may include: a node determining unit configured to store information on whether at least one node operates normally and a cluster configuration of the at least one node; and an event collection unit for storing the event received from the at least one node and transmitting the received event to the application server.
일 실시예로서, HTTP 시스템 인터페이스부는, HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성할 수 있다.As an embodiment, the HTTP system interface unit may form the node internal message using a lower level TCP (Transmission Control Protocol) than HTTP.
본 개시의 실시예에 따른 전화 교환 시스템의 메시지 전달 방법은, HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지를 수신하는 단계; 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계; 상기 노드 내부 메시지를 송신할 노드를 결정하는 단계; 결정된 노드로 상기 노드 내부 메시지를 송신하는 단계; 상기 결정된 노드로부터 응답 메시지를 수신하는 단계; 및 상기 응답 메시지의 송신 여부를 결정하는 단계를 포함할 수 있다.A message delivery method of a telephone switching system according to an embodiment of the present disclosure includes: receiving a Hyper Text Transfer Protocol (HTTP) or WebSocket (WebSocket) message; converting the received HTTP or WebSocket message into a node internal message; determining a node to which to transmit the intra-node message; transmitting the node internal message to the determined node; receiving a response message from the determined node; and determining whether to transmit the response message.
일 실시예로서, 상기 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계는, HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는 단계를 포함할 수 있다.As an embodiment, converting the received HTTP or WebSocket message into a node internal message may include forming the node internal message using a lower level TCP (Transmission Control Protocol) than HTTP. .
일 실시예로서, 상기 노드 내부 메시지를 송신할 노드를 결정하는 단계는, 적어도 하나의 노드의 정상 동작 여부를 고려하여 송신 대상 노드가 비정상 동작 상태일 경우 동일한 클러스터에 포함된 다른 노드를 상기 노드 내부 메시지를 송신할 노드로 결정하는 단계를 포함할 수 있다.As an embodiment, the determining of the node to which the internal node message is to be transmitted may include, in consideration of whether at least one node is operating normally, another node included in the same cluster when the transmission target node is in an abnormal operating state. determining a node to send the message to.
일 실시예로서, 상기 응답 메시지를 HTTP 또는 웹소켓 메시지로 변환하는 단계; 및 변환된 HTTP 또는 웹소켓 메시지를 어플리케이션 서버(Application Server)로 전송하는 단계를 더 포함할 수 있다.In an embodiment, converting the response message into an HTTP or WebSocket message; and transmitting the converted HTTP or WebSocket message to an application server (Application Server).
본 개시에 의하면, 전화 교환 시스템의 어플리케이션 서버가 단일 노드 구성 또는 다중 노드 구성 여부에 관계없이 동일한 구성을 사용하여 시스템 서비스를 구성할 수 있으므로, 확장성을 가진 유연한 시스템을 형성할 수 있다.According to the present disclosure, since the application server of the telephone switching system can configure system services using the same configuration regardless of whether it is a single node configuration or a multi-node configuration, a flexible system with scalability can be formed.
도 1은 단일 노드로 구성된 PBX 시스템의 구성도이다.
도 2 및 도 3은 단일 노드로 구성된 PBX 시스템의 구성도이다.
도 4는 본 개시의 실시예에 따른 API(Application Programming Interface) 서비스 시스템의 단일 노드 구성을 보이는 예시도이다.
도 5는 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 6은 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.
도 7은 본 개시의 실시예에 따른 API 인터페이스의 구성을 보이는 예시도이다.1 is a block diagram of a PBX system composed of a single node.
2 and 3 are block diagrams of a PBX system composed of a single node.
4 is an exemplary diagram illustrating a single node configuration of an API (Application Programming Interface) service system according to an embodiment of the present disclosure.
5 is an exemplary diagram illustrating a multi-node configuration of an API service system according to an embodiment of the present disclosure.
6 is an exemplary diagram illustrating a multi-node configuration of an API service system according to an embodiment of the present disclosure.
7 is an exemplary diagram showing the configuration of an API interface according to an embodiment of the present disclosure.
본 개시의 실시예들은 본 개시의 기술적 사상을 설명하기 위한 목적으로 예시된 것이다. 본 개시에 따른 권리범위가 이하에 제시되는 실시예들이나 이들 실시예들에 대한 구체적 설명으로 한정되는 것은 아니다. Embodiments of the present disclosure are exemplified for the purpose of explaining the technical spirit of the present disclosure. The scope of the rights according to the present disclosure is not limited to the embodiments presented below or specific descriptions of these embodiments.
본 개시에 사용되는 모든 기술적 용어들 및 과학적 용어들은, 달리 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 갖는다. 본 개시에 사용되는 모든 용어들은 본 개시를 더욱 명확히 설명하기 위한 목적으로 선택된 것이며 본 개시에 따른 권리범위를 제한하기 위해 선택된 것이 아니다.All technical and scientific terms used in this disclosure have the meanings commonly understood by one of ordinary skill in the art to which this disclosure belongs, unless otherwise defined. All terms used in the present disclosure are selected for the purpose of more clearly describing the present disclosure and not to limit the scope of the present disclosure.
본 개시에서 사용되는 "포함하는", "구비하는", "갖는" 등과 같은 표현은, 해당 표현이 포함되는 어구 또는 문장에서 달리 언급되지 않는 한, 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.As used in this disclosure, expressions such as "comprising", "including", "having", etc. are open-ended terms connoting the possibility of including other embodiments, unless otherwise stated in the phrase or sentence in which the expression is included. (open-ended terms).
본 개시에서 기술된 단수형의 표현은 달리 언급하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구범위에 기재된 단수형의 표현에도 마찬가지로 적용된다.Expressions in the singular described in this disclosure may include plural meanings unless otherwise stated, and the same applies to expressions in the singular in the claims.
본 개시에서 사용되는 "제1", "제2" 등의 표현들은 복수의 구성요소들을 상호 구분하기 위해 사용되며, 해당 구성요소들의 순서 또는 중요도를 한정하는 것은 아니다. Expressions such as “first” and “second” used in the present disclosure are used to distinguish a plurality of components from each other, and do not limit the order or importance of the components.
본 개시에서 사용되는 용어 "부"는, 소프트웨어, 또는 FPGA(field-programmable gate array), ASIC(application specific integrated circuit)과 같은 하드웨어 구성요소를 의미한다. 그러나, "부"는 하드웨어 및 소프트웨어에 한정되는 것은 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세서, 함수, 속성, 프로시저, 서브루틴, 프로그램 코드의 세그먼트, 드라이버, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조, 테이블, 어레이 및 변수를 포함한다. 구성요소와 "부" 내에서 제공되는 기능은 더 작은 수의 구성요소 및 "부"로 결합되거나 추가적인 구성요소와 "부"로 더 분리될 수 있다.The term “unit” used in the present disclosure refers to software or hardware components such as field-programmable gate arrays (FPGAs) and application specific integrated circuits (ASICs). However, "units" are not limited to hardware and software. A “unit” may be configured to reside on an addressable storage medium, or it may be configured to refresh one or more processors. Thus, by way of example, “part” includes components such as software components, object-oriented software components, class components, and task components, including processors, functions, attributes, procedures, subroutines, and so forth. It includes segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. Functions provided within components and “parts” may be combined into a smaller number of components and “parts” or further separated into additional components and “parts”.
본 개시에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정, 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되며, 이 표현은 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다. As used in this disclosure, the expression "based on" is used to describe one or more factors affecting the act or action of a decision, judgment, or action described in a phrase or sentence in which the expression is included, the expression being It does not exclude additional factors influencing the actions or actions of decisions, judgments or actions.
본 개시에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결될 수 있거나 접속될 수 있는 것으로, 또는 새로운 다른 구성요소를 매개로 하여 연결될 수 있거나 접속될 수 있는 것으로 이해되어야 한다.In the present disclosure, when a component is referred to as being “connected” or “connected” to another component, the component can be directly connected or connectable to the other component, or a new component It should be understood that other components may be connected or may be connected via other components.
이하, 첨부한 도면들을 참조하여, 본 개시의 실시예들을 설명한다. 첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. In the accompanying drawings, identical or corresponding components are assigned the same reference numerals. In addition, in the description of the embodiments below, overlapping description of the same or corresponding components may be omitted. However, even if description regarding components is omitted, it is not intended that such components are not included in any embodiment.
도 1은 단일 노드로 구성된 PBX 시스템의 구성도이다. 1 is a block diagram of a PBX system composed of a single node.
기존 PBX(Private Branch eXchange) 시스템에서 단일 노드(Node) 구성 시에는 도 1에 도시한 바와 같이 하나의 노드(20)에 어플리케이션(Application) 서버(10)가 연결되어 있고, 어플리케이션 서버(10)와 노드(20)에 연결된 시스템 사이에는 HTTP(Hyper Text Transfer Protocol)와 웹소켓(WebSocket)으로 통신한다. HTTP는 어플리케이션 서버(10)가 노드(20)에 연결된 시스템에게 동작을 요청하거나 정보를 요청할 때 사용되며 각 요청에 대하여 응답이 송신된다. HTTP 요청으로 시스템이 정해진 동작을 하는데, 이 동작 중간에 시스템에서 발생한 이벤트를 어플리케이션으로 알려 줄 수 있는 통로가 웹소켓을 통하여 연결되어 있다.When configuring a single node in the existing Private Branch eXchange (PBX) system, as shown in FIG. 1 , the
도 2는 다중 노드로 구성된 PBX 시스템의 구성도이다. 2 is a block diagram of a PBX system composed of multiple nodes.
도 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)에 한번 서비스를 시작하면 계속해서 연결된 상태로 유지되어야 한다.As shown in FIG. 2 , when the capacity is expanded to a multi-node configuration (2 nodes), the configuration between the
도 3은 다중 노드로 구성된 PBX 시스템의 구성도이다. 3 is a block diagram of a PBX system composed of multiple nodes.
도 2와 같은 PBX 시스템 구성의 문제점을 해결하기 위하여, 도 3에 도시한 바와 같이 오픈 소스(open source)인 HA 프록시(proxy)/역 웹 프록시(Reverse web proxy)(60)를 사용할 수 있다. 이러한 경우, HTTP 연결은 단순하게 구성될 수 있으나, 여전히 어플리케이션 서버(10)에서 원하는 자원이 어느 노드에 존재하는지 알아서 HTTP request에 포함 시켜서 HA proxy안 Reverse web proxy가 routing를 할 수 있도록 정보를 제공해야 하며, 웹소켓 연결은 도 2와 다르지 않게 어플리케이션 서버(10)에서 모든 노드에 연결을 유지하고 있어야 한다.In order to solve the problem of the PBX system configuration as shown in FIG. 2 , as shown in FIG. 3 , an open source HA proxy/
도 4는 본 개시의 실시예에 따른 API(Application Programming Interface) 서비스 시스템의 단일 노드 구성을 보이는 예시도이다.4 is an exemplary diagram illustrating a single node configuration of an API (Application Programming Interface) service system according to an embodiment of the present disclosure.
도 4에 도시한 바와 같이, API 서비스 시스템(100)은, 어플리케이션 서버(110), HTTP(Hyper Text Transfer Protocol) 인터페이스부(120), HTTP 시스템 인터페이스부(130), 시스템 어플리케이션(140) 및 메시지 스위치(150)를 포함할 수 있다. 일 실시 예에 따르면, 노드(160) 내부의 메시지의 외부 통로는 단일 노드 구성에서는 사용되지 않고, 멀티 노드 구성 시에 사용될 수 있다.As shown in FIG. 4 , the
HTTP 인터페이스부(120)는, HTTP 및 웹소켓(WebSocket) 메시지의 인터페이스 기능을 수행할 수 있다. 일 실시 예에 따르면, HTTP 인터페이스부(120)는, 정상적인 HTTP 요청(request)만을 HTTP 시스템 인터페이스부(130)로 전달하고, 비정상적인 HTTP 요청(request)은 HTTP 시스템 인터페이스부(130)로 전달하지 않을 수 있다. The
HTTP 시스템 인터페이스부(130)는, HTTP 인터페이스부(120)와 연결되어 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행할 수 있다. 즉, HTTP 시스템 인터페이스부(130)는, HTTP 요청을 시스템에서 처리가능하도록 시스템(노드, 160) 내부 메시지로 변환하고, 노드(160) 내부 메시지를 HTTP 메시지로 변환할 수 있다. 일 실시 예에 따르면, HTTP 요청을 노드(160) 내부 메시지로 변환할 경우 HTTP를 사용하지 않고, HTTP보다 하위 레벨(low level)의 TCP(Transmission Control Protocol)를 사용하여 노드(160)의 처리 부하(load)를 감소시킬 수 있다.The HTTP
시스템 어플리케이션(140)은, 노드(160)의 내부 메시지들을 처리하여 실제 서비스가 제공되도록 할 수 있다.The
메시지 스위치(150)는, 노드(160)의 내부 메시지들을 노드(160) 내부 또는 외부로 전송하도록 전송 방향을 변환하는 역할을 수행할 수 있다.The
도 4에 도시한 바와 같은, 단일 노드의 구성일 경우 서비스 흐름은 다음과 같다. 외부의 어플리케이션 서버(110)가 노드(160)에 서비스를 요청하기 위해서는 노드(160)에 인증 관련 정보를 미리 설정하고, HTTP를 이용하여 노드(160)에 접속을 시도할 수 있다. 노드(160)는, 접속을 시도하는 어플리케이션 서버(110)의 인증 정보를 확인하여 인증 정보가 확인되면 어플리케이션 서버(110)로 인증 관련 토큰(token)을 전송하고, 인증 정보가 확인되지 않으면 어플리케이션 서버(110)의 접속 시도에 대해서 접속을 허용하지 않을 수 있다. 어플리케이션 서버(110)는, 인증이 정상적으로 완료되면, 인증 완료 후 노드(160)로부터 수신한 토큰 정보를 이용하여 노드(160)에 웹소켓 연결을 시도할 수 있다.As shown in FIG. 4, in the case of a single node configuration, the service flow is as follows. In order for the
상기 인증 과정이 성공하면 어플리케이션 서버(110)는, 실제 기능을 수행할 수 있는 준비가 되어 HTTP API로 전화 걸기 등의 시스템 기능을 사용할 수 있다. 이 서비스 중간에 발생하는 각종 이벤트(Event)는, 웹소켓을 통하여 노드(160)에서 어플리케이션 서버(110)로 전달될 수 있다.If the authentication process is successful, the
도 5는 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.5 is an exemplary diagram illustrating a multi-node configuration of an API service system according to an embodiment of the present disclosure.
도 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)를 포함할 수 있다.As shown in FIG. 5 , the API service system 200 includes a
도 4에서 도시한 단일 노드 구성에 비하여, 모든 외부 HTTP/웹소켓을 연결해주는 API 인터페이스 노드(220)가 추가될 수 있다. API 인터페이스 노드(220)는, 밖으로는 제1 어플리케이션 서버(210)와 연결되고, 내부로는 제1 노드(240), 제2 노드(250), 제3 노드(260)를 포함한 다수의 노드와 연결될 수 있다.Compared to the single node configuration shown in FIG. 4 , an
제1 어플리케이션 서버(210)와 API 인터페이스 노드(220) 간에는, HTTP/웹소켓 프로토콜을 사용하고, API 인터페이스 노드(220)와 제1 노드(240), 제2 노드(250), 제3 노드(260) 간에는 HTTP/웹소켓에 해당하는 기능을 포함하는 TCP를 사용할 수 있다.Between the
일 실시예에 따르면, 제1 노드(240), 제2 노드(250), 제3 노드(260)는, 도 4에 도시한 노드(160)와 동일한 구성을 포함할 수 있다.According to an embodiment, the
API 인터페이스 노드(220)에서 HTTP 인터페이스부(221) 및 HTTP 시스템 인터페이스부(222)는, 도 4에서 도시한 HTTP 인터페이스부(120) 및 HTTP 시스템 인터페이스부(130)와 동일한 기능을 수행할 수 있다.In the
HTTP 시스템 인터페이스부(222)에서 HTTP 메시지가 노드 내부 메시지로 변환되는데, API 인터페이스부(223)는, 내부 HTTP 요청(Request)을 수신하여 노드 내부 메시지를 분석하고, 노드 내부 메시지를 어느 노드로 송신하고 응답을 수신하여 전달할 것인가를 결정할 수 있다. HTTP 시스템 인터페이스부(222)의 내부 구성에 대해서는 후술하도록 한다.The HTTP
도 6은 본 개시의 실시예에 따른 API 서비스 시스템의 다중 노드 구성을 보이는 예시도이다.6 is an exemplary diagram illustrating a multi-node configuration of an API service system according to an embodiment of the present disclosure.
도 6에 도시한 바와 같이, 고 가용성 서비스 제공을 위하여 소정 개수(예를 들어, 2개)의 노드를 묶어서 클러스터(cluster)로 구성해 놓고, 클러스터에 속한 노드(240, 250)들은 해당 노드가 서비스를 수행하지 않더라도 다른 노드의 정보를 동일하게 저장하도록 할 수 있다. 예를 들어, 제1 노드(240)와 제2 노드(250)는 동일한 정보를 저장하고, 각각의 서비스를 수행하도록 구성할 수 있다. 만약 제1 노드(240)가 서비스 수행 중 정상 처리가 불가능한 상태가 발생할 경우 제1 노드(240)에서 수행하던 서비스를 제2 노드(250)가 수행하도록 처리하도록 구성할 수 있다.6, in order to provide a high availability service, a predetermined number (eg, two) of nodes is bundled to form a cluster, and the
도 7은 본 개시의 실시예에 따른 API 인터페이스부의 구성을 보이는 예시도이다.7 is an exemplary diagram illustrating the configuration of an API interface unit according to an embodiment of the present disclosure.
도 7에 도시한 바와 같이, API 인터페이스부(223)는, 노드 결정부(223-1) 및 이벤트 수집부(223-2)를 포함할 수 있다.As shown in FIG. 7 , the
API 인터페이스 노드(220)는, 지속적으로 노드들의 정상 동작 여부를 관찰하고 기록하는데, 노드 결정부(223-1)에서 서비스 노드를 결정할 때 노드들의 정상 동작 여부가 기록된 테이블에서 HTTP 요청이 전달되어야 하는 노드가 비정상 동작 상태이면 동일한 클러스터에 있는 다른 노드에게 메시지를 전달하도록 결정할 수 있다. 즉, API 인터페이스부(223)는, 서비스 노드를 결정할 때 제1 노드(240)가 비정상 동작 상태로 판단된 경우, 동일한 클러스터에 존재하는 제2 노드(250)로 HTTP 요청(메시지)을 전달할 수 있다. 또한, 이 메시지를 전달할 때, 인증정보를 확인하여 인증된 메시지만 제2 노드(250)에 전달되어 처리할 수 있도록 하며, 제2 노드(250)에서는 추가 인증이 필요 없도록 구성할 수 있다.The
이벤트 수집부(223-2)는, 모든 노드에서 수신되는 이벤트를 저장하고, 제1 어플리케이션 서버(210)로 수신된 이벤트를 전달해주는 기능을 수행할 수 있다. 이벤트는, 노드(240, 250)에서 제1 어플리케이션 서버(210)로 전송되는 메시지이고, 이벤트 수집부(223-2)가 없을 경우 제1 어플리케이션 서버(210)는 모든 노드에 웹소켓 연결을 유지해야 한다.The event collection unit 223 - 2 may store events received from all nodes and deliver the received events to the
다중 노드 구성에서 각 노드의 동작은 기능적으로는 단일 노드 구성일 때와 동일하다. 다만, 메시지 스위치가 추가 설치될 수 있다. 메시지 스위치를 노드와 연결된 어플리케이션 서버로 연결할 경우, 해당 노드는 API 인터페이스 노드와의 연결은 관계없어지고, 단일 노드 구성으로 동작할 수 있다. 한편, 메시지 스위치를 API 인터페이스 노드로 연결할 경우, 모든 요청 및 이벤트는 API 인터페이스 노드에서 송수신할 수 있다. 일 실시예에 따르면, 모든 요청 및 이벤트 송수신에 사용되는 메시지는 TCP 메시지를 포함할 수 있지만, 이에 한정되지 않는다.In a multi-node configuration, the operation of each node is functionally the same as in a single-node configuration. However, a message switch may be additionally installed. When a message switch is connected to an application server connected to a node, the node is independent of the connection to the API interface node and can operate in a single node configuration. On the other hand, when the message switch is connected to the API interface node, all requests and events can be transmitted/received from the API interface node. According to an embodiment, a message used for all request and event transmission/reception may include, but is not limited to, a TCP message.
다중 노드 구성에서 본 개시를 통하여 달성하고자 하는 메시지 플로우는 다음과 같다. 다중 노드 구성 후, 제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)로 전달할 수 있다.A message flow to be achieved through the present disclosure in a multi-node configuration is as follows. After the multi-node configuration, when the
상기와 같은 구성으로 인해서, 제1 어플리케이션 서버(210)는 단일 노드 구성 또는 다중 노드 구성 여부와 관계없이 동일한 동작을 수행할 수 있다. 즉, 제1 어플리케이션 서버(210)는 단일 노드 구성 또는 다중 노드 구성 여부에 관계없이 동일한 연결을 사용하여 시스템 서비스를 제공할 수 있음으로 확장성을 가진 유연할 시스템 구조를 포함할 수 있다.Due to the above configuration, the
상기 방법은 특정 실시예들을 통하여 설명되었지만, 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 개시가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Although the method has been described through specific embodiments, the method can also be implemented as computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. In addition, the computer-readable recording medium is distributed in a computer system connected through a network, so that the computer-readable code can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the above embodiments can be easily inferred by programmers in the art to which the present disclosure pertains.
이상 일부 실시예들과 첨부된 도면에 도시된 예에 의해 본 개시의 기술적 사상이 설명되었지만, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있는 본 개시의 기술적 사상 및 범위를 벗어나지 않는 범위에서 다양한 치환, 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 속하는 것으로 생각되어야 한다.Although the technical spirit of the present disclosure has been described by the examples shown in some embodiments and the accompanying drawings, it does not depart from the technical spirit and scope of the present disclosure that can be understood by those of ordinary skill in the art to which the present disclosure belongs. It should be understood that various substitutions, modifications, and alterations within the scope may be made. Further, such substitutions, modifications and variations are intended to fall within the scope of the appended claims.
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: 이벤트 수집부10:
100,200: API service system 110: application server
120,221: HTTP interface unit 130,222: HTTP system interface unit
140: system application 150: message switch
160: node 210: first application server
220: API interface node 230: second application server
240: first node 250: second node
260: third node 223: API interface unit
223-1: node determination unit 223-2: event collection unit
Claims (8)
HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지의 인터페이스(Interface) 기능을 수행하는 HTTP 인터페이스부;
상기 HTTP 인터페이스부와 연결되어 상기 HTTP 또는 웹소켓 메시지와 노드 내부 메시지 간의 변환을 수행하는 HTTP 시스템 인터페이스부; 및
상기 HTTP 시스템 인터페이스부와 연결되어 상기 노드 내부 메시지를 송신할 노드를 결정하고, 상기 노드로부터 수신된 응답 메시지를 상기 HTTP 시스템 인터페이스부로 송신할지 여부를 결정하는 API 인터페이스부를 포함하는,
전화 교환 시스템의 메시지 전달 장치.A message passing device in a telephone switching system, comprising:
HTTP interface unit performing an interface function of HTTP (Hyper Text Transfer Protocol) or WebSocket (WebSocket) message;
an HTTP system interface unit connected to the HTTP interface unit to perform conversion between the HTTP or WebSocket message and the node internal message; and
An API interface unit connected to the HTTP system interface unit to determine whether a node to transmit the node internal message is transmitted, and whether to transmit a response message received from the node to the HTTP system interface unit,
A message passing device in a telephone switching system.
상기 HTTP 인터페이스부는, 어플리케이션 서버(Application Server)와 연결되고,
상기 API 인터페이스부는, 적어도 하나의 노드와 연결되는,
전화 교환 시스템의 메시지 전달 장치.According to claim 1,
The HTTP interface unit is connected to an application server (Application Server),
The API interface unit is connected to at least one node,
A message passing device in a telephone switching system.
상기 API 인터페이스부는,
적어도 하나의 노드의 정상 동작 여부 및 상기 적어도 하나의 노드의 클러스터 구성에 대한 정보를 저장하는 노드 결정부; 및
상기 적어도 하나의 노드로부터 수신된 이벤트를 저장하고, 수신된 이벤트를 어플리케이션 서버로 전송하는 이벤트 수집부를 포함하는,
전화 교환 시스템의 메시지 전달 장치.According to claim 1,
The API interface unit,
a node determining unit configured to store information on whether at least one node is operating normally and a cluster configuration of the at least one node; and
Storing the event received from the at least one node, and comprising an event collection unit for transmitting the received event to the application server,
A message passing device in a telephone switching system.
상기 HTTP 시스템 인터페이스부는,
HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는,
전화 교환 시스템의 메시지 전달 장치.According to claim 1,
The HTTP system interface unit,
Forming the message inside the node using a lower level TCP (Transmission Control Protocol) than HTTP,
A message passing device in a telephone switching system.
HTTP(Hyper Text Transfer Protocol) 또는 웹소켓(WebSocket) 메시지를 수신하는 단계;
수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계;
상기 노드 내부 메시지를 송신할 노드를 결정하는 단계;
결정된 노드로 상기 노드 내부 메시지를 송신하는 단계;
상기 결정된 노드로부터 응답 메시지를 수신하는 단계; 및
상기 응답 메시지의 송신 여부를 결정하는 단계를 포함하는,
전화 교환 시스템의 메시지 전달 방법,A method for delivering a message in a telephone switching system, comprising:
Receiving a Hyper Text Transfer Protocol (HTTP) or WebSocket (WebSocket) message;
converting the received HTTP or WebSocket message into a node internal message;
determining a node to which to transmit the intra-node message;
transmitting the node internal message to the determined node;
receiving a response message from the determined node; and
Comprising the step of determining whether to transmit the response message,
a method of passing messages in a telephone exchange system;
상기 수신된 HTTP 또는 웹소켓 메시지를 노드 내부 메시지로 변환하는 단계는,
HTTP보다 하위 레벨의 TCP(Transmission Control Protocol)를 이용하여 상기 노드 내부 메시지를 형성하는 단계를 포함하는,
전화 교환 시스템의 메시지 전달 방법.6. The method of claim 5,
The step of converting the received HTTP or WebSocket message into a node internal message comprises:
Using a lower level TCP (Transmission Control Protocol) than HTTP, comprising the step of forming the message inside the node,
A method of message delivery in a telephone exchange system.
상기 노드 내부 메시지를 송신할 노드를 결정하는 단계는,
적어도 하나의 노드의 정상 동작 여부를 고려하여 송신 대상 노드가 비정상 동작 상태일 경우 동일한 클러스터에 포함된 다른 노드를 상기 노드 내부 메시지를 송신할 노드로 결정하는 단계를 포함하는,
전화 교환 시스템의 메시지 전달 방법.6. The method of claim 5,
The step of determining the node to which the node internal message is to be transmitted comprises:
In consideration of whether at least one node operates normally, determining another node included in the same cluster as a node to transmit the internal message to when the transmission target node is in an abnormal operating state,
A method of message delivery in a telephone exchange system.
상기 응답 메시지를 HTTP 또는 웹소켓 메시지로 변환하는 단계; 및
변환된 HTTP 또는 웹소켓 메시지를 어플리케이션 서버(Application Server)로 전송하는 단계를 더 포함하는,
전화 교환 시스템의 메시지 전달 방법.6. The method of claim 5,
converting the response message into an HTTP or WebSocket message; and
Further comprising the step of transmitting the converted HTTP or WebSocket message to an application server (Application Server),
A method of message delivery in a telephone exchange system.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190169861A KR102611301B1 (en) | 2019-12-18 | 2019-12-18 | Apparatus and method for forwarding message of private branch exchange system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020190169861A KR102611301B1 (en) | 2019-12-18 | 2019-12-18 | Apparatus and method for forwarding message of private branch exchange system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20210078115A true KR20210078115A (en) | 2021-06-28 |
| KR102611301B1 KR102611301B1 (en) | 2023-12-08 |
Family
ID=76607815
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020190169861A Active KR102611301B1 (en) | 2019-12-18 | 2019-12-18 | Apparatus and method for forwarding message of private branch exchange system |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102611301B1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113938475A (en) * | 2021-12-16 | 2022-01-14 | 深圳市大头兄弟科技有限公司 | Data transmission method |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013097746A (en) * | 2011-11-05 | 2013-05-20 | Kyocera Document Solutions Inc | Client-side web service interface, software developing kit including the same, and software developing method using developing kit |
| KR20130061725A (en) * | 2010-08-10 | 2013-06-11 | 구글 인코포레이티드 | Exposing resource capabilities to web applications |
| KR20170003578A (en) * | 2014-05-16 | 2017-01-09 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Code service for language-independent dispatch |
| KR20170087941A (en) * | 2014-11-26 | 2017-07-31 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Controlling a pbx phone call via a client application |
-
2019
- 2019-12-18 KR KR1020190169861A patent/KR102611301B1/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20130061725A (en) * | 2010-08-10 | 2013-06-11 | 구글 인코포레이티드 | Exposing resource capabilities to web applications |
| JP2013097746A (en) * | 2011-11-05 | 2013-05-20 | Kyocera Document Solutions Inc | Client-side web service interface, software developing kit including the same, and software developing method using developing kit |
| KR20170003578A (en) * | 2014-05-16 | 2017-01-09 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Code service for language-independent dispatch |
| KR20170087941A (en) * | 2014-11-26 | 2017-07-31 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Controlling a pbx phone call via a client application |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113938475A (en) * | 2021-12-16 | 2022-01-14 | 深圳市大头兄弟科技有限公司 | Data transmission method |
| CN113938475B (en) * | 2021-12-16 | 2022-03-29 | 深圳市大头兄弟科技有限公司 | Data transmission method |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102611301B1 (en) | 2023-12-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11689606B2 (en) | Communication method, system and apparatus | |
| US8639848B2 (en) | Data communication efficiency | |
| US6389550B1 (en) | High availability protocol computing and method | |
| US20060179150A1 (en) | Client server model | |
| JP5458688B2 (en) | Uniqueness guarantee support program, service providing system, and uniqueness guarantee realization method | |
| US7739391B2 (en) | Gateway for wireless mobile clients | |
| US10530669B2 (en) | Network service aware routers, and applications thereof | |
| EP1987657A1 (en) | Scalable wireless messaging system | |
| US9560135B2 (en) | Technique for communication between networks for distributing digital contents | |
| US20060031395A1 (en) | Method and system for managing programs for web service system | |
| CN106970843B (en) | Remote calling method and device | |
| JP2006285377A (en) | Fault monitoring program and load balancer | |
| KR20210078115A (en) | Apparatus and method for forwarding message of private branch exchange system | |
| MXPA02006896A (en) | Method and apparatus for providing reliable communications in an intelligent network. | |
| JP6117345B2 (en) | Message system that avoids degradation of processing performance | |
| CN115102854B (en) | Remote procedure call route management control method, system and equipment for micro-service | |
| JP5017391B2 (en) | Subscriber accommodation changing method, migration destination session control server device and management server | |
| US7870263B2 (en) | Carrier interoperability for critical services | |
| KR20220053383A (en) | Interworking support device and interworking support method for nf service | |
| KR100450605B1 (en) | A web application sever and method for providing dynamic contents thereof | |
| US20250112857A1 (en) | Methods for optimizing routing of a message and devices thereof | |
| KR20140040948A (en) | System and method for dynamic message routing | |
| CN118055393A (en) | Service processing method and device | |
| KR19980071085A (en) | LAN including distributed switching software | |
| JPH1131135A (en) | Client server network system |
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 |