KR20110066087A - 컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합 - Google Patents

컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합 Download PDF

Info

Publication number
KR20110066087A
KR20110066087A KR1020100119880A KR20100119880A KR20110066087A KR 20110066087 A KR20110066087 A KR 20110066087A KR 1020100119880 A KR1020100119880 A KR 1020100119880A KR 20100119880 A KR20100119880 A KR 20100119880A KR 20110066087 A KR20110066087 A KR 20110066087A
Authority
KR
South Korea
Prior art keywords
message
transmission
previous transmission
substring
computer
Prior art date
Application number
KR1020100119880A
Other languages
English (en)
Other versions
KR101709791B1 (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110066087A publication Critical patent/KR20110066087A/ko
Application granted granted Critical
Publication of KR101709791B1 publication Critical patent/KR101709791B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • 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/216Handling conversation history, e.g. grouping of messages in sessions or threads

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

일 양상에서, 중복 메시지를 통합하는 것은 전송을 수신하고, 전송과 이전 전송의 차이를 계산할 수 있다. 이전 전송은 차이의 표시를 포함하도록 변경될 수 있다.

Description

컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합{CONSOLIDATING DUPLICATE MESSAGES FOR A SINGLE DESTINATION ON A COMPUTER NETWORK}
본 발명은 컴퓨터 시스템 및 컴퓨터 네트워크에 관한 것으로, 보다 구체적으로는 컴퓨터 네트워크 상에서 단일 착신지에 대한 중복 메시지를 통합하는 것에 관한 것이다.
이메일, 음성메일 또는 다른 메시지를 사용하는 사람은 종종 다수의 발신지로부터 동일한 메시지를 거의 수신한다. 예컨대, 인터넷 상에서, 수신기로의 값이 거의 없는 메시지(스팸)는 다수의 착신지로 포워딩된다. 또한, 사람은 종종 다수의 이메일 주소를 가지며 이메일 주소를 자주 변경한다. 따라서, 사용자는 다수의 수신함에서 동일한 이메일을 수신할 수 있다. 중복 메시지는, 메시지가 중복되는지 여부를 판단하도록 메시지를 검사하는 것을 강요함으로써 노동력의 생산성을 감소시킨다. 중복 메시지는 또한 저장 공간, 네트워크 대역폭 및 처리 시간을 사용하며, 이는 메시징 시스템의 효율을 감소시키고 메시징 네트워크를 작동시키는 비용을 증가시킨다.
문제점에 대한 기존의 수동 솔루션은 누가 특정 유형의 이메일을 전송할 수 있는지에 대한 정책을 수립하는 것이다. 다른 수동 솔루션은 수신자가 하나를 제외한 모든 발신자에게 그들이 중복 수신하고 있거나 메일링 리스트로부터 삭제한다고 통지하는 것이지만, 이는 중복 메시지가 반복적으로 전송되고 있을 때에만 동작한다. 사용자 순응에 의존하는 이 방법 및 다른 방법은 에러가 발생하기 쉽고, 비효율적이며, 비싸고, 구현하기 어려우며, 종종 적용가능하지 않다. 다른 기존의 솔루션은 클라이언트 서버 시스템 내의 클라이언트 상의 메시징 저장 시스템 내에서 중복을 발견하는 프로그램을 구동하는 것이다. 그러나, 메시지가 포워딩되고, 다른 발신지로부터 오며, 시그니처 또는 다른 발신자 주석 등을 가지므로, 메시지는 흔히 정확히 중복되지 않는다. 전형적으로 첨부물에 사용되는 또 다른 기존의 솔루션은 서버 상의 첨부물의 중복을 검출하고 저장하는 것이다. 그러나, 사용자는 여전히 다수의 이메일을 수신하며 중복 콘텐츠에 대한 참조만으로 판독해야 한다. 또한, 이는 일반적으로 이메일 메시지의 첨부물에 대해서만 작용한다.
통합 통신을 제공하는 방법 및 시스템이 제공된다. 일 양상에서, 방법은 전송을 수신하는 단계와, 전송과 이전 전송의 차이를 계산하는 단계를 포함할 수 있다. 방법은 또한 전송과 이전 전송의 차이의 표시를 저장하는 단계를 포함할 수 있다.
일 양상에서 통합 통신을 제공하는 시스템은 전송과 이전 전송의 차이를 계산하도록 동작가능한 모듈을 포함할 수 있다. 모듈은 또한 전송과 이전 전송의 차이의 표시를 저장하도록 동작가능할 수 있다.
본 명세서에 설명된 하나 이상의 방법을 수행하도록 기계에 의해 실행가능한 인스트럭션의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체 및/또는 프로그램 저장 장치도 제공될 수 있다.
또한, 다양한 실시예의 특징뿐만 아니라 구조 및 동작은 첨부 도면을 참조하여 상세히 후술된다. 도면에서, 동일한 참조 번호는 동일하거나 기능적으로 유사한 요소를 나타낸다.
도 1은 본 발명의 일 실시예에서 중복 메시지를 검출하고 압축하는 시스템의 구성요소를 도시하는 블록도이다.
도 2는 일 실시예에서 본 발명의 시스템의 기능적 흐름을 도시하는 순서도이다.
도 3은 본 발명의 일 실시예에서 중복 압축 처리기의 흐름 제어를 도시한다.
도 4는 본 발명의 일 실시예에서 유사한 메시지를 불러오는(예컨대, 도 3의 302) 흐름 제어를 도시하는 도면이다.
도 5a는 예시적인 메시지를 도시하고 도 5b는 도 5a에 도시된 예시적인 메시지의 부분적 중복 메시지를 도시한다.
도 5c는 도 5a 및 도 5b에 도시된 메시지를 통합하는 통합 메시지를 도시한다.
도 6a는 유사한 메시지를 검출하는 데 사용될 수 있는 예시적인 템플릿을 도시한다.
도 6b는 도 6a의 템플릿을 채우는 데 사용되는 스트링 값을 가진 메시지를 도시한다.
도 7은 본 발명의 시스템 및 방법이 수행되거나 실행될 수 있는 컴퓨터 시스템의 예를 도시한다.
도 8은 본 발명의 일 실시예에서 애플리케이션 인터페이스에 대한 흐름 제어를 도시하는 도면이다.
도 9는 본 발명의 일 실시예에서 자식 서브윈도우 생성 루틴에 대한 흐름 제어를 도시하는 도면이다.
본 발명은 일 양상에서 동일한 주소에 대해 예정된 메시지의 유사 중복(near-duplicate)을 발견하고 그 메시지를 하나로 통합하는 것을 설명한다. 유사 중복 메시지들 사이의 차이의 표시도 제공될 수 있다. 만일 사용자가 메시지를 읽지 않거나 소비하지 않았으면, 사용자는 단일 메시지만을 볼 것이다. 메시지의 메타데이터(헤더 또는 필드로서 지칭됨) 및/또는 바디는 유사한 이전 메시지의 바디 및/또는 헤더에 기초하여 변경될 수 있다. 예컨대, 유사한 메시지의 수가 제목에 반영될 수 있다. 각각의 유사한 메시지마다, 유사점 또는 차이가 강조된 헤더 정보 및/또는 바디가 연결되거나, 부착되거나, 이어지거나 원시 메시지와 연관 또는 조합될 수 있다.
예컨대, 메일 RFC 822 표준은 다수의 사용자로부터 메일이 전송되게 하므로, "발신:" 헤더에 부가할 수 있다. 만일 사용자가 이미 메시지를 읽었고 추가적인 유사 중복이 검출되면, 메시지의 상태를 읽지 않음으로 변경하는 것, 새로운 읽지 않은 메시지의 수를 나타내도록 제목을 변경하는 것과 같이 메타데이터를 변경하는 것 및/또는 읽지 않은 차이만을 강조하는 것과 같은 메시지의 바디를 변경하는 것과 같은 표시가 사용자에게 주어질 수 있다.
일 양상에서 방법은 가령, 전송을 수신하고 새로운 전송과 이전 전송 사이의 차이를 계산함으로써 통합 통신을 제공할 수 있다. 이전 전송은 상이한 새로운 콘텐츠의 표시를 포함할 수 있다. 이전 전송 중 임의의 전송은 전송이 새로운 전송과 동일한 데이터 또는 동일한 데이터의 일부를 포함하는지를 판단하도록 분석될 수 있다. 다른 양상에서, 가령, 데이터의 일부가 그 콘텐츠가 오버랩되면, 이전 전송은 새로운 전송과 조합되거나 병합될 수 있다. 조합은 그룹에 통합하거나, 부착하거나, 잇는 것 등 또는 이들의 임의의 조합을 포함할 수 있다.
전송의 예는 전자 메일(이메일), 인스턴트 메시징(IM) 및 문자 메시징(이동 전화기 상에서)을 포함할 수 있지만, 이들로 제한되지 않는다. 메시지의 차이는 추가된 데이터, 변경된 데이터, 삭제된 데이터, 추가된 발신자, 추가된 수신자, 전송 시간/날짜, 추가된 메타데이터(데이터의 바이트 수), 변경된 메타데이터 등 또는 이들의 조합을 포함할 수 있지만, 이들로 제한되지 않는다.
상이한 새로운 콘텐츠의 표시는 예컨대, 이전 전송 상태를 (예컨대, 읽지않음으로) 변경하고, 상이한 새로운 콘텐츠를 강조하며(예컨대, 새로운 발신지를 강조함), 콘텐츠를 재순서화하고(예컨대, 상이한 새로운 콘텐츠를 먼저 배치함), 그룹을 생성함으로써 또는 이들의 조합에 의해 주어질 수 있다.
또한, 새로운 전송은 가령, 이전 전송과 조합된 후에 또는 예컨대, 새로운 전송이 이전 메시지와 동일하면 삭제될 수 있다. 예컨대, 증분 변경, 발신자의 시간순서 리스트, 메시지 시간/날짜, 전송의 수, 메타데이터 등 또는 이들의 조합을 나타내는 요약 또는 보고가 제공될 수 있다. 또한, 모든 통합의 로그가 생성되고 저장될 수 있다. 가령, 유효성 및 보안에 대한 검증을 가능하게 하도록 통합된 전송이 전자적으로 서명될 수 있다. 일 양상에서, 통합되어야 하는 파라미터를 지정하거나 선택할 수 있다. 예는 "발신자 X에 의해 포워딩되었던 주석(note)만을 통합한다"고 지정하는 룰일 수 있다.
도 1은 본 발명의 일 실시예에서 중복 메시지를 검출하고 압축하는 시스템의 구성요소를 도시하는 블록도이다. 시스템(102)은 가령, 마이크로소프트에 의해 판매되는 운영 시스템 및 서버 애플리케이션 슈트(suite), 예컨대, Window® XP 또는 리눅스 운영 시스템을 구동하는 예컨대, IBM에 의해 판매되는 ThinkPad® 또는 PowerPC® 제품과 같은, 프로그램 코드를 로딩하고 실행할 수 있는 임의의 컴퓨팅 노드를 포함할 수 있는 컴퓨터 시스템일 수 있지만, 이것으로 제한되지 않는다. 시스템 로직은 원격 발신지(예컨대, 네트워크 파일 시스템), 로컬 영구 광학 (CD-ROM), 자기 저장장치(예컨대, 디스크) 또는 저장 장치(116)로부터 CPU(114)에 의한 실행을 위해 메모리(104)로 로딩되는 컴퓨터 실행가능한 코드로서 구현될 수 있다. 시스템(102)은 다른 네트워크 액세스가능 서비스로 전달하기 위해 네트워크 인터페이스(118)도 포함할 수 있다. 그러한 인터페이스(118)는 하드와이어링 장치, 예컨대, 동축 케이블, 무선 IP 및 D-Link®로부터 DVG-1402S 광대역 전화 서비스 VoIP 라우터에 의해 제공된 것과 같은 VoIP를 통한 이더넷을 포함할 수 있지만, 이것으로 제한되지 않는다. 메모리(104)는 애플리케이션 인터페이스(108), 중복 압축 처리기(110) 및 중복 압축기 데이터베이스(112)와 같은 로직 또는 기능적 구성요소(106)를 제공하는, 컴퓨터 판독가능 인스트럭션 데이터 구조, 프로그램 모듈 및 애플리케이션 인터페이스를 포함할 수 있다.
도 1은 컴퓨터 시스템 구성요소(102) 내에 존재하는 기능적 구성요소를 도시하지만, 본 발명의 시스템 및 방법은 그 구성으로만 제한되지 않음을 알아야 한다. 따라서, 구성요소는 분산 환경에서 상이한 플랫폼 상의 네트워크에 걸쳐 분산되고/분산되거나 클라우드(cloud) 컴퓨팅 환경에서 구성된다. 또한, 도 1은 CPU(114)를 도시하지만, 시스템은 다수의 프로세서 및/또는 코어를 포함할 수 있다.
애플리케이션 인터페이스(108)는 통합 방식의 메시지를 포함하는 메시지를 렌더링하는 그래픽 사용자 인터페이스일 수 있다.
중복 압축 처리기(110)는 메시지를 식별된 부분의 리스트로 감소시키거나 압축할 수 있다.
중복 압축기 데이터베이스(112)는 메시지 및 압축된 메시지에 대한 정보를 저장하는 데이터 및 데이터 구조를 포함할 수 있다.
도 2는 일 실시예에서 본 발명의 시스템의 기능적 흐름을 도시하는 순서도이다. 도 2에 도시된 로직은 시스템의 메시지 처리기에 의해 수신된 메시지를 사용자에게 전송되기 전에 인터셉트할 수 있다. 단계(202)에서, 시스템은 입력을 기다린다. 단계(204)에서, 입력이 메시지인지 여부가 판정된다. 만일 입력이 메시지이면, 단계(206)에서 도 3 내지 도 6b와 관련하여 상세히 설명되는 중복 압축 처리기(예컨대, 도 1의 110)가 호출된다. 만일 처리기(110)가 유사한 메시지를 발견하면, 처리기는 메시지의 부모-자식 관계의 구조, 예컨대, 선형 구조를 생성한다. 다수의 자식이 존재할 수 있다. 또한, 메시지들 사이의 관계를 나타내도록 나무 구조가 생성될 수 있다. 단계(206)에서 중복 압축 처리기의 완료에 이어, 제어는 단계(202)로 계속된다.
만일 입력이 메시지가 아니면, 단계(207)에서 입력이 읽지 않은 메시지에 대한 요청인지 여부가 판정된다. 만일 예라면, 단계(208)에서, 데이터베이스(112)로부터 이전 메시지와 병합된 새로운 메시지로 구성된 통합 메시지를 포함하는 읽지 않은 모든 메시지의 렌더링을 불러오고 리턴하는 애플리케이션 인터페이스(108)가 호출된다. 단계(208)에서 애플리케이션 인터페이스의 완료에 이어, 제어는 로직이 다른 입력을 기다리는 단계(202)로 계속된다.
만일 단계(207)가 입력이 읽지 않은 메시지에 대한 요청이 아니라고 판정하면, 로직은 다른 로직을 처리하는 이종 처리기가 호출되는 단계(210)로 계속되며, 그 후 단계(202)에서 로직은 다른 입력을 기다린다.
도 5a는 예시적인 메시지를 도시하고 도 5b는 도 5a에 도시된 예시적인 메시지의 부분적 중복 메시지를 도시한다. 도 5c는 도 5a 및 도 5b에 도시된 메시지를 통합하는 통합 메시지를 도시한다. 도 5a의 메시지 M1(502)과 도 5b의 메시지 M2(504)의 차이가 식별되고 메시지 M2는 압축된다. 도 5c의 통합 메시지(506)는 메시지 M1(502) 및 압축된 메시지 M2(508)를 포함한다. 통합 메시지는 또한 메시지에 대한 정보를 포함하는 메타데이터를 포함할 수 있다. 예컨대, 510에 도시된 메타데이터는 통합의 데이터를 포함한다. 통합 메시지의 메터데이터 부분에 다른 정보가 포함될 수 있다.
도 6a는 유사한 메시지를 검출하는 데 사용될 수 있는 예시적인 템플릿(template)을 도시한다. 템플릿(602)은 고정된 텍스트, 포맷을 제공하며 값으로 채우는 곳을 제공한다. 가령, 템플릿은 헤더 부분(604)과 바디 부분(606)을 포함할 수 있다. 헤더 부분(604)은 라벨(608) 및 예컨대, 스트링 값으로 채울 수 있는 채울 수 있는 부분(610)을 가진 필드를 포함할 수 있다. 헤더 부분(604) 내의 필드의 예는 "수신(to)" 필드, "발신(from)" 필드, "날짜" 필드, "cc" 필드, "bss" 필드, "제목" 필드 등을 포함할 수 있지만, 이것으로 제한되지 않는다. 템플릿(602)은 도 6b에 도시된 메시지로부터의 대응하는 값으로 채워질 수 있다.
후속하는 표 또는 이와 유사한 데이터 구조는 유사한 메시지를 검출하고/검출하거나 압축된 메시지를 생성할 때 사용될 수 있다. 본 명세서에서 메시지 표로 지칭되는 표 1은 메시지 내의 서브스트링에 대한 참조를 저장하며, "전", "동일" 및 "다름" 열을 포함할 수 있다. 표 내의 각각의 행은 단일 메시지에서 발견된 서브스트링을 보유할 수 있다. "전체" 열은 표(예컨대, 표 2) 내의 서브스트링에 대한 식별자의 리스트를 저장한다. "동일" 열은 만일 주어진 메시지가 통합 메시지 표 내의 부모의 자식으로서 리스팅되면, "동일" 열이 부모와 자식 사이에서 동일한 스트링의 식별자를 리스팅하도록, 서브스트링 표 내의 서브스트링에 대한 식별자의 리스트를 저장한다. 예컨대, 메시지 표에서, 메시지 1은 메시지 2와 서브스트링 1을 공유한다. "다름" 열은 만일 주어진 메시지가 통합 메시지 표 내의 부모의 자식으로서 리스팅되면, "다름" 열이 부모와 자식 사이에서 상이한 스트링의 식별자를 리스팅하도록, 서브스트링 표 내의 서브스트링에 대한 식별자의 리스트를 저장한다.
"전체" 열 내의 서브스트링은 템플릿(602) 또는 이와 유사한 데이터 구조로부터 입력 메시지[#]를 재생성하는 데 충분할 수 있다.
"상태" 열은 메시지가 읽혀졌는지 읽혀지지 않았는지 여부를 나타낸다. 이 예에서, 상태 1은 읽은 상태를 나타내고 상태 0은 읽지않은 상태를 나타낸다. 상태를 나타내는 데 임의의 다른 심볼 또는 값이 사용될 수 있다.
Figure pat00001
본 명세서에서 서브스트링 표로서 지칭되는 표 2는 서브스트링을 지정한다. 서브스트링 표는 메시지 내의 파싱된(parsed) 서브스트링을 저장하고, 각각의 서브스트링을 식별자로 인덱싱하거나 매핑한다. 서브스트링 표의 "메시지" 열은 서브스트링을 포함하는 메시지를 식별한다. 따라서, 예컨대, 표 2에 도시된 예에 따르면, 서브스트링 "당신은 이것을 보았습니까?"는 서브스트링 식별자 "1"을 가지며, 메시지 식별자 1을 가진 메시지의 일부이다. 이와 유사하게, 서브스트링 "전체 회의"는 서브스트링 식별자 "2"를 가지며 메시지 양자 모두, 즉, 메시지 식별자 "1"에 의해 식별된 메시지 및 메시지 식별자 "2"에 의해 식별된 메시지에 포함된다.
Figure pat00002
본 명세서에서 통합 메시지 표로 지칭되는 표 3은 부모 메시지, 자식 메시지 및 통합 날짜에 대한 메시지 식별자를 포함할 수 있다. 가령, 식별자 "1"을 가진 메시지는 식별자가 "2"인 자식 메시지를 갖는다. 표 내의 이 엔트리는 메시지 1과 2가 유사한 메시지임을 나타내고, 메시지 2가 메시지 1로 통합되었음을 나타낸다. cdate 열은 통합 날짜를 지정한다. 통합 메시지에 대한 다른 정보는 이 표에 포함될 수 있다.
Figure pat00003
본 명세서에서 필러 표로서 지칭되는 표 4는 서브스트링에 대한 라벨을 식별한다. "값" 열은 서브스트링 표(표 2) 내의 서브스트링을 인덱싱하는 데 사용될 수 있는 서브스트링 식별자를 나타낸다. "메시지" 열은 메시지 표(표 1) 내의 메시지를 인덱싱하는 데 사용될 수 있는 식별자를 나타낸다. 메시지 열 내의 메시지 식별자 및 값 열 내의 서브스트링 식별자가 주어지면, 라벨 열 내의 라벨을 룩업할 수 있다.
Figure pat00004
도 3은 본 발명의 일 실시예에서 중복 압축 처리기(예컨대, 도 1의 110 또는 도 2의 206)의 흐름 제어를 도시한다. 중복 압축 처리기는 메시지를 식별된 부분의 리스트로 축소할 수 있다. 식별된 부분은 도 6a에 도시된 템플릿에 지정된 것일 수 있다. 각각의 부분은 "유사 메시지"의 중복인지 "유사 메시지"와 다른 것인지 여부의 표시를 갖는다. 가령, 충분히 유사한 메시지 m은 S(m)>R을 가지며, S는 유사성 함수이고, m은 메시지이며, R은 애플리케이션 지정 임계치이다.
단계(302)에서, 가령, 현재의 입력 메시지와의 몇몇 공통성을 가진 메시지의 데이터베이스로부터 유사 메시지가 검색된다. 단계(304)에서, 단계(302)에서 검색된 유사 메시지가 충분히 유사한지 여부, 예컨대, 사전결정된 유사성 임계치를 만족시키는지 여부가 판정된다. 만일 메시지가 충분히 유사하지 않거나 사전결정된 임계치를 만족시키지 않는다고 판정되면, 로직 또는 프로세서는 종료되고, 현재의 입력 메시지는 애플리케이션 인터페이스를 통과한다.
일 양상에서, 유사성 임계치는 메시지가 충분히 유사한지 여부를 판정하는 데 사용될 수 있다. 이 실시예에서, 유사성 임계치는 2 개의 메시지 사이에서 공통으로 다수의 부분의 카운트에 기초할 수 있다. 만일 카운트가 2 개의 메시지 내의 전체 조합 수 부분의 적어도 일부의 고정된 백분율이 아니면, 메시지는 충분히 유사하지 않다. 예컨대, 전형적으로 50% 및 80%가 넘는 백분율은 양호한 디폴트 값이다. 그러나, 다른 유사성 임계치가 사용될 수 있다. 가령, 가중치가 템플릿 라벨에 의해 결정되는 가중 유사성 임계치가 사용될 수 있다. 라벨 가중치의 예는
수신: - 1
발신: - 3
제목 - 2
바디: - 4
를 포함한다.
다른 방안은 각각의 개별 워드 또는 구를 가중화할 수 있다.
만일 메시지가 충분히 유사하다고 판정되면, 단계(306)에서 현재의 입력 메시지는 검색된 메시지에서 발견된 유사 메시지와 자식 관계를 가지도록 설정된다. 만일 하나보다 많은 유사 메시지가 발견되면, 가장 유사한 메시지가 사용될 수 있다. 통합 메시지 표는 부모로서 유사한 메시지의 식별자로 갱신되고 자식으로서 현재의 메시지의 식별자로 갱신된다. 따라서 현재의 입력 메시지의 적어도 일부는 예컨대, 무(nothing)(즉, 그 부분은 완전히 제거됨), 부분이 제거됨을 나타내는 표시 또는 생략부호, 원시 부분의 압축, 또는 유사 메시지 내의 대응 부분에 대한 참조, 또는 이들의 임의의 조합으로 압축될 수 있다. 압축된 메시지를 수신하는 애플리케이션 인터페이스는 유사 메시지 내의 대응하는 부분에 대한 참조를 사용하여, 압축된 메시지로부터 현재의 입력 메시지를 재구성할 수 있다.
일 양상에서, 가령, 본 명세서에서 통합 메시지 표로 지칭되는 표는 통합 메시지 표 내에 부모 및/또는 자식 엔트리를 추가하도록 갱신될 수 있다. 표 3은 통합 메시지 표의 예를 도시한다. 부모 식별자는 메시지 표 또는 이와 유사한 표(예컨대, 표 1) 내의 유사 메시지를 식별하고, 자식 식별자는 메시지 표 또는 이와 유사한 표(예컨대, 표 1) 내의 입력 메시지를 식별한다. 서브스트링 표의 "서브스트링" 열 내에서 스트링 또는 서브스트링을 발견하고 서브스트링 표의 "메시지" 열 내에서 대응하는 메시지의 리스트를 룩업함으로써 매핑이 수행된다.
단계(308)에서, 입력 메시지의 다음 부분이 검색된다. 예컨대, 부분은 메시지 템플릿(예컨대, 도 6a) 내에 도시된 구조에 따라 분할된 메시지의 부분을 지칭한다. 예를 들어, 바디(606)의 서브스트링은 메시지의 일부분이고 검색될 수 있다. 다른 예로써, 필러 표 내의 부분에 대한 식별자가 검색된다. 단계(310)에서, 만일 다음 부분이 중복이라고 결정되면, 즉, 유사 메시지에서와 동일하다고 결정되면, 방법은 단계(312)로 진행된다. 단계(312)에서, 중복 부분이 압축 부분으로 대체되고, 방법은 단계(308)로 리턴하여 입력 메시지의 더 많은 부분을 처리한다. 가령, 단계(312)에서, 필러 표 내의 부분에 대한 식별자가 메시지 표 내의 "동일" 열로 저장될 수 있다. 만일 그 부분이 중복이 아니면, 단계(314)에서 부분은 다름으로서 로깅되거나 등록된다. 가령, 필러 표 내의 부분에 대한 식별자는 메시지 표 내의 "다름" 열로 저장될 수 있다. 단계(308, 310, 312, 314)에서 입력 메시지의 모든 부분을 처리한 후에, 단계(316)에서 로깅된 정보에 대한 임의의 요약 데이터(메타데이터로도 지칭됨)가 저장된다. 예를 들어, 현재 날짜 및 시간이 통합 메시지 표의 "cdate" 열로 저장될 수 있다.
도 4는 본 발명의 일 실시예에서 유사 메시지를 검색(예컨대, 도 3의 단계(302))하는 제어의 흐름을 도시하는 도면이다. 단계(402)에서, 예컨대, 602에 도시된 템플릿을 사용하여 입력 메시지의 다음 부분이 추출된다. 메시지로부터 부분을 추출하는 임의의 방법이 사용될 수 있다. 부분은 또한 예컨대, 라벨, 예컨대, "수신:"을 매칭한 후 예컨대, 610에 도시된 메시지의 라인의 끝으로 스트링을 추출함으로써 추출될 수 있다. 입력 메시지의 다음 부분을 추출하는 다른 방법은 예컨대, 메시지의 바디(606) 내의 텍스트의 각각의 라인을 추출하는 것이다. 그러나, 바디로부터 다음 단락을 얻거나 당업자에게 알려져 있는 임의의 수의 파싱 기술을 사용하는 것과 같은 다른 방법이 사용될 수 있다. 템플릿은 다수의 템플릿 중 하나일 수 있다. 가령, 각각의 애플리케이션, 각각의 컴퓨팅 환경, 서버 환경 등마다 템플릿이 존재할 수 있다. 추출된 부분은 서브스트링 표에 추가될 수 있다. 일 양상에서, 표 2 및 표 4에 도시된 바와 같이, 추출된 서브스트링은 서브스트링 표(표 2)를 사용하여 식별자로 매핑될 수 있다. 템플릿 내의 서브스트링의 위치는 예컨대, 도 6a의 608에서의 라벨 "수신:"과 같은 라벨에 의해 결정될 수 있다. 라벨 열 내의 라벨의 값, "값" 열 내의 추출된 서브스트링에 대한 매핑 식별자 및 메시지 열 내의 입력 메시지 식별자를 가진 행이 필러 표(표 4)에 추가될 수 있다. 또한, 추출된 서브스트링의 식별자는 메시지 표(표 1)의 전체(All) 열로 설정될 수 있다. All 열 내의 서브스트링의 순서는 시퀀스를 제공한다. 예컨대, 입력 메시지 내의 서브스트링 외양의 순서는 시퀀스이다.
단계(404)에서, 더 많은 부분이 존재하는지 여부가 판정된다. 만일 더 이상 부분이 존재하지 않으면, 후보 리스트가 생성되고 이 처리는 종료된다.
중복을 찾기 위해 메시지의 부분에 걸쳐 반복할 때, 전체 헤더, 예컨대, "수신:" 주소 및 바디의 각각의 라인이 서브스트링으로서 추출될 수 있다. 서브스트링을 추출할 때, 서브스트링을 추출하는 데 템플릿이 사용될 수 있다. 이 실시예에서, 만일 캐리지 리턴(carriage return) 또는 줄 먹임 문자(linefeed character)가 만나면, 라인은 서브스트링으로서 저장된다. 다른 양상에서, 사전결정된 문자 또는 단어 등과 만나는 것에 응답하여 서브스트링이 식별되거나 출력될 수 있다. 또 다른 양상에서, 단락, 문장, 구, 2 개 이상의 단어의 시퀀스, 메시지 텍스트의 임의의 다른 서브세트의 종단과 만나는 것에 응답하여 서브스트링이 식별되거나 출력될 수 있다. 파싱하는 다른 방법이 사용될 수 있다.
단계(410)에서, 부분이 하나 이상의 유사 메시지로 매핑되는지 여부가 결정된다. 만일 부분이 하나 이상의 메시지 식별자로 매핑되면, 메시지 표 내의 대응하는 메시지가 유사 메시지이다. 입력 메시지와 메시지 표 내에 저장된 메시지 사이에서 동일한 메시지의 임의의 부분은 메시지가 후보가 되기에 충분하다. 단계(412)에서 후보 유사 메시지의 리스트에 유사 메시지가 추가된다.
단계(414)에서, 입력 메시지에 대한 메시지 식별자를 서브스트링 표의 메시지 열에 추가함으로써 스트링이 입력 메시지로 매핑된다. 이어서 방법은 다음 부분에 관하여 단계(402)로 진행된다. 단계(410)에서, 예컨대, 서브스트링 표의 메시지 열이 비어있다고 결정함으로써, 스트링이 하나 이상의 유사 메시지로 매핑되지 않는다고 판정되면, 방법은 단계(402)로 진행된다.
도 8은 본 발명의 일 실시예에서 애플리케이션 인터페이스(108)의 흐름 제어를 도시한다. 이 루틴은 읽지 않은 모든 메시지 및 임의의 읽지 않은 자식 메시지의 부모 메시지의 렌더링을 검색하고 리턴한다. 일 실시예에서, 이들 렌더링은 도 5a 내지 도 5c에 도시된 것과 같이 문자 그대로일 수 있다. 그래픽, 오디오, 비디오 및 능동 요소(예컨대, 애니메이션)와 같은 다른 종류의 요소를 포함하는 렌더링도 본 발명의 범위 내에 있다. 렌더링은 또한 인스턴트 메시징 등과 같은 이메일과 다른 애플리케이션을 지원할 수 있다.
단계(802)에서, 부모를 갖지 않고(즉, 통합 메시지 표(예컨대, 표 3)의 자식 열 내에 나타나지 않음) 읽지 않거나 읽지 않은 자식을 가지는 메시지에 대해, 메시지 표(예컨대, 표 1)로부터 ID(식별자)의 리스트가 획득된다. 전술한 바와 같이, 읽지 않은 메시지는 메시지 표의 상태 열 내의 0의 값을 갖는다. 단계(802)에서 리스트는 메시지 표의 메시지 식별자 열로부터의 각각의 id를 체크하고, 참조된 메시지가 읽지 않은 것으로 표시되거나 자식들 -통합 메시지 표 내에 리스팅된 모든 자식 메시지의 메시지 ID- 중 어느 것도 읽지 않은 경우에만 이를 리스트에 추가함으로써 획득된다. 당업자는 임의의 주어진 자식 메시지도 자식을 가질 수 있으므로, 적용가능할 때 읽지 않은 자식에 대한 이 체크가 반복적으로 수행될 있음을 알 것이다. 그 다음에, 단계(804)에서 시작하는데, 이 리스트로부터의 각각의 ID는 개별적으로 처리된다. 리스트가 고갈될 때, 단계(814)는 생성된 렌더링의 수집을 리턴한다.
리스트로부터 다음으로 이용가능한 메시지 ID가 주어지면, 단계(806)는 새로운 메시지 렌더링을 생성하고, 이를 일련의 요소에 추가한다. 렌더링은 메시지 표, 즉, 완전한 메시지의 모든 요소를 구성하는 메시지 표의 "전체" 열 내의 외양의 순서대로 일련의 서브스트링으로부터 일련의 요소를 생성한다. 메시지 ID 1의 경우에, 예컨대, 전체 열은 서브스트링 식별자: 4, 5, 7, 1, 2의 리스트를 제공한다. 이들 요소의 각각은 리스팅되는 순서대로 렌더링에 추가된다(예컨대, 이상의 예의 경우에, 4가 먼저 추가되고, 이어서 5가 추가된다 등등). 필러 표는 각각의 서브스트링마다 라벨(예컨대, "수신:")을 제공한다. 그러므로, 예컨대, 메시지 ID 1의 경우에 식별자 4를 가진 서브스트링에 대한 요소를 생성하기 위해, 메시지 열을 가진 필러 표의 행은 1이고 값 열 내의 4가 참고된다. 이 행은 필러 표의 행 1이다. 그러므로 요소는 "수신:"의 라벨을 얻을 것이다. 이어서 이 라벨은 4의 서브스트링 식별자와 연관된 서브스트링이 될 것이며, 서브스트링 표로부터 검색되는 그 값은 "존"이다. 그러므로, 이 요소에 대한 렌더링은 "수신: 존"일 것이다. 이는 전형적인 메시지 헤더를 포함하지만, 라벨은 라벨 이전 또는 이후에 삽입될 임의의 텍스트, 이미지 또는 다른 미디어를 나타낼 수 있다. 일부 경우에, 라벨 그 자체는 요소의 일부로서 렌더링되지 않을 수도 있다. 예컨대, "바디:" 라벨은 도 6a에서 보이지 않는다. 또한, 라벨은 요소를 템플릿으로 삽입하는 곳을 식별하는 데 사용될 수 있으며, 이는 표, 리스트, 차트, 그래프 또는 다른 배치와 같은 메시지의 상이한 레이아웃을 허용한다. 템플릿이 사용되는 경우에, 요소에 의해 채워지는 템플릿은 새로운 메시지 렌더링이 된다.
이어서 단계(808)는 주어진 메시지 ID가 이와 연관된 임의의 자식 메시지 ID를 가지고 있는지 여부를 확인하기 위해 통합 메시지 표를 체크하고, 자식의 메시지 ID 및 부모 메시지의 ID의 루틴을 통과하는 자식 메시지 렌더링 루틴(도 9와 관련하여 상세히 설명됨)을 호출하는 단계(810)에서 각각의 자식 ID를 차례로 처리한다. 이 루틴은 서브윈도우로서 다른 렌더링에 추가(예컨대, 첨부)될 수 있는 자식 메시지의 렌더링을 생성한다. 도 5c(508)는 그러한 서브윈도우의 예를 도시한다. 일단 모든 자식 메시지 ID가 부모 메시지의 렌더링에 추가된 그들의 렌더링으로 처리되면, 단계(812)에서 이 렌더링은 읽지 않은 메시지의 수집에 추가되고, 그 후 제어는 단계(804)에서 계속된다.
일 양상에서, 읽지 않은 메시지 렌더링의 수집이 리턴되기 전에, 메시지 표의 상태 열 내의 모든 값을 "1"로 설정함으로써 모든 메시지는 읽은 것으로 표시될 수 있다. 이는 렌더링이 전부 제공되었으므로, 모든 메시지가 읽은 것임을 나타내도록 처리될 수 있다.
도 9는 본 발명의 일 실시예에서 자식 메시지 렌더링 루틴의 흐름 제어를 도시한다. 이 루틴은 자식 및 그 부모의 메시지 ID(예컨대, 자식 메시지 ID = 2이고 부모 메시지 id = 1임)를 통과하고, 본 명세서에서 다른 렌더링에 내장되고/내장되거나 첨부될 수 있는 서브윈도우로 지칭되는 연관된 자식의 렌더링을 리턴한다. 단계(902)는 자식 메시지 id를 매칭하는 메시지 표의 전체 열로부터 서브스트링 id의 리스트를 획득한다. 메시지 ID 2의 경우에, 이는 4, 6, 8, 3, 2일 것이다. 단계(904)는 이 리스트로부터 다음 서브스트링 id를 선택하려고 시도한다. 만일 성공적이면, 단계(906)는 이 서브스트링 id가 자식에 대한 메시지 표의 다름 열에도 포함되는지 여부를 체크한다. 메시지 id 2의 경우에 예컨대, 6, 8, 3이다. 그렇다면, 예컨대, 전체 리스트로부터의 첫 번째 id인 4는 다름 리스트에 포함되지 않지만, 전체 리스트로부터의 두 번째 id인 6은 포함된다. 만일 서브스트링 id가 다름 열 내에 있지 않으면, 이는 주어진 서브스트링 요소가 부모 메시지의 렌더링 내에 이미 디스플레이됨을 의미한다. 이어서 단계(910)는 자식의 서브윈도우 렌더링에 무언가를 추가하는 것을 스킵하거나 주어진 리던던트 서브스트링의 디스플레이가 감춰졌다는 표시를 예컨대, 생략부호를 사용하여 추가한다. 당업자는 이 결정이 주어진 서브스트링 id와 연관된 라벨 -이 정보는 필러 표 내에 표시됨- 에 기초할 수 있음을 알 것이다. 예컨대, "수신:"의 라벨을 가진 서브스트링은 스킵될 수 있지만, "바디:"의 라벨을 가진 서브스트링은 생략부호로 대체될 수 있다. 단계(910)에 이어, 제어는 다음 서브스트링 id가 처리되는 단계(904)에서 계속된다. 만일 단계(906)에서의 체크가 성공하고 (서브스트링 id가 다름 열 내에 있으면), 이는 주어진 연관된 서브스트링이 부모의 렌더링 내에 디스플레이되지 않음을 의미한다. 따라서, 단계(912)는 주어진 서브스트링 ID에 대한 렌더링을 서브윈도우 렌더링에 추가한다. 이는 도 8의 단계(806)에서 설명된 프로세스와 유사하다. 주어진 서브스트링 id 및 자식 메시지 id와 연관된 스트링은 서브스트링 표로부터 검색되고, 서브스트링 id 및 자식 메시지 id와 연관된 라벨은 필러 표로부터 검색된다. 그 다음에, 제어는 다음 서브스트링 ID가 처리되는 단계(904)에서 계속된다.
그러므로, 예컨대, 메시지 id 2의 자식인 메시지 id 2의 경우에, 모든 서브스트링 id의 리스트는 4, 6, 8, 3, 2일 것이며, 단계(910)에 의해 4와 2가 처리되고, 단계(912)에 의해 6, 8 및 3이 처리된다.
4 - 스킵됨(다름 열에 없음)
6 - 라벨 = "발신:" 서브스트링 = "밥"
8 - 라벨 = "날짜:" 서브스트링 = "10/8"
3 - 서브스트링 = "당신은 여기에 참석해야 합니다" 도 8과 관련하여 설명된 바와 같이 라벨이 스킵됨.
2 - "..."를 사용하여 감춰짐 (다름 열 내에 없음)
그러므로 조합된 렌더링은
발신: 밥
날짜: 10/8
당신은 여기에 참석해야 합니다:...
를 포함할 수 있다.
모든 서브스트링 id가 단계(904)에 의해 고갈되었을 때, 단계(913)는 모든 자식 메시지의 자식의 리스트를 획득하는데, 이는 통합 메시지 표(표 3)를 참조하고, 부모 열 내의 메시지 id가 자식 id(예컨대, 2)와 일치하는 행을 체크함으로써 수행될 수 있다. 단계(914)는 이 리스트로부터 다음 메시지를 선택하고, 단계(920)에서 연관된 메시지에 대한 렌더링을 획득하고 이를 구성되고 있는 서브윈도우에 추가한다. 이는 (도 9와 관련하여) 설명되고 있는 루틴을 호출하고 현재의 자식 메시지 id(예컨대, 2) 및 단계(914)에서 획득된 자식의 자식 id를 통과시킴으로써 처리될 수 있다. 모든 자식의 자식 메시지가 서브윈도우 렌더링에 추가되었을 때, 단계(916)는 예컨대, 도 5c의 510에 도시된 바와 같이 자식이 렌더링에 통합되었던 날짜의 표시를 추가한다. 이 날짜는 통합 메시지 표의 "cdate" 열로부터 검색될 수 있다. 그 다음에, 단계(918)에서 서브윈도우 렌더링이 리턴된다.
당업자가 알게 되듯이, 본 발명의 양상은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명이 양상은 일반적으로 본 명세서에서 전부 "회로", "모듈" 또는 "시스템"으로 지칭될 수 있는, 오로지 하드웨어 실시예, 오로지 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함함) 또는 소프트웨어와 하드웨어 양상을 조합하는 실시예의 형태를 취할 수 있다. 또한, 본 발명의 양상은 컴퓨터 판독가능 프로그램 코드가 내장된 하나 이상의 컴퓨터 판독가능 매체(들)로 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독가능 매체(들)의 임의의 조합이 이용될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 예컨대, 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 전술한 이들의 임의의 적합한 조합일 수 있지만, 이들로 제한되지 않는다. 컴퓨터 판독가능 저장 매체의 보다 구체적인 예(불완전한 리스트)는 하나 이상의 와이어를 가진 전기 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM, ROM, EPROM 또는 플래시 메모리, 광섬유, 휴대용 CD-ROM, 광학 저장 장치, 자기 저장 장치 또는 전술한 이들의 임의의 적합한 조합을 포함할 것이다. 이 문서의 문맥에서, 컴퓨터 판독가능 저장 매체는 인스트럭션 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 관련하여 프로그램을 포함하거나 저장할 수 있는 임의의 유형 매체일 수 있다.
컴퓨터 판독가능 신호 매체는 예컨대, 베이스밴드 내에 또는 반송파의 일부로서 내부에 구현된 컴퓨터 판독가능 프로그램 코드를 가진 전파 데이터 신호를 포함할 수 있다. 그러한 전파 신호는 전자기, 광학 또는 이들의 임의의 적합한 조합을 포함하지만 이것으로 제한되지 않는 다양한 형태 중 임의의 형태를 취할 수 있다. 컴퓨터 판독가능 신호 매체는 컴퓨터 판독가능 저장 매체가 아니며, 인스트럭션 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 관련하여 사용할 프로그램을 전달, 전파 또는 전송할 수 있는 임의의 컴퓨터 판독가능 매체일 수 있다.
컴퓨터 판독가능 매체 상에 구현된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등 또는 전술한 것들 중 임의의 적합한 조합을 포함하지만 이것으로 제한되지 않는 임의의 적합한 매체를 사용하여 전송될 수 있다.
본 발명의 양상에 대한 동작을 수행하는 컴퓨터 프로그램 코드는 자바, 스몰토크(Smalltalk), C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사 프로그래밍 언어와 같은 통상적인 절차 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어 중 임의의 조합으로 기록될 수 있다. 프로그램 코드는 전적으로 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서 및 부분적으로 원격 컴퓨터 상에서 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행할 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN 또는 WAN을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있고, 그 접속은 (예컨대, 인터넷 서비스 공급자를 사용하는 인터넷을 통해) 외부 컴퓨터에 대해 이루어질 수 있다.
본 발명의 양상은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 순서도 및/또는 블록도를 참조하여 후술된다. 순서도 및/또는 블록도의 각각의 블록 및 순서도 및/또는 블록도 내의 블록들의 조합이 컴퓨터 프로그램 인스트럭션에 의해 구현될 수 있음을 알 것이다. 이들 컴퓨터 프로그램 인스트럭션은 인스트럭션이 순서도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작을 구현하는 수단을 생성하도록 기계를 생산하는 범용 컴퓨터, 특별 용도의 컴퓨터, 또는 다른 프로그래밍가능 데이터 처리 장치의 프로세서에 제공될 수 있다.
이들 컴퓨터 프로그램 인스트럭션은 또한 컴퓨터, 다른 프로그래밍가능 데이터 처리 장치, 또는 다른 디바이스에게 컴퓨터 판독가능 매체에 저장된 인스트럭션이 순서도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작을 구현하는 인스트럭션을 포함하는 제조품을 산출하도록, 특별 방식으로 기능하라고 지시할 수 있는 컴퓨터 판독가능 매체에 저장될 수 있다.
컴퓨터 프로그램 인스트럭션은 또한 일련의 동작 단계가 컴퓨터, 다른 프로그래밍가능 장치 또는 다른 디바이스 상에서 수행되게 하여, 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 실행하는 인스트럭션이 순서도 및/또는 블록도 블록 또는 블록들에 지정된 기능/동작을 구현하는 프로세스를 제공하도록 컴퓨터 구현 프로세스를 생성하기 위해 컴퓨터, 다른 프로그래밍가능 데이터 처리 장치, 또는 다른 디바이스로 로딩될 수 있다.
도면의 순서도 및 블록도는 본 발명의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 아키텍처, 기능 및 동작을 도시한다. 이와 관련하여, 순서도 또는 블록도 내의 각각의 블록은 모듈, 세그먼트 또는 지정된 로직 함수(들)를 구현하는 하나 이상의 실행가능 인스트럭션을 포함하는 코드 부분을 나타낼 수 있다. 또한, 몇몇 다른 구현에서, 블록에 표시된 기능은 도면에 표시된 순서와 다르게 발생할 수 있다. 예컨대, 연속하여 도시된 2 개의 블록은 실제로 실질적으로 동시에 실행될 수 있고 또는 블록은 수반되는 기능에 따라, 때때로 역 순서로 실행될 수 있다. 또한 블록도 및/또는 순서도의 각각의 블록 및 블록도 및/또는 순서도 내의 블록의 조합이 지정된 기능 또는 동작, 또는 특별 용도의 하드웨어 및 컴퓨터 인스트럭션의 조합을 수행하는 특별 용도의 하드웨어 기반 시스템에 의해 구현될 수 있음을 알아야 할 것이다.
이제 도 7을 참조하면, 본 발명의 시스템 및 방법은 컴퓨터 처리 시스템을 구현하는 하나 이상의 프로세서 및/또는 코어, 메모리 및 다른 시스템 구성요소(도면에 명백히 도시되지 않음)를 하우징하는 처리 유닛(2)을 포함하는 컴퓨터 시스템 또는 컴퓨터 프로그램 제품을 실행할 수 있는 컴퓨터에서 수행되거나 실행될 수 있다. 컴퓨터 프로그램 제품은 실행을 위해 처리 시스템에 컴퓨터 프로그램 제품을 제공하기 위해 당업자에게 알려져 있거나 알려질 임의의 기술에 의해 처리 유닛(2)에 의해 판독될 수 있는 매체, 예컨대, 하드 디스크, 콤팩트 디스크와 같은 콤팩트 저장 매체, 또는 다른 저장 장치를 포함할 수 있다.
컴퓨터 프로그램 제품은 본 명세서에 설명된 방법의 구현을 가능하게 하며 컴퓨터 시스템에서 로딩될 때, 방법을 수행할 수 있는 각각의 특징 전부를 포함할 수 있다. 현재의 문맥에서 컴퓨터 프로그램, 소프트웨어 프로그램, 프로그램 또는 소프트웨어는 정보 처리 능력을 가진 시스템이 (a) 다른 언어, 코드 또는 표기법으로의 변환 및/또는 (b) 상이한 물질 형태로의 재생성 중 하나 또는 양자 모두 다음에 또는 직접 특별 기능을 수행하게 하도록 의도된 인스트럭션 세트의 임의의 언어, 코드 또는 표기법으로의 임의의 표현을 의미한다.
본 발명의 시스템 및 방법을 수행하는 컴퓨터 처리 시스템은 또한 사용자가 데이터를 입력할 수 있고 가령, 키보드(6) 및 마우스 장치(8) 또는 포인팅 장치와 같은 입력 장치와 협력하여 처리 시스템과 상호작용할 수 있는 출력 디스플레이를 제공하고 디스플레이를 제공하는 모니터 또는 디스플레이 스크린(4)과 같은 디스플레이 장치를 포함할 수 있다. 컴퓨터 처리 시스템은 또한 프린터(10), 스캐너(도시 생략), 스피커 및 임의의 다른 장치와 같은 하나 이상의 주변 장치에 직접 또는 원격 접속을 통해 접속되거나 결합될 수 있다. 컴퓨터 처리 시스템은 로컬 이더넷, WAN 접속, 인터넷 등 중 임의의 하나 이상을 통해 또는 상이한 컴퓨팅 시스템을 접속하고 그들이 서로와 통신할 수 있게 하는 임의의 다른 네트워킹 방법을 통해 서버(10), 다른 원격 컴퓨터 처리 시스템(14), 네트워크 저장 장치(12)와 같은 하나 이상의 다른 처리 시스템에 접속되거나 결합될 수 있다. 본 발명의 시스템 및 방법의 다양한 기능 및 모듈은 상이한 처리 시스템(예컨대, 2, 14, 16) 상에서 또는 가령, 네트워크 상에 로컬 또는 분산적으로 저장된 데이터에 액세스하는 임의의 단일 플랫폼 상에서 분산적으로 구현되거나 수행될 수 있다.
본 명세서에서 사용된 용어는 특정 실시예만을 설명하기 위한 것이며 본 발명을 제한하는 것으로 의도되지 않는다. 본 명세서에서 사용된 바와 같이, 단수 형태 "하나의"는 문맥이 다른 경우를 명백히 나타내지 않는 한, 복수 형태도 포함하도록 의도된다. 용어 "포함한다" 및/또는 "포함하는"이 이 명세서에서 사용될 때, 이 용어들이 언급된 특징, 정수, 단계, 동작, 요소 및/또는 구성요소의 존재를 지정하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 제외하지 않음을 또한 알 것이다.
이하 특허청구범위에서 대응하는 구조, 물질, 동작 및 모든 수단 또는 단계와 기능 요소를 더한 것의 균등물은, 만일 있다면, 구체적으로 청구된 바와 같이 다른 청구된 요소와 함께 기능을 수행하는 임의의 구조, 물질, 또는 동작을 포함하도록 의도된다. 본 발명의 설명은 예시 및 설명을 위해 제공되었지만, 개시된 형태의 본 발명으로 완전해지거나 제한되도록 의도되지 않는다. 본 발명의 범위 및 사상으로부터 벗어나지 않으면서 다수의 변경 및 수정은 당업자에게 자명할 것이다. 실시예는 본 발명 및 실제 애플리케이션의 원리를 최상으로 설명하고, 당업자가 고려되는 특정 사용에 적합한 다양한 변경을 가진 다양한 실시예에 관하여 본 발명을 이해할 수 있게 하기 위해 선택되고 기술되었다.
본 발명의 다양한 양상은 컴퓨터 또는 기계 사용가능 또는 판독가능 매체 내에 구현된 프로그램, 소프트웨어 또는 컴퓨터 인스트럭션으로서 구현될 수 있으며, 이들은 컴퓨터, 프로세서 및/또는 기계 상에서 실행될 때 컴퓨터 또는 기계가 방법의 단계들을 수행하게 한다. 본 발명에 설명된 다양한 기능 및 방법을 수행하도록 기계에 의해 실행가능한 인스트럭션의 프로그램을 유형적으로 구현하는, 기계에 의해 판독가능한 프로그램 저장 장치도 제공된다.
본 발명의 시스템 및 방법은 범용 컴퓨터 또는 특별 용도의 컴퓨터 시스템 상에서 구현되고 실행될 수 있다. 컴퓨터 시스템은 임의의 유형의 알려져 있거나 알려질 시스템일 수 있고, 전형적으로 프로세서, 메모리, 장치, 저장 장치, 입력/출력 장치, 내부 버스 및/또는 통신 하드웨어 및 소프트웨어와 함께 다른 컴퓨터 시스템과 통신하는 통신 인터페이스 등을 포함할 수 있다.
본 명세서에서 사용될 수 있는 용어 "컴퓨터 시스템" 및 "컴퓨터 네트워크"는 고정 및/또는 휴대용 컴퓨터 하드웨어, 소프트웨어, 주변장치 및 저장 장치의 다양한 조합을 포함할 수 있다. 컴퓨터 시스템은 공동으로 수행하도록 네트워킹되거나 링크되는 복수의 개별 구성요소를 포함하거나, 하나 이상의 독립형 구성요소를 포함할 수 있다. 본 발명의 컴퓨터 시스템의 하드웨어 및 소프트웨어 구성요소는 데스크탑, 랩탑, 서버와 같은 고정 및 휴대용 장치를 포함하거나 그 내부에 포함될 수 있다. 모듈은 소프트웨어, 하드웨어, 펌웨어, 전자 회로 등으로서 구현될 수 있는 몇몇 기능을 구현하는 장치, 소프트웨어, 프로그램 또는 시스템의 구성요소일 수 있다.
전술된 실시예는 예시이며, 본 발명이 특정 실시예로 제한되는 것으로 해석되어서는 안 된다. 따라서, 첨부된 특허청구범위에 규정된 바와 같이, 본 발명의 사상 또는 범위로부터 벗어나지 않으면서 당업자에 의해 다양한 변경 및 수정이 이루어질 수 있다.
102 : 시스템 104 : 메모리
108 : 애플리케이션 인터페이스
110 : 중복 압축 처리기
112 : 중복 압축기 데이터베이스

Claims (10)

  1. 통합 통신(consolidated communications)을 제공하는 방법에 있어서,
    전송을 수신하는 단계와,
    프로세서를 사용하여 상기 전송과 이전 전송의 차이를 계산하는 단계와,
    상기 전송과 이전 전송의 차이의 표시를 저장하는 단계와,
    상기 차이를 상기 이전 전송으로 통합하는 단계를 포함하는
    통합 통신 제공 방법.
  2. 제 1 항에 있어서,
    상기 이전 전송, 상기 전송 내에 포함된 새로운 데이터 및 상기 새로운 데이터가 상기 이전 전송과 얼마나 관련되는지의 표시를 포함하는 단일 객체를 리턴하는 단계를 더 포함하되,
    상기 단일 객체는 상기 전송과 상기 이전 전송의 조합을 축소 형태로 나타내는
    통합 통신 제공 방법.
  3. 제 1 항에 있어서,
    이전 전송을 변경하는 것은 상기 이전 전송의 상태를 변경하는 것을 더 포함하는
    통합 통신 제공 방법.
  4. 제 1 항에 있어서,
    상기 전송을 삭제하는 단계를 더 포함하는
    통합 통신 제공 방법.
  5. 제 1 항에 있어서,
    상기 전송 및 변경과 연관된 요약을 제공하는 단계를 더 포함하는
    통합 통신 제공 방법.
  6. 제 1 항에 있어서,
    변경된 이전 전송을 디지털 서명하는 단계를 더 포함하는
    통합 통신 제공 방법.
  7. 통합 통신을 제공하는 시스템에 있어서,
    프로세서와,
    전송과 이전 전송의 차이를 계산하고, 상기 전송과 이전 전송의 차이의 표시를 저장하도록 동작가능한 모듈을 포함하되,
    상기 모듈은 상기 차이를 상기 이전 전송으로 통합하도록 또한 동작가능한
    통합 통신 제공 시스템.
  8. 제 7 항에 있어서,
    복수의 전송 및 관련 데이터를 저장하도록 동작가능한 저장 모듈을 더 포함하는
    통합 통신 제공 시스템.
  9. 통합 통신을 제공하는 방법을 수행하도록 기계에 의해 실행가능한 인스트럭션의 프로그램을 저장하는 컴퓨터 판독가능 저장 매체에 있어서,
    상기 방법은,
    전송을 수신하는 단계와,
    프로세서를 사용하여 상기 전송과 이전 전송의 차이를 계산하는 단계와,
    상기 전송과 이전 전송의 차이의 표시를 저장하는 단계와,
    적어도 상기 차이를 포함하도록 상기 이전 전송의 기록을 변경함으로써 상기 전송과 상기 이전 전송을 통합하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  10. 제 9 항에 있어서,
    상기 방법은,
    상기 이전 전송, 상기 전송 내에 포함된 새로운 데이터 및 상기 새로운 데이터가 상기 이전 전송과 얼마나 관련되는지의 표시를 포함하는 단일 객체를 리턴하는 단계를 더 포함하되,
    상기 단일 객체는 상기 전송과 상기 이전 전송의 조합을 축소 형태로 나타내는
    컴퓨터 판독가능 저장 매체.
KR1020100119880A 2009-12-10 2010-11-29 컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합 KR101709791B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/634,795 2009-12-10
US12/634,795 US8943144B2 (en) 2009-12-10 2009-12-10 Consolidating duplicate messages for a single destination on a computer network

Publications (2)

Publication Number Publication Date
KR20110066087A true KR20110066087A (ko) 2011-06-16
KR101709791B1 KR101709791B1 (ko) 2017-03-08

Family

ID=44142853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100119880A KR101709791B1 (ko) 2009-12-10 2010-11-29 컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합

Country Status (2)

Country Link
US (1) US8943144B2 (ko)
KR (1) KR101709791B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056645A (ko) * 2019-11-11 2021-05-20 한국전자기술연구원 Fpga-bmc 환경에서의 저지연 시스템 제어 관리 도구 연동 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621016B2 (en) * 2010-11-09 2013-12-31 International Business Machines Corporation Adaptive differential propagation of soap messages
US20140379814A1 (en) * 2013-06-21 2014-12-25 Parlant Technology, Inc. System and method for optimized message creation and delivery
US10185605B2 (en) * 2012-08-31 2019-01-22 Sap Se In-order message processing with message-dependency handling
US9442925B2 (en) * 2012-11-21 2016-09-13 Bank Of America Corporation Regulated texting solution for mobile devices
JP6167577B2 (ja) * 2013-03-13 2017-07-26 カシオ計算機株式会社 リスト端末装置、通信端末装置及びプログラム
US10326728B2 (en) 2014-12-11 2019-06-18 International Business Machines Corporation Origin-based consolidation of related content within social network posts
US9923862B2 (en) * 2015-06-23 2018-03-20 International Business Machines Corporation Communication message consolidation with content difference formatting
US10063509B2 (en) 2015-11-23 2018-08-28 International Business Machines Corporation Managing message threads through use of a consolidated message
US10348897B2 (en) * 2017-06-27 2019-07-09 Avaya Inc. System and method for reducing storage space in a contact center
US20210216506A1 (en) * 2020-01-13 2021-07-15 Optum, Inc. File compression systems and methods for use in multi-file data stores
US11844005B2 (en) * 2020-12-28 2023-12-12 Toyota Motor North America, Inc. Message queuing and consolidation in an in vehicle environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027779A1 (en) * 2003-07-29 2005-02-03 Schinner Charles Edward System and method for organizing email messages
US20060031324A1 (en) * 2004-06-30 2006-02-09 International Business Machines Corporation Automatic email consolidation for multiple participants

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974236A (en) * 1992-03-25 1999-10-26 Aes Corporation Dynamically reconfigurable communications network and method
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
US7574409B2 (en) * 2004-11-04 2009-08-11 Vericept Corporation Method, apparatus, and system for clustering and classification
US8296372B2 (en) * 2006-12-29 2012-10-23 Sap Ag Method and system for merging electronic messages
US20090313101A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Processing receipt received in set of communications
US8510664B2 (en) * 2008-09-06 2013-08-13 Steven L. Rueben Method and system for displaying email thread information
US20100070584A1 (en) * 2008-09-12 2010-03-18 International Business Machines Corporation Method and system for dynamic e-mail view conversion
US8750624B2 (en) * 2010-10-19 2014-06-10 Doron Kletter Detection of duplicate document content using two-dimensional visual fingerprinting
US9037601B2 (en) * 2011-07-27 2015-05-19 Google Inc. Conversation system and method for performing both conversation-based queries and message-based queries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027779A1 (en) * 2003-07-29 2005-02-03 Schinner Charles Edward System and method for organizing email messages
US20060031324A1 (en) * 2004-06-30 2006-02-09 International Business Machines Corporation Automatic email consolidation for multiple participants

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056645A (ko) * 2019-11-11 2021-05-20 한국전자기술연구원 Fpga-bmc 환경에서의 저지연 시스템 제어 관리 도구 연동 방법 및 장치

Also Published As

Publication number Publication date
US20110142071A1 (en) 2011-06-16
US8943144B2 (en) 2015-01-27
KR101709791B1 (ko) 2017-03-08

Similar Documents

Publication Publication Date Title
KR101709791B1 (ko) 컴퓨터 네트워크 상의 단일 착신지에 대한 중복 메시지 통합
US11115361B2 (en) Apparatus and method for maintaining a message thread with opt-in permanence for entries
US11509618B2 (en) Maintaining a message thread with opt-in permanence for entries
US11416676B2 (en) Using text messages to interact with spreadsheets
US8849919B2 (en) Space-efficient mail storing and archiving based on communication structure
US8490001B2 (en) Electronic mail display program product, method, apparatus and system
US7793260B2 (en) System for defining and activating pluggable user interface components for a deployed application
US20170272388A1 (en) Integrated real-time email-based virtual conversation
US7543031B2 (en) Publication to shared content sources using natural language electronic mail destination addresses and interest profiles registered by the shared content sources
US10491673B2 (en) Synchronization of conversation data
US20090094335A1 (en) Eliminating Redundancy of Attachments in Email Responses
US20110314064A1 (en) Notifications Platform
US8583743B1 (en) System and method for message gateway consolidation
JP2014529131A (ja) ウェブベース電子メールシステムにおける対話構造の同期化
US7979500B2 (en) Email composition and processing
WO2021093673A1 (zh) 邮件发送方法、装置、设备及计算机可读存储介质
US20070094347A1 (en) System for obtaining image using xslt extension and related method
US8412784B2 (en) Storage model for maintaining structured document fidelity
US20140074942A1 (en) Identifying a webpage from which an e-mail address is obtained
US9923853B2 (en) Folders that employ dynamic user training rules to organize content
US9628428B1 (en) Virtual emails for IMAP commands
KR20090003103A (ko) 송신메일 수정시스템 및 그 방법
WO2019028676A1 (zh) 邮件传输方法及相关设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 4