KR20190030367A - 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법 - Google Patents

메시지를 처리하기 위한 전자 장치 및 그의 동작 방법 Download PDF

Info

Publication number
KR20190030367A
KR20190030367A KR1020170117731A KR20170117731A KR20190030367A KR 20190030367 A KR20190030367 A KR 20190030367A KR 1020170117731 A KR1020170117731 A KR 1020170117731A KR 20170117731 A KR20170117731 A KR 20170117731A KR 20190030367 A KR20190030367 A KR 20190030367A
Authority
KR
South Korea
Prior art keywords
message
application program
server
processor
electronic device
Prior art date
Application number
KR1020170117731A
Other languages
English (en)
Other versions
KR102398502B1 (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 KR1020170117731A priority Critical patent/KR102398502B1/ko
Priority to PCT/KR2018/010772 priority patent/WO2019054779A1/ko
Priority to US16/646,794 priority patent/US10911908B2/en
Publication of KR20190030367A publication Critical patent/KR20190030367A/ko
Application granted granted Critical
Publication of KR102398502B1 publication Critical patent/KR102398502B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72522
    • 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
    • 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/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • 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/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • 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/58Message adaptation for wireless communication
    • 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/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • H04M1/72583
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/34Microprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/38Displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/52Details of telephonic subscriber devices including functional features of a camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명의 다양한 실시예는 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법에 관한 것이다. 이때 전자 장치는 디스플레이, 무선 통신 회로, 상기 통신 회로 및 디스플레이에 작동적으로 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결된 메모리를 포함하며, 상기 메모리는 SMS(short message service) 어플리케이션 프로그램인 제1 어플리케이션 프로그램 및 non-SMS 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 저장하고, 상기 메모리는, 실행될 때 상기 프로세서로 하여금, 상기 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 상기 통신 회로를 통해 푸시 알림을 수신하고, 상기 푸시 알림은 상기 제1 어플리케이션 프로그램에 대한 메시지를 나타내고, 상기 제2 어플리케이션 프로그램을 이용하여, 상기 통신 회로를 통해, 상기 외부 서버로 상기 메시지에 대한 요청을 전송하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 통신 회로를 통해 상기 외부 서버로부터 상기 메시지를 수신하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 상기 제1 어플리케이션 프로그램으로 제공하고, 상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 하는 인스트럭션들을 포함할 수 있다. 다른 실시 예들도 가능할 수 있다.

Description

메시지를 처리하기 위한 전자 장치 및 그의 동작 방법{ELECTRONIC DEVICE FOR PROCESSING A MESSAGE AND OPERATING METHOD THEREOF}
본 발명의 다양한 실시예는 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법에 관한 것이다.
정보통신 기술 및 반도체 기술의 발전으로 각종 전자 장치들이 다양한 멀티미디어 서비스를 제공하는 멀티미디어 장치로 발전하고 있다. 예를 들어, 전자 장치는 전자 장치에 설치된 어플리케이션을 이용하여 음성 통화 서비스, 메시지 서비스, 방송 서비스, 무선 인터넷 서비스, 카메라 서비스, 음악 재생 서비스, 및 게임 서비스와 같은 다양한 서비스를 제공할 수 있다.
메시지 서비스는, SMS(short message service), LMS(long message service), MMS(multimedia message service), RCS(Rich Communication Services), WAP 푸시(wireless application protocol push), 푸시 알림(push notification) 서비스 등을 포함할 수 있다.
전자 장치는 SMS, LMS, 또는 MMS 등을 이용하여 메시지를 송수신할 수 있다. SMS, LMS, 또는 MMS 등을 이용하는 메시지는 건 별로 요금이 부과될 수 있다. 따라서, 많은 수의 사용자 전자 장치들로 메시지를 전송하고자 하는 사업자의 경우, SMS, LMS, 또는 MMS와 같은 서비스 이용에 따른 비용이 부담될 수 있다.
전자 장치는 전자 장치에 설치된 적어도 하나의 어플리케이션에 대한 푸시 알림 서비스를 제공할 수 있다. 예를 들어, 전자 장치는 특정 게임 어플리케이션에 대한 푸시 메시지가 수신되면, 특정 게임 어플리케이션을 이용하여 푸시 알림 메시지를 1회 표시할 수 있다. 전자 장치는 푸시 알림 메시지에 대한 사용자 확인이 감지되면, 해당 푸시 알림 메시지를 별도로 저장하지 않고 폐기할 수 있다. 따라서, 전자 장치의 사용자는 한번 확인한 푸시 알림 메시지를 재확인할 수 없는 경우가 발생할 수 있다.
본 발명의 다양한 실시예들은 전자 장치에서 푸시 알림 서비스를 이용하여 수신된 메시지를 다른 메시지 서비스를 이용하여 수신된 메시지와 같이 처리 및 관리하기 위한 방법 및 장치를 제공함에 있다.
다양한 실시예에 따르면, 전자 장치는 디스플레이, 무선 통신 회로, 상기 통신 회로 및 디스플레이에 작동적으로 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결된 메모리를 포함하며, 상기 메모리는 SMS(short message service) 어플리케이션 프로그램인 제1 어플리케이션 프로그램 및 non-SMS 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 저장하고, 상기 메모리는, 실행될 때 상기 프로세서로 하여금, 상기 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 상기 통신 회로를 통해 푸시 알림을 수신하고, 상기 푸시 알림은 상기 제1 어플리케이션 프로그램에 대한 메시지를 나타내고, 상기 제2 어플리케이션 프로그램을 이용하여, 상기 통신 회로를 통해, 상기 외부 서버로 상기 메시지에 대한 요청을 전송하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 통신 회로를 통해 상기 외부 서버로부터 상기 메시지를 수신하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 상기 제1 어플리케이션 프로그램으로 제공하고, 및 상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 시스템은 네트워크 인터페이스, 상기 인터페이스에 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서에 작동적으로 연결된 적어도 하나의 메모리를 포함하며, 상기 메모리는, 실행될 때 상기 프로세서로 하여금, 상기 인터페이스를 통해 외부 서버로부터 non-SMS(non-short message service) 포맷의 제1 메시지 데이터를 수신하고, 상기 제1 메시지 데이터는 전화번호를 포함하는 복수의 모바일 디바이스들로 전송되며, 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 제1 메시지 데이터의 인디케이션을 포함하는 푸시 알림을, 상기 모바일 디바이스들의 전화번호에 적어도 부분적으로 기초하여, 상기 모바일 디바이스들 중 일부에 해당하는 적어도 하나의 모바일 디바이스로 전송하고, 상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로부터 상기 제1 메시지 데이터에 대한 요청을, 수신하고, 상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로 상기 non-SMS 포맷의 상기 제1 메시지 데이터를 전송하고, 및 상기 인터페이스를 통해, 나머지 모바일 디바이스들의 전화번호에 적어도 부분적으로 기초하여, 푸시 알림이 전송되지 않은 상기 나머지 모바일 디바이스들에 대한 정보를 상기 외부 서버로 제공하도록 하는 인스트럭션을 포함할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치 및 그 동작 방법은, 전자 장치에서 푸시 알림 서비스를 이용하여 수신된 메시지가 SMS, LMS, 또는 MMS와 동일한 환경에서 표시 및 저장되도록 처리함으로써, 메시지 확인에 대한 사용자 편의성을 향상시킬 수 있고, 메시지 크기 제한 및 메시지 비용으로 인한 사업자의 부담을 감소시킬 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치는 서킷 네트워크(circuit network)가 존재하지 않는 환경에서 패킷 데이터를 이용하여 SMS 메시지를 수신할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치 및 그 동작 방법은 3GPP(3rd Generation Partnership Project), 또는 3GPP2의 SMS 표준 스펙을 수정하지 않고, 푸시 알림 서비스를 이용하여 SMS 메시지를 제공할 수 있다.
도 1은 본 발명의 다양한 실시에에 따른 시스템 구조를 도시한다.
도 2는 본 발명의 다양한 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 3은 본 발명의 다양한 실시예에 따른 프로그램의 블록도이다.
도 4는 본 발명의 다양한 실시예에 따른 전자 장치의 블록도이다.
도 5는 본 발명의 다양한 실시예에 따른 프로그램의 블록도이다.
도 6a 및 도 6b는 본 발명의 다양한 실시예에 따른 메시지의 포맷을 도시한다.
도 7은 본 발명의 다양한 실시에에 따른 제1 서버의 블록도이다.
도 8은 본 발명의 다양한 실시예에 따른 전자 장치에서 푸시 알림을 이용하여 메시지를 수신하는 흐름도이다.
도 9는 본 발명의 다양한 실시예에 따른 전자 장치에서 메시지의 무결성을 검사하는 흐름도이다.
도 10은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지를 처리하는 흐름도이다.
도 11은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지의 허용 여부를 설정하는 흐름도이다.
도 12는 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지를 표시하는 화면 구성을 도시한다.
도 13은 본 발명의 다양한 실시예에 따른 제1 서버에서 푸시 알림을 이용하여 메시지를 전송하는 흐름도이다.
도 14a 내지 도 14c는 본 발명의 다양한 실시예에 따른 시스템 내 신호 흐름을 도시한다.
도 15는 본 발명의 다양한 실시예에 따른 시스템에서 전자 장치의 등록을 위한 신호 흐름을 도시한다.
도 16은 본 발명의 다양한 실시예에 따른 시스템에서 푸시 알림을 이용하는 메시지를 제공하기 위한 신호 흐름을 도시한다.
도 17은 본 발명의 다양한 실시예에 따른 시스템에서 메시지의 무결성을 검사하기 위한 신호 흐름을 도시한다.
도 18은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지에 관련된 오류를 처리하기 위한 신호 흐름을 도시한다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 시스템 구조를 도시한다. 다양한 실시예에 따른 시스템은 전자 장치(100), 네트워크(110), 제1 서버(120), 및 제2 서버(130)를 포함할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 적어도 두 개의 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 전자 장치(100)는 단문 메시지 서비스(short message service, SMS) 어플리케이션 프로그램인 제1 어플리케이션 프로그램과 비-단문 메시지 서비스(non-short message service, non-SMS) 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 포함할 수 있다. 일실시예에 따르면, 전자 장치(100)는 제2 어플리케이션 프로그램을 이용하여 서비스 등록 요청 신호를 전송함으로써, 제1 서버(120)에 식별 정보(예: 전화번호)를 등록할 수 있다. 일실시예에 따르면, 전자 장치(100)는 제2 어플리케이션 프로그램을 이용하여, 네트워크(110)(예: 패킷 교환(packet switched) 네트워크)를 통해 푸시 알림 및 푸시 알림에 관련된 메시지(또는 푸시 알림을 통한 메시지)를 수신할 수 있다. 일실시예에 따르면, 전자 장치(100)는 제2 어플리케이션 프로그램을 이용하여 수신된 메시지의 무결성 검사를 수행할 수 있다. 일실시예에 따르면, 전자 장치(100)는 제2 어플리케이션 프로그램을 이용하여 수신된 메시지의 포맷을 변경하고, 포맷이 변경된 수신 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예를 들어, 전자 장치(100)는 제2 어플리케이션 프로그램을 이용하여 수신된 메시지의 포맷을 non-SMS 포맷에서 SMS 포맷으로 변경할 수 있다. 전자 장치(100)는 메시지 포맷이 변경된 수신 메시지를 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 제공할 수 있다. 예를 들어, 전자 장치(100)는 SMS 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 푸시 알림에 관련된 수신 메시지를 표시할 수 있다. 다른 예로, 전자 장치(100)는 SMS 어플리케이션 프로그램을 이용하여 푸시 알림에 관련된 수신 메시지를 저장할 수 있다. 일실시예에 따르면, 전자 장치(100)는 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해, 푸시 알림을 통한 수신 메시지의 수신 허용 여부와 관련된 사용자 입력을 감지하고, 감지된 사용자 입력에 기초하여 수신 허용 여부를 나타내는 신호를 제1 서버(120)로 전송할 수 있다.
일실시예에 따르면, 전자 장치(100)는 제1 어플리케이션 프로그램을 이용하여, 네트워크(110)(예: 회선 교환(circuit switched) 네트워크)를 통해 제2 서버(130)로부터 SMS(또는 LMS) 메시지를 수신할 수 있다. 일실시예에 따르면, 전자 장치(100)는 수신된 SMS 메시지를 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 제공할 수 있다. 예를 들어, 전자 장치(100)는 SMS 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 SMS 메시지를 표시할 수 있다. 다른 예로, 전자 장치(100)는 SMS 어플리케이션 프로그램을 이용하여 SMS 메시지를 저장할 수 있다.
다양한 실시예에 따르면, 제1 서버(120)는 제2 서버(130)로부터 다수의 전자 장치들과 관련된 non-SMS 포맷의 메시지를 수신하고, 푸시 알림 서비스를 이용하여 non-SMS 포맷의 메시지를 전송하기 위한 기능을 수행할 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지는 공지된 SMS 표준 규격을 따르는 데이터를 적어도 일부분으로 포함하는 메시지일 수 있다. 예를 들어, non-SMS 포맷의 메시지는 메시지 내의 적어도 일부분에 3GPP, 또는 3GPP2 SMS 표준 규격을 따르는 TPDU 데이터를 포함할 수 있다. 일실시예에 따르면, 제1 서버(120)는 패킷 교환 네트워크를 이용하는 푸시 알림 서비스를 이용하여, 다수의 전자 장치들 중 적어도 하나의 전자 장치로 non-SMS 포맷의 메시지를 전송할 수 있다. 예를 들어, 제1 서버(120)는 다수의 전자 장치들 중 적어도 하나의 전자 장치로 메시지가 존재함을 알리는 푸시 알림을 전송할 수 있다. 제1 서버(120)는 다수의 전자 장치들 중 적어도 하나의 전자 장치로부터의 응답에 기초하여, 푸시 알림에 관련된 메시지, 예컨대, 제2 서버(130)로부터 수신된 non-SMS 포맷의 메시지를 다수의 전자 장치들 중 적어도 하나의 전자 장치로 전송할 수 있다. 일실시예에 따르면, 제1 서버(120)는 다수의 전자 장치들 중 적어도 하나의 전자 장치로 푸시 알림을 제공하는 푸시 서버(122), 및 제2 서버(130)로부터 수신된 non-SMS 포맷의 메시지를 저장하고, 다수의 전자 장치들 중 적어도 하나의 전자 장치로 푸시 알림에 관련된 non-SMS 포맷의 메시지를 제공하는 패스 서버(124)를 포함할 수 있다. 패스 서버(124)는, 예를 들어, 제2 서버(130)로부터 non-SMS 포맷의 메시지를 다수의 전자 장치들로 전송해줄 것을 요청받고, 수신된 non-SMS 포맷의 메시지를 저장할 수 있다. 패스 서버(124)는, 예를 들어, 다수의 전자 장치들 중 적어도 하나로 전송할 non-SMS 포맷의 메시지가 존재함을 푸시 서버(122)에 알릴 수 있다. 패스 서버(124)는, 예를 들어, 다수의 전자 장치들 중 적어도 하나로부터의 요청에 따라, non-SMS 포맷의 메시지를 전송할 수 있다. 푸시 서버(122)는, 예를 들어, 패스 서버(124)의 요청에 따라 다수의 전자 장치들 중 적어도 하나의 전자 장치로 푸시 알림 메시지를 전송함으로써, 패스 서버(124)에 푸시 알림에 관련된 non-SMS 포맷의 메시지가 존재함을 적어도 하나의 전자 장치로 알릴 수 있다. 일실시예에 따르면, 제1 서버(120)는 패스 서버(124)에 서비스에 가입한(또는 등록한) 전자 장치들의 식별 정보(예: 전화번호)를 포함하는 가입자 목록, 또는 제2 서버(130)의 메시지에 대한 수신을 거절한 전자 장치들의 식별 정보를 포함하는 거절 목록 중 적어도 하나를 저장할 수 있다. 가입자 목록 및 거절 목록의 생성 및/또는 저장 방식에 대해서는 하기 도 14b 및 도 14c에서 상세히 설명할 것이다. 제1 서버(120)는 제2 서버(130)로부터 수신되는 수신자 목록, 가입자 목록, 또는 거절 목록 중 적어도 하나에 기초하여, 푸시 알림 및 푸시 알림에 관련된 메시지를 전송할 적어도 하나의 전자 장치를 결정할 수 있다. 수신자 목록은 제2 서버(130)로부터 수신되는 non-SMS 포맷의 메시지를 전송할 전자 장치들의 식별 정보(예: 전화번호)를 포함할 수 있다. 일실시예에 따르면, 제1 서버(120)는 수신자 목록에 포함된 전자 장치들 중에서 non-SMS 포맷의 메시지가 전송되지 않은 전자 장치들을 식별하고, 식별된 전자 장치들에 대한 정보를 제2 서버(130)로 전송할 수 있다. 예를 들어, 제1 서버(120)는 수신자 목록에 포함된 전자 장치들 중에서 가입자 목록에 포함되지 않은 전자 장치, 거절 목록에 포함된 전자 장치, 또는 non-SMS 포맷의 메시지 전송을 시도하였으나 전송이 실패된 것으로 확인된 전자 장치에 대한 정보를 제2 서버(130)로 전송할 수 있다.
다양한 실시예에 따르면, 푸시 서버(122) 및 패스 서버(124)는 논리적 및/또는 물리적으로 구분될 수 있다. 본 발명의 다양한 실시에서는 설명의 편의를 위해, 제1 서버(120)의 기능에 따라 제1 서버(120)를 푸시 서버(122)와 패스 서버(124)로 구분하여 설명하였으나, 제1 서버(120)는 푸시 서버(122)와 패스 서버(124)로 구분되지 않을 수 있다. 그러나, 본 발명은 이에 한정되지 않는다. 예를 들어, 푸시 서버(122) 및 패스 서버(124)는 제1 서버(120)에 포함되지 않는, 별도의 독립적인 서버일 수 있다. 제1 서버(120)에 포함되는 서버들의 명칭(예: 푸시 서버, 패스 서버)은 설명의 편의를 위해 예시적으로 지칭한 것으로서, 다양한 실시예에 따르면 서버의 명칭은 변경될 수 있다.
다양한 실시예에 따르면, 제2 서버(130)는 다수의 전자 장치들로 전송할 제1 메시지를 포함하는 non-SMS 포맷의 메시지를 생성할 수 있다. 일실시예에 따르면, 제2 서버(130)는 non-SMS 포맷의 메시지, 및 non-SMS 포맷의 메시지를 전송할 전자 장치들의 식별 정보를 포함하는 수신자 목록을 제1 서버(130)로 전송할 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지는 공지된 SMS 표준 규격을 따르는 데이터를 적어도 일부분으로 포함하는 메시지일 수 있다. 예를 들어, non-SMS 포맷의 메시지는 메시지 내의 적어도 일부분에 3GPP, 또는 3GPP2 SMS 표준 규격을 따르는 TPDU 데이터를 포함할 수 있다. 일 실시예에 따르면, 제2 서버(130)는 제1 서버(130)로부터 non-SMS 포맷의 메시지가 전송되지 않은 전자 장치들에 대한 정보를 수신할 수 있다. 제2 서버(130)는 제1 메시지를 포함하는 SMS 포맷의 메시지를 생성하고, non-SMS 포맷의 메시지가 전송되지 않은 전자 장치들로 네트워크(110)를 통해 SMS 포맷의 메시지를 전송할 수 있다. 예를 들어, 제2 서버(130)는 서킷 교환 네트워크를 통해 SMS 포맷의 메시지를 전송할 수 있다.
도 2는 본 발명의 다양한 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는, 다양한 실시예들에 따른, 네트워크 환경(200) 내의 전자 장치(201)의 블럭도이다. 도 2를 참조하면, 네트워크 환경(200)에서 전자 장치(201)는 제 1 네트워크(298)(예: 근거리 무선 통신)를 통하여 전자 장치(202)와 통신하거나, 또는 제 2 네트워크(299)(예: 원거리 무선 통신)를 통하여 전자 장치(204) 또는 서버(208)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(201)는 서버(208)를 통하여 전자 장치(204)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(201)는 프로세서(220), 메모리(230), 입력 장치(250), 음향 출력 장치(255), 표시 장치(260), 오디오 모듈(270), 센서 모듈(276), 인터페이스(277), 햅틱 모듈(279), 카메라 모듈(280), 전력 관리 모듈(288), 배터리(289), 통신 모듈(290), 가입자 식별 모듈(296), 및 안테나 모듈(297)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(260) 또는 카메라 모듈(280))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(260)(예: 디스플레이)에 임베디드된 센서 모듈(276)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(220)는, 예를 들면, 소프트웨어(예: 프로그램(240))를 구동하여 프로세서(220)에 연결된 전자 장치(201)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(220)는 다른 구성요소(예: 센서 모듈(276) 또는 통신 모듈(290))로부터 수신된 명령 또는 데이터를 휘발성 메모리(232)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(234)에 저장할 수 있다. 일실시예에 따르면, 프로세서(220)는 메인 프로세서(221)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(221)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(223)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(223)는 메인 프로세서(221)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(223)는, 예를 들면, 메인 프로세서(221)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(221)를 대신하여, 또는 메인 프로세서(221)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(221)와 함께, 전자 장치(201)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(260), 센서 모듈(276), 또는 통신 모듈(290))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(223)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(280) 또는 통신 모듈(290))의 일부 구성 요소로서 구현될 수 있다. 메모리(230)는, 전자 장치(201)의 적어도 하나의 구성요소(예: 프로세서(220) 또는 센서모듈(276))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(240)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(230)는, 휘발성 메모리(232) 또는 비휘발성 메모리(234)를 포함할 수 있다.
프로그램(240)은 메모리(230)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(242), 미들 웨어(244) 또는 어플리케이션(246)을 포함할 수 있다.
입력 장치(250)는, 전자 장치(201)의 구성요소(예: 프로세서(220))에 사용될 명령 또는 데이터를 전자 장치(201)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(255)는 음향 신호를 전자 장치(201)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(260)는 전자 장치(201)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(260)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(270)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(270)은, 입력 장치(250) 를 통해 소리를 획득하거나, 음향 출력 장치(255), 또는 전자 장치(201)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(202)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(276)은 전자 장치(201)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(276)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(277)는 외부 전자 장치(예: 전자 장치(202))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(277)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(278)는 전자 장치(201)와 외부 전자 장치(예: 전자 장치(202))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(279)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(279)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(280)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(280)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(288)은 전자 장치(201)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(289)는 전자 장치(201)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(290)은 전자 장치(201)와 외부 전자 장치(예: 전자 장치(202), 전자 장치(204), 또는 서버(208))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(290)은 프로세서(220)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(290)은 무선 통신 모듈(292)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(294)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(298)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(299)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(290)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(292)은 가입자 식별 모듈(296)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(201)를 구별 및 인증할 수 있다.
안테나 모듈(297)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(290)(예: 무선 통신 모듈(292))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(299)에 연결된 서버(208)를 통해서 전자 장치(201)와 외부의 전자 장치(204)간에 송신 또는 수신될 수 있다. 전자 장치(202, 204) 각각은 전자 장치(201)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(201)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(201)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(201)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(201)로 전달할 수 있다. 전자 장치(201)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
일실시예에 따르면, 전자 장치(201)는 도 1의 전자 장치(100)일 수 있고, 서버(208)는 도 1의 제1 서버(120) 및/또는 제2 서버(130)이고, 네트워크(299)는 도 1의 네트워크(110)일 수 있다. 일실시예에 따르면, 네트워크(299)는 패킷 교환 네트워크 및 서킷 교환 네트워크를 포함할 수 있다. 예를 들어, 전자 장치(201)는 패킷 교환 네트워크 및/또는 서킷 교환 네트워크를 통해 서버(208)와 통신할 수 있다.
도 3은 다양한 실시예에 따른 프로그램(240)의 블록도(300)이다. 일실시예에 따르면, 프로그램(240)은 전자 장치(201)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(242), 미들 웨어(244), 또는 상기 운영 체제(242) 상에서 실행 가능한 어플리케이션(246)을 포함할 수 있다. 운영 체제(242)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(240) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(201)에 프리로드되거나, 또는 사용자의 사용 환경에서 외부 전자 장치(예: 전자 장치(202 또는 204), 또는 서버(208))로부터 다운로드되거나 갱신 될 수 있다.
운영 체제(242)는 전자 장치(201)의 시스템 리소스 (예: 프로세스, 메모리, 또는 전원)를 제어(예: 할당 또는 회수)할 수 있다. 운영 체제(242)는, 추가적으로 또는 대체적으로, 전자 장치(201)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(250), 음향 출력 장치(255), 표시 장치(260), 오디오 모듈(270), 센서 모듈(276), 인터페이스(277), 햅틱 모듈(279), 카메라 모듈(280), 전력 관리 모듈(288), 배터리(289), 통신 모듈(290), 가입자 식별 모듈(296), 또는 안테나 모듈(297)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들 웨어(244)는 어플리케이션(246)이 전자 장치(201)의 하나 이상의 리소스들이 제공하는 기능 또는 정보를 사용할 수 있도록 다양한 기능들을 어플리케이션(246)으로 제공할 수 있다. 미들 웨어(244)는, 예를 들면, 어플리케이션 매니저(301), 윈도우 매니저(303), 멀티미디어 매니저(305), 리소스 매니저(307), 파워 매니저(309), 데이터베이스 매니저(311), 패키지 매니저(313), 커넥티비티 매니저(315), 노티피케이션 매니저(317), 로케이션 매니저(319), 그래픽 매니저(321), 시큐리티 매니저(323), 통화 매니저(325), 또는 음성 인식 매니저(327)를 포함할 수 있다. 어플리케이션 매니저(301)는, 예를 들면, 어플리케이션(246)의 생명 주기를 관리할 수 있다. 윈도우 매니저(303)는, 예를 들면, 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(305)는, 예를 들면, 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(307)는, 예를 들면, 어플리케이션(246)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(309)는, 예를 들면, 배터리의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(201)의 동작에 필요한 전력 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(309)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다.
데이터베이스 매니저(311)는, 예를 들면, 어플리케이션(246)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(313)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(315)는, 예를 들면, 전자 장치(201)와 외부 전자 장치 간의 무선 또는 유선 연결을 관리할 수 있다. 노티피케이션 매니저(317)는, 예를 들면, 발생된 이벤트(예: 통화, 메시지, 또는 알람)를 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(319)는, 예를 들면, 전자 장치(201)의 위치 정보를 관리할 수 있다. 그래픽 매니저(321)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(323)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(325)는, 예를 들면, 전자 장치(201)의 음성 통화 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(327)는, 예를 들면, 사용자의 음성 데이터를 서버(208)로 전송하고, 해당 음성 데이터에 기반하여 전자 장치(201)에서 수행될 기능에 대응하는 명령어(command) 또는 해당 음성 데이터에 기반하여 변환된 문자 데이터를 수신할 수 있다. 일 실시예에 따르면, 미들 웨어(344)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시예에 따르면, 미들 웨어(244)의 적어도 일부는 운영 체제(242)의 일부로 포함되거나, 또는 운영 체제(242)와는 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(246)은, 예를 들면, 홈(351), 다이얼러(353), SMS/MMS(355), IM(instant message)(357), 브라우저(359), 카메라(361), 알람(363), 컨택트(365), 음성 인식(367), 이메일(369), 달력(371), 미디어 플레이어(373), 앨범(375), 와치(377), 헬스(379)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(381)(예: 기압, 습도, 또는 온도 정보) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(246)은 전자 장치(201)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(201)의 다른 어플리케이션(예: 이메일 어플리케이션(369))에서 발생된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(201)의 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치(201)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(260) 또는 카메라 모듈(280))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(260) 또는 카메라 모듈(280)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(236) 또는 외장 메모리(238))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(240))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(201))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(220))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 4는 본 발명의 다양한 실시예에 따른 전자 장치의 블록도이다. 도 4의 전자 장치(401)는 도 1에 도시된 전자 장치(100), 및/또는 도 2에 도시된 전자 장치(201)일 수 있다.
도 4를 참조하면, 전자 장치(401)는 버스(410), 프로세서(420), 메모리(430), 표시 장치(440), 통신 모듈(450), 및 입력 장치(470)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(401)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
다양한 실시예에 따르면, 버스(410)는 예를 들면, 구성요소들(420 내지 470)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
다양한 실시예에 따르면, 프로세서(420)(예: 도 2의 프로세서(220))는 메모리(430)에 포함된 소프트웨어(예: 프로그램(432))를 구동하여 프로세서(420)에 연결된 전자 장치(401)의 적어도 하나의 다른 구성 요소를 제어할 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 푸시 알림에 관련된 서비스 등록 절차를 수행할 수 있다. 일실시예에 따르면, 프로세서(420)는 전자 장치(401)의 식별 정보를 포함하는 푸시 알림 서비스 등록 요청 신호를 제1 서버(480)(예: 도 1의 제1 서버(120))로 전송하도록 통신 모듈(450)(예: 도 2의 통신 모듈(290))을 제어할 수 있다. 전자 장치의 식별 정보는 전화번호, IMEI(international mobile equipment identity), 시리얼 넘버(serial number), 또는 발신자 식별 정보(예: sender ID) 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 푸시 알림 서비스 등록 요청 신호는, non-SMS 어플리케션 프로그램의 식별 정보를 더 포함할 수 있다. 예를 들어, non-SMS 어플리케션 프로그램의 식별 정보는 non-SMS 어플리케이션 프로그램의 ID, 또는 non-SMS 어플리케이션의 키 정보 중 적어도 하나를 포함할 수 있다. non-SMS 어플리케이션 프로그램은 제1 서버(480)로부터 수신되는 메시지를 처리하기 위한 어플리케이션 프로그램일 수 있다. 일실시예에 따르면, 서비스 등록 절차는 미리 설정된 이벤트가 발생된 것에 기초하여 수행될 수 있다. 예를 들어, 프로세서(420)는 전자 장치의 최초 부팅 이벤트, 제1 어플리케이션 프로그램의 최초 실행 이벤트, 제2 어플리케이션 프로그램의 최초 실행 이벤트, 또는 서비스 등록을 요청하는 사용자 입력 감지 이벤트 중 적어도 하나의 이벤트가 감지되는 것에 대한 응답으로, 푸시 알림 서비스 등록 요청 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 제1 어플리케이션 프로그램은 SMS 어플리케이션 프로그램일 수 있으며, 제2 어플리케이션 프로그램은 non-SMS 어플리케이션 프로그램일 수 있다. 일실시예에 따르면, 프로세서(420)는 푸시 알림에 관련된 서비스 등록 절차가 수행됨을 나타내는 인디케이션을 포함하는 사용자 인터페이스가 표시 장치(440)(예: 도 2의 표시 장치(260))에 표시되도록 제어할 수 있다. 일실시예에 따르면, 프로세서(420)는 푸시 알림에 관련된 서비스 등록 절차가 수행됨을 나타내는 인디케이션에 대한 표시를 생략할 수 있다. 예를 들어, 프로세서(420)는 제1 어플리케이션 프로그램의 최초 실행 이벤트가 감지되면, 푸시 알림에 관련된 서비스 등록 절차를 수행하면서, 제1 어플리케이션 프로그램의 실행과 관련된 사용자 인터페이스가 표시 장치(440)에 표시되도록 제어할 수 있다. 일실시예에 따르면, 프로세서(420)는 미리 획득된 발신자 식별 정보(예: sender ID)를 포함하는 서비스 등록 요청 신호를 제1 서버(480)의 푸시 서버(482)(예: 도 1의 푸시 서버(122))로 전송하도록 통신 모듈(450)을 제어할 수 있다. 프로세서(420)는 서비스 등록 요청 신호에 대한 응답으로, 통신 모듈(450)을 통해, 푸시 서버(482)로부터 등록 토큰을 포함하는 신호를 수신할 수 있다. 등록 토큰은 제2 어플리케이션 프로그램에 대한 인증 정보일 수 있다. 프로세서(420)는 수신된 등록 토큰을 포함하는 신호를 제1 서버(480)의 패스 서버(484)(예: 도 1의 패스 서버(124))로 전송하도록 통신 모듈(450)을 제어할 수 있다. 일실시예에 따르면, 제1 서버(480)의 푸시 서버(482) 또는 패스 서버(484)로 전송되는 신호는 전자 장치(201)의 전화번호를 포함할 수 있다. 일실시예에 따르면, 서비스 등록 요청 신호에 포함되는 발신자 식별 정보는, 개발 단계에서 제1 서버(480)의 푸시 서버(482)로부터 획득된 정보일 수 있다. 예를 들어, 전자 장치(401)의 개발자는 전자 장치(401)의 개발 단계에서 제1 서버(480)의 푸시 서버(482)로부터 전자 장치(401)에 대한 발신자 식별 정보, 또는 서버 키 정보 중 적어도 하나를 수신할 수 있다. 발신자 식별 정보는 제1 서버(480)의 푸시 서버(482) 및/또는 패스 서버(484)에서 전자 장치(401)를 식별하기 위해 이용되는 전자 장치(401)의 식별 정보일 수 있으며, 서버 키 정보는 제1 서버(480)의 패스 서버(484)가 제1 서버(480)의 푸시 서버(482)에 접근하는데 이용되는 정보일 수 있다. 전자 장치(401)의 개발자는 수신된 서버 키 정보를 제1 서버(480)의 패스 서버(484)에 등록하고, 수신된 발신자 식별 정보를 전자 장치(401)의 발신자 식별 정보로서 메모리(430)(예: 도 2의 메모리(230))에 저장할 수 있다. 일실시예에 따르면, 프로세서(420)는 서비스 등록 절차를 수행하기 위한 이벤트 감지 시, 메모리(430)에 푸시 서버(482)로부터 수신된 등록 토큰이 존재하는지 여부에 기초하여, 서비스 등록 절차 수행 여부를 결정할 수 있다. 예를 들어, 프로세서(420)는 메모리(430)에 푸시 서버(482)로부터 수신된 등록 토큰이 존재하지 않을 경우, 서비스 등록 절차가 수행된 적이 없는 것으로 결정하고, 서비스 등록 절차를 수행할 수 있다. 다른 예로, 프로세서(420)는 메모리(430)에 푸시 서버(482)로부터 수신된 등록 토큰이 존재하는 경우, 서비스 등록 절차가 이전에 수행된 것으로 판단하고, 서비스 등록 절차를 수행하지 않을 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여, 통신 모듈(450)을 통해 제1 서버(480)로부터 푸시 알림 및 푸시 알림에 관련된 non-SMS 포맷의 메시지를 수신할 수 있다. 일 실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여, 통신 모듈(450)을 통해 제1 서버(480)로부터 푸시 알림 메시지를 수신할 수 있다. 일실시예에 따르면, 푸시 알림 메시지는 제1 서버(480)에 제1 어플리케이션 프로그램에 대한 메시지가 존재함을 나타낼 수 있다. 예를 들어, 푸시 알림 메시지는 제1 서버(480)에 저장된 제1 어플리케이션 프로그램에 대한 메시지의 식별 정보(예: ID)를 포함할 수 있다. 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여 푸시 알림에 관련된 non-SMS 포맷의 메시지를 전송해줄 것을 요청하는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 예를 들어, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여 푸시 알림 메시지로부터 메시지 식별 정보를 획득하고, 메시지 식별 정보를 포함하는 메시지 요청 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 일실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여 제1 서버(480)로부터 메시지 식별 정보에 대응되는 메시지를 수신할 수 있다. 수신된 메시지는 non-SMS 포맷의 메시지일 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지는 공지된 SMS 표준 규격을 따르는 데이터를 적어도 일부분으로 포함하는 메시지일 수 있다. 예를 들어, non-SMS 포맷의 메시지는 메시지 내의 적어도 일부분에 3GPP, 또는 3GPP2 SMS 표준 규격을 따르는 TPDU 데이터를포함할 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 수신된 non-SMS 포맷의 메시지에 대한 무결성 검사를 수행하고, 무결성 검사에 따른 응답 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 예를 들어, 프로세서(420)는 제1 서버(480)와 인증서 및 데이터 세션 키를 교환할 수 있으며, 교환된 인증서 및 데이터 세션 키에 기초하여, 제1 서버(480)로부터 수신된 메시지에 대한 무결성 검사를 수행하여 무결성이 확보되었는지 여부를 결정할 수 있다. 일실시예에 따르면, 프로세서(420)는 수신 메시지에 대한 무결성이 확보되지 않은 것으로 결정되면, 제1 서버(480)로 NACK 응답 신호를 전송하도록 통신 모듈(450)을 제어할 수 있다. 일실시예에 따르면, 프로세서(420)는 수신 메시지에 대한 무결성이 확보된 것으로 결정되면, 제1 서버(480)로 ACK 응답 신호를 전송하도록 통신 모듈(450)을 제어할 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여 수신 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예를 들어, 프로세서(420)는 수신 메시지에 대한 무결성이 확보된 것으로 결정되면, 제2 어플리케이션 프로그램을 이용하여 수신 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 일실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여 수신 메시지의 포맷을 변경한 후, 메시지 포맷이 변경된 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예를 들어, 프로세서(420)는 non-SMS 포맷의 수신 메시지를 제1 어플리케이션 프로그램에 의해 처리될 수 있는 SMS 포맷으로 변경할 수 있다. 본 발명의 다양한 실시예에서는 SMS는 LMS를 포함하는 의미로 이용될 수 있다. 예를 들어, SMS 포맷은, SMS 포맷, 또는 LMS 포맷 중 적어도 하나를 포함하는 의미일 수 있다. 다른 예로, SMS 메시지는 SMS 메시지, 또는 LMS 메시지 중 적어도 하나를 포함하는 의미일 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여 수신 메시지를 처리할 수 있다. 일실시예에 따르면, 프로세서(420)는 메시지 포맷이 변경된 수신 메시지가 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 표시되도록 표시 장치(440)를 제어할 수 있다. 일 실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 메시지 포맷이 변경된 수신 메시지를 저장할 수 있다. 예를 들어, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, SMS 메시지 수신함에 수신 메시지가 저장되도록 제어할 수 있다. 일실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 수신 메시지의 처리에 관련된 오류를 처리할 수 있다. 예를 들어, 프로세서(420)는 수신 메시지에 대한 저장 가능 여부, 수신 메시지에 대한 중복 수신 여부, 또는 수신 메시지의 데이터 포맷 처리 가능 여부 중 적어도 하나에 기초하여 오류가 발생되는지 여부를 결정할 수 있다. 프로세서(420)는 오류가 발생된 것으로 결정되는 경우, 제1 어플리케이션 프로그램을 이용하여 오류 발생 원인을 나타내는 코드를 생성할 수 있다. 예를 들어, 프로세서(420)는 잔여 메모리 용량 및 수신 메시지의 크기에 기초하여, 수신 메시지의 저장 가능 여부를 결정할 수 있다. 프로세서(420)는 잔여 메모리 용량이 수신 메시지의 크기보다 작은 경우, 메모리 용량에 의해 수신 메시지의 저장이 불가능함을 나타내는 제1 원인 코드를 생성할 수 있다. 다른 예로, 프로세서(420)는 수신 메시지의 중복 수신 여부를 결정하고, 중복 수신된 경우, 수신 메시지가 중복 수신되었음을 나타내는 제2 원인 코드를 생성할 수 있다. 또 다른 예로, 프로세서(420)는 수신 메시지에 포함된 데이터의 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷인지 여부를 확인하고, 수신 메시지에 포함된 데이터의 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷이 아닌 경우, 수신 메시지의 데이터 포맷 오류를 나타내는 제3 원인 코드를 생성할 수 있다. 일실시예에 따르면, 프로세서(420)는 제2 어플리케이션 프로그램을 이용하여, 오류 발생 원인을 나타내는 코드에 대응되는 동작을 수행할 수 있다. 예를 들어, 프로세서(420)는 오류 발생 원인을 나타내는 코드가 제1 원인 코드인 경우, 제2 어플리케이션 프로그램을 이용하여 메모리 용량에 대한 경고 메시지가 표시 장치(440)에 표시되도록 제어할 수 있다. 예컨대, 프로세서(420)는 메모리 용량에 대한 경고 메시지가 표시 장치(440)에 표시되도록 제어함으로써, 사용자에게 메모리 용량 확보를 요청할 수 있다. 프로세서(420)는 사용자 입력에 의해 메모리 용량이 확보되는 것을 감지하고, 제2 어플리케이션 프로그램을 이용하여 수신 메시지를 제1 어플리케이션 프로그램으로 재전송할 수 있다. 다른 예로, 프로세서(420)는 오류 발생 원인을 나타내는 코드가 제2 원인 코드인 경우, 해당 수신 메시지가 제1 어플리케이션 프로그램에 의해 이미 처리된 메시지인 것으로 확인하고, 수신 메시지에 대한 처리 동작이 종료되도록 제어할 수 있다. 예컨대, 프로세서(420)는 수신 메시지를 폐기함으로써, 수신 메시지에 대한 처리 동작을 종료시킬 수 있다. 또 다른 예로, 프로세서(420)는 오류 발생 원인을 나타내는 코드가 제3 원인 코드인 경우, 제2 어플리케이션 프로그램을 이용하여 제1 서버(480)로 메시지 처리 실패를 나타내는 신호를 전송할 수 있다. 메시지 처리 실패를 나타내는 메시지는 해당 메시지를 회선 교환 네트워크를 통해 송신해줄 것을 요청하는 정보를 포함할 수 있다. 일실시예에 따르면, 프로세서(420)는 임계 시간 이내에 수신 메시지에 대한 정상 처리가 감지되지 않거나, 오류 발생 원인을 나타내는 코드가 생성되지 않는 경우, 제2 어플리케이션 프로그램을 이용하여 수신 메시지를 제1 어플리케이션 프로그램으로 제공하는 동작을 반복하여 수행할 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 수신 메시지를 표시하는 동안, 푸시 알림을 통한 수신 메시지에 대한 수신 허용 여부를 설정하기 위한 사용자 입력이 감지되는지 여부를 결정할 수 있다. 일실시예에 따르면, 프로세서(420)는 수신 메시지에 포함된 URL(Uniform Resource Locator)에 대한 사용자 입력에 기초하여 수신 허용 여부를 결정하고, 결정된 수신 허용 여부를 나타내는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 예를 들어, 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 표시 장치(440)에 표시된 수신 메시지는 수신 허용을 위한 URL과 수신 거부를 위한 URL 중 적어도 하나를 포함할 수 있다. 프로세서(420)는 수신 허용을 위한 URL에 대한 사용자 입력이 감지된 경우, 해당 URL에 접속하면서, 수신 허용을 나타내는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 프로세서(420)는 수신 거부를 위한 URL에 대한 사용자 입력이 감지된 경우, 해당 URL에 접속하면서 수신 거부를 나타내는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 다른 예로, 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 표시 장치(440)에 표시된 수신 메시지는 수신 허용 설정을 위한 제1 영역과 수신 거부 설정을 위한 제2 영역을 포함할 수 있다. 프로세서(420)는 수신 허용 설정을 위한 제1 영역에 대한 사용자 입력이 감지된 경우, 수신 허용을 나타내는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어하고, 수신 거부 설정을 위한 제2 영역에 대한 사용자 입력이 감지된 경우, 수신 거부를 나타내는 신호를 제1 서버(480)로 전송하도록 통신 모듈(450)을 제어할 수 있다. 일실시예에 따르면, 수신 허용 여부를 나타내는 신호는 전자 장치(401)의 식별 정보(예: 전화번호), 또는 수신 메시지에 대한 발신자 정보 중 적어도 하나를 포함할 수 있다. 수신 메시지에 대한 발신자 정보는 제2 어플리케이션을 이용하여 수신된 메시지로부터 획득될 수 있다. 수신 메시지에 대한 발신자 정보는, 예를 들어, 수신 메시지를 전송한 제2 서버(490)(예: 도 1의 제2 서버(130))의 식별 정보(예: 사업자 전화번호, 또는 사업자 명칭)를 포함할 수 있다.
다양한 실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 통신 모듈(450)을 통해 제2 서버(490)로부터 SMS 포맷의 메시지를 수신할 수 있다. 예를 들어, 전자 장치(401)가 푸시 알림 관련 서비스에 가입하지 않은 전자 장치인 경우, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 통신 모듈(450)을 통해 제2 서버(490)로부터 SMS 포맷의 메시지를 수신할 수 있다. 다른 예로, 제2 어플리케이션 프로그램을 이용하여 수신된 non-SMS 포맷의 메시지에 대한 처리가 실패된 경우, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 통신 모듈(450)을 통해 제2 서버(490)로부터 SMS 포맷의 메시지를 수신할 수 있다. 일실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여 수신된 SMS 포맷의 메시지를 처리할 수 있다. 일실시예에 따르면, 프로세서(420)는 수신 메시지가 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 표시되도록 표시 장치(440)를 제어할 수 있다. 일 실시예에 따르면, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, 수신 메시지를 저장할 수 있다. 예를 들어, 프로세서(420)는 제1 어플리케이션 프로그램을 이용하여, SMS 메시지 수신함에 수신 메시지가 저장되도록 제어할 수 있다.
다양한 실시예에 따르면, 메모리(430)는 소프트웨어(예: 프로그램(432)) 및, 이와 관련된 명령에 대한 입력 데이터 및 출력 데이터를 저장할 수 있다. 일실시예에 따르면, 메모리(430)(예: 도 2의 메모리(230))는 SMS 어플리케이션 프로그램인 제1 어플리케이션 프로그램 및 non-SMS 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 저장할 수 있다. 일 실시예에 따르면, 메모리(430)는 제1 어플리케이션 프로그램 및 제2 어플리케이션 프로그램 외의 다른 어플리케이션 프로그램을 더 저장할 수 있다. 일실시예에 따르면, 메모리(430)는 SMS 포맷의 메시지들을 제1 어플리케이션 프로그램에 관련된 메모리 영역에 저장할 수 있다. 메모리(430)는 non-sms 포맷의 메시지들을 제2 어플리케이션 프로그램에 관련된 메모리 영역에 저장할 수 있다.
다양한 실시예에 따르면, 표시 장치(440)(예: 도 2의 표시 장치(260))는 프로세서(420)의 제어에 따라 다양한 사용자 인터페이스를 표시할 수 있다. 일실시예에 따르면, 표시 장치(440)는 프로세서(420)의 제어에 따라 어플리케이션(예: 제1 어플리케이션 프로그램)의 사용자 인터페이스를 표시할 수 있다. 제1 어플리케이션 프로그램의 사용자 인터페이스는 SMS 포맷의 메시지의 적어도 일부를 포함할 수 있다.
다양한 실시예에 따르면, 통신 모듈(450)(예: 도 2의 통신 모듈(290))은 무선 또는 유선으로 연결된 다른 전자 장치, 제1 서버(480), 또는 제2 서버(490)와 통신할 수 있다. 일실시예에 따르면, 통신 모듈(450)은 패킷 교환 네트워크를 통해 제1 서버(480)로부터 푸시 알림 및 푸시 알림에 관련된 non-SMS 포맷의 메시지(또는 푸시 알림을 통해 non-SMS 포맷의 메시지)를 수신할 수 있다. 일실시예에 따르면, 통신 모듈(450)은 회선 교환 네트워크를 통해 제2 서버(490)로부터 SMS 포맷의 메시지를 수신할 수 있다.
다양한 실시예에 따르면, 입력 장치(460)(예: 도 2의 입력 장치(250))는 메시지 표시 및/또는 메시지 수신 허용 여부에 관련된 제어 명령 또는 데이터를 전자 장치(401)의 외부(예: 사용자)로부터 수신할 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 프로그램(240)의 블록도(500)이다. 도 5의 프로그램(240)은 도 2에 도시된 프로그램(240)일 수 있다. 일실시예에 따르면, 프로그램(240)은 어플리케이션(510), 통화 매니저(520), 및 무선 인터페이스 계층(530)을 포함할 수 있다. 이하에서, 도 5의 프로그램(240)은 도 6a 및 도 6b를 참조하여 설명한다. 도 6a 및 도 6b는 본 발명의 다양한 실시예에 따른 메시지의 데이터 포맷을 도시한다. 이하에서, 제1 서버는 도 1의 제1 서버(120), 및/또는 도 4의 제1 서버(480)일 수 있고, 제2 서버는 도 1의 제2 서버(130), 및/또는 도 4의 제2 서버(490)일 수 있다.
다양한 실시예에 따르면, 어플리케이션(510)(예: 도 2의 어플리케이션(246), 또는 도 3의 어플리케이션(246))은, 제1 어플리케이션(512)과 제2 어플리케이션(514)을 포함할 수 있다. 일실시예에 따르면, 제1 어플리케이션(512)은 SMS 메시지를 처리하는 어플리케이션 프로그램이고, 제2 어플리케이션(514)은 non-SMS 메시지를 처리하는 어플리케이션 프로그램일 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은 푸시 어플리케이션 프로그램, 또는 비 메시지 어플리케이션 프로그램일 수 있다. 푸시 어플리케이션 프로그램은 제1 서버(예: 도 1의 제1 서버(120),또는 도 4의 제1 서버(480))로부터 푸시 알림 메시지를 수신하여 해당 푸시 메시지를 읽어오는 어플리케이션 프로그램일 수 있다.
다양한 실시예에 따르면, 제1 어플리케이션(512)은 통화 매니저(520)의 메시지 핸들러(526)로부터 SMS 메시지를 수신하고, 수신된 메시지를 처리 및 관리하도록 하는 인스트럭션을 포함할 수 있다.
다양한 실시예 따르면, 제2 어플리케이션(514)은 패킷 교환 네트워크를 통해 제1 서버로부터 non-SMS 포맷의 메시지를 수신하도록 하는 인스트럭션을 포함할 수 있다. 예를 들어, 제2 어플리케이션(514)은 인터넷 프로토콜(internet protocol; IP) 인터페이스를 통해 푸시 알림 메시지를 수신하도록 하는 인스트럭션을 포함할 수 있다. 제2 어플리케이션(514)은 푸시 알림 메시지에 포함된 메시지 식별 정보에 기초하여, 제1 서버로 메시지의 전송을 요청하는 신호를 전송하도록 하는 인스트럭션을 포함할 수 있다. 제2 어플리케이션(514)은 제1 서버로부터 non-SMS 포맷의 메시지를 수신하도록 하는 인스트럭션을 포함할 수 있다. 제1 서버로부터 수신된 non-SMS 포맷의 메시지는 적어도 하나의 TPDU(Transport Protocol Data Unit) 데이터로 구성될 수 있다. 일실시예에 따르면, non-SMS 메시지는 다수의 TPDU 데이터가 배열된 형태로 구성될 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은 수신된 non-SMS 메시지를 분석하여 non-SMS 메시지에 포함된 데이터의 타입 정보를 확인하도록 하는 인스트럭션을 포함할 수 있다. 예를 들어, 제2 어플리케이션(514)은 수신된 non-SMS 메시지에 포함된 TPDU 데이터의 타입 정보에 기초하여, non-SMS 메시지에 포함된 TPDU가 공지된 SMS 표준 규격에 대응되는 제1 타입의 데이터인지 여부를 확인할 수 있다. 확인된 타입 정보가 제1 타입에 대응되는 경우, 제2 어플리케이션(514)은 수신된 non-SMS 포맷의 메시지를 통화 매니저(520)의 패스 변환기(522)로 전송하기 위한 인스트럭션을 포함할 수 있다. 예컨대, 제2 어플리케이션(514)은 non-SMS 포맷의 메시지로부터 적어도 하나의 TPDU 데이터를 획득하고, 획득된 TPDU 데이터를 패스 변환기(522)로 전송하기 위한 인스트럭션을 포함할 수 있다. 다른 예로, 확인된 타입 정보가 미리 설정된 제1 타입에 대응되지 않는 경우, 제2 어플리케이션(514)은 확인된 타입에 기초하여 non-SMS 포맷의 메시지를 처리하도록 하는 인스트럭션을 포함할 수 있다. 예컨대, 확인된 타입 정보가 제1 타입에 대응되지 않는 경우, 제2 어플리케이션(514)은 수신된 non-SMS 포맷의 메시지를 패스 변환기(522)로 전송하지 않고, 제2 어플리케이션(514)에서 처리하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은 패스 변환기(522)로부터 non-SMS 포맷의 메시지에 대한 오류 발생 원인을 나타내는 코드가 수신될 경우, 오류 발생 원인을 나타내는 코드에 대응되는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 예를 들어, 제2 어플리케이션(514)은 오류 발생 원인을 나타내는 코드에 기초하여, 패스 변환기(522)로 non-SMS 메시지에 포함된 적어도 하나의 TPDU 데이터를 재전송하거나, non-SMS 메시지를 폐기하거나, 제1 서버로 non-SMS 포맷의 메시지에 대한 처리 실패를 나타내는 신호를 전송하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 제2 어플리케이션은 적어도 하나의 TPDU 데이터를 포함하는 인텐트를 패스 변환기(522)로 제공하기 위한 인스트럭션을 포함할 수 있다.
다양한 실시예에 따르면, 통화 매니저(520)(예: 도 3의 통화 매니저(325))는 패스 변환기(522), 패스 매니저(524), 메시지 핸들러(526), 및 패스 인터페이스(528)를 포함할 수 있다. 일실시예에 따르면, 패스 변환기(522), 패스 매니저(524), 및 패스 인터페이스(518)는 하나의 프로그램 모듈로 구성될 수 있다. 일실시예에 따르면, 통화 매니저(520)는 통화 프레임워크(telephony framework)로 지칭될 수 있다. 일실시예에 따르면, 패스 변환기(522), 패스 매니저(524), 메시지 핸들러(526), 및 패스 인터페이스(528) 중 적어도 하나는 통화 매니저(520)에 포함되지 않을 수 있다. 일실시예에 따르면, 통화 매니저(520)는 미들웨어(예: 도 2의 미들웨어(244), 또는 도 3의 미들웨어(244)) 계층에 포함될 수 있다.
다양한 실시예에 따르면, 패스 변환기(522)는 non-SMS 포맷의 메시지를 SMS 포맷의 메시지로 변경하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 패스 변환기(522)는 제2 어플리케이션(514)으로부터 수신되는 적어도 하나의 TPDU 데이터를 SMS 포맷의 메시지로 변환하도록 하는 인스트럭션을 포함할 수 있다. 예를 들어, 패스 변환기(522)는 도 6a에 도시된 바와 같이, TPDU 데이터를 포함하는 단일 메시지(Single Message)에 대응되는 SMS 포맷 또는 다중 메시지(Multiple Message)에 대응되는 SMS 포맷으로 변환할 수 있다. SMS 포맷으로 변환된 메시지는, 이벤트 ID 필드(610), 메시지 ID 필드(620), 데이터 필드(630), 포맷 필드(640), 또는 추가 정보 필드(650) 중 적어도 하나를 포함할 수 있다. 이벤트 ID 필드(610)는 해당 메시지의 이벤트 종류를 나타내는 정보를 포함할 수 있다. 예를 들어, 해당 메시지가 수신 메시지인지, 또는 응답 메시지임을 나타낼 수 있다. 예컨대, 해당 메시지가 제1 서버로부터 수신된 메시지인 경우, 이벤트 ID 필드(610)는 0x01 값을 포함하고, 해당 메시지가 전자 장치(401)에서 제1 서버로 전송될 응답 메시지인 경우, 이벤트 ID 필드(610)는 0x03 값을 포함할 수 있다. 메시지 ID 필드(620)는 TPDU 데이터에 관련된 메시지 식별 정보를 포함할 수 있다. 예를 들어, 메시지 ID 필드(620)는 제1 서버로부터 수신된 메시지 식별 정보를 포함할 수 있다. 메시지 식별 정보는, 푸시 알림 메시지, 또는 non-SMS 포맷의 메시지로부터 획득될 수 있다. 데이터 필드(630)는 제2 어플리케이션(514)으로부터 수신되는 적어도 하나의 TPDU 데이터를 포함할 수 있다. 예를 들어, 데이터 필드(630)는 단일 메시지에 대응되는 SMS 포맷과 같이, 하나의 TPDU 데이터에 대응되는 하나의 페이로드 필드를 포함하거나, 다중 메시지에 대응되는 SMS 포맷과 같이, 다수의 TPDU 데이터 각각에 대응되는 다수의 페이로드 필드들을 포함할 수 있다. 데이터 포맷 필드(640)는 데이터 필드(630)에 포함된 페이로드 필드의 데이터 포맷을 나타내는 정보를 포함할 수 있다. 예를 들어, 데이터 포맷 필드(640)는 데이터 필드(630)에 포함된 페이로드가 3GPP, 또는 3GPP2 표준 규격에 대응되는 데이터임을 명시하는 정보를 포함할 수 있다. 데이터 포맷 필드(640)에 포함되는 정보는 제1 서버로부터 수신된 non-SMS 포맷의 메시지로부터 획득되거나, 패스 변환기(522)에서 TPDU 데이터를 분석하여 획득할 수 있다. 추가 정보 필드(650)는 확장을 위해 추가된 필드로써, 예를 들어, 안심 문자 등에 관련된 부가 정보를 포함할 수 있다. 일실시예에 따르면, 패스 변환기(522)는 패스 인터페이스(522)로부터 오류 발생 원인을 나타내는 코드가 수신되는 경우, 패스 매니저(524)에 오류 발생에 관련된 메시지의 식별 정보를 요청하고, 원인 코드 및 메시지 식별 정보에 기초하여 응답 메시지를 생성하도록 하는 인스트럭션을 포함할 수 있다. 예를 들어, 패스 변환기(522)는 도 6b에 도시된 바와 같은 응답(Response) 메시지를 생성할 수 있다. 응답 메시지는 이벤트 ID 필드(610), 메시지 ID 필드(620), 또는 원인 코드(cause code) 필드(660) 중 적어도 하나를 포함할 수 있다. 이벤트 ID 필드(610)는 해당 메시지의 이벤트 종류를 나타내는 정보를 포함할 수 있다. 예를 들어, 해당 메시지가 수신 메시지인지, 또는 응답 메시지임을 나타낼 수 있다. 예컨대, 해당 메시지가 제1 서버로부터 수신된 메시지인 경우, 이벤트 ID 필드(640)는 0x01 값을 포함하고, 해당 메시지가 전자 장치(401)에서 제1 서버로 전송될 응답 메시지인 경우, 이벤트 ID 필드(640)는 0x03 값을 포함할 수 있다. 메시지 ID 필드(620)는 TPDU 데이터에 관련된 메시지 식별 정보를 포함할 수 있다. 메시지 ID 필드(620)는 제1 서버에 의해 할당된 메시지 식별 정보를 포함할 수 있으며, 메시지 식별 정보는 패스 매니저(524)로부터 수신될 수 있다. 원인 코드 필드(620)는 메시지 처리에 대한 오류 발생 원인을 나타내는 원인 코드를 포함할 수 있다. 원인 코드는 패스 인터페이스(528)를 통해 메시지 핸들러(526)로부터 수신될 수 있다. 원인 코드는 메모리 용량 부족 및/또는 재시도를 나타내는 제1 원인 코드, 중복 수신 및/또는 무시를 나타내는 제2 원인 코드, 데이터 포맷 오류 및/또는 회선 교환 네트워크를 통한 송신이 요구됨을 나타내는 제3 원인 코드 중 어느 하나일 수 있다. 일실시예에 따르면, 패스 변환기(522)는 SMS 포맷으로 변환된 메시지를 패스 매니저(524)로 제공하고, 생성된 응답 메시지를 제2 어플리케이션(514)으로 제공하도록 하는 인스트럭션을 포함할 수 있다.
다양한 실시예에 따르면, 패스 매니저(524)는 패스 변환기(522)로부터 SMS 포맷의 메시지를 수신하고, 수신된 SMS 포맷의 메시지를 저장 및 관리하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 패스 트래커(525)를 포함함으로써, 수신된 SMS 포맷의 메시지를 저장할 수 있다. 예를 들어, 패스 트래커(525)는 수신된 SMS 포맷의 메시지에 포함된, 이벤트 ID 정보, 메시지 ID 정보, 페이로드, 포맷 정보, 또는 추가 정보 중 적어도 하나를 저장할 수 있다. 패스 매니저(524)는 수신된 SMS 포맷의 메시지를 메시지 핸들러(526)로 전달하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 패스 변환기(522)로 응답 메시지 생성을 위한 메시지 식별 정보를 제공하도록 하는 인스트럭션을 포함할 수 있다.
다양한 실시예에 따르면, 메시지 핸들러(526)는 SMS 메시지(또는 SMS 포맷의 메시지)를 처리하기 위한 인스트럭션들을 포함할 수 있다. 메시지 핸들러(526)는 패스 매니저(524) 또는 무선 인터페이스 계층(530)으로부터 SMS 메시지를 수신하고, 수신된 SMS 메시지를 제1 어플리케이션 프로그램(512)으로 제공하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 패스 매니저(524)로부터 SMS 포맷의 메시지가 수신될 경우, 수신된 SMS 포맷의 메시지에 패스 매니저(524)로부터 수신되었음을 나타내는 플래그를 추가하도록 하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 수신된 SMS 메시지에 대한 저장 가능 여부, 수신된 SMS 메시지에 대한 중복 수신 여부, 또는 수신된 SMS 메시지의 데이터 포맷 처리 가능 여부 중 적어도 하나에 기초하여 오류가 발생되는지 여부를 결정하기 위한 인스트럭션들을 포함할 수 있다. 예를 들어, 메시지 핸들러(526)는 이용 가능한 잔여 메모리 용량 및 수신된 SMS 메시지의 크기에 기초하여, 수신된 SMS 메시지의 저장 가능 여부를 결정하기 위한 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 이용 가능한 잔여 메모리 용량이 수신된 SMS 메시지의 크기보다 크거나 같은 경우, 수신된 SMS 메시지를 제1 어플리케이션(512)으로 전달하기 위한 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 이용 가능한 잔여 메모리 용량이 수신된 SMS 메시지의 크기보다 작은 경우, 메모리 용량 부족을 나타내는 원인 코드를 생성하는 인스트럭션을 포함할 수 있다. 다른 예로, 메시지 핸들러(526)는 수신된 SMS 메시지의 중복 수신 여부를 확인하는 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 수신된 SMS 메시지가 중복 수신되지 않은 것으로 결정된 경우, 수신된 SMS 메시지를 제1 어플리케이션(512)으로 전달하기 위한 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 수신된 SMS 메시지가 중복 수신된 것으로 결정된 경우, 수신 메시지가 중복 수신되었음을 나타내는 원인 코드를 생성하는 인스트럭션을 포함할 수 있다. 또 다른 예로, 메시지 핸들러(526)는 수신된 SMS 메시지의 데이터 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷인지 여부를 확인하는 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 신된 SMS 메시지의 데이터 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷인 경우, 수신된 SMS 메시지를 제1 어플리케이션(512)으로 전달하기 위한 인스트럭션을 포함할 수 있다. 메시지 핸들러(526)는 신된 SMS 메시지의 데이터 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷이 아닌 경우, 수신된 SMS 메시지의 데이터 포맷 오류를 나타내는 원인 코드를 생성하는 인스트럭션을 포함할 수 있다.
일실시예에 따르면, 메시지 핸들러(526)는 수신된 SMS 메시지에 관련된 오류를 나타내는 원인 코드를 무선 인터페이스 계층(530) 또는 패스 인터페이스(528)로 제공하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 원인 코드에 관련된 SMS 메시지에 패스 매니저(524)로부터 수신되었음을 나타내는 플래그가 포함되어 있는지 여부에 기초하여, 해당 원인 코드를 무선 인터페이스 계층(530) 또는 패스 인터페이스(528) 중 어느 하나로 제공하는 인스트럭션을 포함할 수 있다. 예를 들어, 원인 코드에 관련된 수신된 SMS 메시지에 패스 매니저(524)로부터 수신되었음을 나타내는 플래그가 포함되어 있는 경우, 메시지 핸들러(526)는 원인 코드에 관련된 SMS 메시지가 패스 매니저(524)로부터 수신된 것으로 결정하고, 원인 코드를 패스 인터페이스(528)로 제공하는 인스트럭션을 포함할 수 있다. 다른 예로, 원인 코드에 관련된 수신된 SMS 메시지에 패스 매니저(524)로부터 수신되었음을 나타내는 플래그가 포함되어 있지 않은 경우, 메시지 핸들러(526)는 원인 코드에 관련된 SMS 메시지가 무선 인터페이스 계층(530)으로부터 수신된 것으로 결정하고, 원인 코드를 무선 인터페이스 계층(530)으로 제공하는 인스트럭션을 포함할 수 있다.
다양한 실시예에 따르면, 패스 인터페이스(528)는 메시지 핸들러(526)로부터 제공되는 신호 또는 데이터를 패스 매니저(524) 및/또는 패스 변환기(522)로 전달하는 인스트럭션을 포함할 수 있다. 예를 들어, 패스 인터페이스(528)는 메시지 핸들러(526)로부터 제공되는 원인 코드를 패스 매니저(524) 및/또는 패스 변환기(522)로 전달하는 인스트럭션을 포함할 수 있다.
다양한 실시예에 따르면, 무선 인터페이스 계층(530)은 통신 모듈(예: 도 4의 통신 모듈(450))로부터 SMS 메시지를 수신하고, 수신된 SMS 메시지를 메시지 핸들러(526)로 제공하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 무선 인터페이스 계층(530)은 메시지 핸들러(526)로부터 제공된 원인 코드를 포함하는 응답 메시지를 통신 모듈(예: 도 4의 통신 모듈(450))로 제공하는 인스트럭션을 포함할 수 있다. 일실시예에 따르면, 무선 인터페이스 계층(530)은 미들웨어(예: 도 2의 운영체제(242), 또는 도 3의 운영체제(242))에 포함될 수 있다.
도 7은 본 발명의 다양한 실시에에 따른 제1 서버의 블록도이다. 도 7의 제1 서버(701)는 도 1의 제1 서버(120), 제1 서버(120)의 일부, 도 4에 도시된 제1 서버(480), 또는 제1 서버(480)의 일부일 수 있다. 예를 들어, 도 7의 제1 서버(701)는 도 1의 제1 서버(120)의 푸시 서버(122) 및/또는 패스 서버(124)이거나, 도 4의 제1 서버(480)의 푸시 서버(482) 및/또는 패스 서버(484)일 수 있다.
도 7을 참조하면, 제1 서버(701)는 버스(710), 프로세서(720), 메모리(730), 및 통신 모듈(740)을 포함할 수 있다. 어떤 실시예에서는, 제1 서버(701)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
다양한 실시예에 따르면, 버스(710)는 예를 들면, 구성요소들(720 내지 740)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
다양한 실시예에 따르면, 프로세서(710)는 메모리(730)에 포함된 소프트웨어를 구동하여 프로세서(720)에 연결된 서버(701)의 적어도 하나의 다른 구성 요소를 제어할 수 있다.
다양한 실시예에 따르면, 프로세서(720)는 푸시 알림 서비스를 제공하기 위한 동작을 수행할 수 있다. 일실시예에 따르면, 프로세서(720)는 통신 모듈(740)을 통해, 적어도 하나의 전자 장치(예: 도 4의 전자 장치(401))와 신호를 송수신함으로써, 적어도 하나의 전자 장치에 대한 푸시 알림 서비스 등록 절차를 수행할 수 있다. 예를 들어, 프로세서(720)는 통신 모듈(740)을 통해, 적어도 하나의 전자 장치(예: 도 4의 전자 장치(401))로부터 전자 장치의 식별 정보를 포함하는 푸시 알림 서비스 등록 요청 신호를 수신할 수 있다. 프로세서(720)는 수신된 푸시 알림 서비스 등록 요청 신호에 기초하여, 푸시 알림 서비스에 등록한 전자 장치들을 나타내는 가입자 목록을 갱신할 수 있다. 예컨대, 프로세서(720)는 수신된 푸시 알림 서비스 등록 요청 신호로부터 전자 장치의 식별 정보를 획득하고, 획득된 전자 장치의 식별 정보를 가입자 목록에 추가할 수 있다. 전자 장치의 식별 정보는, 전화번호, IMEI(international mobile equipment identity), 시리얼 넘버(serial number), 또는 발신자 식별 정보(예: sender ID) 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 프로세서(720)는 적어도 하나의 전자 장치(예: 도 4의 전자 장치(401))의 푸시 알림 서비스 등록 절차 동안에 전자 장치로부터 발신자 식별 정보를 수신하고, 발신자 식별 정보 수신에 대한 응답으로 장자 전자 장치로 등록 토큰을 할당할 수 있다. 프로세서(720)는 등록 토큰을 할당한 전자 장치로부터 해당 등록 토큰을 수신할 수 있다. 발신자 식별 정보는 전자 장치의 개발 단계에서 제1 서버(701)의 프로세서(720)가 전자 장치에 할당한 식별 정보일 수 있다. 예컨대, 제1 서버(701)의 프로세서(720)는 전자 장치의 개발 단계에서 서버 키 및 발신자 식별 정보 할당을 요청받고, 이에 대한 응답으로 해당 전자 장치로 서버 키 및 발신자 식별 정보를 전송할 수 있다.
다양한 실시예에 따르면, 프로세서(720)는 통신 모듈(740)을 제어하여 제2 서버(예: 도 1의 제2 서버(130), 또는 도 1의 제2 서버(490))로부터, non-SMS 포맷의 메시지를 수신하고, 수신된 non-SMS 포맷의 메시지를 푸시 알림 서비스를 이용하여 적어도 하나의 전자 장치(예: 도 4의 전자 장치(401))로 전송할 수 있다. non-SMS 포맷은, 예를 들어, 전송 프로토콜 데이터 유닛(transport protocol data unit) 포맷일 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지는 제1 타입의 데이터를 적어도 일부분으로 포함하는 메시지일 수 있다. 예를 들어, non-SMS 포맷의 메시지는 메시지 내의 적어도 일부분에 3GPP, 또는 3GPP2 SMS 표준 규격을 따르는 TPDU 데이터를 포함할 수 있다. 일실시예에 따르면, 프로세서(720)는 non-SMS 포맷의 메시지에 메시지 식별 정보(예: 메시지 ID)를 할당하고, 메시지 식별 정보가 할당된 non-SMS 포맷의 메시지를 메모리(730)에 저장할 수 있다. 일실시예에 따르면, 프로세서(720)는 non-SMS 포맷의 메시지에 대한 수신자 목록, 가입자 목록, 또는 거부 목록 중 적어도 하나에 기초하여, non-SMS 포맷의 메시지를 전송할 적어도 하나의 전자 장치를 결정할 수 있다. 예를 들어, 프로세서(720)는 non-SMS 포맷의 메시지에 대한 수신자 목록에 포함된 전화번호가 가입자 목록 및/또는 거부 목록에 포함되어 있는지 여부에 기초하여, non-SMS 포맷의 메시지를 전송할 적어도 하나의 전자 장치를 결정할 수 있다. 일실시예에 따르면, 프로세서(720)는 수신자 목록에 포함되어 있으나, 가입자 목록에 포함되지 않은 적어도 하나의 제1 전화번호가 존재하는 경우, 적어도 하나의 제1 전화번호에 대응되는 전자 장치를 non-SMS 포맷의 메시지 전송이 불가능한 전자 장치로 결정할 수 있다. 프로세서(720)는 통신 모듈(740)을 통해 적어도 하나의 제1 전화번호를 포함하는 미등록 신호를 제2 서버(130)로 전송함으로써, 적어도 하나의 제1 전화번호에 대응하는 전자 장치가 푸시 알림 서비스에 등록되어 있지 않음을 알릴 수 있다. 일실시예에 따르면, 프로세서(720)는 수신자 목록 및 거절 목록에 포함되어 있는 적어도 하나의 제2 전화번호가 존재하는 경우, 적어도 하나의 제2 전화번호에 대응되는 전자 장치를 non-SMS 포맷의 메시지 전송이 불가능한 전자 장치로 결정할 수 있다. 프로세서(720)는 통신 모듈(740)을 통해 적어도 하나의 제2 전화번호를 포함하는 수신 거절 신호를 제2 서버(130)로 전송함으로써, 적어도 하나의 제2 전화번호에 대응하는 전자 장치가 non-SMS 포맷의 메시지 수신을 거부하였음을 알릴 수 있다. 일실시예에 따르면, 프로세서(720)는 수신자 목록 및 가입자 목록 동시에 포함되어 있으면서, 거절 목록에 포함되지 않은 제3 전화번호들에 대응되는 전자 장치들을, non-SMS 포맷의 메시지 전송이 가능한 전송 전자 장치들로 결정할 수 있다. 프로세서(720)는 통신 모듈(740)을 통해 적어도 하나의 제3 전화번호에 대응되는 전자 장치들로, 메시지 식별 정보를 포함하는 푸시 알림 메시지를 전송할 수 있다. 일실시예에 따르면, 프로세서(720)는 통신 모듈(740)을 통해 적어도 하나의 전자 장치로부터 메시지 식별 정보를 포함하는 메시지 요청 신호를 수신하고, 메시지 식별 정보에 대응되는 non-SMS 포맷의 메시지를 메모리(730)에서 검색할 수 있다. 프로세서(720)는 메모리(730)에서 검색된 non-SMS 포맷의 메시지를 메시지 요청 신호를 전송한 적어도 하나의 전자 장치로 전송하도록 통신 모듈(740)을 제어할 수 있다.
일실시예에 따르면, 프로세서(720)는 통신 모듈(740)을 통해, 적어도 하나의 전자 장치로부터 메시지 수신 허용 여부를 나타내는 신호를 수신할 수 있다. 프로세서(720)는 메시지 수신 허용 여부를 나타내는 신호에 기초하여, 메시지에 대한 수신을 거절한 전자 장치들을 나타내는 거절 목록을 생성 및/또는 갱신할 수 있다. 거절 목록은 메시지 발신자(예: 사업자) 별로 설정될 수 있다. 예를 들어, 프로세서(720)는 메시지 수신 허용 여부를 나타내는 신호에서, 수신 거부를 나타내는 정보, 해당 전자 장치의 식별 정보, 또는 수신 거부 대상인 메시지의 발신자 정보 중 적어도 하나를 획득하고, 획득된 적어도 하나의 정보에 기초하여 거절 목록을 생성 및/또는 갱신할 수 있다.
일실시예에 따르면, 프로세서(720)는 제2 서버(예: 도 1의 제2 서버(130))로부터 제공되는 non-SMS 포맷의 메시지에 대한 무결성 검사를 위해, 제2 서버와 인증서를 교환하고, 등록된 적어도 하나의 전자 장치(예: 도 1의 전자 장치(401))로 제1 서버의 인증서 및 제2 서버의 인증서를 전송할 수 있다. 프로세서(720)는 제2 서버로부터 non-SMS 포맷의 메시지가 수신되는 제1 시점, 또는 제1 시점보다 앞선 시점에 제2 서버와 인증서를 교환하는 동작이 수행되도록 통신 모듈(740)을 제어할 수 있다. 프로세서(720)는 적어도 하나의 전자 장치의 등록 시점에 해당 전자 장치로 서버의 인증서(예: 제1 서버 인증서, 및/또는 제2 서버 인증서)가 전송되도록 통신 모듈(740)을 제어할 수 있다. 일실시예에 따르면, 프로세서(720)는 제2 서버와 사전에 교환된 인증서에 기초하여 제1 데이터 세션 키를 생성하고, 통신 모듈(740)을 통해 제1 데이터 세션 키를 제2 서버와 교환할 수 있다. 프로세서(720)는 통신 모듈(740)을 통해, 제2 서버로부터 제1 데이터 세션 키로 서명된 non-SMS 포맷의 메시지를 수신할 수 있다. 프로세서(720)는 제2 서버로부터 non-SMS 포맷의 메시지 수신 시, 제1 데이터 세션 키를 이용하여 제2 서버(720)에 의해 서명된 서명 값을 확인함으로써, non-SMS 포맷의 메시지에 대한 무결성을 검사할 수 있다. 프로세서(720)는 무결성 검사 결과, 무결성이 확보되지 않은 것으로 확인되면, 수신된 non-SMS 포맷의 메시지에 대한 오류(예: 무결성 오류)를 나타내는 신호를 제2 서버로 전송할 수 있다. 프로세서(720)는 무결성 검사 결과, 무결성이 확보된 것으로 확인되면, 전자 장치와 제1 서버(701) 사이의 무결성 검사를 위해, 제2 데이터 세션 키를 생성할 수 있다. 프로세서(720)는 제2 데이터 세션 키를 이용하여 제1 데이터 세션 키를 암호화하고, 암호화된 키와 non-SMS 포맷의 메시지를 전자 장치로 전송할 수 있다.
일 실시예에 따르면, 프로세서(720)는 적어도 하나의 전자 장치로부터 non-SMS 포맷의 메시지에 대한 처리 실패 신호를 수신할 수 있다. 예를 들어, 프로세서(720)는 적어도 하나의 전자 장치로부터, non-SMS 포맷의 메시지를 회선 교환 네트워크를 통해 송신해줄 것을 요청하는 정보를 포함하는 메시지 처리 실패를 나타내는 신호를 수신할 수 있다. 일실시예에 따르면, 프로세서(720)는 메시지 처리 실패 신호에 기초하여, non-SMS 포맷의 메시지 처리를 실패한 적어도 하나의 전자 장치에 대한 정화번호를 획득하고, 획득된 전화번호를 포함하는 메시지 전송 실패 신호를 제2 서버(130)로 전송함으로써, 해당 전화번호에 대응하는 전자 장치에 대해 회선 교환 네트워크를 통해 메시지를 송신해줄 것을 요청할 수 있다.
다양한 실시예에 따르면, 메모리(730)는 소프트웨어 및, 이와 관련된 명령에 대한 입력 데이터 및 출력 데이터를 저장할 수 있다. 일실시예에 따르면, 메모리(730)는 가입자 목록, 또는 거절 목록 중 적어도 하나를 저장할 수 있다. 일실시예에 따르면, 메모리(730)는 제1 서버(730)로부터 수신된 non-SMS 포맷의 메시지를 저장할 수 있다. non-SMS 포맷이 메시지는 메시지 식별 정보와 매핑되어 저장될 수 있다.
다양한 실시예에 따르면, 통신 모듈(740)은 네트워크를 통해 적어도 하나의 전자 장치와 신호 및/또는 데이터를 송수신할 수 있다. 통신 모듈(740)은 제1 서버(701)와 전자 장치 사이의 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일 실시예에 따르면, 통신 모듈(740)은 인터넷 프로토콜을 이용하는 인터페이스를 통해 적어도 하나의 전자 장치와 통신할 수 있다. 예를 들어, 통신 모듈(740)은 인터넷 프로토콜을 이용하여, 푸시 알림 메시지, non-SMS 포맷의 메시지 전송에 대한 요청 신호, 또는 non-SMS 포맷의 메시지 중 적어도 하나를 적어도 하나의 전자 장치와 송수신할 수 있다.
본 발명의 다양한 실시예에 따르면, 전자 장치는, 디스플레이, 무선 통신 회로, 상기 통신 회로 및 디스플레이에 작동적으로 연결되는 프로세서, 및 상기 프로세서와 작동적으로 연결된 메모리를 포함하며, 상기 메모리는 SMS(short message service) 어플리케이션 프로그램인 제1 어플리케이션 프로그램 및 non-SMS 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 저장하고, 상기 메모리는, 실행될 때 상기 프로세서로 하여금, 상기 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 상기 통신 회로를 통해 푸시 알림을 수신하고, 상기 푸시 알림은 상기 제1 어플리케이션 프로그램에 대한 메시지를 나타내고, 상기 제2 어플리케이션 프로그램을 이용하여, 상기 통신 회로를 통해, 상기 외부 서버로 상기 메시지에 대한 요청을 전송하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 통신 회로를 통해 상기 외부 서버로부터 상기 메시지를 수신하고, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 상기 제1 어플리케이션 프로그램으로 제공하고, 및 상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 하는 인스트럭션들을 저장할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 푸시 알림은 상기 메시지에 대한 식별정보를 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 제1 포맷의 상기 메시지를 수신하고, 및 상기 메시지를 상기 제1 어플리케이션 프로그램에 의해 처리 가능한 제2 포맷으로 변환하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제1 포맷의 상기 메시지로부터 적어도 하나의 전송 프로토콜 데이터 유닛(transport protocol data unit)를 획득하고, 및 상기 획득된 적어도 하나의 전송 프로토콜 데이터 유닛을 포함하는 상기 제2 포맷의 메시지를 생성하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지에 포함된 데이터의 타입이 상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입인지 여부를 결정하고, 상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입이면, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 제1 어플리케이션 프로그램으로 제공하고, 및 상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입이 아니면, 상기 제1 어플리케이션 이외의 다른 어플리케이션의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 할 수 있다. 상기 다른 어플리케이션은, 상기 제2 어플리케이션을 포함 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은 상기 프로세서로 하여금, 상기 푸시 알림 수신, 상기 요청 전송, 및 상기 메시지 수신에 인터넷 프로토콜을 이용하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 제2 어플리케이션 프로그램은 비-어플리케이션 프로그램일 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제1 어플리케이션 프로그램을 이용하여, 상기 메시지에 대한 오류 발생을 감지하고, 및 상기 오류 발생이 감지된 것에 대한 응답으로, 오류 발생 원인을 나타내는 코드를 포함하는 응답 메시지를 상기 제2 어플리케이션 프로그램으로 제공하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 메모리의 잔여 용량에 기초한 상기 메시지의 저장 가능 여부, 상기 메시지의 중복 수신 여부, 또는 상기 메시지에 포함된 데이터 포맷의 처리 가능 여부 중 적어도 하나에 기초하여 상기 메시지에 대한 오류 발생을 감지하도록 하고, 상기 오류 발생 원인을 나타내는 코드는, 메모리 용량 부족, 상기 메시지의 중복 수신, 또는 상기 메시지에 포함된 데이터 포맷 처리 불가능 중 어느 하나를 나타내도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제2 어플리케이션 프로그램을 이용하여 상기 오류 발생 원인을 나타내는 코드에 대응되는 동작을 수행하도록 하고, 상기 오류 발생 원인을 나타내는 코드에 대응되는 동작은, 상기 메시지를 상기 제1 어플리케이션 프로그램으로 다시 제공하는 동작, 상기 메시지를 폐기하는 동작, 또는 상기 외부 서버로 상기 메시지에 대한 처리 실패를 나타내는 신호를 전송하는 동작 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 상기 메시지에 대한 수신 허용 여부를 설정하기 위한 사용자 입력을 감지하고, 및 상기 사용자 입력에 대응되는 상기 메시지에 대한 수신 허용 여부를 나타내는 신호를 상기 외부 서버로 전송하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 시스템은 네트워크 인터페이스, 상기 인터페이스에 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 프로세서에 작동적으로 연결된 적어도 하나의 메모리를 포함하며, 상기 메모리는, 실행될 때 상기 프로세서로 하여금, 상기 인터페이스를 통해 외부 서버로부터 non-SMS(non-short message service) 포맷의 제1 메시지 데이터를 수신하고, 상기 제1 메시지 데이터는 전화번호를 포함하는 복수의 모바일 디바이스들로 전송되며, 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 제1 메시지 데이터의 인디케이션을 포함하는 푸시 알림을, 상기 모바일 디바이스들의 전화번호에 적어도 부분적으로 기초하여, 상기 모바일 디바이스들 중 일부에 해당하는 적어도 하나의 모바일 디바이스로 전송하고, 상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로부터 상기 제1 메시지 데이터에 대한 요청을, 수신하고, 상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로 상기 non-SMS 포맷의 상기 제1 메시지 데이터를 전송하고, 및 상기 인터페이스를 통해, 나머지 모바일 디바이스들의 전화번호에 적어도 부분적으로 기초하여, 푸시 알림이 전송되지 않은 상기 나머지 모바일 디바이스들에 대한 정보를 상기 외부 서버로 제공하도록 하는 인스트럭션을 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인디케이션은 제1 메시지 데이터에 대한 식별 정보를 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 non-SMS 포맷은, 전송 프로토콜 데이터 유닛(transport protocol data unit) 포맷을 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 제1 메시지 데이터에 대한 수신 전화번호 목록, 상기 시스템에 등록된 가입 전화번호 목록, 상기 외부 서버에 대한 메시지 수신 거절 전화 번호 목록 중 적어도 하나에 기초하여 상기 모바일 디바이스들 중 상기 일부에 해당하는 상기 적어도 하나의 모바일 디바이스를 결정하도록 할 수 있다.
본 발명의 다양한 실시예에 따르면, 상기 인스트럭션들은, 상기 프로세서로 하여금, 상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로부터 상기 제1 메시지 데이터에 대한 처리 실패를 나타내는 신호를 수신하고, 및 상기 처리 실패를 나타내는 신호를 전송한 상기 모바일 디바이스들 중 상기 적어도 하나에 대한 정보를 상기 외부 서버로 제공하도록 할 수 있다.
도 8은 본 발명의 다양한 실시예에 따른 전자 장치에서 푸시 알림을 이용하여 메시지를 수신하는 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 전자 장치는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 이하 동작 801 내지 동작 809는 도 2의 전자 장치(201)의 프로세서(220), 및/또는 도 4의 전자 장치(401)의 프로세서(420)에 의해 실행되는 동작으로 이해될 수 있다. 이하 설명에서, 제1 어플리케이션 프로그램은, SMS 어플리케이션 프로그램인 도 5의 제1 어플리케이션 프로그램(512)일 수 있으며, 제2 어플리케이션 프로그램은 nom-SMS 어플리케이션 프로그램인 도 5의 제2 어플리케이션 프로그램(514)일 수 있다. 이하 설명에서, 외부 서버는 제1 서버(130), 및/또는 제1 서버(701)일 수 있다.
도 8을 참조하면, 일실시예에 따른 전자 장치는 동작 801에서 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 푸시 알림 메시지를 수신할 수 있다. 푸시 알림 메시지는 외부 서버에 제1 어플리케이션 프로그램과 관련된 메시지가 존재함을 나타낼 수 있다. 예를 들어, 푸시 알림 메시지는 제1 어플리케이션 프로그램과 관련된 메시지가 외부 서버에 저장되어 있음을 나타내며, 외부 서버에 저장된 제1 어플리케이션 프로그램 관련 메시지의 식별 정보를 포함할 수 있다. 제1 어플리케이션 프로그램 관련 메시지는, 공지된 SMS 표준 규격(예: 3GPP, 또는 3GPP2 SMS 표준 규격)을 따르는 데이터를 포함하는 non-SMS 포맷의 메시지일 수 있다. 예를 들어, 제1 어플리케이션 프로그램 관련 메시지는, 메시지 내에, 공지된 SMS 표준 규격(예: 3GPP, 또는 3GPP2 SMS 표준 규격)을 따르는 TPDU 데이터를 포함하는 non-SMS 포맷의 메시지일 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 도 2의 프로세서(220), 또는 도 4의 프로세서(420))는, 통신 모듈(예: 도 2의 통신모듈(290), 또는 도 4의 통신 모듈(450))을 통해, 패킷 교환 네트워크(예: 인터넷 프로토콜 네트워크)이용하여 푸시 알림 메시지를 수신할 수 있다.
일실시예에 따르면, 전자 장치는 동작 803에서 제2 어플리케이션 프로그램을 이용하여 외부 서버로 메시지에 대한 요청을 전송할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 푸시 알림 메시지에 포함된 메시지 식별 정보를 획득하고, 획득된 메시지 식별 정보를 포함하는 메시지 요청 신호를 외부 서버로 전송할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는, 통신 모듈(예: 통신모듈(290), 또는 통신 모듈(450))을 통해, 패킷 교환 네트워크(예: 인터넷 프로토콜 네트워크)이용하여 메시지에 대한 요청을 전송할 수 있다.
일실시예에 따르면, 전자 장치는 동작 805에서 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 메시지를 수신할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 메시지에 대한 요청을 전송한 것에 대한 응답으로, 외부 서버로부터 non-SMS 포맷의 메시지를 수신할 수 있다. 일실시예에 따르면, 외부 서버로부터 수신된 non-SMS 포맷의 메시지는 적어도 하나의 TPDU 데이터로 구성될 수 있다. 예를 들어, non-SMS 메시지는 하나의 TPDU를 포함하도록 구성되거나, 다수의 TPDU 데이터가 배열된 형태로 구성될 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는, 통신 모듈(예: 통신모듈(290), 또는 통신 모듈(450))을 통해, 패킷 교환 네트워크(예: 인터넷 프로토콜 네트워크)이용하여 외부 서버로부터 non-SMS 포맷의 메시지를 수신할 수 있다.
일실시예에 따르면, 전자 장치는 동작 807에서, 제2 어플리케이션 프로그램을 이용하여 수신 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 메시지를 분석하여 메시지에 포함된 데이터의 타입을 확인하고, 확인된 타입이 제1 타입인 것에 대한 응답으로, 수신 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 non-SMS 메시지에 포함된 TPDU 데이터의 타입 정보에 기초하여, non-SMS 메시지에 포함된 TPDU가 공지된 SMS 표준 규격에 대응되는 제1 타입의 데이터인지 여부를 확인할 수 있다. 확인된 타입 정보가 미리 설정된 제1 타입에 대응되는 경우, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 non-SMS 포맷의 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예컨대, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 non-SMS 포맷의 메시지로부터 적어도 하나의 TPDU 데이터를 획득하고, 획득된 TPDU 데이터를 제1 어플리케이션 프로그램으로 제공할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램을 이용하여 non-SMS 포맷의 메시지를 SMS 포맷으로 변경하고, SMS 포맷으로 변경된 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램을 이용하여 non-SMS 포맷의 메시지로부터 TPDU 데이터를 획득하고, 도 6a에 도시된 바와 같이, TPDU 데이터가 페이로드 영역에 포함된 형태의 SMS 메시지를 생성하고, 생성된 SMS 메시지를 제1 어플리케이션 프로그램으로 제공할 수 있다.
일실시예에 따르면, 전자 장치는 동작 809에서 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 메시지를 제공할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램으로부터 제공된 SMS 메시지가 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440))에 표시되도록 제어할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램으로부터 제공된 SMS 메시지가 제1 어플리케이션 프로그램에서 저장 및 관리되도록 제어할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램으로부터 제공된 SMS 메시지가 제1 어플리케이션 프로그램에 의해 관리되는 SMS 메시지함에 저장되도록 제어할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제1 어플리케이션 프로그램을 이용하여, SMS 메시지 처리에 대한 오류 발생 여부를 확인하고, 오류 발생에 대응되는 동작을 수행할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 SMS 메시지에 대한 저장 가능 여부, 수신된 SMS 메시지에 대한 중복 수신 여부, 또는 SMS 메시지의 데이터 포맷 처리 가능 여부 중 적어도 하나에 기초하여 오류가 발생되는지 여부를 결정할 수 있다. 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 오류 발생 시, 제1 어플리케이션 프로그램을 이용하여 오류 발생에 대한 원인을 나타내는 원인 코드를 생성하고, 오류 발생을 나타내는 원인 코드를 제2 어플리케이션 프로그램으로 제공하여, 제2 어플리케이션 프로그램에서 원인 코드에 대응되는 동작이 수행되도록 제어할 수 있다.
도 9는 본 발명의 다양한 실시예에 따른 전자 장치에서 메시지의 무결성을 검사하는 흐름도이다. 이하 설명은 도 8의 동작 801 및 동작 803에 대해 상세하게 설명한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 전자 장치는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 이하 동작 901 내지 동작 911은 도 2의 전자 장치(201)의 프로세서(220), 및/또는 도 4의 전자 장치(401)의 프로세서(420)에 의해 실행되는 동작으로 이해될 수 있다. 이하 설명에서, 외부 서버는 제1 서버(130), 및/또는 제1 서버(701)일 수 있다.
도 9를 참조하면, 일실시예에 따른 전자 장치는 동작 901에서 외부 서버로부터 푸시 알림 메시지를 수신할 수 있다. 일 실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 도 8의 동작 801에서 설명한 바와 같이, 외부 서버로부터 푸시 알림 메시지를 수신할 수 있다.
일실시예에 따르면, 전자 장치는 동작 903에서 외부 서버와 제2 데이터 세션 키를 교환할 수 있다. 일 실시예에 따르면, 전자 장치의 프로세서(예: 도 2의 프로세서(220), 또는 도 4의 프로세서(420))는 외부 서버로부터 푸시 알림 메시지가 수신된 것에 대한 응답으로, 외부 서버에 접속하여 제2 데이터 세션 키를 교환할 수 있다. 제2 데이터 세션 키는 외부 서버와 사전에 교환한 인증서에 기초하여 생성될 수 있다. 제2 데이터 세션 키는, 푸시 알림 메시지에 관련된 non-SMS 메시지의 무결성 검사를 위해 외부 서버와 교환될 수 있다.
일실시예에 따르면, 전자 장치는 동작 905에서 외부 서버로 메시지에 대한 요청을 전송할 수 있다. 일 실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 도 8의 동작 803에서 설명한 바와 같이, 외부 서버로부터 푸시 알림 메시지를 수신할 수 있다.
일실시예에 따르면, 전자 장치는 동작 907에서 외부 서버로부터 메시지 및 암호화된 제1 데이터 세션 키를 수신할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는, 통신 모듈(예: 도 2의 통신모듈(290), 또는 도 4의 통신 모듈(450))을 통해, 패킷 교환 네트워크(예: 인터넷 프로토콜 네트워크)이용하여 외부 서버로부터 non-SMS 포맷의 메시지와 암호화된 제1 데이터 세션 키를 수신할 수 있다. 암호화된 제1 데이터 세션 키는, 외부 서버에서 제2 데이터 세션 키로 암호화된 제1 데이터 세션 키일 수 있다. 제1 데이터 세션 키는, 외부 서버가 다른 외부 서버(예: 제2 서버(130))와 교환한 인증서에 기초하여, 생성된 데이터 세션 키일 수 있다.
일실시예에 따르면, 전자 장치는 동작 909에서 제2 데이터 세션 키를 이용하여, 암호화된 제1 데이터 세션 키를 복호화하여 무결성을 검사할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는, 암호화된 제1 데이터 세션 키를 제2 데이터 세션 키로 복호화하여 제1 데이터 세션 키를 획득할 수 있다. 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 획득된 제1 데이터 세션 키를 이용하여, 외부 서버로부터 수신된 non-SMS 포맷의 메시지에 대한 무결성 검사를 수행할 수 있다.
일실시예에 따르면, 전자 장치는 동작 911에서 무결성 검사 결과에 대응되는 응답 신호를 외부 서버로 전송할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 non-SMS 포맷의 메시지에 대한 무결성이 확보된 것으로 결정되면, 통신 모듈(예: 통신모듈(290), 또는 통신 모듈(450))을 통해, 외부 서버로 ACK 응답 신호를 전송할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 non-SMS 포맷의 메시지에 대한 무결성이 확보되지 않은 것으로 결정되면, 통신 모듈(예: 통신모듈(290), 또는 통신 모듈(450))을 통해, 외부 서버로 NACK 응답 신호를 전송할 수 있다.
도 10은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지를 처리하는 흐름도이다. 이하 설명은 도 8의 동작 805에 대해 상세하게 설명한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 전자 장치는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 이하 설명에서, 외부 서버는 제1 서버(130), 및/또는 제1 서버(701)일 수 있다.
도 10을 참조하면, 일실시예에 따른 전자 장치는 동작 1001에서 외부 서버로부터 수신된 메시지의 데이터 타입이 제1 타입인지 여부를 결정할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 도 2의 프로세서(220), 또는 도 4의 프로세서(420))는 수신된 메시지를 분석하여 메시지에 포함된 데이터의 타입을 확인하고, 확인된 타입이 제1 타입인지 여부를 결정할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 외부 서버로부터 수신된 non-SMS 메시지에 포함된 TPDU 데이터의 타입 정보에 기초하여, non-SMS 메시지에 포함된 TPDU가 공지된 SMS 표준 규격에 대응되는 제1 타입의 데이터인지 여부를 확인할 수 있다.
일실시예에 따르면, 수신된 메시지의 데이터 타입이 제1 타입인 경우, 전자 장치는 동작 1003에서 메시지의 포맷을 변경할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 외부 서버로부터 수신된 non-SMS 포맷의 메시지를 SMS 포맷의 메시지로 변경할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 non-SMS 포맷의 메시지로부터 적어도 하나의 TPDU를 획득하고, 도 6a에 도시된 바와 같이, 획득된 적어도 하나의 TPDU를 페이로드 영역에 포함하는 SMS 포맷의 메시지를 생성할 수 있다.
일실시예에 따르면, 수신된 메시지의 데이터 타입이 제1 타입이 아닌 경우, 전자 장치는 동작 1005에서 제2 어플리케이션 프로그램을 이용하여, 확인된 타입에 따른 메시지에 대한 처리를 수행할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 non-SMS 포맷의 메시지에 포함된 데이터 타입이 푸시 알림 메시지에 대응되는 타입인 경우, 제2 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 푸시 알림 메시지를 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440)))에 표시 처리할 수 있다.
상술한 도 10에서는, 수신된 메시지의 데이터 타입이 제1 타입이 아닌 경우, 제2 어플리케이션 프로그램을 이용하여 확인된 타입에 따른 메시지에 대한 처리를 수행하는 것에 대해 설명하였다. 다양한 실시예에 따르면, 수신된 메시지의 데이터 타입이 제1 타입이 아닌 경우, 수신된 메시지는 다른 어플리케이션에 의해 처리될 수도 있다. 예를 들어, 수신된 메시지의 데이터 타입이 제1 타입이 아닌 경우, 전자 장치는 수신 메시지를 제3 어플리케이션으로 제공하고, 제3 어플리케이션을 이용하여 수신 메시지를 처리할 수 있다. 제3 어플리케이션은, 런처 어플리케이션 프로그램, 운영 체제 알림 바(OS notification bar) 어플리케이션, 게임 어플리케이션, 또는 서비스 어플리케이션(예: 쇼핑 어플리케이션, 은행 어플리케이션) 등과 같은 다양한 종류의 어플리케이션을 포함할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 운영 체제 알림 바 어플리케이션을 이용하여 수신 메시지를 표시 장치(예: 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440))에 표시할 수 있다. 다른 예로, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 서비스 어플리케이션을 이용하여 수신 메시지를 표시 장치(예: 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440))에 표시할 수 있다.
도 11은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지의 허용 여부를 설정하는 흐름도이다. 이하 설명은 도 8의 동작 809에 대해 상세하게 설명한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 전자 장치는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 이하 설명에서, 외부 서버는 제1 서버(130), 및/또는 제1 서버(701)일 수 있다. 이하에서 도 11의 적어도 하나의 동작은 도 12를 참조하여 설명한다. 도 12는, 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지를 표시하는 화면 구성을 도시한다.
도 11을 참조하면, 일실시예에 따른 전자 장치는 동작 1101에서 메시지 표시 이벤트를 감지할 수 있다. 일 실시예에 따르면, 메시지 표시 이벤트는, 수신 메시지 알림에 대한 사용자 입력 감지 이벤트, 수신 메시지 보기 이벤트, 또는 수신 메시지에 관련된 제1 어플리케이션 프로그램 실행 이벤트 중 적어도 하나를 포함할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 도 2의 프로세서(220), 또는 도 4의 프로세서(420))는 제1 어플리케이션 프로그램을 이용하여 메시지가 수신되었음을 나타내는 인디케이션을 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440)))에 표시한 상태에서, 수신된 메시지를 보기 위한 사용자 입력이 감지되는지 여부를 결정할 수 있다. 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신된 메시지를 보기 위한 사용자 입력이 감지되는 경우, 메시지 표시 이벤트가 발생된 것으로 결정할 수 있다. 다른 예로, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제1 어플리케이션 프로그램을 이용하여 메시지가 수신되었음을 나타내는 인디케이션을 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시한 상태에서, 제1 어플리케이션 프로그램을 실행시키기 위한 사용자 입력이 감지되는지 여부를 결정할 수 있다. 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제1 어플리케이션 프로그램을 실행시키기 위한 사용자 입력이 감지되는 경우, 메시지 표시 이벤트가 발생된 것으로 결정할 수 있다.
일실시예에 따르면, 전자 장치는 동작 1103에서 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 메시지를 표시할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 제2 어플리케이션 프로그램을 통해 수신된 메시지를 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 도 12에 도시된 바와 같이, 제1 어플리케이션의 사용자 인터페이스를 이용하여 수신 메시지를 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시할 수 있다. 일실시예에 따르면, 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시된 수신 메시지는 수신 허용을 위한 URL과 수신 거부를 위한 URL 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시된 수신 메시지는 수신 허용 설정을 위한 제1 영역과 수신 거부 설정을 위한 제2 영역을 포함할 수 있다.
일실시예에 따르면, 전자 장치는 동작 1105에서 메시지에 대한 수신 허용 여부를 설정하기 위한 사용자 입력을 감지할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 수신 메시지에 포함된 URL에 대한 사용자 입력을 감지하고, 사용자 입력이 감지된 URL 및/또는 URL에 관련된 정보에 기초하여 수신 허용 여부를 결정할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 해당 메시지의 수신 허용을 위한 URL에 대한 사용자 입력(1201), 또는 해당 메시지의 수신 거부를 위한 URL에 대한 사용자 입력(1203) 중 어느 하나를 감지하여, 해당 메시지에 대한 수신 허용 여부를 결정할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 표시 장치(예: 표시 장치(260), 또는 표시 장치(440)))에 표시된 수신 메시지의 전체 영역 중 수신 허용 여부 설정에 관련된 영역에 대한 사용자 입력을 감지하고, 사용자 입력이 감지된 영역의 설정 정보에 기초하여 수신 허용 여부를 결정할 수 있다. 예를 들어, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 해당 메시지의 수신 허용을 위한 제1 영역과 해당 메시지의 수신 거부를 위한 제2 영역 중 어느 하나에 대한 사용자 입력을 감지하여, 해당 메시지에 대한 수신 허용 여부를 결정할 수 있다.
일실시예에 따르면, 전자 장치는 동작 1107에서 수신 허용 여부에 대한 정보를 외부 서버로 전송할 수 있다. 일실시예에 따르면, 전자 장치의 프로세서(예: 프로세서(220), 또는 프로세서(420))는 전자 장치의 식별 정보, 수신 메시지의 발신자 정보, 또는 수신 허용 여부를 나타내는 정보 중 적어도 하나를 포함하는 신호를 외부 서버로 전송할 수 있다. 수신 메시지에 대한 발신자 정보는 수신 메시지로부터 획득될 수 있다. 수신 메시지에 대한 발신자 정보는, 예를 들어, 수신 메시지를 전송한 제2 서버(예: 도 1의 제2 서버(130))의 식별 정보(예: 전화번호, 또는 사업자 명칭)를 포함할 수 있다. 수신 허용 여부를 나타내는 정보는, 예를 들어, 수신 거부를 나타내는 인디케이션, 또는 수신 허용을 나타내는 인디케이션 중 어느 하나를 포함할 수 있다.
도 13은 본 발명의 다양한 실시예에 따른 제1 서버에서 푸시 알림을 이용하여 메시지를 전송하는 흐름도이다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 제1 서버는 도 1의 제1 서버(120), 도 4의 제1 서버(480), 및/또는 도 7의 제1 서버(701)일 수 있다. 이하 설명에서, 적어도 하나의 전자 장치는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 외부 서버는 도 1의 제2 서버(130), 도 4의 제2 서버(490)일 수 있다.
도 13을 참조하면, 일실시예에 따른 제1 서버는 동작 1301에서 외부 서버로부터 non-SMS 포맷의 메시지를 수신할 수 있다. 일실시예에 따르면, 외부 서버로부터 수신되는 non-SMS 포맷의 메시지는 공지된 표준 규격을 따르는 데이터를 포함할 수 있다. 예를 들어, non-SMS 포맷의 메시지는 3GPP, 3GPP2 SMS 표준 규격을 따르는 TPDU 데이터를 포함할 수 있다. 일 실시예에 따르면, 제1 서버의 프로세서(예: 도 7의 프로세서(720)) 외부서버로부터 non-SMS 포맷의 메시지에 대한 수신자 목록을 수신할 수 있다. 수신자 목록은 non-SMS 포맷의 메시지에 대한 전송 대상인 다수의 전자 장치들 각각의 전화번호를 포함할 수 있다.
일실시예에 따르면, 제1 서버는 동작 1303에서 다수의 전자 장치들 중 적어도 하나의 전자 장치로 non-SMS 포맷의 메시지의 인디케이션을 포함하는 푸시 알림을 전송할 수 있다. 일실시예에 따르면, 제1 서버의 프로세서(예: 프로세서(720))는 외부 서버로부터 수신된 non-SMS 포맷의 메시지에 대한 수신자 목록, 제1 서버에 저장된 가입자 목록, 또는 제1 서버에 저장된 거부 목록 중 적어도 하나에 기초하여, noon-SMS 포맷의 메시지를 전송할 적어도 하나의 전자 장치를 결정할 수 있다. 예를 들어, 제1 서버의 프로세서(예: 프로세서(720))는 수신자 목록에 포함되어 있으나, 가입자 목록에 포함되지 않은 적어도 하나의 제1 전화번호가 존재하는 경우, 적어도 하나의 제1 전화번호에 대응되는 전자 장치를 non-SMS 포맷의 메시지 전송이 불가능한 전자 장치로 결정할 수 있다. 다른 예로, 제1 서버의 프로세서(예: 프로세서(720))는 수신자 목록 및 거절 목록에 포함되어 있는 적어도 하나의 제2 전화번호가 존재하는 경우, 적어도 하나의 제2 전화번호에 대응되는 전자 장치를 non-SMS 포맷의 메시지 전송이 불가능한 전자 장치로 결정할 수 있다. 또 다른 예로, 제1 서버의 프로세서(예: 프로세서(720))는 수신자 목록 및 가입자 목록 동시에 포함되어 있으면서, 거절 목록에 포함되지 않은 제3 전화번호들에 대응되는 전자 장치들을, non-SMS 포맷의 메시지 전송이 가능한 전송 전자 장치들로 결정할 수 있다. 제1 서버의 프로세서(예: 프로세서(720))는 통신 모듈(예: 도 7의 통신 모듈(740))을 통해 적어도 하나의 제3 전화번호에 대응되는 전자 장치들로, 메시지 식별 정보를 포함하는 푸시 알림 메시지를 전송할 수 있다.
일실시예에 따르면, 제1 서버는 동작 1305에서 적어도 하나의 전자 장치들로부터 non-SMS 포맷의 메시지에 대한 요청을 수신할 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지에 대한 요청은, 메시지 식별 정보를 포함할 수 있다.
일실시예에 따르면, 제1 서버는 동작 1307에서 적어도 하나의 전자 장치들로 non-SMS 포맷의 메시지를 전송할 수 있다. 일실시예에 따르면, 제1 서버의 프로세서(예: 프로세서(720))는 non-SMS 포맷의 메시지에 대한 요청으로부터 메시지 식별 정보를 획득하고, 획득된 메시지 식별 정보에 대응되는 non-SMS 포맷의 메시지를 메모리(예: 도 7의 메모리(730))에서 검색할 수 있다. 제1 서버의 프로세서(예: 프로세서(720))는 메모리(예: 메모리(730))에서 검색된 non-SMS 포맷의 메시지를 메시지 요청 신호를 전송한 적어도 하나의 전자 장치로 전송하도록 통신 모듈(예: 통신 모듈(740))을 제어할 수 있다.
일실시예에 따르면, 제1 서버는 동작 1309에서 non-SMS 포맷의 메시지가 전송되지 않은 전자 장치들에 대한 정보를 외부 서버로 제공할 수 있다. 일실시예에 따르면, 제1 서버의 프로세서(예: 프로세서(720))는 수신자 목록에 포함된 다수의 전화번호들 중에서 푸시 알림 메시지가 전송되지 않은 전화번호에 대한 정보를 외부 서버로 제공할 수 있다. 예를 들어, 제1 서버의 프로세서(예: 프로세서(720))는 수신자 목록에 포함되어 있으나 가입자 목록에 포함되지 않은 적어도 하나의 제1 전화번호, 또는 수신자 목록 및 거절 목록에 포함되어 있는 적어도 하나의 제2 전화번호 중 적어도 하나에 대한 정보를 통신 모듈(예: 통신 모듈(740))을 통해, 외부 서버로 전송할 수 있다. 일실시예에 따르면, 제1 서버의 프로세서(예: 프로세서(720))는 적어도 하나의 제1 전화번호를 포함하는 미등록 신호를 외부 서버로 전송함으로써, 적어도 하나의 제1 전화번호에 대응하는 전자 장치가 푸시 알림 서비스에 등록되어 있지 않음을 알릴 수 있다. 일실시예에 따르면, 제1 서버의 프로세서(예: 프로세서(720))는 통신 모듈(예: 통신 모듈(740))을 통해 적어도 하나의 제2 전화번호를 포함하는 수신 거절 신호를 외부 서버로 전송함으로써, 적어도 하나의 제2 전화번호에 대응하는 전자 장치가 non-SMS 포맷의 메시지 수신을 거부하였음을 알릴 수 있다.
도 14a 내지 도 14c는 본 발명의 다양한 실시예에 따른 시스템 내 신호 흐름을 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 여기에서, 전자 장치(401)는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 제1 서버(480)는 도 1의 제1 서버(120), 도 4의 제1 서버(480), 및/또는 도 7의 제1 서버(701)일 수 있다.
도 14a는 본 발명의 다양한 실시예에 따른 전자 장치(401)의 서비스 등록 절차를 도시한다. 일실시예에 따르면, 동작 1410에서, 전자 장치(401)는 제1 서버(120)의 푸시 서버(482)로 제1 서비스 등록 신호를 전송할 수 있다. 일실시예에 따르면, 동작 1412에서, 전자 장치(1401)는 제1 서버(120)의 패스 서버(484)로 제2 서비스 등록 신호를 전송할 수 있다. 일실시예에 따르면, 제1 서비스 등록 신호는 전자 장치(401)의 발신자 식별 정보(예: sender ID)를 포함하고, 제2 서비스 등록 신호는 전자 장치(401)의 전화번호를 포함할 수 있다. 일실시예에 따르면, 제2 서비스 등록 신호는 제1 서버(480)의 푸시 서버(482)로부터 할당된 non-SMS 포맷의 어플리케이션(예: 도 5의 제2 어플리케이션 프로그램(514))에 대한 등록 토큰을 포함할 수 있다. 일실시예에 따르면, 전자 장치(401)는 제1 서버(120)의 푸시 서버(482) 및/또는 패스 서버(484)에 전자 장치(401)의 식별 정보로써, IMEI(international mobile equipment identity), 또는 시리얼 넘버(serial number) 중 적어도 하나를 더 전송할 수 있다. 일실시예에 따르면, 동작 1410의 제1 서비스 등록 신호 및 동작 1412의 제2 서비스 등록 신호는 하나의 신호로 구성되어, 제1 서버(480)로 전송될 수 있다. 일실시예에 따르면, 제1 서버(480)는 전자 장치(401)로부터 제1 서비스 등록 요청 신호 및/또는 제2 서비스 등록 요청 신호를 수신하고, 수신된 제1 서비스 등록 요청 신호 및/또는 제2 서비스 등록 요청 신호에 포함된 전자 장치의 식별 정보(예: 발신자 식별 정보, 전화번호, IMEI, 또는 시리얼 넘버)에 기초하여, 전자 장치(401)를 푸시 서비스에 등록할 수 있다. 일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 전자 장치(401)로부터 수신되는 제2 서비스 등록 요청 신호에 기초하여 가입자 목록(1401)을 생성 및 갱신할 수 있다.
도 14b는 본 발명의 다양한 실시예에 따른 메시지 전송 절차를 도시한다.
일실시예에 따르면, 동작 1420에서, 제2 서버(490)는 제1 서버(480)로 메시지를 전송할 수 있다. 예를 들어, 제2 서버(490)는 non-SMS 포맷의 메시지를 제1 서버(480)로 전송할 수 있다. 제2 서버(490)로부터 메시지를 수신한 제1 서버(480)는 제2 서버(490)로부터 수신된 메시지에 대한 수신자 목록과 패스 서버(484)에 저장된 가입자 목록을 비교하여 수신자 목록에 포함된 전화번호들에 대한 푸시 알림 서비스 가입 여부를 확인할 수 있다. 예를 들어, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함된 적어도 하나의 전화번호를 푸시 알림 서비스 가입자의 전화번호로 결정할 수 있다. 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함되지 않은 적어도 하나의 전화번호를 푸시 알림 서비스 비가입자의 전화번호로 결정할 수 있다.
일실시예에 따르면, 동작 1422에서, 제1 서버(480)는 푸시 알림 서비스 가입자의 전화번호에 대응하는 전자 장치(401)로 푸시 알림 메시지를 전송할 수 있다. 일 실시예에 따르면, 푸시 알림 메시지는 제2 서버(490)로부터 수신된 non-SMS 포맷의 메시지가 존재함을 나타내는 인디케이션을 포함할 수 있다.
일실시예에 따르면, 동작 1424에서, 제1 서버(480)는 제2 서버(490)로부터 수신된 메시지를 전자 장치(401)로 전송할 수 있다. 일실시예에 따르면, 제1 서버(480)는 전자 장치(401)로부터 수신된 메시지 전송 요청을 수신하고, 이에 대한 응답으로 전자 장치(401)로 메시지를 전송할 수 있다.
일실시예에 따르면, 동작 1426에서, 전자 정차(401)는 메시지 수신 거절을 설정하는 사용자 입력을 감지하고, 수신 거절 설정을 요청하는 신호를 제1 서버(480)로 전송할 수 있다. 수신 거절 설정을 요청하는 신호를 수신한 제1 서버(480)는 거절 목록(1403)을 생성 및/또는 갱신할 수 있다. 예를 들어, 제1 서버(480)는 제2 서버(490)에 관련된 거절 목록에 전자 장치(401)의 전화번호를 추가할 수 있다.
일실시예에 따르면, 동작 1428에서, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함되지 않은 전화번호, 예컨대, 비가입자 전화번호를 포함하는 실패 정보를 제2 서버(490)로 전송할 수 있다. 일실시예에 따르면, 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함되지 않은 전화번호가 존재하지 않는 경우, 동작 1428은 생략될 수 있다.
일실시예에 따르면, 동작 1430에서, 제2 서버(490)는 비가입자 전화번호에 대응하는 전자 장치로 SMS를 전송할 수 있다. 예를 들어, 제2 서버(490)는 제1 서버(480)로부터 수신된 실패 정보에서 비가입자 전화번호를 확인하고, 확인된 전화번호에 대응되는 전자 장치로 서킷 교환 네트워크를 통해 SMS 메시지를 전송할 수 있다.
도 14c는 본 발명의 다양한 실시예에 따른 메시지 전송 절차를 도시한다.
일실시예에 따르면, 제2 서버(490)는 동작 1450에서 제1 서버(480)로 메시지를 전송할 수 있다. 예를 들어, 제2 서버(490)는 non-SMS 포맷의 메시지를 제1 서버(480)로 전송할 수 있다. 제2 서버(490)로부터 메시지를 수신한 제1 서버(480)는 제2 서버(490)로부터 수신된 메시지에 대한 수신자 목록과 패스 서버(484)에 저장된 가입자 목록, 및 제2 서버(490)에 관련된 거절 목록을 비교하여 수신자 목록에 포함된 전화번호들에 대한 푸시 알림 서비스 가입 여부 및 메시지 수신 거부 여부를 확인할 수 있다. 예를 들어, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함되어 있고, 거절 목록에 포함되지 않은 적어도 하나의 전화번호를 푸시 알림 서비스에 가입되어 있으면서, 제2 서버(490)로부터 메시지가 수신되는 것을 거부하지 않은 전화번호로 결정할 수 있다. 다른 예로, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록 및 거절 목록에 포함된 적어도 하나의 전화번호를 푸시 알림 서비스에 가입되어 있으나, 제2 서버(490)로부터 메시지기 수신되는 것을 거부한 전화번호로 결정할 수 있다. 또 다른 예로, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 가입자 목록에 포함되지 않은 적어도 하나의 전화번호를 푸시 알림 서비스 비가입자의 전화번호로 결정할 수 있다.
일실시예에 따르면, 동작 1452에서, 제1 서버(480)는 푸시 알림 서비스에 가입되어 있으면서 메시지 수신을 거부하지 않은 전화번호에 대응하는 전자 장치(401)로 푸시 알림 메시지를 전송할 수 있다. 일 실시예에 따르면, 푸시 알림 메시지는 제2 서버(490)로부터 수신된 non-SMS 포맷의 메시지가 존재함을 나타내는 인디케이션을 포함할 수 있다.
일실시예에 따르면, 동작 1454에서, 제1 서버(480)는 제2 서버(490)로부터 수신된 메시지를 전자 장치(401)로 전송할 수 있다. 일실시예에 따르면, 제1 서버(480)는 전자 장치(401)로부터 수신된 메시지 전송 요청을 수신하고, 이에 대한 응답으로 전자 장치(401)로 메시지를 전송할 수 있다. 도시되지는 않았으나, 일실시예에 따르면, 전자 정차(401)는 메시지 수신 거절을 설정하는 사용자 입력을 감지하고, 수신 거절 설정을 요청하는 신호를 제1 서버(480)로 전송할 수 있다. 수신 거절 설정을 요청하는 신호를 수신한 제1 서버(480)는 거절 목록(1403)을 생성 및/또는 갱신할 수 있다.
일실시예에 따르면, 동작 1456에서, 제1 서버(480)는 수신자 목록에 포함된 전화번호들 중에서 비가입자 전화번호, 또는 서비스에 가입되었으나 메시지 수신을 거부한 전화번호를 포함하는 실패 정보를 제2 서버(490)로 전송할 수 있다. 일실시예에 따르면, 수신자 목록에 포함된 전화번호들 중에서 비가입자 전화번호, 및/또는 서비스에 가입되었으나 메시지 수신을 거부한 전화번호가 존재하지 않는 경우, 동작 1456은 생략될 수 있다.
일실시예에 따르면, 동작 1458에서, 제2 서버(490)는 비가입자 전화번호에 대응하는 전자 장치로 SMS를 전송할 수 있다. 예를 들어, 제2 서버(490)는 제1 서버(480)로부터 수신된 실패 정보에서 비가입자 전화번호를 확인하고, 확인된 전화번호에 대응되는 전자 장치로 서킷 교환 네트워크를 통해 SMS 메시지를 전송할 수 있다. 일실시예에 따르면, 제2 서버(490)는 메시지 수신 거부를 설정한 전화번호를 포함하는 목록을 저장하고, 저장된 목록을 추후 제1 서버(480)로 전송되는 메시지에 대한 수신자 목록 생성 시에 이용할 수 있다.
도 15는 본 발명의 다양한 실시예에 따른 시스템에서 전자 장치의 등록을 위한 신호 흐름을 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 이하 설명에서, 전자 장치(401)는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있고, 제2 어플리케이션(514)은 도 5의 제2 어플리케이션 프로그램(514)일 수 있다. 제1 서버(480)는 도 1의 제1 서버(120), 도 4의 제1 서버(480), 및/또는 도 7의 제1 서버(701)일 수 있다.
도 15를 참조하면, 일실시예에 따른 전자 장치(401)는 동작 1510에서 제2 어플리케이션(514)을 이용하여 제1 서버(480)의 푸시 서버(482)로 발신자 식별 정보를 포함하는 등록 요청 신호를 전송할 수 있다. 일실시예에 따르면, 발신자 식별 정보는 전자 장치의 개발 단계에서 개발자에 의해 제1 서버(480)의 푸시 서버(482)로부터 미리 획득된 정보일 수 있다. 예를 들어, 전자 장치의 개발단계에서 개발자에 의해 제1 서버(480)의 푸시 서버(482)로부터 서버 키 및 발신자 식별 정보가 획득될 수 있다. 서버 키 정보는 제1 서버(480)의 패스 서버(484)가 제1 서버(480)의 푸시 서버(482)에 접근하는데 이용되는 정보일 수 있다. 발신자 식별 정보는 제1 서버(480)의 푸시 서버(482) 및/또는 패스 서버(484)에서 전자 장치(401)를 식별하기 위해 이용되는 전자 장치(401)의 식별 정보일 수 있다. 서버 키는 개발자에 의해 제1 서버(480)의 패스 서버에 등록되고, 발신자 식별 정보는 개발자에 의해 제2 어플리케이션(514)에 등록될 수 있다.
일실시예에 따르면, 제1 서버(480)의 푸시 서버(482)는 동작 1512에서, 전자 장치(401)로 제2 어플리케이션(514)에 대한 등록 토큰을 전송할 수 있다. 등록 토큰은 제2 어플리케이션에 대한 인증 정보로 이용될 수 있다. 제1 서버(480)의 푸시 서버(482)는 서로 다른 전자 장치의 동일한 어플리케이션에 대해 동일한 등록 토큰을 할당할 수 있다.
일실시예에 따르면, 전자 장치(401)는 동작 1514에서 제2 어플리케이션(514)을 이용하여 제1 서버(480)의 푸시 서버(482)로부터 할당된 등록 토큰을 제1 서버(480)의 패스 서버(484)로 전송할 수 있다. 일실시예에 따르면, 전자 장치(401)는 전자 장치(401)의 식별 정보를 제1 서버(480)의 패스 서버(484)로 추가 전송할 수 있다. 예를 들어, 전자 장치(401)는 제2 어플리케이션(514)에 대한 등록 토큰을 제1 서버(480)의 패스 서버(484)로 전송하면서, 전자 장치(401)의 전화번호, IMEI, 또는 시리얼 넘버 중 적어도 하나를 더 전송할 수 있다.
도 16은 본 발명의 다양한 실시예에 따른 시스템에서 푸시 알림을 이용하는 메시지를 제공하기 위한 신호 흐름을 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 이하 설명에서, 전자 장치(401)는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 제1 어플리케이션(512)은 도 5의 제1 어플리케이션 프로그램(512)일수 있으며, 제2 어플리케이션(514)은 도 5의 제2 어플리케이션 프로그램(514)일 수 있다. 제1 서버(480)는 도 1의 제1 서버(120), 도 4의 제1 서버(480), 및/또는 도 7의 제1 서버(701)일 수 있다. 제2 서버(490)는 도 1의 제2 서버(130), 및/또는 도 4의 제2 서버(490)일 수 있다.
도 16을 참조하면, 일실시예에 따른 제2 서버(490)는 동작 1610에서 제1 서버(480)의 패스 서버(484)로 데이터를 전송할 수 있다. 예를 들어, 제2 서버(490)는 non-SMS 포맷의 메시지를 제1 서버(480)의 패스 서버(484)로 데이터를 전송할 수 있다. non-SMS 포맷의 메시지는, 예를 들어, 메시지 내의 적어도 일부분에, 공지된 SMS 표준 규격(예: 3GPP, 또는 3GPP2 SMS 표준 규격)을 따르는 데이터를 포함하는 메시지일 수 있다.
일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 동작 1612에서 서버 키, 등록 토큰, 또는 메시지 ID 중 적어도 하나를 포함하는 신호를 제1 서버(480)의 푸시 서버(482)로 전송할 수 있다. 일실시예에 따르면, 서버 키는 전자 장치(401)의 개발 단계에서 개발자에 의해 패스 서버(484)에 등록될 수 있으며, 및 등록 토큰은 전자 장치(401)의 등록 절차 동안에 전자 장치(401)로부터 수신 및 등록될 수 있다. 일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 제2 서버(490)로부터 수신된 메시지에 대한 수신자 목록에 기초하여, 해당 메시지를 전송할 전자 장치들을 식별하고, 식별된 전자 장치들에 관련된 서버 키, 및 등록 토큰을 검색할 수 있다. 일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 제2 서버(490)로부터 수신된 데이터에 메시지 ID를 할당하고, 할당된 메시지 ID, 검색된 서버 키 및 등록 토큰을 포함하는 신호를 제1 서버(480)로 제공할 수 있다.
일실시예에 따르면, 제1 서버(480)의 푸시 서버(482)는 동작 1614에서 전자 장치(401)로 메시지 ID를 포함하는 푸시 알림 메시지를 전송할 수 있다. 일실시예에 따르면, 제1 서버(480)의 푸시 서버(482)는 제1 서버(480)의 패스 서버(484)로부터 수신된 신호에 포함된 서버 키 및 등록 토큰에 기초하여, 제1 서버(480)의 패스 서버(484)로부터 수신된 신호가 유효한 신호인지 여부를 결정할 수 있다. 예를 들어, 제1 서버(480)의 푸시 서버(482)는 제1 서버(480)의 패스 서버(484)로부터 수신된 신호에 포함된 서버 키 및 등록 토큰이, 제1 서버(480)의 푸시 서버(482)에 미리 등록된 서버 키 및 등록 토큰과 일치하는 경우, 해당 신호가 유효한 신호인 것으로 결정할 수 있다. 다른 예로, 제1 서버(480)의 푸시 서버(482)는 제1 서버(480)의 패스 서버(484)로부터 수신된 신호에 포함된 서버 키 및 등록 토큰이, 제1 서버(480)의 푸시 서버(482)에 미리 등록된 서버 키 및 등록 토큰과 일치하지 않는 경우, 해당 신호가 유효한 신호가 아닌 것으로 결정하고, 해당 신호를 폐기할 수 있다. 일실시예에 따르면, 제1 서버(480)의 푸시 서버(482)는 제1 서버(480)의 패스 서버(484)로부터 수신된 신호가 유효한 신호인 것으로 결정된 경우, 인터넷 프로토콜 네트워크를 통해, 메시지 ID를 포함하는 푸시 알림 메시지를 전자 장치(401)로 전송할 수 있다. 제1 서버(480)의 푸시 서버(482)가 인터넷 프로토콜을 통해 푸시 알림 메시지를 전자 장치(401)로 전송함으로써, 푸시 알림 메시지는 전자 장치(401)의 제2 어플리케이션(514)으로 제공될 수 있다.
일실시예에 따르면, 전자 장치(401)는 제2 어플리케이션(514)을 이용하여 푸시 알림 메시지를 수신할 수 있다. 전자 장치(401)는 동작 1616에서 제2 어플리케이션(514)을 이용하여 푸시 알림 메시지로부터 메시지 ID를 획득하고, 메시지 ID를 포함하는 메시지 전송 요청 신호를 제1 서버(480)의 패스 서버(484)로 전송할 수 있다.
일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 동작 1618에서 메시지 ID에 대응되는 데이터를 검색하고, 검색된 데이터를 포함하는 non-SMS 포맷의 메시지를 전자 장치(401)의 제2 어플리케이션(514)으로 전송할 수 있다. 검색된 데이터는 공지된 SMS 표준 규격(예: 3GPP, 또는 3GPP2 SMS 표준 규격)을 따르는 데이터일 수 있다. 일실시예에 따르면, 제1 서버(480)의 패스 서버(484)는 인터넷 프로토콜 네트워크를 통해, non-SMS 포맷의 메시지를 전자 장치(401)로 전송할 수 있다. 제1 서버(480)의 패스 서버(484)가 인터넷 프로토콜을 통해 non-SMS 포맷의 메시지를 전자 장치(401)로 전송함으로써, non-SMS 포맷의 메시지는 전자 장치(401)의 제2 어플리케이션(514)으로 제공될 수 있다.
일실시예에 따르면, 전자 장치(401)는 제2 어플리케이션(514)를 이용하여 non-SMS 포맷의 메시지를 수신할 수 있다. 전자 장치(401)는 동작 1620에서 제2 어플리케이션(514)을 이용하여 non-SMS 포맷의 메시지를 SMS 포맷으로 변경하고, SMS 포맷으로 변경된 메시지를 제1 어플리케이션(512)으로 제공할 수 있다. 전자 장치(401)는 제1 어플리케이션(512)을 이용하여 SMS 포맷의 메시지를 처리할 수 있다.
도 17은 본 발명의 다양한 실시예에 따른 시스템에서 메시지의 무결성을 검사하기 위한 신호 흐름을 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다. 이하 설명에서, 전자 장치(401)는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 제2 어플리케이션(514)은 도 5의 제2 어플리케이션 프로그램(514)일 수 있다. 제1 서버(480)는 도 1의 제1 서버(120), 도 4의 제1 서버(480), 및/또는 도 7의 제1 서버(701)일 수 있다. 제2 서버(490)는 도 1의 제2 서버(130), 및/또는 도 4의 제2 서버(490)일 수 있다.
도 17을 참조하면, 일실시예에 따른 동작 1710에서, 제1 서버(480)의 패스 서버(484)는 제2 서버(490)와 인증서를 교환할 수 있다. 동작 1710에서, 전자 장치(401)는 제1 서버(480)의 패스 서버(484)로 서명 신호를 전송할 수 있다. 서명 신호는 전자 장치(401)의 인증서를 포함할 수 있다. 동작 1722 및 동작 1724에서, 전자 장치(401)는 서명 신호에 대한 응답으로, 제1 서버(480)의 패스 서버(484)로부터 제1 서버(480)의 인증서와 제2 서버(490)의 인증서를 수신할 수 있다. 상술한 동작 1710, 동작 1720, 1722 및 1724는 사전에 한 번 수행될 수 있으며, 후술되는 동작 1730 내지 동작 1754는 제2 서버(490)로부터 메시지 전송 요청이 발생되는 시점마다 반복적으로 수행될 수 있다.
일실시예에 따르면, 동작 1730에서, 제1 서버(480)의 패스 서버(484)와 제2 서버(490) 각각은 교환된 인증서에 기초하여 무결성 검사를 위한 제1 데이터 세션 키를 생성하고, 생성된 제1 데이터 세션 키를 교환할 수 있다. 일실시예에 따르면, 제1 서버(480)의 패스 서버(484)와 제2 서버(490) 각각은 제1 서버의 인증서 및 제2 서버의 인증서 각각에 기초하여 제1 데이터 세션 키를 생성 및 교환할 수 있다. 일실시예에 따르면, 제2 서버(490)는 메시지 전송을 위해 제1 데이터 세션 키를 생성하여 제1 서버(480)의 패스 서버(484)로 전송하고, 제1 서버(480)의 패스 서버(484)는 제2 서버(490)의 제1 데이터 세션 키가 수신되면, 미리 교환된 인증서에 기초하여 제1 서버(480)의 제1 데이터 세션 키를 생성하여 제2 서버(490)로 전송할 수 있다.
일실시예에 따르면, 동작 1732에서, 제2 서버(490)는 제1 서버(480)의 패스 서버(484)와 교환한 제1 데이터 세션 키를 이용하여, SMS 표준 규격(예: 3GPP, 또는 3GPP2 SMS 표준 규격)을 따르는 데이터를 포함하는 non-SMS 포맷의 메시지에 대한 서명을 수행하고, 서명된 non-SMS 포맷의 메시지를 제1 서버(480)의 패스 서버(484)로 전송할 수 있다.
일실시예에 따르면, 동작 1734에서, 제1 서버(480)의 패스 서버(484)는 제2 서버(490)과 교환한 제1 데이터 세션 키를 이용하여, 제2 서버(490)로부터 수신된 non-SMS 포맷의 메시지에 대한 무결성 검사를 수행할 수 있다. 무결성 검사 결과 무결성이 확보된 것으로 결정되면, 동작 1736에서, 제1 서버(480)의 패스 서버(484)는 제1 서버(480)의 푸시 서버(482)로 메시지 ID를 포함하는 신호를 전송할 수 있다. 동작 1736의 신호는, 도 16의 동작 1612의 신호와 동일하게 구성될 수 있다.
일실시예에 따르면, 동작 1738에서, 제1 서버(480)의 푸시 서버(482)는 전자 장치(401)로 메시지 ID를 포함하는 푸시 알림 메시지를 전송할 수 있다. 동작 1738은, 도 16의 동작 1614와 동일하게 수행될 수 있다.
일실시예에 따르면, 제1 서버(480)의 푸시 서버(482)로부터 푸시 알림 메시지를 수신한 전자 장치(401)는 동작 1740에서, 제1 서버(480)의 패스 서버(484)에 접속할 수 있다. 일실시예에 따르면, 동작 1742에서, 전자 장치(401)와 제1 서버(480)의 패스 서버(484)는 사전에 교환된 인증서에 기초하여 제2 데이터 세션 키를 생성하고, 생성된 제2 데이터 세션 키를 교환할 수 있다.
일실시예에 따르면, 동작 1744에서, 제1 서버의 패스 서버(484)는 제2 데이터 세션 키를 이용하여 제1 데이터 세션 키를 암호화하고, 동작 1746에서 암호화된 제1 데이터 세션 키를 제2 서버(490)로부터 수신된, SMS 표준 규격을 따르는 데이터를 포함하는 non-SMS 포맷의 메시지와 함께 저장할 수 있다.
일실시예에 따르면, 동작 1748에서, 전자 장치(401)는 푸시 알림 메시지에 포함된 메시지 ID에 대응되는 메시지를 전송해줄 것을 요청하는 신호를 제1 서버(480)의 패스 서버(484)로 전송할 수 있다. 일실시예에 따르면, 동작 1750에서, 제1 서버(480)의 패스 서버(484)는 SMS 표준 규격을 따르는 데이터를 포함하는 non-SMS 포맷의 메시지와 암호화된 제1 데이터 세션 키를 전자 장치(401)로 전송할 수 있다.
일실시예에 따르면, 동작 1752에서, 전자 장치(401)는 제2 데이터 세션 키를 이용하여, 수신된 암호화된 제1 데이터 세션 키를 복호화하여 제1 데이터 세션 키를 획득할 수 있다. 일실시예에 따르면, 동작 1754에서, 전자 장치(401)는 제1 데이터 세션 키에 기초하여 SMS 표준 규격을 따르는 데이터를 포함하는 non-SMS 포맷의 메시지의 무결성을 검사할 수 있다.
일실시예에 따르면, 동작 1756에서, 전자 장치(401)는 무결성 검사에 대한 결과 신호를 제1 서버(480)의 패스 서버(482)로 전송할 수 있다. 예를 들어, 전자 장치(401)는 수신된 non-SMS 포맷의 메시지에 대한 무결성이 확보되지 않은 것으로 결정되면, 제1 서버(480)의 패스 서버(482)로 NACK 응답 신호를 전송하고, 수신된 non-SMS 포맷의 메시지에 대한 무결성이 확보된 것으로 결정되면, 제1 서버(480)의 패스 서버(484)로 ACK 응답 신호를 전송할 수 있다.
도 18은 본 발명의 다양한 실시예에 따른 전자 장치에서 수신 메시지에 관련된 오류를 처리하기 위한 신호 흐름을 도시한다. 이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있다. 이하 설명에서, 전자 장치(401)는 도 1의 전자 장치(100), 도 2의 전자 장치(201), 및/또는 도 4의 전자 장치(401)일 수 있다. 제1 어플리케이션(512)은 도 5의 제2 어플리케이션 프로그램(514)일 수 있고, 제2 어플리케이션(514)은 도 5의 제2 어플리케이션 프로그램(514)일 수 있다. 패스 매니저(524)는 도 5의 패스 매니저(524), 패스 변환기(522), 또는 패스 인터페이스(528) 중 적어도 하나를 포함하도록 구성될 수 있고, 메시지 핸들러(526)는 도 5의 메시지 핸들러(526)일 수 있다.
도 18을 참조하면, 일실시예에 따른 전자 장치(401)의 제2 어플리케이션(514)은 동작 1810에서 non-SMS 포맷의 메시지에 포함된 데이터를 패스 매니저(524)로 제공할 수 있다. 일실시예에 따르면, non-SMS 포맷의 메시지는 공지된 SMS 표준 규격을 따르는 TPDU 데이터를 포함할 수 있다. 제2 어플리케이션(514)은 non-SMS 포맷의 메시지로부터 SMS 표준 규격을 따르는 TPDU 데이터를 추출하고, 추출된 TPDU 데이터를 패스 매니저(524)로 제공할 수 있다.
일실시예에 따르면, 전자 장치(401)의 패스 매니저(524)는 동작 1812에서 제2 어플리케이션(514)으로부터 수신된 데이터를 SMS 포맷의 메시지로 변경하여 메시지 핸들러(526)로 전송할 수 있다. 예를 들어, 패스 매니저(524)는 제2 어플리케이션(514)으로부터 수신된 TPDU 데이터에 기초하여, 도 6에 도시된 바와 같은 SMS 포맷의 메시지를 생성할 수 있다.
일실시예에 따르면, 메시지 핸들러(526)는 동작 1820에서 수신된 SMS 포맷의 메시지에 대한 저장 가능 여부, 수신된 SMS 포맷의 메시지에 대한 중복 수신 여부, 또는 수신된 SMS 포맷의 메시지의 데이터 포맷 처리 가능 여부 중 적어도 하나에 기초하여 오류가 발생되는지 여부를 결정할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 오류 발생 여부에 대응되는 신호를 생성할 수 있으며, 생성된 신호에 따라 동작 1830, 동작 1840, 동작 1850, 동작 1860, 또는 동작 1870 중 적어도 하나가 수행될 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 잔여 메모리 용량 및 수신된 SMS 포맷의 메시지의 크기에 기초하여, 수신된 SMS 포맷의 메시지의 저장 가능 여부를 결정할 수 있다. 메시지 핸들러(526)는 잔여 메모리 용량이 수신된 SMS 포맷의 메시지의 크기보다 작은 경우, 메모리 용량에 의해 수신된 SMS 포맷의 메시지의 저장이 불가능함을 나타내는 제1 원인 코드를 생성할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 수신된 SMS 포맷의 메시지의 중복 수신 여부를 결정하고, 중복 수신된 경우, 수신된 SMS 포맷의 메시지가 중복 수신되었음을 나타내는 제2 원인 코드를 생성할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 수신된 SMS 포맷의 메시지에 포함된 데이터의 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷인지 여부를 확인하고, 수신된 SMS 포맷의 메시지에 포함된 데이터의 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷이 아닌 경우, 수신된 SMS 포맷의 메시지의 데이터 포맷 오류를 나타내는 제3 원인 코드를 생성할 수 있다. 일실시예에 따르면, 메시지 핸들러(526)는 잔여 메모리 용량이 수신된 SMS 포맷의 메시지의 크기보다 크거나 같고, 수신된 SMS 포맷의 메시지가 중복 수신된 것이 아니며, 수신된 SMS 포맷의 메시지의 데이터 포맷이 제1 어플리케이션 프로그램에서 처리 가능한 데이터 포맷인 경우, 수신된 SMS 포맷의 메시지에 대한 오류가 발생되지 않은 것으로 결정할 수 있다.
일실시예에 따르면, 메시지 핸들러(526)에 의해 제1 원인 코드가 생성된 경우, 동작 1830이 수행될 수 있다. 메시지 핸들러(526)는 동작 1832에서 Ack 및 제1 원인 코드를 패스 매니저(524)로 제공할 수 있다. Ack 및 제1 원인 코드를 수신한 패스 매니저(524)는 동작 1834에서 Ack 및 제1 원인 코드를 제2 어플리케이션(514)으로 전달할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 도 6b에 도시된 바와 같이, 제1 원인 코드를 포함하는 응답 메시지를 제2 어플리케이션(514)으로 전송할 수 있다. 제2 어플리케이션(514)은 패스 매니저(524)로부터 수신된 제1 원인 코드에 기초하여, 메시지 핸들러(526)가 동작 1810에서 전송한 TPDU를 수신하였으나, 메모리 오류가 발생되었음을 확인할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은, 메모리 용량이 부족함을 나타내는 경고 메시지(또는 인디케이션), 또는 메모리 용량 확보를 요청하는 경고 메시지(또는 인디케이션)를 표시 장치(예: 표시 장치(예: 도 2의 표시 장치(260), 또는 도 4의 표시 장치(440))에 표시하기 위한 동작을 수행할 수 있다. 제2 어플리케이션(514)은 동작 1836에서 제1 원인 코드에 대한 응답으로, non-SMS 포맷의 메시지에 포함된 데이터를 패스 매니저(524)로 재전송할 수 있다. 예를 들어, 동작 1836에서 패스 매니저(524)로 재전송되는 데이터는 동작 1810에서 패스 매니저(524)로 전송되는 데이터와 동일할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은 기준 용량보다 큰 메모리 용량이 확보된 것이 감지되는 것에 대한 응답으로, 동작 1836을 수행할 수 있다. 기준 용량은 개발자에 의해 미리 설정되거나, 수신된 non-SMS 포맷의 메시지에 포함된 TPDU의 크기에 기초하여 설정될 수 있다. 패스 매니저(524)는 동작 1836에서, 제2 어플리케이션(514)으로부터 수신된 데이터를 SMS 포맷으로 변경하여 메시지 핸들러(526)로 전송할 수 있다. SMS 포맷의 메시지를 재수신한 메시지 핸들러(526)는 동작 1820을 재수행할 수 있다.
일실시예에 따르면, 메시지 핸들러(526)에 의해 제2 원인 코드가 생성된 경우, 동작 1840이 수행될 수 있다. 메시지 핸들러(526)는 동작 1842에서 Ack 및 제2 원인 코드를 패스 매니저(524)로 제공할 수 있다. Ack 및 제2 원인 코드를 수신한 패스 매니저(524)는 동작 1844에서 Ack 및 제2 원인 코드를 제2 어플리케이션(514)으로 전달할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 도 6b에 도시된 바와 같이, 제2 원인 코드를 포함하는 응답 메시지를 제2 어플리케이션(514)으로 전송할 수 있다. 제2 어플리케이션(514)은 패스 매니저(524)로부터 수신된 제2 원인 코드에 기초하여, 메시지 핸들러(526)가 동작 1810에서 전송한 TPDU를 수신하였으나, 해당 TPDU가 중복 수신된 것임을 확인할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은, non-SMS 포맷의 메시지에 대해 처리가 완료된 것으로 결정할 수 있다. 예를 들어, 제2 어플리케이션(514)은 수신된 non-SMS 포맷의 메시지가 이전에 수신되어 제1 어플리케이션(512)으로 제공된 메시지인 것으로 확인하고, 수신된 non-SMS 포맷의 메시지를 폐기할 수 있다.
일실시예에 따르면, 메시지 핸들러(526)에 의해 제3 원인 코드가 생성된 경우, 동작 1850이 수행될 수 있다. 메시지 핸들러(526)는 동작 1852에서 Ack 및 제3 원인 코드를 패스 매니저(524)로 제공할 수 있다. Ack 및 제3 원인 코드를 수신한 패스 매니저(524)는 동작 1854에서 Ack 및 제3 원인 코드를 제2 어플리케이션(514)으로 전달할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 도 6b에 도시된 바와 같이, 제3 원인 코드를 포함하는 응답 메시지를 제2 어플리케이션(514)으로 전송할 수 있다. 제2 어플리케이션(514)은 패스 매니저(524)로부터 수신된 제3 원인 코드에 기초하여, 메시지 핸들러(526)가 동작 1810에서 전송한 TPDU를 수신하였으나, 데이터 포맷에 의한 오류가 발생되었음을 확인할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)은 동작 1856에서 제1 서버(480)로 CS fallback 요청 신호를 전송할 수 있다. 예를 들어, 제2 어플리케이션(514)은 해당 메시지를 회선 교환 네트워크를 통해 전송해줄 것을 요청하는 신호를 제1 서버(480)로 전송할 수 있다. CS fallback 요청 신호는 해당 메시지의 ID를 포함할 수 있다. 일실시예에 따르면, CS fallback 요청 메시지는 패스 매니저(524)에서 생성된 응답 메시지일 수 있다.
일실시예에 따르면, 메시지 핸들러(526)에 의해 오류가 발생되지 않은 것으로 결정된 경우, 동작 1860이 수행될 수 있다. 메시지 핸들러(526)는 동작 1862에서 SMS 포맷의 메시지를 제1 어플리케이션(1512)로 제공하고, 동작 1864에서 Ack 및 성공 신호를 패스 메니저(524)로 전달할 수 있다. Ack 및 성공 신호를 수신한 패스 매니저(524)는 동작 1854에서 Ack 및 성공 신호를 제2 어플리케이션(514)으로 전달할 수 있다. 일실시예에 따르면, 패스 매니저(524)는 Ack 및 성공을 나타내는 응답 메시지를 제2 어플리케이션(514)으로 전송할 수 있다.
일실시예에 따르면, 제2 어플리케이션(514)이 메시지 핸들러(526)로부터 응답 메시지(또는 응답 신호)를 수신하지 못할 경우, 동작 1870이 수행될 수 있다. 예를 들어, 제2 어플리케이션(514)이 동작 1810을 수행한 시점부터 미리 설정된 기준 시간 이내에 메시지 핸들러(526)로부터 응답 메시지를 수신하지 못할 경우, 제2 어플리케이션(514)에 의해 동작 1870이 수행될 수 있다. 제2 어플리케이션(514)은 동작 1872에서 non-SMS 포맷의 메시지에 포함된 데이터를 패스 매니저(524)로 재전송할 수 있다. 예를 들어, 동작 1872에서 패스 매니저(524)로 재전송되는 데이터는 동작 1810에서 패스 매니저(524)로 전송되는 데이터와 동일할 수 있다. 패스 매니저(524)는 동작 1874에서, 제2 어플리케이션(514)으로부터 수신된 데이터를 SMS 포맷으로 변경하여 메시지 핸들러(526)로 전송할 수 있다. SMS 포맷의 메시지를 재수신한 메시지 핸들러(526)는 동작 1820을 재수행할 수 있다. 일실시예에 따르면, 제2 어플리케이션(514)이 동작 1872을 수행한 시점부터 미리 설정된 기준 시간 이내에 메시지 핸들러(526)로부터 응답 메시지를 수신하지 못할 경우, 동작 1874 및 동작 1875와 같이, 제2 어플리케이션(514)에서 메시지 핸들러(526)로 데이터를 제공하는 동작이 반복적으로 수행될 수 있다. 일실시예에 따르면, 제2 제2 어플리케이션(514)에서 메시지 핸들러(526)로 데이터를 제공하는 동작이 임계횟수 반복되었으나, 메시지 핸들러(526)로부터 응답 메시지를 수신하지 못할 경우 2 제2 어플리케이션(514)은 제1 서버(480)로 non-SMS 포맷의 메시지에 대한 처리 실패 신호를 전송할 수 있다. non-SMS 포맷의 메시지에 대한 처리 실패 신호는 예를 들어, 해당 non-SMS 포맷의 메시지를 회선 교환 네트워크를 통해 전송해줄 것을 요청하는 정보를 포함할 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    디스플레이;
    무선 통신 회로;
    상기 통신 회로 및 상기 디스플레이에 작동적으로 연결되는 프로세서; 및
    상기 프로세서와 작동적으로 연결된 메모리를 포함하며, 상기 메모리는 SMS(short message service) 어플리케이션 프로그램인 제1 어플리케이션 프로그램 및 non-SMS 어플리케이션 프로그램인 제2 어플리케이션 프로그램을 저장하고,
    상기 메모리는, 실행될 때 상기 프로세서로 하여금,
    상기 제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 상기 통신 회로를 통해 푸시 알림을 수신하고, 상기 푸시 알림은 상기 제1 어플리케이션 프로그램에 대한 메시지를 나타내고;
    상기 제2 어플리케이션 프로그램을 이용하여, 상기 통신 회로를 통해, 상기 외부 서버로 상기 메시지에 대한 요청을 전송하고;
    상기 제2 어플리케이션 프로그램을 이용하여 상기 통신 회로를 통해 상기 외부 서버로부터 상기 메시지를 수신하고;
    상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 상기 제1 어플리케이션 프로그램으로 제공하고; 및
    상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 하는 인스트럭션들(instructions)을 저장하는 전자 장치.
  2. 제1항에 있어서,
    상기 푸시 알림은 상기 메시지에 대한 식별정보를 포함하는 전자 장치.
  3. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    제1 포맷의 상기 메시지를 수신하고; 및
    상기 메시지를 상기 제1 어플리케이션 프로그램에 의해 처리 가능한 제2 포맷으로 변환하는 전자 장치.
  4. 제3항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제1 포맷의 상기 메시지로부터 적어도 하나의 전송 프로토콜 데이터 유닛(transport protocol data unit)를 획득하고; 및
    상기 획득된 적어도 하나의 전송 프로토콜 데이터 유닛을 포함하는 상기 제2 포맷의 메시지를 생성하는 전자 장치.
  5. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지에 포함된 데이터의 타입이 상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입인지 여부를 결정하고;
    상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입이면, 상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 제1 어플리케이션 프로그램으로 제공하고; 및
    상기 제1 어플리케이션 프로그램에 대응되는 데이터 타입이 아니면, 상기 제1 어플리케이션 이외의 다른 어플리케이션의 사용자 인터페이스를 이용하여 상기 메시지를 표시하도록 하며,
    상기 다른 어플리케이션은, 상기 제2 어플리케이션을 포함하는 전자 장치.
  6. 제1항에 있어서,
    상기 인스트럭션들은 상기 프로세서로 하여금,
    상기 푸시 알림 수신, 상기 요청 전송, 및 상기 메시지 수신에 인터넷 프로토콜(Internet Protocol; IP)을 이용하도록 하는 전자 장치.
  7. 제1항에 있어서,
    상기 제2 어플리케이션 프로그램은 비-어플리케이션 프로그램인 전자 장치.
  8. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제1 어플리케이션 프로그램을 이용하여, 상기 메시지에 대한 오류 발생을 감지하고; 및
    상기 오류 발생이 감지된 것에 대한 응답으로, 오류 발생 원인을 나타내는 코드를 포함하는 응답 메시지를 상기 제2 어플리케이션 프로그램으로 제공하는 전자 장치.
  9. 제8항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 메모리의 잔여 용량에 기초한 상기 메시지의 저장 가능 여부, 상기 메시지의 중복 수신 여부, 또는 상기 메시지에 포함된 데이터 포맷의 처리 가능 여부 중 적어도 하나에 기초하여 상기 메시지에 대한 오류 발생을 감지하도록 하고,
    상기 오류 발생 원인을 나타내는 코드는, 메모리 용량 부족, 상기 메시지의 중복 수신, 또는 상기 메시지에 포함된 데이터 포맷 처리 불가능 중 어느 하나를 나타내는 전자 장치.
  10. 제8항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제2 어플리케이션 프로그램을 이용하여 상기 오류 발생 원인을 나타내는 코드에 대응되는 동작을 수행하도록 하고,
    상기 오류 발생 원인을 나타내는 코드에 대응되는 동작은, 상기 메시지를 상기 제1 어플리케이션 프로그램으로 다시 제공하는 동작, 상기 메시지를 폐기하는 동작, 또는 상기 외부 서버로 상기 메시지에 대한 처리 실패를 나타내는 신호를 전송하는 동작 중 적어도 하나를 포함하는 전자 장치.
  11. 제1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 통해 상기 메시지에 대한 수신 허용 여부를 설정하기 위한 사용자 입력을 감지하고; 및
    상기 사용자 입력에 대응되는 상기 메시지에 대한 수신 허용 여부를 나타내는 신호를 상기 외부 서버로 전송하도록 하는 전자 장치.
  12. 시스템에 있어서,
    네트워크 인터페이스;
    상기 인터페이스에 작동적으로 연결된 적어도 하나의 프로세서; 및
    상기 프로세서에 작동적으로 연결된 적어도 하나의 메모리를 포함하며,
    상기 메모리는, 실행될 때 상기 프로세서로 하여금,
    상기 인터페이스를 통해 외부 서버로부터 non-SMS(non-short message service) 포맷의 제1 메시지 데이터를 수신하고, 상기 제1 메시지 데이터는 전화번호를 포함하는 복수의 모바일 디바이스들로 전송되며;
    인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 제1 메시지 데이터의 인디케이션을 포함하는 푸시 알림을, 상기 모바일 디바이스들의 전화번호에 적어도 부분적으로 기초하여, 상기 모바일 디바이스들 중 일부에 해당하는 적어도 하나의 모바일 디바이스로 전송하고;
    상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로부터 상기 제1 메시지 데이터에 대한 요청을, 수신하고;
    상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로 상기 non-SMS 포맷의 상기 제1 메시지 데이터를 전송하고; 및
    상기 인터페이스를 통해, 나머지 모바일 디바이스들의부 전화번호에 적어도 부분적으로 기초하여, 푸시 알림이 전송되지 않은 상기 나머지 모바일 디바이스들에 대한 정보를 상기 외부 서버로 제공하도록 하는 인스트럭션을 포함하는 시스템.
  13. 제12항에 있어서, 상기 인디케이션은 제1 메시지 데이터에 대한 식별 정보를 포함하는 시스템.
  14. 제12항에 있어서, 상기 non-SMS 포맷은, 전송 프로토콜 데이터 유닛(transport protocol data unit) 포맷을 포함하는 시스템.
  15. 제12항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 제1 메시지 데이터에 대한 수신 전화번호 목록, 상기 시스템에 등록된 가입 전화번호 목록, 상기 외부 서버에 대한 메시지 수신 거절 전화 번호 목록 중 적어도 하나에 기초하여 상기 모바일 디바이스들 중 상기 일부에 해당하는 상기 적어도 하나의 모바일 디바이스를 결정하도록 하는 시스템.
  16. 제12항에 있어서,
    상기 인스트럭션들은, 상기 프로세서로 하여금,
    상기 인터넷 프로토콜을 이용하는 상기 인터페이스를 통해, 상기 모바일 디바이스들 중 상기 적어도 하나로부터 상기 제1 메시지 데이터에 대한 처리 실패를 나타내는 신호를 수신하고; 및
    상기 처리 실패를 나타내는 신호를 전송한 상기 모바일 디바이스들 중 상기 적어도 하나에 대한 정보를 상기 외부 서버로 제공하도록 하는 시스템.
  17. 전자 장치의 동작 방법에 있어서,
    제2 어플리케이션 프로그램을 이용하여 외부 서버로부터 통신 회로를 통해 푸시 알림을 수신하는 동작, 상기 푸시 알림은 제1 어플리케이션 프로그램에 대한 메시지를 나타내고;
    상기 제2 어플리케이션 프로그램을 이용하여, 상기 통신 회로를 통해, 상기 외부 서버로 상기 메시지에 대한 요청을 전송하는 동작;
    상기 제2 어플리케이션 프로그램을 이용하여 상기 통신 회로를 통해 상기 외부 서버로부터 상기 메시지를 수신하는 동작;
    상기 제2 어플리케이션 프로그램을 이용하여 상기 메시지를 상기 제2 어플리케이션 프로그램으로 제공하는 동작; 및
    상기 제1 어플리케이션 프로그램의 사용자 인터페이스를 이용하여 상기 메시지를 표시하는 동작을 포함하며,
    상기 제2 어플리케이션 프로그램은 non-SMS(non-short message service) 어플리케이션 프로그램이고, 상기 제1 어플리케이션 프로그램은 SMS 어플리케이션 프로그램인 방법.
  18. 제17항에 있어서,
    상기 푸시 알림은 상기 메시지에 대한 식별정보를 포함하는 방법.
  19. 제17항에 있어서,
    상기 메시지를 상기 제1 어플리케이션 프로그램으로 제공하는 동작은,
    상기 메시지의 포맷을 상기 제1 어플리케이션 프로그램에 의해 처리 가능한 포맷으로 변환하는 동작을 더 포함하는 방법.
  20. 제17항에 있어서,
    인터넷 프로토콜을 이용하여 상기 푸시 알림을 수신하는 동작, 상기 요청을 전송하는 동작, 또는 상기 메시지를 수신하는 동작 중 적어도 하나를 수행하는 방법.
KR1020170117731A 2017-09-14 2017-09-14 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법 KR102398502B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170117731A KR102398502B1 (ko) 2017-09-14 2017-09-14 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법
PCT/KR2018/010772 WO2019054779A1 (ko) 2017-09-14 2018-09-13 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법
US16/646,794 US10911908B2 (en) 2017-09-14 2018-09-13 Electronic device for processing message and method for operating same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170117731A KR102398502B1 (ko) 2017-09-14 2017-09-14 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190030367A true KR20190030367A (ko) 2019-03-22
KR102398502B1 KR102398502B1 (ko) 2022-05-17

Family

ID=65722846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170117731A KR102398502B1 (ko) 2017-09-14 2017-09-14 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법

Country Status (3)

Country Link
US (1) US10911908B2 (ko)
KR (1) KR102398502B1 (ko)
WO (1) WO2019054779A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182890A1 (ko) * 2020-03-12 2021-09-16 삼성전자 주식회사 메시지 처리 방법 및 이를 위한 전자 장치
WO2022139131A1 (ko) * 2020-12-24 2022-06-30 삼성전자 주식회사 중복 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200153781A1 (en) * 2018-11-13 2020-05-14 Matthew Kent McGinnis Methods, Systems, and Apparatus for Text to Persistent Messaging
WO2020102349A1 (en) 2018-11-13 2020-05-22 Illumy, Inc. Methods, systems, and apparatus for email to persistent messaging and/or text to persistent messaging
KR20200131035A (ko) 2019-05-13 2020-11-23 삼성전자주식회사 블록체인에 저장된 푸시 메시지를 수신하는 전자 장치 및 방법
CN114338788B (zh) * 2020-09-24 2024-03-15 花瓣云科技有限公司 消息推送方法、电子设备及存储介质
CN112380031A (zh) * 2020-11-16 2021-02-19 深圳市房多多网络科技有限公司 跨应用实时推送消息的方法、装置及计算设备
CN113537944A (zh) * 2021-08-02 2021-10-22 北京明略软件系统有限公司 用于生成业务指令的方法及装置、电子设备、可读存储介质
JP7059434B1 (ja) 2021-12-15 2022-04-25 Kddi株式会社 情報処理装置、情報処理方法、プログラム及び情報処理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120030266A (ko) * 2010-09-20 2012-03-28 삼성전자주식회사 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치
KR20130073320A (ko) * 2011-12-23 2013-07-03 주식회사 케이티 인스턴트 메시지 서버 및 단문 메시지 서비스 서버의 연동 방법 및 연동 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7609686B1 (en) * 2004-11-01 2009-10-27 At&T Mobility Ii Llc Mass multimedia messaging
KR101637601B1 (ko) * 2010-10-15 2016-07-07 삼성전자주식회사 모바일 메시지 수신 장치 및 방법
KR20120045764A (ko) 2010-11-01 2012-05-09 (주)인터랙티비 애플리케이션을 이용한 단문메시지 발송 방법 및 시스템
KR101845086B1 (ko) 2011-03-30 2018-04-03 삼성전자주식회사 푸시 알림 메시지를 전송하기 위한 장치 및 방법
KR101896573B1 (ko) 2011-11-07 2018-10-05 주식회사 케이티 푸쉬 서버 및 단말
KR101423840B1 (ko) 2012-11-28 2014-07-29 (주)카카오 모바일 보이스 오버 인터넷 프로토콜(mVoIP) 서비스에서의 푸시 알림을 이용한 통화 요청 알림 방법
KR102021792B1 (ko) 2013-02-04 2019-09-17 인포뱅크 주식회사 무선단말장치와 기록매체
EP2899945B1 (en) * 2014-01-23 2021-01-13 Deutsche Telekom AG Method for an enhanced communication between a first network node and a second network node of a telecommunications network, and telecommunications network
KR20160013355A (ko) 2014-07-24 2016-02-04 주식회사 토마토 솔루션 푸쉬 메시지 기반 금융정보 제공 시스템
KR101597977B1 (ko) 2014-11-26 2016-02-29 주식회사 누리고 푸시 알림과 단문메시지 통합서비스를 제공하는 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120030266A (ko) * 2010-09-20 2012-03-28 삼성전자주식회사 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치
KR20130073320A (ko) * 2011-12-23 2013-07-03 주식회사 케이티 인스턴트 메시지 서버 및 단문 메시지 서비스 서버의 연동 방법 및 연동 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021182890A1 (ko) * 2020-03-12 2021-09-16 삼성전자 주식회사 메시지 처리 방법 및 이를 위한 전자 장치
WO2022139131A1 (ko) * 2020-12-24 2022-06-30 삼성전자 주식회사 중복 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
KR102398502B1 (ko) 2022-05-17
US20200267514A1 (en) 2020-08-20
US10911908B2 (en) 2021-02-02
WO2019054779A1 (ko) 2019-03-21

Similar Documents

Publication Publication Date Title
KR102398502B1 (ko) 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법
US11122404B2 (en) Electronic device, external electronic device, and method of managing embedded subscriber identity modules of external electronic device
US11824854B2 (en) Communication system and computer readable storage medium
KR20150062686A (ko) 전자 장치의 스팸 필터링 방법 및 그 전자 장치
KR102538663B1 (ko) 전자 장치, 외부 전자 장치 및 외부 전자 장치의 eSIM 관리 방법
EP3718292B1 (en) Electronic device for managing embedded subscriber identification module and method for same
WO2019125758A1 (en) Cloud assisted accessory pairing
KR102133514B1 (ko) 전자 장치의 상태 메시지 서비스 제공 방법 및 그 전자 장치
KR102422619B1 (ko) 위급한 상황에 처한 사용자의 위치 정보를 제공하는 전자 장치 및 방법
CN110545542A (zh) 基于非对称加密算法的主控密钥下载方法、装置和计算机设备
CN112261651B (zh) 终端的控制方法、装置、终端和存储介质
CN110830479B (zh) 基于多卡的一键登录方法、装置、设备及存储介质
US11297488B2 (en) Electronic device in which profile is installed and operating method for electronic device
KR20190115377A (ko) 외부 전자 장치의 키를 공유하는 전자 장치 및 전자 장치의 동작 방법
CN104639394A (zh) 客户端使用人数的统计方法、装置和系统
EP3896592A1 (en) Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device
CN114980099B (zh) 一种设备之间的连接方法、装置及设备
CN104899730B (zh) 一种移动终端数据处理方法、终端及系统
US11588861B2 (en) Electronic device and operating method for registering IP multimedia subsystem
KR20190115361A (ko) 외부 전자 장치의 키와 관련된 어플리케이션을 관리하는 전자 장치 및 전자 장치의 동작 방법
EP4109812A1 (en) Method for signing key management by electronic device, and electronic device therefor
KR20220050351A (ko) 네트워크 제어 방법 및 이를 사용하는 전자 장치
KR20210082731A (ko) 파일을 다운로드하는 전자 장치 및 그 동작 방법
KR20210142973A (ko) 블록체인을 이용하는 전자 장치 및 동작 방법
KR20200089981A (ko) 억세스 정보를 제공하는 서버 및 그 작동 방법

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