KR101683305B1 - 통신 아카이브에 의한 조정 및 교정 - Google Patents

통신 아카이브에 의한 조정 및 교정 Download PDF

Info

Publication number
KR101683305B1
KR101683305B1 KR1020107029163A KR20107029163A KR101683305B1 KR 101683305 B1 KR101683305 B1 KR 101683305B1 KR 1020107029163 A KR1020107029163 A KR 1020107029163A KR 20107029163 A KR20107029163 A KR 20107029163A KR 101683305 B1 KR101683305 B1 KR 101683305B1
Authority
KR
South Korea
Prior art keywords
message
archive
query
category
computer
Prior art date
Application number
KR1020107029163A
Other languages
English (en)
Other versions
KR20110034615A (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 KR20110034615A publication Critical patent/KR20110034615A/ko
Application granted granted Critical
Publication of KR101683305B1 publication Critical patent/KR101683305B1/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/60Business processes related to postal services
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

아카이브에서의 저장을 위해 서버에 의해 송신되는 메시지의 조정 및 교정을 위한 기술이 설명된다. 일부 기술은 아카이브에 저장되기 위해 서버에 의해 송신되는 메시지에 대응하는 조정될 메시지를 수신하는 단계를 포함할 수 있다. 수신된 메시지는 조정을 위해 분류될 수 있고, 조정을 위한 메시지의 분류에 따라 전달 확인 쿼리가 아카이브쪽으로 발행될 수 있다. 전달 확인 쿼리에 대한 응답에 기초해, 저장을 위해 아카이브쪽으로 송신된 메시지가 아카이브에 실제로 저장되는지의 여부가 확실하게 판정될 수 있다. 다른 실시예가 설명되고 청구된다.

Description

통신 아카이브에 의한 조정 및 교정{RECONCILIATION AND REMEDIATION WITH COMMUNICATION ARCHIVES}
전자 우편(이메일)은 메시지가, 다양한 조직 및 네트워크를 통해, 여러 머신에 걸쳐 이동하고 일시적인 접속 중단에서 살아남을 수 있게 할 수 있는 엔드-투-엔드(end-to-end) 메시지 전달을 위한 저장 및 포워드 접근 방법(store and forward approach)을 제공한다. 이러한 비동기 접근 방법에 대한 단점은, 수신자가 메시지를 수신했는지 그리고 언제 수신했는지를 그리고 어떤 우편-수신 처리가 성공적으로 실현되었는지를 송신하는 사용자 또는 조직이 정확하게 알 수 있는 방법이 없다는 것이다.
이 문제는 이메일 아카이브의 경우에 특히 만연하다. 규제 준수 또는 법원 명령 때문에 이메일 보유 요건을 따라야 하는 기업 및 조직은 그러한 아카이브로부터 이메일을 검색하고 생산할 수 있어야 한다. 그렇게 하지 않으면, 상당한 벌금 및 평판 손상이 발생할 수 있다. 현재의 이메일 시스템은 아카이브쪽으로 송신된 메시지가 아카이브에 성공적으로 저장되었다는 것을 보장할 수 없기 때문에, 이들 기업은 자신의 아카이브 이외에 여분의 백업(redundant backups)을 통해 검색해야 하는 상당한 비용을 부담한다.
메시지 생성 이메일 시스템의 관점에서, 아카이브로 향하는 길을 따라 몇개의 가능성 있는 데이터 손실 지점이 존재한다. 예를 들어, 생성 이메일 시스템(generating e-mail system) 또는 중간 이메일 시스템(intermediary e-mail system)이 소프트웨어 또는 하드웨어 장애를 유발할 수 있고, 아카이브에 도달하는 메시지가 손실된다. 또한, 메시지가 수신되는 아카이브의 프론트-엔드(front-end) 이메일 시스템 또는 메시지가 데이터베이스로 저장되는 아카이브의 주입 시스템이 소프트웨어 또는 하드웨어 장애를 유발할 수 있고, 아카이브로 예정된 메시지가 손실된다. 따라서, 이들 및 다른 문제를 해결하기 위한 그리고 트랜잭션리스(transactionless) 환경에서 메시지의 엔드-투-엔드 전달 및 아카이빙을 보장하기 위한 개선이 필요하다.
<발명의 요약>
이 요약은 다음의 상세한 설명에서 더 기술될 개념들 중 발췌 부분을 간략화된 형태로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 핵심 특징 또는 필수 특징을 식별하기 위한 것도 청구된 주제의 범위를 제한하는데 사용하기 위한 것도 아니다.
다양한 실시예는 아카이브에서의 저장을 위해 서버에 의해 송신되는 메시지의 조정 및 교정을 위한 기술에 대한 것이다. 일부 기술은 저장을 위해 서버에 의해 아카이브쪽으로 송신되는 메시지에 대응하는 조정될 메시지를 수신하는 단계, 수신된 메시지를 조정을 위해 분류하는 단계, 조정을 위한 메시지 분류에 따라 아카이브쪽으로 전달 확인 쿼리를 발행하는 단계, 및 전달 확인 쿼리에 대한 응답에 기초해, 서버로부터 아카이브쪽으로 송신된 메시지가 아카이브에 저장되는지를 판정하는 단계를 포함할 수 있다. 전달 확인 쿼리에 대해 부정 응답을 수신한 후에는 재시도 쿼리가 발행될 수 있다. 재시도 쿼리에 대해 부정 응답을 수신한 후에는 조정될 메시지가 아카이브쪽으로 재전송(resubmit)될 수 있다. 조정될 메시지는 확인이 수신될 때까지 저장될 수 있고 전달 확인 쿼리에 대해 긍정 응답을 수신한 후에는 삭제될 수 있다. 다른 실시예가 설명되고 청구된다.
이들 및 다른 특징과 이점은 다음의 상세한 설명에 대한 판독 및 연관된 도면의 검토로부터 명백해질 것이다. 상기한 개괄적인 설명 및 다음의 상세한 설명 모두는 설명에 도움이 될 뿐이고 청구되는 태양을 한정하지 않는다는 것을 이해할 수 있어야 한다.
도 1은 운영 환경의 실시예를 예시한다.
도 2는 컴퓨팅 디바이스의 실시예를 예시한다.
도 3은 조정 애플리케이션의 실시예를 예시한다.
도 4는 다이어그램의 실시예를 예시한다.
도 5는 메시지 흐름의 실시예를 예시한다.
도 6은 논리 흐름의 실시예를 예시한다.
도 7은 제품의 실시예를 예시한다.
다양한 실시예는 소정 동작, 기능, 또는 서비스를 수행하도록 정렬되는 물리 또는 논리 구조를 포함한다. 구조는 물리 구조, 논리 구조, 또는 양자의 조합을 포함할 수 있다. 물리 또는 논리 구조는 하드웨어 요소, 소프트웨어 요소, 또는 양자의 조합을 사용해 구현된다. 그러나, 특정 하드웨어 또는 소프트웨어 요소를 참조하는 실시예의 설명은 제한이 아닌 실례를 의미한다. 실시예를 실제로 실시하기 위해 하드웨어 또는 소프트웨어 요소를 사용하는 것의 판정은, 원하는 연산 속도, 파워 레벨, 내열성, 프로세싱 싸이클 버짓(processing cycle budget), 입력 데이터 속도(rate), 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도, 및 다른 설계 또는 성능 제약과 같은, 다수의 외부 팩터에 의존한다. 더 나아가, 물리 또는 논리 구조는 구조 사이에서 전자 신호 또는 메시지의 형태로 정보를 통신하기 위해 대응하는 물리 또는 논리 접속을 가질 수 있다. 접속은 정보 또는 특정 구조에 적합한 유선 및/또는 무선 접속을 포함할 수 있다. "일 실시예(one embodiment)" 또는 "실시예(an embodiment)"에 대한 어떤 참조는 실시예와 관련하여 설명되는 특정 특징, 구조, 또는 특징이 적어도 하나의 실시예에 포함된다는 것을 의미한다는 것에 주의할 필요가 있다. 명세서의 다양한 위치에서의 "일 실시예에서"라는 문구의 등장 모두가 반드시 동일한 실시예를 참조할 필요는 없다.
아카이브에서의 저장을 위해 서버에 의해 송신되는 메시지의 조정 및 교정을 위한 다양한 기술이 제공된다. 일부 기술은 아카이브에 저장되기 위해 서버에의해 송신되는 메시지에 대응하는 조정될 메시지를 수신하는 단계를 포함할 수 있다. 수신된 메시지는 조정을 위해 분류될 수 있고, 조정을 위한 메시지의 분류에 따라 전달 확인 쿼리가 아카이브쪽으로 발행될 수 있다. 전달 확인 쿼리에 대한 응답에 기초해, 저장을 위해 아카이브쪽으로 송신된 메시지가 실제로 아카이브에 저장되는지의 여부가 확실하게 판정될 수 있다. 추가적으로 또는 다른 방법으로, 전달 확인 쿼리에 대해 부정 응답을 수신한 후에는 재시도 쿼리가 발행될 수 있다. 재시도 쿼리에 대해 부정 응답이 수신되면, 조정될 메시지가 아카이브쪽으로 재전송될 수 있다. 조정될 메시지는 확인이 수신될 때까지 저장되고 전달 확인 쿼리에 대해 긍정 응답이 수신된 이후에만 삭제되어 메시지의 가용성(availability)을 보장할 수 있다.
도 1은 다양한 실시예를 실시하기에 적당한 운영 환경(100)을 위한 블록도를 예시한다. 운영 환경(100)은 단일 엔티티 환경 또는 다중 엔티티 분산 환경에 의한 구현을 위해 설계된 요소를 포함할 수 있다. 각각의 요소는, 소정의 설계 파라미터 또는 성능 제약 세트에서 요구되는 바에 따라, 하드웨어 요소, 소프트웨어 요소, 또는 그것의 임의 조합으로서 구현될 수 있다. 하드웨어 요소의 실례로는 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 소자(예를 들어, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 들 수 있다. 소프트웨어 요소의 실례로는 어떤 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 펑션, 메소드, 인터페이스, 소프트웨어 인터페이스, API(application program interfaces), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 그것의 임의 조합을 들 수 있다.
여기에서 사용되는 바와 같이, "시스템", "서브시스템", "컴포넌트", 및 "모듈"이라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 중 어느 하나를 포함하는 컴퓨터-관련 엔티티를 참조하기 위한 것이다. 예를 들어, 컴포넌트는 프로세서에서 실행 중인 프로세스, 프로세서, 하드 디스크 드라이브, (광 및/또는 자기 기억 매체의) 여러 스토리지 드라이브, 오브젝트, 실행가능물(executable), 실행 스레드, 프로그램, 및/또는 컴퓨터로서 구현될 수 있다. 예시로써, 서버에서 실행 중인 애플리케이션과 서버 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 소정 구현을 위해 소망되는 바에 따라 하나의 컴퓨터에 국한될 수 있거나 그리고/또는 2 이상의 컴퓨터 사이에서 분산될 수 있다. 실시예가 이 맥락에서 제한되지 않는다.
도 1에서 예시되는 실례에서, 운영 환경(100)은, 다른 요소 중에서도 특히, 이메일 서버(110) 및 아카이브(140)를 포함할 수 있다. 도 1에 표시된 운영 환경(100)은 특정 토폴로지의 제한된 수의 노드를 갖지만, 운영 환경(100)이 소정 구현을 위해 소망되는 바에 따라 더 많거나 적은 노드를 다른 토폴로지로 포함할 수 있다는 것을 알 수 있을 것이다. 다양한 실시예에서, 이메일 서버(110)는 전자 통신 시스템을 통해 메시지를 송수신하도록 이메일 메시징 시스템 내에 구현될 수 있다. 아카이브(140)는 이메일 메시징 시스템으로부터 전자 통신 시스템을 통해 수신되는 메시지를 아카이빙하기 위한 온-사이트(on-site) 또는 오프-사이트(off-site) 아카이빙 시스템 또는 데이터 저장 설비로서 구현될 수 있다. 표시된 바와 같이, 이메일 서버(110) 및 아카이브(140)는 네트워크(118) 및 적당한 무선 또는 유선 통신 매체를 통해 통신 가능하게 결합될 수 있다. 이메일 서버(110) 및 아카이브(140)는 네트워크(118)를 통해 정보를 통신하여 서로 사이의 동작을 조정할 수 있는데, 이는 일방향 또는 양방향 정보 교환을 수반할 수 있다. 네트워크(118)는 PSN(packet-switched network), CSN(circuit-switched network), 또는 양자의 조합을 포함할 수 있다. 네트워크(118)를 통해 통신되는 정보는 다양한 네트워크 인터페이스를 가로질러 송신되는 데이터 메시지로서 구현될 수 있다. 예시적 네트워크 인터페이스로는 병렬 인터페이스, 직렬 인터페이스, 및 버스 인터페이스를 들 수 있다.
이메일 서버(110)는 다양한 유형의 메시징 클라이언트와 통신하도록 동작할 수 있다. 일부 구현에서, 이메일 서버(110)는 Washington주 Redmond의 Microsoft Corporation으로부터의 MICROSOFT OFFICE OUTLOOK®과 같은 클라이언트-기반 소프트웨어 프로그램과 통신하기 위한 인터페이스를 제공할 수 있다. 또한, 이메일 서버(110)는, SMTP(Simple Mail Transfer Protocol) 클라이언트, HTTP(Hypertext Transfer Protocol) 클라이언트, MAPI(Messaging Application Programming Interface) 클라이언트, POP3(Post Office Protocol 3) 클라이언트, IMAP(Internet Message Access Protocol) 또는 IMAP4 클라이언트, NNTP(Network News Transfer Protocol) 클라이언트, 웹메일 클라이언트 등을 포함하지만 이에 제한되지 않는 다양한 다른 이메일 클라이언트 유형과 통신하기 위한 인터페이스를 제공할 수 있다.
이메일 서버(110)는 웹 액세스, 모바일 액세스, 및 동기화 기능성을 제공하도록 동작할 수 있고, IIS(Internet Information Services) 및 ISAPI(Internet Server Application Programming Interface) 애플리케이션은 SMTP, NNTP, IMAP4, 및 POP3 서비스를 제공하여 HTTP 통신을 통한 RPC(remote procedure call)를 포함하는 다양한 인터넷 액세스 프로토콜 및 HTTP-기반 프로토콜을 통한 통신을 가능하게 한다. 일부 구현에서, 이메일 서버(110)는 압축된 WbXML(Wireless Binary XML) 데이터로서 포매팅된 데이터를 통신하여 모바일 클라이언트를 위한 대역폭을 효율적으로 사용할 수 있다. 표준 인터넷 프로토콜 이외에, 이메일 서버(110)는, 회사 또는 다른 조직에 의해 사용되는 경우 독점 또는 비표준 프로토콜을 통한 통신도 지원할 수 있다.
다양한 구현에서, 이메일 서버(110) 및/또는 아카이브(140)는 설명된 실시예에 따른 하나 이상의 조정 및 교정 기술을 수행할 수 있다. 일부 실시예에서, 이메일 서버(110)는 서버-기반 이메일 소프트웨어 프로그램을 구현하는 서버 컴퓨팅 디바이스를 포함할 수 있다. 따라서, 일부 실시예에서는, 하나 이상의 조정 및 교정 기술이 Washington주 Redmond의 Microsoft Corporation으로부터의 MICROSOFT EXCHANGE SERVER®와 같은 서버-기반 소프트웨어 프로그램 내의 특징으로서 구현될 수 있다. 실시예가 이 맥락에서 제한되지 않는다는 것과 이메일 서버(110)가 웹 브라우저를 통해 이메일 서비스로의 액세스를 제공하는 웹-기반 이메일 애플리케이션을 포함하는 다른 유형의 애플리케이션, 프로그램, 또는 서비스를 구현할 수 있다는 것을 알 수 있을 것이다.
일부 실시예에서, 아카이브(140)는 하나 이상의 서버 애플리캐이션 및/또는 웹 서비스를 구현하는 서버 컴퓨팅 디바이스를 포함할 수 있다. 아카이브(140)는 HTTP(Hypertext Transfer Protocol), HTTPS(Hypertext Transfer Protocol over Secure Socket Layer), SMTP(Simple Mail Transfer Protocol), FTP(File Transfer Protocol) 등과 같은 통신 프로토콜을 사용해, 인터넷과 같은 컴퓨터 네트워크를 통해 통신하도록 설계된 플랫폼 및 언어 독립 포맷(language independent formats)을 사용해 다양한 웹 서비스를 구현할 수 있다. 따라서, 일부 실시예에서는, 하나 이상의 조정 및 교정 기술이 서버 애플리케이션 및/또는 웹 서비스 내의 특징으로서 구현될 수 있다. 실시예가 이 맥락에서 제한되지 않는다는 것과 아카이브(140)가 다른 유형의 온-사이트 또는 오프-사이트 아카이빙 시스템 및/또는 데이터 저장 설비에 의해 구현될 수 있다는 것을 알 수 있을 것이다.
일반적으로, 이메일 서버(110) 및 아카이브(140) 각각은 설명된 실시예에 따라 컴퓨팅 능력 및 통신 능력을 가진 적당한 임의 유형의 컴퓨팅 디바이스를 포함할 수 있거나 그것에 의해 구현될 수 있다. 그러한 능력을 구현하기 위해, 이메일 서버(110) 및 아카이브(140)는 개개 컴퓨팅 시스템(120, 120a) 및 통신 시스템(130, 130a)을 포함할 수 있다. 컴퓨팅 시스템(120, 120a)은, 하나 이상의 프로세서, 코-프로세서, 메모리 유닛, 칩셋, 컨트롤러, 주변 장치, 인터페이스, 발진기, 타이밍 디바이스, 비디오 카드, 오디오 카드, 멀티미디어 I/O(input/output) 컴포넌트 등과 같은, 다양한 컴퓨팅 요소를 포함할 수 있다. 통신 시스템(130, 130a)은, 송신기, 수신기, 송수신기, 라디오, 네트워크 인터페이스, 기저대역 프로세서, 안테나, 증폭기, 필터 등과 같은, 다양한 통신 요소를 포함할 수 있다.
컴퓨팅 시스템(120, 120a)은, 다른 요소 중에서도 특히, 개개 서버 프로그램(122, 142)을 구현할 수 있다. 서버 프로그램(122, 142) 및 그것에 포함되는 요소는 설명된 실시예에 따라 이메일 서버(110) 및 아카이브(140)의 동작을 지원하는 애플리케이션 프로그램, 소프트웨어 컴포넌트, 프로그램 모듈, 및/또는 프로그램 데이터 중 하나 이상의 유형을 포함할 수 있거나 그것에 의해 구현될 수 있다. 일부 구현에서는, 서버 프로그램(122)이 하나의 물리적 서버 컴퓨터 디바이스에 의해 구현될 수 있다. 다른 방법으로는, 다양한 서버 프로그램(122)이, 대다수 사용자를 지원하는 경우 지리적 배포 요구 사항을 충족시키기 위해 그리고/또는 성능 및 내결함성(fault tolerance)를 제공하기 위해 어쩌면 상이한 도메인 및 사이트에 배치되는, 여러 서버에 걸쳐 구현될 수 있다.
도 1에서 예시되는 실례에서, 서버 프로그램(122)은, 예를 들어, 이메일 서버(110)를 위해 특정 서비스 및 특징을 제공하도록 동작하는 허브 전송 서버 역할(124) 및 메일박스 서버 역할(126)을 포함하는 하나 이상의 서버 역할을 구현할 수 있다. 허브 전송 서버 역할(124)은 인커밍 및 아웃고잉 메시지를 처리하도록 동작할 수 있고, 메일박스 서버 역할(126)은 메일박스 및 공용 폴더 데이터를 호스팅하도록 동작할 수 있다. 표시된 바와 같이, 허브 전송 서버 역할(124)은 저널링 에이전트(125;journaling agent)를 포함할 수 있고, 메일박스 서버 역할(126)은 조정 에이전트(127)를 포함할 수 있다. 다양한 실시예에 따르면, 저널링 에이전트(125) 및 조정 에이전트(127)는, 다음에서 부연되는 바와 같이, 하나 이상의 조정 및 교정 기술을 수행할 수 있다. 또한, 서버 프로그램(122)은 설명된 실시예에 따라 다른 서버 역할 및/또는 다른 유형의 서버 애플리케이션과 같은 다른 서버 프로그램(128)을 포함할 수 있다.
도 1에서 예시되는 실례에서, 서버 프로그램(142)은, 예를 들어, 아카이브(140)를 위해 특정 서비스 및 특징을 제공하도록 동작하는 저널링 애플리케이션(144) 및 조정 애플리케이션(146)을 포함하는 하나 이상의 서버 애플리케이션을 구현할 수 있다. 다양한 실시예에 따르면, 저널링 애플리케이션(146) 및 조정 애플리케이션(146)은, 다음에서 부연되는 바와 같이, 하나 이상의 조정 및 교정 기술을 수행하기 위해 저널링 에이전트(125) 및 조정 에이전트(127)와 통신할 수 있다. 또한, 서버 프로그램(142)은, 설명된 실시예에 따라, 다른 유형의 서버 애플리케이션 및/또는 웹 서비스와 같은 다른 서버 프로그램(148)을 포함할 수 있다.
이메일 서버(110) 및 아카이브(140)는 설명된 실시예에 따라 이메일 메시지 및 다른 데이터와 같은 항목을 메일박스 및 폴더에 저장하기 위해 개개 데이터 저장소를 포함할 수 있거나 그것과 통신할 수 있다. 도 1을 참조하면, 이메일 서버(110)를 위한 데이터 저장소는 이메일 서버 데이터베이스(150)에 의해 구현될 수 있고, 아카이브(140)를 위한 데이터 저장소는 아카이브 데이터베이스(160)에 의해 구현될 수 있다. 예시의 목적을 위해 별도 요소인 것으로 표시되지만, 일부 실시예에서는, 이메일 서버 데이터베이스(150)가 이메일 서버(110)의 일부를 형성할 수 있고 그리고/또는 아카이브 데이터베이스(160)가 아카이브(140)의 일부를 형성할 수 있다는 것을 알 수 있을 것이다. 또한, 이메일 서버(110) 및 아카이브(140)를 위한 개개 데이터 저장소가 이메일 서버(110) 및 아카이브(140)와 함께 또는 다른 원격 디바이스에 상주할 수 있다는 것을 알 수 있을 것이다.
도 2는 다양한 실시예를 실시하기에 적당한 컴퓨팅 디바이스(200)를 위한 예시적 아키텍처를 제공한다. 컴퓨팅 디바이스(200)는, 예를 들어, 이메일 서버(110)를 나타낼 수 있다. 표시된 바와 같이, 컴퓨팅 디바이스(200)는, 프로세서(202) 및 시스템 메모리(204)를 포함하는 처리 시스템을 포함하는, 퍼스널 또는 서버 컴퓨터를 위한 기존의 컴퓨팅 아키텍처를 예시한다. 시스템 메모리(204)는, 다른 메모리 유형 중에서, RAM(random access memory;206) 및 ROM(read-only memory;208)을 포함할 수 있다. BIOS(basic input/output system)와 같은, I/O(input/output) 시스템은 ROM(208)에 저장된 논리를 사용해, 시동 동작 동안과 같이, 컴퓨팅 디바이스(200) 내의 요소들 간에서 정보를 전송하는 것을 지원하는 루틴을 구현할 수 있다. 시스템 버스(210)는 컴퓨팅 디바이스(200)의 요소 모두를 통신 가능하게 결합하여 정보 전송 및 데이터 처리 동작을 용이하게 한다.
컴퓨팅 디바이스(200)는 Washington주 Redmond의 Microsoft Corporation으로부터의 MICROSOFT WINDOWS® 운영 시스템 또는 다른 적당한 운영 시스템과 같은 운영 시스템;214)을 저장하기 위한 대용량 스토리지 디바이스(212)를 더 포함한다. 또한, 대용량 스토리지 디바이스(212)는, 다음에서 부연되는 바와 같이, 다양한 애플리케이션 프로그램 뿐만 아니라 다른 프로그램 모듈(216) 및 프로그램 데이터(218)도 저장할 수 있다.
대용량 스토리지 디바이스(212)는 시스템 버스(210)에 접속된 (표시되지 않은) 대용량 스토리지 컨트롤러를 통해 프로세서(202)에 접속된다. 대용량 스토리지 디바이스(212) 및 그것과 연관된 컴퓨터-판독 가능 매체는 컴퓨팅 디바이스(200)를 위한 비휘발성 저장을 제공한다. 여기에 포함된 컴퓨터-판독 가능 매체에 대한 설명은, 하드 디스크 또는 CD-ROM 드라이브와 같은, 대용량 스토리지 디바이스를 참조하지만, 당업자라면, 컴퓨터-판독 가능 매체가 컴퓨팅 디바이스(200)에 의해 액세스될 수 있는 어떤 이용 가능 매체일 수 있다는 것을 알 수 있어야 한다. 제한이 아닌 실례로서, 컴퓨터-판독 가능 매체는 컴퓨터 기억 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 기억 매체는 컴퓨터-판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 어떤 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 기억 매체는 RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 고체 상태 메모리 기술, CD-ROM, DVD 또는 다른 광 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 소정 정보를 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 기타 매체를 포함하지만, 그것으로 제한되지 않는다.
다양한 실시예에 따르면, 컴퓨팅 디바이스(200)는, 일부 구현에서, 인터넷과 같은, TCP(Transmission Control Protocol) 및 IP(Internet Protocol) 네트워크일 수 있는 네트워크(118)를 통한 원격 컴퓨터로의 논리 접속을 사용해 네트워크 환경에서 동작할 수 있다. 컴퓨팅 디바이스(200)는 시스템 버스(210)에 접속된 네트워크 인터페이스(220;예를 들어, 유선 또는 무선 네트워크 인터페이스)를 통해 네트워크(118)에 접속할 수 있다. 네트워크(118)는 설명된 실시예에 따라, 제한없이, WAN(wide area network), LAN(local area network), 및/또는 셀룰러 전화 네트워크를 포함하는 임의의 네트워크 유형을 포함할 수 있다는 것과 네트워크 인터페이스(220)는 GPRS, CDMA 1xRTT, IEEE 802.11, Bluetooth®(PAN), 및 다양한 네트워크 및/또는 원격 컴퓨터 시스템에 접속하기 위한 다른 것과 같은 다양한 전송 계층을 지원할 수 있다는 것을 알 수 있을 것이다.
컴퓨팅 디바이스(200)는 다수의 입력 디바이스(224)로부터 입력을 수신하고 처리하기 위한 I/O 컨트롤러(222)를 포함할 수 있다. 사용자는 키보드 및, 마우스, 트랙볼, 또는 터치 패드와 같은, 포인팅 디바이스의 다양한 입력 디바이스(224)를 통해 컴퓨팅 디바이스(200)에 명령 및 정보를 입력할 수 있다. 입력 디바이스(224)의 다른 실례로는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 들 수 있다. 입력 디바이스(224)는 시스템 버스(210)에 결합되는 I/O 컨트롤러(222)를 통해 프로세서(202)에 접속될 수 있지만, 병렬 포트, 게임 포트, 또는 USB(universal serial bus)와 같은, 다른 인터페이스 및 버스 구조에 의해서도 접속될 수 있다. 또한, I/O 컨트롤러(222)는, I/O 컨트롤러(222)를 통해 시스템 버스(210), 프린터, 스피커, 및 다른 주변 장치 디바이스에 접속되는 모니터 또는 다른 유형의 디스플레이 디바이스와 같은, 다양한 출력 디바이스(224)에 출력을 제공할 수 있다.
앞서 언급된 바와 같이, 다수 프로그램 모듈 및 데이터 파일이 컴퓨팅 디바이스(200)의 대용량 스토리지 디바이스(212) 및 RAM(206)에 저장될 수 있다. 도 2에서 예시되는 실례에서, 대용량 스토리지 디바이스(212) 및 RAM(206)은 운영 시스템(214) 뿐만 아니라 저널링 에이전트(125)를 포함하는 허브 전송 서버 역할(124) 및 조정 에이전트(127)를 포함하는 메일박스 서버 역할(126)을 포함하는 하나 이상의 서버 프로그램(122)도 저장할 수 있다. 다양한 실시예에 따르면, 조정 에이전트(127)는 하나 이상의 조정 및 교정 기술을 수행하도록 동작할 수 있다. 일 실시예에서, 예를 들어, 조정 에이전트(127)는 도 3을 참조하여 설명되는 바와 같이 구현될 수 있다.
도 3은 다양한 실시예를 실시하기에 적당한 조정 애플리케이션(300)의 일 실시예를 예시한다. 도 1 및 도 2를 참조하면, 일부 구현에서, 조정 애플리케이션(300)은 이메일 서버(110)에 상주하는 서버 프로그램(122) 중 하나로서의 조정 에이전트(127)로서 동작할 수 있다. 또한, 이메일 애플리케이션(300)의 하나 이상의 부분이 컴퓨팅 디바이스(200)의 RAM(206)에서의 애플리케이션 프로그램에 의해 또는 컴퓨터 소프트웨어 업계의 당업자라면 알 수 있을 기타 변형으로 구현될 수 있다.
표시된 바와 같이, 이메일 애플리케이션(300)은 메시지 스토리지(310)를 포함할 수 있다. 메시지 스토리지(310)가 제한이 아닌 예시의 목적을 위해 조정 애플리케이션(300)의 일부인 것으로 표시되지만, 메시지 스토리지(310)는 설명된 실시예에 따라 다양한 위치에 상주할 수 있다는 것을 알 수 있을 것이다. 예를 들어, 메시지 스토리지(310)는 이메일 서버(110) 및/또는 이메일 서버 데이터베이스(150)에 상주할 수 있다. 비제한적인 일 실례로서, 조정 애플리케이션(300)의 메시지 스토리지(310)는 컴퓨팅 디바이스(200)의 프로그램 데이터(218) 내에 데이터베이스 및/또는 하나 이상의 파일로 상주할 수 있다. 또 다른 비제한적인 실례로서, 메시지 스토리지(310)는 전부 또는 일부가 운영 시스템(214)과 같은 운영 시스템의 파일 시스템에서 사용자에 의해 특정되는 디렉토리에 상주할 수 있다.
도 3에서 예시되는 실례에서, 메시지 스토리지(310)는 Gen-0(세대 0) 메시지(312), Gen-1(세대 1) 메시지(314), Gen-2(세대 2) 메시지(316), 및 Gen-3(세대 3) 메시지(318)로서 분류될 수 있는 조정 보류 중인 하나 이상의 메시지를 포함한다. 다양한 실시예에서, 메시지 분류에 따라 쿼리가 발행될 수 있다. 예를 들어, 쿼리는 조정 세대에 기초해 발행되어 조정 프로세스의 성능을 최적화하고 아카이브(140)로의 쿼리 수를 최소화할 수 있다.
일부 실시예에서, 조정 보류 중인 메시지는 아카이브(140)와 연관된 지연에 기초해 Gen-0 메시지(312)로서 분류될 수 있다. 조정 애플리케이션(300)에 의해 수신되어 Gen-0 메시지(312)로서 분류되는 메시지는 최근에 아카이브(140)쪽으로 송신된 메시지에 대응할 수 있다. 다양한 실시예에 따르면, 아카이브(140)와 연관된 지연이 경과할 때까지 보류 중인 Gen-0 메시지(312)를 위한 쿼리가 발행되지 않고 지연된다.
특정 메시지가 조정 애플리케이션(300)에 의해 수신된 이후의 짧은 시구간 (time interval)동안, 특정 메시지의 사본이 캐시(320)에 국지적으로 저장되어 캐시(320)로부터 액세스될 수 있다. 일부 실시예에서, 조정 보류 중인 메시지는 특정 메시지의 사본이 캐시(320)로부터 국지적으로 이용 가능할 수 있을 때의 시구간에 기초해 Gen-1 메시지(314)로서 분류될 수 있다. 조정 애플리케이션(300)에 의해 수신되어 Gen-1 메시지(314)로서 분류되는 메시지는 아카이브(140)쪽으로 전달되었고 그리고/또는 아카이브(140)에 의해 처리되었을 것으로 예상되는 메시지에 대응할 수 있다. 또한, 메시지의 사본이 캐시(320)로부터 이용 가능한 동안, I/O 절감이 실현될 수 있다. 다양한 구현에서, 전달 확인 쿼리가 Gen-1 메시지(314)를 위해 송신되고 캐시(320)의 수명 동안 거의 모든 메시지를 처리하기 위한 시도가 이루어진다.
특정 메시지를 위한 전달 확인 쿼리에 대해 긍정 응답이 수신될 때, 조정 애플리케이션(300)은 메시지가 아카이빙된다는 것을 확인하고 메시지 스토리지(310)로부터 메시지를 삭제할 수 있다. 조정 애플리케이션(300)이 특정 메시지에 관한 부정 응답을 수신할 때, 미확인 메시지(unconfirmed message)는, 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다.
일부 실시예에서, 조정 보류 중인 메시지는 그러한 메시지의 아카이빙을 확인하는데 실패하는 것에 기초해 분류될 수 있다. 특정 메시지를 위해 부정 응답이 수신될 때, 조정 애플리케이션(300)은 메시지를 Gen-2 메시지(316)로서 분류할 수 있다. 메시지는 메시지 지연을 해결하는데 필요한 시간에 기초해 Gen-2 메시지(316)로서 분류된 상태를 유지할 수 있다. 조정 애플리케이션(300)에 의해 Gen-2 메시지(316)로서 분류되는 보류 메시지는 지연 문제를 경험 중인 미확인 메시지에 대응할 수 있다. 다양한 실시예에 따르면, Gen-2 메시지(316)를 위한 쿼리는 발행되지 않고 지연되지 않아 지연이 해결될 수 있게 한다.
조정 애플리케이션(300)에 의해 Gen-3 메시지(318)로서 분류되는 보류 메시지는 이제 해결될 수 있는 지연 문제를 가졌던 미확인 메시지에 대응할 수 있다. 조정 애플리케이션(300)은 Gen-3 메시지(218) 중 하나 이상을 위해 재시도 쿼리를 발행할 수 있다. 특정 메시지를 위해 긍정 응답이 수신되는 경우, 조정 애플리케이션(300)은 선행 미확인 메시지가 아카이빙되었다는 것을 확인할 수 있고 메시지는 메시지 스토리지(310)로부터 삭제될 수 있다. 재시도 쿼리를 위해 부정 응답이 수신되는 경우, 미확인 메시지는 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다.
하나 이상의 Gen-3 메시지(218)가 확인될 수 없는 경우, 조정 에이전트(127)는 Gen-3 메시지(318)를 아카이브(140)쪽으로 재전송하는 것에 의해 교정을 수행할 수 있다. 특정 메시지가 아카이빙된다는 것이 확인될 때까지, 미확인 메시지는 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다. 조정 애플리케이션(300)은 미확인 Gen-3 메시지(318)를 아카이브(140)쪽으로 재전송할 수 있고 각각의 미확인 메시지의 사본을 메시지 스토리지(310)에 유지할 수 있다. 특정 미확인 메시지가 아카이브(140)쪽으로 재전송된 후, 조정 프로세스는 특정 메시지가 아카이빙된다는 것이 확인될 때까지 다시 시작할 수 있다. 특정 메시지가 조정될 수 없을 때조차도, 메시지는 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다는 것을 알 수 있을 것이다.
표시된 바와 같이, 이메일 애플리케이션(300)은 여기에서 설명되는 조정 및 교정 기술의 일부 또는 전부를 수행하는 것을 책임질 수 있는 조정 및 교정 논리(330)를 포함할 수 있다. 도 3에서 예시되는 실례에서, 조정 및 교정 논리(330)는 조정될 메시지를 수신하기 위한 논리(332), 조정 보류 중인 메시지를 분류하기 위한 논리(334), 아카이브 쿼리를 발행하기 위한 논리(336), 아카이빙된 메시지의 확인을 위한 논리(338), 확인된 메시지를 삭제하기 위한 논리(340), 미확인 메시지의 교정을 위한 논리(342)를 포함한다.
일부 구현에서는, 조정 및 교정 논리(330)가 이메일 서버(110)상의 조정 에이전트(127)의 일부로서 조정 애플리케이션(300) 내에 상주할 수 있다. 그러나, 조정 및 교정 논리(330)가 다른 방법으로는 또는 추가적으로 설명된 실시예에 따르면 다양한 위치의 하나 이상의 컴퓨터-판독 가능 기억 매체 유형에 저장되는 컴퓨터-실행 가능 명령어로서 구현될 수 있다는 것을 알 수 있을 것이다.
도 3에서 예시되는 실례는 특정 논리 세트를 포함하지만, 조정 및 교정 논리(330)는 일반적인 기능의 예시적 구현을 제공한다는 것을 알 수 있을 것이다. 다르게 지시되지 않는다면 논리의 순서가 반드시 제시된 순서로 실행될 필요는 없다는 것을 이해할 수 있어야 한다. 또한, 조정 및 교정 논리(330)가 단계의 특정 순서를 수행하는 것으로서 설명될 수 있지만, 다른 실시예에 따라 단계의 다른 순서도 수행될 수 있다. 더 나아가, 조정 및 교정 논리(330)에 의해 수행되는 일부 개별 단계는 개별 단계에 적합한 다양한 순서로 수행될 수 있는 여러 하위-단계를 포함할 수 있다. 더 나아가, 특정 구현에 따라 조정 및 교정 논리(330)에 의해 추가 단계가 수행될 수 있거나 일부 단계가 누락될 수 있다.
도 4는 다양한 실시예를 실시하기에 적당한 조정 세대를 나타내는 다이어그램(400)의 일 실시예를 예시한다. 도 1 내지 도 3을 참조하면, 일부 구현에서, 조정 보류 중인 메시지는 이메일 서버(110)에 상주하는 조정 에이전트(127)에 의해 구현될 수 있는 조정 애플리케이션(300)에 의해 조정 세대로 분류될 수 있다. 그러나, 실시예가 그러한 구현으로 제한되는 것은 아니다. 더 나아가, 분류 또는 세대라는 용어(및 그것의 파생어)는 설명된 실시예에 따른 적당한 어떤 기술 또는 메시지의 그룹을 의미할 수 있다. 일부 운영 시스템 또는 애플리케이션은 메시지의 분류 또는 메시지의 그룹을 참조할 때 분류 또는 세대라는 용어를 사용하지 않을 수도 있지만, 그러한 시나리오는 설명된 실시예에 의해 커버될 것이 의도된다.
표시된 바와 같이, 조정 보류 중인 메시지는 대응하는 시구간 T0-T3에 따라 세대 0(Gen-0), 세대 1(Gen-l), 세대 2(Gen-2), 및 세대 3(Gen-3)로서 분류될 수 있다. 이 실례에서, 메시지와 연관된 시간이 시구간 T0 내에 위치하는 경우 메시지는 Gen-0 메시지로서, 시간이 시구간 T1 내에 위치하는 경우 Gen-1 메시지로서, 시간이 시구간 T2 내에 위치하는 경우 Gen-2 메시지로서, 그리고 시간이 시구간 T3 내에 위치하는 경우 Gen-3 메시지로서 분류될 수 있다. 일부 실시예는 시구간 T0-T3와 연관된 예시적인 특정 값을 설명할 수 있지만, 적당한 다른 값이 사용될 수 있다는 것을 이해할 수 있어야 한다. 또한, 설명된 실시예에 따라 메시지가 다른 방법으로 분류될 수 있다는 것을 알 수 있을 것이다.
다양한 구현에서, 특정 메시지와 연관된 시간은 특정 메시지를 포함하는 저널 보고서의 사본이 수신된 이후로 경과된 시간량에 대응할 수 있다. 예를 들어, 특정 메시지와 연관된 시간은 특정 메시지를 포함하는 저널 보고서의 사본이 조정 에이전트(127)에 의해 수신된 때 그리고/또는 특정 메시지가 메시지 스토리지(310)에 저장되는 때일 수 있다. 다른 실시예에서, 메시지와 연관된 시간은 저널 보고서의 사본에서 제공될 수 있는 메시지가 아카이브(140)쪽으로 송신된 시간에 기초할 수 있다.
특정 메시지가 저널 보고서의 사본으로 조정 에이전트(127)에 의해 수신된 후, 원본 저널 보고서가 아카이브(140)쪽으로 전달되고 그리고/또는 아카이브(140)에 의해 처리되는데는 짧은 시구간이 필요할 수 있다. 따라서, 일부 실시예에서, 조정 보류 중인 메시지는 아카이브(140)와 연관된 전달 및/또는 처리 지연과 같은 지연에 기초해 분류될 수 있다.
도 4에서 예시되는 실례에서, 메시지는 메시지와 연관된 시간이 시구간 T0 내에 위치하는 경우 Gen-0 메시지로서 분류될 수 있다. 표시된 바와 같이, 시구간 T0의 길이는 원본 저널 보고서가 아카이브(140)쪽으로 전달되기 위한 예상 레벨 합의(SLA;expected level agreement) 또는 지연(△SLA)에 대응할 수 있다. 일반적으로, 시구간 △SLA는, 약 5분과 같은, 비교적 짧은 시구간일 것이다.
다양한 실시예에 따르면, 시구간 △SLA는 아카이브(140)쪽으로 송신된 메시지를 위한 전달 및/또는 처리 지연에 기초할 수 있다. 일부 실시예에서, 시구간 △SLA는 대다수 저널 보고서가 아카이브(140)쪽으로 전달되는데 걸린 시간량으로 가정 또는 관찰될 수 있다. 또한, 시구간 △SLA는 아카이브(140)에 의해 수행될 것으로 약정되는 서비스 및/또는 시간의 레벨을 특정하는 벤더 SLA에 의해 정의될 수 있다. 일부 경우에서, 시구간 △SLA는 아카이브(140)에 의해 제공되는 정보에 기초할 수 있다. 예를 들어, 일부 구현에서는, 조정 에이전트(127)가 아카이브(140)에 문의하여 메시지를 처리하기 위한 예상 SLA 또는 지연과 같은 특정 구성 정보를 획득할 수 있다.
표시된 바와 같이, 시구간 T0은 △SLA에 대응할 수 있고 △SLA가 경과한 이후에 끝날 수 있다. 다양한 구현에서, 특정 메시지는 시구간 T0 동안 그리고, 특정 메시지를 포함하는 저널 보고서의 사본이 조정 에이전트(127)에 의해 수신된 때 및/또는 메시지가 메시지 스토리지(310)에 저장된 때와 같은, 메시지와 연관된 시간으로부터 △SLA가 경과될 때까지 Gen-0 메시지로서 분류될 수 있다. 따라서, 조정 에이전트(127)에 의해 수신되어 Gen-0로서 분류되는 메시지는 최근에 아카이브(140)쪽으로 송신된 메시지에 대응할 수 있다.
특정 메시지가 조정 에이전트(127)에 의해 수신된 이후의 짧은 시구간 동안, 조정될 메시지의 사본은 캐시(320)에 국지적으로 저장되어 캐시(320)로부터 액세스될 수 있다. 따라서, 일부 실시예에서, 조정 보류 중인 메시지는 이 시구간 또는 캐시(320)와 연관된 캐시 수명(△Cache)에 기초해 분류될 수 있다. 일반적으로 캐시 수명(△Cache)은 예상 지연(△SLA)보다 길 것이고, 일부 경우에서는, 예상 지연(△SLA)보다 길 것이 요구된다. 일부 실시예에서, 캐시 수명(△Cache)은 약 10분일 수 있다.
캐시 수명(△Cache)은 일반적으로, RAM(206)과 같은, 시스템에서 이용 가능한 RAM에 직접-비례하여 달라질 것이다. 예를 들어, 캐시 수명(△Cache)이 10분인 이메일 서버(110)에서, 캐시 수명(△Cache)은 RAM을 배가하는 것에 의해 대부분 배가될 수 있다. 따라서, △Cache 시구간은 통상적으로, 5분 정도인 경향이 있으며 비교적 바꾸기 어려운, 시구간 △SLA와 같은, 대다수 나머지 시구간보다 훨씬 더 가변적이다. RAM과의 선형 관계 때문에, 캐시 수명(△Cache)은 조정 에이전트(127)에서 실행 중인 서버(들)에 RAM을 추가하는 것에 의해 쉽게 증가될 수 있다. 이로 인해, 캐시 수명(△Cache)은 필요한 경우 SLA 시구간을 불편 없이 초과할 수 있고 I/O 절감을 발생시킬 수 있다.
도 4에서 예시되는 실례에서, 메시지와 연관된 시간이 시구간 T1 내에 위치하는 경우 Gen-1 메시지로서 분류될 수 있다. 표시된 바와 같이, 시구간 T1의 길이는 △SLA의 만료 이후 및 캐시 수명(△Cache)의 만료 이전의 시간 창에 대응할 수 있다. 다양한 구현에서, 특정 메시지는 시구간 T1 동안 그리고, 특정 메시지를 포함하는 저널 보고서의 사본이 조정 에이전트(127)에 의해 수신된 때 및/또는 메시지가 메시지 스토리지(310)에 저장된 때와 같은, 메시지와 연관된 시간으로부터 캐시 수명(△Cache)이 경과될 때까지 Gen-1 메시지로서 분류될 수 있다. 따라서, 조정 에이전트(127)에 의해 수신되어 Gen-1으로서 분류되는 메시지는 아카이브(140)쪽으로 전달 및/또는 아카이브(140)에 의해 처리된 것으로 예상되는 메시지에 대응할 수 있다.
다양한 실시예에서, 쿼리는 메시지 분류에 따라 발행될 수 있다. 예를 들어, 쿼리는 조정 세대에 기초해 발행되어 조정 프로세스의 성능을 최적화하고 아카이브(140)쪽으로의 쿼리 수를 최소화할 수 있다.
조정 에이전트(127)에 의해 수신되어 Gen-0로서 분류되는 메시지는 최근에 아카이브(140)쪽으로 송신된 메시지에 대응할 수 있다. 다양한 실시예에 따르면, Gen-0로서 분류된 보류 메시지를 위해서는 조정 에이전트(127)에 의해 쿼리가 발행되지 않는다. 예를 들어, △SLA가 경과하기 전에 저널 보고서의 배치(disposition)에 관한 쿼리가 아카이브(140)쪽으로 송신되지 않으면, 쿼리는 아마도 부정 응답(Nak)을 초래할 것이다. 따라서, T0 동안 Gen-0 메시지를 위한 쿼리의 발행은 수행되지 않으며 △SLA의 만료까지 연기될 수 있다.
조정 에이전트(127)에 의해 수신되어 Gen-1으로서 분류되는 메시지는 아카이브(140)에 저장될 것으로 예상되는 메시지에 대응한다. 또한, 메시지의 사본이 캐시(320)로부터 이용 가능한 동안, I/O 절감이 실현될 수 있다. 그러나, 캐시 수명(△Cache)의 만료 이후에, 메시지의 사본은 캐시(320)를 벗어날 수 있고, 더 이상 I/O 절감은 불가능하다. 다양한 실시예에서, 초기 쿼리는 Gen-1으로서 분류되는 보류 메시지를 위해 송신된다. 그러한 실시예에서, 조정 에이전트(127)는 캐시 수명(△Cache)에 기초할 수 있고 캐시 수명(△Cache)의 만료까지 연장할 수 있는 시구간 T1 동안에 거의 모든 메시지를 처리할 것을 시도할 수 있다. 따라서, 조정 프로세스의 성능은 조정 에이전트(127)가 아카이브(140)에 저장될 것으로 예상되는 메시지를 위해 쿼리를 발행한 이후로 최적화될 수 있고 캐시(320)로부터 메시지에 액세스하는 것에 의해 I/O 절감을 실현할 수 있다.
시구간 T1 동안, 조정 에이전트(127)는 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 하나 이상의 Gen-1 메시지를 위한 메시지 ID를 포함하는 초기 쿼리를 발행할 수 있다. 초기 쿼리는 조정 애플리케이션(146)을 통해 아카이브(140)에 의해 수신될 수 있고, 쿼리에서 식별되는 메시지 각각이 수신되었는지 그리고 아카이브(140)에 의해 완전히 저장되는지의 여부에 대한 판정이 내려질 수 있다. 쿼리에서 식별되는 메시지 모두가 완전히 저장된다고 판정한 이후에, 아카이브(140)는 조정 애플리케이션(146)을 통해 각각의 메시지가 저장된다는 것을 지시하는 긍정 응답(Ack)으로서 응답할 수 있다. 특정 메시지를 위해 긍정 응답이 수신될 때, 조정 에이전트(127)는 메시지가 아카이빙된다는 것을 확인하고 로컬 메시지 저장소(310)로부터 메시지를 삭제할 수 있다.
그러나, 일부 경우에서는, 쿼리에서 식별되는 메시지 중 하나 이상이 아카이브(140)에 의해 저장되지 않는다고 판정될 수 있다. 예를 들어, 쿼리가 수신되는 시점에서 아카이브(140)가 특정 메시지를 수신하지 않았을 수도 있다. 그러한 경우, 아카이브(140)는 저장되지 않는 메시지를 식별하는 부정 응답(Nak)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 조정 에이전트(127)에 의해 발행되는 초기 전달 확인 쿼리는 아카이브(140)에 저장될 것으로 예상되기 때문에, 부정 응답의 수신은 통상적인 메시지 전달 및 처리 지연 또는 좀더 심각한 문제를 지시할 수 있다. 조정 에이전트(127)가 아카이브(140)로부터 특정 메시지에 관한 부정 응답을 수신하는 경우, 미확인 메시지는 메시지 스토리지(310)에 보유되어 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지의 가용성을 보장한다.
특정 메시지를 위해 부정 응답이 수신되는 경우, 조정 에이전트(127)는 메시지를 Gen-2로서 분류할 수 있다. 따라서, 일부 실시예에서, 조정 보류 중인 메시지는 그러한 메시지의 아카이빙을 확인하는데 실패하는 것에 기초해 분류될 수 있다. 메시지의 아카이빙이 확인될 수 없다면, 그것은 통상적인 메시지 전달 및 처리 지연이 경험되고 있으며 지연이 해결될 수 있도록 하기 위해 추가 시간이 필요한 경우일 수 있다.
도 4에서 예시되는 실례에서, 메시지는 메시지와 연관된 시간이 시구간 T2 내에 위치하는 경우 Gen-2 메시지로서 분류될 수 있다. 표시된 바와 같이, 시구간 T2의 길이는 문제 해결 SLA(△IssueResolution) 시구간에 대응할 수 있다. 다양한 실시예에 따르면, 시구간 △IssueResolution은 메시지 지연을 해결하는데 필요한 시간에 기초할 수 있다. 예를 들어, 시구간 △IssueResolution은 자동 정정을 통해 그리고/또는 수동 개입에 의해 지연을 발생시키는 문제를 해결하는 정상적인 과정에서 대다수 메시지 지연 문제가 해결될 것으로 예상되거나 관찰되는 시간량일 수 있다. 일반적으로, 시구간 △IssueResolution은, 약 5 시간과 같이, 비교적 긴 시주기일 것이다.
조정 보류 중인 메시지는 메시지 지연을 해결하기 위한 시구간에 기초해 분류될 수 있다. 이상적으로, Gen-2 또는 Gen-3으로의 메시지 분류는 드문 경우라는 것을 알 수 있을 것이다. 다양한 구현에서, 특정 메시지는 시구간 T2 동안 그리고 시구간 △IssueResolution이 경과될 때까지 Gen-2 메시지로서 분류된 다음 Gen-3로서 분류될 수 있다. 예를 들어, 특정 미확인 메시지는 특정 미확인 메시지를 포함하는 저널 보고서의 사본이 조정 에이전트(127)에 의해 수신된 때 및/또는 미확인 메시지가 메시지 스토리지(310)에 처음으로 저장된 때로부터 (△Cache+△IssueResolution)의 시구간이 경과될 때까지 Gen-2로서 분류될 수 있다. 다른 방법으로, 특정 미확인 메시지는 특정 미확인 메시지를 위한 초기 전달 확인 쿼리가 송신된 때로부터 시구간 △IssueResolution이 경과될 때까지 Gen-2로서 분류될 수 있다.
조정 에이전트(127)에 의해 Gen-2로서 분류되는 보류 메시지는 지연 문제를 경험 중인 미확인 메시지에 대응할 수 있다. 다양한 실시예에 따르면, 조정 에이전트(127)에 의해 Gen-2로서 분류되는 보류 메시지를 위해서는 쿼리가 발행되지 않는다. 예를 들어, △IssueResolution이 경과되기 전에 저널 보고서의 배치에 관한 재시도 쿼리가 송신된다면, 쿼리는 아마도 또 다른 부정 응답(Nak)을 초래할 것이다. 따라서, Gen-2 메시지를 위한 쿼리 발행이 T2 동안에는 수행되지 않으며 △IssueResolution의 만료까지 지연될 수 있다.
다양한 실시예에서, Gen-3 메시지로서 분류되는 메시지는 T0+T1+T2 보다 오래된 메시지를 포함할 수 있다. 일부 실시예에서, 예를 들어, Gen-3로서 분류되는 메시지는 현재 시점 이전의 시구간 △Cache+△IssueResolution 이전에 제출된 모든 메시지에 미친다. 조정 에이전트(127)에 의해 Gen-3로서 분류되는 보류 메시지는 이제 해결될 수 있는 지연 문제를 가졌던 미확인 메시지에 대응할 수 있다.
메일 지연이 해결될 수 있도록 시구간 △IssueResolution이 경과하게 한 후, 조정 에이전트(127)는 Gen-3로서 분류되는 하나 이상의 미확인 메시지를 위해 재시도 쿼리를 발행할 수 있다. 시구간 T3 동안, 예를 들어, 조정 에이전트(127)는 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 하나 이상의 Gen-3 메시지를 위한 메시지 ID를 포함하는 재시도 쿼리를 발행할 수 있다. 일부 실시예에서, 조정 에이전트(127)는 보류 중인 Gen-3 메시지의 일부 또는 전부를 위해 주기적으로 재시도 쿼리를 발행할 수 있다. 예를 들어, 조정 에이전트(127)는 매 24 시간마다 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 현재 시점 이전의 시구간 △Cache+△IssueResolution 이전에 앞서 제출된 모든 Gen-3 메시지를 위한 모든 메시지 ID를 포함하는 재시도 쿼리를 발행할 수 있다.
재시도 쿼리는 조정 애플리케이션(146)을 통해 아카이브(140)에 의해 수신될 수 있고, 재시도 쿼리에서 식별되는 메시지 각각이 현재 수신되었는지 그리고 아카이브(140)에 의해 완전히 저장되는지의 여부에 대한 판정이 이루어질 수 있다. 재시도 쿼리에서 식별되는 Gen-3 메시지 모두가 완전히 저장된다고 판정되면, 아카이브(140)는 각각의 메시지가 저장된다는 것을 지시하는 긍정 응답(Ack)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 특정 메시지를 위해 긍정 응답이 수신되는 경우, 조정 에이전트(127)는 선행 미확인 메시지가 아카이빙되었다는 것을 확인할 수 있고 로컬 메시지 저장소(310)로부터 메시지를 삭제할 수 있다.
그러나, 재시도 쿼리에서 식별되는 메시지 중 하나 이상이 저장되지 않는다고 판정되면, 아카이브(140)는 저장되지 않는 메시지를 식별하는 부정 응답(Nak)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 조정 에이전트(127)가 아카이브(140)로부터 특정 메시지에 관한 부정 응답을 수신하는 경우, 미확인 메시지는 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다.
일부 실시예에서, Gen-3 메시지를 위한 재시도 쿼리에 대해 부정 응답이 수신되는 경우, 조정 에이전트(127)는 최대 지연 임계치에 도달되었는지를 판정할 수 있다. 최대 지연 임계치에 도달되지 않았다면, 조정은 최대 지연 임계치에 도달될 때까지 아카이브(140)의 조정 애플리케이션(146)과 주기적으로 접촉하여 미확인 메시지에 대한 추가 재시도 쿼리를 발행할 수 있다.
다른 실시예에서는, Gen-3 메시지를 위한 재시도 쿼리에 대해 부정 응답이 수신되는 경우, 조정 에이전트(127)가 최대 횟수의 재시도 시도(maximum number of retry attempts)에 도달되었는지를 판정할 수 있다. 최대 횟수의 재시도 시도에 도달되지 않았다면, 조정은 최대 횟수의 재시도 시도에 도달될 때까지 아카이브(140)의 조정 애플리케이션(146)과 주기적으로 접촉하여 미확인 메시지에 대한 추가 재시도 쿼리를 발행할 수 있다.
메시지가 확인될 수 없을 때, 조정 에이전트(127)는 미확인 메시지를 아카이브(140)쪽으로 재전송하는 것에 의해 미확인 메시지의 교정을 수행할 수 있다. 일부 실시예에서, 조정 에이전트(127)는 최대 지연 또는 최대 횟수의 재시도 시도에 도달되었을 때 미확인 메시지의 교정을 수행할 수 있다. 다른 실시예에서는, 최대 지연 또는 최대 횟수의 재시도 시도가 존재하지 않을 수 있고, 조정 에이전트(127)는 단일 재시도 시도의 실패시에 교정을 시작할 수 있다. 예를 들어, Gen-3 메시지를 위한 첫번째 재시도 시도가 실패하면, 조정 에이전트(127)는, 아카이브(140)로부터 부정 응답을 수신하는 즉시, 메시지를 위한 교정에 착수할 수 있다.
특정 메시지가 아카이빙된다는 것이 확인될 때까지, 미확인 메시지는 메지시 스토리지(310)에 보유되어 메시지의 가용성을 보장한다. 다양한 실시예에 따르면, 조정 에이전트(127)는 미확인 메시지를 아카이브(140)쪽으로 재전송하여 미확인 메시지의 사본을 메시지 스토리지(310)에 보유할 수 있다. 미확인 메시지가 아카이브(140)쪽으로 재전송된 후, 조정 프로세스는 특정 메시지가 아카이빙된다는 것이 확인될 때까지 다시 시작할 수 있다.
몇번의 재전송 시도 이후에도 특정 메시지가 조정될 수 없다면, 개입이 필요할 수 있다. 다양한 실시예에 따르면, 소정 횟수의 재전송 시도의 실패와 같은 교정의 실패시에, 조정 에이전트(127)는 경보를 발생시켜 송신할 수 있다. 예를 들어, 몇번의 재전송 시도 이후에도 조정이 실패하면, 문제를 그리고 문제를 해결하기 위해 어떤 수동 프로세스가 필요하다는 것을 관리자에게 통지하는 경보가 생성 이메일 시스템의 관리자쪽으로 송신될 수 있다. 특정 메시지가 조정될 수 없는 경우라 하더라도, 메시지는 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다는 것을 알 수 있을 것이다.
도 5는 다양한 실시예를 실시하기에 적당한 메시지 흐름(500)의 일 실시예를 예시한다. 표시된 바와 같이, 메시지 흐름(500)은 이메일 서버(110)와 아카이브(140) 사이에서의 메시지(501-509) 교환을 수반할 수 있다. 일부 구현에서, 메시지(501-509)는, 앞서 설명된 바와 같이, 저널링 에이전트(125), 조정 에이전트(127), 저널링 애플리케이션(144), 및 조정 애플리케이션(146)에 의해 송신되고 수신된다. 그러나, 실시예가 그러한 구현으로 제한되는 것은 아니다. 더 나아가, 도 5에서 예시되는 실례는 특정 메시지 세트를 포함하지만, 메시지 흐름(500)은 일반적인 기능의 예시적 구현을 제공한다는 것을 알 수 있을 것이다. 특정 구현에 따라 다른 또는 추가 메시지가 포함될 수 있다는 것과 일부 메시지는 생략될 수 있다는 것을 이해할 수 있어야 한다.
표시된 바와 같이, 이메일 서버(110)는, 저널링 에이전트(125)를 통해, 저널 보고서(501)를 아카이브(140)쪽으로 송신한다. 다양한 구현에서, 저널 보고서(501)는 저널링 조건의 세트에 기초해 생성될 수 있다. 예를 들어, 이메일 메시지가 이메일 서버(110)에 의해 수신자쪽으로 송신될 때, 저널링 에이전트(125)는 이메일 메시지가 저널링을 위한 조건을 충족시키는지를 판정할 수 있다. 조건이 충족되어 저널링이 적용되어야 한다면, 저널링 에이전트(125)는 이메일 메시지를 저널 보고서(501)로서 패키징한다.
저널 보고서(501)는, 예를 들어, 아카이브(140)를 위한 저널링 조건을 충족시켰던 이메일 메시지의 사본과 메시지를 위한 메시지 ID를 포함하는 메타데이터, 수신자의 신원, 및 메시지를 위한 다른 전송 데이터를 포함할 수 있다. 이메일 서버(110)는 이메일 메시지를 수신자쪽으로 송신하고 저널 보고서(501)를 저널링 에이전트(125)를 통해 아카이브(140)쪽으로 송신한다. 저널 보고서(501)는, 예를 들어, SMTP를 통해 이메일에 대한 아카이브(140)쪽으로 송신될 수 있다.
다양한 실시예에 따르면, 저널 보고서(501)가 생성될 때, 저널링 에이전트(125)는, 메시지 스토리지(310)와 같은, 로컬 메일박스 또는 보유 영역(holding area)에서의 저장을 위해 저널 보고서의 사본(502) 또한 조정 에이전트(127)쪽으로 송신한다. 저널 보고서의 사본(502)은 수신자쪽으로 송신되고 아카이브(140)쪽으로 송신되는 동일한 메시지의 사본을 포함할 수 있는 조정될 메시지를 포함한다. 저널 보고서의 사본(502) 또한 메시지를 위한 메시지 ID, 수신자의 신원, 및 메시지를 위한 다른 전송 데이터를 포함할 수 있다.
앞서 설명된 바와 같이, 일부 구현에서, 보유 영역의 조정 보류 중인 메시지는 여러 조정 세대로 분류될 수 있다. 다양한 실시예에 따르면, 조정 보류 중인 메시지는 아카이브(140)와 연관된 지연에 기초해, 조정될 메시지의 사본이 캐시(320)로부터 국지적으로 이용 가능할 수 있는 때에 기초해, 메시지의 아카이빙에 대한 확인 실패에 기초해, 메시지 지연을 해결하기 위한 시구간에 기초해, 또는 다른 방법으로 분류될 수 있다. 그러한 구현에서, 쿼리는 메시지 분류에 따라 발행되어 조정 프로세스의 성능을 최적화하고 아카이브(140)로의 쿼리 수를 최소화할 수 있다.
도 5에서 예시되는 실례에서, 조정 에이전트(127)는 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 구성 쿼리(503)를 송신할 수 있다. 다양한 구현에서, 구성 쿼리(503)는 예상 SLA 또는 메시지를 처리하기 위한 지연과 같은 아카이브(140)로부터의 특정 구성 정보를 요청하는 웹 서비스 쿼리를 포함할 수 있다. 구성 쿼리(503)는 조정 애플리케이션(146)을 통해 아카이브(140)에 의해 수신될 수 있다. 아카이브(140)는 조정 애플리케이션(146)을 통해 요청된 구성 정보를 포함하는 구성 응답(504)으로서 구성 쿼리(503)에 응답한다.
표시된 바와 같이, 이메일 서버(110)는, 조정 에이전트(127)를 통해, 하나 이상의 쿼리를 조정 애플리케이션(146)쪽으로 발행하여 아카이브(140)에서의 특정 메시지 도달 및 저장을 보장할 수 있다. 다양한 실시예에서, 조정 에이전트(127)는 아카이브(140)와 접촉하고, 아카이브(140)쪽으로 송신된 메시지가 완전히 보존되었는지를 문의하며, 아카이브(140)에서의 메시지 저장을 확인하기 위한 비동기 조정 프로세스를 수행할 수 있다. 아카이브(140)가 소정 메시지를 위한 저장을 확인할 수 없다면, 조정 에이전트(127)는 일련의 단계를 수행하여 이후 시점에 아카이브(140)에 다시 요청할 수 있다. 아카이브(140)가 저장을 전혀 확인할 수 없는 경우라 하더라도, 조정 에이전트(127)는 시청, 인쇄, 저장 등에 이용 가능한 메시지의 로컬 사본을 보유할 것이다.
도 5에서 예시되는 실례에서, 조정 에이전트(127)는 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 전달 확인 쿼리(505)를 송신할 수 있다. 다양한 구현에서, 전달 확인 쿼리(505)는 △SLA 만료 이후의 시구간 T1 동안에 송신될 수 있다. 전달 확인 쿼리(505)는, 예를 들어, 하나 이상의 Gen-1 메시지를 위한 메시지 ID를 포함할 수 있다. 조정 에이전트(127)에 의해 수신되어 Gen-1으로서 분류되는 메시지는 아카이브(140)에 저장될 것으로 예상되는 메시지에 대응할 수 있다. 또한, 메시지의 사본이 캐시(320)로부터 이용 가능할 수 있어 I/O 절감을 실현한다.
전달 확인 쿼리(505)는 조정 애플리케이션(146)을 통해 아카이브(140)에 의해 수신될 수 있고, 전달 확인 쿼리(505)에서 식별되는 메시지 각각이 수신되었는지 그리고 아카이브(140)에 의해 완전히 저장되는지의 여부에 대한 판정이 행해질 수 있다. 판정에 기초해, 아카이브(140)는 전달 확인 쿼리 응답(506)으로서 조정 애플리케이션(146)을 통해 전달 확인 쿼리(505)에 응답한다. 다양한 구현에서, 전달 확인 쿼리 응답(506)은 시구간 T1 동안에 송신될 수 있고 하나 이상의 Gen-1 메시지를 위한 메시지 ID를 포함할 수 있다.
전달 확인 쿼리(505)에서 식별되는 메시지 모두가 완전히 저장된다고 판정되면, 아카이브(140)는 각각의 메시지가 저장된다는 것을 지시하는 긍정 응답(Ack)을 포함하는 전달 확인 쿼리 응답(506)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 전달 확인 쿼리 응답(506)이 긍정 응답을 포함할 때, 조정 에이전트(127)는 메시지가 아카이빙된다는 것을 확인하고 로컬 메시지 저장소(310)로부터 메시지를 삭제할 수 있다.
전달 확인 쿼리(505)에서 식별되는 메시지 중 하나 이상이 아카이브(140)에 의해 저장되지 않는다고 판정되면, 아카이브(140)는 저장되지 않는 메시지를 식별하는 부정 응답(Nak)을 포함하는 전달 확인 쿼리 응답(506)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 조정 에이전트(127)가 부정 응답을 포함하는 전달 확인 쿼리 응답(506)을 수신할 때, 미확인 메시지는 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지 스토리지(310)에 보유되어 가용성을 보장한다.
하나 이상의 메시지가 미확인될 때, 조정 에이전트(127)는 아카이브(140)의 조정 애플리케이션(146)과 접촉하여 재시도 쿼리(507)를 송신할 수 있다. 다양한 구현에서, 재시도 쿼리(507)는 메일 지연이 해결될 수 있도록 시구간 △IssueResolution을 경과시킨 후의 시구간 T3 동안에 송신될 수 있다. 재시도 쿼리(507)는 하나 이상의 Gen-3 메시지를 위한 메시지 ID를 포함할 수 있다. 조정 에이전트(127)에 의해 Gen-3로서 분류되는 보류 메시지는 이제 해결될 수 있는 지연 문제를 가졌던 미확인 메시지에 대응할 수 있다.
재시도 쿼리(507)는 조정 애플리케이션(146)을 통해 아카이브(140)에 의해 수신될 수 있고, 재시도 쿼리(507)에서 식별되는 메시지 각각이 수신되었는지 그리고 아카이브(140)에 의해 완전히 저장되는지의 판정이 행해질 수 있다. 판정에 기초해, 아카이브(140)는 조정 애플리케이션(146)을 통해 재시도 쿼리 응답(508)으로서 재시도 쿼리(507)에 응답한다. 다양한 구현에서, 재시도 응답(508)은 시구간 T3 동안에 송신될 수 있고 하나 이상의 Gen-3 메시지를 위한 메시지 ID를 포함할 수 있다.
재시도 쿼리(507)에서 식별되는 메시지 모두가 완전히 저장된다고 판정되면, 아카이브(140)는 각각의 메시지가 저장된다는 것을 지시하는 긍정 응답(Ack)을 포함하는 전달 확인 쿼리 응답(508)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 재시도 쿼리 응답(508)이 긍정 응답을 포함할 때, 조정 에이전트(127)는 메시지가 아카이빙된다는 것을 확인하고 로컬 메시지 저장소(310)로부터 메시지를 삭제할 수 있다.
재시도 쿼리(507)에서 식별되는 메시지 중 하나 이상이 아카이브(140)에 의해 저장되지 않는다고 판정되면, 아카이브(140)는 저장되지 않는 메시지를 식별하는 부정 응답(Nak)을 포함하는 재시도 쿼리 응답(508)으로서 조정 애플리케이션(146)을 통해 응답할 수 있다. 조정 에이전트(127)가 부정 응답을 포함하는 재시도 쿼리 응답(508)을 수신할 때, 미확인 메시지는 메시지가 아카이빙된다는 것이 확인될 수 있을 때까지 메시지 스토리지(310)에 보유되어 가용성을 보장한다.
일부 실시예에서는, 부정 응답을 포함하는 재시도 쿼리 응답(508)이 수신될 때, 조정 에이전트(127)는 최대 지연 임계치 및/또는 최대 횟수의 시도에 도달할 때까지 추가 재시도 쿼리를 발행할 수 있다. 다른 실시예에서, 조정 에이전트(127)는 단일 재시도 시도의 실패시에 즉각적으로 교정을 시작할 수 있다.
메시지가 확인될 수 없을 때, 조정 에이전트(127)는 메시지를 아카이브(140)쪽으로 재전송하는 것에 의해 미확인 메시지의 교정을 수행할 수 있다. 표시된 바와 같이, 일부 실시예에서, 조정 에이전트(127)는 재전송 메시지(509)를 저널링 애플리케이션(144)쪽으로 송신하는 것에 의해 미확인 메시지의 교정을 수행할 수 있다. 다른 실시예에서, 조정 에이전트(127)는 아카이브(140)쪽으로의 재전송을 위해 재전송 메시지(509)를 저널링 에이전트(125)쪽으로 송신하는 것에 의해 미확인 메시지의 교정을 수행할 수 있다.
재전송 메시지(509)는 미확인 메시지의 사본을 포함할 수 있고, 예를 들어, SMTP를 통해 저널 보고서 이메일 메시지로서 아카이브(140)쪽으로 송신될 수 있다. 다양한 구현에서, 재전송 메시지(509)를 송신하는 것은 아카이브(140)쪽으로 송신된 원본 저널 보고서(501)를 재생한다. 조정 에이전트(127) 또한 미확인 메시지의 사본을 메시지 스토리지(310)에 보유할 것이다.
재전송 메시지(509)가 송신된 후, 조정 프로세스는 특정 메시지가 아카이빙된다는 것이 확인될 때까지 다시 시작할 수 있다. 몇번의 재전송 시도 이후에도 특정 메시지가 조정될 수 없다면, 조정 에이전트(127)는 경보를 발생시켜 관리자쪽으로 송신할 수 있다.
다양한 실시예에 따르면, 메시지 흐름(500)은 이메일 서버(110)와 아카이브(140) 사이에서 통신하기 위한 조정 프로토콜에 따라 하나 이상의 메시지 교환을 수반할 수 있다. 조정 프로토콜은, 예를 들어, 웹 서비스 프로토콜 및 웹 서비스 스키마를 사용하는 웹 서비스로서 구현될 수 있다. 일부 실시예에서, 조정 프로토콜은 XML 문서를 SOAP(Simple Object Access Protocol) 통신 프로토콜 및 애플리케이션 사이의 통신을 위한 절차에 따라 통신하도록 구현될 수 있다. 웹 서비스로서 구현될 때, 조정 프로토콜은 HTTP, HTTPS, SMTP, FTP 등과 같은 통신 프로토콜에 따라 인터넷과 같은 컴퓨터 네트워크를 통해 통신하도록 설계된 다양한 플랫폼 및 언어 독립 포맷을 사용할 수 있다. 조정 프로토콜은, HTTP 트래픽 및 관리자가 로그인하여 아카이빙된 컨텐츠에 대한 검색을 수행할 수 있게 하는 HTTP 프론트-엔드(front-end)를 이미 제공 중인 많은 아카이브를 통상적으로 허용하는 방화벽 때문에 바람직스럽기로는 웹 서비스로서 구현될 수 있다는 것을 알 수 있을 것이다.
일부 실시예에서, 조정 프로토콜의 쿼리 및 응답은 XML 문서로서 구현되는 웹 서비스 쿼리 및 응답을 포함할 수 있다. 쿼리 및 응답 XML 문서는 xmlns(XML namespaces), xsi(XML schema instance), xsd(XML schema definition) 확장 파일명 등과 같은 XML 스키마 및 속성을 사용해 구현될 수 있다. 일부 구현에서, 쿼리 및 응답 XML 문서는 호출 및 응답 정보를 포함하는 SOAP 엔빌로프 및 SOAP 바디를 포함하는 SOAP 메시지를 포함할 수 있다.
다음은 웹 서비스 조정 프로토콜에 따라 구현되는 구성 쿼리(503) 및 구성 응답(504)의 비제한적인 일 실례를 예시한다. 이 실례에서, 구성 쿼리(503)는, 예상 SLA 또는 메시지를 처리하기 위한 지연과 같은, 특정 구성 정보를 획득하기 위해 요청 중이다.
쿼리:
Figure 112010085722616-pct00001
응답:
SLA는 "0년 0월 0일 0시 10분 0초"이다. 지원되는 버전은 1.0 및 1.5이다.
Figure 112010085722616-pct00002
Figure 112010085722616-pct00003
다음은 웹 서비스 조정 프로토콜에 따라 구현되는 전달 확인 쿼리(505) 및 전달 확인 응답(506)의 비제한적인 일 실례를 예시한다. 이 실례에서, 전달 확인 쿼리(505)는 표시된 시점에서 송신된 2개 메시지의 상태를 위한 아카이브 계정 bank_customer@ehs.com을 요청 중이다('Z' 접미사는 XML 스키마의 UTC를 지시한다).
쿼리:
Figure 112010085722616-pct00004
응답:
제1 메시지를 위한 메시지 지연은 9분 15초였고 제2 메시지를 위한 메시지 지연은 8분 12초였다.
Figure 112010085722616-pct00005
일부 실시예는 웹 서비스 프로토콜에 따라 조정 프로토콜을 구현하는 것으로 설명될 수 있지만, 제한없이, RPC(Remote Procedure Call) 프로토콜, 이메일 메시징 프로토콜, TCP와 같은 인터넷 프로토콜, REST(Representational State Transfer) 프로토콜, RSS(Really Simple Syndication)와 같은 웹 피드 프로토콜, 및/또는 기타 적당한 동기 또는 비동기 프로토콜을 포함하는 다른 프로토콜이 사용될 수 있다는 것을 알 수 있을 것이다.
앞서 설명된 실시예를 위한 동작이 하나 이상의 논리 흐름을 참조하여 부연될 수 있다. 다르게 지시되지 않는다면, 대표적인 논리 흐름이 반드시 제시된 순서로 또는 어떤 특정 순서로 실행될 필요는 없다는 것을 알 수 있을 것이다. 더 나아가, 논리 흐름을 참조하여 설명되는 다양한 활동은 직렬 또는 병렬 방식으로 실행될 수 있다. 논리 흐름은 소정의 설계 및 성능 제약 세트에서 요구되는 바에 따라 설명된 실시예의 하나 이상의 하드웨어 요소 및/또는 소프트웨어 요소 또는 다른 요소를 사용해 구현될 수 있다. 예를 들어, 논리 흐름은 논리 디바이스(예를 들어, 범용 또는 특수 목적 컴퓨터)에 의한 실행을 위한 논리(예를 들어, 컴퓨터 프로그램 명령어)로서 구현될 수 있다.
도 6은 다양한 실시예를 실시하기에 적당한 논리 흐름(600)의 일 실시예를 예시한다. 논리 흐름(600)은 여기에서 설명되는 하나 이상의 실시예에 의해 실행되는 동작 중 일부 또는 전부를 나타낼 수 있다.
표시된 바와 같이, 논리 흐름(600)은 조정될 메시지를 수신하는 단계(블록 610)를 포함할 수 있다. 다양한 구현에서, 조정될 메시지는 이메일 서버(110)에 의해 저장을 위해 아카이브(140)쪽으로 송신되는 메시지에 대응할 수 있다. 일부 구현에서, 예를 들어, 조정될 메시지는 저장을 위해 아카이브(140)쪽으로 송신되는 메시지의 사본을 포함할 수 있다. 조정될 메시지는 이메일 서버(110)에 의해 아카이브(140)쪽으로 송신되는 저널 보고서(501)에 대응하는 저널 보고서의 사본(502)으로 수신될 수 있다. 저널 보고서의 사본(502)은 수신자쪽으로 송신된 그리고 저장을 위해 아카이브(140)쪽으로 송신된 동일한 메시지의 사본을 포함할 수 있다.
논리 흐름(600)은 수신된 메시지를 조정을 위해 분류하는 단계(블록 620)를 포함할 수 있다. 다양한 실시예에서, 조정될 메시지는 아카이브(140)와 연관된 지연에 대응하는 시구간, 조정될 메시지의 사본이 로컬 캐시(320)에서 이용 가능한 때의 시구간, 및 지연 문제를 해결하기 위한 시구간과 같은 하나 이상의 시구간에 기초해 분류될 수 있다. 또한, 조정될 메시지는 전달 확인 쿼리에 대해 부정 응답을 수신하는 것에 기초해 분류될 수도 있다.
논리 흐름(600)은 조정을 위한 메시지의 분류에 따라 전달 확인 쿼리를 아카이브쪽으로 발행하는 단계(블록 630)를 포함할 수 있다. 다양한 실시예에서, 전달 확인 쿼리는 아카이브(140)의 지연에 기초해 지연될 수 있다. 일부 구현에서, 전달 확인 쿼리는 웹 서비스 프로토콜에 따라 아카이브(140)쪽으로 송신될 수 있다.
논리 흐름(600)은 서버쪽으로 송신된 메시지의 아카이빙을 확인하는 단계(블록 640)를 포함할 수 있다. 다양한 실시예에서, 조정될 메시지는, 아카이브(140)쪽으로 송신된 메시지가 저장된다는 것이 확인될 때까지, 메시지 스토리지(310)와 같은, 보유 영역에 저장된다. 아카이브(140)에서의 메시지 저장을 확인한 후, 조정될 메시지는 메시지 스토리지(310)로부터 삭제될 수 있다. 전달 확인 쿼리에 대해 부정 응답이 수신되면, 최대 지연 및/또는 최대 횟수의 시도에 도달될 때까지 아카이브(140)쪽으로 재시도 쿼리가 송신될 수 있다.
논리 흐름(600)은 미확인 메시지를 교정하는 단계(블록 650)를 포함할 수 있다. 다양한 실시예에서, 조정될 메시지는 재시도 쿼리에 대해 부정 응답을 수신한 후 아카이브쪽으로 재전송될 수 있다. 미확인 메시지가 아카이브(140)쪽으로 재전송된 후, 조정 프로세스는 특정 메시지가 아카이빙된다는 것이 확인될 때까지 다시 시작할 수 있다. 특정 메시지가 조정될 수 없는 경우라 하더라도, 메시지는 메시지 스토리지(310)에 보유되어 메시지의 가용성을 보장한다는 것을 알 수 있을 것이다.
논리 흐름(600)은 단계의 특정 순서를 예시할 수 있지만, 단계의 다른 순서도 다른 실시예에 따라 수행될 수 있다는 것을 알 수 있을 것이다. 더 나아가, 논리 흐름(600)의 일부 개별 단계는 개별 단계에 적합한 다양한 순서로 수행될 수 있는 여러 하위-단계를 포함할 수 있다. 더 나아가, 특정 구현에 따라 추가 단계가 추가될 수 있거나 일부 단계가 제거될 수 있다.
도 7은 다양한 실시예를 위한 논리를 저장하기에 적당한 제품(700)의 다이어그램을 예시한다. 표시된 바와 같이, 제품(700)은 논리(704)를 저장하기 위한 기억 매체(702)를 포함할 수 있다. 기억 매체(702)의 실례로는, 휘발성 메모리 또는 비휘발성 메모리, 이동식 또는 비이동식 메모리, 삭제 가능 또는 삭제 불가능 메모리, 기재 가능 또는 기재 불가능 메모리 등을 포함하는, 전자 데이터를 저장할 수 있는 하나 이상의 컴퓨터-판독 가능 기억 매체 유형을 들 수 있다. 논리(704)의 실례로는, 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리캐이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 펑션, 메소드, 프로시저, 소프트웨어 인터페이스, API(application program interfaces), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 그것의 임의 조합을 들 수 있다.
일 실시예에서, 예를 들어, 제품(700) 및/또는 컴퓨터-판독 가능 기억 매체(702)는, 컴퓨터에 의해 실행되는 경우, 컴퓨터가 설명된 실시예에 따른 방법 및/또는 동작을 수행하게 하는 실행 가능한 컴퓨터 프로그램 명령어를 포함하는 논리(704)를 저장할 수 있다. 컴퓨터의 실례로는 설명된 실시예에 따른 컴퓨팅 기능 및/또는 통신 기능을 갖춘 어떤 적당한 컴퓨팅 디바이스를 들 수 있다. 예시적 컴퓨팅 디바이스는, 제한없이, 모바일 디바이스, PDA(personal digital assistant), 모바일 컴퓨팅 디바이스, 스마트폰, 휴대 전화, 핸드셋, 일방향 페이저, 양방향 페이저, 메시징 디바이스, 컴퓨터, PC(personal computer), 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 핸드헬드 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크스테이션, 미니-컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 어플라이언스, 웹 어플라이언스, 분산 컴퓨팅 시스템, 멀티프로세서 시스템, 프로세서-기반 시스템, 가전 제품, 프로그래머블 가전, TV, 디지털 TV, 셋톱 박스, 무선 액세스 포인트, 기지국(BS), SS(subscriber station), MSC(mobile subscriber center), 라디오 네트워크 컨트롤러, 라우터, 허브, 게이트웨이, 브릿지, 스위치, 머신, 또는 그것의 조합을 포함할 수 있다.
실행 가능한 컴퓨터 프로그램 명령어는, 소스 코드, 컴파일드 코드, 인터프리티드 코드, 실행 가능 코드, 정적 코드, 동적 코드 등과 같은, 어떤 적당한 코드 유형을 포함할 수 있다. 컴퓨터에게 특정 기능을 수행하도록 지시하기 위한 실행 가능한 컴퓨터 프로그램 명령어는 사전 정의된 컴퓨터 언어, 방식, 또는 구문에 따라 구현될 수 있다. 명령어는, C#, C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, 어셈블리 언어, 및 다른 것과 같은, 어떤 적당한 하이-레벨, 로우-레벨, 객체-지향, 비주얼, 컴파일드 및/또는 인터프리티드 프로그래밍 언어를 사용해 구현될 수 있다.
다양한 실시예는 하드웨어 요소, 소프트웨어 요소, 또는 양자의 조합을 사용해 구현될 수 있다. 하드웨어 요소의 실례로는 논리 디바이스를 위해 앞서 제공된 실례 중 어떤 것을 들 수 있고, 추가로 마이크로프로세서, 회로, 회로 소자(예를 들어, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 들 수 있다. 소프트웨어 요소의 실례로는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 펑션, 메소드, 프로시저, 소프트웨어 인터페이스, API(application program interfaces), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 그것의 임의 조합을 들 수 있다. 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용해 구현되는지를 판정하는 것은, 소정 구현을 위해 소망되는, 원하는 연산 속도, 파워 레벨, 열 공차, 처리 주기 버짓, 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도, 및 다른 설계 또는 성능 제약과 같은, 임의 갯수의 팩터에 따라 달라질 수 있다.
일부 실시예는 "결합되는" 및 "접속되는"이라는 표현과 함께 그것의 파생물을 사용해 설명될 수 있다. 이들 용어가 반드시 서로에 대한 동의어로 생각될 필요는 없다. 예를 들어, 일부 실시예는 2 이상의 요소가 서로 직접적인 물리 또는 전기 접촉 상태에 있다는 것을 지시하기 위해 "접속되는" 및/또는 "결합되는"이라는 용어를 사용해 설명될 수 있다. 그러나, "결합되는"이라는 용어는 2 이상의 요소가 서로 직접적인 접촉 상태에 있지는 않지만, 여전히 서로 협력하거나 상호 작용한다는 것을 의미할 수도 있다.
명세서의 요약은, 판독자가 기술 명세서의 특징을 재빨리 확인할 수 있게 할 요약을 요구하는, 37 C.F.R. Section 1.72(b)에 따라 제공된다. 요약이 청구항의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않을 것이라는 이해하에서 그것이 제출된다. 또한, 상기 상세한 설명에서는, 다양한 특징이 명세서를 능률화할 목적으로 단일 실시예로 다같이 그룹화된다는 것을 알 수 있다. 명세서의 이 방법이, 청구된 실시예가 각각의 청구항에서 명시적으로 언급된 것보다 많은 특징을 요구한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 다음 청구항이 반영하는 바와 같이, 발명 주제는 개시된 단일 청구항의 모든 특징보다 적은 것에 존재한다. 그에 따라 다음 청구항은 여기에서, 각각의 청구항이 별도 실시예로서 독립하는 상태로, 상세한 설명에 통합된다. 첨부된 청구항에서, "포함하는" 및 "여기에서(in which)"라는 용어는, 각각, "포함하는" 및 "여기에서(wherein)"라는 개개 용어의 평이한 영어 동의어로서 사용된다. 더 나아가, "제1", "제2", "제3" 등의 용어는 그것의 대상에 대해 수치적 제한을 부과하려는 것이 아니라 단지 레이블로서 사용된다.
주제는 구조적 특징 및/또는 방법론적 행위에 특유한 언어로 설명되었지만, 첨부된 청구항에서 정의되는 주제가 반드시 앞서 설명된 특정 특징 또는 행위로 제한될 필요는 없다는 것을 이해할 수 있어야 한다. 오히려, 앞서 설명된 특정 특징 및 행위는 청구항을 구현하는 예시적 형태로서 개시된다.

Claims (20)

  1. 서버에 의해 아카이브(archive)로 송신되는 저널 보고서에 대응하는 저널 보고서의 사본을 수신하는 단계- 상기 저널 보고서의 사본은 저장을 위해 상기 서버에 의해 상기 아카이브로 송신되는 메시지에 대응하는 조정될 메시지(a message to be reconciled)를 포함함 -;
    프로세서에 의해, 상기 저널 보고서의 사본이 수신된 이후 경과한 시간의 양이 하나 이상의 시구간(time interval) 내에 있는지 여부에 기초해 조정을 위한 상기 수신된 메시지를 복수의 카테고리(a plurality of categories) 중 하나로 분류하는(categorizing) 단계- 제1 카테고리는 상기 아카이브와 연관된 전달 및 처리 지연 중 적어도 하나에 대응하는 제1 시구간에 대응하고, 제2 카테고리는 상기 제1 시구간의 만료 이후 및 로컬 캐시 수명의 만료 전의 기간에 대응하는 제2 시구간에 대응하고, 상기 메시지의 사본은 로컬 캐시에 저장됨 - ;
    조정을 위한 상기 메시지의 분류에 따라 상기 아카이브로 전달 확인 쿼리(delivery confirmation query)를 발행하는 단계- 전달 확인 쿼리는 적어도 하나의 카테고리에 대해서는 발행되지 않고 적어도 하나의 다른 카테고리에 대해서는 발행됨 -; 및
    상기 전달 확인 쿼리에 대한 응답에 기초해, 상기 서버로부터 상기 아카이브로 송신된 상기 메시지가 상기 아카이브에 저장되는지의 여부를 결정하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 아카이브로부터 예상 지연을 포함하는 구성 정보를 요청하는 구성 쿼리를 발행하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    제3 카테고리는 지연 문제를 해결하기 위한 시구간에 대응하는 제3 시구간에 대응하는 방법.
  4. 제1항에 있어서,
    상기 전달 확인 쿼리에 대해 부정 응답을 수신하는 것에 기초해 상기 조정될 메시지를 분류하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 전달 확인 쿼리에 대해 부정 응답을 수신한 후 재시도 쿼리를 발행하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 재시도 쿼리에 대해 부정 응답을 수신한 후 상기 조정될 메시지를 상기 아카이브로 재전송(resubmit)하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 조정될 메시지를 저장하는 단계; 및
    상기 전달 확인 쿼리에 대해 긍정 응답을 수신한 후 상기 조정될 메시지를 삭제하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    웹 서비스 프로토콜에 따라 상기 전달 확인 쿼리를 상기 아카이브로 발행하는 단계를 포함하는 방법.
  9. 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은 컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금,
    서버에 의해 아카이브로 송신되는 저널 보고서에 대응하는 저널 보고서의 사본을 수신하고- 상기 저널 보고서의 사본은 저장을 위해 상기 서버에 의해 상기 아카이브로 송신되는 메시지에 대응하는 조정될 메시지(a message to be reconciled)를 포함함 -;
    상기 저널 보고서의 사본이 수신된 이후 경과한 시간의 양이 하나 이상의 시구간 내에 있는지 여부에 기초해 상기 조정될 메시지를 복수의 카테고리 중 하나로 분류하고- 제1 카테고리는 상기 아카이브와 연관된 전달 및 처리 지연 중 적어도 하나에 대응하는 제1 시구간에 대응하고, 제2 카테고리는 상기 제1 시구간의 만료 이후 및 로컬 캐시 수명의 만료 전의 기간에 대응하는 제2 시구간에 대응하고, 상기 메시지의 사본은 로컬 캐시에 저장됨 - ;
    상기 아카이브로 전달 확인 쿼리를 발행하고- 전달 확인 쿼리는 적어도 하나의 카테고리에 대해서는 발행되지 않고 적어도 하나의 다른 카테고리에 대해서는 발행됨 -; 및
    상기 전달 확인 쿼리에 대한 응답에 기초해, 상기 서버로부터 상기 아카이브로 송신된 상기 메시지가 상기 아카이브에 저장되는지의 여부를 확인하게 하는
    컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    제3 카테고리는 지연 문제를 해결하기 위한 시구간에 대응하는 제3 시구간에 대응하는
    컴퓨터 판독가능 저장 매체.
  11. 제9항에 있어서,
    컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금
    상기 전달 확인 쿼리에 대해 부정 응답을 수신한 후 재시도 쿼리를 발행하게 하는 컴퓨터 실행가능 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금
    상기 재시도 쿼리에 대해 부정 응답을 수신한 후 상기 조정될 메시지를 상기 아카이브로 재전송(resubmit)하게 하는 컴퓨터 실행가능 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.
  13. 제9항에 있어서,
    컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금
    상기 조정될 메시지를 저장하고,
    상기 전달 확인 쿼리에 대해 긍정 응답을 수신한 후 상기 조정될 메시지를 삭제하게 하는 컴퓨터 실행가능 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.
  14. 처리 장치;
    저널링 에이전트(journaling agent)로부터 저널 보고서의 사본을 수신하도록 상기 처리 장치에서 실행되는 메시지 수신 컴포넌트- 상기 저널 보고서의 사본은 저장을 위해 상기 저널링 에이전트에 의해 아카이브로 송신되는 메시지에 대응하는 조정될 메시지를 포함함 -;
    상기 저널 보고서의 사본이 수신된 이후 경과한 시간의 양이 하나 이상의 시구간 내에 있는지 여부에 기초해 조정을 위한 상기 수신된 메시지를 복수의 카테고리 중 하나로 분류하도록 상기 처리 장치에서 실행되는 분류 컴포넌트- 제1 카테고리는 상기 아카이브와 연관된 전달 및 처리 지연 중 적어도 하나에 대응하는 제1 시구간에 대응하고, 제2 카테고리는 상기 제1 시구간의 만료 이후 및 로컬 캐시 수명의 만료 전의 기간에 대응하는 제2 시구간에 대응하고, 상기 메시지의 사본은 로컬 캐시에 저장됨 - ; 및
    상기 저널링 에이전트로부터 상기 아카이브로 송신된 상기 메시지가 상기 아카이브에 저장되는지의 여부를 결정하기 위해 상기 아카이브로 전달 확인 쿼리를 발행하도록 상기 처리 장치에서 실행되는 쿼리 발행 컴포넌트- 전달 확인 쿼리는 적어도 하나의 카테고리에 대해서는 발행되지 않고 적어도 하나의 다른 카테고리에 대해서는 발행됨 -
    를 포함하는 장치.
  15. 제14항에 있어서,
    상기 전달 확인 쿼리에 대한 응답을 상기 아카이브로부터 수신하는 쿼리 응답 수신 컴포넌트- 상기 쿼리 발행 컴포넌트는 상기 전달 확인 쿼리에 대해 부정 응답을 수신한 후 재시도 쿼리를 발행함 -; 및
    상기 재시도 쿼리에 대해 부정 응답을 수신한 후 상기 조정될 메시지를 상기 아카이브로 재전송하는 교정 컴포넌트
    를 포함하는 장치.
  16. 제14항에 있어서,
    상기 장치가 상기 저널링 에이전트를 포함하는
    장치.
  17. 제14항에 있어서,
    상기 전달 확인 쿼리는 웹 서비스 쿼리를 포함하는
    장치.
  18. 제3항에 있어서,
    상기 제2 카테고리 내의 메시지에 대해 전달 확인 쿼리를 발행하고, 상기 제1 카테고리와 상기 제3 카테고리 내의 메시지에 대해서는 전달 확인 쿼리를 발행하지 않는 단계를 포함하는 방법.
  19. 제10항에 있어서,
    컴퓨터에 의해 실행되는 경우 상기 컴퓨터로 하여금
    상기 제2 카테고리 내의 메시지에 대해 전달 확인 쿼리를 발행하고, 상기 제1 카테고리와 상기 제3 카테고리 내의 메시지에 대해서는 전달 확인 쿼리를 발행하지 않게 하는 컴퓨터 실행가능 명령어를 더 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제14항에 있어서,
    상기 복수의 카테고리는 지연 문제를 해결하기 위한 시구간에 대응하는 제3 시구간에 대응하는 제3 카테고리를 포함하고, 상기 쿼리 발행 컴포넌트는 상기 제2 카테고리 내의 메시지에 대해 전달 확인 쿼리를 발행하고, 상기 제1 카테고리와 상기 제3 카테고리 내의 메시지에 대해서는 전달 확인 쿼리를 발행하지 않는
    장치.
KR1020107029163A 2008-06-27 2009-05-28 통신 아카이브에 의한 조정 및 교정 KR101683305B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/147,668 US8732265B2 (en) 2008-06-27 2008-06-27 Reconciliation and remediation with communication archives
US12/147,668 2008-06-27
PCT/US2009/045471 WO2009158107A2 (en) 2008-06-27 2009-05-28 Reconciliation and remediation with communication archives

Publications (2)

Publication Number Publication Date
KR20110034615A KR20110034615A (ko) 2011-04-05
KR101683305B1 true KR101683305B1 (ko) 2016-12-06

Family

ID=41445174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029163A KR101683305B1 (ko) 2008-06-27 2009-05-28 통신 아카이브에 의한 조정 및 교정

Country Status (16)

Country Link
US (1) US8732265B2 (ko)
EP (1) EP2291818B1 (ko)
JP (1) JP2011526131A (ko)
KR (1) KR101683305B1 (ko)
CN (1) CN102077237B (ko)
AU (1) AU2009262858B2 (ko)
BR (1) BRPI0913620B1 (ko)
CA (1) CA2724676C (ko)
IL (1) IL209050A (ko)
MX (1) MX2010014038A (ko)
MY (1) MY156639A (ko)
RU (1) RU2507580C2 (ko)
SG (1) SG192448A1 (ko)
TW (1) TWI486873B (ko)
WO (1) WO2009158107A2 (ko)
ZA (1) ZA201007874B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives
US20100030821A1 (en) * 2008-07-31 2010-02-04 Research In Motion Limited Systems and methods for preserving auditable records of an electronic device
US9324055B2 (en) * 2011-12-08 2016-04-26 Microsoft Technology Licensing, Llc Techniques to manage remote events
US8959425B2 (en) 2011-12-09 2015-02-17 Microsoft Corporation Inference-based extension activation
US9679163B2 (en) 2012-01-17 2017-06-13 Microsoft Technology Licensing, Llc Installation and management of client extensions
US9256445B2 (en) 2012-01-30 2016-02-09 Microsoft Technology Licensing, Llc Dynamic extension view with multiple levels of expansion
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9705991B2 (en) * 2012-07-04 2017-07-11 Nec Corporation Adaptation of radio resources allocation in an intelligent transport system enabled cellular mobile network and method for operating such network
KR20140095712A (ko) * 2013-01-25 2014-08-04 삼성전자주식회사 알림 제어 방법 및 그 전자 장치
US10158450B2 (en) * 2014-09-29 2018-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Method and first node for handling a feedback procedure in a radio communication
US10148607B2 (en) 2015-09-28 2018-12-04 Quest Software Inc. Electronic-messaging system interceptor forwarding client notifications
US10942974B2 (en) 2017-10-20 2021-03-09 Bank Of America Corporation System for synchronous document captures into an asynchronous archive and document-level archiving reconciliation
CN113485868A (zh) * 2021-02-04 2021-10-08 厦门蓝极档案技术有限公司 一种残损档案修复方法及装置
US12061521B1 (en) * 2023-04-12 2024-08-13 International Business Machines Corporation Non-blocking hardware function request retries to address response latency variabilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075032A1 (en) 2004-09-20 2006-04-06 Jain Chandresh K Envelope e-mail journaling with best effort recipient updates
US20070038714A1 (en) 2005-06-30 2007-02-15 Jorg-Stefan Sell Method and system for journaling electronic messages
JP2007226750A (ja) 2006-02-27 2007-09-06 Murata Mach Ltd 電子メール装置及びそのプログラムと、電子メールシステム

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757669A (en) 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
US5813009A (en) 1995-07-28 1998-09-22 Univirtual Corp. Computer based records management system method
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6052709A (en) * 1997-12-23 2000-04-18 Bright Light Technologies, Inc. Apparatus and method for controlling delivery of unsolicited electronic mail
US7047532B1 (en) 1998-11-13 2006-05-16 The Chase Manhattan Bank Application independent messaging system
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7117246B2 (en) 2000-02-22 2006-10-03 Sendmail, Inc. Electronic mail system with methodology providing distributed message store
US7155439B2 (en) 2001-09-20 2006-12-26 Wellogix, Inc. Modular and customizable process and system for capturing field documentation data in a complex project workflow system
US8015204B2 (en) * 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US6859865B2 (en) * 2001-11-09 2005-02-22 Nortel Networks Limited System and method for removing latency effects in acknowledged data transfers
US7310654B2 (en) * 2002-01-31 2007-12-18 Mirapoint, Inc. Method and system for providing image incremental and disaster recovery
US7130313B2 (en) * 2002-02-14 2006-10-31 Nokia Corporation Time-slice signaling for broadband digital broadcasting
US7334019B2 (en) 2002-07-18 2008-02-19 Ebay Inc. Delivering messages to message servers
KR20040081289A (ko) 2003-03-14 2004-09-21 (주)에이스넷 수신확인이 가능한 전자메일 시스템 및 그 방법
TW200426621A (en) * 2003-05-30 2004-12-01 Hon Hai Prec Ind Co Ltd System and method for in-time-alarm of abnormal database backup
US7412489B2 (en) 2003-08-21 2008-08-12 Ameriprise Financial, Inc. Method and system for electronic archival and retrieval of electronic communications
US20050086384A1 (en) 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7289974B2 (en) 2003-09-05 2007-10-30 Sap Ag System and method for data reconciliation
TWI231910B (en) * 2003-10-09 2005-05-01 Accton Technology Corp Electronic mail backup and control management system
US7587455B2 (en) 2004-05-14 2009-09-08 Mirapoint Software, Inc. Method for mailbox migration
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7895158B2 (en) * 2004-12-27 2011-02-22 Solace Systems Inc. Data logging in content routed networks
CN1842001A (zh) * 2005-03-31 2006-10-04 都科摩(北京)通信技术研究中心有限公司 用于无线分布式网络的媒体接入控制方法及装置
RU47116U1 (ru) * 2005-04-06 2005-08-10 Оао Акб "Автобанк-Никойл" Система поддержки распределенного документооборота
US7457540B2 (en) * 2005-04-29 2008-11-25 Fujitsu Limited System and method for shaping traffic in optical light-trails
US7600126B2 (en) 2005-05-27 2009-10-06 Microsoft Corporation Efficient processing of time-bounded messages
US20070067403A1 (en) * 2005-07-20 2007-03-22 Grant Holmes Data Delivery System
US20070072588A1 (en) 2005-09-29 2007-03-29 Teamon Systems, Inc. System and method for reconciling email messages between a mobile wireless communications device and electronic mailbox
US20070106771A1 (en) 2005-11-10 2007-05-10 International Business Machines Corporation Reconciliation of independently updated distributed data
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US20070214218A1 (en) * 2006-03-08 2007-09-13 Ward Patricia A Publication management system
US8219920B2 (en) 2006-08-04 2012-07-10 Apple Inc. Methods and systems for managing to do items or notes or electronic messages
US20080086458A1 (en) * 2006-09-15 2008-04-10 Icebreaker, Inc. Social interaction tagging
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075032A1 (en) 2004-09-20 2006-04-06 Jain Chandresh K Envelope e-mail journaling with best effort recipient updates
US20070038714A1 (en) 2005-06-30 2007-02-15 Jorg-Stefan Sell Method and system for journaling electronic messages
JP2007226750A (ja) 2006-02-27 2007-09-06 Murata Mach Ltd 電子メール装置及びそのプログラムと、電子メールシステム

Also Published As

Publication number Publication date
TWI486873B (zh) 2015-06-01
MY156639A (en) 2016-03-15
KR20110034615A (ko) 2011-04-05
RU2010153328A (ru) 2012-06-27
CA2724676C (en) 2016-08-02
EP2291818A4 (en) 2013-08-28
EP2291818B1 (en) 2022-02-09
WO2009158107A2 (en) 2009-12-30
WO2009158107A3 (en) 2010-04-22
IL209050A (en) 2015-08-31
SG192448A1 (en) 2013-08-30
RU2507580C2 (ru) 2014-02-20
AU2009262858A1 (en) 2009-12-30
BRPI0913620B1 (pt) 2019-12-24
IL209050A0 (en) 2011-01-31
CN102077237B (zh) 2013-06-12
AU2009262858B2 (en) 2014-05-22
JP2011526131A (ja) 2011-09-29
BRPI0913620A2 (pt) 2015-10-20
EP2291818A2 (en) 2011-03-09
US8732265B2 (en) 2014-05-20
ZA201007874B (en) 2012-02-29
US20090327352A1 (en) 2009-12-31
CN102077237A (zh) 2011-05-25
TW201005638A (en) 2010-02-01
MX2010014038A (es) 2011-02-15
CA2724676A1 (en) 2009-12-30

Similar Documents

Publication Publication Date Title
KR101683305B1 (ko) 통신 아카이브에 의한 조정 및 교정
JP4878757B2 (ja) 移動装置メッセージング方法およびシステム
US7765228B2 (en) Method and system for data collection for alert delivery
US8577982B2 (en) Method and apparatus for efficiently managing “messages sent” file and resending of messages from mobile wireless communication device
US20090089380A1 (en) Aggregating and Delivering Information
US7603425B2 (en) Email provider prevention/deterrence of unsolicited messages
US20020120697A1 (en) Multi-channel messaging system and method
CN111030784A (zh) 一种信息同步方法和装置
US20120158836A1 (en) Automatic download of web content in response to an embedded link in an electronic mail message
US9258377B2 (en) Publish information on website
US20060086798A1 (en) Deferred email message system and service
US20060190533A1 (en) System and Method for Registered and Authenticated Electronic Messages
CN106302088B (zh) 收发电子邮件的方法、电子邮件客户端、服务端和系统
US20080201431A1 (en) Method and System For Providing Permanent Mail Service
US8615554B1 (en) Electronic mail delivery physical delivery backup
US20080270550A1 (en) Electronic mail connector
CN103457916A (zh) 链接文件的管理方法和服务器
KR20140066526A (ko) 모바일 단말에서의 보낸 메일에 대한 수신 확인 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right