KR101219637B1 - Message oriented middleware device for message communication processing using numeralized topic - Google Patents
Message oriented middleware device for message communication processing using numeralized topic Download PDFInfo
- Publication number
- KR101219637B1 KR101219637B1 KR1020120012865A KR20120012865A KR101219637B1 KR 101219637 B1 KR101219637 B1 KR 101219637B1 KR 1020120012865 A KR1020120012865 A KR 1020120012865A KR 20120012865 A KR20120012865 A KR 20120012865A KR 101219637 B1 KR101219637 B1 KR 101219637B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- terminal
- communication
- topic
- name
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
본 발명은 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치에 관한 것이다.
The present invention relates to a message based middleware device for performing message communication using digitized topics.
여러 프로세서간에 데이터를 주고 받는 방식에는 Unix의 IPC 혹은 소켓(socket)방식을 이용하게 된다. 그러나, 운영체계(OS)에서 제공하는 방법은 경우에 따라 요구 조건에 부합하지 않는 경우가 있을 수 있으며, 대부분의 경우에는 상황에 맞는 여러 가지 방법을 조합하여 사용하게 된다.Data is sent and received between different processors using Unix's IPC or socket. However, the method provided by the operating system (OS) may not meet the requirements in some cases, and in most cases, a combination of methods appropriate to the situation is used.
이와 같이 여러 가지 방법을 조합하여 만들어진 프로그램은 요건이 변경되거나 통신의 주체들이 추가되는 경우에 프로그램을 수정하거나 인터페이스 방식을 변경해야 하는 경우도 발생할 수 있다.A program created by combining these methods may require modification of the program or change of interface in case of changing requirements or adding communication subjects.
일반적으로, 메시지 기반 미들웨어(Message Oriented Middleware, 이하, MOM이라 한다)는 다양한 요건 및 통신 주체의 변경과 인터페이스의 방식을 분리하여 유지보수의 편리성, 통신 프로그램의 일관성을 제공한다. 이러한 기능을 구현하기 위하여, MOM은 발행/인용(publish/subscribe) 이라는 방식을 사용하는데, 이는 발사후 망각(fire and forgot) 방식으로 동작하는 비동기 통신을 의미한다. 그러나, 이러한 방식은 일반적으로 데이터 전달을 보장하지는 않는다. In general, message-based middleware (hereinafter referred to as MOM) separates various requirements and changes of communication subjects and methods of interface to provide convenience of maintenance and consistency of communication programs. To implement this functionality, MOM uses a method called publish / subscribe, which means asynchronous communication that operates in a fire and forgot manner. However, this approach generally does not guarantee data delivery.
이러한 일반적인 MOM은 하나의 프로그램에 해당되는 것이므로, 시스템 사용율 100%, 네트워크의 리소스(resource) 부족 등과 같은 상황은 극복할 수 없다는 문제점이 있다. 따라서, 이러한 상황에서의 데이터 유실을 회피하기 위해 파일/메모리(file/memory)를 이용한 메시지 큐잉(message queuing), 보장된 메시지 전달 (Guaranteed message delivery), 라운드-로빈(Round-Robin) 및 서버간 시스템 대체 작동(fail-over) 등의 기능을 제공할 필요가 있다.
Since such a general MOM corresponds to one program, there is a problem in that a situation such as 100% system utilization and a lack of resources of a network cannot be overcome. Thus, message queuing using file / memory, guaranteed message delivery, round-robin, and server-to-server to avoid data loss in these situations. It is necessary to provide functions such as fail-over.
본 발명의 일 실시예는 클라이언트 단말기간, 상기 클라이언트 단말기에서 실행되는 프로세서간의 메시지 통신을 수행하는 메시지 교환 프로그램을 이용하여 통신 속도를 향상시킬 수 있는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 제공한다.
An embodiment of the present invention provides a message for performing message communication using a digitized topic that can improve communication speed by using a message exchange program that performs message communication between client terminals and processors executed in the client terminal. It provides a base middleware device.
본 발명의 일 실시예에 의한 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는 적어도 하나 이상의 클라이언트 단말기에 의하여 전송 요청된 제1 이름에 대응하는 새로운 제2 이름을 생성하는 메시지 교환 큐 프로그램(mxque)을 실행하는 수단, 각각 체인구조로 연결되는 적어도 두 개 이상의 서버 단말기를 포함하며, 상기 클라이언트 단말기들간의, 그리고 상기 클라이언트 단말기에서 실행되는 적어도 하나 이상의 프로세서들간의 메시지 통신을 수행하고, 상기 적어도 두 개 이상의 서버 단말기는 상기 메시지 교환 큐 프로그램을 실행시키는 어느 하나의 서버 단말기를 설정하고, 상기 설정된 서버 단말기의 동작을 모니터링하는 mx모니터링 단말기, 상기 클라이언트 단말기들간의, 그리고 상기 프로세서들간의 연결모듈로서, 상기 메시지 교환 큐 프로그램을 실행하여 메시지 전송 요청 서비스를 실행하되, 상기 제1 이름을 숫자화하여 상기 제2 이름을 생성 및 전송하는 mx서버 단말기를 포함하는 것을 특징으로 한다.A message-based middleware device that performs message communication using a digitized topic according to an embodiment of the present invention may generate a new second name corresponding to a first name requested by at least one client terminal. Means for executing a queue program (mxque), each comprising at least two server terminals connected in a chain structure, and performing message communication between the client terminals and at least one or more processors running on the client terminal; And at least two server terminals set any one server terminal for executing the message exchange queue program, and an mx monitoring terminal for monitoring the operation of the set server terminal, between the client terminals, and between the processors. Connection module On, but by performing the message exchange program execution queue the message transmission service request, it characterized in that it comprises a mx server device for generating and transmitting the second name numbered the first name.
상기 mx모니터링 단말기는 상기 메시지 교환 큐 프로그램을 실행하는 상기 mx서버 단말기의 동작이 비정상 종료되는 경우, 해당 mx서버 단말기를 모니터링하는 다른 서버 단말기가 상기 메시지 교환 큐 프로그램을 재실행시키도록 설정하는 것을 특징으로 한다.The mx monitoring terminal, when the operation of the mx server terminal for executing the message exchange queue program is abnormally terminated, another server terminal for monitoring the mx server terminal is configured to re-run the message exchange queue program do.
상기 제2 이름은 N:M(이때, N, M은 정수임)의 다중 통신 방식 또는 1:1 통신 방식을 정의하는 함수를 포함할 수 있는 것을 특징으로 한다.The second name may include a function defining a multiple communication method or a 1: 1 communication method of N: M (where N and M are integers).
상기 mx서버 단말기는 상기 제2 이름이 정의하는 함수에 따라 N:M 다중 통신 또는 1:1 통신을 수행할 수 있는 것을 특징으로 한다.
상기 mx서버 단말기는, 상기 클라이언트 단말기에 통신하고자 하는 프로세서가 존재하는 경우, 상기 프로세서들 간은 1: 1 방식의 통신을 수행하도록 할 수 있고, 상기 클라이언트 단말기들 간은 N:M 다중 통신을 수행하도록 할 수 있는 것을 특징으로 한다.
상기 메시지 교환 큐 프로그램은 상기 제1 이름에 대응하는 데이터를 숫자로 구성한 제2 이름을 구비하는 오브젝트 라이브러리를 포함하며, 상기 클라이언트 단말기에 의하여 전송 요청된 이름에 대응하는 이름이 상기 오브젝트 라이브러리에서 자동호출되는 것을 특징으로 한다.
The mx server terminal is capable of performing N: M multiple communication or 1: 1 communication according to the function defined by the second name.
When there is a processor to communicate with the client terminal, the mx server terminal may perform 1: 1 communication between the processors, and perform N: M multiple communication between the client terminals. It can be characterized by.
The message exchange queue program includes an object library having a second name in which data corresponding to the first name is composed of numbers, and a name corresponding to a name requested to be transmitted by the client terminal is automatically called from the object library. It is characterized by.
삭제delete
삭제delete
본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는 동일한 메시지 교환 프로그램을 이용하여 클라이언트 단말기간, 상기 클라이언트 단말기에서 실행되는 프로세서간의 메시지 통신을 수행하도록 함으로써, 통신 속도를 향상시킬 수 있다.
The message-based middleware device that performs message communication using a digitized topic according to an embodiment of the present invention performs message communication between client terminals and processors executed in the client terminal by using the same message exchange program. Can improve the communication speed.
도 1은 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 간략하게 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치의 서버 단말기의 구조 및 동작을 간략하게 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 통하여 클라이언트 단말기간, 서버 단말기와 클라이언트 단말기와의 연결구성의 가능한 예를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치의 이벤트 함수 콜과 클라이언트 단말기와의 관계의 일 예를 나타내는 도면이다.1 is a block diagram schematically illustrating a message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention.
2 is a block diagram schematically illustrating a structure and an operation of a server terminal of a message-based middleware device that performs message communication using a digitized topic according to an embodiment of the present invention.
3 is a diagram illustrating a possible example of a connection configuration between a client terminal, a server terminal, and a client terminal through a message-based middleware device performing message communication using a digitized topic according to an embodiment of the present invention.
4 is a diagram illustrating an example of a relationship between an event function call and a client terminal of a message-based middleware device that performs message communication using a digitized topic according to an embodiment of the present invention.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 본 발명의 바람직한 일 실시예를 첨부된 도면을 참조하여 상세하게 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.
도 1은 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 간략하게 나타내는 블록도이고, 도 2는 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치의 서버 단말기의 구조 및 동작을 간략하게 나타내는 블록도이며, 도 3은 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 통하여 클라이언트 단말기간, 서버 단말기와 클라이언트 단말기와의 연결구성의 가능한 예를 나타내는 도면이다. 1 is a block diagram schematically illustrating a message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention, and FIG. 2 is a digitized topic according to an embodiment of the present invention. Is a block diagram briefly illustrating a structure and an operation of a server terminal of a message-based middleware device that performs message communication using FIG. 3, and FIG. 3 illustrates message communication using a digitized topic according to an embodiment of the present invention. A diagram illustrating a possible configuration of a connection configuration between a client terminal, a server terminal, and a client terminal through a message based middleware device.
도 1 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는, 메시지 교환 큐 프로그램과 서버 단말기(10)를 통하여 클라이언트 단말기(20)간, 상기 클라이언트 단말기(20)에서 실행되는 프로세서간의 메시지 통신을 수행하는 장치이다.1 and 3, a message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention may include a client terminal through a message exchange queue program and a
보다 구체적으로는, 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는, 메시지 교환 큐 프로그램(message exchange queue)인 하나의 실행 프로그램(1)을 실행하는 수단과 적어도 두 개 이상의 서버 단말기(10)로 구성된다. 여기서, 상기 메시지 교환 큐 프로그램(이하, mxque라 한다)은, 상기 클라이언트 단말기(20)에 의하여 전송 요청된 제1 이름에 대응하는 새로운 제2 이름을 생성한다. 상기 제1 이름은 클라이언트 단말기(20, 21, 22)들간의 통신을 위해 사용되는 토픽(topic)을 의미한다. 이러한 토픽은 개발자(programmer)가 지정하는 메시지의 주소이며 필요에 따라 임의로 만들어질 수 있다. 상기 토픽은 문자(character)로 구성되어, 소켓(socket)의 포트(port)와 IP 주소(ip address) 또는 메시지 큐(message queue)의 키(key)와 같은 역할을 한다. 예를 들면, 상기 제1 이름인 토픽은 “/abc/123”일 수 있다. 상기 토픽에 의한 메시지의 분배는 후술하는 mx서버 단말기(120)와 같은 메시지 엔진(message engine)이 담당한다. 상기 제2 이름은 상기 제1 이름을 숫자화하여 구성된 것으로서, 토픽의 역할을 한다. 예를 들면, 상기 제2 이름은 제1 이름인 “/abc/123”에 대응되도록 숫자화된 “1234567890”의 형태일 수 있다. 본 발명에 따른 메시지 기반 미들웨어 장치는 최대 256 바이트(bytes), “/”로 구분된 8개의 블럭을 토픽으로 사용할 수 있다. 이때, 토픽의 이름 중 “*”와 “?”는 임의 문자(wild character)를 의미한다. 이러한 제2 이름은 N:M(이때, N, M은 정수임)의 다중 통신 방식 또는 1:1 통신 방식을 정의하는 함수를 포함할 수 있다. 이에 따라, 상기 mx서버 단말기(120)는 상기 제2 이름이 정의하는 함수에 따라 N:M 다중 통신 또는 1:1 통신을 수행할 수 있게 된다. 예를 들면, TOPIC_HUB이면 해당 토픽을 이용하는 메시지는 허브방식으로 분배되는 것을 의미하고, TOPIC_P2P이면 피어 투 피어 방식으로 분배되는 것을 의미한다. 따라서, 본 발명에서는, 메시지 통신을 위해 등록된 토픽을 검사하여 해당 토픽으로 메시지를 전달하는 일반적인 방식과는 다르게 토픽을 숫자로 전환하여 토픽의 검색을 생략하여 메시지를 전달하도록 함으로써, 메시지의 통신 속도를 향상시킬 수 있게 된다.More specifically, a message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention executes one
상기 서버 단말기(10)는 체인(chain)구조로 연결되어 하나의 서버 단말기가 비정상 종료되는 경우, 해당 서버 단말기를 모니터링(monitoring)하는 mx모니터링 단말기(110)가 재실행시키는 구조로 되어 있다. 상기 서버 단말기(10)는 적어도 두 개 이상의 서버 단말기(110, 120, 130, 140)를 포함하여 이루어진다. 구체적으로는, 상기 서버 단말기(10)는 상기 메시지 교환 큐 프로그램(1)을 실행시키는 어느 하나의 서버 단말기를 설정하고, 상기 설정된 서버 단말기의 동작을 모니터링하는 mx모니터링 단말기(110)와 상기 클라이언트 단말기(20, 21, 22)간, 및 상기 프로세서(미도시)간의 연결모듈로서, 상기 메시지 교환 큐 프로그램(1)을 실행하여 메시지 전송 요청 서비스를 실행하되, 상기 제1 이름을 숫자화하여 상기 제2 이름을 생성 및 전송하는 mx서버 단말기(120)를 포함한다. 또한, 상기 서버 단말기(10)는 서버 자원의 모니터링을 담당하는 mx 제1 모니터링 단말기(130)과, 클라이언트 테이블에 의한 시간별 클라이언트 단말기를 자동실행시키거나 이들을 모니터링하는 mx 제2 모니터링 단말기(140)을 더 포함할 수 있다. 바람직하게는, 본 발명에 사용되는 상기 서버 단말기(10)는 mx모니터링 단말기(110), mx서버 단말기(12 0), mx 제1 모니터링 단말기(130) 및 mx 제2 모니터링 단말기(140)로 이루어진 4개의 데몬 (daemon)으로 이루어질 수 있다.When the
또한, 본 발명에 따른 메시지 기반 미들웨어 장치는 mxque(1)를 통하여 허브(HUB) 방식과 피어 투 피어(Peer to Peer) 방식을 모두 구현할 수 있다. 여기서, 상기 허브 방식은 발행/인용(Publish/subscribe) 과정에서 메시지를 해당 토픽으로 분배하는 기능을 의미하고, 상기 피어 투 피어 방식은 메시지 엔진, 즉, mx서버 단말기(120)를 거치지 않고, 클라이언트 단말기(20)와 클라이언트 단말기(21, 22)간의 직접 연결을 통해 메시지를 주고 받는 것을 의미한다. 본 발명은 메시지 기반 미들웨어 장치를 통하여 토픽의 형태를 정의하는 방식으로, 두 가지 방식을 모두 사용할 수 있다. 특히, 본 발명에 따른 메시지 기반 미들웨어 장치는 메시지 허브역할을 수행하는 서버 단말기(10)가 통합 관리하도록 하여 고속의 다중 통신(N:M)을 지원할 수 있게 된다. 예를 들면, 상술한 바와 같이, TOPIC_HUB이면 해당 토픽을 이용하는 메시지는 허브방식으로 분배되고, TOPIC_P2P이면 피어 투 피어방식으로 분배된다.In addition, the message-based middleware device according to the present invention can implement both a hub (HUB) method and a peer to peer method through mxque (1). Here, the hub method A function of distributing a message to a corresponding topic in a publish / subscribe process, and the peer-to-peer method does not go through a message engine, that is, an
상기와 같이 구성된 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는 도 3에서와 같은 통신 방식과 연결구조를 가질 수 있다. 이하에서는, 본 발명에 따른 메시지 기반 미들웨어 장치가 구현 가능한 통신방식을 mx서버 단말기간, 클라이언트 단말기와 mx서버 단말기간, 클라이언트 단말기간으로 나누어 설명하기로 한다.A message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention configured as described above may have a communication scheme and a connection structure as shown in FIG. 3. Hereinafter, a communication method that can be implemented by the message-based middleware device according to the present invention between the mx server terminal, the client terminal and The description will be made between the mx server terminals and the client terminals.
mx서버 단말기간between mx server terminals
상기 메시지 기반 미들웨어 장치가 설치된 서버에서는 mx서버 단말기(121)가 메시지 엔진(message engine)의 역할을 수행하며, 상기 mx서버 단말기간(121, 122)에는 소켓(socket)이 연결된다. In the server where the message-based middleware device is installed, the
클라이언트 단말기와 mx서버 단말기간 Between client terminal and mx server terminal
상기 mx서버 단말기(121)와 클라이언트 단말기(21, 22)가 동일한 노드(node #1)에 존재하는 경우, IPC(Inter-Process Communication)로 연결되고, 필요한 경우, 소켓으로 연결된다. 또한, 상기 mx서버 단말기(121)와 클라이언트 단말기(즉, 원거리 클라이언트 단말기)(25, 26)가 다른 노드(node #1, node #4)에 존재하는 경우, 소켓으로 연결된다. 또한, 상기 mx서버 단말기(121)와 클라이언트 단말기(21, 22)의 연결이 비정상 종료되는 경우, 클라이언트의 어댑터 쓰레드(adapter thread)는 mx서버 단말기로 자동 재연결을 한다.When the
클라이언트 단말기간Between client terminals
상기 클라이언트 단말기간(23, 24, 26)의 연결에 있어서, 토픽(TOPIC)의 종류 및 위치에 따라 통신 수단이 변경된다. 즉, 동일한 서버(node #2)에 존재하는 두 클라이언트 단말기(23, 24)간을 TOPIC_IPC로 연결하는 경우의 통신 방식은 IPC가 되며, TOPIC_P2P로 하는 경우엔, 소켓을 이용한다. 다만, 두개의 클라이언트 단말기(25, 26)가 각각 다른 서버(node #2, node #3)에 존재한다면, IPC는 사용할 수 없으며 소켓을 이용한다.
In the connection between the
한편, 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치에 의하면, 프로세서간, 서버간의 낮은 지연속도(Low Latency)의 데이터 통신을 지원할 수 있고, 보다 구체적으로는 메시지 엔진을 통한 다중 통신 및 프로세서간 1:1 (제한적인 N:M 통신)통신을 하나의 응용 프로그래밍 인터페이스(Application Programming Interface, API)를 이용하여 구현할 수 있으며, 동기, 비동기 통신방식을 결정할 수 있다. 나아가, 본 발명에 따른 메시지 기반 미들웨어 장치는 파일 시스템(File system)을 개방/폐쇄/판독/기록 (open/close/read/write)하는 방식과 동일한 구조의 API를 사용하고 있기 때문에, 통신 프로그램 제작 기간의 단축, 유지보수 용이성 및 통신 방식의 다양성을 제공할 수 있을 뿐만 아니라, 후술하는 바와 같이, 사용자로 하여금 라운드 로빈 (Round-Robin), 보장된 전달(Guaranteed delivery), 메시지 큐잉(Message Queuin -g)을 손쉽게 사용할 수 있도록 한다. 이하에서는, 이러한 효과를 제공하는 본 발명에 따른 메시지 기반 미들웨어 장치의 특징 및 기능에 대하여 구체적으로 설명하기로 한다.
On the other hand, according to the message-based middleware device for performing a message communication using a digitized topic according to an embodiment of the present invention, it is possible to support low latency data communication between processors, between servers, Specifically, multiple communication through the message engine and 1: 1 (limited N: M communication) communication between processors can be implemented using one application programming interface (API). You can decide. Furthermore, since the message-based middleware device according to the present invention uses an API having the same structure as a method of opening / closing / reading / writing a file system, a communication program is produced. Not only can provide shorter periods of time, ease of maintenance and variety of communication methods, but also allows users to round-robin, guaranteed delivery, message queuing, as described below. Make g) easy to use. Hereinafter, the features and functions of the message-based middleware device according to the present invention for providing such an effect will be described in detail.
본 발명에 따른 메시지 기반 미들웨어 장치의 특징Features of Message-Based Middleware Device According to the Present Invention
본 발명에 따른 메시지 기반 미들웨어 장치는 토픽(Topic) 형식에 따른 다양한 성격의 발행/인용(publish/subscribe)을 구현할 수 있다. 예를 들면, TOPIC_HUB는 일반적인 발행/인용(publish/subscribe) 기능을, TOPIC_P2P는 피어 투 피어를 위한 토픽을, TOPIC_MQ는 메시지 큐잉(message queuing)을, TOPIC_IPC는 동일 서버내의 고속 피어 투 피어 통신을, 또한 TOPIC_GD는 보장된 전달(Guaranteed delive -ry)을 위한 토픽을 정의하게 된다. The message-based middleware device according to the present invention may implement publish / subscribe of various characteristics according to a topic type. For example, TOPIC_HUB is a general publish / subscribe feature, TOPIC_P2P is a topic for peer-to-peer, TOPIC_MQ is message queuing, TOPIC_IPC is high-speed peer-to-peer communication on the same server, TOPIC_GD also defines the topic for Guaranteed Delive-ry.
또한, 본 발명에 따른 메시지 기반 미들웨어 장치는 메시지 전달(message delivery) 방식에 따른 발행/인용(publsh/subscribe)을 구현할 수 있다. 예를 들면, 요청/응답(Request/Reply), 메시지 큐잉에 의한 누적 데이터 전송, 인용자 (subscriber)로부터 승인(ack)을 수신하는 발행(publish), 다수의 인용자/노드 (subscriber/node)를 대상으로 하는 라운드-로빈(round-robin), 다수의 토픽을 동시에 인용(subscribe), 임의 문자(wild character)에 의한 다중 발행/인용(publis -h/subscribe) 기능을 수행할 수 있다. In addition, the message-based middleware device according to the present invention may implement a publish / subscribe (publsh / subscribe) according to the message delivery (message delivery) method. For example, Request / Reply, cumulative data transfer by message queuing, publish to receive an ack from a subscriber, multiple subscribers / nodes It is possible to round-robin for multiple topics, subscribe to multiple topics at the same time, and publish / publish by multiple characters (publis -h / subscribe).
또한, 본 발명에 따른 메시지 기반 미들웨어 장치는 CPU 친화성(親和性, affinity)[리눅스 버젼(linux version)]을 구현할 수 있다. 예를 들면, 메시지 엔진으로 사용되는 4개의 데몬(daemon, 즉, 서버 단말기)과 클라이언트별 CPU 할당, 운영하는 서버의 환경에 적합한 실행 형태를 설정, CPU 캐쉬(cache)의 최적화 사용 환경을 제공할 수 있다. In addition, the message-based middleware device according to the present invention can implement CPU affinity (linux version). For example, four daemons (ie server terminals) that are used as message engines, CPU allocation for each client, and the execution type suitable for the operating server environment can be provided to provide an optimized usage environment of the CPU cache. Can be.
또한, 본 발명에 따른 메시지 기반 미들웨어 장치는 시스템 대체 작동(fail -over) 기능을 제공할 수 있다. 예를 들면, 두 서버에서 각각 실행 중인 클라이언트간의 시스템 대체 작동(failover), 클라이언트의 연결서버 장애 시의 자동서버 전환기능, 노드(node)의 마스터(master)/슬래이브(slave) 전환 기능 및 슬래이브 노드(slave node)의 클라이언트 홀드(client hold)기능, 보장된 전달(Guaranteed delivery)에 의한 메시지 누락 방지 기능을 제공할 수 있다.
In addition, the message-based middleware device according to the present invention may provide a fail-over function. For example, system failover between clients running on each of the two servers, automatic server switching in the event of a client's connection server failure, node master / slave switching, and slab A client hold function of a slave node and a message drop prevention function by guaranteed delivery can be provided.
본 발명에 따른 메시지 기반 미들웨어 장치의 기능Function of message-based middleware device according to the present invention
본 발명에 따른 메시지 기반 미들웨어 장치는 mx서버 단말기와 같은 메시지 엔진을 통하여 발행/인용(publish/subscribe)을 수행하게 되는데, 구체적으로는 발행/인용(publish/subscribe), 라운드-로빈(round-robin), 승인(ack)을 수신하는 발행(publish), 메시지 큐잉(message queuing), 요청/응답(Request/Reply) 및 보장된 전달(Guaranteed delivery)을 구현할 수 있다. 또한, 클라이언트간의 직접 통신을 통하여 발행/인용(publish/subscribe)을 수행하게 되는데, 구체적으로는 발행/인용(publish/subscribe), 라운드-로빈(round-robin), 승인(ack)을 수신하는 발행(p -ublish) 기능을 구현할 수 있다.The message-based middleware device according to the present invention performs publish / subscribe through a message engine such as an mx server terminal. Specifically, publish / subscribe and round-robin ), Publish, receive ack, message queuing, Request / Reply, and Guaranteed delivery. In addition, publication / subscribe is performed through direct communication between clients. More specifically, publication / subscribe, round-robin, and approval to receive an ack. You can implement the (p -ublish) function.
또한, 시스템 대체 작동(Failover) 기능으로서, 발행/인용(publish/subscri -be), 마스터 노드(master node), 발행(publish) 클라이언트의 비정상 종료를 수행하게 된다.In addition, as a failover function, abnormal termination of a publish / subscribe-be, a master node, and a publish client is performed.
도 4는 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치의 이벤트 함수 콜과 클라이언트 단말기와의 관계의 일 예를 나타내는 도면이다.4 is a diagram illustrating an example of a relationship between an event function call and a client terminal of a message-based middleware device that performs message communication using a digitized topic according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치는, 인용(Subscribe)측에서 메시지의 도착, 요청(request)에 대한 응답 등과 같이 대기(wait) 상황이 발생하게 되는 경우, 기다리는 토픽에 메시지가 도착하며 등록한 함수가 실행되는 구조로 프로그램할 수 있다. 이때, 개발자는 토픽과 호출될 함수를 정의하여 사용할 수 있는데, 이 경우, 호출되는 함수는 독립된 별도의 쓰레드(thread)가 실행하는 구조로 되어 있다. 이와 같이, 사용자 정의에 의한 토픽 및 함수 콜 이외에 마스터 (master)/슬래이브(slave) 전환, 자동 재접속, 연결(connection), 폐쇄(close) 등과 같은 이벤트(event)는 각각의 이벤트 발생 시에도 함수를 정의했다면, 해당 함수는 자동으로 호출된다. 즉, 클라이언트 단말기는 mx서버 단말기(120)와 연결(con -nection)된 이후, 어댑터 쓰레드(adapter thread)가 자동 생성되며 mx서버 단말기와 통신하게 된다. Referring to FIG. 4, a message-based middleware device performing message communication using a digitized topic according to an embodiment of the present invention may include a message arriving at a subscribe side, a response to a request, and the like. If a wait condition occurs as well, a message arrives at the waiting topic and the program can be programmed to execute the registered function. At this time, the developer can define and use the topic and the function to be called. In this case, the called function is structured to be executed by a separate thread. As such, in addition to user-defined topics and function calls, events such as master / slave switching, automatic reconnection, connection, close, and so on, may occur when each event occurs. If you define, the function is called automatically. That is, after the client terminal is connected (con -nection) to the
또한, 본 발명에 따른 메시지 기반 미들웨어 장치는 하나의 프로그램에서 독립된 쓰레드(thread)를 이용할 경우, 여러 컴퓨터에서 실행 중인 메시지 기반 미들웨어 장치로의 연결이 가능하다. 이를 통하여 작업의 부하 분산 효과를 얻을 수 있으며, 주요 업무에 대한 실행을 보장받을 수 있다.In addition, when the message-based middleware device according to the present invention uses an independent thread in one program, the message-based middleware device can be connected to the message-based middleware device running on several computers. Through this, the load balancing effect of the work can be obtained and the execution of the main work can be guaranteed.
한편, 본 발명의 일 실시예에 따른 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치에서 사용되는 API와 프로그램의 구성에 관해 설명하자면, 메시지 기반 미들웨어 장치의 클라이언트 단말기에서 사용하는 API용 라이브러리(library)는 공유 객체(shared object)와 고정 객체(static object)의 두가지의 형태로 제공되며, 이에 필요한 헤더 파일(header file)을 포함한다.Meanwhile, to describe the configuration of an API and a program used in a message-based middleware device for performing message communication using a digitized topic according to an embodiment of the present invention, an API used in a client terminal of a message-based middleware device The library is provided in two forms, a shared object and a static object, and includes a header file required for this.
아래의 [표 1]은 메시지 기반 미들웨어 장치의 설치 후, 만들어지는 디렉토리(directory)이다.Table 1 below is a directory created after the installation of the message-based middleware device.
또한, 아래 [표 2]는 클라이언트 프로그램의 일 예로서, 임의의 데이터를 발행(publish)하는 프로그램이다.
In addition, Table 2 below is an example of a client program, which is a program that publishes arbitrary data.
7
8 int main()
9 {
10 int rtn, id, deliverytype = 0;
11 int i, sndsize, size = 256;
12 int waitsec = 0, waitmsec = 0;
13 char topicname[256];
14 unsigned char data[1024];
15
16 rtn = MXconnect ( NULL ,0, NULL , NULL ,5, NULL );
17 if (rtn < 0)
18 {
19 printf("ERROR:%s\n", MXgetErrMsg());
20 exit(0);
21 }
22 strcpy(topicname, "/sample/topic");
23 id = MXopenTopic ( TOPIC _ HUB , topicname , 0);
24 if (id < 0)
25 {
26 printf("ERROR:%s\n", MXgetErrMsg());
27 exit(0);
28 }
29 memset(data, 'a', 1024);
30 size = 1024;
31 for (i = 0; i < 10; i++)
32 {
33 sndsize = MXpubMsg ( id , deliverytype , data , size , waitsec , waitmsec );
34 if (sndsize < 0)
35 {
36 printf("ERROR:%s\n", MXgetErrMsg());
37 exit(0);
38 }
39 printf("PUB:%d:%.50s..\n", sndsize, data);
40 sleep(1);
41 }
42 MXcloseTopic ( id );
43 MXdisconnect (0);
44 exit(0);
45 }6 #include "mxqapi.h"
7
8 int main ()
9 {
10 int rtn, id, deliverytype = 0;
11 int i, sndsize, size = 256;
12 int waitsec = 0, waitmsec = 0;
13 char topicname [256];
14 unsigned char data [1024];
15
16 rtn = MXconnect ( NULL , 0, NULL , NULL , 5, NULL );
17 if (rtn <0)
18 {
19 printf ("ERROR:% s \ n", MXgetErrMsg ());
20 exit (0);
21}
22 strcpy (topicname, "/ sample / topic");
23 id = MXopenTopic ( TOPIC _ HUB , topicname , 0);
24 if (id <0)
25 {
26 printf ("ERROR:% s \ n", MXgetErrMsg ());
27 exit (0);
28}
29 memset (data, 'a', 1024);
30 size = 1024;
31 for (i = 0; i <10; i ++)
32 {
33 sndsize = MXpubMsg ( id , deliverytype , data , size , waitsec , waitmsec );
34 if (sndsize <0)
35 {
36 printf ("ERROR:% s \ n", MXgetErrMsg ());
37 exit (0);
38}
39 printf ("PUB:% d:%. 50s .. \ n", sndsize, data);
40 sleep (1);
41}
42 MXcloseTopic ( id );
43 MXdisconnect (0);
44 exit (0);
45}
[표 2]에 대하여 사용된 API를 기준으로 간략하게 설명하자면, MXconnect()는 client(즉, 클라이언트 단말기)와 mxserver(즉, mx서버 단말기)간에 연결하는 것을 나타내고, MXopenTopic()는 사용할 토픽의 이름을 이용하여 mxserver로 토픽 개방(open)을 요청하여 향후 사용할 토픽 id를 얻기 위함이다. 또한, MXpubMsg()는 MXopenTopic()에서 얻은 토픽 id를 대상으로 임의의 데이터를 전송하고, MXcloseTopic()는 사용이 완료된 토픽을 닫으며, MXdisconnect()는 mx서버 단말기와의 연결을 종료함을 나타낸다. 이와 같이, 토픽의 사용은 유닉스 스트림(unix stream) 사용 방식과 동일한 구조를 가질 수 있다.Briefly based on the API used for [Table 2], MXconnect () indicates connection between client (i.e. client terminal) and mxserver (i.e. mxserver terminal), and MXopenTopic () indicates the topic to use. This is to request a topic open by using mxserver to get a topic id for future use. In addition, MXpubMsg () sends arbitrary data to the topic id obtained from MXopenTopic (), MXcloseTopic () closes the used topic, and MXdisconnect () terminates the connection with the mx server terminal. . In this way, the use of a topic may have the same structure as that of a Unix stream.
이상에서 설명한 것은 본 발명에 의한 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치를 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이, 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
What has been described above is only one embodiment for implementing a message-based middleware device for performing message communication using the digitized topics according to the present invention, the present invention is not limited to the above embodiment, the following patents As claimed in the claims, any person of ordinary skill in the art without departing from the gist of the present invention will have the technical spirit of the present invention to the extent that various modifications can be made.
1: mxque 10: 서버 단말기
20: 클라이언트 단말기 110: mx모니터링 단말기
120: mx서버 단말기 130: mx 제1 모니터링 단말기
140: mx 제2 모니터링 단말기1: mxque 10: server terminal
20: client terminal 110: mx monitoring terminal
120: mx server terminal 130: mx first monitoring terminal
140: mx 2nd monitoring terminal
Claims (6)
각각 체인구조로 연결되는 적어도 두 개 이상의 서버 단말기;
를 포함하며, 상기 클라이언트 단말기들간의, 그리고 상기 클라이언트 단말기에서 실행되는 적어도 하나 이상의 프로세서들간의 메시지 통신을 수행하고,
상기 적어도 두 개 이상의 서버 단말기는,
상기 메시지 교환 큐 프로그램을 실행시키는 어느 하나의 서버 단말기를 설정하고, 상기 설정된 서버 단말기의 동작을 모니터링하는 mx모니터링 단말기; 및
상기 클라이언트 단말기들간의, 그리고 상기 프로세서들간의 연결모듈로서, 상기 메시지 교환 큐 프로그램을 실행하여 메시지 전송 요청 서비스를 실행하되, 상기 제1 이름을 숫자화하여 상기 제2 이름을 생성 및 전송하는 mx서버 단말기를 포함하는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
Means for executing a message exchange queue program (mxque) for generating a new second name corresponding to the first name requested to be transmitted by at least one or more client terminals; And
At least two server terminals each connected in a chain structure;
A message communication between the client terminals and at least one or more processors running on the client terminal;
The at least two server terminals,
An mx monitoring terminal configured to set any one server terminal for executing the message exchange queue program and to monitor an operation of the set server terminal; And
An mx server, which is a connection module between the client terminals and between the processors, executes the message exchange queue program to execute a message transfer request service, and generates and transmits the second name by digitizing the first name. Message-based middleware device for performing a message communication using a digitized topic, characterized in that it comprises a terminal.
상기 mx모니터링 단말기는 상기 메시지 교환 큐 프로그램을 실행하는 상기 mx서버 단말기의 동작이 비정상 종료되는 경우, 해당 mx서버 단말기를 모니터링하는 다른 서버 단말기가 상기 메시지 교환 큐 프로그램을 재실행시키도록 설정하는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
The method of claim 1,
The mx monitoring terminal, when the operation of the mx server terminal for executing the message exchange queue program is abnormally terminated, another server terminal for monitoring the mx server terminal is configured to re-run the message exchange queue program Message-based middleware device for performing a message communication using a digitized topic.
상기 제2 이름은 N:M(이때, N, M은 정수임)의 다중 통신 방식 또는 1:1 통신 방식을 정의하는 함수를 포함할 수 있는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
The method of claim 1,
The second name may be a message communication using a digitized topic, characterized in that it may include a function for defining a multiple communication scheme of N: M (where N, M is an integer) or 1: 1 communication scheme Message-based middleware device that performs.
상기 mx서버 단말기는 상기 제2 이름이 정의하는 함수에 따라 N:M 다중 통신 또는 1:1 통신을 수행할 수 있는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
The method of claim 3,
The mx server terminal is a message-based middleware device for performing a message communication using the digitized topic, characterized in that the N: M multiple communication or 1: 1 communication according to the function defined by the second name. .
상기 mx서버 단말기는,
상기 클라이언트 단말기에 통신하고자 하는 프로세서가 존재하는 경우, 상기 프로세서들 간은 1: 1 방식의 통신을 수행하도록 할 수 있고, 상기 클라이언트 단말기들 간은 N:M 다중 통신을 수행하도록 할 수 있는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
5. The method of claim 4,
The mx server terminal,
When there is a processor to be communicated with the client terminal, the processors may perform a 1: 1 communication, and the client terminals may perform N: M multiple communication. Message-based middleware device for performing a message communication using a digitized topic.
상기 메시지 교환 큐 프로그램은 상기 제1 이름에 대응하는 데이터를 숫자로 구성한 제2 이름을 구비하는 오브젝트 라이브러리를 포함하며,
상기 클라이언트 단말기에 의하여 전송 요청된 이름에 대응하는 이름이 상기 오브젝트 라이브러리에서 자동호출되는 것을 특징으로 하는 숫자화된 토픽을 이용하여 메시지 통신을 수행하는 메시지 기반 미들웨어 장치.
The method of claim 1,
The message exchange queue program includes an object library having a second name consisting of numbers of data corresponding to the first name.
And a message corresponding to a name requested to be transmitted by the client terminal is automatically called from the object library.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120012865A KR101219637B1 (en) | 2012-02-08 | 2012-02-08 | Message oriented middleware device for message communication processing using numeralized topic |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120012865A KR101219637B1 (en) | 2012-02-08 | 2012-02-08 | Message oriented middleware device for message communication processing using numeralized topic |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101219637B1 true KR101219637B1 (en) | 2013-01-09 |
Family
ID=47841392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120012865A KR101219637B1 (en) | 2012-02-08 | 2012-02-08 | Message oriented middleware device for message communication processing using numeralized topic |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101219637B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040240462A1 (en) | 2003-05-27 | 2004-12-02 | Sun Microsystems, Inc. | Hashing based messaging approach to a cluster |
US7093261B1 (en) | 2000-07-28 | 2006-08-15 | Fair Isaac Corporation | Message integration framework for multi-application systems |
US20090157836A1 (en) | 2000-07-07 | 2009-06-18 | Softwired Ag | Messaging Proxy System |
US7912896B2 (en) | 2003-04-17 | 2011-03-22 | Visto Corporation | Data access, replication or communication system comprising a distributed software application |
-
2012
- 2012-02-08 KR KR1020120012865A patent/KR101219637B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157836A1 (en) | 2000-07-07 | 2009-06-18 | Softwired Ag | Messaging Proxy System |
US7093261B1 (en) | 2000-07-28 | 2006-08-15 | Fair Isaac Corporation | Message integration framework for multi-application systems |
US7912896B2 (en) | 2003-04-17 | 2011-03-22 | Visto Corporation | Data access, replication or communication system comprising a distributed software application |
US20040240462A1 (en) | 2003-05-27 | 2004-12-02 | Sun Microsystems, Inc. | Hashing based messaging approach to a cluster |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11509611B2 (en) | Method and system for providing high efficiency, bidirectional messaging for low latency applications | |
US9495392B2 (en) | System and method for parallel multiplexing between servers in a cluster | |
CN107590072B (en) | Application development and test method and device | |
US7805407B1 (en) | System and method for dynamic configuration of replicated database servers | |
US9817657B2 (en) | Integrated software development and deployment architecture and high availability client-server systems generated using the architecture | |
US9185054B2 (en) | System and method for providing zero buffer copying in a middleware machine environment | |
JP4422606B2 (en) | Distributed application server and method for implementing distributed functions | |
US9438668B2 (en) | System and method for managing message queues in a peer-to-peer communication network | |
US20100138540A1 (en) | Method of managing organization of a computer system, computer system, and program for managing organization | |
US20150312377A1 (en) | System and method for updating service information for across-domain messaging in a transactional middleware machine environment | |
CN103562882A (en) | System and method for providing a messaging application program interface | |
US10826977B2 (en) | System and method for supporting asynchronous request/response in a network environment | |
JP2012510651A (en) | Service load balancing | |
US9569224B2 (en) | System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine | |
Aditya et al. | A high availability (HA) MariaDB Galera Cluster across data center with optimized WRR scheduling algorithm of LVS-TUN | |
CN110247971B (en) | Method and system for reducing number of message middleware connections | |
JP5945543B2 (en) | System including middleware machine environment | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
US9967163B2 (en) | Message system for avoiding processing-performance decline | |
KR101219637B1 (en) | Message oriented middleware device for message communication processing using numeralized topic | |
Rosa et al. | DerechoDDS: Efficiently leveraging RDMA for fast and consistent data distribution | |
Byun et al. | DynaGrid: A dynamic service deployment and resource migration framework for WSRF-compliant applications | |
Wickramarachchi et al. | Andes: A highly scalable persistent messaging system | |
US20200293386A1 (en) | Messaging abstraction layer for integration with message oriented middleware platforms | |
Yang et al. | DZMQ: A decentralized distributed messaging system for realtime Web applications and services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151027 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161103 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181219 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191202 Year of fee payment: 8 |