KR101589561B1 - CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치 - Google Patents

CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치 Download PDF

Info

Publication number
KR101589561B1
KR101589561B1 KR1020100010126A KR20100010126A KR101589561B1 KR 101589561 B1 KR101589561 B1 KR 101589561B1 KR 1020100010126 A KR1020100010126 A KR 1020100010126A KR 20100010126 A KR20100010126 A KR 20100010126A KR 101589561 B1 KR101589561 B1 KR 101589561B1
Authority
KR
South Korea
Prior art keywords
message
client
messages
transmitted
sequence number
Prior art date
Application number
KR1020100010126A
Other languages
English (en)
Other versions
KR20100133882A (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 KR1020100010126A priority Critical patent/KR101589561B1/ko
Priority to US13/376,095 priority patent/US9491003B2/en
Priority to PCT/KR2010/003740 priority patent/WO2010143903A2/en
Publication of KR20100133882A publication Critical patent/KR20100133882A/ko
Application granted granted Critical
Publication of KR101589561B1 publication Critical patent/KR101589561B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • 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
    • 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]

Landscapes

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

Abstract

본 발명은 CPM(converged IP messaging) 세션(session)을 통해 메시지를 송수신할 때, 메시지 간의 순서를 유지하는 방법 및 이러한 순서 유지 방법을 구비한 장치에 관한 것이다.
본 발명에 따른 메시지 송수신 방법은, 네트워크 상에서 메시지를 송수신하는 방법으로서, 순차적인 식별정보와 누적크기를 포함하는 메시지를 수신하는 단계 및 상기 수신된 메시지를 출력하는 단계를 포함하고, 상기 순차적인 식별정보는 송수신이 이루어지는 세션(session) 내에서 관리되는 전후관계를 식별할 수 있게 하는 식별자이고, 상기 누적 크기는 상기 세션 내에서 상기 수신된 메시지를 전송한 주체가 전송한 메시지들의 크기의 총 합이고, 상기 수신된 메시지의 출력 순서는 순차적인 식별정보 및 상기 수신된 메시지 이전에 수신된 메시지들의 순차적인 식별정보에 기반하여 결정되는 것을 특징으로 한다.

Description

CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치{METHOD AND APPARATUS TO KEEPING ORDERS AMONG MESSAGES OF DISCRETE MEDIA TYPE IN CPM SESSION}
본 발명은 메시징 서비스에 관한 것이다.
더 구체적으로, 본 발명은 CPM 세션을 통해 이산 미디어 타입의 메시지가 전송될 때, 상기 메시지 간의 순서를 유지하여 사용자에게 전달하는 방법 및 이러한 전달 기능을 구비한 장치에 관한 것이다.
통합 인터넷 프로토콜 메시징(converged internet protocol messaging; CPM)은 인터넷 프로토콜 멀티미디어 서브시스템(internet protocol multimedia subsystem; IMS) 기반의 메시징 서비스로서, 기존의 단문 메시지 서비스(short message service; SMS), 멀티미디어 메시지 서비스(multimedia message service; MMS) 및 인스턴스 메시지(instance message; IM) 등을 인터넷 프로토콜(internet protocol; IP) 기반에서 통합 및 제공하는 기술이다.
CPM 세션(session)은 사용자 간에 메시지를 실시간으로 송수신할 수 있게 하는 채팅(chatting) 서비스의 일종이다.
상기 CPM 세션에서 송수신될 수 있는 메시지의 타입은 크게 이산 미디어(discrete media)와 연속 미디어(continuous media)가 있다. 상기 이산 미디어에는 음성 클립(audio clip), 텍스트(text) 및 이미지(image) 등이 포함되며, 상기 연속 미디어에는 음성(audio) 및 비디오(video)가 포함된다. 상기 이산 미디어의 전송에는 메시지 세션 릴레이 프로토콜(message session relay protocol; MSRP)이 사용되고, 상기 연속 미디어의 전송에는 실시간 트렌스포트 프로토콜(real-time transport protocol; UTP)이 사용된다.
상기 MSRP는 트렌스미션 컨트롤 프로토콜(transmission control protocol; TCP)을 그 하위 프로토콜로 사용한다. 상기 TCP 프로토콜은 패킷의 도달을 보장하고 패킷 간의 전송 순서를 유지해 주기 때문에, 메시징 서비스와 같이 메시지의 전송을 보장해야 하는 응용에 적합하다.
전술된 MSRP의 세션은 하나의 TCP 연결(connection)으로 이루어진다. 짧은 기간 내에 다수의 작은 크기의 메시지가 전송될 수 있는 CPM의 특성상, 하나의 메시지가 전송될 때마다 TCP 연결을 설정하는 것은 시간 및 자원의 측면에서 비효율적이기 때문이다.
그러나, 단일한 TCP 연결을 사용할 경우, 예를 들면 파일을 전송하는 것과 같이, 큰 크기의 메시지가 전송될 때 문제가 발생한다. 단일한 TCP 연결을 통해 모든 메시지를 순차적으로 전송하기 때문에, 상기 큰 크기의 메시지를 전부 송신하기 전 까지는 작거나 우선적인 전달을 요하는 다른 메시지를 송신할 수 없기 때문이다.
이러한 문제의 해결책으로 일정 크기 이상의 크기를 갖는 메시지를 전송해야 할 경우, 별개의 TCP 연결을 설정한 후 상기 연결을 통해 전송하는 방법을 생각해 볼 수 있다. 그러나, 새로운 TCP 연결을 설정하기 위해서는 양 말단 간에 다수의 제어신호가 송수신되어야 하고, 상기 TCP 연결을 유지하기 위한 상태 정보 등의 데이터를 유지해야 하는 등 많은 자원이 필요하게 된다. 또한, CPM의 특성상 큰 크기의 멀티미디어 메시지가 짧은 시간 중에 반복적으로 송수신 될 수 있다. 사용자의 개성을 나타내는 아바타(avatar) 및 이모티콘(emoticon) 등을 이러한 멀티미디어 메시지의 예로 들 수 있다. 이러한 이유로, 별개의 TCP 연결을 설정하는 방법은 적절하지 못하다.
따라서, MSRP는 일정 크기 이상의 메시지(예를 들면 2KByte 이상의 크기를 갖는 메시지)를 전송할 경우, 상기 메시지를 여러 개의 청크(chunk)로 나누어서 전송한다. 예를 들면, 1번 메시지의 크기가 2MByte이고, 2번 메시지의 크기는 1KByte라면, 상기 MSRP는 상기 1번 메시지를 복수 개의 청크로 분리하여 전송하고, 상기 1번 메시지의 청크들이 순차적으로 전송되는 중간에 상기 2번 메시지를 전송함으로써, 각 청크들은 TCP에 실려 전송되지만, 최종 클라이언트(client) 단에서는 두 개의 메시지가 동시에 전송되는 것과 같은 효과를 발생시킨다.
이러한 MSRP의 특성은 큰 크기를 갖는 특정 메시지 때문에 다른 메시지의 전송이 늦춰지는 문제를 해결할 수 있으나, 그 반면 메시지들 간의 전송 순서가 바뀔 수 있으며, 상기 메시지를 수신하는 클라이언트는 수신된 메시지들 간의 선후관계(즉, 발생 순서)를 오인할 수 있다. CPM 세션의 특성상, 상기 CPM 세션을 통해 메시지가 전송될 때, 전송된 메시지들은 그 선후관계가 유지된 채 상기 메시지의 내용이 사용자에게 전달되어야 한다. 그렇지 않고, 이러한 메시지들이 순서가 바뀐 채 사용자에게 전달된다면 이로서 사용자의 혼돈을 일으킬 수 있다.
본 발명에 따른 메시지 송수신 방법은, 네트워크 상에서 메시지를 송수신하는 방법으로서, 순차적인 식별정보와 누적크기를 포함하는 메시지를 수신하는 단계 및 상기 수신된 메시지를 출력하는 단계를 포함하고, 상기 순차적인 식별정보는 송수신이 이루어지는 세션(session) 내에서 관리되는 전후관계를 식별할 수 있게 하는 식별자이고, 상기 누적 크기는 상기 세션 내에서 상기 수신된 메시지를 전송한 주체가 전송한 메시지들의 크기의 총 합이고, 상기 수신된 메시지의 출력 순서는 순차적인 식별정보 및 상기 수신된 메시지 이전에 수신된 메시지들의 순차적인 식별정보에 기반하여 결정되는 것을 특징으로 한다.
바람직하게, 상기 수신된 메시지는 상기 수신된 메시지가 포함하는 상기 순차적인 식별정보보다 더 적은 순차적인 식별정보를 가진 메시지들이 모두 출력된 이후에 출력된다.
바람직하게, 상기 수신된 메시지는, 상기 수신된 메시지가 포함하는 상기 순차적인 식별정보보다 더 적은 순차적인 식별정보를 가진 메시지들이 모두 출력되었거나 상기 순차적인 식별정보보다 더 적은 순차적인 식별정보를 가졌으나 출력되지 않은 메시지의 크기가 미리 정의된 임계값보다 클 경우 출력되고, 상기 출력되지 않은 메시지의 크기는 상기 수신된 메시지의 누적 크기 및 그 이전에 수신된 메시지의 누적 크기를 기반으로 추산된다.
바람직하게, 상기 메시지는 두 개 이상의 네트워크 피어(peer)로부터 전송되며, 상기 순차적인 식별정보는 상기 순차적인 식별정보가 포함된 메시지를 전송한 피어에 의해 관리되며, 상기 전후관계는 상기 피어가 전송한 메시지들 간에 적용되며, 상기 누적 크기는 상기 누적 크기가 포함된 메시지를 전송한 피어가 상기 세션 내에서 전송한 메시지들의 크기의 총 합이다.
본 발명에 따른 메시지 송수신 방법은, 서버를 경유하여 클라이언트 간에 메시지를 송수신하는 방법으로서, 클라이언트(client)가 송신할 메시지를 생성하는 단계, 상기 클라이언트가 상기 송신할 메시지에 순차적인 식별정보와 누적 크기를 부여하는 단계, 상기 클라이언트가 상기 순차적인 식별정보와 누적 크기가 부여된 송신할 메시지를 서버로 송신하는 단계, 상기 클라이언트가 상기 서버로부터 통합된 순차적인 식별정보와 통합 누적크기를 포함하는 메시지를 수신하는 단계 및 상기 클라이언트가 상기 수신된 메시지를 출력하는 단계를 포함하고, 상기 순차적인 식별정보는 송수신이 이루어지는 세션(session) 내에서 상기 클라이언트가 관리하는 전후관계를 식별할 수 있게 하는 식별자이고, 상기 누적 크기는 상기 세션 내에서 상기 클라이언트가 전송한 메시지들의 크기의 총 합이고, 상기 통합된 순차적인 식별정보는 상기 서버에 의해 관리되는 전후관계를 식별할 수 있게 하는 식별자이며, 동일한 클라이언트가 전송한 메시지들 간에 있어 상기 순차적인 식별정보의 전후 관계는 상기 통합된 순차적인 식별정보에 있어서도 유지되고, 상기 통합 누적 크기는 서버로부터 전송받은 메시지들의 크기의 총 합이고, 상기 클라이언트는 상기 수신된 메시지의 상기 통합된 순차적인 식별정보 및 상기 수신된 메시지 이전에 수신된 메시지들의 상기 통합된 순차적인 식별정보에 기반하여 상기 수신된 메시지의 출력 여부를 결정하는 것을 특징으로 한다.
바람직하게, 상기 수신된 메시지는 상기 수신된 메시지가 포함하는 상기 통합 순차적인 식별정보보다 더 적은 통합된 순차적인 식별정보를 가진 상기 클라이언트가 전송하지 않은 메시지들이 모두 출력된 이후에 출력된다.
바람직하게, 상기 방법은 상기 클라이언트가 상기 서버로부터 피드백 메시지를 수신하는 단계를 더 포함하고, 상기 피드백 메시지는 상기 클라이언트가 전송한 특정 순차적인 식별정보을 갖는 메시지에게 상기 서버가 부여한 통합된 순차적인 식별정보를 가리키는 정보를 포함한다.
바람직하게, 상기 수신된 메시지는 상기 클라이언트가 마지막으로 전송한 메시지의 순차적인 식별정보 및 상기 마지막으로 전송한 메시지에게 상기 서버가 부여한 통합된 순차적인 식별정보를 가리키는 피드백 정보를 포함한다.
바람직하게, 상기 수신된 메시지는, 상기 수신된 메시지가 포함하는 상기 통합된 순차적인 식별정보보다 더 적은 통합된 순차적인 식별정보를 가진 상기 클라이언트가 전송하지 않은 메시지들이 모두 출력되었거나, 상기 클라이언트가 전송하지 않고 상기 통합된 순차적인 식별정보보다 더 이전의 통합된 순차적인 식별정보를 가졌으나 출력되지 않은 메시지의 크기가 미리 정의된 임계값보다 클 경우 출력되고, 상기 출력되지 않은 메시지의 크기는 상기 수신된 메시지의 통합 누적 크기 및 그 이전에 수신된 메시지의 통합 누적 크기를 기반으로 추산된다.
본 발명에 따른 메시지 송수신 방법은, 클라이언트로부터 메시지를 수신하여, 상기 메시지를 다른 클라이언트에게 전송하는 방법으로서, 클라이언트로부터 순차적인 식별정보와 누적 크기를 포함한 메시지를 수신하는 단계, 상기 메시지에 통합된 순차적인 식별정보 및 통합 누적 크기를 부여하는 단계, 상기 클라이언트에게 피드백을 전송하는 단계 및 상기 클라이언트를 제외한 다른 클라이언트에게 상기 메시지를 전송하는 단계를 포함하고, 상기 순차적인 식별정보는 송수신이 이루어지는 세션(session) 내에서 상기 메시지를 송신하는 클라이언트가 관리하는 전후관계를 식별할 수 있게 하는 식별자이고, 상기 누적 크기는 상기 세션 내에서 상기 메시지를 송신하는 클라이언트가 전송한 메시지들의 크기의 총 합이고, 상기 통합된 순차적인 식별정보는 전후관계를 식별할 수 있게 하는 식별자이며 동일한 클라이언트가 전송한 메시지들 간에 있어, 상기 순차적인 식별정보의 전후관계는 상기 통합된 순차적인 식별정보에 있어서도 유지되고, 상기 통합 누적 크기는 전송받은 메시지들의 크기의 총 합인 것을 특징으로 한다.
바람직하게, 상기 수신된 메시지의 순차적인 식별정보보다 더 적은 순차적인 식별정보을 갖는 메시지 중 아직 수신되지 않은 것이 있을 경우, 상기 수신되지 않은 메시지를 위한 통합된 순차적인 식별정보을 확보하고, 상기 수신된 메시지가 부여받아야할 상기 통합 누적 크기는 상기 수신된 메시지의 누적 크기에 기반하여 추산된다.
바람직하게, 상기 피드백은 상기 클라이언트로 전송되는 별개의 메시지이며, 상기 메시지는 특정 순차적인 식별정보을 갖는 메시지에게 부여된 통합된 순차적인 식별정보을 가리키는 정보를 포함한다.
바람직하게, 상기 피드백은, 상기 클라이언트로 전송되는 다른 클라이언트가 발생시킨 메시지에 포함되어 있고, 상기 메시지는 상기 클라이언트가 마지막으로 전송한 메시지의 순차적인 식별정보 및 상기 마지막으로 전송한 메시지에게 부여된 통합된 순차적인 식별정보를 가리키는 정보를 포함한다.
따라서, 본 발명의 목적은 전술한 문제점을 해결하는 데에 있다.
구체적으로, 본 발명은 MSRP를 사용하는 CPM 세션에서 전송된 메시지들 간의 선후관계를 판단하는 방법을 제공하며, 상기 메시지들이 그 선후관계에 따라 사용자에게 전달되는 방법을 제공한다.
또한, 본 발명은 특정 임계값을 기준으로 그것보다 더 큰 크기를 갖는 메시지가 아직 전송되지 않은 경우, 이후에 발생되었지만 이미 전송된 메시지를 사용자에게 먼저 전달하는 방법을 제공한다. 상기 방법은 나중에 발생된 메시지를 사용자에게 먼저 전달하지만, 먼저 발생되었으나 아직 사용자에게 전달되지 않은 메시지가 있다는 것 또한 사용자에게 알릴 수 있다. 따라서 상기 방법은 사용자의 혼돈을 방지할 수 있다.
도 1은 CPM 세션을 위한 시스템의 구성도.
도 2는 본 발명의 일 실시예에 따른 메시지를 송신하는 클라이언트의 동작 단계를 도시하는 흐름도.
도 3은 본 발명의 일 실시예에 따른 메시지를 수신하는 클라이언트의 동작 단계를 도시하는 흐름도.
도 4a는 미싱 메시지가 수신된 예를 도시한 도.
도 4b는 미싱 메시지가 발생한 예를 도시한 도.
도 5는 본 발명의 일 실시예에 따른 3개의 클라이언트가 참여하는 서버를 사용한 그룹 세션을 도시한 도.
도 6은 클라이언트 A, B가 메시지 A1, A2 및 B1를 전송하였을 때, 상기 메시지에게 통합 순번과 통합 누적 크기를 부여하는 것에 대한 일 실시예를 도시한 도
도 7a 및 도 7b는 새로운 메시지를 생성해서 클라이언트에게 통합 순번을 반환하는 단계를 도시한 도.
도 8a, 도 8b, 도 8c 및 도 8d는 다른 클라이언트가 발생시킨 메시지에 통합 순번에 대한 정보를 포함하여 반환하는 단계를 도시한 도.
도 9는 그룹 세션에서 클라이언트가 서버로부터 메시지를 수신하는 절차를 도시하는 흐름도.
본 발명은 CPM 세션에서 이산 미디어 메시지를 송수신하는 방법 및 장치에 적용된다. 그러나 본 발명은 이에 한정되지 않고, 본 발명의 기술적 사상이 적용될 수 있는 모든 통신 시스템 및 방법에도 적용될 수 있다.
본 명세서에서 사용되는 용어 '순번(sequence number)'은 전후 관계를 판단할 수 있도록 하는 순차적인 식별정보를 의미한다. 상기 순차적인 식별정보의 예로 증분되는 번호 등이 포함된다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
도 1은 CPM 세션 시스템의 구성도이다.
상기 시스템의 주요한 구성요소에 대해 간략히 설명한다.
1) CPM 클라이언트(CPM client)
CPM 클라이언트는 장치 내에 존재하며, 네트웍에 기반한 CPM 기능을 가진 구성요소(CPM functional component)에게 접근하는데 사용된다. 장치 내의 다른 기능을 가진 구성요소가 상기 CPM 클라이언트와 내부적으로 통신할 수 있다.
2) CPM 참가 기능부(CPM participating function; CPM PF)
CPM PF는 사용자 특유의(user-specific) 기능을 가진 구성요소로서, 일종의 서버이다. 상기 기능은 CPM 사용자의 홈 네트워크에서 수행되며, 상기 CPM 사용자가 시작 요청을 개시하거나 종료 요청을 수신할 때 호출된다. 상기 CPM PF는 서비스 제공의 대상이 되는 참여자를 위해 CPM 세션, CPM 메시지 및 미디어(media)를 다루며(handle), CPM 사용자 선호(CPM user preference) 및 서비스 제공자 정책(service provider policy)를 적용시킨다.
3) CPM 제어 기능부(CPM Controlling Function; CPM CF)
CPM CF는 그룹 통신에 특유한 것으로서, CPM 그룹 세션에서 사용되는 일종의 서버이다. 상기 CPM CF는 그룹 세션을 개시하는(initiating) CPM 사용자의 홈 네트워크 또는 원격(remote) 네트워크에서 수행될 수 있다. 상기 CPM CP는 도래하는 요청(incoming request)을 종결시키고(terminate), 일반적으로 요청을 복수 개의 수신자(recipient)에게 배분(distribute)할 수 있으며, 그룹 통신을 다룰 수 있다.
4) 메시지 저장 서버 및 클라이언트(message storage server/client)
메시지 저장 서버는 폴더, CPM 메시지, CPM 세션 이력(history) 및 CPM 대화(conversation) 이력을 저장하며, 상기 CPM 메시지 또는 CPM 세션 이력의 일부인 미디어 객체를 저장한다. 상기 메시지 저장 서버는 지역적으로 인지된(locally recognized) 사용자 주소의 인증(authentication) 및 원격 환경의 신뢰된 서버(remote environment trusted server)에 대한 요청의 인증을 수행한다. 또한 상기 메시지 저장 서버는 저장된 자원에 대한 검색, 동기화 기능 등을 수행한다.
메시지 저장 클라이언트는 CPM 메시지, CPM 대화(conversation) 이력(history) 및 CPM 세션 이력을 관리한다. 상기 메시지 저장 클라이언트의 관리 대상에는 로컬(local)의 것뿐만 아니라, 네트워크 상의 메시지 저장 서버에 저장되어 있는 CPM 메시지나 CPM 세션의 일부인 미디어 객체(media object)도 포함된다. 장치 내의 다른 기능을 가진 구성요소가 상기 메시지 저장 클라이언트와 내부적으로 통신할 수 있다.
5) 상호작용 선택 기능부(interworking selection function)
상호작용 선택 기능부는 비-CPM(non-CPM) 통신 서비스를 식별하며, CPM 세션 또는 CPM 메시지가 라우트 될 것을 요하는 적절한 상호작용 기능을 선택한다.
6) 상호작용 기능부(interworking function)
상호작용 기능부는 CPM-기반 서비스와 비-CPM 통신 서비스 간의 상호작용 능력(capability)을 제공한다. 즉, 상기 상호작용 기능부는 상호작용을 수행하는 엔티티(entity)로서, CPM을 MMS로 또는 MMS를 CPM으로 변환하는 것 같은 변환 작업을 수행하는 엔티티이다.
또한, 본 명세서에서 사용되는 용어의 정의를 간략하게 기술한다.
1) 인터넷 메시징 접근 프로토콜(internet messaging access protocol; IMAP) 서버/클라이언트
IMAP은 이-메일(e-mail) 수신에 관련된 프로토콜로서, 원격파일 서버와 유사하게 작동하며, 메일을 받아올때 서버에서 상기 메일을 삭제하지 않고 보관한다는 점에서 포스트 오피스 프로토콜 버젼 3(post office protocol version 3; POP3)과 차이가 있다.
IMAP 서버는 상기 IMAP을 사용하여 메일을 제공하고, IMAP 클라이언트는 메일을 수신한다.
2) CPM 큰 메시지 모드(CPM large message mode)
CPM 큰 메시지 모드는 MSRP를 사용하여 단일한 큰 CPM 메시지를 보내는데 사용된다.
3) CPM 페이저 모드(CPM pager mode)
CPM 페이저 모드는 MSRP 세션의 성립(establishment)을 요하지 않은 채, 제한된 크기(예컨데, 1300Byte 이하)의 단일한 CPM 메시지를 보내는데 사용된다.
또한, 전술한 메시지 세션 릴레이 프로토콜(message session relay protocol; MSRP)에 대해 더 상세히 설명한다. 상기 설명은 RFC497(http://tools.ietf.org/html/rfc4975)의 정의를 따른 것이며, 상기 문서에서 더 자세한 사항이 기술되어 있다.
MSRP는 통신 세션의 문맥(context)하에서 일련의(series) 관련된 인스턴스 메시지들을 전송하기 위한 프로토콜이다.
MSRP를 사용하여 전송되는 메시지는 매우 클 수 있으며, 한 개의 메시지는 여러 개의 청크로 나뉘어질 수 있다. 각각의 청크는 독립적인 MSRP SEND 요청을 통하여 전송될 수 있다. 여기서, 각각의 SEND 요청은 전체(overall) 메시지의 하나의 청크(chunk)를 포함한다. 긴 청크들은 공유되는 트렌스포트 접속(shared transport connection)들 간에 공정성(fairness)을 보장하기 위해 전송 중간에 인터럽트(interrupt)될 수 있다. 즉, 하나의 긴 메시지가 다수의 많은 청크로 나뉜 경우, 상기 청크들의 전송 중간에 다른 메시지의 청크가 끼어들어 전송될 수 있으며, 이와 같은 전송의 결과 메시지들 간의 생성 순서와, 상기 메시지들 간의 전송 순서가 일치하지 않을 수 있다.
이를 지원하기 위해, MSRP는 경계-기반 프레밍 메커니즘(boundary-based framing mechanism)을 사용한다. MSRP 요청(request)의 시작 선(start line)은 고유의 식별자를 포함하며, 상기 식별자는 상기 요청의 말단(end)을 가리키는데도 사용된다. 끝-선(end-line)의 말단에 포함되어, 이것이 이 메시지를 위한 데이터의 마지막 청크인지, 아니면 상기 메시지가 뒤따르는 청크에 의해 계속되는지를 가리키는 플래그(flag)가 있다. 또한, 상기 요청 중에는 전체 메시지 내에서 이 청크의 전체적인(overall) 위치를 가리키는 바이트-범위의(byte-range) 헤더 필드(header field)가 있다. 이러한 메커니즘으로 인해, 메시지의 청크들이 순서가 바뀐 채 전송되었더라도, 상기 청크들을 수신하는 수신단에서 상기 청크들의 원래 순서를 복원할 수 있다.
아래의 표 1은 두 샌드 요청(SEND request)의 조각(snippet)을 나타낸다.
상기 조각은 텍스트 "abcdEFGH"를 담고 있는 메시지가 가 두 개의 청크로 나뉘어 보내지는 것을 보인다.
MSRP dkei8sd SEND
Message-ID: 4564dpWd
Byte-Range: 1-*/8
Content-Type: text/plain

abcd
-------dkei38sd+
MSRP dkei8ia SEND
Message-ID: 4564dpWd
Byte-Range: 5-8/8
Content-Type: text/plain

EFGH
-------dkei38ia$
상기 청킹(chunking) 매커니즘(mechanish)은 전송자가 상기 청크 부분의 전송 진행 도중에 인터럽트(interrupt)되는 것을 허용한다. 메시지들을 인터럽트할 수 있는 능력은 복수 개의 MSRP 세션이 TCP(transmission control protocol) 연결(connection)을 공유하도록 허용하며, 큰 메시지들이 동일한 연결, 심지어 같은 MSRP 세션을 공유하는 다른 메시지들을 블록(block)하지 않은 채 공정하게, 또는 효율적으로 전송되도록 한다. 2048 옥텟(octet)보다 큰 임의의 청크는 인터럽트될 수 있어야 한다. 즉, 사용자가 발생시킨 단일 메시지의 크기가 2048 보다 큰 경우, MSRP 층(layer)는 무조건 청크시킬 수 있어야 한다. 왜냐하면, 상기 단일 메시지가 청크가 되어야, 다른 메시지의 청크가 중간에 끼어들 수(interrupt) 있기 때문이다. 만약 각각의 MSRP 세션이 고유의 TCP 연결을 사용한다면 MSRP는 그 구현에 있어서는 단순할 것이나, 연결을 보존하지 않을 수 없는 이유가 있다. 예를 들면, TCP 피어(peer)가 많은 다른 피어와 연결하는 릴레이(replay) 장치일 수 있다. 이러한 장치는 각각의 피어가 많은 수의 연결을 생성하지 않으면 더 잘 부하에 대처한다(scale better). (전술한 예에서, 상기 처음의 청크는 그것의 크기가 인터럽트 가능성을 요하는 제한보다 적었음에도 불구하고, 예를 들기 위해서 인터럽트 가능했음에 주의한다.)
SEND 메소드가 메시지 콘텐츠를 전송하는데 사용되는 유일한 메소드이기 때문에 상기 청킹 메커니즘은 SEND 메소드(method)에만 적용된다.
본 발명의 일 실시예에 따라 2개의 클라이언트 간에 메시지 송수신이 이루어질 때, 클라이언트에 의한 메시지의 송신 단계 및 수신 단계에 대해서 순차적으로 설명한다.
상기 클라이언트는 CPM 클라이언트일 수 있으며, 상기 CPM 클라이언트 기능이 장착된 단말일 수 있다.
도 2는 본 발명의 일 실시예에 따른 메시지를 송신하는 클라이언트의 동작 단계를 도시하는 흐름도이다.
우선, 사용자의 조작 등에 의해 전송될 메시지가 발생된다(S110).
다음, 클라이언트는 상기 메시지의 순번(sequence number)을 생성하여, 상기 순번을 상기 메시지에 포함시킨다(S120). 상기 순번은 CPM 세션 내에서 관리되는, 1부터 시작하여 순차적으로 증가하는 일련 번호이다.
다음, 클라이언트는 현재까지의 모든 메시지의 누적 크기(size)를 생성하여, 상기 누적 크기를 상기 메시지에 포함시킨다(S130). 예를 들면, 순번이 1인 메시지 1의 크기가 1KByte이고, 순번이 2인 메시지 2의 크기가 1MByte라면, 상기 메시지 1에 포함되는 누적 크기는 1KByte이고, 상기 메시지 2에 포함되는 누적 크기는 1KByte + 1MByte이다. 선택적으로, 클라이언트는 현재 메시지의 크기도 상기 현재 메시지에 따로 포함시킬 수 있다.
마지막으로, 클라이언트는 상기 메시지를 전송한다(S140).
선택적으로 전송할 메시지의 일부만이 전술한 상기 순번 및 상기 누적 크기를 포함할 수 있다. 이 경우 상기 순번 및 상기 누적 크기를 포함하는 메시지가 누적 크기 합산의 대상이 된다.
도 3는 본 발명의 일 실시예에 따른 메시지를 수신하는 클라이언트의 동작 단계를 도시하는 흐름도이다.
우선, 클라이언트는 상대방이 전송한 메시지를 수신한다(S210).
메시지가 순번을 포함하는 것이 선택적인 경우, 상기 클라이언트는 상기 수신 메시지 내에 순번이 포함되었는지를 확인한다(S220). 모든 메시지가 순번을 포함하도록 구성된 경우 본 단계는 포함되지 않는다.
순번이 포함되지 않은 경우, 상기 메시지는 사용자에게 전달된다(S250). 이 경우 상기 메시지는 순번을 포함하고 있지 않으므로, 상기 도 3에서 도시된 것에 대해서 예외적으로, 다음 순서의 메시지가(즉, 더 큰 순번을 가진 메시지가) 버퍼에 저장되어 있는지 여부를 판단(S260)할 필요없이 절차를 종료할 수 있다.
순번이 포함된 경우, 다음 단계(S230)를 진행한다.
다음으로, 상기 클라이언트는 기존에 수신된 메시지들의 순번 중 최대값과 상기 순번을 비교한다(S230).
상기 비교의 결과 상기 순번이 상기 최대값보다 작은 경우, 상기 메시지는 미싱 메시지(missing message)이다. 미싱 메시지란, 자신보다 더 큰 순번을 부여받은 메시지가 수신 클라이언트에게 전송되었음에도 불구하고 아직 전송되지 않은 메시지를 의미한다. 도 4a는 미싱 메시지가 수신된 예를 도시한다. 이 경우 다음으로 검사 단계(S232)가 실행된다.
상기 비교의 결과 상기 순번이 상기 최대값보다 큰 경우, 상기 메시지가 기존에 수신된 메시지의 다음 순서의 메시지인지 여부를 검사한다(S240). 즉, 상기 수신된 메시지의 순번이 상기 최대값보다 하나 큰 수인지 검사한다. 상기 검사는 상기 메시지의 수신으로 인해 새로운 미싱 메시지가 발생하는지 여부를 검사한다는 것과 같은 의미이다. 선택적으로, 상기 검사는 수신된 메시지의 순번까지 미싱 메시지가 없는지 여부를 검사하는 것으로 대체될 수 있다.
상기 검사의 결과 상기 수신된 메시지가 다음 순번의 메시지인 경우, 상기 메시지는 사용자에게 전달된다(S250). 상기 전달은 화면 출력 등의 다양한 태양으로써 실행될 수 있다. 또한, 상기 순번이 상기 최대값보다 크므로, 상기 도 3에서 도시된 것에 대해서 예외적으로, 다음 순서의 메시지가 버퍼에 저장되어 있는지 여부를 판단(S260)할 필요없이 절차를 종료할 수 있다.
상기 검사의 결과 상기 수신된 메시지가 다음 순번의 메시지가 아닌 경우, 상기 수신으로 인하여 미싱 메시지가 발생한 것이다. 도 4b는 미싱 메시지가 발생한 예를 도시한다. 이 경우 후술할 미싱 메시지의 크기와 임계값을 비교하는 단계(S270)가 진행된다.
상기 수신된 메시지의 순번이 상기 최대값보다 작은 경우, 상기 메시지의 수신으로 인해 기존의 메시지의 빠진 틈이 다 메꿔지는지 검사한다(S232). 즉, 상기 수신된 메시지가 상기 클라이언트의 유일한 미싱 메시지인지 검사한다.
상기 검사의 결과 상기 메시지의 수신으로 인해 빠진 틈이 다 메꿔지는 경우, 상기 메시지는 사용자에게 전달된다(S250). 또한, 상기 메시지의 다음 순서 메시지(즉, 상기 메시지의 순번보다 더 큰 순번을 가진 메시지)가 전달되지 않고 버퍼에 저장된 경우, 상기 버퍼에 저장된 메시지도 사용자에게 전달된다(S260).
상기 검사의 결과 상기 메시지의 수신으로 인해 빠진 틈이 다 메꿔지지 않은 경우 상기 메시지의 순번과 미싱 메시지의 순번을 비교한다(S234).
상기 비교의 결과 상기 메시지의 순번이 미싱 메시지의 순번보다 적은 경우, 상기 메시지의 이전 메시지들은 이미 사용자에게 전달된 것이다. 따라서, 상기 메시지는 사용자에게 전달된다(S250). 또한, 버퍼에 저장된 메시지 중 상기 메시지와 상기 미싱 메시지의 사이의 것도 사용자에게 전달된다(S260).
상기 비교의 대상이 되는 미싱 메시지는 미싱 메시지들 중 가장 적은 순번을 가진 것이 될 수 있다.
상기 비교의 결과 상기 수신된 메시지의 순번이 미싱 메시지의 순번보다 큰 경우, 미싱 메시지의 크기와 임계값을 비교하는 단계(S270)가 진행된다. 상기 미싱 메시지의 크기는 상기 미싱 메시지의 순번의 바로 앞뒤 순번을 갖는 두 메시지의 누적 크기를 비교하여 알 수 있다.
미싱 메시지의 크기와 임계값을 비교하는 단계(S270)가 수행되면 그 결과에 따라 상기 수신된 메시지의 전달 여부가 결정된다.
상기 미싱 메시지의 크기가 임계값보다 클 경우, 클라이언트는 상기 미싱 메시지의 도착을 기다리지 않고 상기 수신된 메시지를 사용자에게 전달한다(S280). 상기 클라이언트는 상기 전달시 상기 사용자에게 미싱 메시지가 있다는 것을 통지할 수 있다. 상기 통지는 사용자 인터페이스(user interface; UI) 상에서의 추가적인 작업으로써 될 수 있다. 예를 들면, 상기 클라이언트는 상기 미싱 메시지를 내용이 빈 점선 테두리로 표시할 수 있다.
상기 미싱 메시지의 크기가 임계값보다 작을 경우, 클라이언트는 상기 수신된 메시지를 바로 전달하지 않고, 상기 미싱 메시지가 상기 클라이언트에게 도착하여 사용자에게 전달된 이후에 상기 수신된 메시지를 전달한다. 따라서, 상기 메시지는 내부 버퍼에 저장된다.
상기 미싱 메시지와 상기 수신된 메시지 사이에 다른 메시지가 있는 경우(즉, 상기 미싱 메시지와 상기 수신된 메시지가 연속된 것이 아닌 경우), 상기 수신된 메시지는 상기 다른 메시지의 처리와 동일하게 처리될 수 있다. 즉, 상기 다른 메시지가 버퍼에 저장된 경우 상기 수신된 메시지도 버퍼에 저장되며, 상기 다른 메시지가 사용자에게 전달된 경우 상기 수신된 메시지도 사용자에게 전달된다.
미싱 메시지가 두 개 이상인 경우 상기 미싱 메시지들의 총 크기를 상기 비교의 대상이 되는 크기로 삼을 수 있다.
상기 전달(S250, S260 및 S280) 및 저장(S290) 단계는 단말의 지역 정책(local policy)에 따라 결정될 수 있다.
아래에서는, 그룹 세션(group session)에서 클라이언트 간의 메시지 송수신이 이루어지는 경우에 대해서 설명한다.
상기 그룹 세션이란, 2 이상의 클라이언트가 상호 메시지를 송수신하는 경우를 의미하며, 하나의 클라이언트가 송신한 메시지는 다른 모든 클라이언트들에게 전송된다.
단순하게는, 전술한 2개의 클라이언트가 메시지를 송수신할 때 사용하는 방법을 확장하여 적용할 수 있다. 이러한 경우, 메시지 송신에 있어서는 동일한 메시지를 다른 모든 복수 개의 클라이언트들 모두에게 각각 전송한다는 점에서 전술한 방법과 차이가 있다. 메시지 수신에 있어서는 클라이언트가 각각의 상대 클라이언트 별로 별개의 상기 순번, 상기 미싱 메시지 및 상기 버퍼 등을 관리해야한다는 점에서 전술한 방법과 차이가 있다.
아래에서는, 서버(server)를 사용하는 그룹 세션을 설명한다.
서로 다른 클라이언트가 전송한 메시지들에 대해서도 선후관계를 관리하기 위해서는 각각의 클라이언트에 의해 발생된 모든 메시지들에게 하나의 통합된 순번을 부여할 필요가 있다. 따라서 서버를 사용하는 그룹 세션의 경우, 각각의 클라이언트는 상기 서버로 메시지를 송신한다. 상기 서버가 상기 메시지를 수신하면, 상기 서버는 수신된 메시지별로 그룹 세션에 맞는 통합 순번 및 누적 크기를 계산하고, 상기 통합 순번 및 상기 누적 크기가 부여된 메시지를 다른 클라이언트로 전송한다.
상기 서버는 OMA CPM의 CPM CF일 수 있다.
도 5은 본 발명의 일 실시예에 따라, 3개의 클라이언트가 참여하는 서버를 사용한 그룹 세션을 도시한다.
상기 그룹 세션은 클라이언트 A(210), 클라이언트 B(220) 및 클라이언트 C(230)가 서버(240)를 통해 메시지를 송수신한다.
실선은 클라이언트가 메시지를 송신하는 것을 나타낸다. 실선과 겹쳐져있는 상자는 송신되는 메시지를 나타낸다. 상기 클라이언트 A(210)는 메시지 A1 및 A2를 송신한다. 상기 메시지의 숫자는 상기 클라이언트에 의해 부여된 순번을 나타낸다. 상기 클라이언트 B(220)는 메시지 B1, B2 및 B3를 송신한다. 클라이언트 C(230)는 메시지를 송신하지 않는다.
점선은 클라이언트가 메시지를 수신하는 것을 나타낸다. 점선과 겹쳐져있는 상사는 수신되는 메시지를 나타낸다. 이텔릭 글씨체로 표시된 메시지는 클라이언트 자신이 발생시켰기 때문에 수신에서 제외되는 메시지를 나타낸다. 괄호 안의 숫자는 각 메시지에게 부여된 통합 순번이다. 상기 클라이언트 A(210)는 전체 메시지 A1, B1, B2, A2 및 B3 중에서 자신이 송신한 메시지를 제외한 B1, B2 및 B3을 수신한다. 상기 클라이언트 B(220)는 A1 및 A2를 수신한다. 상기 클라이언트 C(230)는 자신이 송신한 메시지가 없으므로 A1, B1, B2, A2 및 B3 모두를 수신한다. 상기 일점쇄선은 클라이언트에게 반환되는 통합 순번을 나타낸다. 상기 반환되는 통합 순번에 대해서는 자세히 후술한다.
상기 서버(240) 내의 상자는 상기 서버(240)가 수신한 메시지를 나타낸다.
도 5의 실시예에서와 같은 구성에서 메시지 송수신이 이루어 질 때, 상기 클라이언트 및 상기 서버의 동작을 설명한다.
1) 상기 클라이언트(210, 220 및 230)가 메시지를 송신하는 단계를 설명한다.
메시지 송신시의 클라이언트의 동작은 전술한 2개의 클라이언트 간에 세션을 구성하였을 때의 메시지 송신 단계와 같다. 중복되는 설명은 생략한다.
2) 상기 서버(240)가 메시지를 수신하고 다른 클라이언트에게 상기 메시지를 송신하는 단계를 설명한다.
상기 단계에서, 상기 서버(240)의 동작은 수신한 메시지에 통합 순번을 부여하는 것, 상기 수신한 메시지에 통합 누적 크기를 부여하는 것 및 상기 통합 순번을 상기 메시지를 송신한 클라이언트에게 알려주는 것으로 나눌 수 있다.
도 6은 상기 클라이언트 A, B가 메시지 A1, A2 및 B1를 전송하였을 때, 상기 메시지에게 통합 순번과 통합 누적 크기를 부여하는 것에 대한 일 실시예를 도시한다.
도 6에서 상기 클라이언트 A 및 B는 상기 메시지 A1, A2 및 B1을 순서대로 전송한다. 각각의 메시지는 상기 클라이언트에 의해 부여된 순번, 크기 및 누적 크기 정보를 가지고 있다.
상기 메시지 A1, A2 및 B1는 상기 서버에 A2, B1, A1의 순서대로 도착한다.
2-1) 통합 순번의 부여
기본적으로, 상기 서버는 수신한 메시지에 수신 순서대로 통합 순번을 부여한다. 그러나, 동일한 클라이언트에 의해 송신된 메시지들 간에는 그 순서를 유지되어야 한다. 즉, 도 6에 도시된 것과 같이 A2, B1, A1의 순서로 메시지가 도착했을 때 단순히 도착 순서로 각각 1, 2, 3의 통합 순번을 부여하면, 상기 클라이언트 A에 의해 먼저 발생된 A1의 통합 순번이 3이 되고, 나중에 발생된 A2의 통합 순번이 1이 되는 문제가 있다.
한 클라이언트로부터 발생된 메시지가 수신되지 않은 채 이후 동일 클라이언트로부터 발생된 메시지가 수신된 경우, 상기 도착하지 않은 메시지를 위한 통합 순번을 미리 확보하는 방법이 사용될 수 있다. 도착하지 않은 메시지가 2개 이상인 경우에도, 각각의 도착하지 않은 메시지를 위한 통합 순번을 확보하고 그 다음의 통합 순번을 먼저 수신된 메시지에게 부여할 수 있다.
도 6에서 도시된 예와 같이, 제일 먼저 메시지 A2가 수신되면, 상기 A2의 순번이 2이므로, 상기 서버는 클라이언트 A에 의해 발생된 순번이 1인 메시지 A1이 아직 수신되지 않았음을 알 수 있다. 따라서, 서버는 상기 A1을 위해 통합 순번 1을 미리 확보하고, 상기 A2에게는 그 다음 통합 순번 2를 부여한다. 그 다음, 메시지 B1이 수신되면, 상기 B2의 순번이 1이므로, 상기 서버는 그 다음 통합 순번 3을 상기 B2에게 부여한다. 이후 상기 A1이 수신되면, 상기 서버는 확보해 놓았던 통합 순번 1을 상기 A1에게 부여한다.
상기와 같은 통합 순번 부여 방법은 예시적인 것으로, 동일한 클라이언트에 의해 송신된 메시지들 간에 그 순서를 유지시킬 수 있는 다른 방법이 본 절차에서 사용될 수 있다.
2-2) 통합 누적 크기의 부여
상기 통합 순번의 부여와 함께, 상기 서버는 수신된 메시지에 통한 누적 크기를 부여한다.
상기 서버는 수신한 메시지에 지금까지 수신된 모든 메시지의 크기를 합하여 통합 누적 크기를 부여한다.
동일 클라이언트가 수 개의 메시지를 발생시키고, 이후에 발생된 메시지(즉, 더 큰 순번을 갖는 메시지)가 이전에 발생된 메시지(즉, 더 작은 순번을 갖는 메시지)보다 먼저 도착한 경우 통합 누적 크기 계산이 문제시된다.
한 클라이언트로부터 발생된 메시지가 수신되지 않은 채 동일 클라이언트로부터 나중에 발생된 메시지가 수신된 경우, 상기 서버는 상기 수신된 메시지의 누적 크기로부터 상기 수신되지 않은 메시지의 크기를 포함한 통합 누적 크기를 추산할 수 있다. 도착하지 않은 메시지가 2개 이상인 경우에도, 상기 도착한 메시지의 누적 크기로부터 상기 도착한 메시지의 통합 누적 크기를 추산할 수 있다.
도 6에서 도시된 예와 같이 제일 먼저 메시지 A2가 수신되면, 상기 A2에게 부여된 통합 순번은 2이므로 상기 A2의 통합 누적 크기는 통합 순번 1과 통합 순번 2에 해당하는 메시지들의 크기의 합, 즉 A1과 A2의 크기를 합한 값이며, 이는 상기 A2의 누적 크기로 알 수 있다. 다음, 메시지 B1이 수신되면, 상기 B1에게 부여된 통합 순번은 3이므로, 통합 순번이 2인 상기 A2의 통합 누적 크기에 상기 B1의 크기를 합한 값이 상기 B1의 통합 누적 크기가 된다. 마지막으로, 상기 A1가 수신되면, 상기 A1에게 확보된 통합 순번은 1이므로 상기 A1의 크기가 상기 A1의 통합 누적 크기가 된다.
2-3) 각 클라이언트가 송신한 메시지에 대한 통합 순번 피드백(feedback)
본 실시예에서, 상기 서버는 상기 클라이언트로부터 메시지를 수신한 후, 상기 메시지를 송신한 클라이언트에게 상기 메시지에게 부여된 통합 순번을 알려준다.
클라이언트가 자신이 발생시킨 메시지를 송신한 후 상기 서버로부터 다른 클라이언트가 발생시킨 메시지를 수신하였을 때, 상기 클라이언트는 상기 수신한 메시지의 통합 순번을 확인한다. 상기 통합 순번이 이전에 수신한 메시지의 통합 순번과 연속적이지 않을 경우, 상기 클라이언트는 상기 불연속의 원인이 자신이 발생시킨 메시지 때문인지, 아니면 다른 클라이언트가 발생시킨 더 빠른 통합 순번을 부여받은 다른 메시지가 아직 도착하지 않았기 때문인지를 판단할 수 있어야 한다. 따라서, 상기 서버는 상기 클라이언트로부터 메시지를 수신하였을 때, 상기 수신 메시지에게 부여한 통합 순번을 상기 클라이언트에게 피드백하여, 상기 클라이언트가 상기 판단을 할 수 있게 한다.
예를 들어, 통합 순번이 3인 메시지를 수신받은 클라이언트가 새로운 메시지를 발생시켜, 이를 서버로 전송하였다. 이후 상기 클라이언트가 통합 순번이 5인 메시지를 수신한 경우, 상기 클라이언트는 자신이 전송한 메시지의 통합 순번이 4인 것인지, 아니면 통합 순번이 4인 다른 메시지를 아직 수신하지 못한 것인지 판단하여야 한다. 상기 클라이언트가 상기 서버에 의해 통합 순번 4가 자신이 전송한 메시지라는 의미의 피드백을 받은 경우, 상기 클라이언트는 자신이 전송한 메시지의 순번을 알 수 있고, 따라서 통합 순번이 4인 메시지는 전송받을 필요가 없음을 알 수 있다. 상기 피드백된 통합 순번이 6 이상의 것인 경우, 상기 클라이언트는 통합 순번이 4인 메시지를 아직 수신하지 못하였다는 것을 알 수 있다.
아래에서, 구체적인 상기 통합 순번의 피드백 방법을 검토한다.
2-3-1) 새로운 메시지를 생성해서 클라이언트에게 상기 통합 순번을 반환하는 방법.
도 7a 및 도 7b는 새로운 메시지를 생성해서 클라이언트에게 상기 통합 순번을 반환하는 단계를 도시한다.
도 7a에서, 클라이언트 A(210)는 메시지 A1을 서버(240)로 전송한다(S310). 상기 메시지의 순번은 1, 크기는 1K, 누적 크기는 1K 이다. 상기 A1을 전송받은 상기 서버(240)는, 상기 A1에 통합 순번 1 및 통합 누적 크기 1K를 부여한다(S320). 이후, 상기 서버(240)는 상기 A1을 클라이언트 B(220) 및 C(230)에게 전송한다(S330). 또한, 상기 서버(240)는 상기 A1에게 부여된 통합 순번이 1이라는 정보를 포함하는 반환 메시지를 상기 클라이언트 A(210)에게 전송한다(S340).
다음, 도 7b에서 클라이언트 B(220)는 메시지 B1을 서버(240)로 전송한다(S350). 상기 메시지의 순번은 1, 크기는 1M, 누적 크기는 1M 이다. 상기 B1을 전송받은 상기 서버(240)는, 상기 B1에 통합 순번 2 및 통합 누적 크기 1K+1M를 부여한다(S360). 이후, 상기 서버(240)는 상기 B1을 클라이언트 A(210) 및 C(230)에게 전송한다(S370). 또한, 상기 서버(240)는 상기 B1에게 부여된 통합 순번이 2이라는 정보를 포함하는 반환 메시지를 상기 클라이언트 B(220)에게 전송한다(S380).
아래의 표 2는 클라이언트가 전송하는 메시지의 일 예를 나타낸다. 또한, 아래의 표 3은 클라이언트에게 통합 순번을 반환하는 반환 메시지의 일 예를 나타낸다.
MSRP d93kswow SEND
To-Path: xxx
From-Path: zzz
Message-ID: 12339sdqwer
Byte-Range: 1-137/148
Content-Type: message/cpim

To: Bob sip:bob@example.com
From: Alice sip:alice@example.com
DateTime: 2006-05-15T 15:02:31-03:00
Content-Type: text/plain
NS: cpm <urn:oma:params:cpm>
cpm.seq_num: 5

ABCB
-------d93kswow+
상기 표 2의 내용 중에서, cpm.seq_num 항목이 클라이언트가 부여한 상기 메시지의 순번을 나타낸다. 즉, 상기 cpm.seq_num 항목은 상기 메시지가 순번 5의 메시지임을 가리킨다.
MSRP d93kswow SEND
To-Path: xxx
From-Path: zzz
Message-ID: 12339sdqwer
Byte-Range: 1-137/148
Content-Type: message/cpim

To: Bob sip:bob@example.com
From: Alice sip:alice@example.com
DateTime: 2006-05-15T 15:02:31-03:00
Content-Type: text/plain
NS: cpm <urn:oma:params:cpm>
cpm.seq_num: 5
cpm.own_seq_num_unified: 7

ABCB
-------d93kswow+
상기 표 3의 내용 중에서, cpm.seq_num_unified 항목이 서버가 부여한 상기 메시지의 통합 순번을 나타낸다. 즉, 상기 반환 메시지는 상기 클라이언트가 전송한 순번 5인 메시지에게 부여된 통합 순번이 7임을 가리킨다.
2-3-2) 다른 클라이언트가 발생시킨 메시지에 상기 통합 순번에 대한 정보를 포함시키는 방법.
도 8a, 도 8b, 도 8c 및 도 8d는 다른 클라이언트가 발생시킨 메시지에 상기 통합 순번에 대한 정보를 포함하여 반환하는 단계를 도시한다.
도 8a에서, 클라이언트 A(210)는 메시지 A1을 서버(240)로 전송한다(S410). 상기 메시지의 순번은 1, 크기는 1K, 누적 크기는 1K 이다. 상기 A1을 전송받은 상기 서버(240)는, 상기 A1에 통합 순번 1 및 통합 누적 크기 1K를 부여한다(S412). 이후, 상기 서버(240)는 상기 A1을 클라이언트 B(220) 및 C(230)에게 전송한다(S414).
다음, 도 8b에서 클라이언트 B(220)는 메시지 B1을 서버(240)로 전송한다(S420). 상기 메시지의 순번은 1, 크기는 10M, 누적 크기는 10M 이다. 상기 B1을 전송받은 상기 서버(240)는, 상기 B1에 통합 순번 2 및 통합 누적 크기 1K+10M를 부여한다(S422). 이후, 상기 서버(240)는 상기 B1을 클라이언트 C(230)에게 전송한다(S424). 또한, 상기 서버는 상기 B1에 상기 A1의 통합 순번은 1이라는 정보를 포함시키고, 상기 정보를 포함한 상기 B1을 상기 클라이언트 A(210)에게 전송한다(S426). 상기 A는 상기 B1을 수신한 후, 이전에 자신이 전송한 A1에게 부여된 통합 순번이 1이라는 것을 알 수 있다.
다음, 도 8c에서 클라이언트 B(220)는 메시지 B2를 서버(240)로 전송한다(S430). 상기 메시지의 순번은 2, 크기는 5M, 누적 크기는 15M 이다. 상기 B1을 전송받은 상기 서버(240)는, 상기 B2에 통합 순번 3 및 통합 누적 크기 1K+15M를 부여한다(S432). 이후, 상기 서버(240)는 상기 B2을 상기 클라이언트 A 및 C(230)에게 전송한다(S434). 이 단계에서는 상기 B에게는 전송될 메시지가 없기 때문에, 상기 B에게 B1에 대한 정보가 전송되지 않는다.
다음, 도 8d에서 클라이언트 C(230)는 메시지 C1을 서버(240)로 전송한다(S440). 상기 메시지의 순번은 1, 크기는 2K, 누적 크기는 2K 이다. 상기 B1을 전송받은 상기 서버(240)는, 상기 C1에 통합 순번 4 및 통합 누적 크기 3K+15M를 부여한다(S442). 이후, 상기 서버(240)는 상기 C1을 클라이언트 A(210)에게 전송한다(S444). 또한, 상기 서버는 상기 C1에 상기 B2의 통합 순번은 2라는 정보를 포함시키고, 상기 정보를 포함한 상기 C1을 상기 클라이언트 B(220)에게 전송한다(S446). 상기 B는 상기 C1을 수신한 후, 이전에 자신이 전송한 B2에게 부여된 통합 순번이 3이라는 것을 알 수 있다. 여기서, 상기 B는 상기 B1의 통합 순번에 대한 정보를 명시적으로 수신하지는 않았다. 그러나, 상기 B는 통합 순번이 1인 상기 A1을 이미 수신하였고, 상기 B1의 송신 이후에 송신한 상기 B2의 통합 순번이 3이라는 것을 알 수 있다. 따라서 상기 B는 상기 B1의 통합 순번이 2라는 것을 알 수 있다.
아래의 표 4는 서버가 전송하는 메시지 중, 통합 순번에 대한 정보가 포함된 메시지의 일 예를 나타낸다.
MSRP d93kswow SEND
To-Path: yyy
From-Path: zzz
Message-ID: 12339sdqwer
Byte-Range: 1-137/148
Content-Type: message/cpim

To: Bob sip:bob@example.com
From: Alice sip:alice@example.com
DateTime: 2006-05-15T 15:02:31-03:00
Content-Type: text/plain
NS: cpm <urn:oma:params:cpm>
cpm.unified_squ_num: 8
cpm.own_seq_num: 5
cpm.own_seq_num_unified: 7

ABCB
-------d93kswow+
상기 표 4의 내용 중에서, cpm.unified_seq_num 항목은 상기 메시지 자체의 통합 순번을 의미한다. 즉, 상기 표 4가 나타내는 메시지의 통합 순번은 8이다. 상기 클라이언트가 전송했던 메시지에 대한 통합 순번 정보는 cpm.own_seq_num 항목 및 cpm.own_seq_num_unified 항목으로 표현된다. 상기 cpm.own_seq_num은 상기 클라이언트가 자신이 전송했던 메시지에게 부여한 순번이고, 상기 cpm.own_seq_num_unified은 상기 서버가 상기 메시지에게 부여한 통합 순번이다. 표 4가 나타내는 메시지가 클라이언트 A에 의해 발생되어, 서버를 거처 클라이언트 B로 전송되는 메시지의 내용을 표시한 것이라고 한다면, 상기 메시지는 자신의 통합 순번이 8이라는 정보와, 상기 클라이언트 B가 전송했던 순번 5의 메시지에게 부여된 통합 순번은 7이라는 정보를 포함한다.
3) 상기 클라이언트(210, 220 또는 230)가 상기 서버(240)로부터 메시지를 수신하는 단계에 대해서 설명한다.
도 9는 그룹 세션에서 클라이언트가 서버로부터 메시지를 수신하는 절차를 도시하는 흐름도이다.
본 수신 단계는, 전술한 2개의 클라이언트 간에 메시지 송수신이 이루어질 때의 클라이언트에 의한 메시지의 수신 단계와 유사하게 수행된다. 즉, 도 3에서 도시된 단계 S210, S220, S230, S232, S234, S240, S250, S260, S270, S280 및 S290은 각각 도 9에서 도시된 단계 S510, S520, S530, S532, S534, S540, S550, S560, S570, S580 및 S590에 대응한다. 단, 본 수신 단계에서는 미싱 메시지가 클라이언트 자신이 전송했던 메시지인가를 판단하는 단계(S542)가 포함되었고, 상기 단계(S542)로의 진입 과정과 상기 단계(S542)로부터의 이동 과정에 따른 차이가 있다.
우선, 클라이언트는 서버로부터 다른 클라이언트가 발생시킨 메시지를 수신한다(S510).
메시지가 통합 순번을 포함하는 것이 선택적인 경우, 상기 클라이언트는 상기 수신 메시지 내에 통합 순번이 포함되었는지를 확인한다(S520). 모든 메시지가 통합 순번을 포함하도록 구성된 경우 본 단계는 포함되지 않는다.
통합 순번이 포함되지 않은 경우, 상기 메시지는 사용자에게 전달된다(S550). 또한, 통합 순번이 포함되어있지 않으므로 다음 순서의 메시지가(즉, 더 큰 통합 순번을 가진 메시지가) 버퍼에 저장되어 있는지 여부를 판단(S560)할 필요없이 절차를 종료한다.
통합 순번이 포함된 경우, 다음 단계(S530)를 진행한다.
다음으로, 상기 클라이언트는 기존에 수신된 메시지들의 통합 순번 중 최대값과 상기 통합 순번을 비교한다(S530).
상기 비교의 결과 상기 통합 순번이 상기 최대값보다 작은 경우, 상기 메시지는 미싱 메시지(missing message)이다. 본 절차에서 미싱 메시지란, 자신보다 더 큰 통합 순번을 부여받은 메시지가 수신 클라이언트에게 전송되었음에도 불구하고 아직 수신되지 않은 메시지를 의미한다. 이 경우 다음 검사 단계(S532)가 실행된다.
상기 비교의 결과 상기 통합 순번이 상기 최대값보다 큰 경우, 상기 메시지가 기존에 수신된 메시지의 다음 순서의 메시지인지 여부를 검사한다(S540). 즉, 상기 수신된 메시지의 통합 순번이 상기 최대값보다 하나 큰 수인지 검사한다. 선택적으로, 상기 검사는 수신된 메시지의 순번까지 미싱 메시지가 없는지 여부를 검사하는 것으로 대체될 수 있다.
상기 검사의 결과 상기 수신된 메시지가 다음 통합 순번의 메시지인 경우, 상기 메시지는 사용자에게 전달된다(S550). 상기 전달은 화면 출력 등의 다양한 태양으로써 실행될 수 있다. 또한, 상기 통합 순번이 상기 최대값보다 크므로, 다음 순서의 메시지가 버퍼에 저장되어 있는지 여부를 판단(S560)할 필요없이 절차를 종료한다.
상기 검사의 결과 상기 수신된 메시지가 다음 통합 순번의 메시지가 아닌 경우, 상기 수신으로 인하여 미싱 메시지가 발생한 것이거나 다음 통합 순번이 상기 클라이언트가 전송하였던 메시지에게 부여된 것이다.
이 경우, 상기 클라이언트는 상기 미싱 메시지가 자신이 전송하였던 메시지인가를 확인한다(S542). 즉, 통합 순번이 4인 메시지를 수신한 상태의 클라이언트가 자신이 발생시킨 메시지를 전송하였고, 이후 통합 순번이 6인 메시지를 수신하였다. 이때, 상기 클라이언트는 자신이 전송한 메시지에게 통합 순번 5가 할당된 것인지, 아니면 다른 통합 순번 5인 메시지가 아직 전송되지 않은 것인지 확인하여야 한다. 상기 클라이언트는 전술한 통합 순번 피드백을 통해, 자신이 전송하였던 메시지가 상기 서버로부터 할당받은 통합 순번을 알 수 있다.
상기 확인의 결과, 상기 미싱 메시지가 자신이 전송하였던 메시지인 경우, 상기 클라이언트는 상기 미싱 메시지의 전송을 기다릴 필요가 없으며 상기 수신된 메시지를 사용자에게 전달해야 하는지 여부를 판단할 필요가 없다. 따라서, 상기 클라이언트는 상기 미싱 메시지가 전송된 것으로 처리하고, 상기 수신된 메시지를 사용자에게 전달한다(S550).
상기 확인의 결과, 상기 미싱 메시지가 자신이 전송하였던 메시지가 아닌 경우, 후술할 상기 미싱 메시지의 크기가 임계값보다 큰지를 비교하는 단계(S570)가 수행된다. 상기 미싱 메시지의 크기는 상기 미싱 메시지의 순번의 바로 앞뒤 통합 순번을 갖는 두 메시지의 통합 누적 크기를 비교하여 알 수 있다.
상기 확인의 대상이 되는 미싱 메시지가 복수 개인 경우, 각각의 미싱 메시지에 대해 상기 확인을 하여, 자신이 전송하였던 메시지는 이미 전송된 것으로 처리할 수 있다. 이 경우, 모든 미싱 메시지가 자신이 전송하였던 메시지이면 상기 클라이언트는 상기 수신된 메시지를 사용자에게 전달하고(S550), 그렇지 않으면 자신이 전송하지 않은 미싱 메시지의 크기가 임계값보다 큰 지를 비교하는 단계(S570)가 수행된다.
상기 수신된 메시지의 통합 순번이 상기 최대값보다 작은 경우, 상기 메시지의 수신으로 인해 기존의 메시지의 빠진 틈이 다 메꿔지는지 검사한다(S532). 즉, 상기 수신된 메시지가 상기 클라이언트의 유일한 미싱 메시지인지 검사한다.
상기 검사의 결과 상기 메시지의 수신으로 인해 빠진 틈이 다 메꿔지는 경우, 상기 메시지는 사용자에게 전달된다(S550). 또한, 상기 메시지의 다음 순서 메시지(즉, 상기 메시지의 통합 순번보다 더 큰 통합 순번을 가진 메시지)가 전달되지 않고 버퍼에 저장된 경우, 상기 버퍼에 저장된 메시지도 사용자에게 전달된다(S560).
상기 검사의 결과 상기 메시지의 수신으로 인해 빠진 틈이 다 메꿔지지 않은 경우 상기 메시지의 통합 순번과 미싱 메시지의 통합 순번을 비교한다(S534).
상기 비교의 결과 상기 메시지의 통합 순번이 미싱 메시지의 통합 순번보다 적은 경우, 상기 메시지의 이전 메시지들은 이미 사용자에게 전달된 것이다. 따라서, 상기 메시지는 사용자에게 전달된다(S550). 또한, 버퍼에 저장된 메시지 중 상기 메시지와 상기 미싱 메시지의 사이의 것도 사용자에게 전달된다(S560).
상기 비교의 대상이 되는 미싱 메시지는 미싱 메시지들 중 가장 적은 통합 순번을 가진 것이 될 수 있다.
상기 비교의 결과 상기 수신된 메시지의 통합 순번이 미싱 메시지의 통합 순번보다 큰 경우, 미싱 메시지의 크기와 임계값을 비교하는 단계(S570)가 진행된다. 상기 미싱 메시지의 크기는 수신된 메시지에 포함된 누적 메시지의 크기를 통해 비교할 수 있다.
미싱 메시지의 크기와 임계값을 비교하는 단계(S570)가 수행되면 그 결과에 따라 상기 수신된 메시지의 전달 여부가 결정된다.
상기 미싱 메시지의 크기가 임계값보다 클 경우, 클라이언트는 상기 미싱 메시지의 도착을 기다리지 않고 상기 수신된 메시지를 사용자에게 전달한다(S580). 상기 클라이언트는 상기 전달시 상기 사용자에게 미싱 메시지가 있다는 것을 통지할 수 있다. 상기 통지는 사용자 인터페이스(user interface; UI) 상에서의 추가적인 작업으로서 될 수 있다. 예를 들면 상기 클라이언트는 상기 미싱 메시지를 점선으로 표시할 수 있다.
상기 미싱 메시지의 크기가 임계값보다 작을 경우, 클라이언트는 상기 수신된 메시지를 바로 전달하지 않고, 상기 미싱 메시지가 상기 클라이언트에게 도착하여 사용자에게 전달된 이후에 상기 수신된 메시지를 전달한다. 따라서, 상기 메시지는 내부 버퍼에 저장된다.
상기 미싱 메시지와 상기 수신된 메시지 사이에 다른 메시지가 있는 경우(즉, 상기 미싱 메시지와 상기 수신된 메시지가 연속된 것이 아닌 경우), 상기 수신된 메시지는 상기 다른 메시지의 처리와 동일하게 처리될 수 있다. 즉, 상기 다른 메시지가 버퍼에 저장된 경우 상기 수신된 메시지도 버퍼에 저장되며, 상기 다른 메시지가 사용자에게 전달된 경우 상기 수신된 메시지도 사용자에게 전달된다.
미싱 메시지가 두 개 이상인 경우 상기 미싱 메시지들의 총 크기를 상기 비교의 대상이 되는 크기로 삼을 수 있다.
상기 전달(S550, S560 및 S580) 및 저장(S590) 단계는 단말의 지역 정책(local policy)에 따라 결정될 수 있다.
이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이와 같은 특정 실시예에만 한정되는 것은 아니므로, 본 발명은 본 발명의 사상 및 특허청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있다.

Claims (13)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 복수의 단말들이 참가하는 그룹 세션을 통해 서버를 경유하여 메시지들을 송수신하는 방법으로서, 상기 방법은 상기 복수의 단말들 중 제1단말에 의해 수행되며,
    다른 단말들로 전송될 메시지를 생성하여 상기 서버로 전송하는 단계, 상기 전송된 메시지는 상기 제1단말에 의해 할당된 단말-특정 순번과 누적 크기를 포함함;
    상기 서버로부터 통합된 순번과 통합 누적크기를 포함하는 메시지를 수신하는 단계, 상기 수신된 메시지는 상기 다른 단말들 중 하나에 의해 생성되고 전송된 것이고, 원 메시지로부터 분할된 복수의 메시지들 중 하나이며, 메시지 세션 릴레이 프로토콜(message session relay protocol; MSRP)을 사용하여 전송됨;
    하나 이상의 새로운 미싱(missing) 메시지가 상기 수신된 메시지로 인해 발생했는지 여부를 판단하는 단계;
    상기 하나 이상의 새로운 미싱 메시지가 상기 수신된 메시지로 인해 발생했다면, 상기 방법은:
    상기 하나 이상의 새로운 메시지가 상기 제1단말에 의해 전송되었던 것인지 여부를 판단하는 단계;
    상기 하나 이상의 새로운 메시지가 상기 제1단말에 의해 전송되었던 것이면, 상기 수신된 메시지를 출력하는 단계를 포함하고,
    상기 하나 이상의 새로운 메시지가 상기 제1단말에 의해 전송되었던 것이 아니면, 상기 수신된 메시지를 처리할 방식을 결정하기 위해, 상기 수신된 메시지의 통합 누적 크기와 상기 제1단말에 의해 이미 수신된 메시지들의 통합 누적 크기에 기반하여 상기 하나 이상의 새로운 메시지의 전체 크기를 추정하는 단계;
    상기 추정된 하나 이상의 새로운 메시지의 전체 크기가 미리 정의된 임계치보다 크면, 상기 수신된 메시지를 출력하는 단계; 및
    상기 추정된 하나 이상의 새로운 메시지의 전체 크기가 미리 정의된 임계치보다 크지 않으면, 상기 수신된 메시지를 상기 제1단말의 내부 버퍼에 저장하는 단계를 포함하는 것을 특징으로 하는 메시지 송수신 방법.
  6. 삭제
  7. 제 5항에 있어서,
    상기 서버로부터 피드백 메시지를 수신하는 단계를 더 포함하고,
    상기 피드백 메시지는 상기 제1단말이 전송한 특정 순번을 갖는 메시지에게 상기 서버가 부여한 통합된 순번을 가리키는 정보를 포함하는 것을 특징으로 하는 메시지 송수신 방법.
  8. 제 5항에 있어서,
    상기 수신된 메시지는 상기 제1단말이 마지막으로 전송한 메시지의 순번 및 상기 마지막으로 전송한 메시지에게 상기 서버가 부여한 통합된 순번을 가리키는 피드백 정보를 포함하는 것을 특징으로 하는 메시지 송수신 방법.

  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
KR1020100010126A 2009-06-12 2010-02-03 CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치 KR101589561B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100010126A KR101589561B1 (ko) 2009-06-12 2010-02-03 CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치
US13/376,095 US9491003B2 (en) 2009-06-12 2010-06-10 Method and apparatus for keeping orders among messages of discrete media type in CPM session
PCT/KR2010/003740 WO2010143903A2 (en) 2009-06-12 2010-06-10 Method and apparatus for keeping orders among messages of discrete media type in cpm session

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US18638309P 2009-06-12 2009-06-12
US61/186,383 2009-06-12
US21939009P 2009-06-23 2009-06-23
US61/219,390 2009-06-23
KR1020100010126A KR101589561B1 (ko) 2009-06-12 2010-02-03 CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100133882A KR20100133882A (ko) 2010-12-22
KR101589561B1 true KR101589561B1 (ko) 2016-01-28

Family

ID=43309378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100010126A KR101589561B1 (ko) 2009-06-12 2010-02-03 CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치

Country Status (3)

Country Link
US (1) US9491003B2 (ko)
KR (1) KR101589561B1 (ko)
WO (1) WO2010143903A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101925017A (zh) * 2009-06-17 2010-12-22 中兴通讯股份有限公司 一种大消息模式融合ip消息的传送方法
KR101627256B1 (ko) 2015-01-08 2016-06-03 (주)넷텐션 다수 분산서버를 구비한 네트워크 통신의 세션 이양 방법
US10320737B2 (en) * 2015-06-29 2019-06-11 Avaya Inc. Device and method for temporal correlation of communication types
US10153993B2 (en) * 2016-07-18 2018-12-11 T-Mobile Usa, Inc. RCS origination forking
US10237212B2 (en) 2016-07-18 2019-03-19 T-Mobile Usa, Inc. RCS origination forking
US10397176B2 (en) * 2018-01-10 2019-08-27 Syniverse Technologies, Llc Method and system for interworking of RCS universal profile and pre-universal profile clients
US20190238605A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Verification of streaming message sequence
CN109729061B (zh) * 2018-05-04 2021-09-21 平安科技(深圳)有限公司 消息处理方法、装置、设备及可读存储介质
US11811943B2 (en) * 2020-04-01 2023-11-07 Lg Electronics Inc. Verification of messages using hash chaining

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080262991A1 (en) 2005-07-01 2008-10-23 Harsh Kapoor Systems and methods for processing data flows
US20080270629A1 (en) 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
US20080304483A1 (en) 2004-08-06 2008-12-11 Ipeak Networks Incorporated System and method for achieving accelerated throughput

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541995A (en) * 1994-04-18 1996-07-30 Apple Computer Inc. Method and apparatus for decoding non-sequential data packets
US20020046250A1 (en) * 2000-10-17 2002-04-18 Nick Nassiri Certified and registered electronic mail system
US7412486B1 (en) * 2001-12-14 2008-08-12 Edial, Inc. Methods and apparatus providing a web based messaging system
WO2005041600A1 (en) * 2003-10-23 2005-05-06 Bsite International Ltd Method and system for distributed mobile collaboration
KR100713394B1 (ko) * 2004-06-16 2007-05-04 삼성전자주식회사 이동통신 시스템에서 전송일련번호와 타임스탬프를 이용한 상향링크 데이터 패킷들의 재정렬 방법 및 장치
KR20060067696A (ko) 2004-12-15 2006-06-20 주식회사 팬택앤큐리텔 전송 중단된 모바일 컨텐츠의 이어받기 방법
KR100643805B1 (ko) 2005-11-30 2006-11-10 주식회사 팬택 순서 태그를 포함한 메시지 전송 방법 및 상기 방법을수행하는 이동통신 단말기
CA2637386A1 (en) 2006-01-17 2007-07-26 Send-M Ltd. Apparatus and method for many-to-many mobile messaging
US7792153B2 (en) * 2006-05-08 2010-09-07 International Business Machines Corporation Sequencing multi-source messages for delivery as partial sets to multiple destinations
KR100865118B1 (ko) 2006-07-04 2008-10-23 드림소프트(주) 메시지 부분 수신방법 및 그에 따른 휴대용 단말기
KR100966047B1 (ko) * 2006-08-25 2010-06-28 삼성전자주식회사 통신시스템에서 미디어 송신 방법 및 장치
EP1947872B1 (en) * 2007-01-22 2014-04-16 Alcatel Lucent Software defined radio base station and configuration method
WO2009036461A2 (en) * 2007-09-13 2009-03-19 Lightspeed Audio Labs, Inc. System and method for streamed-media distribution using a multicast, peer-to-peer network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080304483A1 (en) 2004-08-06 2008-12-11 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US20080262991A1 (en) 2005-07-01 2008-10-23 Harsh Kapoor Systems and methods for processing data flows
US20080270629A1 (en) 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers

Also Published As

Publication number Publication date
KR20100133882A (ko) 2010-12-22
WO2010143903A2 (en) 2010-12-16
US9491003B2 (en) 2016-11-08
WO2010143903A3 (en) 2011-03-31
US20120084377A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
KR101589561B1 (ko) CPM 세션에서 이산 미디어 타입(discrete media type)의 메시지 전달 순서를 지키는 방법 및 장치
US8478825B2 (en) Method and arrangment in a communication system for delivering messages to a recipient
US9800680B2 (en) File transfer system, device and method
EP1929730B1 (en) Method and apparatus for instant messaging
US9166937B2 (en) Peer-to-peer email
US9049165B2 (en) Method for delivering message based on CPM service and server thereof
JP2009512931A (ja) オフラインインスタントメッセージのリトリーブ
WO2011029300A1 (zh) 即时消息与电子邮件互通的方法与系统
WO2009097713A1 (zh) 在网络电视业务系统中实现信息共享的方法和终端
US20060242246A1 (en) Managing the delivery of queued instant messages
WO2006023084A2 (en) Multimedia based caller id to identify an instant messaging client/user
EP2560329B1 (en) Method and processing system for routing a message request
US10382389B2 (en) System and method for SMTP and alternative email protocol interoperability
CN102340456B (zh) 互通网关系统的通信方法及互通网关系统
US20090063638A1 (en) Method and Apparatus for Processing Messages in Messaging System
CA2710324C (en) Method and apparatus for forwarding voicemail
EP2690833B1 (en) Media message sending method, device and system
WO2008148339A1 (fr) Procédé, agent d&#39;utilisateur servant à traiter un message d&#39;un modèle de dispositif de messagerie
WO2013178096A1 (zh) 一种消息发送方法、系统及客户端
KR20110113751A (ko) 준 실시간 통신을 위한 방법 및 장치
JP2007219721A (ja) 電子メール端末、プレゼンスサーバ、電子メールシステム、電子メール配信方法およびプログラム
US20150120843A1 (en) Method and Device to Store and Forward a File Thumbnail to an Initially Unavailable Client
KR101445390B1 (ko) 통합 메시징 서비스에서 수신 메시지의 처리 상태 정보공유 방법 및 시스템
KR101458638B1 (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
LAPS Lapse due to unpaid annual fee