KR20190113200A - 메시지 서버 및 이를 포함하는 메시지 처리 장치 - Google Patents

메시지 서버 및 이를 포함하는 메시지 처리 장치 Download PDF

Info

Publication number
KR20190113200A
KR20190113200A KR1020180035559A KR20180035559A KR20190113200A KR 20190113200 A KR20190113200 A KR 20190113200A KR 1020180035559 A KR1020180035559 A KR 1020180035559A KR 20180035559 A KR20180035559 A KR 20180035559A KR 20190113200 A KR20190113200 A KR 20190113200A
Authority
KR
South Korea
Prior art keywords
message
management module
service
channel manager
server
Prior art date
Application number
KR1020180035559A
Other languages
English (en)
Other versions
KR102412226B1 (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 KR1020180035559A priority Critical patent/KR102412226B1/ko
Publication of KR20190113200A publication Critical patent/KR20190113200A/ko
Application granted granted Critical
Publication of KR102412226B1 publication Critical patent/KR102412226B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • H04L67/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • H04L51/30
    • H04L67/2814
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

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

Abstract

메시지 처리 장치가 제공된다. 본 발명의 일 실시예에 따른 메시지 처리 장치는, 애플리케이션 서버 측에 존재하는 서비스 관리 모듈; 애플리케이션 클라이언트 측에 존재하는 디바이스 관리 모듈; 및 상기 서비스 관리 모듈과 상기 디바이스 관리 모듈 사이에서 애플리케이션 서비스와 관련된 메시지를 중계하고, 하나 이상의 써드 파티 메시지 서버(3rd Party Message Server)와 연결되는 메시지 서버를 포함하며, 상기 메시지 서버는, 상기 애플리케이션 클라이언트 및 상기 디바이스 관리 모듈이 설치된 디바이스가 도즈 모드(doze mode)로 전환되어 상기 디바이스 관리 모듈과 상기 메시지 서버와의 연결이 단절된 경우 상기 써드 파티 메시지 서버를 통해 상기 메시지의 메타 데이터를 상기 디바이스로 전달하고, 상기 애플리케이션 클라이언트는, 상기 디바이스에서 상기 메타 데이터를 수신함에 따라 상기 도즈 모드의 해제를 위한 설정된 동작을 수행한다.

Description

메시지 서버 및 이를 포함하는 메시지 처리 장치{MESSAGE SERVER AND MESSAGE PROCESSING APPARATUS INCLUDING THE SAME}
본 발명의 실시예들은 메시지 처리 장치에 관한 것으로, 특히 애플리케이션 서비스와 관련된 메시지 처리 기술과 관련된다.
최근, 모바일 단말의 사용이 일반화되고 정보통신기술이 발달함에 따라, 다양한 메시지 서비스를 제공하는 메시지 처리 시스템에 대한 수요가 증가하고 있다. 이러한 메시지 처리 시스템은 보안 서비스, 이메일 서비스, 결제 서비스 등 다양한 분야에서 적용될 수 있다. 상기 메시지 처리 시스템에 있어서, 송신측과 수신측은 메시지 처리 시스템에서 제공하는 서비스와 관련된 각종 메시지를 송수신하게 된다. 이때, 상기 메시지 처리 시스템은 서비스의 연속성을 유지하고 외부 공격에 대한 시스템 보호를 위해 송신측과 수신측 간에 전송되는 메시지의 신뢰성을 보장할 필요가 있다.
한국공개특허공보 제10-2017-0087116호(2017.07.28)
본 발명의 실시예들은 디바이스가 도즈 모드(doze mode)로 전환된 경우 써드 파티 메시지 서버(3rd Party Message Server)와 연계하여 상기 디바이스와의 메시지 송수신을 원활하게 하는 수단을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 애플리케이션 서버 측에 존재하는 서비스 관리 모듈; 애플리케이션 클라이언트 측에 존재하는 디바이스 관리 모듈; 및 상기 서비스 관리 모듈과 상기 디바이스 관리 모듈 사이에서 애플리케이션 서비스와 관련된 메시지를 중계하고, 하나 이상의 써드 파티 메시지 서버(3rd Party Message Server)와 연결되는 메시지 서버를 포함하며, 상기 메시지 서버는, 상기 애플리케이션 클라이언트 및 상기 디바이스 관리 모듈이 설치된 디바이스가 도즈 모드(doze mode)로 전환되어 상기 디바이스 관리 모듈과 상기 메시지 서버와의 연결이 단절된 경우 상기 써드 파티 메시지 서버를 통해 상기 메시지의 메타 데이터를 상기 디바이스로 전달하고, 상기 애플리케이션 클라이언트는, 상기 디바이스에서 상기 메타 데이터를 수신함에 따라 상기 도즈 모드의 해제를 위한 설정된 동작을 수행하는, 메시지 처리 장치가 제공된다.
상기 메시지 서버는, 상기 서비스 관리 모듈 측에서 상기 메시지를 중계하는 복수의 서비스 채널 관리부; 상기 디바이스 관리 모듈 측에서 상기 메시지를 중계하는 복수의 디바이스 채널 관리부; 및 상기 메시지를 상기 써드 파티 메시지 서버에서 처리 가능한 메시지 형식인 써드 파티 메시지로 변환하고, 상기 메시지 서버와, 상기 써드 파티 메시지 서버에 연결되는 게이트웨이 사이에서 상기 써드 파티 메시지를 중계하는 외부 채널 관리부를 포함할 수 있다.
상기 외부 채널 관리부는, 상기 서비스 채널 관리부로부터 상기 메타 데이터를 수신하여 상기 써드 파티 메시지 서버로 전달하고, 상기 디바이스 관리 모듈은, 상기 써드 파티 메시지 서버로부터 상기 메타 데이터를 수신하여 상기 애플리케이션 클라이언트로 전달할 수 있다.
상기 서비스 관리 모듈은, 상기 디바이스 채널 관리부에서 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 못하는 경우 상기 메타 데이터를 생성하고, 상기 메시지 및 상기 메타 데이터를 상기 서비스 채널 관리부로 전달하며, 상기 서비스 채널 관리부는, 상기 메시지 및 상기 메타 데이터를 상기 디바이스 채널 관리부 및 상기 외부 채널 관리부로 각각 전달할 수 있다.
상기 디바이스 관리 모듈은, 상기 도즈 모드가 해제됨에 따라 상기 디바이스 채널 관리부와 연결되어 상기 디바이스 채널 관리부로부터 상기 메시지를 수신할 수 있다.
본 발명의 실시예들에 따르면, 디바이스가 도즈 모드로 전환되어 메시지 전달이 어려운 경우 써드 파티 메시지 서버를 통해 상기 메시지의 메타 데이터를 애플리케이션 클라이언트로 전달하여 상기 도즈 모드를 해제하도록 함으로써, 디바이스 관리 모듈을 디바이스 채널 관리부와 연결시킬 수 있으며 이에 따라 메시지를 정상적으로 전달할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈 및 애플리케이션 서버의 예시
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈 및 디바이스의 예시
도 4는 본 발명의 일 실시예에 따른 메시지 서버의 상세 구성을 나타낸 블록도
도 5는 본 발명의 제1 실시예에 따른 써드 파티 메시지 서버를 이용한 메시지 전달 과정을 설명하기 위한 도면
도 6은 본 발명의 일 실시예에 따른 써드 파티 메시지에 포함되는 각종 정보들의 예시
도 7은 본 발명의 제2 실시예에 따른 써드 파티 메시지 서버를 이용한 메시지 전달 과정을 설명하기 위한 도면
도 8은 본 발명의 제3 실시예에 따른 써드 파티 메시지 서버를 이용한 메시지 전달 과정을 설명하기 위한 도면
도 9는 본 발명의 제4 실시예에 따른 써드 파티 메시지 서버를 이용한 메시지 전달 과정을 설명하기 위한 도면
도 10은 본 발명의 일 실시예에 따른 도즈 모드(doze mode)를 설명하기 위한 도면
도 11은 본 발명의 일 실시예에 따른 디바이스가 도즈 모드인 경우 써드 파티 메시지 서버를 통해 상기 디바이스로 메시지를 전달하는 과정을 설명하기 위한 도면
도 12는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 메시지 처리 장치(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 처리 장치(100)는 서비스 관리 모듈(102), 디바이스 관리 모듈(104), 메시지 서버(106) 및 써드 파티 메시지 서버(108)를 포함한다.
서비스 관리 모듈(102)은 애플리케이션 서버(미도시) 측 컴포넌트로서, 애플리케이션 서버와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 애플리케이션 서버는 애플리케이션 서비스를 디바이스(미도시)로 제공하기 위한 서버이다. 상기 애플리케이션 서비스는 예를 들어, 디바이스의 카메라 제어, 마이크 제어, 녹음 기능 제어 등과 같은 보안 관련 서비스가 될 수 있으나, 이는 일 예시에 불과할 뿐 애플리케이션 서비스가 특별히 한정되는 것은 아니다. 또한, 상기 메시지는 예를 들어, 상술한 애플리케이션 서비스를 디바이스에서 실행시키기 위한 제어 메시지, 상기 제어 메시지에 대한 수신 확인 메시지(즉, ACK 메시지) 등이 될 수 있다.
서비스 관리 모듈(102)은 애플리케이션 서버와 후술할 서비스 채널 관리부 사이에서 메시지를 송수신함으로써 애플리케이션 서버에게 메시지 전송에 대한 신뢰성을 제공할 수 있다. 또한, 서비스 관리 모듈(102)은 수신 확인 메시지(즉, ACK 메시지)의 송수신, 메시지 전송 취소, 유저 아이디를 디바이스 관리 모듈의 아이디로 변환, 보안을 위한 인증 정보 관리, 멀티케스트(Multicast) 전송 요청 처리 등과 같은 부가 기능을 수행할 수 있다.
이러한 서비스 관리 모듈(102)은 복수 개 존재할 수 있으며, 각 서비스 관리 모듈(102)은 서로 다른 아이디(즉, 인스턴스 아이디)를 가질 수 있다. 또한, 동일한 애플리케이션 서비스를 처리하는 서비스 관리 모듈(102)은 동일한 그룹 내에 속하게 되며, 동일한 그룹 아이디를 가질 수 있다. 또한, 서비스 관리 모듈(102) 및 애플리케이션 서버는 제1 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제1 네트워크는 예를 들어, 특정 조직 또는 기업의 인트라넷(intranet)일 수 있다. 서비스 관리 모듈(102)은 애플리케이션 서버의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하고, 상기 메시지를 메시지 서버(106)로 전송할 수 있다. 또한, 서비스 관리 모듈(102)은 디바이스 관리 모듈(104)에서 전송된 메시지를 메시지 서버(106)를 통해 수신할 수 있다.
디바이스 관리 모듈(104)은 디바이스 측 컴포넌트로서, 디바이스에 설치된 애플리케이션 클라이언트(미도시)와 메시지 서버(106) 사이에서 애플리케이션 서비스와 관련된 각종 메시지를 송수신한다. 본 발명의 실시예들에 있어서, 디바이스는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 노트북, 태블릿 PC 등과 같은 모바일 단말일 수 있다. 또한, 애플리케이션 클라이언트는 디바이스에 설치되어 애플리케이션 서버에서 제공되는 애플리케이션 서비스를 디바이스에서 실행시키기 위한 모듈이다.
디바이스 관리 모듈(104)은 애플리케이션 클라이언트와 후술할 디바이스 채널 관리부 사이에서 메시지를 송수신할 수 있다. 또한, 디바이스 관리 모듈(104)은 수신 확인 메시지(즉, ACK 메시지)의 송수신, 메시지 전송 취소, 보안을 위한 인증 정보 관리 등과 같은 부가 기능을 수행할 수 있다.
이러한 디바이스 관리 모듈(104)은 각 디바이스별로 하나 이상 존재할 수 있으며, 각 디바이스 관리 모듈(104)은 서로 다른 아이디를 가질 수 있다. 디바이스는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 메시지 서버(106)로부터 해당 디바이스 관리 모듈(104)의 아이디를 할당 받을 수 있다. 또한, 디바이스 관리 모듈(104) 및 상기 디바이스 관리 모듈(104)이 설치된 디바이스는 제2 네트워크에 위치할 수 있다. 본 실시예들에 있어서, 제2 네트워크는 제1 네트워크의 외부 영역으로서, 예를 들어 인터넷(internet)일 수 있다. 디바이스 관리 모듈(104)은 애플리케이션 클라이언트(302)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하고, 상기 메시지를 메시지 서버(106)로 전송할 수 있다. 또한, 디바이스 관리 모듈(104)은 서비스 관리 모듈(102)에서 전송된 메시지를 메시지 서버(106)를 통해 수신할 수 있다.
메시지 서버(106)는 서비스 관리 모듈(102)과 디바이스 관리 모듈(104) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계하는 서버이다. 이때, 메시지 서버(106)는 제1 네트워크와 제2 네트워크 사이의 DMZ(Demilitarized Zone)에 위치할 수 있다. DMZ는 제1 네트워크와 제2 네트워크 사이에 위치한 서브 네트워크로서, 제1 네트워크와 DMZ 사이에는 방화벽이 존재할 수 있다.
메시지 서버(106)는 메시지 중계를 위한 각종 채널 매니저를 포함할 수 있으며, 상기 채널 매니저를 통해 상기 메시지를 라우팅할 수 있다. 메시지 서버(106)의 상세 구성 및 기능에 대해서는 도 4를 참조하여 구체적으로 후술하기로 한다.
써드 파티 메시지 서버(108)는 타 조직 또는 기업의 메시지 서버로서, 예를 들어 GCM(Google Cloud Messaging), APNS(Apple Push Notification Service), WNS(Windows Push Notification Service)의 메시지 서버(또는 푸시 서버)일 수 있다. 후술할 바와 같이, 메시지 서버(106)는 내부의 채널 매니저(즉, 후술할 외부 채널 관리부)를 통해 애플리케이션 서비스와 관련된 메시지를 써드 파티 메시지 서버(108)와 송수신할 수 있다. 또한, 후술할 바와 같이, 써드 파티 메시지 서버(108)는 디바이스 관리 모듈(104)을 사용할 수 없는 경우 애플리케이션 클라이언트로 메시지를 직접 전달하기 위한 용도, 디바이스 관리 모듈(104)을 웨이크-업(wake-up)/실행시키기 위한 용도, 또는 디바이스가 도즈 모드(doze mode)로 전환된 경우 상기 도즈 모드를 해제하기 위한 용도 등에 있어서 유용하게 활용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 서비스 관리 모듈(102) 및 애플리케이션 서버(200)의 예시이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 관리 모듈(102)은 부하 분산을 위해 복수 개(예를 들어, 100개) 존재할 수 있으며, 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 서버(200)와 양방향 통신할 수 있다. 이를 위해, 서비스 관리 모듈(102)은 애플리케이션 서버(200)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다. 상술한 바와 같이, 서비스 관리 모듈(102)은 애플리케이션 서버(200)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하여 데이터베이스(150)에 저장하고, 상기 메시지를 메시지 서버(106)를 통해 디바이스 관리 모듈(104)로 전송할 수 있다. 상기 데이터베이스(150)는 제1 네트워크에서 각 서비스 관리 모듈(102)과 연결될 수 있다.
이때, 상기 메시지는 발신자 주소(source address), 수신자 주소(destination address), 경유자(via) 정보, 데이터 정보(예를 들어, 애플리케이션 아이디, 이전에 전송된 메시지의 아이디 등) 등을 포함할 수 있다. 여기서, 발신자 주소는 메시지를 전송하는 서비스 관리 모듈(102)의 아이디를 포함할 수 있으며, 수신자 주소는 메시지의 수신 대상인 디바이스 관리 모듈(104)의 아이디를 포함할 수 있다. 메시지 서버(106)는 상기 메시지에 포함된 발신자 정보, 수신자 정보, 경유자 정보 등을 이용하여 상기 메시지를 라우팅한 후 디바이스 관리 모듈(104)로 전달할 수 있다.
도 3은 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104) 및 디바이스(300)의 예시이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 디바이스 관리 모듈(104)은 디바이스(300)에 설치되어 각 애플리케이션 클라이언트(302)에 해당 애플리케이션 서비스와 관련된 메시지를 송수신한다. 디바이스 관리 모듈(104)은 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 클라이언트(302)와 양방향 통신할 수 있다. 이를 위해, 디바이스 관리 모듈(104-1)은 애플리케이션 클라이언트(302)와의 양방향 통신을 위한 인터페이스(미도시)를 구비할 수 있다.
또한, 디바이스 관리 모듈(104)은 메시지 서버(106)를 통해 서비스 관리 모듈(102)로부터 애플리케이션 서비스와 관련된 메시지를 수신하고, 메시지 서버(106)를 통해 상기 메시지에 대한 수신 확인 메시지(즉, ACK 메시지)를 서비스 관리 모듈(102)로 전송할 수 있다.
도 4는 본 발명의 일 실시예에 따른 메시지 서버(106)의 상세 구성을 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 서버(106)는 복수의 서비스 채널 관리부(402), 복수의 디바이스 채널 관리부(404), 등록 서버(406), 데이터베이스(408, DB), 복수의 내부 채널 관리부(410) 및 외부 채널 관리부(412)를 포함한다.
서비스 채널 관리부(402)는 서비스 관리 모듈(102)과의 통신 채널을 관리하고, 서비스 관리 모듈(102) 측에서 애플리케이션 서비스와 관련된 메시지를 중계한다. 도 4에 도시된 바와 같이, 각 서비스 채널 관리부(402)는 메쉬(mesh) 형태로 복수의 서비스 관리 모듈(102)과 연결될 수 있다.
서비스 채널 관리부(402) 각각은 서비스 관리 모듈(102)이 접속할 때마다 제1 라우팅 정보를 데이터베이스(408)에 저장 및 업데이트할 수 있다. 여기서, 제1 라우팅 정보는 서비스 채널 관리부(402)에 접속되는 서비스 관리 모듈(102)의 아이디, 서비스 관리 모듈(102)이 속한 그룹의 아이디, 상기 서비스 채널 관리부(402)의 아이디, 및 상기 서비스 채널 관리부(402)와 상기 서비스 관리 모듈(102) 간의 채널 아이디 중 하나 이상을 포함할 수 있다. 이때, 제1 라우팅 정보에 포함되는 서비스 관리 모듈의 아이디 또는 서비스 관리 모듈의 그룹 아이디에는 APID 또는 APIID가 매핑되어 있을 수 있다. APID는 동일한 애플리케이션 서비스를 제공하는 애플리케이션 서버(200)가 속한 그룹에 부여되는 아이디이며, APIID는 상기 그룹 내 속하는 애플리케이션 서버(200) 각각에 부여되는 아이디이다.
서비스 채널 관리부(402)는 서비스 관리 모듈(102)로부터 메시지를 수신하고, 데이터베이스(208, DB)를 참조하여 상기 메시지를 라우팅할 수 있다. 상술한 바와 같이, 서비스 관리 모듈(102)은 애플리케이션 서버(200)의 요청에 따라 상기 메시지를 생성하고, 상기 메시지를 서비스 채널 관리부(402)로 전송할 수 있다. 이때, 상기 메시지는 발신자 주소, 수신자 주소, 경유자 정보, 데이터 정보(예를 들어, 애플리케이션 아이디, 이전에 전송된 메시지의 아이디 등) 등을 포함할 수 있다. 여기서, 발신자 주소는 메시지를 전송하는 서비스 관리 모듈(102)의 아이디를 포함할 수 있으며, 수신자 주소는 메시지의 수신 대상인 디바이스 관리 모듈(104)의 아이디를 포함할 수 있다. 후술할 바와 같이, 서비스 채널 관리부(402)는 상기 메시지에 포함된 발신자 정보, 수신자 정보, 경유자 정보 등과 데이터베이스(408, DB)에 저장된 제1 라우팅 정보 또는 제2 라우팅 정보를 이용하여 상기 메시지를 라우팅할 수 있다.
디바이스 채널 관리부(404)는 디바이스 관리 모듈(104)과의 통신 채널을 관리하고, 디바이스 관리 모듈(104) 측에서 애플리케이션 서비스와 관련된 메시지를 중계한다. 이를 위해, 디바이스(300)는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 등록 서버(406)에 디바이스(300) 및 디바이스(300)에 설치된 디바이스 관리 모듈(104)을 등록하고, 등록 서버(406)로부터 해당 디바이스 관리 모듈(104)의 아이디를 할당 받을 수 있다. 또한, 등록 서버(406)는 복수의 디바이스 채널 관리부(404) 중 현재 사용 가능한 디바이스 채널 관리부(404)를 디바이스 관리 모듈(104)에 할당할 수 있으며, 디바이스 관리 모듈(104)는 자신에게 할당된 디바이스 채널 관리부(404)와 메시지를 송수신할 수 있다.
이때, 디바이스 채널 관리부(404) 각각은 디바이스 관리 모듈(104)이 접속할 때마다 제2 라우팅 정보를 데이터베이스(408)에 저장 및 업데이트할 수 있다. 여기서, 제2 라우팅 정보는 디바이스 채널 관리부(404)에 접속되는 디바이스 관리 모듈(104)의 아이디, 상기 디바이스 채널 관리부(404)의 아이디, 상기 디바이스 채널 관리부(404)와 상기 디바이스 관리 모듈(104) 간의 채널 아이디, 및 디바이스 관리 모듈(104)의 접속 상태를 나타내는 정보 중 하나 이상을 포함할 수 있다.
디바이스 채널 관리부(404)는 디바이스 관리 모듈(104)로부터 메시지를 수신하고, 데이터베이스(208, DB)를 참조하여 상기 메시지를 라우팅할 수 있다. 상술한 바와 같이, 디바이스 관리 모듈(104)은 애플리케이션 클라이언트(302)의 요청에 따라 애플리케이션 서비스와 관련된 메시지를 생성하고, 상기 메시지를 디바이스 채널 관리부(404)로 전송할 수 있다. 이때, 상기 메시지는 발신자 주소, 수신자 주소, 경유자 정보, 데이터 정보(예를 들어, 애플리케이션 아이디, 이전에 전송된 메시지의 아이디 등) 등을 포함할 수 있다. 여기서, 발신자 주소는 메시지를 전송하는 디바이스 관리 모듈(104)의 아이디를 포함할 수 있으며, 수신자 주소는 메시지의 수신 대상인 서비스 관리 모듈(102)의 아이디 또는 애플리케이션 서비스의 아이디(APID)(또는 APIID)를 포함할 수 있다. 후술할 바와 같이, 디바이스 채널 관리부(404)는 상기 메시지에 포함된 발신자 정보, 수신자 정보, 경유자 정보 등과 데이터베이스(408, DB)에 저장된 제1 라우팅 정보 또는 제2 라우팅 정보를 이용하여 상기 메시지를 라우팅할 수 있다. 한편, 상기 서비스 채널 관리부(402) 및 디바이스 관리 모듈(104)의 개수는 디바이스 관리 모듈(104)의 개수에 따라 달라질 수 있다. 예를 들어, 상기 서비스 채널 관리부(402) 및 디바이스 관리 모듈(104)의 개수는 디바이스 관리 모듈(104)의 개수가 증가할수록 많아질 수 있다.
등록 서버(406)는 디바이스 관리 모듈(104)이 설치된 디바이스(300)의 정보(예를 들어, 디바이스(300)의 IP 주소, MAC 주소 등)를 관리하고, 복수의 디바이스 채널 관리부(404) 중 하나를 상기 디바이스 관리 모듈(104)에 할당한다. 상술한 바와 같이, 디바이스(300)는 디바이스 관리 모듈(104)을 최초로 활성화하는 과정에서 등록 서버(406)에 디바이스(300) 및 디바이스(300)에 설치된 디바이스 관리 모듈(104)을 등록할 수 있다. 이에 따라, 등록 서버(406)는 복수의 디바이스 채널 관리부(404) 중 현재 사용 가능한 디바이스 채널 관리부(404)를 디바이스 관리 모듈(104)에 할당할 수 있다.
데이터베이스(408, DB)는 인스턴스 정보 및 라우팅 정보가 저장되는 저장소이다. 상기 인스턴스 정보는 메시지 서버(106) 내 구성들(서비스 채널 관리부, DC, 등록 서버, 내부 채널 관리부, 외부 채널 관리부 등) 각각에 대한 정보들로서, 각 구성들의 아이디, 각 구성들에 메시지 전달을 위한 아이피/포트 정보를 포함할 수 있다. 상기 인스턴스 정보는 해당 컴포넌트가 기동되거나 다운될 때 업데이트될 수 있다.
또한, 상기 라우팅 정보는 메시지 서버(106) 내의 구성들(서비스 채널 관리부, 디바이스 채널 관리부, 등록 서버, 내부 채널 관리부, 외부 채널 관리부 등) 중 애플리케이션 서비스와 관련된 메시지를 처리할 컴포넌트를 결정하는 데 사용되는 정보이다. 상술한 바와 같이, 서비스 채널 관리부(402) 각각은 서비스 관리 모듈(102)이 접속할 때마다 제1 라우팅 정보를 데이터베이스(408)에 저장 및 업데이트할 수 있으며, 디바이스 채널 관리부(404) 각각은 디바이스 관리 모듈(104)이 접속할 때마다 제2 라우팅 정보를 데이터베이스(408)에 저장 및 업데이트할 수 있다.
또한, 데이터베이스(408, DB)에는 서비스 채널 관리부(402), 디바이스 채널 관리부(404), 후술할 내부 채널 관리부(410) 및 외부 채널 관리부(412) 간의 연결 관계 및 라우팅 정보가 저장될 수 있다.
이하에서는, 메시지 처리 장치(100) 내 각 컴포넌트에서의 라우팅 방법에 대해 구체적으로 살펴보기로 한다.
* 서비스 관리 모듈(102)에서의 라우팅
메시지에 포함된 경유자(via) 정보가 자신의 아이디(서비스 관리 모듈의 아이디 또는 서비스 관리 모듈의 그룹 아이디)이고 상기 메시지에 포함된 수신자 주소(destination address)가 디바이스 관리 모듈(104)의 아이디인 경우, 서비스 관리 모듈(106)은 서비스 채널 관리부(402)로 상기 메시지를 전달할 수 있다. 또한, 메시지에 포함된 경유자(via) 정보가 자신의 아이디(서비스 관리 모듈의 아이디 또는 서비스 관리 모듈의 그룹 아이디)이고 상기 메시지에 포함된 수신자 주소(destination address)가 APID 또는 APIID인 경우, 서비스 관리 모듈(102)은 상기 APID 또는 APIID에 대응되는 애플리케이션 서버(200)로 상기 메시지를 전달할 수 있다.
* 디바이스 관리 모듈(104)에서의 라우팅
메시지에 포함된 수신자 주소(destination address)가 자신의 아이디인 경우, 디바이스 관리 모듈(104)은 라우팅을 종료하고 상기 메시지를 상기 메시지에 포함된 APID에 대응되는 애플리케이션 클라이언트(302)로 전달할 수 있다. 이 외의 경우, 디바이스 관리 모듈(104)은 수신된 메시지를 등록 서버(406)에서 할당 받은 디바이스 채널 관리부(404)에게 전달할 수 있다.
* 서비스 채널 관리부(402)에서의 라우팅
메시지에 포함된 수신자 주소(destination address)가 APID 또는 APIID인 경우, 서비스 채널 관리부(402)는 데이터베이스(408, DB)에 저장된 제1 라우팅 정보를 참조하여 상기 APID 또는 APIID에 대응되는 서비스 관리 모듈(102)의 아이디(또는 주소)를 찾아 상기 서비스 관리 모듈(102)로 상기 메시지를 전달할 수 있다.
또한, 메시지에 포함된 수신자 주소(destination address)가 디바이스 관리 모듈(104)의 아이디인 경우, 서비스 채널 관리부(402)는 데이터베이스(408, DB)에 저장된 제2 라우팅 정보를 참조하여 상기 디바이스 관리 모듈(104)이 접속된 디바이스 채널 관리부(404)의 아이디(또는 주소)를 찾아 상기 디바이스 채널 관리부(404)로 상기 메시지를 전달할 수 있다. 이때, 서비스 채널 관리부(402)는 UDP(User 디바이스 관리 모듈tagram Protocol) 채널을 통해 상기 디바이스 채널 관리부(404)로 상기 메시지를 전달할 수 있다.
* 디바이스 채널 관리부(404)에서의 라우팅
메시지에 포함된 수신자 주소(destination address)가 디바이스 관리 모듈(104)인 경우, 디바이스 채널 관리부(404)는 상기 디바이스 관리 모듈(104)로 상기 메시지를 전달할 수 있다.
또한, 메시지에 포함된 수신자 주소(destination address)가 APID 또는 APIID인 경우, 디바이스 채널 관리부(404)는 데이터베이스(408, DB)에 저장된 제1 라우팅 정보를 참조하여 상기 APID 또는 APIID에 대응되는 서비스 관리 모듈(102) 및 상기 서비스 관리 모듈(102)가 접속된 서비스 채널 관리부(402)의 아이디(또는 주소)를 찾아 상기 서비스 채널 관리부(402)로 상기 메시지를 전달할 수 있다. 이때, 디바이스 채널 관리부(404)는 UDP 채널을 통해 상기 서비스 채널 관리부(402)로 상기 메시지를 전달할 수 있다.
이와 같이, 서비스 채널 관리부(402) 및 디바이스 채널 관리부(404)는 데이터베이스(408, DB)에 저장된 제1 라우팅 정보 또는 제2 라우팅 정보를 이용하여 애플리케이션 서비스와 관련된 메시지를 중계할 수 있다.
내부 채널 관리부(410)는 고보안 모드에서 서비스 채널 관리부(402)와 디바이스 채널 관리부(404) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계한다. 내부 채널 관리부(410) 각각은 서로 다른 하드웨어에 위치할 수 있으며, 서로 다른 하드웨어 상에서 상기 메시지를 전달하는 경우에 사용될 수 있다. 내부 채널 관리부(410) 각각은 TLS(Transport Layer Security) 채널을 통해 상호 연결될 수 있으며, 상기 TLS 채널을 통해 메시지를 송수신할 수 있다.
외부 채널 관리부(412)는 메시지 서버(106)와, 써드 파티 메시지 서버(108)에 연결되는 게이트웨이(미도시) 사이에서 애플리케이션 서비스와 관련된 메시지를 중계한다. 이때, 외부 채널 관리부(412)는 상기 메시지를 써드 파티 메시지 서버(108)에서 처리 가능한 메시지 형식인 써드 파티 메시지로 변환하고, 메시지 서버(106)와 상기 게이트웨이 사이에서 상기 써드 파티 메시지를 중계할 수 있다. 또한, 외부 채널 관리부(412)는 서비스 채널 관리부(402) 및 디바이스 채널 관리부(404)와 UDP 채널을 통해 연결될 수 있으며, 서비스 채널 관리부(402) 및 디바이스 채널 관리부(404)와 메시지를 송수신할 수 있다.
이하에서는, 도 5 내지 도 11을 참조하여 외부 채널 관리부(412) 및 써드 파티 메시지 서버(108)를 이용한 메시지 전달 과정을 보다 구체적으로 살펴보기로 한다.
도 5는 본 발명의 제1 실시예에 따른 써드 파티 메시지 서버(108)를 이용한 메시지 전달 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 써드 파티 메시지 서버(108)는 예를 들어, APNS(108-1), GCM(108-2) 또는 WNS(108-3)일 수 있으며, 이들은 디바이스 1(110-1), 디바이스 2(110-2) 및 디바이스 3(110-3)과 각각 연결될 수 있다.
서비스 관리 모듈(102)은 애플리케이션 서버의 메시지 생성 및 전송 요청에 따라 메시지를 생성하고, 이를 서비스 채널 관리부(402)로 전달할 수 있다. 이때, 상기 메시지는 써드 파티 메시지 서버(108)와 연계되어 제공되는 애플리케이션 서비스와 관련된 메시지일 수 있으며, 상기 요청에는 디바이스 채널 관리부(404)가 아닌 외부 채널 관리부(412)를 통해 상기 메시지를 애플리케이션 클라이언트로 전달하는 내용의 명령이 포함될 수 있다. 이에 따라, 외부 채널 관리부(412)는 상기 메시지를 해당 써드 파티 메시지 서버(108)에서 처리 가능한 메시지 형식으로 변환할 수 있다. 이하에서는, 이와 같이 변환된 메시지를 ““써드 파티 메시지””라 칭하기로 한다. 외부 채널 관리부(412)는 상기 써드 파티 메시지를 게이트웨이(414)로 전달하고, 게이트웨이(414)는 상기 써드 파티 메시지의 타입(type)을 확인하여 상기 써드 파티 메시지가 전달될 써드 파티 메시지 서버(108)를 결정할 수 있다. 이후, 게이트웨이(414)는 상기 써드 파티 메시지를 해당 써드 파티 메시지 서버(108)로 전달하고, 써드 파티 메시지 서버(108)는 이를 디바이스(110)로 전달할 수 있다. 한편, 상기 써드 파티 메시지의 타입(또는 써드 파티 메시지에 포함되는 정보의 종류)은 대응되는 써드 파티 메시지 서버(108)별로 서로 상이할 수 있다.
도 6은 본 발명의 일 실시예에 따른 써드 파티 메시지에 포함되는 각종 정보들의 예시이다.
도 6을 참조하면, APNS(108-1), GCM(108-2) 및 WNS(108-3)의 써드 파티 메시지에 포함되는 정보들은 각각 상이할 수 있다. 일 예시로서, Title(즉, 알림 항목의 타이틀)은 APNS(108-1), GCM(108-2) 및 WNS(108-3)의 써드 파티 메시지에 모두 포함되나, SubTitle(즉, 알림 항목의 서브 타이틀)은 GCM(108-2)의 써드 파티 메시지에만 포함되며 Ticker(즉, 알림이 발생될 때 알림바(notification bar)에 곧바로 표시되는 텍스트)는 GCM(108-2) 및 WNS(108-3)의 써드 파티 메시지에만 포함될 수 있다. 또한, APNS(108-1)의 경우 GCM(108-2) 및 WNS(108-3)와 달리 인증서와 패스워드를 이용한 인증 방식을 사용할 수 있다. 이와 같이, 상기 써드 파티 메시지의 타입은 대응되는 써드 파티 메시지 서버(108)별로 상이할 수 있다. 게이트웨이(414)는 써드 파티 메시지를 수신하는 경우 상기 써드 파티 메시지에 포함된 정보들로부터 상기 써드 파티 메시지의 타입(또는 형식)을 확인하고, 이에 따라 상기 써드 파티 메시지가 전달될 써드 파티 메시지 서버(108)를 결정할 수 있다. 한편, 도 6에 도시된 각 써드 파티 메시지 서버의 메시지 타입은 일 예시에 불과하며 이에 한정되는 것은 아님에 유의한다.
도 7은 본 발명의 제2 실시예에 따른 써드 파티 메시지 서버(108)를 이용한 메시지 전달 과정을 설명하기 위한 도면이다.
일반적으로, 특정 운영체제(예를 들어, iOS)를 사용하는 디바이스(300)의 MDM(Mobile Device Management) 에이전트는 해당 플랫폼의 특성으로 인해 수정이 불가능하여 디바이스 관리 모듈(104)과의 연동이 어려울 수 있다. 이 경우, 디바이스 관리 모듈(104)을 거치지 않고 해당 디바이스(300)로 애플리케이션 서비스의 정책 등과 관련된 메시지를 전달하는 방안이 필요하며, 그 방안으로서 상기 써드 파티 메시지 서버(108)가 활용될 수 있다.
도 7을 참조하면, 서비스 채널 관리부(402)는 서비스 관리 모듈(102)로부터 메시지를 수신하고, 이를 디바이스 채널 관리부(404)가 아닌 외부 채널 관리부(412)로 전달할 수 있다. 외부 채널 관리부(412)는 상기 메시지를 써드 파티 메시지로 변환하고, 상기 써드 파티 메시지를 디바이스 관리 모듈(104)을 거치지 않고 애플리케이션 클라이언트(302)에 직접 전달할 수 있다. 이와 같이, 본 발명의 실시예들에 따르면, 디바이스 관리 모듈(104)을 사용할 수 없는 경우 써드 파티 메시지 서버(108)를 통해 메시지를 애플리케이션 클라이언트(302)에 직접 전달하도록 함으로써, 송신측과 수신측 사이에서 전달되는 메시지의 신뢰성을 보장할 수 있다.
도 8은 본 발명의 제3 실시예에 따른 써드 파티 메시지 서버(108)를 이용한 메시지 전달 과정을 설명하기 위한 도면이다. 여기서는, 디바이스 관리 모듈(104)이 항상 동작하고 있는 것으로 가정한다.
도 8을 참조하면, 서비스 채널 관리부(402)는 서비스 관리 모듈(102)로부터 메시지를 수신하고, 이를 디바이스 채널 관리부(404)로 전달할 수 있다. 이후, 디바이스 채널 관리부(404)는 디바이스 관리 모듈(104)로 상기 메시지를 전송할 수 있다. 그러나, 네트워크 등의 문제로 디바이스 채널 관리부(404)와 디바이스 관리 모듈(104)과의 연결이 단절된 경우, 디바이스 채널 관리부(404)는 상기 메시지에 대한 수신 확인 메시지를 수신할 수 없게 된다. 이에 따라, 디바이스 채널 관리부(404)는 디바이스 관리 모듈(104)과의 연결이 단절된 것으로 판단할 수 있으며, 웨이크-업(wake-up) 신호를 외부 채널 관리부(412)로 전달할 수 있다. 상기 웨이크-업 신호는 디바이스 채널 관리부(404)와 디바이스 관리 모듈(104)과의 연결이 단절되었음을 나타내는 알람 신호로서, 외부 채널 관리부(412) 및 써드 파티 메시지 서버(108)를 통해 디바이스 관리 모듈(104)로 전달될 수 있다. 즉, 써드 파티 메시지 서버(108)는 상기 웨이크-업 신호를 외부 채널 관리부(412)로부터 수신하여 디바이스 관리 모듈(104)로 전달할 수 있다. 디바이스 관리 모듈(104)은 웨이크-업 신호를 수신함에 따라 디바이스 채널 관리부(404)와의 연결이 단절되었음을 확인하고, 디바이스 채널 관리부(404)와의 재연결을 시도할 수 있다. 디바이스 관리 모듈(104)이 디바이스 채널 관리부(404)에 다시 연결되는 경우, 디바이스 관리 모듈(104)은 상기 메시지를 디바이스 관리 모듈(104)로 재전송할 수 있다.
디바이스 관리 모듈(104)은 디바이스 채널 관리부(404)와의 연결 단절을 감지하는 경우 디바이스 채널 관리부(404)와의 재연결을 시도하면 되나, 이를 감지하지 못한 채 상기 연결 단절이 지속되는 경우 디바이스 채널 관리부(404)에서 전송된 메시지를 정상적으로 수신할 수 없게 된다. 그러나, 본 발명의 실시예들에 따르면, 디바이스 채널 관리부(404)와 디바이스 관리 모듈(104) 간의 연결이 단절된 경우 써드 파티 메시지 서버(108)를 통해 웨이크-업 신호를 디바이스 관리 모듈(104)로 전달하여 디바이스 관리 모듈(104)로 하여금 디바이스 채널 관리부(404)와의 재연결을 시도하도록 함으로써 디바이스 채널 관리부(404)에서 전송된 메시지가 디바이스 관리 모듈(104)로 정상적으로 전달되도록 할 수 있다.
도 9는 본 발명의 제4 실시예에 따른 써드 파티 메시지 서버(108)를 이용한 메시지 전달 과정을 설명하기 위한 도면이다. 여기서는, 디바이스 관리 모듈(104)이 라이브러리(미도시)를 통해 함수를 호출하는 형태로 애플리케이션 클라이언트(302)와 통신하여 평상시에는 동작하고 있지 않는 것(즉, 디바이스 채널 관리부(404)와 연결되어 있지 않음)으로 가정한다.
도 9를 참조하면, 서비스 관리 모듈(102)은 상기 메시지 및 상기 메시지와 관련된 부가 정보를 포함하는 알림 신호(notification signal)를 생성하여 서비스 채널 관리부(402)로 전달한다. 여기서, 부가 정보는 상기 메시지를 나타내는 정보로서, 예를 들어 도 6에 도시된 Title, SubTitle, Badge 등을 포함할 수 있다. 서비스 채널 관리부(402)는 상기 메시지 및 상기 알림 신호를 디바이스 채널 관리부(404) 및 외부 채널 관리부(412)로 각각 전달할 수 있다. 이후, 디바이스 채널 관리부(404)는 메시지를 디바이스 관리 모듈(104)로 전송할 수 있으나 디바이스 관리 모듈(104)이 연결되어 있지 않아 상기 메시지를 디바이스 관리 모듈(104)로 정상적으로 전달할 수 없게 된다.
또한, 외부 채널 관리부(412)는 서비스 채널 관리부(402)로부터 상기 알림 신호를 수신하여 써드 파티 메시지 서버(108)로 전달하고, 써드 파티 메시지 서버(108)는 상기 알림 신호를 디바이스 관리 모듈(104)로 전달한다. 디바이스 관리 모듈(104)은 예를 들어, 상기 알림 신호에 포함된 부가 정보를 설정된 알림바(notification bar)에 표시할 수 있으며, 사용자는 상기 부가 정보를 확인하여 디바이스 관리 모듈(104)을 실행시킬 수 있다. 이에 따라, 디바이스 관리 모듈(104)은 디바이스 채널 관리부(404)와 연결될 수 있으며, 디바이스 채널 관리부(404)로부터 상기 메시지를 수신할 수 있다. 이와 같이, 본 발명의 실시예들에 따르면, 디바이스 관리 모듈(104)이 디바이스 채널 관리부(404)와 연결되어 있지 않아 메시지를 디바이스 관리 모듈(104)로 전달할 수 없는 경우 써드 파티 메시지 서버(108)를 통해 알림 신호를 디바이스 관리 모듈(104)로 전달하여 디바이스 관리 모듈(104)이 실행되도록 함으로써, 디바이스 관리 모듈(104)을 디바이스 채널 관리부(404)와 연결시킬 수 있으며 이에 따라 메시지를 정상적으로 전달할 수 있다.
이와 같이, 써드 파티 메시지 서버(108)는 디바이스 관리 모듈(104)을 웨이크-업/실행시키는 보조 수단으로서 활용될 수 있다. 나아가, 써드 파티 메시지 서버(108)는 디바이스가 도즈 모드(doze mode)로 전환된 경우 상기 도즈 모드를 해제하기 위한 용도로 사용될 수도 있다. 이하에서는, 이에 대해 구체적으로 살펴보기로 한다.
도 10은 본 발명의 일 실시예에 따른 도즈 모드(doze mode)를 설명하기 위한 도면이다. 도즈 모드는 디바이스의 배터리 성능을 효율적으로 증가시키기 위한 절전 모드로서, 정상 모드(normal mode)와 비교하여 일부 기능의 사용이 제한된다.
도 10을 참조하면, 정상 모드는 예를 들어, 디바이스가 충전기에 연결되어 있거나, 디바이스에 탑재된 센서 또는 스크린이 사용되고 있을 때의 모드일 수 있다. 이 경우, 디바이스의 CPU, 네트워크 통신, 타이머(Timer) 등은 정상적으로 사용 가능하다.
반면, 디바이스가 충전기에 연결되지 않은 상태에서 설정된 시간 이상 디바이스의 사용이 감지되지 않거나 설정된 시간 이상 스크린이 오프(off) 상태를 유지하는 경우 디바이스가 도즈 모드로 전환될 수 있다. 이 경우, 디바이스의 CPU는 사용이 가능하나, 네트워크 통신, 타이머 등은 사용이 불가능하다.
이러한 도즈 모드에서는 디바이스 관리 모듈(104)이 디바이스 채널 관리부(404)로부터 메시지를 정상적으로 수신할 수 없다. 이에 따라, 본 발명의 실시예들에서는 써드 파티 메시지 서버(108)를 통해 상기 도즈 모드를 해제시켜 디바이스 관리 모듈(104)이 디바이스 채널 관리부(404)로부터 메시지를 정상적으로 수신할 수 있도록 하였다.
도 11은 본 발명의 일 실시예에 따른 디바이스(300)가 도즈 모드인 경우 써드 파티 메시지 서버(108)를 통해 상기 디바이스로 메시지를 전달하는 과정을 설명하기 위한 도면이다.
상술한 바와 같이, 서비스 채널 관리부(402)는 서비스 관리 모듈(102)로부터 메시지를 수신하여 디바이스 채널 관리부(404)로 전달하고, 디바이스 채널 관리부(404)는 상기 메시지를 디바이스 관리 모듈(104)로 전송할 수 있다. 그러나, 디바이스(300)가 도즈 모드로 전환되어 디바이스 관리 모듈(104)과 메시지 서버(즉, 디바이스 채널 관리부(404))와의 연결이 단절된 경우 상기 메시지가 디바이스 관리 모듈(104)로 정상적으로 전달될 수 없으며, 디바이스 채널 관리부(404)는 디바이스 관리 모듈(104)로부터 상기 메시지에 대한 수신 확인 메시지를 수신할 수 없게 된다.
서비스 관리 모듈(102)은 디바이스 채널 관리부(404)에서 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 못하는 경우 상기 메시지에 대한 메타 데이터를 생성하고, 메시지의 첫 번째 재전송 시점에 재전송 대상이 되는 상기 메시지와 상기 메타 데이터를 서비스 채널 관리부(402)로 전달할 수 있다. 여기서, 메타 데이터는 상기 메시지를 나타내는 데이터로서, 예를 들어 상기 메시지와 관련된 애플리케이션 서비스와 관련된 정보 등을 포함할 수 있다. 또한, 상기 메타 데이터는 설정된 데이터 형식으로 이루어질 수 있으며, 그 크기는 예를 들어 1Kbyte 미만일 수 있다.
외부 채널 관리부(412)는 서비스 채널 관리부(402)로부터 상기 메타 데이터를 수신하여 써드 파티 메시지 서버(108)(예를 들어, GCM)로 전달하고, 써드 파티 메시지 서버(108)는 상기 메타 데이터를 디바이스 관리 모듈(104)로 전달할 수 있다. 여기서, 디바이스 관리 모듈(104)과 써드 파티 메시지 서버(108) 간의 통신 채널은 항상 열려 있는 것(즉, 써드 파티 메시지 서버(108)와 디바이스 관리 모듈(104)은 항상 연결되어 있는 것)으로 가정한다.
디바이스 관리 모듈(104)은 상기 메타 데이터를 애플리케이션 클라이언트(302)로 전달하고, 애플리케이션 클라이언트(302)는 상기 메타 데이터를 수신함에 따라 상기 도즈 모드의 해제를 위한 설정된 동작을 수행할 수 있다. 여기서, 설정된 동작이란 예를 들어, 디바이스(300)의 스크린을 온시키는 동작, 디바이스(300)에서 사운드를 출력시키는 동작 등이 될 수 있다. 도즈 모드에서도 CPU는 사용 가능하므로, 애플리케이션 클라이언트(302)는 CPU를 통해 상기 동작을 수행할 수 있으며, 이에 따라 도즈 모드가 해제될 수 있다. 디바이스 관리 모듈(104)은 상기 도즈 모드가 해제됨에 따라 디바이스 채널 관리부(404)에 연결되어 디바이스 채널 관리부(404)로부터 상기 메시지를 수신할 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 디바이스(300)가 도즈 모드로 전환되어 메시지 전달이 어려운 경우 써드 파티 메시지 서버(108)를 통해 상기 메시지의 메타 데이터를 애플리케이션 클라이언트(302)로 전달하여 상기 도즈 모드를 해제하도록 함으로써, 디바이스 관리 모듈(104)을 디바이스 채널 관리부(404)와 연결시킬 수 있으며 이에 따라 메시지를 정상적으로 전달할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 메시지 처리 장치
102 : 서비스 관리 모듈
104 : 디바이스 관리 모듈
106 : 메시지 서버
108 : 써드 파티 메시지 서버
150, 408 : 데이터베이스
200 : 애플리케이션 서버
300 : 디바이스
302 : 애플리케이션 클라이언트
402 : 서비스 채널 관리부
404 : 디바이스 채널 관리부
406 : 등록 서버
410 : 내부 채널 관리부
412 : 외부 채널 관리부
414 : 게이트웨이

Claims (5)

  1. 애플리케이션 서버 측에 존재하는 서비스 관리 모듈;
    애플리케이션 클라이언트 측에 존재하는 디바이스 관리 모듈; 및
    상기 서비스 관리 모듈과 상기 디바이스 관리 모듈 사이에서 애플리케이션 서비스와 관련된 메시지를 중계하고, 하나 이상의 써드 파티 메시지 서버(3rd Party Message Server)와 연결되는 메시지 서버를 포함하며,
    상기 메시지 서버는, 상기 애플리케이션 클라이언트 및 상기 디바이스 관리 모듈이 설치된 디바이스가 도즈 모드(doze mode)로 전환되어 상기 디바이스 관리 모듈과 상기 메시지 서버와의 연결이 단절된 경우 상기 써드 파티 메시지 서버를 통해 상기 메시지의 메타 데이터를 상기 디바이스로 전달하고,
    상기 애플리케이션 클라이언트는, 상기 디바이스에서 상기 메타 데이터를 수신함에 따라 상기 도즈 모드의 해제를 위한 설정된 동작을 수행하는, 메시지 처리 장치.
  2. 청구항 1에 있어서,
    상기 메시지 서버는,
    상기 서비스 관리 모듈 측에서 상기 메시지를 중계하는 복수의 서비스 채널 관리부;
    상기 디바이스 관리 모듈 측에서 상기 메시지를 중계하는 복수의 디바이스 채널 관리부; 및
    상기 메시지를 상기 써드 파티 메시지 서버에서 처리 가능한 메시지 형식인 써드 파티 메시지로 변환하고, 상기 메시지 서버와, 상기 써드 파티 메시지 서버에 연결되는 게이트웨이 사이에서 상기 써드 파티 메시지를 중계하는 외부 채널 관리부를 포함하는, 메시지 처리 장치.
  3. 청구항 2에 있어서,
    상기 외부 채널 관리부는, 상기 서비스 채널 관리부로부터 상기 메타 데이터를 수신하여 상기 써드 파티 메시지 서버로 전달하고,
    상기 디바이스 관리 모듈은, 상기 써드 파티 메시지 서버로부터 상기 메타 데이터를 수신하여 상기 애플리케이션 클라이언트로 전달하는, 메시지 처리 장치.
  4. 청구항 3에 있어서,
    상기 서비스 관리 모듈은, 상기 디바이스 채널 관리부에서 설정된 시간 이내에 상기 메시지에 대한 수신 확인 메시지를 수신하지 못하는 경우 상기 메타 데이터를 생성하고, 상기 메시지 및 상기 메타 데이터를 상기 서비스 채널 관리부로 전달하며,
    상기 서비스 채널 관리부는, 상기 메시지 및 상기 메타 데이터를 상기 디바이스 채널 관리부 및 상기 외부 채널 관리부로 각각 전달하는, 메시지 처리 장치.
  5. 청구항 1에 있어서,
    상기 디바이스 관리 모듈은, 상기 도즈 모드가 해제됨에 따라 상기 디바이스 채널 관리부와 연결되어 상기 디바이스 채널 관리부로부터 상기 메시지를 수신하는, 메시지 처리 장치.
KR1020180035559A 2018-03-28 2018-03-28 메시지 서버 및 이를 포함하는 메시지 처리 장치 KR102412226B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180035559A KR102412226B1 (ko) 2018-03-28 2018-03-28 메시지 서버 및 이를 포함하는 메시지 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180035559A KR102412226B1 (ko) 2018-03-28 2018-03-28 메시지 서버 및 이를 포함하는 메시지 처리 장치

Publications (2)

Publication Number Publication Date
KR20190113200A true KR20190113200A (ko) 2019-10-08
KR102412226B1 KR102412226B1 (ko) 2022-06-22

Family

ID=68208734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180035559A KR102412226B1 (ko) 2018-03-28 2018-03-28 메시지 서버 및 이를 포함하는 메시지 처리 장치

Country Status (1)

Country Link
KR (1) KR102412226B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395112A (zh) * 2020-11-30 2021-02-23 深圳市和讯华谷信息技术有限公司 应用消息处理方法、装置、计算机设备及存储介质
KR20230101524A (ko) * 2021-12-29 2023-07-06 주식회사 카카오엔터프라이즈 모바일 디바이스 관리 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101290977B1 (ko) * 2012-01-26 2013-07-30 한국외국어대학교 연구산학협력단 푸쉬 서버를 이용한 메시지 전송 방법 및 그 시스템
KR20170087195A (ko) * 2016-01-20 2017-07-28 장중혁 푸시 메시지 중계 서비스 제공 방법, 그를 위한 푸시 메시지 수집 시스템 및 사용자 단말 장치
KR20170087116A (ko) 2016-01-19 2017-07-28 명지대학교 산학협력단 모바일 단말의 보안 감시 시스템 및 이를 이용한 모바일 단말의 보안 감시 방법
WO2018035224A1 (en) * 2016-08-16 2018-02-22 Convida Wireless, Llc Keeping the ue awake

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101290977B1 (ko) * 2012-01-26 2013-07-30 한국외국어대학교 연구산학협력단 푸쉬 서버를 이용한 메시지 전송 방법 및 그 시스템
KR20170087116A (ko) 2016-01-19 2017-07-28 명지대학교 산학협력단 모바일 단말의 보안 감시 시스템 및 이를 이용한 모바일 단말의 보안 감시 방법
KR20170087195A (ko) * 2016-01-20 2017-07-28 장중혁 푸시 메시지 중계 서비스 제공 방법, 그를 위한 푸시 메시지 수집 시스템 및 사용자 단말 장치
WO2018035224A1 (en) * 2016-08-16 2018-02-22 Convida Wireless, Llc Keeping the ue awake

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395112A (zh) * 2020-11-30 2021-02-23 深圳市和讯华谷信息技术有限公司 应用消息处理方法、装置、计算机设备及存储介质
KR20230101524A (ko) * 2021-12-29 2023-07-06 주식회사 카카오엔터프라이즈 모바일 디바이스 관리 방법 및 장치

Also Published As

Publication number Publication date
KR102412226B1 (ko) 2022-06-22

Similar Documents

Publication Publication Date Title
Warren et al. Push notification mechanisms for pervasive smartphone applications
CN109462655B (zh) 一种网络远程协助方法、系统、电子设备和介质
US20160057211A1 (en) System and method for secure integration of web and mobile applications on the public internet with enterprise application servers in the public, private or hybrid cloud
CN103297470B (zh) 永远在线业务的处理方法、应用服务器、用户终端和系统
US20150019723A1 (en) Method and apparatus for processing messages
US7685292B1 (en) Techniques for establishment and use of a point-to-point tunnel between source and target devices
CN1909507B (zh) 一种报文转发方法和系统
CN102739411A (zh) 提供证明服务
CN100363870C (zh) 用于在具有sip功能的终端上提供多个客户支持的方法和设备
EP1713219A1 (en) Communications device and method
CN106716975B (zh) 传输链路的续传方法、装置和系统
CN102647365A (zh) 处理消息及消息状态的方法、装置和数据交换服务器
US7761576B2 (en) Peer-to-peer communications system and computer readable medium
KR102412226B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
US8521804B2 (en) Interconnection system between at least one communication device and at least one remote data system and interconnection method
US20060089164A1 (en) Method and system for transmitting MMS notification message
KR101944744B1 (ko) 메시지 처리 장치
KR102412225B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
CN108092993A (zh) 一种网络数据传输控制方法和系统
CN104184821A (zh) 基于推送通知的会话及终端应答反馈的方法和装置
US9450906B2 (en) Managing a messaging queue in an asynchronous messaging system
KR101965307B1 (ko) 메시지 처리 장치
KR101965306B1 (ko) 메시지 서버 및 이를 포함하는 메시지 처리 장치
CN114679472A (zh) 通信系统、方法、装置、存储介质及电子设备
KR20070061139A (ko) Parla y X 웹서비스를 이용한 멀티미디어 메시지서비스 방법 및 장치

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