KR101109238B1 - 필터링을 위해 서버로부터 메시지 데이터의 서브세트를 신속하게 획득하기 위한 방법 및 시스템 - Google Patents
필터링을 위해 서버로부터 메시지 데이터의 서브세트를 신속하게 획득하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR101109238B1 KR101109238B1 KR1020050020390A KR20050020390A KR101109238B1 KR 101109238 B1 KR101109238 B1 KR 101109238B1 KR 1020050020390 A KR1020050020390 A KR 1020050020390A KR 20050020390 A KR20050020390 A KR 20050020390A KR 101109238 B1 KR101109238 B1 KR 101109238B1
- Authority
- KR
- South Korea
- Prior art keywords
- messages
- message
- delete delete
- server
- filtering
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/212—Monitoring or handling of messages using filtering or selective blocking
-
- E—FIXED CONSTRUCTIONS
- E02—HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
- E02D—FOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
- E02D29/00—Independent underground or underwater structures; Retaining walls
- E02D29/02—Retaining or protecting walls
- E02D29/0208—Gabions
-
- E—FIXED CONSTRUCTIONS
- E02—HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
- E02B—HYDRAULIC ENGINEERING
- E02B3/00—Engineering works in connection with control or use of streams, rivers, coasts, or other marine sites; Sealings or joints for engineering works in general
- E02B3/04—Structures or apparatus for, or methods of, protecting banks, coasts, or harbours
- E02B3/12—Revetment of banks, dams, watercourses, or the like, e.g. the sea-floor
- E02B3/122—Flexible prefabricated covering elements, e.g. mats, strips
- E02B3/124—Flexible prefabricated covering elements, e.g. mats, strips mainly consisting of metal
-
- E—FIXED CONSTRUCTIONS
- E02—HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
- E02D—FOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
- E02D2200/00—Geometrical or physical properties
- E02D2200/16—Shapes
- E02D2200/165—Shapes polygonal
-
- E—FIXED CONSTRUCTIONS
- E02—HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
- E02D—FOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
- E02D2300/00—Materials
- E02D2300/0026—Metals
- E02D2300/0029—Steel; Iron
- E02D2300/0034—Steel; Iron in wire form
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- General Life Sciences & Earth Sciences (AREA)
- Paleontology (AREA)
- Ocean & Marine Engineering (AREA)
- Mechanical Engineering (AREA)
- Mining & Mineral Resources (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
클라이언트측 추적 메커니즘(tracking mechanism)이 컴퓨팅 장치로 하여금 후속적인 필터링(filtering) 평가를 위해 어느 메시지들이 서버로부터 다운로딩될 필요가 있는지를 효율적으로 결정하고 이들 메시지만을 요청할 수 있도록 하는 시스템과 방법이 개시된다. 예를 들어, 본 발명은 POP3 이메일 메시지들의 다운로드를 최근의 n 일 내에 수신된 것들에만 제한하는데 사용될 수 있다. 날짜 윈도우와 같은 사용자 지정 필터링 기준을 충족시키지 않는 메시지가 다운로딩되는 경우, 그 메시지 데이터는 폐기되지만, 기준을 충족시키지 않는 것으로서의 그 메시지의 상태는 기 검사 테이블(already-checked table)에 보존된다. 후속의 데이터 요청에 대하여, 고유 메시지 ID들의 수신된 리스트가 주 메시지 저장소 및 검사 테이블에 대하여 검사되고, 고유 ID가 발견되지 않는 경우에만 메시지 데이터가 다운로딩된다. 리스트에 기입되지 않은 메시지들은 메시지 저장소 또는 검사 테이블에서 제거된다.
메시지 필터링, 메시지 데이터, 상태 정보, POP3 서버, UIDL 명령
Description
도 1은 본 발명이 구체화될 수 있는 컴퓨터 시스템을 일반적으로 나타낸 블록도.
도 2는 본 발명이 구체화될 수 있는 통신 처리 아키텍처를 나타낸 블록도.
도 3은 본 발명의 일 형태에 따라, 어느 메시지들이 필터링을 위해 다운로딩될 필요가 있는지 판정하기 위해 사용되는 추적 테이블들 및 다수의 컴포넌트를 나타낸 블록도.
도 4는 본 발명의 일 형태에 따라, 메시지 식별자, 테이블 데이터 및 메시지 데이터를 처리하기 위한 로직을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
2033 : POP3 트랜스포트
2081 : 수신함 애플리케이션(UI)
208j : 기타 애플리케이션
212 : 메시지 저장소 관리 컴포넌트
324 : 원격 수신 메일 서버
325 : UID 리스트
326 : 메시지 저장소 테이블
328 : 검사 테이블
330 : 계정 정보(테이블 명칭들)
본 발명은 일반적으로 데이터를 수신하는 컴퓨팅 장치에 관한 것으로, 특히 컴퓨터와 이동 전화기를 포함하는 이동 컴퓨팅 장치에 관한 것이다.
휴대용 정보 단말기(PDA), 최신식 이동 전화기, 주머니 크기의 핸드헬드 컴퓨터, 테블릿 개인용 컴퓨터 등과 같은 이동 컴퓨터 장치들은 중요하면서도 대중적인 사용자 툴(tool)이 되어가고 있다. 일반적으로, 이들은 배터리 전력을 덜 소모하면서도 소형이어서 매우 편리하며, 동시에 보다 강력한 애플리케이션들을 실행시킬 수 있게 되었다.
원격 접속을 통해, 이메일 메시지와 같은 다양한 메시지가 송수신될 수 있다. 송수신될 수 있는 다른 타입의 메시지들은 단문 메시지 서비스(SMS) 메시지, 이동 통신 네트워크에서 이동 전화기로 단문 영숫자 메시지(최대 160개의 문자)를 송수신하기 위한 표준을 포함한다. 이러한 장치들은, 수신된 데이터 및 다른 사용자 데이터를 인터넷을 포함하는 네트워크로의 접속에 의하거나, 그리고/또는 그 장 치에(locally) 저장할 수 있다. 일반적으로, 이들 컴퓨터 및 (Microsoft 사의 Windows Mobile software for Smartphones를 실행시키는 이동 전화기와 같은) 컴퓨터 기반의 이동 전화기들은 사용자로 하여금 통상적인 이동 전화를 걸고, 인터넷에 액세스하며, 첨부물을 포함하는 메시지를 송수신하고, 연락처를 저장하며, 약속을 유지하고, 최신식 데스크톱 컴퓨터가 현재 할 수 있는 그 밖의 다수의 일들을 할 수 있도록 한다.
그러나, 이동 장치는 저장소 및 대역폭을 포함하는 한정된 자원을 갖는다. 그 결과, 소정의 타입들의 서버 데이터는 온전히 그대로 다운로딩되어 보존될 수 없다. 예를 들어, 이메일 메시지에서 사용되는 POP3 프로토콜을 고려해보자. 만약 사용자가 메모리를 절약하기 위해 이들 메시지들의 전체 세트 대신에 소정의 서브세트, 이를 테면 최근 3일 내에 수신한 메시지들만을 장치에 로딩하고자 한다면, 장치는 메시지들을 평가하여 원하지 않는 메시지들을 폐기할 필요가 있다. 이는, POP3 프로토콜이 이메일 클라이언트로 하여금 수신 메일 서버에게 이메일 메시지들의 다운로드를 제한하라고 할 수 있도록 하는 명령을 제공하지 않기 때문이다. 그러나, 만약 사용자가 다수의 그러한 메시지들을 갖는다면, 제한된 대역폭으로 인해, 필터링 목적을 위한 메시지 데이터를 정기적으로 다운로딩하는 것은 번거로운 일이 된다. 예를 들어, POP3 메시지의 날짜를 결정하기 위해서, 그 메시지에 대해 대략 2 kilobyte의 데이터가 다운로딩되며, 만약 다수의 사용자에 있어서 그러한 필터링을 위해 각각 처리되어야 할 수천 개의 메시지들이 존재한다면, 대략 수백만 byte의 데이터가 다운로딩될 필요가 있는데, 이는 상당량의 시간을 요하게 된다. 사실상, 이러한 타입의 필터링에 의하는 경우, 부분적인 다운로드는 전체 다운로드만큼의 긴 시간을 필요로 할 수 있다. 필터링이 클라이언트 측에서 수행될 필요가 있는 경우, 예컨대 통신 프로토콜이 필터링 정보를 서버에게 전달하도록 구성되지 않은 경우, 장치가 필터링을 위해 서버로부터 데이터의 서브세트를 효율적으로 다운로딩할 수 있는 방법이 필요하다.
간략하게 말하면, 본 발명은 클라이언트측 추적 메커니즘(tracking mechanism)이 컴퓨팅 장치로 하여금 필터링 목적을 위해 어느 메시지들이 서버로부터 다운로딩될 필요가 있는지를 효율적으로 결정하고 이들 메시지만을 요청할 수 있도록 하는 시스템 및 방법에 관한 것이다. 일 형태에 있어서, 본 발명은 본질적으로 임의의 메시지 데이터가 다운로딩되기 전에 대부분의 필터링 동작들을 수행한다. 예를 들어, 본 발명은 POP3 이메일 메시지들의 다운로드를 최근의 n 일 내에 수신된 메시지들로 한정하고, 이러한 한정을 현재의 필터링 동작들보다 빠르게 크기 순의 효율적인 방식으로 행하는데 사용될 수 있다.
이를 위해, 사용자 지정 필터링 기준을 충족시키지 않는 메시지, 예컨대 원하는 시간 (날짜) 윈도우를 벗어난 메시지가 다운로딩된 경우, 메시지 데이터는 폐기되지만, 기준을 총족시키지 않는 것으로서의 그 메시지의 상태는 그것의 고유 식별자(ID)에 기초하여 "기 검사(already-checked)" (또는 단순히 "검사(checked)") 테이블에 보존된다. 후속의 데이터 요청(예컨대, POP3 서버에 대한 수신함 애플리케이션 프로그램의 송신/수신 요청)이 있는 경우, 고유 메시지 ID들의 리스트가 획 득된다. 서버로부터의 임의의 메시지 데이터의 다운로드를 요청하기 전에, 주 메시지 저장소 및 검사 테이블이 평가되고, 고유 ID가 어느 저장소에도 없는 경우에만 메시지 데이터가 다운로딩된다.
서버와 동기화된 상태를 유지하고, 또한 검사 테이블이 계속 확장되지 않도록 하기 위해서, 서버에서 삭제된 각각의 아이템은 자신의 레코드가 검사 테이블에서 제거되도록 한다. 이를 위해, 플래그가 검사 테이블 내의 각각의 메시지 레코드와 연관되며, 고유 메시지 ID들의 리스트를 비교하기 전에 세팅된다. 리스트 내의 각각의 메시지 ID에 있어서는, 만약 그 메시지 ID가 리스트에 기입되어 있고, 검사 테이블 내에도 있다면, 그 메시지에 대한 플래그는 클리어된다. 리스트 처리의 종료 시에, 검사 테이블 내의 레코드에서 여전히 세팅되어 있는 임의의 메시지 플래그는 서버에 의해 리스트에 기입되지 않은 메시지에 대응하기 때문에, 서버에서 삭제되었다. 각각의 이러한 메시지에 대한 레코드는 검사 테이블에서 제거된다.
다른 이점들은 도면을 참고하는 이하의 상세한 설명으로부터 명백해질 것이다.
예시적인 운용 환경
도 1은 프로세서(122), 메모리(124), 표시 장치(126) 및 키보드(128)(물리적 키보드나 가상 키보드, 또는 양자 모두를 나타낼 수 있음)를 포함하는 하나의 이러한 핸드헬드 컴퓨팅 장치(120)의 기능적인 컴포넌트들을 나타낸다. 마이크로폰 (129)은 오디오 입력을 수신하기 위해 존재할 수 있다. 메모리(124)는 일반적으로 휘발성 메모리(예컨대, RAM) 및 비휘발성 메모리(예컨대, ROM, PCMCIA 카드 등) 모두를 포함한다. Microsoft 사의 Windows 운영 체제 또는 다른 운영 체제와 같은 운영 체제(130)는 메모리(124)에 상주하며 프로세서(122) 상에서 수행된다.
하나 이상의 애플리케이션 프로그램(132)은 메모리(124)에 로딩되어 운영 체제(130) 상에서 실행된다. 애플리케이션의 예들은 이메일 프로그램, 스케줄링 프로그램, PIM(personal information management) 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램 등을 포함한다. 또한, 핸드헬드 개인용 컴퓨터(120)는 프로세서(122) 상에서 수행되며 메모리(124)에 로딩되는 통지 관리자(notification manager; 134)를 포함할 수도 있다. 통지 관리자(134)는, 예컨대 애플리케이션 프로그램들(132)로부터의 통지 요청을 처리한다. 또한, 이하에서 설명되는 바와 같이, 핸드헬드 개인용 컴퓨터(120)는 전화를 거는 것을 포함하여, 핸드헬드 개인용 컴퓨터(120)를 네트워크에 접속시키는데 적합한 네트워킹 소프트웨어(136)(예컨대, 하드웨어 드라이버 등) 및 네트워크 컴포넌트(138)(예컨대, 라디오 및 안테나)를 포함한다.
핸드헬드 개인용 컴퓨터(120)는 하나 이상의 배터리로 구현되는 전원 공급기(140)를 포함한다. 전원 공급기(140)는 내장 배터리들에 우선하거나 이들을 재충전하는 AC 어댑터나 파워 도킹 크래들(powered docking cradle)과 같은 외부 전원 소스를 더 포함할 수도 있다.
도 1에 도시된 예시적인 핸드헬드 개인용 컴퓨터(120)는 세 가지 타입의 외 부 통지 메커니즘들, 즉 하나 이상의 LED(light emitting diode; 142) 및 오디오 생성기(144)와 함께 도시되어 있다. 이들 장치는 전원 공급기(140)에 직접 결합되므로, 핸드헬드 개인용 컴퓨터 프로세서(122)와 다른 컴포넌트들이 배터리 전력을 보전하기 위해 셧다운(shut down)될 수 있더라도, 활성화된 경우 이들은 통지 메커니즘에 의해 지정된 기간 동안은 온(on) 상태를 유지한다. LED(142)는 바람직하게는 사용자가 동작을 취할 때까지 무기한적으로 온 상태를 유지한다. 최신 버전들의 오디오 생성기(144)는 현재의 핸드헬드 개인용 컴퓨터 배터리에 대해 너무 많은 전력을 사용하기 때문에, 시스템의 나머지 부분들이 오프(off)된 경우나 활성화된 후의 소정의 유한 기간 동안에 오프되도록 구성된다는 점에 유의해야 한다.
기본적인 핸드헬드 개인용 컴퓨터가 도시되었더라도, 사실상 프로그램에 의해 사용되는 소정의 방법으로 데이터를 수신하고 그 데이터를 통신하여 처리할 수 있는 이동 전화기와 같은 임의의 장치는 본 발명을 실시하는 목적에 상응한다.
필터링을
위한 메시지 데이터의 서브세트의 획득
본 발명은 일반적으로 이메일 메시지와 같은 메시지 및 이와 유사한 데이터 통신의 처리에 관한 것으로, 특히 이동 전화기를 포함하는 소형 이동 컴퓨팅 장치에 관한 것이다. 그러나, 이해되는 바와 같이, 본 발명은 임의의 타입의 컴퓨팅 장치에 한정되지 않으며, 예컨대 비교적 커다란 고정 컴퓨팅 장치들에서 사용될 수도 있다. 더욱이, 본 발명이 일반적으로 이메일 애플리케이션 및 메시지들과 관련하여 기술되더라도, 데이터를 다운로딩하는 다른 애플리케이션들이 본 발명으로부 터 이득을 얻을 수 있기 때문에, 본 발명은 임의의 특정 애플리케이션이나 임의의 특정 타입의 데이터에 한정되지 않는다는 점이 이해될 것이다. 또한, 본 발명은 주로 시간 윈도우(time window)(예컨대, 1일 증분에 의한 1일, 2일 등)에 기초한 필터링과 관련하여 기술될 것이나, 사실상 일정 세트의 데이터를 감지할 수 있는 임의의 기준들이 이에 상응할 것이다. 본 명세서에서 사용되는 바와 같이, 복수의 "기준들"은 하나의 기준뿐만 아니라 기준들의 임의의 조합도 포함하도록 의도된다.
도 2를 참조하면, 메일 관련 메시지 등을 처리하기 위한 것으로, 일반적으로 200으로 지정된 아키텍처가 도시되어 있다. 하나의 이러한 아키텍처(200)는 현재 Windows for Mobile Devices를 실행시키는 장치들에 구현되어 있다. 이러한 예시적인 아키텍처에서, 라디오(201)는 통신들을 수신하며, 라디오 인터페이스 계층(202)은 수신된 데이터에 대한 액세스를 제공한다. 다수의 트랜스포트(203)가 제공되는데, 각각의 트랜스포트(2041-204i)는 서로 다른 타입들의 메시지들, 예컨대 IMAP4(Internet Message Access Protocol version 4), SMS, POP3(Post Office Protocol version 3), Active Sync(Windows 기반의 데스트톱 컴퓨터 또는 익스체인지 서버(exchange server)와 Microsoft의 Windows CE .NET 기반의 휴대용 장치들 간의 데이터 동기화를 지원함) 등의 메시지들을 수신하도록 구성된다. 그 밖의 메시지 유형들로는 IM(Instant Messaging), MMS(Multimedia Messaging Service) 등이 있다.
일반적으로, 통신들을 송수신하는 애플리케이션들을 포함하는 애플리케이션 프로그램들(206)은 이동 장치 상에서 실행되고 있다. 이러한 애플리케이션 프로그램들은 수신함(inbox) 애플리케이션(2081), 캘린더 애플리케이션(2082) 및 연락처 관련 애플리케이션 프로그램과 같은 그 밖의 애플리케이션들(208j)을 포함할 수 있다. 본 발명의 일 형태에 따르면, 도 3 및 도 4를 참조하여 이하에서 기술되는 바와 같이, 이들 애플리케이션들(2081 내지 208j) 중 하나 이상이 애플리케이션은 사용자로 하여금 필터링 기준을 입력할 수 있도록 구성될 수 있으며, 이에 의해 이 기준을 충족시키는 메시지들만이 휴대용 데이터 저장소(2141 내지 214k)에 유지될 것이다. 데이터 저장소들은 반드시 애플리케이션 프로그램에 대응하지는 않으며, 예컨대 수신함 애플리케이션(2081)은 그 애플리케이션을 위해 유지되는 다수의 데이터 저장소들, 예컨대 IMAP4 메시지들을 위한 저장소, POP3 메시지들을 위한 저장소 등을 가질 수 있다는 점에 유의해야 한다.
API에 구현되는 것과 같은 메시지 저장소 관리 컴포넌트(212)(예컨대, CEMAPI)는 수신함 애플리케이션(208i)과 같은 애플리케이션들로 하여금 메시지들을 저장하고 원하는 저장 메시지들을 검색할 수 있도록 한다. 일반적으로, 메시지 저장소 관리 컴포넌트(212)는 수신함 애플리케이션(208i)과 같은 애플리케이션들로부터 저장소를 추상화하며, 이로써 본질적으로 애플리케이션은 메시지 데이터가 어딘가에 존재한다는 것만을 인식하며, 데이터는 메시지 저장소 관리 컴포넌트(212)를 통해 액세스될 수 있다. 데이터 저장소로부터 데이터를 수신할 수 있는 또 다른 그러한 프로그램은 운영 체제 컴포넌트이며, 그러한 것으로서, 임의의 그러한 컴퓨터 프로그램 코드는 본 발명의 목적에 상응하는 것으로 간주되어야 한다는 점에 유의해야 한다.
더 복잡하더라도, 저장소를 제공하지 않고 수신함 프로그램이 직접 저장소와 작용하는 대체 구현물을 갖는 것은 본질적으로 이에 상응한다는 점에 유의해야 한다. 따라서, 본 명세서에서 사용되는 "메시지 처리 메커니즘"이라는 용어는 수신함 애플리케이션 또는 기타 이와 유사한 것, 및/또는 메시지 저장 컴포넌트를 나타내는데 사용되며, 적절한 경우 트랜스포트의 개념을 포함할 수도 있다.
일 구현예에 있어서, 메시지 저장소들(2141 내지 214j)은 각각의 수신함 애플리케이션 서비스와 연관된 COM(Component Object Model) 객체들이며, 메시지 저장소 관리 컴포넌트(212)는 IMsgStore 인터페이스를 통한 이들 메시지 저장소들에의 액세스를 제공한다. 이러한 구현예에서, 메시지 저장 라이브러리들은 전송에 특유하고 고유한 저장소에 대한 액세스를 제공하는 IMsgStore 인터페이스를 제공한다. 예를 들어, 수신함은 하나의 메시지 저장소에는 SMS 메시지들을, 또 다른 메시지 저장소에는 IMAP4 메시지들 등을 저장할 수 있다. 각각의 메시지 저장소의 IMsgStore 인터페이스를 통해 액세스되는 IMsgStore::GetProps 및 IMsgStore::SetPros 메소드들(methods)은 저장소의 커스텀 속성들을 액세스하는데 사용된다.
본 발명의 일 태양에 따르면, 도 3은 현재의 필터링 기준과 관련되어 이전에 다운로딩된 임의의 메시지들의 상태를 알기 위해 레코드들의 테이블들이 수신함 애플리케이션 프로그램의 메시지들의 상태를 추적하는데 어떻게 사용되는지를 나타내며, 이로써 알려지지 않은 상태에 있는 메시지들만이 자신의 데이터가 다운로딩되도록 할 필요가 있게 된다. 일반적으로, 수신함 애플리케이션 프로그램의 송신/수신 요청에 대응하는 것과 같은 적절한 때에, 서버에서 유지되는 모든 메시지 ID의 리스트가 획득된다. 예를 들어, POP3 환경에서는, 하나 이상이 컴퓨팅 장치의 조합일 수 있는 POP3 서버, 예컨대 수신 메일 서버(324)에서 수신된 요청 및 리스트를 획득하기 위해, UIDL(unique identifier listing) 명령이 발부된다. 이에 응답하여, 메일 서버(324)는 리스트(325)를 반환한다. 이하에서 기술되는 바와 같이, POP3 트랜스포트(2033)는 메시지 저장소 테이블(326) 및 검사 테이블(328)에 대하여 이 리스트의 콘텐츠를 처리한다. 다수의 메시지 저장소가 있을 수 있기 때문에, 이러한 POP3 계정에 대한 테이블 명칭 및 적절한 데이터 저장소를 알아내기 위해 계정 정보(330)가 사용된다. 최초로 리스트가 요청 장치에 반환되는 때에, 테이블들은 비어있을 것이므로, 각각의 리스트 메시지는 필터링 기준에 대한 평가를 위해 자신의 데이터가 다운로딩되도록 할 필요가 있을 것인데, 기준을 충족시키는 메시지들은 메시지 저장소(214a)에 놓인다. 레코드는 각각의 저장된 메시지에 대해 메시지 저장소 테이블(326)에 생성된다.
본 발명에 따르면, 필터링 기준을 충족시키지 않는 메시지 데이터는 폐기되지만, (필터링 기준을 만족시키지 않는다고 하는) 그 메시지의 알려진 상태는 검사 테이블(328) 내의 대응하는 레코드에 저장된다. 일 구현에에서, 레코드는 보다 효율적인 검색을 위해 고유 메시지 ID(즉, 도 3의 UID)의 해시(hash)에 의해 인덱싱된다는 점에 유의해야 한다. 고유 ID 또한 그 메시지에 대한 레코드에 보존될 수 있는데, 이 ID는 해시 값의 유일성이 보증되지 않는 경우 필요하게 될 것이다.
이해되는 바와 같이, 다음으로 수신함 애플리케이션 프로그램(2081)을 통해 송신/수신 동기화 요청이 생성되어 UIDL 명령이 발부되는 때에, 서버가 새로운 리스트(325)를 반환한 경우 메시지 저장소 테이블(326) 또는 검사 테이블(328)에 있지 않은 리스트 메시지들만이 현 필터링 기준에 대하여 알려지지 않은 상태에 있게 된다. 이는 최후의 요청 이후 필터링 기준이 변경되지 않았음을 가정한다는 점에 유의해야 한다(이하에서 기술되는 바와 같이, 이는 또 다른 방식으로 처리됨).
따라서, 장치가 UIDL 명령 결과인 리스트(325)를 수신하기 위해 접속되어 로그 온(log on)된 후, 로직(도 4를 참조하여 이하에서 더 설명됨)은 리스트 UID들을 메시지 저장소 테이블(326) 또는 검사 테이블(328) 내의 UID들과 비교하고, "새로운 것"으로서 테이블들(326 또는 328) 중 어느 것에도 열거되지 않은 메시지들만 다운로딩한다. 일 구현예에서, 로직은 POP3 트랜스포트(2033)에 구현되지만, 쉽게 이해될 수 있는 바와 같이 로직은 수신함 애플리케이션 및/또는 메시지 저장소 관리 컴포넌트(212) 내와 같이 다른 곳에 있을 수도 있다. 실제로, 일 구현예에서 수신함 애플리케이션(2081)은 POP3 트랜스포트 컴포넌트를 포함한다.
이들 새로운 메시지들에 대해 메시지 데이터가 수신된 경우, 로직은 필터링 기준에 대하여 메시지 데이터를 평가하고, 필터링 기준이 충족된 경우 그 메시지를 메시지 저장소(214a)에 추가하고 그 메시지에 대한 레코드를 메시지 저장소 테이블(326)에 생성한다. 만약 필터링 기준이 총족되지 않는다면, 로직은 고유 ID(상술한 바와 같이, 해시 값이거나 해시 값 이외의 값일 수 있음)를 검사 테이블(328)에 추가하고, 그 메시지 데이터를 폐기한다. 따라서, 각각의 새로운 메시지의 상태는 다음번 송신/수신 요청이 수신된 때에 발생할 다음의 평가를 위해 보존된다.
또한, 서버에서 삭제되었던 임의의 메시지에 대해, 메커니즘은 (임의의 대응하는 메시지 데이터의 제거와 함께) 검사 테이블 또는 메시지 저장소로부터 대응하는 레코드를 제거한다. 서버에서 삭제된 메시지 저장소 내의 메시지는 삭제된 아이템 폴더(deleted items folder) 등으로 이동될 수 있는데, 이 경우 레코드는 변경되어 보존될 수 있지만, 이는 본질적으로 "제거"로 간주될 수 있으며 일반적으로 본 발명과 관련이 없다. 이러한 제거는 클라이언트 장치 상의 테이블들이 서버 상태와 동기화되도록 하기 위한 것이며, 또한 테이블들이 무관한 레코드들을 포함하지 않도록 하기 위한 것이다.
서버에서의 삭제를 다루기 위해, UID 리스트(325) 내의 UID들에 대하여 메시지 레코드들을 비교하기 전에 각각의 메시지 레코드가 마킹(marking)되고, 상기 비교가 완료된 후, 마킹된 채로 남아 있는 메시지 레코드들은 제거된다. 특히, 일 구현예에서, 플래그가 각각의 메시지 레코드와 연관되는데, 플래그는 고유 메시지 ID들의 리스트를 테이블에 대하여 비교하기 전에 세팅된다. 리스트 내의 각각의 메시지 ID에 관해서는, 만약 그 메시지 ID가 리스트 내에 있으며 테이블 내에도 있다면, 그 메시지는, 예컨대 그 메시지에 대한 플래그를 클리어시킴으로써 언마킹(unmarking)된다. 리스트 처리의 종료 시에 여전히 테이블 내의 레코드에서 세팅되어 있는 임의의 메시지 플래그는 서버에 의해 리스트에 기입되지 않았던 메시지에 대응하므로 서버에서 삭제되었다. 각각의 이러한 메시지에 대한 레코드는 적절한 테이블로부터 제거된다. 제거 프로세스는 각각의 UID가 평가된 후에 수행될 필요가 있으므로, 만약 임의의 메시지 다운로딩 전에 제거가 행해지지 않는다면, 메시지의 다운로딩 후 테이블에 생성된 임의의 새로운 레코드는 언마킹되어야 한다는 점에 유의하여야 한다.
예를 들어, 0 내지 3일 이내의 날짜의 메시지들만을 수신하고 유지하기를 원하는 사용자를 고려해보자. 이것이 이전의 송신/수신 명령 시의 필터링 기준이었다고 하면, 테이블들은 관련 상태 데이터를 포함할 것이다. UIDL 명령에 이어 UID 리스트를 수신한 경우, 각각의 UID에 대해 테이블들이 검사된다. 대개는, 특히 송신/수신 명령들을 통해 빈번히 동기화하는 사용자들에 대해, 대부분의 (또는 아마도 모든) 메시지들은 테이블들 중 하나에 있으므로, 상대적으로 다운로딩이 거의 필요하지 않다. 테이블 비교는 다운로딩 시간에 비하여 상당히 빠르기 때문에, 최대한 다운로드를 피하는 것이 매우 효율적이다. 다운로딩에 있어서는, 리스트 내에 존재하지만 메시지 저장소 테이블(326)이나 검사 테이블(328)에 존재하지 않는 임의의 UID는 서버 상에 있는 새로운 메시지이므로, 클라이언트 장치에게 알려지지 않은 것이다. 따라서, 이 메시지(예컨대, 적어도 2 kilobytes의 관련 메시지)가 다운로딩되고, 메시지의 날짜가 이 예에서의 3일 필터링 기준에 대해 평가된다. 만약 3일 윈도우 내에 있다면, 메시지는 메시지 저장소 테이블(326)에 추가되고, 그렇지 않다면 그 데이터는 폐기된다. 그러나, 어느 경우에 있어서나, 상술한 바와 같이 레코드가 적절한 테이블에 추가된다.
용이하게 인식될 수 있는 바와 같이, 다른 기준이 사용될 수 있다. 예를 들어, 본 발명은 고용주와 같은 소정의 소스로부터 오지 않은 메시지들을 필터링시킬 수 있다. 이러한 예에서, 사용자는 직장에서만 사용되는 핸드헬드 장치 상의 업무 관련 메시지들만을 가질 수 있는데, 메시지들은 서버가 아니라 장치에서 필터링되므로 사용자는 다른 컴퓨터를 통해 (또는 필터링 기준을 변경시킴으로써) 이들 다른 비업무 관련 메시지들을 얻을 수 있음에 유의해야 한다. 본질적으로, 단순화를 위해 본 명세서에서의 설명은 데이터 기반의 예들로 되돌아갈 것이더라도, 평가될 수 있는 임의의 데이터가 필터링 기준으로서 사용될 수 있다.
또 다른 형태에 있어서, 사용자는 자신의 수신함이 너무 오래된 메시지들을 자동으로 삭제하기를 원할 수 있다. 이는 서버에서의 삭제가 아니라, 단순히 메모리 공간을 절약하기 위한 클라이언트 장치 상에서의 삭제라는 점에 유의해야 한다. 또한, 삭제는 필터링 윈도우에 대응할 수도, 그렇지 않을 수도 있는데, 예컨대 사용자는 3일 이내의 메시지들만을 수신하기를 원하지만, 메시지들이 5일이 된 경우에는 자동적으로 삭제되기를 원할 수 있다. 여하튼, 데이터 기반의 필터링을 다루는 경우, 서버로부터 메시지가 실질적으로 삭제되는 것이 아니라 클라이언트 장치로부터 메시지가 삭제되는 때에는, 자동 삭제 프로세스가 메시지 저장소 테이블로 부터 레코드를 삭제함에 따라 그 레코드를 검사 테이블에 추가함으로써 이 메시지에 대한 메시지 데이터가 다시 다운로딩될 필요가 없도록 하여야 한다. 그러나, 만약 (시스템이 허용하는 한) 사용자가 날짜 필터링 시간보다 적은 시간으로 자동 삭제 시간을 설정한다면, 검사 테이블(328) 내의 레코드의 존재로 인해, 날짜 윈도우 내에 있을 자동 삭제된 메시지들은 다운로딩될 수 없을 것이다. 예를 들어, 날짜 윈도우가 3일인 경우, 사용자가 메시지들이 2일이 지난 후에 자동으로 삭제되도록 설정한다면, 사용자는 필터링을 방지하기 위한 소정의 조치를 취하지 않고는 자동으로 삭제된 메시지를 회수할 수 없을 것이다. 따라서, 메커니즘은 여전히 필터링 윈도우 내에 있는 자동 삭제된 메시지가 다시 다운로딩되어야 하는지 여부에 대해 사용자-설정가능(user-configurable)하게 될 수도 있는데, 이러한 경우 각각의 이러한 메시지에 대해 검사 테이블(328)로부터 레코드가 제거되어야 한다(또는 검사 테이블에 추가되지 않아야 함).
상술한 바와 같이, 사용자가 기준을 변경한 경우, 검사 테이블(328)은 무효 데이터를 포함할 수 있다. 예를 들어, 만약 사용자가 필터링 기준이 3일 대신에 5일 윈도우이어야 한다고 결정한다면, 검사 테이블 내의 4일 및 5일된 메시지들이 현재 사용자에 의해 요청되고 있지만, 검사 테이블은 이들의 다운로딩을 차단하지 않을 것이기 때문에 문제가 있다. 만약 사용자가 다른 방향으로 기준을 변경한다면, 이것은 문제가 되지 않는데, 예컨대 6일에서 2일로 기준을 변경한다면, 검사 테이블은 6일이 지난 메시지들에 대한 데이터를 유지할 것이므로, 캐시 데이터는 불완전하지만 여전히 유효하다. 그 다음의 송신/수신의 경우, 필터링 동안 검사 테이블은, 예컨대 필터링될 3일, 4일 및 5일된 메시지들에 대한 레코드들을 추가할 것이다.
일 구현예에서, 캐시 테이블이 무효 데이터를 포함하는 경우에는(예컨대, 새로운 날짜 윈도우가 종전의 윈도우보다 큰 경우에는), 캐시 테이블로부터 모든 레코드들을 제거하는 등의 방식으로 전체 캐시가 무효화된다. 이는 모든 레코드에 대한 다운로드를 야기하지만, 이 후 캐시는 유효하게 될 것이며, 다음번에 사용자가 날짜 윈도우를 증가시키지 않거나 증가시킬 때까지 사용될 수 있다.
대안적으로, 데이터 필드가 각각의 레코드에 추가될 수 있다. 데이터 필드를 이용하는 경우, 확장된 날짜 필터링 윈도우로의 변경이 있을 시에, 프로세스는 각각의 레코드를 검사하고 새로운 날짜 윈도우 내에 맞지 않는 레코드들을 폐기하여, 이들의 메시지 데이터가 다음번의 송신/수신에 이어 다운로딩되도록 할 수 있다. 각각의 레코드에 대한 추가적인 날짜 필드를 위해 필요한 메모리 공간과 다운로드 시간 간에 트레이드오프(tradeoff)가 존재한다는 점에 유의하여야 한다. 날짜 필터링 윈도우를 거의 변경하지 않은 사용자는 이러한 특징을 원하지 않을 것인 반면, 빈번하게 날짜 필터링 윈도우를 변경한 사용자는 윈도우가 확장될 때마다 검사 테이블이 전체적으로 무효화되지 않도록 하는 것을 선호할 것이다. 따라서, 이러한 데이터 필드는, 사용자로 하여금 그것을 오프 또는 온(이 경우 검사 테이블은 추가 필드를 위한 공간을 갖는 다른 테이블에 재복사될 수 있음)으로 전환할 수 있도록 하거나, 사용자가 날짜 필터링 윈도우를 얼마나 자주 변경하는지에 관한 통계적 이력에 기초하여 그러한 전환이 자동으로 행해질 수 있도록 하는 방식으로 제공 될 수 있다.
본 명세서에서 본 발명은 주로 메일 데이터와 관련하여 설명되더라도, 다른 애플리케이션들이 본 발명으로부터 이득을 얻을 수 있다. 예를 들어, 캘린더 관련 애플리케이션, 연락처 관련 애플리케이션 등이 다운로딩되고 필터링될 수 있는 데이터를 갖는다. 따라서, 일반적으로, 필터링될 수 있는 다운로딩된 데이터를 갖는 임의의 애플리케이션은 본 발명으로부터 이득을 얻을 수 있다.
특히 도 4의 흐름도를 참조하여 본 발명의 동작을 설명하면, 도 4의 단계(400)는, 서버에 의해 리스트에 기입되지 않아 서버에서 삭제되었던 레코드들이 제거를 위해 식별될 수 있도록, 메시지 저장소 테이블(326) 및 검사 테이블(328) 내의 레코드들을 초기화하는 단계(예컨대, 플래그들을 세팅하는 단계)를 나타낸다. 앞서 설명한 바와 같이, 단계들(408 및 412)은 리스트에 기입된 레코드들을 언마킹한다.
단계(402)는, 이를테면 POP3 서버에 송신된 UIDL 명령을 통해 UID들을 검색하는 단계를 나타낸다. 단계(402)는 또한 본질적으로 접속/로그온 동작을 나타낸다. 앞서 설명한 바와 같이, 오류가 없다고 가정하면, UID들은 서버로부터의 응답에 열거되며, 단계(404)는 리스트(325)로부터 하나를 선택하는 단계를 나타낸다.
단계(406)는 메시지 저장소 테이블(326)을 통해 UID가 메시지 저장소에 있는지 여부에 대해 테스트하고, 만약 메시지가 존재하여 다운로딩될 필요가 없다면, 단계(406)는 단계(408)로 분기하여 적절한 레코드 내의 플래그를 언마킹한 후, 이하에서 설명하는 바와 같이, 다음의 리스트에 기입된 메시지가 존재한다면 이 메시 지를 위해 단계(422)로 진행한다. 그렇지 않다면, 메시지는 새로운 것이거나 검사 테이블에서 이미 추적된 것 중 어느 하나이므로, 단계(406)는 단계(410)로 분기하여 메시지 상태 데이터를 더 찾게 된다.
단계(410)에서는, 메시지가 이전에 다운로딩되었지만 필터링 기준을 충족시키지 않았던 것으로(그리고 여전히 충족시킬 수 없는 것으로) 알려져 있는지 여부에 대해 판정하기 위해, 검사 테이블(328) 상에서 검색이 수행된다. 만약 그렇다면, 메시지는 서버에 의해 리스트에 기입되었으므로 서버에서 삭제되지 않았고, 따라서 검사 테이블 내의 레코드가 여전히 관련성 있기 때문에, 단계(410)는 단계(412)로 분기하여 자신의 플래그를 언마킹한다. 그 후, 이하에서 설명하는 바와 같이, 다음의 리스트에 기입된 메시지가 있다면, 단계(412)는 그 메시지를 위해 단계(422)로 진행한다.
만약 단계(410)에서 메시지가 검사 테이블(410) 내에 있지 않다면(그리고 단계(406)를 통해 메시지 저장소 내에 있지 않았었다면), 그 메시지는 필터링 기준에 대하여 알려지지 않은 상태에 있는 메시지이다. 따라서, 단계(414)에서 메시지 데이터(예컨대, 적절한 2 kilobytes)가 다운로딩되고, 단계(416)에서 그것의 적절한 부분이 필터 기준(예컨대, 날짜 윈도우)에 대해 평가된다. 만약 메시지가 기준을 충족시킨다면, 단계(418)는 그것의 데이터를 메시지 저장소에 추가하고, 메시지 저장소 테이블(326)에 적절한 엔트리를 생성하며, 여전히 마킹된 임의의 메시지들이 제거되는 경우 그것이 테이블로부터 제거되지 않도록 플래그는 언마킹된다.
대신에, 만약 단계(416)에서 메시지가 기준을 충족시키지 않는다면, 단계 (420)는 검사 테이블(328)에 적절한 엔트리를 생성하고, 그것이 서버에서 독립적으로 삭제되지 않는 경우 또는 삭제될 때까지 제거되지 않도록 플래그가 역시 언마킹된다. 레코드가 생성되는 때에는 언제든지 레코드를 후속 리스트들에 대한 UID들에 대하여 알아낼 수 있도록, UID(및/또는 대응하는 해시 값)이 레코드에 포함된다.
단계들(422 및 424)은 아무 것도 남아있지 않게 될 때까지 리스트 내의 각각의 UID에 대하여 프로세스를 반복한다. 아무 것도 남아있지 않은 경우, 리스트에 기입되지 않았기 때문에 서버에서 삭제되었던 임의의 테이블 내의 임의의 레코드(및 메시지 저장소에 있는 경우의 메시지 데이터)를 삭제하도록 단계(426)가 수행된다. 마킹된 플래그들은, 리스트에 기입된 적이 없어 서버에서 삭제되었고 단계(408) 또는 단계(412)를 통해서 언마킹된 적이 없는 레코드들을 나타낸다.
상술한 상세한 설명을 통해 알 수 있는 바와 같이, 서버에서 유지되는 데이터의 클라이언트 측에서의 필터링을 위해, 그 데이터의 서브세트만을 다운로딩하기 위한 방법 및 시스템이 제공된다. 상기 방법 및 시스템은 프로토콜이 서버 측에서의 필터링을 용이하게 하지 않는 POP3 메시지 데이터의 처리에 있어 특히 유용하고 효율적이다. 따라서, 본 발명은 최신 컴퓨팅에 있어 필요한 다수의 이점 및 이득을 제공한다.
본 발명은 다양한 변경 및 대체 구성이 가능하지만, 본 발명의 소정의 예시된 실시예들이 도면에 도시되었으며, 앞서 상세하게 설명되었다. 그러나, 본 발명을 개시된 특정 형태로 한정하고자 하는 의도는 없으며, 그와 반대로 모든 변경물, 대체 구성 및 본 발명의 사상 및 범위 내에 속하는 균등물을 포함하고자 의도된다.
본 발명을 통하여, 클라이언트측에서 컴퓨팅 장치로 하여금 후속적인 필터링 평가를 위해 어느 메시지들이 서버로부터 다운로딩될 필요가 있는지를 효율적으로 결정하고 이들 메시지만을 요청할 수 있도록 할 수 있다.
Claims (33)
- 상호접속된 서버들 간에 메시지들을 전송하기 위한, 복수의 상호접속된 서버를 포함하는 컴퓨팅 네트워크 - 상기 서버들 중 적어도 일부의 서버는 상기 서버에 필터링 정보(filtering information)를 전달하도록 구성되지 않은 통신 프로토콜을 사용하고, 상기 컴퓨팅 네트워크는 또한 상기 서버들에 액세스하고 메시지들을 다운로드하기 위하여 복수의 클라이언트 측 컴퓨팅 장치를 포함함 - 에서, 필터링 동작들이 상기 메시지들이 다운로드되기 전에 발생하도록, 클라이언트 측 컴퓨팅 장치에서 필터링하기 위하여 어느 메시지들이 적어도 어느 서버들로부터 다운로드될 필요가 있는지를 상기 클라이언트측 컴퓨팅 장치가 효율적으로 결정할 수 있게 하는 클라이언트 측 추적 메커니즘(tracking mechanism)들을 사용하는 방법으로서,클라이언트 측 컴퓨팅 장치에서, 새로운 메시지들을 위한 필터 기준(filter criteria)을 설정하는 단계;상기 클라이언트 측 컴퓨팅 장치에서, 상기 서버에 필터링 정보를 전달하도록 구성되지 않은 통신 프로토콜을 사용하여 적어도 하나의 서버에서 유지되는(maintained) 모든 메시지들을 식별하는 리스트를 수신하는 단계;상기 클라이언트 측 컴퓨팅 장치에서, 상기 필터 기준을 이전에 충족하였고 메시지 저장소(message store)에 배치되어 있는 각각의 메시지를 식별하는 레코드들을 포함하는 메시지 저장소 테이블(message store table)을 검색(retrieving)하고, 각각의 레코드를 플래그로 마킹하는 단계;상기 클라이언트 측 컴퓨팅 장치에서, 상기 필터 기준에 대해 검사되었고 상기 필터 기준을 충족시키지 못하는 것으로 발견된 각각의 메시지를 식별하는 레코드들을 포함하는 검사 테이블(checked table)을 검색하고, 각각의 레코드를 플래그로 마킹하는 단계 -;상기 적어도 하나의 서버에서 유지되는 모든 메시지들에 대하여 수신된 상기 리스트에서 식별된 메시지들을 상기 메시지 저장소 테이블에 포함된 레코드들과 비교하고, 각각의 메시지에 대하여, 상기 메시지가 이미 상기 메시지 저장소에 배치되어 있는지를 결정하는 단계;상기 적어도 하나의 서버에서 유지되는 모든 메시지들에 대하여 수신된 상기 리스트에서 식별된 메시지들을 상기 검사 테이블에 포함된 레코드들과 비교하고, 각각의 메시지에 대하여, 상기 메시지가 상기 검사 테이블에 있는지를 결정하는 단계 - 상기 검사 테이블은 상기 필터 기준에 대해 이미 검사되었고 상기 필터 기준을 충족시키지 못하는 것으로 발견된 메시지들을 식별하는 레코드들을 포함함 -;그 후, 상기 클라이언트 측 컴퓨팅 장치에서, 다운로드 시간이 상기 메시지 저장소 테이블 및 상기 검사 테이블로부터 결정된 것과 같은 모든 새로운 메시지들로만 한정되도록, 상기 메시지 저장소 테이블 또는 상기 검사 테이블 중 어느 것의 레코드에 아직 대응하지 않는 모든 메시지들을 상기 리스트로부터 수신함(inbox)으로 다운로드하는 단계;상기 리스트에서 식별된 메시지들 중, 상기 테이블들 중 어느 것에서 이전에 식별되었던 메시지들에 이미 대응하는, 상기 메시지 저장소 테이블 또는 상기 검사 테이블 중 어느 것에 포함된 모든 레코드들에 대하여 상기 플래그들을 언마킹(unmarking)하는 단계;상기 필터 기준에 대해 다운로드된 모든 새로운 메시지들을 검사하고, 상기 필터 기준이 충족되면, 상기 메시지 저장소 테이블에 새로운 언마킹된 레코드를 추가하거나, 혹은 상기 필터 기준이 충족되지 못하면 상기 검사 테이블에 새로운 언마킹된 레코드를 추가하는 단계; 및상기 메시지 저장소 테이블 및 상기 검사 테이블에서 마킹된 플래그들을 갖는 임의의 남아있는 레코드들을 제거하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 클라이언트 측 컴퓨팅 장치는 상기 클라이언트 측 컴퓨팅 장치 상에서 실행되는 복수의 애플리케이션 프로그램을 포함하고,상기 애플리케이션 프로그램 중 하나 이상의 애플리케이션 프로그램은 사용자에 의해, 그 특정 애플리케이션 프로그램에 의해 다뤄지는 메시지 정보에 대해 필터링 기준을 구축하도록 구성될 수 있는 방법.
- 제2항에 있어서,상기 클라이언트 측 컴퓨팅 장치는 상기 애플리케이션 프로그램들 각각이 그 애플리케이션 프로그램에 대하여 메시지들을 저장하고 저장된 메시지들을 검색할 수 있게 하는 메시지 저장소 관리 컴포넌트를 포함하는 방법.
- 제3항에 있어서,상기 클라이언트 측 컴퓨팅 장치는 상이한 유형들의 메시지들을 수신하고 송신하도록 구성되는 복수의 트랜스포트(transport)를 포함하는 방법.
- 제4항에 있어서,상기 메시지들은 IMAP4, SMS, POP3, Active Sync, IM 및 MMS와 같은 유형들의 메시지들 중 일부 메시지 또는 모든 메시지를 포함할 수 있는 방법.
- 제1항에 있어서,상기 메시지들을 식별하는 리스트를 수신하는 단계는 POP 3 서버에 UIDL 명령을 발부하는 단계, 및 이에 대한 응답으로 복수의 고유 메시지 식별자를 수신하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 필터링 기준은 시간 윈도우(time window)를 포함하는 방법.
- 상호접속된 서버들 간에 메시지들을 전송하기 위한, 복수의 상호접속된 서버를 포함하는 컴퓨팅 네트워크에서 사용하기 위한 컴퓨터 프로그램 제품을 포함하는 컴퓨터 판독가능 기록 매체 - 상기 서버들 중 적어도 일부의 서버는 상기 서버에 필터링 정보를 전달하도록 구성되지 않은 통신 프로토콜을 사용하고, 상기 컴퓨팅 네트워크는 또한 상기 서버들에 액세스하고 메시지들을 다운로드하기 위하여 복수의 클라이언트 측 컴퓨팅 장치를 포함함 - 로서,상기 컴퓨터 프로그램 제품은, 필터링 동작들이 상기 메시지들이 다운로드되기 전에 발생하도록, 클라이언트 측 컴퓨팅 장치에서 필터링하기 위해 어느 메시지들이 적어도 어느 서버들로부터 다운로드될 필요가 있는지를 상기 클라이언트측 컴퓨팅 장치가 효율적으로 결정할 수 있게 하는 클라이언트 측 추적 메커니즘들을 사용하는 방법을 구현하기 위한 컴퓨터 실행가능 명령어들을 포함하고,상기 컴퓨터 프로그램 제품의 컴퓨터 실행가능 명령어들에 의해 구현되는 상기 방법은 제1항 내지 제7항 중 어느 한 항의 방법을 포함하는 컴퓨터 판독가능 기록 매체.
- 제8항에 있어서,상기 메시지들을 식별하는 리스트를 수신하는 단계는 POP 3 서버에 UIDL 명령을 발부하는 단계를 포함하는 컴퓨터 판독가능 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/797,994 | 2004-03-11 | ||
US10/797,994 US7613777B2 (en) | 2004-03-11 | 2004-03-11 | Rapidly obtaining a subset of message data from a server for filtering |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060043865A KR20060043865A (ko) | 2006-05-15 |
KR101109238B1 true KR101109238B1 (ko) | 2012-01-30 |
Family
ID=34827652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050020390A KR101109238B1 (ko) | 2004-03-11 | 2005-03-11 | 필터링을 위해 서버로부터 메시지 데이터의 서브세트를 신속하게 획득하기 위한 방법 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7613777B2 (ko) |
EP (1) | EP1575227A1 (ko) |
JP (1) | JP4828138B2 (ko) |
KR (1) | KR101109238B1 (ko) |
CN (1) | CN1674588B (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671144B2 (en) * | 2004-07-02 | 2014-03-11 | Qualcomm Incorporated | Communicating information about the character of electronic messages to a client |
US7792521B2 (en) * | 2005-11-28 | 2010-09-07 | Nokia Corporation | Method, apparatus, and computer program product for managing content items |
US7921165B2 (en) * | 2005-11-30 | 2011-04-05 | Microsoft Corporation | Retaining mail for availability after relay |
US8583731B1 (en) | 2006-11-17 | 2013-11-12 | Open Invention Network Llc | System and method for analyzing and filtering journaled electronic mail |
GB0625643D0 (en) * | 2006-12-21 | 2007-01-31 | Symbian Software Ltd | Sync field filtering |
US7970881B2 (en) * | 2008-02-19 | 2011-06-28 | Microsoft Corporation | Bypassing uploading of data from a wireless device using outbound attachment caching |
CN101662451B (zh) * | 2008-08-26 | 2012-11-07 | 北京中京创原通信技术有限公司 | 基于消息标识机制的命令/响应关联性控制方法 |
US9209993B2 (en) | 2010-11-16 | 2015-12-08 | Microsoft Technology Licensing, Llc | Cooperative session-based filtering |
CN102098633A (zh) * | 2011-02-14 | 2011-06-15 | 华为终端有限公司 | 电子邮件的下载方法及移动终端 |
CN103001851A (zh) * | 2012-01-16 | 2013-03-27 | 陈晓亮 | 一种线上用户求助互动系统及方法 |
US9660947B1 (en) * | 2012-07-27 | 2017-05-23 | Intuit Inc. | Method and apparatus for filtering undesirable content based on anti-tags |
US20150012597A1 (en) * | 2013-07-03 | 2015-01-08 | International Business Machines Corporation | Retroactive management of messages |
CN104881414A (zh) * | 2014-02-28 | 2015-09-02 | 国际商业机器公司 | 数据展示方法和系统 |
US10033680B2 (en) | 2015-10-27 | 2018-07-24 | Blackberry Limited | Method for priming inbox and conversations during initial synchronization of messages |
US10715475B2 (en) * | 2018-08-28 | 2020-07-14 | Enveloperty LLC | Dynamic electronic mail addressing |
US11750572B2 (en) * | 2020-08-12 | 2023-09-05 | Capital One Services, Llc | System, method, and computer-accessible medium for hiding messages sent to third parties |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134582A (en) | 1998-05-26 | 2000-10-17 | Microsoft Corporation | System and method for managing electronic mail messages using a client-based database |
US20030172118A1 (en) | 2002-03-05 | 2003-09-11 | International Business Machines Corporation | Method and apparatus for providing post office protocol 3 support for limited storage devices |
US6647409B1 (en) | 1999-07-13 | 2003-11-11 | Microsoft Corporation | Maintaining a sliding view of server based data on a handheld personal computer |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974238A (en) * | 1996-08-07 | 1999-10-26 | Compaq Computer Corporation | Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements |
US6141664A (en) * | 1996-11-13 | 2000-10-31 | Puma Technology, Inc. | Synchronization of databases with date range |
US6212529B1 (en) * | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
US6401112B1 (en) * | 1997-01-29 | 2002-06-04 | Palm, Inc. | Method and apparatus for synchronizing an Email client on a portable computer system with an Email client on a desktop computer |
US6006274A (en) * | 1997-01-30 | 1999-12-21 | 3Com Corporation | Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US6633924B1 (en) * | 1997-10-02 | 2003-10-14 | Charles Wu | Object synchronization between objects stores on different computers |
US6125369A (en) * | 1997-10-02 | 2000-09-26 | Microsoft Corporation | Continuous object sychronization between object stores on different computers |
WO1999022305A1 (en) * | 1997-10-24 | 1999-05-06 | Microsoft Corporation | System and method for interaction between a desktop computer and multiple mobile devices |
US6052735A (en) * | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US5951636A (en) * | 1997-12-04 | 1999-09-14 | International Business Machines Corp. | Accessing a post office system from a client computer using applets |
AU1907899A (en) * | 1997-12-22 | 1999-07-12 | Accepted Marketing, Inc. | E-mail filter and method thereof |
US6052709A (en) * | 1997-12-23 | 2000-04-18 | Bright Light Technologies, Inc. | Apparatus and method for controlling delivery of unsolicited electronic mail |
US5999932A (en) * | 1998-01-13 | 1999-12-07 | Bright Light Technologies, Inc. | System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing |
US7209949B2 (en) * | 1998-05-29 | 2007-04-24 | Research In Motion Limited | System and method for synchronizing information between a host system and a mobile data communication device |
US20010054115A1 (en) * | 1998-05-29 | 2001-12-20 | Tabitha Ferguson | System and method for bundling information |
US6324544B1 (en) * | 1998-10-21 | 2001-11-27 | Microsoft Corporation | File object synchronization between a desktop computer and a mobile device |
US6654787B1 (en) * | 1998-12-31 | 2003-11-25 | Brightmail, Incorporated | Method and apparatus for filtering e-mail |
US6732149B1 (en) * | 1999-04-09 | 2004-05-04 | International Business Machines Corporation | System and method for hindering undesired transmission or receipt of electronic messages |
US6636897B1 (en) * | 1999-09-28 | 2003-10-21 | Microsoft Corporation | Selective information subset synchronization based on single user action |
US6505214B1 (en) * | 1999-09-28 | 2003-01-07 | Microsoft Corporation | Selective information synchronization based on implicit user designation |
US7039678B1 (en) * | 2000-09-07 | 2006-05-02 | Axis Mobile, Ltd. | E-mail proxy |
US7243163B1 (en) * | 2001-08-07 | 2007-07-10 | Good Technology, Inc. | System and method for full wireless synchronization of a data processing apparatus with a messaging system |
US7290034B2 (en) * | 2003-09-18 | 2007-10-30 | Vulcan Portals Inc. | Method and system for polling a server for new emails, downloading the new emails in a background process, and caching the downloaded emails for access by an email application of an electronic device, such as a portable computer |
-
2004
- 2004-03-11 US US10/797,994 patent/US7613777B2/en not_active Expired - Fee Related
-
2005
- 2005-03-11 EP EP05101911A patent/EP1575227A1/en not_active Withdrawn
- 2005-03-11 JP JP2005069273A patent/JP4828138B2/ja not_active Expired - Fee Related
- 2005-03-11 CN CN2005100563229A patent/CN1674588B/zh not_active Expired - Fee Related
- 2005-03-11 KR KR1020050020390A patent/KR101109238B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134582A (en) | 1998-05-26 | 2000-10-17 | Microsoft Corporation | System and method for managing electronic mail messages using a client-based database |
US6647409B1 (en) | 1999-07-13 | 2003-11-11 | Microsoft Corporation | Maintaining a sliding view of server based data on a handheld personal computer |
US20030172118A1 (en) | 2002-03-05 | 2003-09-11 | International Business Machines Corporation | Method and apparatus for providing post office protocol 3 support for limited storage devices |
Also Published As
Publication number | Publication date |
---|---|
JP2005267634A (ja) | 2005-09-29 |
US20050223085A1 (en) | 2005-10-06 |
US7613777B2 (en) | 2009-11-03 |
EP1575227A1 (en) | 2005-09-14 |
CN1674588B (zh) | 2011-10-19 |
KR20060043865A (ko) | 2006-05-15 |
JP4828138B2 (ja) | 2011-11-30 |
CN1674588A (zh) | 2005-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101109238B1 (ko) | 필터링을 위해 서버로부터 메시지 데이터의 서브세트를 신속하게 획득하기 위한 방법 및 시스템 | |
JP4812747B2 (ja) | 情報を取り込み抽出する方法及びシステム | |
RU2523165C2 (ru) | Технологии автоматического диалога | |
US7606837B2 (en) | System and method for downloading information to a mobile device | |
US7590722B2 (en) | Apparatus and methods for managing data used by a mobile device | |
US7409641B2 (en) | Method for replying to related messages | |
US8577967B1 (en) | Method and system for managing real-time communications in an email inbox | |
US7599991B2 (en) | Rules interface for implementing message rules on a mobile computing device | |
US7543031B2 (en) | Publication to shared content sources using natural language electronic mail destination addresses and interest profiles registered by the shared content sources | |
JP2001251361A (ja) | 通信システムにおいて電子メール・メッセ−ジを処理するための方法及びシステム | |
CN1658211A (zh) | 新近的联系和条目 | |
CN1648920A (zh) | 离线全局地址列表 | |
US7624920B2 (en) | Storing account information with related data in a common store | |
US20100057460A1 (en) | Verbal labels for electronic messages | |
KR20060094855A (ko) | 접속 소스들로부터 수집된 접속 정보를 찾아내는 시스템 및방법 | |
CN101388891A (zh) | 管理呈现实体的呈现信息的装置和方法 | |
US9123021B2 (en) | Searching linked content using an external search system | |
US8805933B2 (en) | System and method for building interest profiles from related messages | |
CA2638264C (en) | System and method for automatically responding to a message sent to a user at an email server | |
US20050289190A1 (en) | Meta-data approach to indexing, retrieval and management of stored messages in a portable communication device | |
US20130091224A1 (en) | Managing Meetings Relative to Messages | |
US8965928B2 (en) | Searching for computer resources based on associations between these resources and external events | |
WO2011015904A1 (en) | Data searching method and apparatus |
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 |