KR102156298B1 - 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 - Google Patents
메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 Download PDFInfo
- Publication number
- KR102156298B1 KR102156298B1 KR1020190179183A KR20190179183A KR102156298B1 KR 102156298 B1 KR102156298 B1 KR 102156298B1 KR 1020190179183 A KR1020190179183 A KR 1020190179183A KR 20190179183 A KR20190179183 A KR 20190179183A KR 102156298 B1 KR102156298 B1 KR 102156298B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- information
- sending
- queue
- database
- Prior art date
Links
Images
Classifications
-
- H04L51/16—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 메시지 발송 시스템 및 방법에 관한 것이다. 본 발명의 일 실시예에 따른 메시지 발송 시스템은 메시지에 관한 정보를 저장하는 데이터베이스; 상기 데이터베이스에 메시지에 관한 정보를 저장하기 전에 메시지 큐를 이용하여 메시지 발송을 위한 사전 처리를 실행하는 교환 서버; 및 상기 교환 서버에서 처리되어 전달받은 메시지를 발송하기 위해 메시지에 관한 정보를 통신사로 전달하는 발송 서버를 포함할 수 있다.
Description
본 발명은 메시지 발송 시스템 및 방법에 관한 것으로, 보다 구체적으로 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법에 관한 것이다.
이동통신사의 무선 통신망을 이용하여 기업 고객이 거래하는 사용자의 휴대전화로 문자메시지를 전송하는 기업메시징 서비스가 제공되고 있다. 이러한 기업메시징 서비스는 기업 고객의 사용자들에게 광고메시지를 비롯해 정보 제공을 위한 메시지 또는 인증을 위한 메시지 등을 대량으로 발송할 필요가 있다.
이와 같이 메시지가 동시에 대량으로 발송되는 경우, 기업메시징 서비스를 제공하는 서버에서 병목현상이 발생하여 메시지 발송이 지연되는 경우가 빈번하게 발생할 수 있다.
본 발명의 실시예는 클라이언트로부터 대량의 메시지 발송 요청을 수신하여도 지연을 최소화하여 메시지를 빠르게 발송할 수 있는 메시지 발송 시스템 및 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 메시지 발송 시스템은 메시지에 관한 정보를 저장하는 데이터베이스; 상기 데이터베이스에 메시지에 관한 정보를 저장하기 전에 메시지 큐를 이용하여 메시지 발송을 위한 사전 처리를 실행하는 교환 서버; 및 상기 교환 서버에서 처리되어 전달받은 메시지를 발송하기 위해 메시지에 관한 정보를 통신사로 전달하는 발송 서버를 포함할 수 있다.
상기 교환 서버는: 클라이언트로부터 메시지 발송 요청을 수신하는 수신부; 상기 수신부로부터 메시지 발송 요청에 포함된 메시지 데이터를 입력받아 저장하는 제 1 메시지 큐; 상기 제 1 메시지 큐로부터 메시지 데이터를 전달받아 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하여 상기 발송 서버로 전달하는 메시지 쓰레드부; 상기 메시지 쓰레드부로부터 상기 추출된 메시지에 관한 정보를 입력받아 저장하는 제 2 메시지 큐; 및 상기 제 2 메시지 큐로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스에 저장하는 메시지 저장 쓰레드부를 포함할 수 있다.
상기 메시지 쓰레드부는: 메시지 데이터로부터 메시지를 보내는 발신자의 발신번호, 메시지를 받는 수신자의 수신번호 및 메시지를 구성하는 메시지 내용을 추출하고, 상기 추출된 발신번호, 수신번호 및 메시지 내용을 포함하는 제 1 메시지 정보를 상기 발송 서버로 전달할 수 있다.
상기 메시지 쓰레드부는: 메시지 데이터로부터 추출된 메시지 내용을 포함하는 제 2 메시지 정보를 상기 제 2 메시지 큐로 전달하고, 상기 메시지 저장 쓰레드부는: 상기 제 2 메시지 큐로부터 전달받은 제 2 메시지 정보를 상기 데이터베이스에 저장할 수 있다.
상기 메시지 쓰레드부는: 메시지 데이터로부터 추출된 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 상기 데이터베이스에 저장할 수 있다.
상기 데이터베이스는: 상기 제 2 및 제 3 메시지 정보를 상기 메시지 발송 요청에 고유한 키 값과 매칭시켜 저장할 수 있다.
상기 메시지 쓰레드부는: 상기 발송 서버로 제 1 메시지 정보를 전달하는 제 1 작업, 상기 제 2 메시지 큐로 제 2 메시지 정보를 전달하는 제 2 작업 및 상기 데이터베이스로 제 3 메시지 정보를 전달하는 제 3 작업을 서로 독립적으로 실행할 수 있다.
상기 메시지 쓰레드부는: 상기 제 1 메시지 큐로부터 전달받은 개별 메시지 데이터마다 상기 제 3 작업을 먼저 실행한 뒤, 상기 제 1 작업을 실행하고, 그러고 나서 상기 제 2 작업을 실행할 수 있다.
상기 제 2 메시지 큐로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스에 저장하는 작업에 할당된 상기 메시지 저장 쓰레드부의 개수는, 상기 제 1 메시지 큐로부터 메시지 데이터를 전달받아 메시지에 관한 정보를 추출하고 상기 발송 서버로 전달하는 작업에 할당된 상기 메시지 쓰레드부의 개수보다 적게 설정될 수 있다.
본 발명의 일 실시예에 따른 메시지 발송 방법은 데이터베이스, 교환 서버 및 발송 서버를 포함하는 메시지 발송 시스템이 메시지를 발송하는 방법으로서, 상기 교환 서버가 클라이언트로부터 메시지 발송 요청을 수신하는 단계; 상기 교환 서버가 메시지 발송 요청에 포함된 메시지 데이터를 제 1 메시지 큐에 저장하는 단계; 상기 교환 서버가 상기 제 1 메시지 큐로부터 메시지 데이터를 불러와 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하여 상기 발송 서버로 전달하는 단계; 상기 발송 서버가 상기 교환 서버로부터 전달받은 메시지에 관한 정보를 통신사로 전달하는 단계; 상기 교환 서버가 상기 추출된 메시지에 관한 정보를 제 2 메시지 큐에 저장하는 단계; 및 상기 교환 서버가 상기 제 2 메시지 큐로부터 메시지에 관한 정보를 불러와 상기 데이터베이스에 저장하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 메시지 발송 방법은 컴퓨터로 실행하기 위한 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다.
본 발명의 실시예에 따르면, 클라이언트로부터 대량의 메시지 발송 요청을 수신하여도 지연을 최소화하여 메시지를 빠르게 발송할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메시지 발송 시스템이 클라이언트로부터 메시지 발송 요청을 수신하여 사용자에게 메시지를 발송하는 과정을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메시지 발송 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 교환 서버의 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 발송 서버의 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 메시지 발송 시스템이 클라이언트로부터 메시지 발송 요청을 수신하여 사용자에게 메시지를 발송하는 과정을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 메시지 발송 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 교환 서버의 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 발송 서버의 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 메시지 발송 시스템이 클라이언트로부터 메시지 발송 요청을 수신하여 사용자에게 메시지를 발송하는 과정을 설명하기 위한 흐름도이다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.
한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.
이하, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 메시지 발송 시스템(1)이 클라이언트(2)로부터 메시지 발송 요청을 수신하여 사용자(4)에게 메시지를 발송하는 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 상기 메시지 발송 시스템(1)은 데이터베이스(10), 교환 서버(20) 및 발송 서버(30)를 포함한다.
상기 데이터베이스(10)는 메시지에 관한 정보를 저장한다. 본 발명의 실시예에 따르면, 상기 데이터베이스(10)는 정보를 저장하는 저장 장치로서, 예컨대 HDD, SSD 등을 포함하나 이에 제한되지는 않는다.
상기 교환 서버(20)는 상기 데이터베이스(10)에 메시지에 관한 정보를 저장하기 전에 메시지 큐를 이용하여 메시지 발송을 위한 사전 처리를 실행한다. 상기 교환 서버(20)는 클라이언트(2)로부터 메시지 발송 요청을 수신하여 상기 메시지 발송 요청으로부터 메시지에 관한 정보를 추출하고 상기 데이터베이스(10)에 저장한다. 이 과정에서 상기 교환 서버(20)는 상기 데이터베이스(10)에 메시지에 관한 정보를 저장하기 전에 메시지 큐를 이용하여 사전 처리를 실행한다.
상기 발송 서버(30)는 상기 교환 서버(20)에서 처리되어 전달받은 메시지를 발송하기 위해 메시지에 관한 정보를 통신사(3)로 전달한다. 상기 교환 서버(20)에서 메시지에 관한 정보를 상기 데이터베이스(10)에 저장한 뒤 상기 발송 서버(30)로 메시지에 관한 정보를 전달하면, 상기 발송 서버(30)는 사용자(4)에게 메시지를 발송하기 위해 통신사(3)로 메시지에 관한 정보를 전달한다.
상기 교환 서버(20) 및 상기 발송 서버(30)는 데이터를 처리하는 처리 장치 및 데이터를 저장하는 메모리를 포함하는 컴퓨터 장치로서, 사전에 설치된 컴퓨터 프로그램에 따라 데이터를 처리한다.
도 2는 본 발명의 일 실시예에 따른 메시지 발송 시스템(1)의 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 상기 교환 서버(20)는 수신부(21), 제 1 메시지 큐(22), 메시지 쓰레드부(23), 제 2 메시지 큐(24) 및 메시지 저장 쓰레드부(25)를 포함할 수 있다.
상기 수신부(21)는 클라이언트(2)로부터 메시지 발송 요청을 수신할 수 있다. 상기 제 1 메시지 큐(22)는 상기 수신부(21)로부터 메시지 발송 요청에 포함된 메시지 데이터를 입력받아 저장할 수 있다. 상기 메시지 쓰레드부(23)는 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 전달받아 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하여 상기 발송 서버(30)로 전달할 수 있다. 상기 제 2 메시지 큐(24)는 상기 메시지 쓰레드부(23)로부터 상기 추출된 메시지에 관한 정보를 입력받아 저장할 수 있다. 상기 메시지 저장 쓰레드부(25)는 상기 제 2 메시지 큐(24)로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스(10)에 저장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 교환 서버(20)의 구성을 설명하기 위한 블록도이다.
도 3을 참조하면, 상기 교환 서버(20)에서 상기 수신부(21)는 메시지 발송 요청 수신부(211) 및 제 1 메시지 큐 메시지 데이터 저장부(212)를 포함할 수 있다.
상기 메시지 발송 요청 수신부(211)는 클라이언트(2)로부터 사용자(4)에게 메시지를 발송하기 위한 메시지 발송 요청을 수신할 수 있다. 상기 제 1 메시지 큐 메시지 데이터 저장부(212)는 메시지 발송 요청에 포함된 메시지 데이터를 추출하여 상기 제 1 메시지 큐(22)에 입력할 수 있다.
상기 제 1 메시지 큐(22)는 상기 제 1 메시지 큐 메시지 데이터 저장부(212)로부터 메시지 데이터를 입력받아 저장할 수 있다. 본 발명의 일 실시예에 따르면, 상기 제 1 메시지 큐(22)는 FIFO(First In First Out) 방식으로 동작하여 먼저 입력된 메시지 데이터가 먼저 출력되어 처리되도록 구성될 수 있다.
상기 교환 서버(20)에서 상기 메시지 쓰레드부(23)는 메시지 정보 추출부(231), 발송 서버 전달부(232), 제 2 메시지 큐 메시지 정보 저장부(233) 및 데이터베이스 저장부(234)를 포함할 수 있다.
상기 메시지 쓰레드부(23)는 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 전달받아 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하여 상기 발송 서버(30)로 전달할 수 있다.
본 발명의 일 실시예에 따르면, 상기 메시지 정보 추출부(231)는 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 수신하여 메시지에 관한 정보를 추출할 수 있다. 그리고, 상기 발송 서버 전달부(232), 상기 제 2 메시지 큐 메시지 정보 저장부(233) 및 상기 데이터베이스 저장부(234)는 상기 메시지 정보 추출부(231)에 의해 추출된 메시지에 관한 정보를 각각 상기 발송 서버(30), 상기 제 2 메시지 큐(24) 및 상기 데이터베이스(10)로 전달하여 저장시킬 수 있다.
구체적으로, 상기 메시지 쓰레드부(23)에서 상기 메시지 정보 추출부(231)는 메시지 데이터로부터 메시지를 보내는 발신자의 발신번호, 메시지를 받는 수신자의 수신번호 및 메시지를 구성하는 메시지 내용을 추출할 수 있다. 그러고 나서, 상기 메시지 쓰레드부(23)에서 상기 발송 서버 전달부(232)는 상기 추출된 발신번호, 수신번호 및 메시지 내용을 포함하는 제 1 메시지 정보를 상기 발송 서버(30)로 전달할 수 있다.
나아가, 상기 메시지 쓰레드부(23)에서 상기 제 2 메시지 큐 메시지 정보 저장부(233)는 메시지 데이터로부터 추출된 메시지 내용을 포함하는 제 2 메시지 정보를 상기 제 2 메시지 큐(24)로 전달할 수 있다.
상기 제 2 메시지 큐(24)는 상기 제 2 메시지 큐 메시지 정보 저장부(233)로부터 제 2 메시지 정보를 전달받아 저장할 수 있다. 본 발명의 일 실시예에 따르면, 상기 제 2 메시지 큐(24) 역시 FIFO 방식으로 동작하여 먼저 입력된 제 2 메시지 정보가 먼저 출력되어 처리되도록 구성될 수 있다.
상기 메시지 저장 쓰레드부(25)에서 상기 제 2 메시지 큐 메시지 정보 수신부(251)는 상기 제 2 메시지 큐(24)로부터 제 2 메시지 정보를 불러올 수 있다. 그리고, 상기 데이터베이스 후처리 저장부(252)는 상기 제 2 메시지 큐(24)로부터 불러온 제 2 메시지 정보를 상기 데이터베이스(10)에 저장할 수 있다.
더 나아가, 상기 메시지 쓰레드부(23)에서 상기 데이터베이스 저장부(234)는 메시지 데이터로부터 추출된 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 상기 데이터베이스(10)로 전달하여 저장할 수 있다.
즉, 본 발명의 실시예에 따르면, 상기 메시지 발송 시스템(1)은 클라이언트(2)의 메시지를 통신사(3)를 거쳐 사용자(4)로 발송하기 위한 처리를 수행하는 과정에서 메시지에 관한 정보를 상기 데이터베이스(10)에 저장하나, 메시지 발송을 위한 처리와 메시지에 관한 정보를 상기 데이터베이스(10)에 저장하기 위한 처리가 서로 구분되어 독립적으로 실행된다.
그 결과, 메시지 발송 시 메시지에 관한 정보를 데이터베이스에 저장하는 과정에서 야기되는 발송 지연을 최소화하여 클라이언트(2)로부터 대량의 메시지 발송 요청을 받아도 원활하고 빠르게 메시지를 발송할 수 있다.
도 2 및 도 3을 참조하면, 상기 데이터베이스(10)는 상기 교환 서버(20)의 상기 메시지 저장 쓰레드부(25)로부터 메시지 내용을 포함하는 제 2 메시지 정보를 입력받아 저장하고, 상기 교환 서버(20)의 상기 메시지 쓰레드부(23)로부터 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 입력받아 저장할 수 있다.
이와 같이 상기 데이터베이스(10)에 메시지 내용을 포함하는 제 2 메시지 정보가 저장되는 과정과 발신번호 및 수신번호를 포함하는 제 3 메시지 정보가 저장되는 과정은 별도의 쓰레드에서 서로 구분되어 실행되며, 앞서 언급한 바와 같이 상기 발송 서버(30)로 제 1 메시지 정보를 전달하는 과정과도 구분되어 실행된다.
본 발명의 일 실시예에 따르면, 상기 데이터베이스(10)는 상기 제 2 메시지 정보와 상기 제 3 메시지 정보를 메시지 발송 요청에 고유한 키 값과 매칭시켜 저장할 수 있다.
다시 말해, 이 실시예에 따르면, 클라이언트(2)로부터 수신되는 메시지 발송 요청은 하나의 메시지 발송 요청마다 키 값이 고유하게 부여되며, 상기 데이터베이스(10)는 상기 메시지 저장 쓰레드부(25)와 상기 메시지 쓰레드부(23)로부터 각각 제 2 메시지 정보와 제 3 메시지 정보를 독립적으로 전달받아 저장하는 과정에서 해당 메시지 발송 요청에 고유하게 부여된 키 값에 매칭시킴으로써 상기 제 2 및 제 3 메시지 정보를 서로 연관시켜 저장할 수 있다.
본 발명의 일 실시예에 따르면, 상기 메시지 쓰레드부(23)는 상기 발송 서버(30)로 제 1 메시지 정보를 전달하는 제 1 작업, 상기 제 2 메시지 큐(24)로 제 2 메시지 정보를 전달하는 제 2 작업 및 상기 데이터베이스(10)로 제 3 메시지 정보를 전달하는 제 3 작업을 서로 독립적으로 실행할 수 있다.
뿐만 아니라, 상기 메시지 쓰레드부(23)는 상기 제 1 메시지 큐(22)로부터 전달받은 개별 메시지 데이터마다 상기 제 3 작업을 먼저 실행하여 발신번호와 수신번호를 상기 데이터베이스(10)에 저장시킨 뒤, 상기 제 1 작업을 실행하여 상기 발송 서버(30)에 메시지 발송에 필요한 발신번호, 수신번호 및 메시지 내용을 전달하고, 그러고 나서 상기 제 2 작업을 실행하여 상기 제 2 메시지 큐(24) 및 상기 메시지 저장 쓰레드부(25)를 통해 메시지 내용을 상기 데이터베이스(10)에 저장시킬 수 있다.
나아가, 본 발명의 일 실시예에 따르면, 상기 교환 서버(20)에서 상기 제 2 메시지 큐(24)로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스(10)에 저장하는 작업에 할당된 상기 메시지 저장 쓰레드부(25)의 개수는, 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 전달받아 메시지에 관한 정보를 추출하고 상기 발송 서버(30)로 전달하는 작업에 할당된 상기 메시지 쓰레드부(23)의 개수보다 적게 설정될 수 있다.
이와 같이 본 발명의 실시예에 따르면 클라이언트(2)로부터 전달받은 메시지를 발송하기 위한 처리와 메시지에 관한 정보를 상기 데이터베이스(10)에 저장하기 위한 처리를 구분하여 실행하되, 처리순서 및 리소스 할당량에 있어서 메시지 발송에 관한 처리를 데이터베이스 저장에 관한 처리에 우선하여 수행함으로써, 대량의 메시지를 동시에 발송하더라도 병목현상 및 지연을 최소화하여 신속하고 원활하게 메시지를 발송할 수 있다.
다시 도 2를 참조하면, 상기 발송 서버(30)는 제 3 메시지 큐(31) 및 발송부(32)를 포함할 수 있다.
상기 제 3 메시지 큐(31)는 상기 교환 서버(20)의 상기 메시지 쓰레드부(23)로부터 발신번호, 수신번호 및 메시지 내용을 포함하는 제 1 메시지 정보를 전달받아 저장할 수 있다. 본 발명의 일 실시예에 따르면, 상기 제 3 메시지 큐(31) 역시 FIFO 방식으로 동작하여 먼저 입력된 제 1 메시지 정보가 먼저 출력되어 처리되도록 구성될 수 있다.
도 4는 본 발명의 일 실시예에 따른 발송 서버(30)의 구성을 설명하기 위한 블록도이다.
도 4를 참조하면, 상기 발송부(32)는 제 3 메시지 큐 메시지 수신부(321) 및 메시지 발송부(322)를 포함할 수 있다.
상기 제 3 메시지 큐 메시지 수신부(321)는 상기 제 3 메시지 큐(31)로부터 제 1 메시지 정보를 불러올 수 있다. 그리고, 상기 메시지 발송부(322)는 상기 제 3 메시지 큐(31)로부터 불러온 제 1 메시지 정보를 통신사(3)로 전달하여 사용자(4)로 메시지를 발송하도록 처리할 수 있다.
도 5는 본 발명의 일 실시예에 따른 메시지 발송 시스템(1)이 클라이언트(2)로부터 메시지 발송 요청을 수신하여 사용자(4)에게 메시지를 발송하는 과정을 설명하기 위한 흐름도이다.
도 5를 참조하면, 상기 데이터베이스(10), 상기 교환 서버(20) 및 상기 발송 서버(30)를 포함하는 상기 메시지 발송 시스템(1)은 상기 교환 서버(20)가 클라이언트(2)로부터 메시지 발송 요청을 수신하는 단계(S110), 상기 교환 서버(20)가 메시지 발송 요청에 포함된 메시지 데이터를 제 1 메시지 큐(22)에 저장하는 단계(S120), 상기 교환 서버(20)가 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 불러와 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하여 상기 발송 서버(30)로 전달하는 단계(S150), 상기 발송 서버(30)가 상기 전달받은 메시지에 관한 정보를 상기 제 3 메시지 큐(31)에 저장하는 단계(S210), 상기 발송 서버(30)가 상기 교환 서버(20)로부터 전달받은 메시지에 관한 정보를 통신사(3)로 전달하는 단계(S220), 상기 교환 서버(20)가 상기 추출된 메시지에 관한 정보를 제 2 메시지 큐(24)에 저장하는 단계(S160), 및 상기 교환 서버(20)가 상기 제 2 메시지 큐(24)로부터 메시지에 관한 정보를 불러와 상기 데이터베이스(10)에 저장하는 단계(S170)를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 메시지 발송 방법은 상기 메시지 쓰레드부(23)가 상기 제 1 메시지 큐(22)로부터 메시지 데이터를 전달받아 해당 메시지 데이터로부터 메시지에 관한 정보를 추출하는 단계(S130)를 포함할 수 있다.
상기 메시지에 관한 정보를 추출하는 단계(S130)는 메시지 데이터로부터 메시지를 보내는 발신자의 발신번호, 메시지를 받는 수신자의 수신번호 및 메시지를 구성하는 메시지 내용을 추출하는 단계를 포함할 수 있다.
상기 메시지에 관한 정보를 상기 발송 서버(30)로 전달하는 단계(S150)는 상기 추출된 발신번호, 수신번호 및 메시지 내용을 포함하는 제 1 메시지 정보를 상기 발송 서버(30)로 전달하는 단계를 포함할 수 있다.
상기 추출된 메시지에 관한 정보를 제 2 메시지 큐(24)에 저장하는 단계(S160)는 상기 메시지 쓰레드부(23)가 메시지 데이터로부터 추출된 메시지 내용을 포함하는 제 2 메시지 정보를 상기 제 2 메시지 큐(24)로 전달하는 단계, 및 상기 메시지 저장 쓰레드부(25)가 상기 제 2 메시지 큐(24)로부터 전달받은 제 2 메시지 정보를 상기 데이터베이스(10)에 저장하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 메시지 발송 방법은 상기 메시지 쓰레드부(23)가 메시지 데이터로부터 추출된 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 상기 데이터베이스(10)에 저장하는 단계(S140)를 더 포함할 수 있다.
나아가, 상기 제 3 메시지 정보를 상기 데이터베이스(10)에 저장하는 단계(S140), 상기 제 1 메시지 정보를 상기 발송 서버(30)로 전달하는 단계(S150) 및 상기 제 2 메시지 정보를 상기 제 2 메시지 큐(24)에 저장하는 단계(S160)는 상기 메시지 쓰레드부(23)에 의해 서로 독립적으로 실행될 수 있다.
더 나아가, 상기 메시지 쓰레드부(23)는 상기 제 1 메시지 큐(22)로부터 전달받은 개별 메시지 데이터마다 상기 제 3 메시지 정보를 상기 데이터베이스(10)에 저장하는 단계(S140)를 먼저 실행한 뒤, 상기 제 1 메시지 정보를 상기 발송 서버(30)로 전달하는 단계(S150)를 실행하고, 그러고 나서 상기 제 2 메시지 정보를 상기 제 2 메시지 큐(24)에 저장하는 단계(S160)를 실행할 수 있다.
전술한 본 발명의 실시예에 따른 메시지 발송 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 상기 메시지 발송 방법은 컴퓨터와 결합되어 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
이상에서 실시예를 통해 본 발명을 설명하였으나, 위 실시예는 단지 본 발명의 사상을 설명하기 위한 것으로 이에 한정되지 않는다. 통상의 기술자는 전술한 실시예에 다양한 변형이 가해질 수 있음을 이해할 것이다. 본 발명의 범위는 첨부된 특허청구범위의 해석을 통해서만 정해진다.
1: 메시지 발송 시스템
2: 클라이언트
3: 통신사
4: 사용자
10: 데이터베이스
20: 교환 서버
21: 수신부
22: 제 1 메시지 큐
23: 메시지 쓰레드부
24: 제 2 메시지 큐
25: 메시지 저장 쓰레드부
30: 발송 서버
31: 제 3 메시지 큐
32: 발송부
2: 클라이언트
3: 통신사
4: 사용자
10: 데이터베이스
20: 교환 서버
21: 수신부
22: 제 1 메시지 큐
23: 메시지 쓰레드부
24: 제 2 메시지 큐
25: 메시지 저장 쓰레드부
30: 발송 서버
31: 제 3 메시지 큐
32: 발송부
Claims (11)
- 메시지에 관한 정보를 저장하는 데이터베이스;
상기 데이터베이스에 메시지에 관한 정보를 저장하기 전에 메시지 큐를 이용하여 메시지 발송을 위한 사전 처리를 실행하는 교환 서버; 및
상기 교환 서버에서 처리되어 전달받은 메시지를 발송하기 위해 메시지에 관한 정보를 통신사로 전달하는 발송 서버를 포함하고,
상기 교환 서버는:
클라이언트로부터 메시지 발송 요청을 수신하는 수신부;
상기 수신부로부터 메시지 발송 요청에 포함된 메시지 데이터를 입력받아 저장하는 제 1 메시지 큐;
상기 제 1 메시지 큐로부터 메시지 데이터를 전달받아 해당 메시지 데이터로부터 메시지에 관한 제 1 메시지 정보를 추출하여 상기 발송 서버로 전달하는 메시지 쓰레드부;
상기 메시지 쓰레드부로부터 상기 추출된 메시지에 관한 정보를 입력받아 저장하는 제 2 메시지 큐; 및
상기 제 2 메시지 큐로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스에 저장하는 메시지 저장 쓰레드부를 포함하고,
상기 메시지 쓰레드부는 메시지 데이터로부터 추출된 메시지 내용을 포함하는 제 2 메시지 정보를 상기 제 2 메시지 큐로 전달하고,
상기 메시지 저장 쓰레드부는:
상기 제 2 메시지 큐로부터 전달받은 제 2 메시지 정보를 상기 데이터베이스에 저장하고, 메시지 데이터로부터 추출된 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 상기 데이터베이스에 저장하고,
상기 메시지 쓰레드부는:
상기 발송 서버로 상기 제 1 메시지 정보를 전달하는 제 1 작업, 상기 제 2 메시지 큐로 상기 제 2 메시지 정보를 전달하는 제 2 작업 및 상기 데이터베이스로 상기 제 3 메시지 정보를 전달하는 제 3 작업을 서로 독립적으로 실행하는 메시지 발송 시스템. - 삭제
- 청구항 1에 있어서,
상기 메시지 쓰레드부는:
메시지 데이터로부터 메시지를 보내는 발신자의 발신번호, 메시지를 받는 수신자의 수신번호 및 메시지를 구성하는 메시지 내용을 추출하고,
상기 추출된 발신번호, 수신번호 및 메시지 내용을 포함하는 제 1 메시지 정보를 상기 발송 서버로 전달하는 메시지 발송 시스템. - 삭제
- 삭제
- 청구항 1에 있어서,
상기 데이터베이스는:
상기 제 2 및 제 3 메시지 정보를 상기 메시지 발송 요청에 고유한 키 값과 매칭시켜 저장하는 메시지 발송 시스템. - 삭제
- 청구항 1에 있어서,
상기 메시지 쓰레드부는:
상기 제 1 메시지 큐로부터 전달받은 개별 메시지 데이터마다 상기 제 3 작업을 먼저 실행한 뒤, 상기 제 1 작업을 실행하고, 그러고 나서 상기 제 2 작업을 실행하는 메시지 발송 시스템. - 청구항 1에 있어서,
상기 제 2 메시지 큐로부터 메시지에 관한 정보를 전달받아 상기 데이터베이스에 저장하는 작업에 할당된 상기 메시지 저장 쓰레드부의 개수는, 상기 제 1 메시지 큐로부터 메시지 데이터를 전달받아 메시지에 관한 정보를 추출하고 상기 발송 서버로 전달하는 작업에 할당된 상기 메시지 쓰레드부의 개수보다 적게 설정된 메시지 발송 시스템. - 데이터베이스, 교환 서버 및 발송 서버를 포함하는 메시지 발송 시스템이 메시지를 발송하는 방법에 있어서,
상기 교환 서버가 클라이언트로부터 메시지 발송 요청을 수신하는 단계;
상기 교환 서버가 메시지 발송 요청에 포함된 메시지 데이터를 제 1 메시지 큐에 저장하는 단계;
상기 교환 서버의 메시지 쓰레드부가 상기 제 1 메시지 큐로부터 메시지 데이터를 불러와 해당 메시지 데이터로부터 메시지에 관한 제 1 메시지 정보를 추출하여 상기 발송 서버로 전달하는 단계;
상기 발송 서버가 상기 교환 서버로부터 전달받은 메시지에 관한 정보를 통신사로 전달하는 단계;
상기 메시지 쓰레드부가 메시지 데이터로부터 추출된 메시지 내용을 포함하는 제 2 메시지 정보를 상기 제 2 메시지 큐로 전달하는 단계;
상기 교환 서버가 상기 추출된 메시지에 관한 제 2 메시지 정보를 상기 제 2 메시지 큐에 저장하는 단계;
상기 교환 서버의 메시지 저장 쓰레드부가 상기 제 2 메시지 큐로부터 메시지에 관한 제 2 메시지 정보를 불러와 상기 데이터베이스에 저장하는 단계; 및
상기 메시지 저장 쓰레드부가 메시지 데이터로부터 추출된 발신번호 및 수신번호를 포함하는 제 3 메시지 정보를 상기 데이터베이스에 저장하는 단계를 포함하고,
상기 메시지 쓰레드부는 상기 발송 서버로 상기 제 1 메시지 정보를 전달하는 제 1 작업, 상기 제 2 메시지 큐로 상기 제 2 메시지 정보를 전달하는 제 2 작업 및 상기 데이터베이스로 상기 제 3 메시지 정보를 전달하는 제 3 작업을 서로 독립적으로 실행하는 메시지 발송 방법. - 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
청구항 10에 따른 메시지 발송 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190179183A KR102156298B1 (ko) | 2019-12-31 | 2019-12-31 | 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190179183A KR102156298B1 (ko) | 2019-12-31 | 2019-12-31 | 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102156298B1 true KR102156298B1 (ko) | 2020-09-15 |
Family
ID=72469847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190179183A KR102156298B1 (ko) | 2019-12-31 | 2019-12-31 | 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102156298B1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040061225A (ko) * | 2002-12-30 | 2004-07-07 | 엘지전자 주식회사 | 멀티미디어 메시지 서비스 방법 및 시스템 |
KR20070000752A (ko) * | 2005-06-28 | 2007-01-03 | 에스케이 텔레콤주식회사 | 이동전화 교환국에서의 단문메시지 유실 방지 방법 |
KR20110079235A (ko) * | 2009-12-31 | 2011-07-07 | 주식회사 네이블커뮤니케이션즈 | 그룹 메시지 서비스 방법 |
KR101479987B1 (ko) * | 2013-05-30 | 2015-01-12 | (주)유씨알엠 | 스마트폰을 이용한 무료 문자메시지 발송 시스템 |
KR20160010232A (ko) * | 2014-07-19 | 2016-01-27 | 김학권 | 문자 메시지 대량 전송방법 |
-
2019
- 2019-12-31 KR KR1020190179183A patent/KR102156298B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040061225A (ko) * | 2002-12-30 | 2004-07-07 | 엘지전자 주식회사 | 멀티미디어 메시지 서비스 방법 및 시스템 |
KR20070000752A (ko) * | 2005-06-28 | 2007-01-03 | 에스케이 텔레콤주식회사 | 이동전화 교환국에서의 단문메시지 유실 방지 방법 |
KR20110079235A (ko) * | 2009-12-31 | 2011-07-07 | 주식회사 네이블커뮤니케이션즈 | 그룹 메시지 서비스 방법 |
KR101479987B1 (ko) * | 2013-05-30 | 2015-01-12 | (주)유씨알엠 | 스마트폰을 이용한 무료 문자메시지 발송 시스템 |
KR20160010232A (ko) * | 2014-07-19 | 2016-01-27 | 김학권 | 문자 메시지 대량 전송방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290555B2 (en) | Push notification delivery system | |
US8028085B2 (en) | Optimizing message transmission and delivery in a publisher-subscriber model | |
JP4144897B2 (ja) | 共通作業キュー環境における最適格サーバ | |
US20120254221A1 (en) | Systems and methods for performing record actions in a multi-tenant database and application system | |
CN102932472B (zh) | 一种数据处理方法以及通信系统 | |
US20140317504A1 (en) | Method, device and system for pushing information | |
US20090287761A1 (en) | Cached message distribution via http redirects | |
US20110201314A1 (en) | Methods, systems, and computer readable media for tokenization of multimedia messages | |
US20130060871A1 (en) | Systems and Methods for Performing Live Chat Functionality Via a Mobile Device | |
US9900837B2 (en) | Multi-channel communications for sending push notifications to mobile devices | |
US8719357B2 (en) | Method and apparatus for managing message | |
US11799807B2 (en) | Mail processing method and apparatus, device and medium | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
US10013293B2 (en) | Queueing messages related by affinity set | |
US8914436B2 (en) | Data processing device and data retriever | |
US11102139B1 (en) | Shared queue management utilizing shuffle sharding | |
CN111478781A (zh) | 一种消息广播的方法和装置 | |
CN113765871B (zh) | 堡垒机管理的方法和装置 | |
KR102156298B1 (ko) | 메시지 큐 및 데이터베이스 후처리를 이용한 메시지 발송 시스템 및 방법 | |
US20090280781A1 (en) | Method and device for storing and transmitting messages | |
CN111200650B (zh) | 数据传输方法、装置、系统、设备及介质 | |
KR102184004B1 (ko) | 발송 그룹 단위 병렬 처리가 가능한 메시지 발송 시스템 및 방법 | |
US20220210241A1 (en) | Reduction of data transmissions based on end-user context | |
KR102134552B1 (ko) | 분리 과금 가능한 메시지 발송 시스템 및 방법 | |
US20240320056A1 (en) | Dynamic computing platform for real-time data container generation, authorization, and throttling management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |