KR101010911B1 - 메시징 네트워크 시스템의 메시지 송수신 방법 - Google Patents

메시징 네트워크 시스템의 메시지 송수신 방법 Download PDF

Info

Publication number
KR101010911B1
KR101010911B1 KR20080138601A KR20080138601A KR101010911B1 KR 101010911 B1 KR101010911 B1 KR 101010911B1 KR 20080138601 A KR20080138601 A KR 20080138601A KR 20080138601 A KR20080138601 A KR 20080138601A KR 101010911 B1 KR101010911 B1 KR 101010911B1
Authority
KR
South Korea
Prior art keywords
messaging
message
application server
server
servers
Prior art date
Application number
KR20080138601A
Other languages
English (en)
Other versions
KR20100079989A (ko
Inventor
한규흥
조정래
정경교
Original Assignee
엔에이치엔(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔(주) filed Critical 엔에이치엔(주)
Priority to KR20080138601A priority Critical patent/KR101010911B1/ko
Priority to JP2009289093A priority patent/JP5758572B2/ja
Publication of KR20100079989A publication Critical patent/KR20100079989A/ko
Application granted granted Critical
Publication of KR101010911B1 publication Critical patent/KR101010911B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/04Scheduled access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

메시징 네트워크 시스템에서 메시지를 송/수신하는 방법이 제공된다. 메시징 네트워크 시스템은, 복수의 제 1 어플리케이션 서버, 상기 제 1 어플리케이션 서버로부터 메시지를 수신하거나 메시지를 송신하는 복수의 제 2 어플리케이션 서버 및 상기 제 1 어플리케이션 서버 및 상기 제 2 어플리케이션 서버 모두와 각각 연결된 메시징 서버를 포함하되, 상기 제 1 어플리케이션 서버와 제 2 어플리케이션 서버는 상기 메시징 서버를 라운드로빈 방식으로 선택한다.
메시징 서버, 메시지, 커넥터, 네트워크

Description

메시징 네트워크 시스템의 메시지 송수신 방법{METHOD FOR SENDING AND RECEIVING MESSAGE IN MESSAGE NETWORK SYSTEM}
메시징 네트워크 시스템에 관한 것으로서, 보다 상세하게는, 메시징 네트워크 시스템에서 메시지를 송/수신하는 방법에 관한 것이다.
도 1은 종래 기술에 따른 메시징 네트워크 시스템의 연결 구조를 도시한 도면이다.
도 1에 도시된 바와 같이, 종래 기술에 따른 메시징 네트워크 시스템(10)은 다수의 제 1 어플리케이션 서버(11), 다수의 제 2 어플리케이션 서버(12) 및 1 이상의 메시징 서버(13)를 포함한다.
제 1 어플리케이션 서버(11) 및 제 2 어플리케이션 서버(12)는 각각 통신 가능한 터미널 노드(Terminal Node)로서, 예를 들어, 게임 서버, 게임 서버와 연결되는 로그인 서버, 랭킹 서버, 데이터베이스 서버, 채널리스트 서버, 공지 서버 등으로 구현될 수 있다.
제 1 어플리케이션 서버(11) 및 제 2 어플리케이션 서버(12)는 메시징 네트 워크를 구성하는 메시징 서버(13)들 중 하나에 연결된다.
메시징 서버(13)는 제 1 어플리케이션 서버(11) 및 제 2 어플리케이션 서버(12) 사이의 메시지 송/수신을 수행하며, 서로 메시(mesh) 구조로 연결된 메시징 네트워크를 구성하고 있다. 예를 들어, 제 1 어플리케이션 서버(11-a)는 하나의 메시징 서버(13-1)에만 연결되어 있기 때문에, 메시지를 수신하려는 제 2 어플리케이션 서버(12-A)가 다른 메시징 서버(13-3)에 연결되어 있는 경우에는 그 메시징 서버(13-2)로 메시지를 전달해주는 방식으로 동작한다.
또한, 메시징 서버(13)는 메시지 큐(Message Queue; MQ) 방식 즉, 제 1 어플리케이션 서버(11)가 송신한 메시지를 메시징 서버(13)에서 저장해 두었다가 요청하는 제 2 어플리케이션 서버(12)로 전달해주는 방식으로 동작한다
그러나, 상술한 바와 같은 종래의 메시징 네트워크 시스템에 따르면, 메시징 서버가 메시지 큐(MQ)에 메시지를 저장해 두고 요청하는 어플리케이션 서버로 전달하는 방식을 사용하기 때문에, 빠른 사용자 응답 시간이 필요한 인터넷 서비스에서 전달 지연 시간이 존재한다는 문제점이 있다.
또한, 종래 기술에 따른 메시징 네트워크 시스템에 따르면, 통신 대상이 되는 어플리케이션 서버의 위치에 따라 전달 지연 시간의 변동이 심하여 일관된 사용자 응답시간을 기대할 수 없다는 문제점이 있다.
또한, 종래 기술에 따른 메시징 네트워크 시스템에 따르면, 임의의 어플리케이션 서버가 다량의 메시지를 생산하는 경우 해당 어플리케이션 서버가 연결된 메시징 서버에 과부하가 발생하게 되는데, 다른 메시징 서버가 충분이 그 부하를 감 당할 여력이 되어도 효과적으로 부하를 분산시킬 수가 없기 때문에, 과부하가 발생한 메시징 서버에 연결된 모든 어플리케이션 서버들의 성능 저하가 발생하는 문제점이 있다.
또한, 종래 기술에 따른 메시징 네트워크 시스템에 따르면, 수신 대상이 되는 어플리케이션 서버가 그룹인 경우 메시징 서버는 그 그룹에 속한 임의의 어플리케이션 서버로 메시지를 전송하는데, 어플리케이션 서버가 연결된 메시징 서버에 따라 트래픽이 집중되는 현상이 발생한다는 문제점이 있다.
또한, 종래 기술에 따른 메시징 네트워크 시스템에 따르면, 메시징 서버가 메시 구조로 연결되어 있기 때문에 효과적인 메시지 전달을 위해 모든 어플리케이션이 어느 메시징 서버에 연결되어 있는지를 알아야 하며, 이를 위해 각 메시징 서버는 자신에게 연결된 어플리케이션 목록을 다른 메시징 서버와 교환해야 한다. 이러한 오버헤드는 메시징 서버 수가 증가됨에 따라 더 늘어나게 되어, 대량의 트래픽을 지원해야 하는 서비스의 경우 아무리 메시징 서버를 추가하여도 원하는 성능을 기대할 수 없다는 문제점이 있다.
또한, 종래 기술에 따른 메시징 네트워크 시스템에 따르면, 임의의 메시징 서버에 장애가 발생하면 그 메시징 서버에 연결된 모든 어플리케이션 서버에 장애가 발생하게 되며, 이러한 장애는 그 어플리케이션 서버가 다른 메시징 서버를 찾아 접속하고, 접속 정보가 다른 모든 메시징 서버로 전파될 때까지 계속된다는 문제점이 있다.
본 발명의 일 실시예는 어플리케이션 서버 간에 필요한 홉 수를 최소로 하고 메시지 큐(MQ)를 없앰으로써 어플리케이션 서버 간의 전송 지연 시간을 최소화할 수 있어 인터넷 서비스 사용자로 하여금 빠른 사용자 응답 시간이 가능한 메시징 네트워크 시스템을 제공한다.
또한, 본 발명의 일 실시예는 메시징 서버 간에 교환하는 정보가 없기 때문에 메시징 서버 수에 따른 오버헤드가 발생하지 않으므로 메시징 서버를 추가한 만큼 전체 메시징 네트워크의 성능이 일정하게 증가할 수 있는 메시징 네트워크 시스템을 제공한다.
또한, 본 발명의 일 실시예는 어플리케이션 서버가 송신하는 메시지는 각 메시징 서버로 골고루 분산되므로 메시징 서버 간의 부하 분산이 효과적으로 이루어질 수 있는 메시징 네트워크 시스템을 제공한다.
또한, 본 발명의 일 실시예는 메시징 네트워크 상의 각 어플리케이션 서버는 모든 메시징 서버에 연결되어 있기 때문에 한 메시징 서버에 장애가 발생하더라도 즉각 다른 메시징 서버를 통해 메시지를 주고 받을 수 있는 메시징 네트워크 시스템을 제공한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측 면은 메시징 네트워크 시스템에 있어서, 복수의 제 1 어플리케이션 서버, 상기 제 1 어플리케이션 서버로부터 메시지를 수신하거나 메시지를 송신하는 복수의 제 2 어플리케이션 서버 및 상기 제 1 어플리케이션 서버 및 상기 제 2 어플리케이션 서버 모두와 각각 연결된 메시징 서버를 포함하되, 상기 제 1 어플리케이션 서버와 제 2 어플리케이션 서버는 상기 메시징 서버를 라운드로빈 방식으로 선택하는 것인 메시징 네트워크 시스템을 제공한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 2 측면은 메시징 네트워크 시스템의 메시지 송/수신 방법에 있어서, 복수의 제 1 어플리케이션 서버와 메시징 네트워크 상의 모든 메시징 서버 간의 연결을 설정하는 단계, 복수의 제 2 어플리케이션 서버와 메시징 네트워크 상의 모든 메시징 서버 간의 연결을 설정하는 단계, 상기 제 1 어플리케이션 서버로부터의 서비스 요청 메시지를 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 선택하여 전송하는 단계 및 상기 서비스 요청 메시지에 대응하는 상기 제 2 어플리케이션 서버의 응답 메시지를 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 선택하여 전송하는 단계를 포함하는 메시징 네트워크 시스템의 메시지 송/수신 방법을 제공한다.
전술한 본 발명의 과제 해결 수단 중 하나에 의하면, 어플리케이션 서버 간에 필요한 홉 수를 최소로 하고 메시지 큐(MQ)를 없앰으로써 어플리케이션 서버 간 의 전송 지연 시간을 최소화할 수 있어 인터넷 서비스 사용자로 하여금 빠른 사용자 응답 시간을 기대할 수 있다.
또한, 본 발명의 다른 과제 해결 수단 중 하나에 의하면, 메시징 서버 간에 교환하는 정보가 없기 때문에 메시징 서버 수에 따른 오버헤드가 발생하지 않으므로 메시징 서버를 추가한 만큼 전체 메시징 네트워크의 성능이 일정하게 증가한다.
또한, 본 발명의 또 다른 과제 해결 수단 중 하나에 의하면, 어플리케이션 서버가 송신하는 메시지는 각 메시징 서버로 골고루 분산되므로 메시징 서버 간의 부하 분산이 효과적으로 이루어질 수 있다.
또한, 본 발명의 또 다른 과제 해결 수단 중 하나에 의하면, 메시징 서버가 전달하는 메시지도 수신 그룹에 포함되어 있는 각 어플리케이션 서버에 골고루 분배되므로 어플리케이션 서버 간의 부하 분산도 효과적으로 이루어질 수 있다.
또한, 본 발명의 또 다른 과제 해결 수단 중 하나에 의하면, 메시징 네트워크 상의 각 어플리케이션 서버는 모든 메시징 서버에 연결되어 있기 때문에 한 메시징 서버에 장애가 발생하더라도 즉각 다른 메시징 서버를 통해 메시지를 주고 받을 수 있어 서비스에는 전혀 영향을 주지 않는다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하 는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에는 도 2 내지 도 9를 참조하여, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템에서 메시지를 송/수신하는 방법을 설명한다.
도 2는 본 발명의 일 실시예에 따른 메시징 네트워크의 개념을 설명하기 위한 도면이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 메시징 네트워크는 가상적으로 하나의 메시징 버스를 제공하며, 메시징 네트워크 상의 어플리케이션 서버(100)는 이 메시징 버스를 공유하여 같은 네트워크에 연결된 다른 어플리케이션 서버와 통신할 수 있게 된다.
도 3은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 연결 구조를 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템(1000)은 다수의 제 1 어플리케이션 서버(100), 다수의 제 2 어플리케이션 서 버(200) 및 1 이상의 메시징 서버(300)를 포함한다.
제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)는 통신 가능한 터미널 노드(Terminal node)로서, 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)의 각각은 메시징 네트워크 상의 모든 메시징 서버(300)와 연결된다. 즉, 제 1 어플리케이션 서버(100-a)는 메시징 서버(310) 및 메시징 서버(320)과 각각 연결되고, 제 2 어플리케이션 서버(200-A)도 메시징 서버(310) 및 메시징 서버(320)과 각각 연결된다.
메시징 서버(300)는 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200) 간의 메시지 전송을 수행하며, 효율적인 메시지 전송을 위해 전송 경로를 설정하거나 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200) 간의 연결 관계를 설정한다.
전술한 구성에서, 메시징 네트워크 상의 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)의 각각은 모든 메시징 서버(300)에 연결되는 중복된 스타 구조로 되어 있으며, 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)는 메시징 서버(300)를 라운드로빈 방식으로 선택한다. 이에 대한 자세한 설명은 후술하기로 한다.
상술한 바와 같은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템(1000)은 메시징 네트워크 상의 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)의 각각이 모든 메시징 서버(300)에 연결되는 중복된 스타 구조로 되어 있으므로, 어느 메시징 서버를 통하더라도 원하는 어플리케이션 서버로 접근 할 수 있다. 따라서, 임의의 메시징 서버에 장애가 발생하더라도 전체 메시징 네트워크는 정상적으로 운영될 수 있다.
또한, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템(1000)은 메시징 네트워크 상의 각 메시징 서버는 모든 어플리케이션 서버와 직접 연결되어 있기 때문에 어플리케이션 서버 간의 메시지 중개를 위한 모든 정보를 자체적으로 저장하고 있다. 이로 인해 메시징 서버 간에 공유 정보를 싱크하기 위한 작업이 필요하지 않으므로, 메시징 서버를 추가함으로써 발생할 수 있는 운영 상의 부하 분산도 효과적으로 이루어질 수 있으며, 메시징 서버 간에 교환하는 정보가 없기 때문에 메시징 서버 수에 따른 오버헤드가 발생하지 않으므로 메시징 서버를 추가한 만큼 전체 메시징 네트워크의 성능이 일정하게 증가한다.
도 4는 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 세부 구성도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)는 각각 제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)를 포함하고, 메시징 서버(310)는 필터 관리 모듈(311), 필터(312), 필터(313) 및 채널 관리 모듈(314)을 포함하여 이루어진다.
제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)는 각각 제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)를 이용하여 메시징 서버(310)에 연결되어 외부로부터의 서비스 요청 메시지를 송/수신한다.
제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)는 메시징 네트워크 상 의 다른 어플리케이션 서버와의 통신을 제공하며, 가상 소켓을 지원한다.
제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)는 각각 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)의 요청에 따라, 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)를 메시징 네트워크 상의 모든 메시징 서버와 연결한다. 여기서, 제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)는 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)와 임의의 메시징 서버 사이의 연결이 일시적으로 종료된 경우에 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)에 통보하는 일 없이 자동으로 연결을 복구할 수 있으며, 이때, 연결 복구 과정에서의 메시지 송/수신은 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)가 메시징 네트워크 상의 모든 메시징 서버와 연결되기 때문에, 다른 메시징 서버를 통해서 정상적으로 처리할 수 있다.
또한, 제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)는 제 1 어플리케이션 서버(100) 및 제 2 어플리케이션 서버(200)로부터 요청된 메시지 전송이 불가능한 경우에, 이에 대한 알림 기능을 제공한다. 이때, 메시지 전송이 불가능한 경우로는, 대상 어플리케이션 서버가 메시징 네트워크에 연결되어 있지 않는 경우, 메시징 네트워크로의 연결 복구가 불가능 한 경우, 메시징 네트워크의 구성 상 대상 어플리케이션 서버로의 전달이 불가능한 경우, Session 전송 방식인 경우 및 메시지 전송 시 미리 지정된 타임아웃(Timeout)이 초과될 때까지 전송이 완료되지 않은 경우 등을 포함할 수 있다.
지금까지는 제 1 메시지 커넥터(110) 및 제 2 메시지 커넥터(210)가 제 1 어 플리케이션 서버(100) 및 제 2 어플리케이션 서버(200) 내에 존재하는 것을 예로 들어 설명하였지만, 이는 단지 예를 들어 설명하기 위한 것일 뿐, 이에 한정되는 것이 아니며, 각각을 메시징 네트워크 상의 별개의 모듈로 구현할 수도 있다.
한편, 본 발명의 일 실시예에 따른 메시징 서버(310)는 필터 관리 모듈(311), 필터(312) 및 채널 관리 모듈(313)을 포함하여 이루어진다.
필터 관리 모듈(311)은 ACL 필터(312) 및 Etc 필터(313)를 관리한다. 즉, 필터 관리 모듈(311)은 메시징 서버(310)가 수신하는 모든 메시지에 대해 ACL 필터(312) 및 Etc 필터(313)를 적용하며, ACL 필터(312) 및 Etc 필터(313)의 적용 후에 메시지의 허용/금지 여부를 판단하여 허용된 메시지만 대상 어플리케이션 서버로 송신한다. 이때, 필터 관리 모듈(311)은 금지된 메시지에 대해서는 필터의 설정에 따라 송신 어플리케이션 서버로 NAK 메시지를 발송할 수 있다.
ACL 필터(312)는 각 메시지의 송/수신자 정보를 확인하여 권한 있는 어플리케이션 서버가 보낸 메시지인지를 검사한다. ACL 필터(312)는 적용되는 ACL 레벨에 따라 도메인 레벨과 메소드 레벨의 2가지 방식이 지원될 수 있다.
ACL 필터(312)가 도메인 레벨 방식인 경우에는 메시지의 송/수신자의 주소에서 도메인 아이디(Domain-ID)를 확인하여 허용된 도메인의 어플리케이션 서버가 보낸 메시지인지를 검사한다. 이때, 도메인 레벨의 ACL 검사를 위해 ACL 필터는 각 도메인의 어플리케이션 서버에 허용 또는 금지된 상태의 도메인 목록을 관리한다.
ACL 필터(312)가 메소드 레벨 방식인 경우에는 도메인 레벨 방식의 ACL 필터가 수행하는 검사와 함께 메시지의 페이로드(Payload) 부분을 조사하여 허용된 커 맨드의 메시지인지를 추가로 검사한다.
표 1은 본 발명의 일 실시예에 따른 ACL 필터의 설정에 필요한 정보의 일 예이다.
[표 1]
Figure 112008091105266-pat00001
도 5는 본 발명의 일 실시예에 따른 메시지 전송 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 어플리케이션 서버(A) 및 어플리케이션 서버(B) 사이에 전송되는 메시지는 바이너리 데이터(Binary data) 형태의 메시지를 사용하며, 최대 메시지 크기는 4GB이지만 64KB보다 큰 메시지는 64KB 이내의 작은 단위로 나누어져 전송될 수 있다.
메시지의 전송 시간은 메시지 전체를 송신 및 수신하는 시간과 메시지가 한 노드에서 다른 노드로 전달되는 시간의 합이다. 보통 인터넷 데이터 센터(IDC) 내의 한 노드에서 다른 노드로 전달되는데 걸리는 지연 시간은 예를 들어, 1ms 이내이지만, 메시지 자체를 송/수신하는 시간은 메시지의 크기에 비례한다. 예를 들어, 1MB 메시지의 경우 100Mbps 네트워크를 가정하면 메시지의 전송 시간은 80ms가 된다.
더욱이, 메시지를 릴레이하는 서버, 즉, 메시징 서버(310)가 중간에 존재하는 경우에 메시지의 크기가 커지면 송/수신 시간이 2배로 늘어나지만, 메시지를 작은 단위로 나누어 전송하면 항상 그 작은 단위만큼의 전송시간만 더 소요된다.
도 6은 본 발명의 일 실시예에 따른 어플리케이션 서버에 부여되는 주소 체계를 설명하기 위한 도면이다.
도 6에 도시한 바와 같이, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템(1000)은 각 어플리케이션 서버에 대해 소정의 주소(Address)가 부여되며, 각 어플리케이션 서버는 이 주소를 이용하여 다른 어플리케이션 서버와 통신할 수 있다.
주소 정보는 도메인 아이디(Domain-ID), 아이디씨 아이디(IDC-ID), 서버 아이디(Server-ID) 및 소켓 아이디(Socket-ID)를 포함한다.
도메인 아이디(Domain-ID)는 동일한 기능을 수행하는 어플리케이션 서버들을 지정하는데 사용되며, 애니캐스트(Anycast)와 멀티캐스트(Multicast) 메시지는 보통 도메인 아이디(Domain-ID)를 기준으로 전송한다.
아이디씨 아이디(IDC-ID)는 어플리케이션 서버가 속한 IDC(Internet Data Center)를 구분하기 위해 사용되며, 아이디씨 아이디(IDC-ID) 값이 0이면 임의의 IDC로 메시지가 전송되며, 그 외의 값이면 해당 IDC로 메시지가 전송된다.
서버 아이디(Server-ID)는어플리케이션 서버를 구별하기 위해 사용되며, 도메인 아이디(Domain-ID), 아이디씨 아이디(IDC-ID)와 결합하여 고유 ID가 된다. 메시징 네트워크 상의 모든 어플리케이션 서버는 각각의 서버 아이디(Server-ID)를 가진다. 예를 들어, 서버 아이디(Server-ID) 값이 0이면 애니캐스트(Anycast)로 해당 도메인(Domain)에 속한 임의의 어플리케이션 서버로 메시지가 전송되며, 서버 아이디(Server-ID) 값이 0xFFFF이면 멀티캐스트(Multicast)로 해당 도메인(Domain)에 속한 모든 어플리케이션 서버로 메시지가 전송된다.
소켓 아이디(Socket-ID)는 하나의 어플리케이션 서버 내에서 여러 개의 통신 채널을 사용하고자 하는 경우에 각 채널을 구별하기 위해 사용된다.
도 7은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 부하 분산 방법을 설명하기 위한 도면이다.
도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템은 특정 도메인(Domain)으로 애니캐스트(Anycast) 메시지를 전송할 때, 그 도메인 내에서 수신 대상이 될 어플리케이션 서버를 적절하게 분산하여 선택한다. 즉, 메시징 서버는 라운드로빈(Round-Robin) 방식으로 해당 도메인에 속한 어플리케이션 서버들에게 순서대로 돌아가면서 메시지를 전송한다.
예를 들어, 어플리케이션 서버(A)가 도메인 101로 보낸 3개의 애니캐스트 메시지는 도메인 101에 속해 있는 어플리케이션 서버(B, C, D)에 각각 하나씩 전달된다.
상술한 바와 같은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템은 메시징 서버가 전달하는 메시지를 수신 그룹에 포함되어 있는 각 어플리케이션 서버에 골고루 분배하므로 어플리케이션 서버 간의 부하 분산이 효과적으로 이루어질 수 있다.
도 8은 본 발명의 일 실시예에 따른 다중 IDC를 지원하는 메시징 네트워크 시스템을 설명하기 위한 도면이다.
도 8에 도시한 바와 같이, 본 발명의 일 실시예에 따른 메시징 네트워크 시스템은 메시징 서버가 여러 IDC에 분산 설치되어 동작할 수 있으며, 이때, 각 메시지 커넥터는 기본적으로 같은 IDC에 속한 메시징 서버로 메시지를 전송함으로써 IDC 간의 불필요한 통신 부하가 발생하는 것을 방지한다. 한편, 같은 IDC에 속한 모든 메시징 서버가 장애나 기타 사유로 통신이 불가능한 경우에는 타 IDC에 속한 메시징 서버로 메시지를 송신할 수 있다.
도 9는 본 발명의 일 실시예에 따른 메시지의 송/수신 방법을 설명하기 위한 흐름도이다.
단계(S11)에서 제 1 어플리케이션 서버(100)는 연결을 원하는 제 2 어플리케이션 서버(200)로의 연결 요청 메시지를 제 1 메시지 커넥터(110)로 전달하고, 단계(S12)에서 제 1 메시지 커넥터(110)는 메시징 네트워크 상의 모든 메시징 서버(300)와 제 1 어플리케이션 서버(100) 사이에 가상 연결을 설정한다.
단계(S13)에서 제 1 메시지 커넥터(110)는 제 1 어플리케이션 서버(100)와 연결된 모든 메시징 서버(300)를 대상으로 제 1 어플리케이션 서버(100)로부터의 연결 요청 메시지를 라운드로빈 방식으로 선택하여 전송한다.
단계(S14)에서 메시징 서버(300)는 제 1 메시지 커넥터(110)로부터 수신한 제 1 어플리케이션 서버(100)의 연결 요청 메시지에 포함된 목적지 정보를 확인한 다음, 단계(S15)에서 메시징 서버(310,320)는 해당하는 제 2 메시지 커넥터(210)로 메시지를 전송한다.
단계(S16)에서 제 2 메시지 커넥터(210)는 제 2 어플리케이션 서버(200)로 메시지를 전송한다.
제 1 어플리케이션 서버(100)의 서비스 요청 메시지가 수신되면, 단계(S17)에서 제 2 어플리케이션 서버(200)는 응답 메시지를 제 2 메시지 커넥터(210)로 전달하고, 단계(S18)에서 제 2 메시지 커넥터(210)는 메시징 네트워크 상의 모든 메시징 서버(300)와 제 2 어플리케이션 서버(200) 사이에 가상의 연결을 설정한다.
단계(S19)에서 제 2 메시지 커넥터(210)는 제 2 어플리케이션 서버(200)와 연결된 모든 메시징 서버(300)를 대상으로 제 2 어플리케이션 서버(200)로부터의 연결 요청 메시지를 라운드로빈 방식으로 선택하여 전송한다.
단계(S20)에서 메시징 서버(300)는 제 2 메시지 커넥터(210)로부터 수신한 제 2 어플리케이션 서버(200)의 연결 요청 메시지에 포함된 목적지 정보를 확인하고, 단계(S21)에서 메시징 서버(300)는 제 1 메시지 커넥터(110)로 메시지를 전송한다.
마지막으로, 단계(S22)에서 제 1 메시지 커넥터(110)는 제 1 어플리케이션 서버(100)로 제 2 어플리케이션 서버(200)의 응답 메시지를 전송한다.
전술한 구성에서, 시스템 장애 등으로 인해 제 1 어플리케이션 서버(100)와 연결된 메시징 서버(300) 중 제 1 메시징 서버(310)가 비정상적으로 종료되면, 제 1 메시지 커넥터(110)는 제 1 메시징 서버(310)와의 연결을 자동으로 복구하며, 이때, 연결 복구 과정에서의 메시지 송/수신은 제 1 어플리케이션 서버(100)와 연결 된 다른 메시징 서버, 즉, 제 2 메시징 서버(320)와의 연결을 수행한다. 이는 각 어플리케이션 서버가 메시징 네트워크 상의 모든 메시징 서버와 연결되어 있기 때문에, 다른 메시징 서버를 통해서 정상적으로 처리할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들 도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래 기술에 따른 메시징 네트워크 시스템의 연결 구조를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메시징 네트워크의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 연결 구조를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 세부 구성도이다.
도 5는 본 발명의 일 실시예에 따른 메시지 전송 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 어플리케이션 서버에 부여되는 주소 체계를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 메시징 네트워크 시스템의 부하 분산 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 다중 IDC를 지원하는 메시징 네트워크 시스템을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 메시지의 송/수신 방법을 설명하기 위한 흐름도이다.

Claims (9)

  1. 메시징 네트워크 시스템에 있어서,
    복수의 제 1 어플리케이션 서버,
    상기 제 1 어플리케이션 서버로부터 메시지를 수신하거나 메시지를 송신하는 복수의 제 2 어플리케이션 서버 및
    상기 제 1 어플리케이션 서버 및 상기 제 2 어플리케이션 서버 모두와 각각 연결된 메시징 서버
    를 포함하되,
    상기 제 1 어플리케이션 서버와 제 2 어플리케이션 서버는 상기 메시징 서버를 라운드로빈 방식으로 선택하는 것인 메시징 네트워크 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 어플리케이션 서버는 외부로부터의 서비스 요청 메시지를 수신하여 상기 메시징 서버로 전송하는 제 1 메시지 커넥터를 포함하되,
    상기 제 1 메시지 커넥터는, 상기 서비스 요청 메시지를 상기 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 전송하는 것인 메시징 네트워크 시스템.
  3. 제 2 항에 있어서,
    상기 제 2 어플리케이션 서버는 상기 제 1 어플리케이션 서버로부터의 서비스 요청 메시지에 대응하는 응답 메시지를 상기 메시징 서버로 전송하는 제 2 메시지 커넥터를 포함하되,
    상기 제 2 메시지 커넥터는 상기 응답 메시지를 상기 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 전송하는 것인 메시징 네트워크 시스템.
  4. 제 3 항에 있어서,
    상기 메시징 서버는,
    상기 제 1 어플리케이션 서버로부터 수신한 모든 메시지에 대해, 허용 또는 금지 여부를 판단하여 허용된 메시지만 상기 제 2 어플리케이션 서버로 전송하도록 메시지 필터를 제어하는 필터 관리 모듈
    을 포함하는 것인 메시징 네트워크 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 메시지 커넥터 및 제 2 메시지 커넥터는, 상기 메시징 네트워크 상의 메시징 서버 중 하나의 메시징 서버와의 연결이 비정상적으로 종료된 경우에 상기 제 1 어플리케이션 서버 및 제 2 어플리케이션 서버 사이의 메시지 송/수신을 상기 메시징 네트워크 상의 다른 메시징 서버를 통해 수행하는 것인 메시징 네트워크 시스템.
  6. 메시징 네트워크 시스템의 메시지 송/수신 방법에 있어서,
    복수의 제 1 어플리케이션 서버와 메시징 네트워크 상의 모든 메시징 서버 간의 연결을 설정하는 단계,
    복수의 제 2 어플리케이션 서버와 메시징 네트워크 상의 상기 모든 메시징 서버 간의 연결을 설정하는 단계,
    상기 제 1 어플리케이션 서버로부터의 서비스 요청 메시지를 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 선택하여 전송하는 단계 및
    상기 서비스 요청 메시지에 대응하는 상기 제 2 어플리케이션 서버의 응답 메시지를 메시징 네트워크 상의 모든 메시징 서버를 대상으로 라운드로빈 방식으로 선택하여 전송하는 단계
    를 포함하는 메시징 네트워크 시스템의 메시지 송/수신 방법.
  7. 제 6 항에 있어서,
    상기 제 1 어플리케이션 서버로부터 수신한 메시지에 포함된 목적지 정보에 기초하여, 상기 수신한 메시지를 상기 제 2 어플리케이션 서버로 전송하는 단계
    를 더 포함하는 메시징 네트워크 시스템의 메시지 송/수신 방법.
  8. 제 6 항에 있어서,
    상기 메시징 네트워크 상의 메시징 서버 중 하나의 메시징 서버와의 연결이 비정상적으로 종료된 경우에 상기 제 1 어플리케이션 서버 및 제 2 어플리케이션 서버 사이의 메시지 송/수신은 상기 메시징 네트워크 상의 다른 메시징 서버를 통해 수행하는 것인 메시징 네트워크 시스템의 메시지 송/수신 방법.
  9. 청구항 제 6 항 내지 제 8 항 중 어느 한 항에 기재된 메시지 송/수신 방법의 각 단계를 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR20080138601A 2008-12-31 2008-12-31 메시징 네트워크 시스템의 메시지 송수신 방법 KR101010911B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20080138601A KR101010911B1 (ko) 2008-12-31 2008-12-31 메시징 네트워크 시스템의 메시지 송수신 방법
JP2009289093A JP5758572B2 (ja) 2008-12-31 2009-12-21 メッセージングネットワークシステムのメッセージ送受信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080138601A KR101010911B1 (ko) 2008-12-31 2008-12-31 메시징 네트워크 시스템의 메시지 송수신 방법

Publications (2)

Publication Number Publication Date
KR20100079989A KR20100079989A (ko) 2010-07-08
KR101010911B1 true KR101010911B1 (ko) 2011-01-26

Family

ID=42575069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080138601A KR101010911B1 (ko) 2008-12-31 2008-12-31 메시징 네트워크 시스템의 메시지 송수신 방법

Country Status (2)

Country Link
JP (1) JP5758572B2 (ko)
KR (1) KR101010911B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360247A (zh) * 2014-01-20 2017-11-17 华为技术有限公司 处理业务的方法和网络设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050188021A1 (en) 2003-12-30 2005-08-25 Hans-Christoph Rohland Cluster architecture having a star topology with centralized services

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4040628B2 (ja) * 2003-02-27 2008-01-30 富士通株式会社 通信制御プログラム
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
CA2571120A1 (en) * 2004-06-30 2006-01-12 Glenayre Electronics, Inc. Load balancing in a distributed telecommunications platform
TW200841189A (en) * 2006-12-27 2008-10-16 Ibm Technique for accurately detecting system failure
JP2008236543A (ja) * 2007-03-22 2008-10-02 Hitachi Ltd 通信経路制御方法、通信経路制御プログラムおよび通信装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050188021A1 (en) 2003-12-30 2005-08-25 Hans-Christoph Rohland Cluster architecture having a star topology with centralized services

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360247A (zh) * 2014-01-20 2017-11-17 华为技术有限公司 处理业务的方法和网络设备
US10129722B2 (en) 2014-01-20 2018-11-13 Huawei Technologies Co., Ltd. Service processing method and network device

Also Published As

Publication number Publication date
JP2010157225A (ja) 2010-07-15
JP5758572B2 (ja) 2015-08-05
KR20100079989A (ko) 2010-07-08

Similar Documents

Publication Publication Date Title
US7562145B2 (en) Application instance level workload distribution affinities
CN101291205B (zh) 传输备份数据的方法、系统和镜像服务器
CN102893556B (zh) 用于源对等体基于容量的Diameter负载共享的方法、系统和设备
CN102404229B (zh) 负载均衡系统、装置及方法
JP4756188B2 (ja) メッセージングアプリケーションルータ
US8850056B2 (en) Method and system for managing client-server affinity
US20020143953A1 (en) Automatic affinity within networks performing workload balancing
US20110222442A1 (en) Routing requests for duplex applications
US20020143965A1 (en) Server application initiated affinity within networks performing workload balancing
EP3496432B1 (en) Efficient multicast transmission
EP2764658B1 (en) Method for using intelligent router in charging system and apparatus associated therewith
CN102546559A (zh) 受限网络中端到端传输数据的方法、设备和系统
CN111327650A (zh) 数据传输方法、装置、设备及存储介质
CN102137104B (zh) 一种传输控制协议tcp长连接接入控制方法和装置
CN103200214A (zh) 离线消息集中处理方法和系统
US20050270973A1 (en) Cluster architecture communications
JP5526780B2 (ja) 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム
KR101010911B1 (ko) 메시징 네트워크 시스템의 메시지 송수신 방법
CN102281580B (zh) M2m系统及其业务处理方法
KR101944744B1 (ko) 메시지 처리 장치
CN105188087A (zh) 一种基于短信网关的业务通信方法和系统
US7647379B2 (en) System and method for re-routing messaging traffic to external resources
CN109451074B (zh) 一种基于portal协议的服务器负载均衡处理办法
CN106060155A (zh) P2p资源共享的方法及装置
EP3210116B1 (en) Queue handling

Legal Events

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

Payment date: 20131231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170116

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 10