KR20060113358A - 트랜스포트 애그노스틱 풀 모드 메시징 서비스 - Google Patents

트랜스포트 애그노스틱 풀 모드 메시징 서비스 Download PDF

Info

Publication number
KR20060113358A
KR20060113358A KR1020057010784A KR20057010784A KR20060113358A KR 20060113358 A KR20060113358 A KR 20060113358A KR 1020057010784 A KR1020057010784 A KR 1020057010784A KR 20057010784 A KR20057010784 A KR 20057010784A KR 20060113358 A KR20060113358 A KR 20060113358A
Authority
KR
South Korea
Prior art keywords
message
client
adapter
endpoint
communication protocol
Prior art date
Application number
KR1020057010784A
Other languages
English (en)
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 마이크로소프트 코포레이션
Publication of KR20060113358A publication Critical patent/KR20060113358A/ko

Links

Images

Classifications

    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/23Reliability checks, e.g. acknowledgments or fault reporting
    • 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/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Abstract

트랜스포트 애그노스틱 풀 모드 메시지 서비스는 다양한 유형의 클라이언트가 메시지 전달을 보증하면서 서로 메시지를 주고 받는 것을 인에이블한다. 트라이언트에 특정적인 어댑터들은 서버에 연결하고 큐를 이뤄 이들을 기다리는 메시지들을 풀링한다. 클라이언트들은 그들 자신을 풀링된 메시지의 수신자로서 특정하거나 또는 또 다른 클라이언트를 수신자로서 특정할 수 있다. 이는 다양한 유형의클라이언트의 사용자가 통신하도록 허용하고 사용자에게 어떻게, 언제 그리고 어디에서 이들이 자신들의 메시지들을 볼 수 있는지에 관해 더 큰 융통성을 제공한다.
메시징 서비스, 전자 메일, 중복 메시지, 고유 식별자, 클라이언트

Description

트랜스포트 애그노스틱 풀 모드 메시징 서비스{TRANSPORT AGNOSTIC PULL MODE MESSAGING SERVICE}
[관련 출원]
본 출원은 2003년 12월 31일 출원된 미국출원번호 제10/750,191호에 근거해 우선권을 주장하는데, 이 우선권 출원의 개시 내용은 참조됨으로써 그 전체가 여기에 통합된다.
본 발명은 일반적으로 메시지 전달 시스템 분야에 관한 것이다. 더 특정하게는, 본 발명은 메시지들를 보내고 요구할 때의 메시지 신뢰성에 관한 것이다.
기술이 진보함에 따라, 사용자는 메시지들을 보내고 수신할 수 있는 더 다양한 장치들을 제공받고 있다. 전형적인 사무실 근로자가 전화 음성 메일 시스템, PDA, 소형 메시징 서비스(SMS)를 사용하는 셀 폰, 및 개인 e-mail 계정을 포함하는 다수의 장치 상에서 메시지를 보내고 수신하는 것은 공통적인 현상이다. 다수의 소스 및 장치로부터 메시지를 보내고 수신하는 능력이 근로자에게 융통성을 부여하기도 하지만, 이는 추가적 문제를 일으키기도 한다. 예를 들어, 근로자는 이제 몇몇 다른 장치들을 체크하는 것을 책임지게 되어 시간, 비용 및 스트레스를 더 받게 되고, 메시지를 근로자에게 보내기를 바라는 사용자는 근로자가 메시지를 제 때에 수신할 가능성을 높이기 위해서 근로자가 현재 사용하고 있는 장치가 무엇인지를 추측해야만 한다.
또한, 메시지 발송자가 수신자가 그 메시지를 수신하였는지를 알 수 있는 신뢰성 있는 방법이 없을 때가 많은데, 이는 동일한 메시지 복사본들이 송 수신되는 것을 야기한다. 미션 크리티컬 애플리케이션들에서는, 중복 메시지들은 문제가 될 수 있다. 예를 들어, 사용자는 email을 통해서 100만큼의 주식을 팔겠다는 주문을 낼 수 있다. 만일 사용자가 주문이 전달된 것을 확신하지 못하면, 그는 이를 다시 보낼 것이다. 수신자에게 있어서, 사용자가 과연 두개의 100만큼의 주식을 개별적으로 파는 것을 원하는지 아니면 주문을 포함하는 두 번째 메시지는 중복된 것인지를 분별하게 하는 신뢰성 있는 방법은 없다.
이런 문제에 대한 이전의 해결책은 대부분 융통성이 없고 특정 기술에만 한정되었다. 예를 들어, email을 셀 폰 상에서의 수신을 위한 SMS로 변환하는 프로그램이 존재한다. 그러나, 이런 해법은 메시지 수신자가 그가 어디에서 메시지를 수신하지를 선택하는 것을 종종 허용해 주지 않는다. 대신에, 이 해법은 이 메시지가 어디로 보내질지를 지정하는 전송자에게 의존한다. 또한, 이런 해법은 메시지가 수신되었는지에 대해 전송자에게 어떤 확인도 제공하지 않으며 메시지가 보내져 왔는지에 대해 수신자에게 어떤 표시도 제공하지 않는다. 또한, 이 해법은 메시지의 전송자에게 수신자가 메시지를 수신하기 위해 쓰는 기술을 알고 있을 것을 요구한다.
이상을 고려할 때, 메시지가 전달되었고 중복 메시지들이 삭제되었다는 것을 신뢰성 있게 보장해 주는 메시징 시스템에 대한 필요가 존재한다. 또한, 사용자에게, 이런 메시지들을 수신하는 데에 사용되고 있는 장치들을 고려하지 않고 메시지를 그 밖의 사용자에게 보내고 수신하고 또한 추가적으로 이후 이들이 이들 자신에 대한 메시지를 수신할 수 있는 때와 어떤 장치로 수신할 수 있는지를 선택하게 해주는 능력을 제공할 필요가 있다.
[발명의 요약]
본 발명은 메시지 전달을 보증하는 트랜스포트 애그노스틱 풀 모드 메시징(transport agnostic pull mode messaging)을 위한 메커니즘을 제공한다.
실시예에 따라서, 클라이언트 사용자는 메시지를 특정 종단점(endpoint)으로 보내기를 바랄 수 있다. 종단점은 애플리케이션, 또 다른 사용자, 또는 또 다른 클라이언트일 수 있다. 사용자 클라이언트는 메시지에 대한 고유 메시지 식별(예로 숫자)을 발생시키고 이후 이 메시지를 고유 메시지 식별과 함께 서버로 보낸다. 서버는 이후 클라이언트에게 응답하여 고유 메시지 식별을 갖는 메시지를 수신했음을 알린다. 만일 클라이언트가 특정 시간 내에 서버로부터 응답을 받지 못하였다면, 클라이언트는 메시지와 고유 식별을 를 다시 보낸다. 서버가 메시지를 수신한 후에 메시지 저장소에 중복 메시지가 있는지 알아 본다. 만일 어떤 중복도 없다고 판명되면, 서버는 메시지 저장소에 메시지를 저장한다.
클라이언트의 사용자는 메시지 저장소에서 전달되기를 대기하고 있는 그의 메시지 중의 일부 또는 모두를 수신하기를 바란다. 사용자는 그가 사용하고 있는 또는 몇몇 그밖의 종단점에 있는 클라이언트에 대한 그의 메시지들을 수신하기를 바란다. 사용자 클라이언트는 사용자가 수신하기를 바라는 메시지들과 소망 종단점을 특정하는 메시지를 발생시킨다. 사용자 클라이언트는 메시지에 대한 고유 메시지 식별을 발생시키고 이후 이 메시지를 고유 메시지 식별과 함께 서버로 보낸다. 서버는 이후 클라이언트에 응답하여 고유 메시지 식별을 갖는 메시지가 수신되었다고 알릴 수 있다. 만일 클라이언트가 특정 시간 내에 서버로부터 응답을 수신하지 못하였다면, 클라이언트는 메시지와 고유 식별을 다시 보낸다. 서버는 이후 특정된 메시지를 검색하고 이들을 특정 종단점으로 보낼 수 있다.
본 발명의 추가의 특징 및 이점은 첨부 도면을 참조하여 제시되는 이하의 예시적 실시예들에 대한 상세한 설명으로부터 명백해질 것이다.
양호한 실시예에 대한 이하의 상세한 설명뿐만이 아니라 이전의 발명의 요약은 첨부 도면과 연계하여 읽을 때 더 잘 이해될 것이다. 본 발명을 예시하기 위한 목적으로, 도면에는 본 발명의 예시적 구성이 도시되어 있다. 그러나, 본 발명은 개시된 특정 방법 및 도구에 국한되지 않는다.
도1은 본 발명의 피쳐를 설명하는 데에 유용한 예시적 시스템의 블록도이다.
도2는 본 발명에 따라서 클라이언트와 서버 간의 메시지 전달을 보증하는 예시적 방법을 설명하는 데에 유용한 도면이다.
도3은 본 발명에 따라서 클라이언트와 서버 간의 메시지 전달을 보증하는 예시적 방법의 흐름도.
도4는 본 발명의 특징이 구현될 수 있는 예시적 컴퓨팅 환경을 도시한 블록 도이다.
개관
본 발명은 메시지들의 보증된 전달을 제공하면서 다양한 유형의 시스템들 및 장치들의 클라이언트들이 서로 메시지들을 보내고 수신하는 것을 인에이블하는 트랜스포트 애그노스틱 풀 모드 메시징을 지향하고 있다. 여기 설명된 예시적 시스템 및 방법은 다른 클라이언트 장치들 간의 상호 운용성 문제와 현행의 기술 및 시스템에서 발견되는 메시지 전달 신뢰성 문제를 극복한다.
email 애플리케이션 또는 셀 폰과 같은 클라이언트 장치들은 서버에 연결하고, 큐를 이루어 이들을 기다리고 있는 메시지들을 풀링(pull)한다. 클라이언트들은 그들 자신을 풀링된 메시지들의 수신자들로 특정하거나 또다른 클라이언트를 수신자로 특정할 수 있다. 클라이언트들은 클라이언트 어댑터를 통해서 서버와 통신할 수 있다. 클라이언트 어댑터들은 클라이언트들 및 서버에 의해 사용되는 특정 프로토콜들을 사용함으로써(및 프로토콜들 간에 번역함으로써) 서버와 클라이언트 간에 인터액트할 수 있다. 이는 다양한 유형의 클라이언트의 사용자들이 통신하도록 허용해 주며, 사용자들에게 그들이 그들의 메시지를 어떻게, 언제, 및 어디서 볼 수 있는지에 관해 더 폭 넓은 융통성을 제공한다.
도1은 본 발명에 따라서 메시지들이 다수의 다른 장치들 및 포맷들에 의해 및 그 사이에서 보내지고 큐되고 및/또는 수신되도록 허용해 주는 트랜스포트 애그 노스틱 풀 모드 메시징 시스템(100)의 예시적 실시예의 블록도이다. 메시지 저장소(101), 서버 엔진(102), 복수의 클라이언트 어댑터(103, 104, 105) 및 복수의 클라이언트 장치(106, 107, 108)가 제공된다. 메시지 저장소(101)는 클라이언트들에 의해 보내지고 및/또는 수신되는 메시지들을 저장하는 데에 사용될 수 있다. 메시지들은 메시지 보디, 메시지 발송자의 식별, 메시지의 종단 목적지, 및 메시지와 관련될 수 있는 임의의 그 밖의 정보를 포함할 수 있다. 종단점은 예를 들어 특정 사용자, 클라이언트 장치, 또는 애플리케이션일 수 있다. 메시지들은 서버 엔진(102)으로부터의 명령이 수신되어 메시지들을 삭제하기까지는 저장된다. 데이터 저장을 위해 본 분야에 공지된 임의의 방법, 시스템, 또는 기술이 사용될 수 있음을 알아야 한다.
서버 엔진(102)은 클라이언트 어댑터(103, 104, 105) 및 메시지 저장소(101)과 통신하는 데에 사용될 수 있다. 클라이언트 어댑터들은 서버 엔진(102)이 메시지 저장소(101)에 대해 특정 동작들을 실행하는 것을 요구할 수 있다. 이런 동작들은 메시지 저장소(101)로부터의 메시지들을 추가하고 삭제하고 및/또는 검색하는 것을 포함할 수 있다. 메시지 저장소(101)에 대한 임의의 변화들은 서버 엔진(102)의 변경에 따라 전형적으로는 실행되고 클라이언트 어댑터들의 동작에 영향을 끼치지 않을 것이므로, 서버 엔진(102)은 메시지 저장소(201)의 기초 디자인에 있어서 융통성을 허용해 준다는 것을 알아야 한다.
예를 들어 지원되는 클라이언트 장치 유형들의 각각에 대해 하나씩 배정되는 식으로 복수의 클라이언트 어댑트들이 있다. 클라이언트 어댑트들은 관련 클라이 언트 장치들과 서버 엔진(102) 간의 매개체로서 행동할 수 있고, 크라이언트 장치들이 동일한 통신 방법들 또는 프로토콜들을 사용하는 클라이언트 장치들 또는 서버 엔진(102)이 없이도 서버 엔진(102)과 인터액트하는 것을 허용해 준다. 각각의 지원되는 클라이언트 유형에 대해 클라이언트 어댑터들을 사용하는 것은 서버 엔진(102)에 대한 또는 클라이언트 장치 자체에 대한 변경을 요구하지 않고서 신규 클라이언트들이 쉽게 추가될 수 있도록 허용해 줄 수 있다는 것을 알아야 한다. 클라이언트 장치들은 사용자들에 의한 메시지들을 보내고 수신하는 데에 사용될 수 있다.
예시적 목적을 위해, 세개의 클라이언트 어댑터들 및 세개의 클라이언트 장치들이 본 예에서 설명된다. 예를 들어, PDA 어댑터(103)는 PDA 클라이언트(106)와 서버 엔진(102) 간에 통신하는 데에 사용된다. PDA 클라이언트(106)는 본 분야에 잘 알려진 전형적인 PDA 일 수 있다. 유사하게, email 어댑터(107)는 email 클라이언트(107)와 서버 엔진 (102) 간에 통신하는 데에 사용된다. email 클라이언트(107)는 본 분야에 공지된, MICROSOFT®사의 Outlook과 같은 전형적인 email 애플리케이션일 수 있다. 더 나아가, SMS 어댑터(105)는 SMS클라이언트(108)와 서버 엔진(102) 간에 통신하는 데에 사용된다. SMS 클라이언트(108)는 본 분야에 공지된 전형적인 셀 폰 장치일 수 있다.
PDA 클라이언트(106)의 사용자는 메시지를 특정 종단점으로 보내기를 바랄 수 있다. 예시적 목적으로, PDA 클라이언트(106)가 선택되었지만, 임의의 클라이언트가 메시지를 보내는 데에 사용될 수 있음을 알아야 한다. 종단점은 예를 들어 또 다른 사용자, 애플리케이션, 또는 다른 유형의 클라이언트일 수 있다. 본 예에서, 종단점이 SMS 클라이언트(108)이라고 가정한다.
메시지가 수신된 것을 보증하기 위해서, PDA 클라리언트(106)는 먼저 메시지에 대한 고유 메시지 식별 (예로 숫자 또는 그 밖의 식별자)을 발생시킨다. 고유 메시지 식별자를 발생시키는 본 분야에 공지된 임의의 방법, 시스템, 또는 기술이 사용될 수 있음을 알아야 한다. 고유 식별자의 목적은 메시지가 수신되었고, 임의의 차순의 재 전송은 시스템에 의해 중복으로 취급될 것을 보증하는 것이다. 고유 식별자는, 이 경우에는 PDA 어댑터(103)가 되는, PDA 클라리언트(106)와 관련된 어댑터에게 메시지의 내용과 함께 보내질 수 있다.
본 예시적 실시예에서, PDA어댑터(103)는 PDA클라이언트(106)에 의해 보내진 메시지를 수신할 수도 수신하지 않을 수도 있다. 만일 PDA 어댑터(103)가 메시지를 수신하였다면, 이는 메시지가 PDA 클라이언트(106)가 제공한 고유 식별자와 함께 수신되었다는 것을 말해주는 메시지로서 PDA 클라이언트(106)에 응답할 수 있다. 만일 PDA 어댑터(103)가 메시지를 수신하지 않아서 메시지가 전송 중에 손실되었다는 것을 표시하거나 또는 PDA 클라이언트(106)가 응답을 수신하지 못했다면, 이후 어떤 특정 시간이 지난 후에 원래의 메시지는 고유 식별자와 함께 PDA클라이언트(106)에 의해 다시 전달될 수 있다. PDA 클라이언트(106)는, PDA어댑터(103)로부터 메시지를 수신하였다는 것을 표시하는 응답을 수신하기까지는 메시지 및 고유 식별자를 계속해서 재 전송할 것이다.
본 예시적 실시예에서, PDA 어댑터(103)는 PDA 클라이언트(106)에 의해 보내 진 메시지에 대한 응답을 이미 보냈을 수도 있다. 이 메시지는 이제 PDA 어댑터(103)에 의해 서버 엔진(102)으로 보내질 수 있다. PDA 어댑터(103)는 메시지 요구들을 처리하는 서버 엔진(102)과 메시지들을 보내고 요구하는 PDA 클라이언트(106) 간의 통신 레이어로서 그 특징을 갖는다. 각각의 클라이언트 장치는 다른 표준 또는 프로토콜을 사용하여 통신할 수 있다. 서버 엔진(102)이 다수의 표준 또는 프로토콜을 활용하는 클라이언트 장치들에게 통신하는 것은 성가신 일이다. 따라서, 각각의 유형의 클라이언트는 서버 엔진(102)과 각각의 유형의 클라이언트 간의 통신을 이루어주기 위한 관련 어댑터(예로 어댑터 103, 104, 105)를 갖는다. 클라이언트 어댑터의 사용은 서버 설계를 모듈화하고 신규의 어댑터 유형을 생성함으로써 신규 유형의 클라이언트를 추가하는 능력을 제공한다는 것을 알아야 한다.
서버 엔진(102)은 이제 PDA 클라이언트(106)에 의해 이미 공급된 고유 메시지 식별자와 클라이언트와 관련될 수 있는 클라이언트 식별 번호를 사용하여 메시지 저장소(101)에 문의할 수 있다. 각각의 클라이언트는 양호하게는 그와 관련된 식별자를 가진다. 클라이언트 식별자는 클라이언트를 고유하게 식별하고 이를 그밖의 클라이언트와 구별하는 임의의 숫자 또는 그 밖의 식별일 수 있다.
이 문의는 정합하는(matching) 고유 메시지 식별자와 PDA 클라이언트(106)에 대응하는 클라이언트 식별자를 포함하는 임의의 메시지들을 찾기 위해 메시지 저장소(101)를 검색할 수 있다. 만일 메시지 저장소(101)가 임의의 정합을 리턴하면, 이후 서버 엔진(102)은 현재 메시지가 중복되었다고 바람직하게는 상정하고 메시지를 저장하지 않을 것이다. 고유 메시지 식별자가 특정 클라이언트에게만 고유하고 전체 시스템에 대해 그런 것은 아니므로, 고유 메시지 식별자와 함께 클라이언트 식별자를 사용하는 것은 충돌하는 고유 메시지 식별자 때문에 어떤 메시지도 손실되지는 않을 것이라는 점을 보증한다는 것을 알아야 한다.
만일 메시지 저장소(101)가 문의로부터 어떤 결과도 리턴시키지 않는다면, 이후 서버 엔진(102)은 메시지 저장소(101)에 저장하기 위해 메시지를 표준화할 수 있다. 메시지가 아직도 메시지 저장소((101))에 저장하기 위해 포맷팅되거나 표준화될 필요가 있을 수 있다 하더라도 어댑터를 사용하면 클라이언트가 서버 엔진(102)과 통신하도록 허용해 준다는 것을 알아야 한다. 메시지는 바람직하게는 서버 엔진(102)에 의해 XML 이 되도록 표준화된다. 메시지 표준화를 위한 본 분야의 그 밖의 시스템들, 기술들 또는 방법들이 사용될 수 있음을 알아야 한다. 이 표준화된 메시지는 이후 메시지 저장소(101)에 보내져서 클라이언트 장치에 의한 이후의 검색을 위해 저장된다.
예시적 실시예에서, SMS 클라이언트(108)의 사용자는 그에게 보내졌었을 메시지들 중의 일부 또는 그 전부를 수신하기를 원할 수 있다. 이런 메시지들은, PDA 클라이언트(106)에 의해 이미 보내진 메시지와 같이, 메시지 저장소(201)에 소재할 수 있다. 사용자는 그가 어떻게 메시지들을 수신하기를 좋아하는지와 함께 그가 메시지들을 수신하기를 원한다는 것을 특정하는 메시지를 SMS 어댑터(105)에게 보냄으로써 이런 메시지들을 요구할 수 있다.
사용자는 그의 메시지들이 어떻게 그에게 리턴될 지에 관해 몇가지 옵션을 가진다. 특히, 사용자는 메시지들이 수신될 종단점을 특정할 수 있다. 이 종단점 은 사용자가 현재 사용하고 있는 장치일 수도 있고, 또 따른 사용자 또는 email 클라이언트 (107)와 같은 또 다른 종단점일 수 있다. 예를 들어, 사용자는 많은 수의 메시지를 가질 수 있고 이들을 email 클라이언트(107)에서 대신 보기를 바랄 수 있다. 또한, 사용자는 현재 사용하고 있는 장치 상에서 이지만 다른 프로토콜을 사용하여 그의 메시지들을 수신하기를 바랄 수 있다. 예를 들어, 사용자는 email 클라이언트(107)를 사용하여 그의 퍼스널 컴퓨터 상에서 메시지들을 수신하였으나, 이제는 웹 브라우저를 사용하여 그의 퍼스널 컴퓨터 상에서 메시지를 수신하기를 바랄 수 있다.
SMS 클라이언트(108)의 사용자가 SMS 클라이언트(108) 상에서 그의 메시지들을 읽기를 바란다고 가정하자. 그에 따라, 그는 자신이 SMS 클라이언트(108)에서 메시지를 수신하기를 원한다는 것을 표시하는 메시지를 SMS 어댑터(105)에게 보낼 수 있다. SMS 클라이언트(108)는 먼저 고유 메시지 식별자를 발생시킨다. 이 고유 메시지 식별자는 메시지가 SMS 어댑터(105)에 의해 수신되는 것을 보증하고 중복 메시지가 보내지는 것을 방지하기 위해 사용된다. SMS 클라이언트(108)는 이제 고유 메시지 식별자를 갖는 메시지를 SMA 어댑터(105)에게 보내어서, 어떤 것이든 간에 사용가능한 추가의 전달 옵션과 함께, 그가 종단점 SMS 클라이언트(108)에서 그의 메시지들을 수신하기를 원한다는 점을 특정할 수 있다.
SMS 어댑터(105)는 SMS 클라이언트(108)로부터 관련 메시지들이 SMS 클라이언트 (108)에게 보내질 것을 요구하는 요구를 수신할 수 있다. SMS 어댑터(105)는 이제, SMS 클라이언트(108) 종단점을 갖는 모든 메시지들에 대한 요구와 함께 서버 엔진(10)에게 메시지를 보낼 수 있다. 서버 엔진(102)이 SMS 클라이언트(108)와 정합되는 특정 종단점을 갖는 메시지를 알아보기 위해 메시지 저장소(101)에 문의한다. 메시지 저장소(101)는 모든 정합 메시지들을 서버 엔진(102)에게 리턴한다. 서버 엔진(102)은 이 경우에는 SMS 클라이언트(108)로 전송되고 있는 종단점에 의해 요구되는 포맷으로 메시지들을 표준화할 수 있다. 이미 논의한 바대로, 메시지들은 XML 형식으로 메시지 저장소(101)에 저장된다. 서버 엔진(102)은 바람직하게는 메시지들을 XML 형식에서 SMS 클라이언트(108)가 요구하는 포맷으로 변환한다. 서버 엔진(102)은 이후 이런 메시지들을 SMS 어댑터(105)로 보낸다. SMS 어댑터(105)는 이후 고유 메시지 식별자와 함께 이 메시지들을 SMS 클라이언트(108)에게 보낼 수 있다. 일단 SMS 클라이언트(108)가 메시지들을 수신하였다면, 이는 이를 디스플레이하거나 또는 다른 식으로는 사용자에게 제공할 수 있다.
SMS 클라이언트(108)는 그가 요구한 메시지들을 수신하지 못할 수 있다. 이는 예를 들어 SMS 어댑터(105)에게 보내진 초기 요구가 전송 중에 손실되었거나 SMS 어댑터(105)로부터의 응답이 전송 중에 손실된 것의 결과일 수 있다. 어느 경우이든 간에, SMS 클라이언트(108)는 어느 정도의 (양호하게는 사용자가 규정한) 타임아웃 기간 후에 원래의 고유 메시지 식별자와 함께 원래의 메시지를 다시 보낼 것이다. 양호하게는, 이것이 정합하는 고유 식별자를 포함하는 응답을 SMS 어댑터(105)로부터 수신하기까지는 고유 식별자와 함께 원래의 메시지를 다시 보내기를 계속할 것이다. 도착가능하고 고유 메시지 식별자로부터 식별가능한 임의의 중복 응답들은 바람직하게는 SMS 클라이언트(108)에 의해 무시될 것이다.
SMS 클라이언트(108)의 사용자는 이제 그의 메시지를 수신하였다. 이런 메시지들은 사용자가 email 애플리케이션으로 보내기를 바라는 정보를 포함할 수 있다. 예를 들어, 메시지들은 사용자가 데스크톱 컴퓨터상의 email 애플리케이션에 의해 더 쉽게 볼 수 있는 텍스트 또는 부착 사항을 포함할 수 있다. SMS 클라이언트(108)의 사용자가 특정 메시지들을 email 클라이언트(107)로 포워드하기를 원한다고 상정하면, 그는 SMS 어댑터(105)가 메시지를 수신하였다는 것을 보증하기 위한 고유 메시지 식별자와 함께 선택된 메시지들을 email 클라이언트(107)에 대응하는 종단점으로 포워드하기 위해 메시지를 SMS 어댑터(105)에게 보낼 수 있다.
일단 SMS 어댑터(105)가 메시지를 수신하였다면, 이는 자신이 메시지를 수신하였다는 것을 표시하는 응답을 SMS 클라이언트(108)에게 보낼 수 있다. SMS 클라이언트(108)는 (양호하게는 사용자가 특정한) 타임아웃 기간 내에 응답을 수신하지 못하였다면, 메시지를 다시 보낼 것이다.
SMS 어댑터(105)는 특정된 메시지들을 email 클라이언트(107)에게 포워드하기 위해 메시지를 서버 엔진(102)에게 보낼 것이다. 서버 엔진(102)은 메시지저장소(101)로부터 특정된 메시지들에 대해 문의할 수 있다. 서버 엔진은 이후 수신된 메시지의 복사본을 만들 수 있고, 메시지들의 목적지를 종단점 email 클라이언트(107)로 변화시킬 수 있다. 서버 엔진(102)은 이제 메시지 저장소(101)에 신규 메시지를 저장할 수 있다. 메시지들은 이후 메시지 저장소(101)에서 email 클라이언트(107)가 이들을 요구하거나 그 밖의 식으로 액세스하는 것을 대기한다.
도2는 클라이언트와 서버 간의 메시지 전달을 보증하는 예이고, 도3은 본 발 명에 따라서 메시지 전달을 보증하는 예시적 방법의 대응 흐름도이다.
클라이언트 장치(220)가 메시지를 서버(230)에게 보내기를 바란다고 가정하자. 이 메시지는, 예를 들어 전송자가 또 다른 사용자에 의해 수신되기를 바라는 정보를 중계하거나 또는 서버에 의해 큐된 메시지들이 전달되기를 요구하기 위한 것과 같이, 다양한 목적으로 보내질 수 있다. 이 메시지를 보내기 전에, 클라이언트 장치(220)는 식별 번호와 같은 고유 메시지 식별자를 발생시키거나 아니면 요구하고 수신한다. 고유 메시지 식별은 고유 식별자를 메시지와 관련짓기 위한 본 분야에 공지된 임의의 방법, 시스템 또는 기술을 사용하여 발생된다.
(201)에서, 클라이언트 장치(220)는 고유 메시지 식별과 함께 메시지를 서버(230)에게 보낸다. (201)은 도3의 단계(301)에 의해 추가로 설명된다. 단계(301)에서, 고유 메시지 식별자가 발생되고 메시지와 함께 서버로 보내진다. 또한, 타이머가 개시되어 메시지가 전달된 이후의 경과 시간을 계수한다. 시간을 관리하기 위해 본 분야에 공지된 임의의 방법, 시스템, 또는 기술이 사용될 수 있다.
(202)에서 예시된 대로, 서버(230)에게 보내진 메시지는 다양한 이유로 수신되지 않을 수 있는데, 그 이유 중의 몇몇은 도1을 참조하여 이미 설명되었다. 미리 결정될 수 있고/또는 사용자가 프로그램 가능한 어떤 특정 타임아웃 시간(t) 이후에, 클라이언트 장치(220)는 서버(230)로부터 메시지에 대한 응답을 받지 못하였는지를 판정한다. (203)에서, 클라이언트 장치(220)는 고유 메시지 식별과 함께 메시지를 다시 보낸다. (204)에서, 서버(230)는 메시지를 수신하고 이제 이 메시지에 포함된 명령들을 수행할 수 있다.
(203) 및 (204)는 단계들(302-304)에 대하여 추가로 예시된다. 단계(302)에서, '메시지_수신됨' 과 같은 변수를 체크함으로써 메시지에 대한 정합 응답이 수신되었는지를 판정할 수 있는데, 여기서, '메시지_수신됨(message_received)' 은 양호하게는 정합 응답이 수신되었는지를 표시하기 위해 설정되는 플래그 변수이다. 메시지가 도착했는지를 판정하는 본 분야에 공지된 임의의 방법, 기술, 또는 시스템이 사용될 수 있음을 알아야 한다. 만일 메시지가 수신되었다면, 이후 처리는 단계(399)로 계속되어 여기서 루틴은 빠져나간다. 만일 메시지가 수신되지 않았다면, 처리는 단계(303)로 계속된다.
단계(303)에서, 만일 메시지가 다시 보내져야만 한다는 것을 표시하는 최대 시간 t가 원래의 메시지가 전달된 이후에 경과했는지가 판정된다. 타이머의 현재값이 t에 비교된다. 만일 타이머 값이 t보다 작다면, 처리는 단계(302)로 되돌아 가고, 그렇지 않은 경우에는 단계(304)로 계속된다.
단계(304)에서, 최대 시간 t가 경과했는지가 판정되고, 클라이언트가 원래의 메시지 및 고유 메시지 식별을 다시 보낸다. 또한 바람직하게는 타이머가 리셋됨으로써, 메시지가 다시 보내져야만 하는지를 이후에 판정할 수 있도록 한다.
도2를 다시 참조하면, (205)에서 예시된 대로, 서버(230)는 메시지를 수신했다는 응답을 클라이언트 장치(220)에게 보낸다. 이 응답에서, 서버(230)는 자신이 그에 응답하고 있는 메시지와 함께 보내진 고유 메시지 식별을 포함할 수 있다.
단계(206)에서, 클라이언트 장치(230)에게 보내진 응답은 그 중 일부가 앞서 설명된 다양한 이유로 인해 수신되지 않을 수 있다. 그러면, 단계(207)에서, 시간 t가 경과하고 클라이언트 장치(220)는 원래의 메시지에 대한 응답을 수신하지 못했다고 판정한다. 클라이언트 장치(220)는 메시지가 사실상 수신되었음을 알지 못할 수 있다. 따라서, 클라이언트 장치(220)는 고유 메시지 식별과 함께 메시지를 다시 보낸다. (206) 및 (207)은 앞서 설명한 단계 3(02) 내지 (304)에 대해서 도3에서 추가로 예시된다.
단계(208)에서, 서버(230)는 (207)에서 중복적으로 보내졌던 메시지를 수신할 수 있다. 서버(230)는 자신이 클라이언트 자치(220)로부터 동일한 고유 메시지 식별을 갖는 메시지를 이미 수신했다는 것을 인식하고, 따라서 이 메시지에 포함된 명령들을 이미 수행하였다. 그에 따라, 서버(230)는 이것이 (205)에서 보낸 메시지가 수신되지 않았다고 가정할 수 있다. (209)에서, 서버(230)는 자신이 (205)에서 원래 보냈던 메시지에 대한 응답을 다시 보낼 수 있다.
단계(210)에서, 클라이언트 장치(220)는 서버(230)로부터 응답을 수신할 수 있다. 클라이언트 장치(220)는 응답이 서버(230)에게 보내진 메시지와 동일한 고유 메시지 식별을 포함하는 것을 판정한다. 클라이언트 장치(220)는 이제 메시지가 서버(230)에 의해 수신되고 행동이 취해졌음을 결론내릴 수 있다.
(210)은 단계(302) 내지 (399)에 의해 추가로 예시된다. 단계(302)에서, 변수 '메시지_수신됨' 을 체크함으로써 메시지에 대한 정합 응답이 수신되었는지가 판정된다. 플래그 변수 '메시지_수신됨' 이 정합 응답이 수신되었는지의 여부를 표시하기 위해 설정되었다. 메시지가 도착했는지의 여부를 판정하는 본 분야에 공지된 임의의 방법, 기술, 또는 시스템이 사용될 수 있음을 알아야 한다. 만일 메 시지가 수신되었다면, 처리는 단계(399)로 진행한다. 단계(399)에서 응답이 수신되었다는 것이 이미 판정되었을 수 있고, 처리는 이후 빠져나간다.
예시적 컴퓨팅 환경
도4는 본 발명이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(400)의 한 예이다. 컴퓨팅 시스템 환경(400)은 적합한 컴퓨팅 환경의 한 예일 뿐이고, 본 발명의 사용 범위 또는 기능성에 대한 어떠한 제한을 가하고자 의도한 것은 아니다. 컴퓨팅 환경(400)도 예시적 오퍼레이팅 환경(400)에 예시된 소자들의 임의의 하나 또는 그것들의 조합에 의존하거나 또는 그에 관계된 요구 조건을 갖는 것으로 해석해서는 안 된다.
본 발명은, 예를 들어 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 컴퓨터, 멀티프로세서 시스템들, 마이크로프로세서 기반 시스템들, 셋 톱 박스, 프로그램 가능 소비자 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들 또는 장치들 중의 임의의 것과 그와 같은 것을 포함하는 분산 컴퓨팅 환경과 같은, 수많은 그 밖의 범용 목적의 또는 특수 목적의 컴퓨팅 시스템 환경과 동작 가능하다.
도4를 참조하면, 본 발명을 구현하기 위한 예시적 시스템은 컴퓨터(410) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(410)의소자로서는 프로세싱 부(420), 시스템 메모리(430), 및 시스템 메모리를 포함하여 여러 시스템 소자들을 프로세싱부(420)에 결합시키는 시스템 버스(421)를 포함할 수 있는데, 이것에만 제한되는 것은 아니다. 시스템 버스(421)는 메모리 버스 또는 메모리 제어기를 포함하는 몇 몇 유형의 버스 구조들, 주변 버스 및 다양한 버스 아키텍쳐 중의 임의의 것을 사용하는 로컬 버스 중의 임의의 것일 수 있다.
컴퓨터(410)는 전형적으로는 다양한 컴퓨터 판독 가능 매체를 포함하고, 휘발성 및 비휘발성, 탈착가능 및 탈착불가능 매체 모두를 포함한다.
시스템 메모리(430)는 ROM(431)과 ROM(432)과 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 스타트업 동안과 같이 컴퓨터 (410) 내의 소자 간의 정보를 트랜스퍼하는 데에 도움을 주는 기본 루틴을 포함하는 기본 입/출력 체계(433)(BIOS)는 전형적으로는 ROM(431)에 저장된다. 예시적인 의도이고 제한하지는 않는 목적을 위해, 도4는 오퍼레이팅 시스템(434), 애플리케이션 시스템(434), 애플리케이션 프로그램들(435), 그 밖의 프로그램 모듈들(436) 및 프로그램 데이터(437)를 예시하였다.
컴퓨터(410)는 그 밖의 착탈 가능(removable)/착탈 불가능, 휘발성(volatile)/비휘발성 컴퓨터 저장 매체를 포함할 수도 있다. 예시적 목적으로만, 도4는 착탈 불가능의 비휘발성 매체로부터 판독하고 또는 그것에 기입하는 하드 디스크 드라이브(441)와, 착탈 가능하고 비휘발성 자기 디스크(452)로부터 판독하고 또는 그것에 기입하는 자기 디스크 드라이브(451)와, 착탈 가능하고 비휘발성 광 디스크로부터 판독하고 또는 그것에 기입하는 광 디스크 드라이브(455)를 예시하였다. 하드 디스크 드라이브(441)는 인터페이스(440)와 같은 착탈 불가능 메모리 인터페이스를 통해서 시스템 버스(421)에 연결되고, 자기 디스크 드라이브(451) 및 광 디스크 드라이브(455)는 인터페이스(450)과 같은 착탈가능 메모리 인터페이스에 의해 시스템 버스(421)에 연결된다.
드라이브들 및 이들의 관련 컴퓨터 저장 매체는 컴퓨터(410)에 대해 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및 그 밖의 데이터를 제공한다. 도4에서, 예를 들어 하드 디스크 드라이브(441)는 오퍼레이팅 시스템(444), 애플리케이션 프로그램들(445), 그 밖의 프로그램 모듈들(446), 및 프로그램 데이터(437)를 저장하는 것으로 예시되었다. 이런 컴포넌트들이 오퍼레이팅 시스템(444), 애플리케이션 프로그램들(445), 그 밖의 프로그램 모듈들(446), 및 프로그램 데이터(437)와 동일할 수도 있고 다를 수도 있음을 주의하라. 사용자는 키보드(462), 및 마우스, 트랙볼 또는 터치 패드로 보통은 언급되는 포인팅 장치(461)와 같은 입력 장치들을 통해서 커맨드들 및 정보를 컴퓨터(410)로 입력할 수 있다. 이런 장치들과 그 밖의 입력 장치들은 종종 시스템 버스에 결합한 사용자 입력 인터페이스(460)를 통해서 프로세싱 부(420)에 연결되나, 그 밖의 인터페이스 및 버스 구조들을 통해서 연결될 수도 있다. 모니터(491) 또는 그 밖의 유형의 디스플레이 장치는 비디오 인터페이스(490)와 같은 인터페이스를 통해서 시스템 버스(421)에 연결될 수 있다. 모니터 외에도, 컴퓨터들은 출력 주변 인터페이스(495)를 통해서 연결될 수 있는, 스피커(497)와 프린터와 같은 그 밖의 주변 출력 장치들을 포함할 수 있다.
컴퓨터(410)는 원격 컴퓨터(480)와 같은 하나 또는 그 이상의 원격 컴퓨터들로의 논리 연결들을 사용하여 네트워크화된 환경에서 작동할 수 있다. 원격 컴퓨터(480)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 그 밖의 공 통 네트워크 노드일 수 있고, 도4에서 메모리 저장 장치(481)만이 예시되기는 하였지만, 전형적으로는 컴퓨터(410)에 대하여 앞서 설명한 소자들의 대다수 또는 모든 것을 포함한다. 묘사된 논리 연결은 LAN(구내 정보 통신망)(471), WAN(광역 통신망)(473)을 포함하는데, 그 밖의 네트워크들을 포함할 수도 있다.
LAN 네트워킹 환경에서 사용되었을 때, 컴퓨터(410)는 네트워크 인터페이스 또는 어댑터(470)를 통해서 LAN(471)에 연결된다. WAN 네트워킹 환경에서 사용되었을 때, 컴퓨터(410)는 전형적으로는 인터넷과 같은, WAN(473) 상에서의 통신을 확립하기 위한 모뎀 또는 그 밖의 수단을 포함한다. 내장형 또는 외장형일 수 있는모뎀(472)은 사용자 입력 인터페이스(460) 또는 그 밖의 접합한 메커니즘을 통해서 시스템 버스(421)에 연결될 수 있다. 네트워크화된 환경에서, 컴퓨터(410)에 대해 묘사된 프로그램 모듈들 또는 이것의 부분은 원격 메모리 저장 장치에 저장될 수 있다. 예를 들기 위한 것이고 제한하지는 않는 목적을 위해, 도4는 원격 애플리케이션 프로그램들(485)이 메모리 장치(481)에 소재하는 것으로 예시하였다. 도시된 네트워크 연결은 예시적인 것이고 컴퓨터들 간에 통신 링크를 확립하기 위한 그 밖의 수단이 사용될 수 있음을 알아야 한다.
앞서 언급한 대로, 본 발명의 예시적인 실시예들이 여러 컴퓨팅 장치들과 연계하여 설명되었지만, 그 기초 개념은 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 여기 설명된 여러 기술들은 하드웨어 또는 소프트웨어와 연계하여 또는 적절한 때에는 양자의 조합과 연계하여 구현될 수 있다. 따라서, 본 발명의 장치 및 방법과 이것의 특정 특징들 또는 부분들은 플로피 디스켓, CD-ROM, 하드 드라이 브, 또는 임의의 그 밖의 기계판독 가능 저장 매체와 같은 유형 매체에 구현되는 프로그램 코드(즉, 명령들)의 형태를 취할 수 있는데, 여기서 프로그램 코드가 컴퓨터와 같은 기계 내로 로드되고 그에 의해 실행될 때 기계는 본 발명을 실시하기 위한 장치가 된다. 프로그램 가능 컴퓨터 상에서 프로그램 코드를 실행하는 경우에, 컴퓨팅 장치들은 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 소자들을 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 일반적으로 포함한다. 프로그램(들)은 만약 바란다면, 어셈블리 또는 기계어로 구현될 수 있다. 어떤 경우이든, 언어는 컴파일링된 또는 인터프리트된 언어이고, 하드웨어 구현들과 조합된다.
본 발명의 방법 및 장치는 전기적 배선 또는 케이블 상에서, 광 섬유를 통해서 또는 임의의 다른 형태의 전송을 통해서 와 같이 몇몇 전송매체 상에서 전송될 수 있는 프로그램 코드의 형태로 구체화되는 통신을 통해서 실시될 수도 있는데, 여기서 EPROM, 게이트 어레이, 프로그램 가능 로직 장치(PLD), 클라이언트 컴퓨터 등과 같은 기계에 의해 프로그램 코드가 수신되고 그 내로 로드되고 그에 의해 실행되었을 때, 기계는 본 발명을 실시하기 위한 장치가 된다. 범용 프로세서에 의해 구현되었을 때, 프로그램 코드는 프로세서와 조합하여 본 발명의 기능성을 야기하도록 작동하는 고유 장치를 제공한다. 추가로, 본 발명과 연계하여 사용되는 임의의 저장 기술들은 거의 하드웨어 및 소프트웨어의 조합일 수 있다.
본 발명이 여러 도면들에서의 양호한 실시예와 연계하여 설명되었지만, 그 밖의 유사한 실시예들이 사용될 수 있고 변경 및 추가들이 설명된 실시예들에 대해 이뤄져서 본 발명으로부터 벗어나지 않고 본 발명의 작용을 동일하게 실행할 수 있다. 따라서, 본 발명은 임의의 단일 실시예에만 제한해서는 안 되며, 그보다는 청구범위에 의해 그 폭 및 범위가 해석되어야 한다.

Claims (31)

  1. 트랜스포트 애그노스틱 풀 모드 메시징(transport agnostic pull mode messaging)을 위한 시스템으로서,
    제1 통신 프로토콜을 이용하여 제1 메시지를 제1 어댑터에게 보내고, 상기 제1 통신 프로토콜을 이용하여 상기 제1 어댑터로부터 상기 제1 메시지가 수신되었다는 응답을 수신하고, 만일 상기 어댑터로부터의 응답이 소정 시간 내에 수신되지 않았다면 상기 제1 통신 프로토콜을 이용하여 상기 제1 메시지를 상기 제1 어댑터에게 다시 보내는 제1 클라이언트와,
    상기 제1 통신 프로토콜을 이용하여 상기 제1 메시지를 수신하고 상기 제1 메시지를 수신했다는 것을 표시하는 상기 응답을 상기 제1 클라이언트에게 보내고, 상기 제1 메시지에 기초하여 제2 메시지를 발생시키고, 제2 통신 프로토콜을 이용하여 상기 제2 메시지를 서버 엔진에게 보내는 제1 어댑터와,
    상기 제2 메시지에 기초하여 적어도 하나의 명령을 실행하는 서버 엔진과,
    상기 제2 메시지와 관련된 데이터를 저장하는 메시지 저장소
    를 포함하는 시스템.
  2. 제1항에 있어서,
    제3 통신 프로토콜을 이용하여 제2 어댑터로부터 제3 메시지를 수신하는 제2 클라이언트와,
    상기 프로토콜을 이용하여 상기 서버 엔진으로부터 제4 메시지를 수신하고, 상기 제4 메시지에 기초하여 제3 메시지를 발생시키고, 제3 통신 프로토콜을 이용하여 상기 제3 메시지를 제2 클라이언트로 보내는 제2 어댑터
    를 더 포함하는 시스템.
  3. 제1항에 있어서, 상기 적어도 하나의 명령은 상기 제2 메시지와 관련된 데이터를 저장 장치에 저장하기 위한 명령을 포함하는 시스템.
  4. 제3항에 있어서, 상기 서버 엔진 및 상기 어댑터 중의 하나는 상기 제2 메시지가 이미 저장된 중복 메시지인지를 판정하고, 만일 그렇다면 상기 제2 메시지를 거부하고, 그렇지 않다면 상기 메시지와 관련된 종단점(endpoint)을 판정하고 상기 메시지를 상기 종단점에 대응하는 큐(queue)에 저장하는 시스템.
  5. 제3항에 있어서, 상기 저장 장치는 종단점과 관련된 큐를 포함하는 시스템.
  6. 제5항에 있어서, 상기 종단점은 상기 제1 클라이언트와 관련된 시스템.
  7. 제5항에 있어서, 상기 종단점은 사용자, 클라이언트 및 상기 클라이언트와 다른 애플리케이션 중의 적어도 하나와 관련된 시스템.
  8. 제1항에 있어서, 상기 적어도 하나의 명령은 저장 장치로부터 추가 메시지들을 검색하고 상기 추가 메시지를 종단점으로 보내는 명령을 포함하는 시스템.
  9. 제8항에 있어서, 상기 종단점은 상기 제1 클라이언트와 관련된 시스템.
  10. 제8항에 있어서, 상기 종단점은 사용자, 클라이언트 및 상기 클라이언트와 다른 애플리케이션 중의 적어도 하나와 관련된 시스템.
  11. 제1항에 있어서, 상기 제1 클라이언트는 상기 제1 메시지를 보내기 전에 상기 제1 메시지를 발생시키고, 상기 제1 메시지는 고유 메시지 식별자를 포함하는 시스템.
  12. 제1항에 있어서, 상기 제1 어댑터 또는 상기 서버 엔진은 상기 수신된 제1 메시지가 이미 수신된 메시지의 중복인지를 판정하는 시스템.
  13. 제1항에 있어서, 상기 제1 클라이언트 장치는 상기 제1 메시지에 대응하는 제1 클라이언트에 특정적인 고유 식별자를 발생시키고, 상기 제1 클라이언트에 특정적인 식별자를 저장하고, 상기 제1 메시지와 함께 상기 제1 클라이언트에 특정적인 식별자를 상기 제1 어댑터에게 보내는 시스템.
  14. 제1항에 있어서, 상기 응답은 제1 클라이언트에 특정적인 고유 메시지 식별자를 포함하고, 상기 제1 클라이언트는 상기 수신된 제1 클라이언트에 특정적인 식별자가 저장된 제1 클라이언트에 특정적인 식별자에 대응하는 것을 검증하는 시스템.
  15. 제1항에 있어서, 상기 제1 통신 프로토콜은 상기 제2 통신 프로토콜과 다른 시스템.
  16. 제2항에 있어서, 상기 제2 통신 프로토콜은 상기 제3 통신 프로토콜과 다른 시스템.
  17. 제2항에 있어서, 상기 제3 통신 프로토콜은 상기 제1 통신 프로토콜과 다른 시스템.
  18. 트랜스포트 애그노스틱 풀 모드 메시징 방법으로서,
    클라이언트로부터의 제1 메시지를 제1 통신 프로토콜을 이용하여 대응하는 어댑터에게 보내는 단계와,
    상기 어댑터에서 상기 제1 메시지를 수신하는 단계와,
    상기 제1 통신 프로토콜을 이용하여 상기 제1 메시지가 수신되었다는 것을 표시하는 상기 어댑터로부터의 응답을 상기 클라이언트에게 보내는 단계와,
    상기 클라이언트에서 상기 응답을 수신하는 단계와,
    만일 상기 어댑터로부터의 응답이 소정 시간 내에 상기 클라이언트에서 수신되지 않았다면 상기 클라이언트로부터의 상기 제1 메시지를 상기 어댑터에게 다시 보내는 단계와,
    상기 제1 메시지에 기초하여 상기 어댑터에서 제2 메시지를 발생시키는 단계와,
    제2 통신 프로토콜을 이용하여 상기 어댑터로부터의 상기 제2 메시지를 상기 서버 엔진에게 보내는 단계와,
    상기 제2 메시지에 기초하여 상기 서버 엔진에서 적어도 하나의 명령을 실행하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서, 상기 제1 통신 프로토콜은 상기 제2 통신 프로토콜과 다른 방법.
  20. 제18항에 있어서, 상기 적어도 하나의 명령을 실행하는 단계는 상기 제2 메시지와 관련된 데이터를 저장 장치에 저장하는 단계를 포함하는 방법.
  21. 제20항에 있어서, 상기 데이터를 상기 저장 장치에 저장하는 단계는,
    상기 제2 메시지가 이미 저장된 중복 메시지인지를 판정하고,
    만일 그것이 중복 메시지이면 상기 제2 메시지를 거부하고,
    상기 메시지와 관련된 종단점을 판정하고,
    상기 메시지를 상기 종단점에 대응하는 큐에 저장하는
    것을 포함하는 방법.
  22. 제20항에 있어서, 상기 저장 장치는 종단점과 관련된 큐를 포함하는 방법.
  23. 제22항에 있어서, 상기 종단점은 상기 클라이언트와 관련된 방법.
  24. 제22항에 있어서, 상기 종단점은 사용자, 클라이언트 및 상기 클라이언트와 다른 애플리케이션 중의 적어도 하나와 관련된 방법.
  25. 제18항에 있어서, 상기 적어도 하나의 명령을 실행하는 단계는 저장 장치로부터 추가 메시지들을 검색하고 상기 추가 메시지를 종단점으로 보내는 것을 포함하는 방법.
  26. 제25항에 있어서, 상기 종단점은 상기 클라이언트와 관련된 방법.
  27. 제25항에 있어서, 상기 종단점은 사용자, 클라이언트 및 상기 클라이언트와 다른 애플리케이션 중의 적어도 하나와 관련된 방법.
  28. 제18항에 있어서, 상기 제1 메시지를 보내기 전에 상기 제1 메시지를 발생시키는 단계를 더 포함하고, 상기 제1 메시지는 고유 메시지 식별자를 포함하는 방법.
  29. 제18항에 있어서, 상기 어댑터 또는 상기 서버 엔진에서 상기 수신된 제1 메시지가 이미 수신된 메시지의 중복인지를 판정하는 단계를 더 포함하는 방법.
  30. 제18항에 있어서, 상기 클라이언트로부터의 상기 제1 메시지를 상기 어댑터에게 보내는 단계는,
    상기 제1 메시지에 대응하는 클라이언트에 특정적인 고유 식별자를 발생시키고,
    상기 클라이언트에 특정적인 식별자를 저장하고,
    상기 제1 메시지와 함께 상기 클라이언트에 특정적인 식별자를 상기 어댑터에게 보내는 것을 포함하는
    방법.
  31. 제18항에 있어서, 상기 응답은 클라이언트에 특정적인 고유 메시지 식별자를 포함하고, 상기 수신된 클라이언트에 특정적인 식별자가 저장된 클라이언트에 특정적인 식별자에 대응하는지를 검증하는 단계를 더 포함하는 방법.
KR1020057010784A 2003-12-31 2004-07-29 트랜스포트 애그노스틱 풀 모드 메시징 서비스 KR20060113358A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/750,191 US7870187B2 (en) 2003-12-31 2003-12-31 Transport agnostic pull mode messaging service
US10/750,191 2003-12-31

Publications (1)

Publication Number Publication Date
KR20060113358A true KR20060113358A (ko) 2006-11-02

Family

ID=34749319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010784A KR20060113358A (ko) 2003-12-31 2004-07-29 트랜스포트 애그노스틱 풀 모드 메시징 서비스

Country Status (11)

Country Link
US (1) US7870187B2 (ko)
EP (1) EP1716492A4 (ko)
JP (1) JP4519855B2 (ko)
KR (1) KR20060113358A (ko)
CN (1) CN100495379C (ko)
AU (1) AU2004281064A1 (ko)
BR (1) BRPI0406519A (ko)
CA (1) CA2507890A1 (ko)
MX (1) MXPA05007145A (ko)
RU (1) RU2463709C2 (ko)
WO (1) WO2005067435A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631043B2 (en) * 2004-12-03 2009-12-08 Research In Motion Limited Method and apparatus for efficiently managing “messages sent” file and resending of messages from mobile wireless communication device
EP1849089A2 (en) * 2005-01-12 2007-10-31 Haim Engler System and method for preventing unauthorized bridging to a computer network
US8819144B2 (en) 2005-10-14 2014-08-26 Blackberry Limited Method, device, software and graphical user interface for forwarding messages between message handling services
US8745140B2 (en) 2005-10-14 2014-06-03 Blackberry Limited System and method of handling messages for forwarding
EP1775971B1 (en) * 2005-10-14 2008-06-11 Research In Motion Limited System and method for forwarding messages
US7903639B2 (en) * 2006-03-24 2011-03-08 Cisco Technologies, Inc. System and method for selectively interfacing different types of network communications
US8121626B1 (en) 2006-06-05 2012-02-21 Callwave, Inc. Method and systems for short message forwarding services
EP1903740A1 (en) * 2006-09-21 2008-03-26 Irdeto Access B.V. Method for implementing a state tracking mechanism in a communications session between a server and a client system
US8548447B1 (en) 2006-10-06 2013-10-01 Callwave Communications, Llc Methods and systems for blocking unwanted telecommunications
US7881243B2 (en) 2007-10-02 2011-02-01 Research In Motion Limited Method and apparatus capable of unified multi-transport message handling
US8849925B2 (en) * 2009-12-21 2014-09-30 Dexrex, Llc Systems and methods for capturing electronic messages
US8812034B2 (en) * 2011-09-30 2014-08-19 Qualcomm Incorporated Methods and apparatuses for management of SMS message identifications in a multi-mode device
US20140059108A1 (en) * 2012-08-27 2014-02-27 Microsoft Corporation Unified communication interface for distributed computing
WO2014192419A1 (ja) * 2013-05-28 2014-12-04 ソニー株式会社 情報処理装置、通信システム、通信方法およびプログラム
US10275468B2 (en) * 2016-02-11 2019-04-30 Red Hat, Inc. Replication of data in a distributed file system using an arbiter
US10503724B2 (en) 2016-03-03 2019-12-10 Toyota Motor Engineering & Manufacturing North America, Inc. System and method for contact information access
US10582019B1 (en) * 2019-07-12 2020-03-03 Coupang Corp. Systems and methods for interfacing networks using a unified communication scheme
US11521356B2 (en) * 2019-10-10 2022-12-06 Meta Platforms Technologies, Llc Systems and methods for a shared interactive environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418835A (en) * 1992-10-26 1995-05-23 Motorola Inc. Method of delivering paging messages using voice mail
US6098097A (en) * 1998-05-14 2000-08-01 International Business Machines Corporation Controlling the installation and configuration of programs and components in a network of server and client computers through entries into a primary server computer
JP4206515B2 (ja) * 1998-06-15 2009-01-14 パナソニック株式会社 電子メール端末
US6999565B1 (en) * 2000-02-01 2006-02-14 Envoyworldwide, Inc. Multi-mode message routing and management
US7464178B2 (en) * 2001-05-23 2008-12-09 Markport Limited Open messaging gateway
US7617328B2 (en) * 2001-11-16 2009-11-10 At&T Mobility Ii Llc System for translation and communication of messaging protocols into a common protocol
US7657253B2 (en) * 2001-11-16 2010-02-02 At&T Mobility Ii Llc System and method for providing message notification
US20030109271A1 (en) * 2001-11-16 2003-06-12 Lewis John Ervin Telecommunications system messaging infrastructure
US20030212738A1 (en) * 2002-05-10 2003-11-13 Wookey Michael J. Remote services system message system to support redundancy of data flow
US7539291B2 (en) * 2002-10-16 2009-05-26 J2 Global Communications Enhancing messaging services using translation gateways
US7454785B2 (en) * 2002-12-19 2008-11-18 Avocent Huntsville Corporation Proxy method and system for secure wireless administration of managed entities
US20040121789A1 (en) * 2002-12-23 2004-06-24 Teddy Lindsey Method and apparatus for communicating information in a global distributed network
US20040230893A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges
US7509431B2 (en) * 2004-11-17 2009-03-24 Cisco Technology, Inc. Performing message and transformation adapter functions in a network element on behalf of an application

Also Published As

Publication number Publication date
CN100495379C (zh) 2009-06-03
CN101044469A (zh) 2007-09-26
BRPI0406519A (pt) 2005-12-13
EP1716492A4 (en) 2011-10-26
CA2507890A1 (en) 2005-06-30
RU2005120666A (ru) 2006-01-20
EP1716492A2 (en) 2006-11-02
JP2007526674A (ja) 2007-09-13
US7870187B2 (en) 2011-01-11
WO2005067435A2 (en) 2005-07-28
MXPA05007145A (es) 2005-11-01
AU2004281064A1 (en) 2005-07-14
US20050198389A1 (en) 2005-09-08
JP4519855B2 (ja) 2010-08-04
RU2463709C2 (ru) 2012-10-10
WO2005067435A3 (en) 2007-01-18

Similar Documents

Publication Publication Date Title
KR20060113358A (ko) 트랜스포트 애그노스틱 풀 모드 메시징 서비스
US10489730B2 (en) Managing virtual business instances within a computer network
US7593991B2 (en) Systems and methods for processing attachments associated with electronic messages
US8332239B2 (en) Automatic patient record update enabled clinical messaging
EP2031818B1 (en) Systems and/or methods for providing feature-rich proprietary and standards-based triggers via a trigger subsystem
US20020178211A1 (en) Technique for enabling remote data access and manipulation from a pervasive device
CN1992686B (zh) 用于传送状态通知的系统和方法
KR101137132B1 (ko) 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송
US20080153464A1 (en) Methods and systems for indicating the occurrence of an event
WO1999006929A9 (en) An extensible proxy framework for e-mail agents
US8095604B2 (en) Automatically modifying distributed communications
CA2552056C (en) Heterogeneous related document attaching for (clinical) messaging
US20120143960A1 (en) Related message detection and indication
US20010052031A1 (en) Uniform application programming interface for messaging middleware
JP4857246B2 (ja) 承認装置、承認方法、及びプログラム
JP6847601B2 (ja) 制御装置、判定方法及びプログラム
JP2000029797A (ja) 電子メールシステム
US9530117B2 (en) Method and apparatus for transforming user requests and responses based on a persona
KR20010081731A (ko) 전자우편 전용 프로그램을 이용하여 웹기반전자우편서비스 서버로부터 전자우편을 읽을 수 있는장치와 그 방법
US20190394300A1 (en) Methods, Systems, and Computer Program Products for Accessing a Service Via a Proxy Communications Agent
JP2013020449A (ja) 情報処理装置、その制御方法及びプログラム
US20080147800A1 (en) Method and apparatus for managing e-mail
JP2002251362A (ja) 情報処理装置及びシステム及び方法
CA2549250A1 (en) System and method for integrating electronic mail services

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid