TW200421802A - Method for streaming data between a server and a client - Google Patents

Method for streaming data between a server and a client Download PDF

Info

Publication number
TW200421802A
TW200421802A TW092136042A TW92136042A TW200421802A TW 200421802 A TW200421802 A TW 200421802A TW 092136042 A TW092136042 A TW 092136042A TW 92136042 A TW92136042 A TW 92136042A TW 200421802 A TW200421802 A TW 200421802A
Authority
TW
Taiwan
Prior art keywords
data
email
request
mail
computer
Prior art date
Application number
TW092136042A
Other languages
English (en)
Other versions
TWI339052B (en
Inventor
Joseph R Warren
Min Zhong
Karl Froelich
Nicole A Bonilla
Robert R Novitskey
Alec Dun
Ronald Eric Gray
Aaron Hartwell
Steven F Goddard
Brendan Power
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200421802A publication Critical patent/TW200421802A/zh
Application granted granted Critical
Publication of TWI339052B publication Critical patent/TWI339052B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression

Description

200421802 玖、發明說明: 【發明所厲之技術領域] 本發明大體上屬於電腦網路,更明確地說,係屬於在 客戶端與伺服器應用程式之間進行通訊之方法,例如電子 郵件應用程式。 【先前技術】 電子鄭件已經成為一種重要的通訊方法。電子郵件系 統一般典型中包括一伺服器元件(如,微軟Exchange Server)、以及一客戶端元件(如,微軟〇uU〇〇k或微軟 Outlook Express)。一般典型中,這些元件為軟體應用程 式’其經組態可在計算機裝置上(如伺服器、個人電腦、 筆記型電腦、以及個人數位助理)執行。 為了協助通訊,一客戶端與伺服器,例如客戶端元件 與一電子郵件系統的一伺服器元件,通常會同意採用某一 通訊協定。該通訊協定設定了規則,定義在通訊過程中, 每一個部份應進行之程序,例如,預期之請求與回應的順 序。複雜的通訊協定則擁有可處理非預期程序之規則。 如改良客戶端與伺服器元件,可將該經改良之版本散 佈給終端使用者。為了利用新的元件特徵以及網路特徵, 在通常的情形中,會發明一新的通訊協定。雖然已安裝之 伺服器元件基底非常重要,一客戶端元件可具有藉由一組 通訊協定,和伺服器元件中所選的先前版本進行通訊之能 3 在某些情形中,較新版的通訊協定係建構於先前版本 之通訊協定上,而非將之整個取代。在此情形下,可利用 通訊協定項目來建構一較新版的通訊協定,可啟用或停用 這些通訊協定項目,以便模擬先前版本之通訊協定。同樣 地,雖然已安裝之客戶端元件基底非常重要,一伺服器元 件可具有藉由一通訊協定,和客戶端元件中所選的先前版 本進行通訊之能力。 本發明提供了此種系統與方法。可由此處提供之本發
明的描述,了解本發明之此類與其他特徵,以及額外的創 造性特徵。 【發明内容】 本發明提供一用來改良客戶端和伺服器之通訊的一 系統與方法。更明確地說,本發明係關於一改良之通訊 疋,其可用於一客戶端與一伺服器之間的通訊。本發明 別相關於一電子郵件伺服器環境,但此處描述之特徵可 用在其他客戶端與伺服器網路。
一根據本發明一態樣,對於一帶有一錯誤之資料物件 :電子郵件伺服器元件可提交錯誤資訊,不會因為發生 自:誤’而使一整組回應失敗。該電子郵件伺服器元件 物=子:件客戶端元件,接收請求複數個電子郵件資 可處理=及—指示’指示該電子郵件客戶端元. 服器元二:誤之一電子鄭件資料物件。該電子郵件' 應该清求與指示,而取回複數個電子郵件 4 2〇〇4218〇2 料物件,且若開啟每一前述電子郵件資料物件時,沒有發 生錯誤,則將該電子郵件資料物件傳送至該電子郵件客戶 端元件。然而,若開啟該電子郵件資料物件時發生一錯 誤,該電子郵件伺服器元件會傳送一錯誤訊息至該電子郵 件客戶端元件。
進度資料給一電子郵件客戶端元件,使得該電子郵件客/ 端元件可追蹤自該電子郵件伺服器元件進行一下載之无 度。該電子郵件客戶端元件可傳送請求複數個電子郵件1 料物件之一請求;以及一指示,指示該電子郵件客戶端) 件可處理進度模式資料。該電子郵件伺服器元件可回應言 請求與指示,而取回複數個電子郵件資料物件,並提供玄 度模式資料以及該複數個資料物件給該電子郵件客戶共 兀件。進度模式資料可包括該複數個電子郵件資料物件4 ^小、每一物件之大小、物件之數目、物件是否為與資奉 夹關聯資訊、額外資訊、或這些項目之任何組合。 之:,發明另一態樣,由—電子郵件客戶端元件傳超
時::m限制對該請求之回應的大小’在有需要的 允許一電子郵件伺服器 郵件客卢被- > 緩衝£。該電子 钱虫冰 睛衣中傳送複數個子請求,每一早 β月求係請求在一雷早翻生 母子 隹電子郵件伺服器元件 括大小咨如+ _ α杀’並包 大小限n ^以時,右該大小資訊包括- m φ Βϊ ^ 两1千何服器兀件所預期夕铲 圓中,則該電子郵件 "頂期之範 5 1 …件會將將-回應限制於該大 小限制中。若該大小資訊包括一大小限制,且該限制位在 電子郵件伺服器元件所預期之範圍外,則該電子郵件伺服 器元件會在該大小資訊中尋找一新的大小限制。該新的大 小限制可以是任意的,例如「填滿可用緩衝區」。 【實施方式】
描述本發明之複數個具體實施例的其中之一之前,會 先欽述可實作本發明之各種具體實施例的電腦與網路環 境。雖然並非必要條件,本發明可由電腦所執行的一程式 進行實作。一般而言,程式包括常式'物件、元件、資料 I 結構及其他可進行特定工作或實作特定抽象資料種類之 相似者。在此處,「程式」一詞,可涵蓋一單一程式模組 或可共同動作之多重程式模組。在此處,「電腦」一詞包 括任何可透過電流執行一或複數個程式之裝置,例如個人 電& (PC)、手持式裝置、多處理器系統、以微處理器為 基礎之可程式化消費性電子產品、網路p C、迷你電腦、 平板PC、主機電腦、具有一微處理器或微控制器之消費 性應用裝置、路由器、閘道、集線器及其相似者。本發明 亦可於分散式運算環境中實作,其中係以透過一通訊網路 錢 連接之遠端處理裝置來執行工作。在一分散式運算環境 中,程式可位在本機與遠端記憶儲存裝置中。 參照第1圖’描述一本發明可使用之網路環境的一實 施例。該示範性網路包括複數個電腦丨〇 ,其間透過一網 、 路11互相通訊,以一片雲朵的形式代表。網路丨i可包括 6 200421802 複數個已為人熟知的元件,例如路由器、閘道、集線器等, 且允許電腦10透過有線和/或無線媒介進行通訊。當透過 網路11彼此互動時,這些電腦其中之一或更多個可做為 其他電腦之客戶端、伺服器或對等電腦。於是,本發明之 各種具體實施例可在客戶端、伺服器、對等電腦或其組合 中實作’即使此處包含之特定實施例並未提及這些電腦的 所有種類。 外,該電腦亦可具有額外的特徵/功能 可包括額外·—— 。例如,電腦1 〇亦 但不限於,
參照第2圖,顯示一電腦之基本組態的一實施例,此 處所述之本發明的全部或一部可於該電腦上實作。在此一 最基本的組態中,電腦1〇 一般包括至少一處理單元14以 及記憶體16。處理單元14可執行指令以便根據本發明之 各種具體實施例進行工作。在進行此類工作時,處理單元 Μ可將電子信號傳送至電腦1〇的其他部份以及電腦1〇 以外的裝置’以便引發某些動作。隨著電腦10確切的組 態以及種類之不同,記憶體16可以為易變(例如RAM)、 非易變(例如ROM或快閃記憶體)、或該二者的某種組 合。在第2圖中,以纽18闌明此種最基本的組態。此 體包括以任何方法或技術實施,可做為 變與非易變、可移除與不可移除媒體, 令、資料結構、程式模組、或其他資制 ,RAM、ROM、EEPROM、 電腦儲存區媒體 、快閃記憶體、 包括,但不限於, 7 200421802 CD ROM》位多功能影音光蝶()、或其他光學儲存 區、磁性卡閘、磁帶、磁碟儲存區、或其他磁性儲存装置, 或任何可用來儲存所要資訊,且可供電腦1〇存取之媒 體。任何此種電腦儲存媒體可以是電腦1〇之一部份。 較佳的情形中,電腦1〇亦可包括通訊連線2〇5,其可 允許該裝置與另一裝置進行通訊。一通訊連線為一通訊媒 體之一實施例。通訊媒體之具體化呈現,通常為電腦可讀 , 取指令、資料結構、程式模組、或位在一模組化資料訊號 , 中之其他資料,該模組化資料訊號如一載波或其他傳輸機 制,且包括任何資訊傳遞媒體❶做為例示而非限制,「通 φ 訊媒體」一詞包括有線媒體,如一有線網路或直接有線連 線’以及無線媒體,例如聲波、RF、紅外線、以及其他無 線媒體°此處「電腦可讀取媒體」一詞係包括電腦儲存媒 體以及通訊媒體兩者。 電腦10亦可具有輸入裝置204,例如一鍵盤、滑鼠、 筆、聲音輸入裝置、觸控輸入裝置等。亦可包括輸出裝置 203 ’例如一顯示器2〇、擴音器、印表機等。這些裝置皆 為習知技藝者所熟知,毋需於此處詳述。 本發明係直接關於一種系統與方法,其可用於改良之 0 客戶端與伺服器通訊,更明確地說,係關於一種改良之通 訊協定’其可用於一客戶端與一伺服器之間的通訊。本發 · 明與一電子郵件伺服器環境特別相關,但此處所述之特徵
W 可利用於其他客戶端與伺服器網路。然而為了敫述之方 便’此處係參照一客戶端/伺服器電子郵件環境,來敘述 8 本發明。 本發明可實作於一客戶端/伺服器環境,其具有二或更 多個客戶端應用程式或元件之版本、和/或二或更多個伺 服器應用程式或元件之版本。為達此一目的,第3圖以一 區塊圖闡明在一網路電子郵件環境中,客戶端與伺服器元 件兩者之多重版本。一般而言,該客戶端與伺服器元件經 組態使其可向後相容(backwardly c〇mpatiMe)。也就是 說,一客戶端元件能夠與伺服器元件最近的版本以及先前
版本通訊,且反之亦然。建立—組通訊協^,使其可在該 多重版本間進行通訊。該組通訊協定可含有數種不同的通 訊協定,每-者皆完全獨立。或者是,可利用一組通訊協 定元件,纟可利用特定元件去組態該通訊協定組_的特定 通訊協定。 在第3圖所示的網路電子郵件環境十,在任何情 下,一最新版本的電子郵件客戶端元件3〇3可和利用一 訊協定307且為最新版本的電子郵件飼服器元件则, 行最佳的通訊〇然而,界紅从 、而最新的電子郵件伺服器元件3〇6 可利用-通訊協定組中的其他通訊協定(如第3圖中
通訊協定3〇8與⑽),和所選的先前版本電子郵件客 端元件’例如電子郵彳丰玄$ — 电于郡件客戶端凡件3〇2、與電子郵件客 ::件3〇1,進行通訊。電子郵件客戶端元件303亦可; ::他:訊協定,例如通訊協定”。、與3" 先前版本電子郵件飼服器元件,例如 斤選〗 305、與電子郵件甸 郵牛飼服器το 件伺服器兀件304,進行通訊。 9 200421802 般而p b此處4 了描述本發明之通訊協定時,會 描述一「最新J的電子郵件r / 野件c伺服器或客戶端)元件,或
一電子郵件(伺服器或客戶*山、-从t n A 凡各戶褊)7L件的一最新版本,所述
的此種伺服器或客戶端元杜1A 响疋件具有本發明之新穎特性或特
徵,且可利用、實作這坻牯激 .,.^ L 心一将徵、和/或在這些特徵上作用。 雖然在此文件中,利用這此文叫y、+,1碰a丄 二名3描述可體現本發明之通訊 協定的各種態樣的客戶端與伺服器 作々 丹η服器70件,該名同亦包括僅 可體現所述之特定態樣之开杜,—〜丄α 保乏70件,或所述超過一態樣之元 件。相似地,一「先前」雷早翻戚— 」更子郵件70件或一電子郵件元件 之先前版本’即為無法體規太恭 菔現本發明之通訊協定的態樣,且 無法於其上作用的一元件。 通常會利用一通訊協定琉罐兹皮 励疋協”義程序,在一客戶端與一伺 服器之間(如,最新版本電子郵件飼服器元件3〇6 最新版本電子郵件客戶端元件3()3)冑立—通訊協定。雖 然此種通訊践協議為已知,為了方便閲讀者仍針 子部件客戶端元件401 (第4圖)以及電子郵件 件術(亦為第4圈)之間的—通訊協定協議程序 簡短的敘述。在電子郵件客戶端 ^ ^ 一 干各戶端疋件4〇1與電子郵件飼服 器元件402之間的一通訊工作階 π償杈平期,電子郵件客 元件401會傳送一訊息4〇3 尸磲 3至電子郵件伺服器元件4〇2, 該訊息包括客戶端版本資訊,例如,以一 m ^ ^ ^ ^ ^ ^ ^ 客戶&疋件版本 戳β己之形式。電子郵件伺服器元 τ刊ζ以訊息404回庥却 息403 ,訊息404包括伺服器版本例 ·、3 兮貝也,例如,以一 器元件版本戳記之形式。 j服 10 可以複數個方★ 4丨 庙办Μ 々式利用該客戶端與伺服器版本資訊,以 便I武在電子郵 一 坪1千客戶端元件40 1以及電子郵件伺服器 疋件402之間建’ 、包久 通訊。例如,可利用版本資訊來選擇一 週^的通訊協—、 _ 疋以便繼續通訊;或決定將來之通訊是否可 繼續進行。例如声決 ή2_ 仕建立一通訊協定時,可利用版本資訊來 啟用和/或停用特 特疋可用通訊協定態樣或元件。 一電子郵杜約 1司服器元件可平行接收與處理來自多重電 子郵件客戶端开leu t 疋件之嘴求。當僅顯示一單一客戶端時,除 特別扣明’僅是為了簡化圖示以及相關說明。 本發明之電子郵件網路可利用請求與回應之交換,在 網路的客戶端與伺服器元件之間傳遞查詢與資料。實際 备 電子郵件網路中之客戶端與伺服器之間進行通 訊時’一通訊協定之效能可能會受到用來實作該通訊之通 s網路傳輸機制之影響。例如,在一使用遠端程序呼叫 (RPCs)做為通訊網路傳輸機制的電子郵件網路中,進行 較大(如,32 KB)的單一遠端程序呼叫,可能比進行 數個較小(如’ 2KB) 6¾遠端程序呼叫更有效率^已知一 可改進此種電子郵件網路之效能的方法,係緩衝多重請求 和/或回應,以便在一單一遠端程序呼叫中來傳輸。 做為一實施例,第5圖顯示一電子郵件客戶端元件5〇1 與一電子郵件伺服器元件5〇2之間的一請求與回應交 換。電子郵件客戶端元件501以及電子郵件伺服器元件 502各別具有固定大小的通訊緩衝區503、504、5〇5、與 506。緩衝區503、504、505、與5〇6為記憶體之保留區 域’可暫時儲存資料。電子郵件客戶端元件501在將缓衝 區503之内容傳送至緩衝區5〇4之前,會藉由利用一或複 數個子請求或遠端作業(R0P)填滿緩衝區503,來開始 一請求-回應週期。 當於緩衝區5 04中接收R〇p之後,由電子郵件伺服器
疋件502依序處理每一 R〇P,並將相對應的結果寫入緩衝 區505中。每一 R0P皆會產生某些結果。該結果可包括 電子郵件客戶端元件501所請求之資料,例如,一組特定 的電子郵件訊息。電子郵件伺服器元件5〇2可監控緩衝區 505,且當其接近全滿時(如,剩餘空間小於8kb),電子 郵件伺服器元件502會將任何未處理的R〇p寫入緩衝區 505之末端’並將緩衝區5〇5傳送至緩衝區5〇6。之後, 電子郵件客戶端元件5〇1會開始一新的請求回應週期, 將未處理之ROP寫入緩衝區5〇3,當緩衝區5〇3再度全滿 時,將之重新提交至電子郵件伺服器元件5〇2 ^
此,通常會經組態使回應緩衝區505與506之大小大於 求緩衝H 503肖504之大小。在本發明之一具體實施 中,在請求緩衝區503與504之大小為32ΚΒ時,可決 回應緩㈣5〇5肖5〇6之最佳大小為96κβ ,即比例為 比3。在一具體實施例中,該電子郵件客戶端元件能夠 態緩衝區503、504、505、與5〇6之任一者的大小。 某些可利用緩衝區之電子郵件網路,例如第5圖中 示的電子郵件網路,可在—電子郵件客戶端元件與一電 12 200421802
郵件伺服器元件之間,使用一快速傳輸模式。快速傳輸模 式包括一客戶端提出之請求,例如ROP,且其至少可分成 兩種··會在伺服器上造成一快速傳輸資料來源之初始化的 請求;以及會造成資料自快速傳輸資料來源有效地傳輸至 客戶端的請求。該快速傳輸資料來源可以是,例如,一資 料庫資料表。該快速傳輸資料來源可做為資料的一就緒暫 存區’其可啟用後續請求,該請求係關於將資料以相對於 其他可行方法中,較少延遲的方法提供。有些時候,第二 種快速傳輸模式請求可能會藉由明白地指明回應之大 小,來達到有效的資料傳輸,例如,可設定該回應之大小, 使得整個客戶端可接收較少緩衝區之回應額外負擔。 第6Α圓顯示一快速傳輸作業,其具有至少兩種請求-回應週期。在一第一請求601中,一 R〇p(如,Fxprepare ) 可在伺服器502上,初始化一快速傳輸資料來源β在該伺 服器上,僅處理FXPrepare (即,初始化該快速傳輸資料 來源)且將其結果以一第一回應6〇2傳回。在一第二請求 603中,R〇P (如’ FxGetBuffer)可請求伺服器填滿來 自該陕速資料來源之緩衝區5〇5。伺服器可將該快速資料
來源清入緩衝區中,並在一第二回應6〇4中傳回該結果。 若可供該電子郵件飼服酱;^ 』服器70件使用之輸出緩衝區505在 快速資料來源被清空之|彳p p么 月二之别便已全滿,可請求額外的 FXGetBuffer ROP 〇 其僅具有一單一請求-電子郵件伺服器元件 第6B囷顯示一快速傳輸作業 回應週期。在一第一請求605中 13 5〇2會處理FXPrepare以及FXGetBuffer兩者,且兩個作 業的結果皆會在第一回應606中傳回。在電子郵件词服器 元件502上,FXPrepare之結果可供FXGetBuffer所用, 因為每一緩衝區503、504、505、與506之一部份,比、皮 明確定義為一共享資料資料表。.降低請求-回應週期的次 數非常理想,因為這會造成一更有效率的資料傳輸。卷緩 衝區505太滿而無法儲存一 FXGetBuffer R〇p之結果時 可能會導致一快速傳輸作業具有超過一單一請求-回應 m 〇 。 可以了解’除非另行指明,第6A與6B圖以及本申於 書中其他相似圖示中之R0P僅為概要圖示,也就是說實 際上可利用一系列的R〇p來實作之。 一般而言,一 R〇P結果之大小與一 R〇p請求之大小不 同。並非永遠皆可預測一 R〇p結果之大小。當利用資料 壓縮技術來減低-讀結果之大小時,會更難預測一 R〇p 結果之大小。無法預測一 R〇p結果之大小,會導致無法 手動微調一通訊協定來最小化完成特定客戶端作業所需 之請求-回應週期的數目,例如,確保在一單一請求_回應 週期中’將所有新訊息下载至客戶端…通訊協定手動微 調包括手動組態通訊協定請求、回應和/或ROP之順序和/ 或大小。 根據本發明之—態樣,對於預測其結果之大小的許 求,若指明關鍵R〇P (如,FXGetBuffe〇不受其拘束明 則可自動將凊求·回應週期的數目最小化。此夕卜,電子郵 14 200421802 件伺服器元件502會處理此種ROP,直到達到緩衝區505 之界限(其和緩衝區5 06的界限相通)為止。 做為例示,在一包括電子郵件伺服器元件之多重版本 的環境中,可將個別的遠端作業(ROP )定義為先前版本 伺服器元件與最近版本伺服器元件。這些最近版本不受預 測其結果之大小的請求的拘束。將在下表中列出這些ROP 之特徵: 由一通訊協定用來與 先前版伺服器通訊的 遠端作業 由一通訊協定用來與 最近版伺服器通訊的 遠端作業 ROP ID(遠端作業識別) FXGetBufFer FXGetBuffer 多重模式中所用之參數 請求之大小:伺服器必須 在其輸出緩衝區中保留之 大小 請求之大小:其值經設定 大於先前版本所期望的最 大值,例如一大於32KB 之值。這會通知伺服器去 尋找新的大小限制。 參數 新參數 無資料 大小限制:通知伺服器其 可填滿其輸出緩衝區之界 限。
建構先前版本伺服器元件之ROP,與現有習知的ROP 建構方式相似。也就是說,ROP可預測並指示在該輸出緩 衝區(如,傳送緩衝區505 )中並須保留來儲存一回應之 大小。相反地,在一伺服器元件之的一最新版本中,並未 預測所指示的輸出緩衝區大小,反而示設定一個數值,使 15 200421802 其大於先前版本伺服器元件所期望的最大值,例如將之設 定為一大於32KB之數值。輸出緩衝區之大小係以一大於 伺服器元件所期望之數值來設定的這個事實,會通知伺服 器元件去尋找一新的大小限制參數,該參數可以是,例 如,一填滿該伺服器元件之輸出緩衝區。這些特徵會自動 地最小化該請求-回應週期之數目,且僅小幅增加處理該 ROP之一電子郵件伺服器元件的複雜性。 須注意,除非另為相反的敘述,上述表格與本申請書 中其他表格中參數出現的順序,並不必然與,例如該參: 透過網路傳輸、或被一電子郵件客戶端元件或一電子郵件 伺服器元件儲存於記憶體中的順序。此外,為求明瞭 忽略未改變的參數。 一, 艰机励疋的一主要任務為 成電子郵件客戶端元件與電子郵件祠服器元件之 物件之傳輸,例如電子郵件訊息。此類資料物件的進— 實施例包括,可包含電子郵件訊息與其他資料物件的電 郵件資料夾;以及資料爽關聯資訊(FAI)資料物件, 可,例如包含處理電子郵件訊息之規則、或定義一資料 包含之資料物件應如何顯示。對一電子郵件客 言’資料物件可以為不明的;也就是說一μ 端元件可能無法解課該資料物件之内容 /件客 件可w具名m成,例如…電 ^資料 Γ名「為「收件人」、「寄件人」、「主旨」、「重==二 j主艘2」、「主體3」、「附件L、「附件2」等… 16 200421802 關於這種資料物件可以由具名屬性組成之電子郵件網 路,相較於資料物件不明之電子郵件網路,前者的優點在 於改良通訊協定效能之潛力,因為其具有—通訊協定之能 力,能夠僅傳輸—資料物件的一部份。具有具名屬性使其 能傳輸資料物件的特定屬性,而不用傳輸整個資料物件。
例如,-電子郵件訊息可由一標頭屬性組以及一主趙 属性組組成。一電子郵件客戶端元件之需求,可能使一通 訊協定先傳輸標頭屬性’之後再傳輸主體屬性或不傳輸。 此-特徵允許一使用者可先檢視多個訊息的標頭資訊而 非檢視所有下載中之訊息的整體。利用此一特徵,客戶端 元件可得對頻寬利用進行較細緻之控制,其可正面影響通 訊協定效能。此外,一客戶端元件可利用此一特徵,而得 到較小的頻寬利用(例如,可以僅下載所選標頭之主體^ 在頻寬較小的環境中此一特徵尤其理想。
若伺服器元件經組態以兩個獨立的請求-回應週期來 傳送主體與標頭屬性(即分別傳送標頭與主體),通訊協 定之效能並不必然增加。例如,若該電子郵件客戶端元件 之需求係同時需要標頭與主體屬性兩者,則相對於在一單 一請求-回應週期能取回標頭與主體兩者的情形,前者之 通訊協定效能會下降。因此,使資料物件由具名屬性組成 的這一個簡單的動作並不足以自動地導致通訊協定效能 之改良。欲達成通訊協定效能之改良,係隨著組成一資料 物件的屬性選擇、以及一通訊協定可如何利用該屬性而 異。該選擇會隨著複數個因素而不同,包括對最新與先前 17 200421802 版本之電子郵件客戶端元件之需求;以及對最新與先前版 本之電子郵件伺服器元件之需求。對電子郵件客戶端元件 需求的實施例包括,滿足不同的急迫性層級,以便顯示 不同資訊並符合一電子郵件客戶端元件使用者所選擇之 偏好設定。*^電子郵件飼服ϋ元件之需求的實施例包括, 有效率的儲存與敢咨女, 、 資料、以及有效率的處理通訊協定請 求。 傳統先前技術的電子郵件環境可利用可由具名屬性组 成之資料物件’例如,一電子郵件訊息可包括具名屬性的 標頭组~ 一主體組’使得兩組可以分別被請求和/或處 理。另一先前技術的實施例為一電子郵件訊息,其中該異 名屬性組的主體句拓姑# 7 , ^電子郵件訊息主體的多重版本,例 如,在多重電子郵侔 自 訊心格式中,例如純文字、超文字標 s 己 5吾吕(HTML)、誊舍^/ 身 豐田文本格式(RTF)等等。在此種情 形下hi技術之電子郵件伺服器元件可利用複數個方 式,回應一通訊協定對電子郵件訊息主趙之請求。複雜度 最低的回應可以傳送電子郵 丁岡1干巩忍主體的所有版本,但此 一回應可能導致增加頻寬利用。 第7A囷閣明_先前(習知)版本電子郵件伺元件 用來回應此-情形的-程序知一部份。在步驟7 子郵件飼…件會檢視每-電子郵件訊息主趙之格 式岸:該格式之一為一預設的標準格式(如,叫 程序會進㈣”7G3,且會㈣之電 息主體傳送到提出請求之 β 羿仟客戶端儿件。若該格式 18 200421802 皆非-預設之標準格式,則步称7〇ι會進行分支到步驟 702,在該處將該電子郵件訊息主體版本之-轉換成鮮 格式。* t子郵件訊息主艘僅有一單一版本時’亦可利 用第7A囷描述之該副程序,但該電子郵件訊息主體可能 不是一通訊協定請求之一標準格式。 第7B圖闞明根據本發明之一最新版本電子郵件词服 器元件所用的一程序的一部份。在步驟7〇4中,一通訊協 · 定請求會導致-電子郵件伺服器^件利用該副程序時,t * 檢視該通協定的一 BEST—B0DY (最佳—主體)旗號。本實施例 中的該旗號以及此處所用的其他旗號適用於一電子郵件 φ 客戶端元件,且該電子郵件客戶端元件為最新版本且欲實 作與該旗號相關聯的功能《可以利用其他指示。例如,若 横測到-最新電子郵件客戶端元件時,可預設實作該功 能。 在任何情形下,若未發現該BEST_B0DY旗號,則步驟 704會分支到步驟701,且繼續進行第7八圖與相關敘述之 步驟。 若發現該旗號,該程序進行到步驟7〇5,此時會選擇 最佳電子郵件訊息主體,以便將之傳送至提出請求的電子 ^ 郵件客戶m牛。若僅有_單一電子郵件訊息、主體與所請 求之電子郵件訊息相關聯,則其為最佳之情形。若有複數 個電子郵件訊息主體可用,例如有不同的格式,則該電子 — 郵件伺服器元件會根據,例如一預定之電子郵件訊息主體 一 格式順序(如,RTF、HTML、純文字),自其中選出最佳 19 ^421802 之後❹驟會進行到步驟7G3 ,在該處將所選的電子 例中=主體傳送至電子郵件客戶端元彳卜在此具體實施 體格々子郵件客戶端元件能夠顯示多重電子郵件訊息主 幸,因而使該電子郵件伺服器元件不受將電子郵件訊 -主體轉換成-標準格式的請求之拘^此外,若有需 =’、該電子郵件客戶端元件可將最佳電子郵件訊息主體轉 換成一不同格式。
因為電子郵件飼服器元件不須進行轉換電子郵件訊息 本雷:工# ’本發明提供了改良之效能。此外,-最新版 郵件飼服器元件可回應來自一先前版本電子郵件 客戶端元件之通訊協定請求’且僅微幅增加其複雜性。
可利用ROP在-電子郵件飼服器元件與—電子郵件客 戶端元件之間’進行—電子郵件資料夾之複製。可利用, 例如-同步化資料夹R0P,提出同步化一資料夹之一, 求。當-電子郵件客戶端㈣能顯示非標準電子郵件訊自 主體格式時,其可在該同步化資料夾ROP中,設定 BEST_B0DY旗號,以便指示該電子郵件伺服器元件可:所 有可用的電子郵件訊息本體之中選擇最佳格式而非請求 伺服器以-標準格式傳回—電子郵件訊息主艘。_電子郵 件飼服器元件可適當地處理具有以及不具冑EMBODY旗 號的兩種庸,且僅㈣增加其複雜性。可用於和先前版 本與最新版本伺服器進行通訊的瞻可包括,例如 表中所列之特性: 20 200421802 由一通訊協定用來與 由一通訊協定用來與 先前版伺服器通訊的 最近版伺服器通訊的 遠端作業 遠端作業 ROP ID(遠端作業識別) SynchFolder SynchFolder (同步化資料夾) (同步化資料夾) 新參數 無資料 BEST_BODY旗號:若設 定,電子郵件伺服器元件 會選擇最佳電子郵件訊息 主體,並將之傳送至電子 郵件客戶端元件。不必要 將該電子郵件訊息主體轉 換成一預定的標準格式。
第8A至8C圖顯示在一電子郵件伺服器元件與一電子 郵件客戶端元件之間,傳輸一組電子郵件訊息的數種不同 現有模式。對於每一模式,每一電子郵件訊息擁有具名屬 性,包括一標頭組與一主體組,且在一資料夾中包含複數 個電子郵件訊息。第8A圖闡明一完整項目傳輸模式。此 圖示顯示,正在傳輸一第一電子郵件訊息標頭80 1,且接 著傳輸一第一電子郵件訊息主體802 ;之後為一第二電子 郵件訊息標頭803以及接著一第二電子郵件訊息主體804 如此依序,直到該組電子郵件訊息全數傳輸完成。第8B 圖闡明一標頭優先傳輸模式。在本模式中,先傳輸一第一 電子郵件訊息標頭805,且接著傳輸一第二電子郵件訊息 標頭806如此依序,直到所有電子郵件訊息標頭全數傳輸 完成,且僅在此時才會傳送一第一電子郵件訊息主體 21 200421802 807並接著傳輸—第二電子郵件訊息主體_如此依 序,直到該組電子郵件訊息全數傳輸完成。第8C圖蘭明 一僅有標頭傳輸模式。如其 U具名稱所指,在回應傳輸一組 電子郵件訊息的一 口應時,僅傳輸電子郵件訊息標頭 809。僅當回應一額外转主 特疋明求時,才會傳輸電子郵件訊 息主體810〇在這虺模式之中的 一杲式之中的任一者,一較高優先性的 電子郵件客戶端元件請灰 ^ ^ ^ 什明衣,如一特定的電子郵件訊息主 體,可暫時打斷原有的傳輸順序。 …-電子郵件資料夾可做為傳輸一組電子郵件訊息之一
請求的目標的一實施例。然而,一電子郵件資料夾可含有 電子郵件訊息以外之其他資料物件。如上文所討論,傳輸 模式之定義經常係參照電子郵件訊息標頭與電子郵件訊 息本體,例如標頭優先以及僅有標頭傳輸模式。在此類傳 輸模式中’試圖傳輸資料物件時,可能未完整定義其具名 屬=之—標頭組和/或具名屬性之—主體組,@導致通訊 協疋失敗。為了避免此一情形,本發明之一態樣提供了資 料物件1其具名屬性之一標頭組和/或主體並未完整定 義水遠可將之整體進行傳輸而非部份傳輸。可利用第
圖做為實施例,闞明此一具體實施例。在此實施例中, 在一電子郵件伺服器元件與一電子郵件客戶端元件之間 的傳輸可發生於—僅有標頭模式中。因此,會傳輸一第一 電子郵件訊息標頭811,且之後資料物件812成為下一個 專輸的候選者。—資料物件812之具名屬性的該標頭組可 能未完# $ 1 , 疋我’例如FAI,所以會傳輸整個資料物件。當 22 200421802 下一個傳輸的候選者確實具有一完整定義之具名屬性的 標頭組(即,該候選資料物件具有該電子郵件客戶端元件 明確定義的所有具名屬性且屬於具名屬性之該標頭组), 此時僅傳輸一電子郵件訊息標頭813。
實作本發明此一態樣的一範例方式係利用一旗號,例 如IGNORE_MODE_ON__FAI,其可被包含於一同步化ROP中, 例如前述之同步化資料夾ROP。一電子郵件伺服器元件可 適當地處理具有以及不具有一 IGNORE_MODE_ON_FAI旗號的 兩種ROP,且僅微幅增加其複雜性。為了達成在一電子郵 件伺服器元件與一電子郵件客戶端元件之間進行一電子 郵件資料夾之複製,ROP可包括下表所列之特性:
由一通訊協定用來 由一通訊協定用來與 與先前版伺服器通 最近版伺服器通訊的 訊的遠端作業 遠端作業 ROP ID(遠端作業識別) SynchFolder SynchFolder (同步化資料夾) (同步化資料夾) 新參數 無資料 IGNORE—MODE一ONJFAI 旗號:若設定,則對i是 關聯資訊的資料物件,其 係為未完整定義好名稱特 性的標題組及/或主體組, 無論普及的轉送模式為 何,該電子郵件伺服器元 件會以整個資料物件回應 一轉送請求。 電子郵件訊息通常係發給一或多位電子郵件網路使用 23 200421802 者。若-電子郵件伺服器元件接受一電子 之,則可認為該電子郵件訊息已傳送… :並储存 具有複數個電子郵件飼服器元件。—般典型中郵件:路可 =通訊協定有某些策略,可限制電子郵件伺服器= 的數目’卜電子郵件網路㈣者必須檢查新訊息。 見的實施例為家用伺服器策略,其中發給-特定電子郵件 網路使用者之電子郵件訊息,僅可被一特定電子郵件飼服 器疋件接受’也就是該使用者之家用飼服器。在此情形 下,當,例如,定期檢查新電子郵件訊息或請求通知新電
子郵件訊息時’一·雷 /jL tjt> ^ j. JL, « . 家用饲服器。 〜件可經组態僅考量該
第9圖顯示,即使是一簡單的家用飼服器策略實施例 也可以複雜化。在第9圖所閣明的實施例中,首先會將— 特定的電子郵件伺服器元件9()1指定為_特定電子郵件 網路使用者之家用伺服器。隨著時間,指派給使用者的家 用伺服器通常會因為管理上的理由,改變為不同的電子郵 件飼服器元件903與9〇5。電子郵件飼服器元件9〇1、9〇3、 與905可以是,例如實際上不同、或邏輯±不同或為不 同版本。在T0時間至口,時間中,電子郵件客户端元件9〇2 僅可和電子郵件伺服器元件9〇1進行通訊;之後在^時 間之前,電子郵件客戶端元件904僅可和電子郵件飼服器 凡件903進行通訊;且之後電子郵件客戶端元件州可和 電子郵件伺服器元件905進行通訊。電子郵件客戶端元件 902、904、與9〇6可以是相同的或不同的。在I時間之 24 200421802 灸電子郵件伺服器元件901肖903可以存在或可以不存 在k二複雜化與下列將討論的電子郵件訊息存放區之複 製尤其相關。 —一電子郵件伺服器元件可將電子郵件訊息儲存於一指 定之電子郵件U存放區,例如,利用已知的資料庫技術 來實作。-電子郵件伺服器元件可具有一或複數個此類訊 息儲存區。一電子郵件網路使用者可具有一家用訊息儲存 區。改變豕用訊息儲存區與前述改變可家用伺服器可得到 相同的效果。 某些電子郵件網路通訊協定包括一能力,可將一電子 郵件訊息存放區之一部份複製到位在一電子郵件客戶端 元件之-種儲#區設1將一遠端電子郵件訊息存放區之 部份複製到-本機電子料料區設施,可改良通訊協定 效能和/或了解通訊協定效能,例如,藉由在一指定的電 子郵件網路使用者請求中,請求檢視所有新的電子郵件訊 息之前,將之全部複製到本機電子郵件儲存區設施。此種 複製亦可提供額外的電子郵件客戶端元件功能例如在 網路連線中斷時’使-電子郵件網路使用者可檢視一電子 郵件訊息。 在一電子郵件網路環境中
簡單的複製可能很快地變 成無效率。例如,若-電子郵件伺服器元件具有和一特定 電子郵件網路使用者相關聯的一種電子郵件訊息,且該訊 息已被複製到該網路使用者之客戶端元件,且一新電子郵 件訊息已傳達給該電子郵件網路使用者,仍然需要傳送該 25 200421802 兩種電子郵件訊息,以便θ庙 鸽》。u 使回應一簡早的複製請求。若在複 製該兩種電子郵件訊息之後,萁沐 ^ ^ ^〈设,另外一種新的電子郵件訊息 到達,則仍然需要傳送該=鍤雷早翻 〆一禋冤于郵件訊息,以便回應一 簡單的複製請求,其他訊自亦妒。觉 成%、亦然。某些電子郵件網路通訊 協定已提供一種電子郵件^f自赵 千訊心儲存&的累加複製,以便改 進此一問題0在一累加複制由,旧麻 . , 设製中,回應一複製請求時,僅須 傳送在-先前已成功的累加複製之後,—電子郵件訊息存 放區的改變,例如,當在前一次成功的累加複製之後,唯
一的改變是有-新電子郵件訊息送達時,僅需傳送該新的 電子郵件訊息,來回應一累加複製請求。
▲第10圓顯示,一可提供累加複製之通訊協定的一種更 詳細實施例。一電子郵件訊息存放區可再分割成電子郵件 資料夾。每子郵件冑料夾可獨立於其他I料夾而複 製,對於複製過程可提供一更細緻的控制。在此實施例 中將亥累加複製過程稱為同步化,因為其包括複製由電 子郵件客戶端元件501至電子郵件飼服器元件5〇2之改 變’以及由電子郵件飼服器元件5G2至電子郵件客戶端元 01之改變。緊跟著一種同步化請求1〇〇1之後,電子 郵件伺服器兀# 5G2會處理-同步化資料夾R〇p。該R〇p 包括資料夾ID參數(此處未顯示)以及一狀態二位元 聖物件〇參數。該資料夾ID參數可識別為該同步化請 求1〇〇1之目標的一電子郵件資料夾。該狀態二位元大型 〇參數包含的資訊可供電子郵件伺服器元件502決定 在前一次同步化作業之後,該電子郵件資料夾上發生了何 26 種改變,如果有的話。 右明水1001代表電子郵件客 :件501對目標資料夹之第-次同步化請求,則電子郵件 伺服器元件502可決定該電子郵件訊息存放 牛 電子郵件資料夾,相較於一空的 目& 幻賁料爽’其疋否已改轡。 在回應請求1001的回應1 中,電子郵件伺服器元件 502可將任何改變傳送 电于郵件客戶端元件501,包衽 被加入目標資料夾中之任何電 物件,以及任何已自目和或其他資料 “ “ ^ 自目標資料刪除之電子料訊息和/ 或其他資料物件之一清單。雷 ^ ^ 穿皁電子郵件伺服器元件502亦會
產生-種新的狀態二位元大型物#ι,其可表示該目標資 料夾之狀態,在同步化作業之工 井會緊接者位在電子郵 件客戶端元件501上,同時.奋—^ _ 會在回應1002中傳送該狀 〜一位元大型物件1。當電早生办二 > 田€子郵件客戶端元件501替與請 求1001中相同的資料夾傳详 _ 灭得送下一同步化請求1003時,則 請求1003將包括一參數,装後 致其係與和回應1002 —同傳回之 狀態二位元大型物件1相同。 J 门則述,在回應1004中, 電子郵件伺服器元件502會利 $不』用狀態一位疋大型物件!中 包含之資訊來決定在目標資斜此^ 标頁枓夾中已發生何種改變,如果
有的話,並將該改變和一新產4 座生的狀態二位元大型物件2 一起傳送回電子郵件客戶端元件5〇1。 若一狀態二位元大型物件資料物件的大小很大,可能 會對通訊協定效能帶來負面料,因為其會將其與,例如 每一電子郵件資料夾同步化請束 硬木 冋傳送至以及傳送自 一電子郵件伺服器元件。在 系二用於電子郵件資料夾同步 27 200421802 化作業之電子郵件網路通訊協^中,狀態二位元大型物件 可以,絕大部份,由一訊息組…D資料物件組成,其 可識別一電子郵件客戶迪;Μ 3 β J 戶舄70件已觀察到之電子郵件訊息 的改變。當經改變之電子翻彳生4k 郅件訊息被傳輸到一電子郵件客 戶端和/或4司服器元件時,可切宗兮 』涊疋5亥兀件已觀察到一電子 郵件訊息之改變。 -訊息改變ID資料物件的一種目的可以是在一完整 電子郵件網路之脈絡下,獨特地識別一電子郵件訊息之改 變。在一使用一種家用伺服 ^ 1J服器桌略之電子郵件網路中,一
使用者之家用伺服器可負眚脓 1 .於嫩ΤΤΛ * J只貝將一訊息改變ID資料物件與 一先前未觀察到之電子郵侔#自#嫩I ^ 也丁巧仟Λ息改變做一關聯。例如,一 家用伺服器可利用至少包冬 ^ ow ^ /匕3 —種伺服器ID資料物件以及 一序號的訊息改變ID資料私灿 _ οπ ^ 頁枓物件。一伺服器ID資料物件可 利用習知技術在一完暫雷工^ tiL ^ 凡整電子郵件網路之脈絡下,獨特地識 別一電子郵件祠服器元件 例如全球唯一識別元。雖然此 識別項本身大小可能你4* 旎很大,伺服器ID資料物件可替代做 為由電子郵件伺服器元件侔 μ %丨谓★ υ开侏有之一識別項查閱資料表的 索引。該序號可由—tf叙 汎J由彳數器提供,例如,寬度為6位元組,
位在一電子郵件伺服器元件 ^ 丨丁 r ,母备冤于郵件伺服器元件 接受一先前觀察到之電子郵 司件訊心進行儲存時,便會累加 之0 為了討論之目的, 息改變ID資料物件 祠服器元件之伺服器 可利用,例如「s 1:1 J,來表示一訊 其中「Si」係代表一第一電子郵件 ID資料物件,且「1」代表一序號。 28 200421802 表示一訊息組改變ID資料物件的方式,可以是,例如, 「S1:h S1:2, S1:3」,其中 rSl:1」、rSi:2」、以及「Si:3」 是一伺服器ID為S!之電子郵件伺服器元件所用的連續訊 息改變ID資料物件。 當一狀態二位元大型物件之絕大部份係由代表一電子 郵件客戶端元件所觀察到之改變的一訊息組改變ID資料 物件(一「訊息改變觀察」組)所組成時,已發展出某些 · 技術來編碼該組,以便減小其大小,例如可將「s丨:丨,s 1:2 , ★ si:3,S1:4」組編碼成「S1:l-4」。此外,一電子郵件伺服 器元件其所使用的序號永遠都是增加的。若發生一非連續 φ 之訊息改變觀察組之情形,例如,r Si:1, Sl:3, Sl:5, Si:7j, 可將之編碼成「S^l-7」,亦即編碼成一包括最小與最大序 號之範圍,而不會有功能上的損失。 在第9圖所描述的一種情形中,一訊息改變觀察組可 包括現用家用伺服器(如,SO以外之其他電子郵件伺服 器元件(如,S丨,S2 )所產生的訊息改變id資料物件。 現用家用伺服器所產生之一訊息改變ID資料物件可稱為 一原生訊息改變ID ;由其他電子郵件伺服器元件產生之 一訊息改變ID資料物件可稱為一外部訊息改變^。可和 φ
先前版本電子郵件伺服器元件進行通訊之電子郵件網路 通訊協定,並未對非連續性外部訊息改變ID 汁夕丨』徒供此 — 種最佳化,該最佳化係包括以每一電子郵 巢于郅件伺服器元件為 基礎之最小與最大序號的範圍。下表闡明在本發明之一 · 體實施例中加入此種最佳化的優點: 、 29 200421802 由一先前版伺服器 (目前家用伺服器3) 使用的最佳化 由一最近版伺服器 (目前家用伺服器S3) 使用的最佳化 最佳化之前 S 1:1,S1:3, S 1: 5,S 1: 7 觀察到的訊息更動組 S2:1,S2: 3, S2:5, S2:7 S3 : 1, S3:3, S3:5, S3:7 最佳化之後 Si:l, Si:3, Si:5, Si:7 Si:1-7 觀察到的訊息更動組 S2:l,S2:3, S2:5,S2:7 S2:l-7 S3:l-7 S3:l-7 本發明之一具體實施例利用之ROP包括下表所列之特 φ 徵,以便達成在一電子郵件伺服器元件與一電子郵件客戶 端元件之間一電子郵件資料夾的同步化。一電子郵件伺服 器元件可實作該改良之狀態二位元大型物件編碼技術,且 僅微幅增加其複雜性。 當與先前版伺服器通 訊時,由一通訊協定 使用的遠端作業結果 當與最近版伺服器通 訊時,由一通訊協定 使用的遠端作業結果 ROP ID(遠端作業識別) SynchFolder (同步化資料夾) SynchFolder (同步化資料夾) 用在一新模式中之未更 動的參數 stateblob:最佳化不氙括 外地訊息changelD資料 物件的非連續組。 stateblob:改進的S祛化 包括外地訊息changelD 資料物件的非連續組。
第11A圖與第11B圖中,闡明一先前版本伺服器與一 30 200421802 最新版本伺服器,分別用以回應一同步化資料夾R〇p之 一副程序間的不同。第11A圖顯示步驟1101、11〇2、與 1103。在步驟11〇1,建構一種初始訊息改變觀察組。在步 驟1102 ’該訊息改變觀察組之成員為原生訊息改變ID資 料物件者’會被最佳化。在步驟1103,將該最佳化訊息改 變觀察組加至狀態二位元大型物件資料物件,其可和一回 、 應一起傳送至請求該同步化作業之一電子郵件客戶端元 件。第11B圖包括額外的步驟11 〇4,其顯示該訊息改變 ’ 觀察組之成員為外部訊息改變ID資料物件者,亦會在訊 0 息改變觀察組之前被最佳化,而現在隨著改良之最佳化, 在步驟1 1 03中,將之加入一狀態二位元大型物件資料物 件中。 雖然將一電子郵件訊息存放區再分割成電子郵件資料 爽確實對該同步化過程提供了一種更細敏的控制,但這並 不自動地導致通訊協定效能之改良,且可能造成通訊協定 效能之降低。例如,某些通訊協定請求將每一訊息存放區 資料夾分別同步化。每一同步化作業通常有某些額外負 擔’且该額外負擔可能很顯著。利用狀態二位元大型物件 資料物件之同步化作業為可擁有顯著額外負擔之作業的 φ 一種實施例。在同步化一個完整訊息儲存區的情形下,請 求將每一訊息存放區資料夾分別進行同步化之通訊協 _ 定,相較於請求較少同步化作之通訊協定,前者可能有能 較不利。 將一完整訊息存放區同步化,並維持同步化,為一電 31 200421802 子郵件客戶端元件中理想的目標。傳統先前技術電子郵件 客戶端元件已試著達到此一目標,即便如此一來可能對通 訊協定效能產生顯著的負面影響。本發明之一態樣係在於 其可最小化對通訊協定的負面影響,同時利用一深層階層 架構資料表達成此一目標。傳統先前技術電子郵件伺服器 元件無法提供一深層階層架構資料表。 §將電子郵件訊息儲存區再分割成電子郵件資料夾 時,可將這些電子郵件資料夾組織成階層架構。第12圖 , 顯示一電子郵件資料夾階層架構的一實施例。在第12圖 中,資料夾1204為資料夾1203的一種子資料夾。資料爽 · 1203則依序為資料夾! 2〇2的一種子資料夾。資料夾12〇1 一根資料夾。一根資料夹並非任何其他資料夾的一種子資 料夾。所有其他資料夾皆為以資料夾12〇1為根資料夾之 資料夾階層架構的成員。一般典型中,一資料夾階層架構 中的每一資料夾與每一其他資料夾不具有直接參照。一資 料夹可能僅和其子資料夾有直接參照❶一資料夾亦可和任 何一種為一子資料夾的資料夾有直接參照。在許多例子 令,當每一資料夾皆對一特定資料夾有一直接參照時,該 特定資料夾可能為該階層架構中之根資料夾。 · 一種深層階層架構資料表可包含與一資料夾階層架構 中每一資料夾相關之資訊。在該深層階層架構資料表中, - 每一資料夾可具有一資料列。深層階層架構資料表中的資 訊可用來決定在一特定時間範圍内,一電子郵件資料夹中 , 的内容是否已改變。欲決定在一特定時間範圍内,一電子 32 200421802 郵件資料夾之改變,可將在該時間範圍的開始對一資料夾 之資料列所做的複本,與在該時間範圍的結尾對一資料夾 之資料列所做的複本做一簡單之比較。在一具體實施例 中,該深層階層架構資料表之每一資料列包括下列屬性: 屬性名稱 屬性類型 附註 資料夾識別 FID FID類型包含一全球 唯一識別元(GUID)和 六位元組的一序號。這 個值可用來獨一無二 地辨識在一 一電子郵件網路的環 境中之一電子郵件資 料夾。 PRJLOCAL—COMMIT一TIME一MAX Timestamp 任何時候更新這個時 間戳記,修改該資料夾 的内容。 PR一 DELETED-COUNT一TOTAL QWORD 這個值係從該資料夾 曾經刪除項目之全部 數量的一計數
每當一資料夾之内容發生改變時,便會更新在一深層 階層架構資料表中的一電子郵件資料夾之資料列的屬 性。為了有效實作一深層階層架構資料表之更新,申請人 已發現對深層階層架構資料表建立一快速且直接之參 照,有助於達成此一目標。至少,申請人已發現當嘗試存 33 200421802 取深層階層架構資料表時,應有一種少數且其數目可預測 之間接取值的層級。例如,將一深層階層架構資料表定位 於一資料夾階層架構中一層 r ^ 任忍層級疋,並不會提供可預 測之數目之間接取值的層級。因為此種理由,在本發明之 一種具體實施财,—種深層階層架構資料表可以和一電 子郵件網路使用者之電子郵件訊息存放區資料夾階層架 構的根資料夾相關聯。
可以將在一^:子郵#客戶端元件與一冑子郵件飼服器 元件之間進行之通訊分割成通訊工作階段。在工作階段之 間’可能發生電子郵件訊息存放區同步化之損《,例如, 在一網路連線中斷的情形中。為了在一通訊工作階段的開 始重新建立電子郵件訊息存放區同步化,某些可和先前版 本電子郵件伺服器元件進行通訊之通訊協定,會對資料夾 階層架構中之每一資料夾採用一同步化資料夾R〇p。一般 典型中,在工作階段之間,這些資料夾中某些資料夾的内 容會改變。一同步化資料夾R〇p以一種未改變之資料夾 做為其目標,會導致一「虛無同步化」。雖然一「虛無同 步化」並不會導致任何資料夾之改變被傳輸至一電子郵件 客戶端元件’其卻仍然擁有一額外負擔與之相關聯,例 如’一狀態二位元大型物件資料物件,而此種而外負擔可 Μ是非常顯著。 第13圖闡明本發明之一種具體實施例,其可藉由利用 一深層階層架構資料表,來避免此種「虛無同步化」結果。 在一第一請求1301中,電子郵件客戶端元件5〇1可項電 34 200421802 子郵件伺服器元件5〇2傳送一 R0P (如,取得階層架構資 料表),請求一深層階層架構資料表。在一第一回應13〇2 中會提供該深層階層架構資料表的一複本給電子郵件客 戶端元件501。一般典型中,電子郵件客戶端元件5〇1會 擁有該深層階層架構資料表的一種先前複本^電子郵件客 戶端元件5 0 1可將該兩種複本進行資料列對資料列之比 對’而迅速決定在電子郵件伺服器元件502上之使用者之 ” 電子郵件訊息存放區中,哪些資料夾已發生改變。接著, , 僅會利用ROP (如,同步化資料夾)來同步化已發生改變 之資料失。可在必要時重複請求1 303與回應1304,以便 Φ 同步化該已改變之資料夾。在成功進行同步化之後,可更 新該電子郵件客戶端元件的深層階層架構資料表之複 本以便與在回應1302中傳送的最新複本相符0若電子 郵件客戶端元件501沒有一深層階層架構資料表的先前 複本,則可同步化在該最新複本中擁有一資料列的所有資 料夾。 一旦已建立一種使用者之電子郵件訊息存放區之同步 化,可藉由定期重複上述工作階段步驟的開頭(即,輪詢 電子郵件伺服器元件),來維持同步化,但此一方法有某 | 些缺點。例如,輪詢時期可能比一使用者之電子郵件訊_ 儲存區的改變之間的時期短得多。在此種情形下,在深層 階層架構資料表之比較中,會有相對較多的比較指出並沒 有資料夾被改變。此種比較實際上是白費氣力,所以一種 - 可避免此情形之通訊協定應當較有效率。 35 某些電子郵件網路包括一種設施,可供一電子郵件客 戶端兀件訂閱|,例%_#定電子郵#資料夾之Μ容改變 時’接受-電子郵件伺服器元件的通知。某些先前版本電 ^郵件客戶端元件會使用此種設施,對於與一使用者的資 料夾階層架構中每—資料夾相關聯之改變通知,產生一獨 立的訂閱,藉此維持-使用者之電子郵件訊息存放區的同 步化。在本發明的—種具體實施例中,—電子郵件客戶端 兀件對與該深層階層架構資料表相關聯的改變通知,僅可 2一單一訂閱。一單一訂閱較有效率,因為僅需較少 R〇P便可建立,且消耗較少伺服器方面的資源。 進一步參照第13圖’當-最新版本電子郵件客戶端元 件叫根據本發明之-態樣,在和—電子郵“服器元件 5〇2之一通訊工作階段的開始,便在一 m ^ 乐请求13 01中, 利用一獲取㈣架構資料表讀,電子郵件客 可自動地訂閱在回應1302中傳 的與垓深層階層架 構資料表相關聯之改變。當在電子郵侏 mi 务尸端元件的一# 用者之電子郵件訊息存放區中的一電 电于郵件資料夾發生 一改變時,例如將一電子郵件訊息加至 ^ ^ 貢枓失,亦會如 别这方法更新該深層階層架構資料表。 货生於深層卩昏展& 構資料表之改變會引起對電子郵件客 八 |仃谷尸端元件5〇1 一 通知警告1 305。雖然該通知警告係回 ’ 您明求1301接屮之 訂閱,期並非一特定請求_回應週期 σ丨份。因此,刹 用本發明提出之通知系統,對電子郵件 外負擔。 、成較小的額 36 一單一訂閱可導致多個 4i] m ^ 〇。在一具體實施例_ ,會 利用一種非連結導向綑 1 ^ /m ^ 傳輸機制,例如使用者資料包通 ▲協疋/網際網路通訊協 可利用心* P/IP),來傳送警告,但亦 了利用任何適當的網路 郵件客戶迪1 ㈣機制。為了回應該警告,電子 各戶ΐϊ&7〇件501會藤難女 一往书 貧將帶有一 r〇p (如,獲取通知)的 /月,1306傳送至電子郵件飼服器元件502。在回應1307 將任何已改變之深層階層架構資料表的資料列(即, 相對應於一種已改樹丨丄 變之資料夾的資料列且其引發該通知) 傳送至電子郵件宏# e - Μ
^疋件501。之後電子郵件客戶端元 件501會利用R〇p (如, 同步化貪料夾)來同步化已改變 之資料夾β 對於與該相同資料物件(如,相同的電子郵件資料夹) 相關聯的改變通知,多重電子郵件客戶端元件可訂閱之, 例如’提供協力功能。>第丨8圖所Μ明,電子郵件客戶 端元件1801、1 802、與18〇3已訂閱與位在電子郵件祠服 器元件1804上的相同資料物件(此處未顯示)相關聯的 改變通知。電子郵件客戶端元件18〇3將一 R〇p 18〇5傳送 至電子郵件伺服器元件i 8〇4,並導致資料物件的一改變。
因為該改變,電子郵件伺服器元件j 8〇4會向電子郵件客 戶端元件18(H、1 802、與1 803送出改變通知18〇6、18〇7、 與1808。除了識別已改變之資料物件的資料之外,改變 通知僅可播帶少數資訊’使得,例如一電子郵件客戶端元 件不會決定其為造成一特定改變之原因。若該資料物件 為,如一電子郵件資料夾,則改變通知1 806、1 807、與 37 200421802 1 808可導致每一電子郵件客戶端元件18〇1、18〇2、 , 丹 18〇3 初始化該已改變資料夾之同步化。在此實施例中,既 %热係 由電子郵件客戶端元件1 803造成該改變,其結果將為一 「虛無同步化」。 基於前文討究的原因,消除會造成一「虛無同步化 之同步化作業,是非常理想的。然而,所述的通知行為並 非永遠為一不受歡迎之行為,且某些電子郵件客戶端元件 可能須仰賴之。本發明之一態樣在於提出一電子郵件客戶 端元件’其具有組態一最新版本電子郵件伺服器元件之通 知行為的能力,以便改良通訊協定效能,同時向先前版本 電子郵件客戶端元件提供未改變之通知行為。 第19A圖闌明可由先前版本電子郵件伺服器元件提供 之通知行為。第1 9B圖闡明根據本發明之一態樣的町組態 之通知行為。若有需要,一最新電子郵件客戶端元件$指 示一電子郵件伺服器元件,其能夠進行第19B圖中之通知 行為,例如藉由和一請求一起供應一旗號,在第l9B圖的 實施例中,為一種略過—自身旗號。 在步驟1901’會選擇該組訂閱者中下一個將被告之的 候選者。在步驟19〇4,會檢視該訂閱之略過—自身旗號。 若旗號未出現,步驟19〇4會分支到步驟19〇2,在該處將 一通知傳送至候選的訂閱者。若發現該旗號,步膊19〇4 會分支到步驟1 905,在該處再次檢視該訂閱以便決定訂 閱者疋否引發此一通知。可藉由,例如檢視用來進行訂閲 之工作階段的一通訊工作階段識別項(「工作階段J ), 38 200421802 來進行此一決定。一種工作階段ID,例如,可至少包含 一全球唯一識別元以及一 6位元組之序號。亦會在該通知 檢視該工作階段ID與其原因是否相關聯^若二者相符, 則會抑制該通知《一種結果可能是引起一通知的一電子郵 件客戶端元件,並不會也接收該通知。之後副程序會進行 至步驟1903,如下所述。 右ΤΓ閲者亚
段ID和與通知的原因關聯的工作階段id並不相同,而多 驟190 5會分支到傳送該通知的步驟19〇2。之後該過程, 進行到步驟1903’在該處會決定是否需要通知更多訂段 者。若需要,副程序回到步驟19〇1,否則該副程序結束 如前所述,利用電子郵件訊息之快取儲存區的一電^ 郵件客戶端元件可請求,例如透過一 R〇p ,將一本機落 戶端資料存放區以及電子郵件伺服器元件上可用的資剩 存放區之間的訊息或其他資料物件進行同步化。電子郵科 客戶端元件可利用類似的方法提出請求,將來自伺服 放區的訊息複製到客戶踹钱左 尸端儲存區中。在任一種情形中,可 利用一快速傳輸模式來進行請求。 一般典型中,冬社α、
^ v W请求訊息或其他資料例如檔宰進杆η 步化或複製時,該請求(如^ 瑁茱進仃问 所有欲進行同步化 括“不,指出 用,例如,上述之狀啤子郵件飼服器元件可利 一位元大型物彳φ祐^, 此一清單。對於先前版 _ ,自動地建構 件,在-ROP請长 别技術)電子郵件伺服器元 /中的m資料物件的_錯誤 39 月求中所有項目的錯誤。在第14Α圖中顯示此一過 t在該處將帶有- R0P的-請求(如,FXPrepare)和 ^ 將進行複製或同步化的一訊息ID組一起於步驟
、〇 1進行傳輸。在電子郵件伺服器元件502上設定一快 逮傳輸機制,且在步驟14〇2將一快速傳輸⑴傳輸至電子 郵件客戶端元件501。之後電子郵件客戶端元件5〇1會透 過種帶有,例如,一種FXGetBufferROP的請求,請求 將該資料物件複製或同步化(步驟1403 )。當電子郵件祠 U it# 5〇2嘗試開啟所請求的訊息時,在—或複數個訊 息或其他資料⑼#中會發生—錯$。錯誤例子包括一訊息 s資料物件已損壞、伺服器錯誤、電子郵件伺服器元件 502 s己憶體將用冑、或偵測到該資料物件中有—病毒。 在錯誤之後,電子郵件飼服器元件502會在步驟14〇4 中,於串流至電子郵件客戶端元件5〇1的資料中,傳送一 嚴重R0P錯誤。因此當同步化失敗時,電子郵件客戶端 元件5〇1並未同步化或複製該訊息⑴組中的訊息,而且
也未接收狀態二#元大型物件或類似的更新資I。之後電 子郵件客戶端元件训必須在—其他時間請求將該資料 物件同步化或複製。若一錯誤並未固定於電子郵件伺服器 元件,有可能繼續傳送錯誤訊息,且該訊息^組 中的訊息可能永遠不會被同步化或複製。 根據本發明之-態樣,-最新電子郵件饲服器元件可 傳送關於特定資料物件(如,一電子郵 訊w )錯誤資訊 而# 一嚴重R〇p錯誤,使得僅有該物件之同步化會失敗。 40 200421802 此一特徵使得,即便在該回應中包括帶有一錯誤的訊息或 其他資料物件時,一 ROP或其他請求中的訊息或其他資 料物件仍能被傳輸與同步化或複製。 一種如何處理一物件專一之錯誤的實施例中,對於帶 有一物件錯誤之資料物件,一最新電子郵件伺服器元件可 在一資料流中傳送一錯誤訊息。在此實施例中,為了參照 的方便,將該錯誤稱為FXErrorlnfo。若需要時,如下文 將進一步描述,FXErrorlnfo可包括的資訊,例如錯誤之 資料物件的訊息ID、以及關於訊息為何失敗的額外資訊 等。 第14B圖顯示一同步化,在一訊息&中出現一種錯 誤。該錯誤會產生一 FXGetBuffer回應1405,其包括訊息 、與訊息M2,其後跟著FXErrorlnfo、與訊息M4。 FXErrorlnfo資訊使得電子郵件客戶端元件5〇1可知道何 種訊息帶有一錯誤,並同步化該回應中之所有其他訊氡。 若錯誤訊息FXErrorlnfo包括關於該錯誤之理由的資訊, 邊客戶端元件可隨之利用該資訊,例如藉由向一使用者顯 示一錯誤訊息。 下表顯示FXErrorlnfo可用之格式的一實施例: FXErrorlnfo 屬性名稱 屬性類型 --~------^ 註解 版本 WORD '—----—— ___一 這個結構的版本 錯誤碼 DWORD 1——------— 41 200421802 訊息識別 MID MID類型包含一全球 唯一識別元(GUID)及 六位元組的一序號。這 是產生該錯誤之訊息 的訊息識別。 … … 可在此加上零或更多 屬性。 輔助欄位大小 ULONG 依循此陣列的大小 辅助攔位 BYTE array(位元組陣列) 一無特定架構的的陣 列用於通訊錯誤細節
如此處可發現,這些示範性格式包括一版本屬性、一 錯誤碼、以及一訊息ID。此外,若有需要,可加入一或 複數個屬性。更進一步,如前所述,可替通訊錯誤詳細資 料定義一辅助欄位。同樣地,可定義一屬性來命定錯誤詳 細資料之攔位大小(如,一陣列),且可以用,例如可用 於通訊錯誤詳細資料的一種未建構之陣列,來提出一欄 位。如前所述,可隨電子郵件客戶端元件501之需求來處 理錯誤詳細資料。 FXErrorlnfo使得第一回應之同步化得以完成,例如將 一狀態二位元大型物件或其他資訊提供給電子郵件客戶 端元件 5 0 1。因為該電子郵件客戶端元件現正透過訊息 M4來進行同步化,下一個請求同步化的請求1406,可造 成一回應1407,其具有M4之後的訊息(如M5、與M6)。 42 200421802 為了指出一電子郵件客戶端元件501為一最新版本, 並因而可以處理FXE_nf。訊息,可定義—旗號,例如, FX恢復模式,其可一請求的步化或複製#讀一同傳 輸。電子郵件客戶端元# 501可利用其他指示,和能夠處 理FXEn:cn:Inf。訊息的電子郵件伺服器元件5Q2進行通訊。 當電子郵件飼服器元件5G2將―或複數個訊息或其他 資料物件傳送至電子郵件客戶端元件5〇1時,串流至電子 郵件客戶端元件之資料可以是單獨的或由内容標籤定義 (如,ptag )。例如,一訊息清單可包括每一訊息的一開 始訊息pug以及一種結尾訊息ptag。在開始與結尾pug 之間,可以為一内容清單ptag,以及一主題pug,其可擁 有一字串的内容。該主題ptag其後可跟著該主題本身。 可包括其他内容標籤。 在傳輸一訊息時發生一錯誤的情形中,可以一 ptag之 形式提供該FXErrorlnfo,且其可擁有二元屬性,例如上 表中所定義者。一跟隨於後之資料資料流的一實施例,具 有一成功訊息以及一錯誤發生於其中的訊息兩者。在錯誤 發生的情形結尾訊息ptag並未用於該特定訊息,且 ptag FXErrorlnfo為該訊息之最終ptag。 ptagMessageListStart ptagMessageStart ptagPropList ptagSubject〔PT—STRING〕 "Re: Y〇ur email" ptagMessageEnd 43 2〇〇42l8〇2 ptagMessageStart ptagFXErrorlnfo〔PTJ3INARY〕 〔内容如由表中所描述〕 ptagMessageStart ptagMessage End ptagMessageListEnd 弗1 A圖顯示,一電子郵件翎 一 判仟何服器兀件502可用來將 訊息傳輸至一先前版本電子郵件 ― 1什各戶端το件501的步 辣。自…5〇1處開始,籌備訊息組,例如藉由將訊自 組置於快速傳輸資料餘存區中。在㈣i5G2,開始串流 輪出訊息,例如緊接在將其至於雷 " 孓冤子郵件伺服器元件502 之傳送緩衝區中之後。若營认, 傻右备串流輸出訊息時,發生一錯 誤,則會在步称1504中,將一嚴重R〇p錯誤申流至電‘ 郵件客戶端元件5G卜之後結束該副程序。若,當串流該 訊息時’未發生一錯誤’則在步驟 7鄉1 503中會決定該組中 是否有更多訊息。若然,該程序會週期回步驟15〇2,在 該處將下一個訊息串流輪出。甚术 ^ 甲U钳Κ右否,則該結束副程序。 第15B圖顯示一電子郵件伺 屯丁用旰U服态兀件5〇2的一最新版 本可用來處理-訊息組的_種程序。隨著電子郵件客戶端 元件為一最新版本或-先前版本,所用的步称也會不同。 步称15〇1至1504為一先前版本電子郵件客戶端元件所用 之步驟,且其和上述段落中表古 洛〒具有相同參照編號的步驟相 同。 44 若在步驟1 5 Ο 2中,當串流該訊息時發現一錯誤,則會 在步驟1505決定該請求是否包括一旗號,例如Fx恢復模 式。若該請求包含旗號,則該電子郵件客戶端元件5〇1為 一最新版本,且步驟1 505分支到步驟15〇6,在該處將 FXErrorlnfo串流至電子郵件客戶端元件5(Η。該過程可繼 續進行到步驟1503。若該請求並未包括旗號,則步驟15〇5 分支到步驟1504,在該處將一嚴重R〇p錯誤串流輸出。 之後結束該副程序。 - 如此處可發現,在請求中出現旗號,會藉由將一 FXErrorlnfo串流輸出,而非使其失敗並傳送一嚴重R〇p 錯誤’使得該串流過程可繼續進行。該旗號係由一電子郵 件客戶端元件501之一最新版本所傳送。電子郵件客戶端 元件之先前版本並未包括該旗號,因此一錯誤會導致將一 嚴重ROP錯誤串流輸出,如前所述。 若有需要,在另一種具體實施例甲,可替一訊息或其 他資料物件之特定内容傳送出錯誤訊息(如,FXErrorInfo ) 可以疋’而非替'一個完整訊息。例如,可替一訊息之主體、 或一訊息之一附件’傳送出FXErrorlnfo。之後,電子郵 件客戶端元件501可將已成功傳出且沒有一錯誤之内容 φ 進行同步化或複製,且僅有具有錯誤之内容未進行同步化 或複製。 有時候,一訊息或其他資料物件的大小可能足以合併 多重FXGetBuffer回應。為了處理此類訊息,電子郵件客 * 戶端元件501可包括回捲邏輯,使其可處置任何部份接收 45 200421802 之訊息,並處理之’以便在接收-錯誤訊息之後適當地接 收進一步的訊息。 在某些時候’一電子郵件客戶端元件可能需要對資料 物件,例如電子郵件訊息,之複製或同步化,提供回饋。 根據本發明之一態樣,一電子郵件客戶端元# 5〇1之一最 新版本可指#纟能處理進度模$,例如當提出同步化或複 製資料物件之請求時,ϋ由將一旗號,例如進度帛式, , 傳送至-電子郵件伺服器元件5G2。為了回應,電子冑 · 件伺服器元件502的一最新版本可隨著訊息傳送複數個 資訊’例如所有訊息的總計大、訊息總數、以及,每一訊 φ 息的總計大小、或任和前述之組合。 例如,如第16圖中所示,對於一先前版本電子郵件客 戶端70件501,其回應—訊息組之一快速傳輸請求( 與1 603 )時,電子郵件客戶端元# 5〇1會#收該訊息。 在第16A圖中,在兩種回應16〇4與16〇6中接收訊息。在 利用一快速傳輸機制之先前版本電子郵件客戶端元件5〇1 中’並未對將串流至客戶端之訊息提供一進度指示。 然而,如第16B圓中所示,為電子郵件客戶端元件提 出之一訊息組的請求之一回應1 607 ,電子郵件伺服器元 件5 02可提供將被傳輸之資料物件總數、以即將被傳輸之 所有資料物件的總計大小。在第16B圖中,以Γ pan」表 示該資訊。一電子郵件伺服器元件5〇2之一最新版本亦可 * 提供每一訊息之大小,在第16B圖中,以「Pl , p2 , p3 ,」 · 表示。此外,若有需要,與每一訊息以及整組訊息相關聯 46 200421802 的資訊可包括關於每一訊息是否為FAI或一真正電子郵 件訊息之額外資訊。在一具體實施例中,為了簡化資料資 料流之處理,永遠會回應一快速傳輸請求,傳輸在第16B 圖中以「Pan」表示之資訊,即使並未傳輸任何資料物件。 下表顯示所有正被傳輸之資料物件之大小與數目之格 式的一實施例。
IncrSyncProgressMode 屬性名稱 屬性類型 註解 Version WORD (例如一 16位元整數) 這個結構的版本 CassocMsgs DWORD (例如一 32位元整數) 要轉送的FAI資料物件 之數目 UTotalAssocMsgSize QWORD (例如一 64位元整數) 要轉送的所有FAI資料 物件之全部大小 cnormalMsgs DWORD 要轉送的電子郵件訊 息之數目 UTotalNormalMsgSize QWORD 要轉送的所有電子郵 件訊息之全部大小
如此處可發現,可將獨立屬性定義成FAI資料物件的 數目、所有FAI資料物件之總計之大小、將傳輸之電子郵 件訊息的數目、以及將傳輸之電子郵件訊息的總計大小。 可以隨需要將其他組合與額外屬性加入至格式中。 下表顯示大小的一種格式以及可和每一訊息一起提供 之其他資訊。 47
IncrSyncProgressModePerMsg 屬性名稱 屬性類型 註解 訊息大小 LONG 下*個訊息的大小 FAI旗號 BOOL 指示下一個訊息是否 為FAI 如如此處可發現,該格式包括下一訊息之大小以及該 下一訊息是否為FAI。 第17A與17B圖分別顯示根據電子郵件元件之一先前 版本以及電子郵件元件之一最新版本,串流一訊息組之步 驟。第17A圖中之步驟與第15A圖中之步驟至1503 相似。在第17B圖中,一最新電子郵件客戶端元件5〇 i 將進度—模式旗號與,例如一 ROP,一起傳送。當在步驟 1701蕃備訊息組之後,會決定該旗號是否出現。若然, 則在步驟1702中傳送進度全體資料,且該過程之後進行 到步驟1502,在該處串流第一訊息若旗號未出現,則 步驟1701直接分支到步驟1502。 在串流第一訊息之後,該過程進行到步驟i 7 〇 3 ,在該 處會決定該旗號是否可用。若然,則步驟n〇3分支到步 驟1704,在該處串流每一訊息進度資料。之後該過程進 行到先前所述之步驟1 503。若該旗號不可用,步驟17〇3 會直接分支到步驟1 503。 下文舉出一實施例’可將資料進行串流,供一最新伺 服器元件將資料傳送至一種最新客戶端元件。該資料之資 料流與上述資料的資料流類似,但額外包括進度總計資料 之 ptag (ptaglncrSyncProgressMode),其可擁有,例如, 48 200421802 二元屬性。此外,對於每一訊息,提供每一訊息進度資料, 例如 » 以 ptaglncrSyncProgressModePerMsg 〇
PtaglncrSyncProgressMode 〔 PT—BINARY〕 〔内容如由表中所描述〕 ptagMessageListStart
PtaglncrSyncProgressModePerMsg〔 PT—BINARY〕 〔内容如由表中所描述〕 ptagMessageStart
ptagPropList ptagSubject〔PT一STRING〕 ••Re: Your email,, ptagMessageEnd
PtaglncrSyncProgressModePerMsg〔 PT—BINARY〕 〔内容如由表中所描述〕 ptagMessageStart ptagMessageEnd
PtaglncrSyncProgressModePerMsg〔 PT—BINARY〕
〔内容如由表中所描述〕 ptagMessageStart ptagMessageEnd ptagMessageListEnd 在所示的實施例中,ptag 包括進度總計資料 (PtaglncrSyncProgressMode ) 以及用於訊息進度資料 49 200421802 (ptagIncrSyncprogressModePerMsg)之 口叫,分別在訊 息清單以及每一訊息之前定位這些ptag。然而,可以修正 資料物件之資料流結構,以便使得訊息或訊息清單中可以 包括進度資料。更可能進一步修正資料物件之資料流結 構,以便將界定訊息和/或訊息清單之pUg整個消除。 一接收進度資料之電子郵件客戶端元件可利用此一資 料來決疋來自電子郵件伺服器元件之資料物件進行同步 化或複製之進度,並可利用該每一訊息進度資料,來決定 - 每一個別訊息之進度。該資訊對於,例如,在監控關於一 同步化作業之實時進度的資訊實,頗有助益。 攀 還有複數個不同的字元集可用來儲存一電子郵件訊息 或其他資料物件。例如,在儲存英文字元時,最常用的便 是ASCII。然而,Ascn不足以儲存所有語言的字元,因 為其係以8位元字元為基礎。因此,Ascn編碼僅能供256 個字元使用,這對英文雖然足夠,對於有更多字元的語言 P不夠另方面’統一字元編碼(Unicode),係對每一 字元利用16位元(2位元組)的字元集,因此能夠涵蓋 比ASCII更多的予元。統一字元編碼可用於65,Mg個字 元,因此可用於編碼幾乎全世界所有的語言。統一字元編 φ 碼中包括了 ASCII字元集。 一般而言,電子郵件客戶端元件5〇1之先前版本擁有 * 一指定的字碼頁’或與之相關聯的字元集和/或語言。例 如,一電子郵件客戶端元件501的一特定版本可擁有一德 · 文字碼頁,且一其他版本可擁有一 ANSI字碼頁。在某些 50 200421802 時候’可能需要一電子郵件客戶端元件 碼頁以外之字元集的電子郵 接收才曰疋的子 最新客戶端元件可強迫一電 本發明之一態樣,一 元編碼來提供所有電子郵冑件伺服器元件以統-字 50!接收該電子郵件,可將統一:旦電子郵件客戶端元件 成^端, 統一予元編碼之電子郵件轉換 戚客戶端之子碼頁,或可維 ^ Ύ ^ ^ 其為統一子元編碼格式。 馬了知不一電子郵件客 絲一 ^ ^ 端疋件5〇1請求電子郵件以 如,彳ϋ ^ ^ 客戶端兀件501可以,例 如,k供一旗號,例如強自 m 、、一予元編碼,至電子郵件伺 服器兀件502。該旗號可和一社 喷求一起提出,例如以一 ROP。若電子郵件伺服器 ^ ^ β 兀件502為一最新版本,且若統 一予兀編碼版本可用或 將其他予元集之電子郵件訊息 轉換成統一字元編碼,則 ⑴電子郵件伺服器元件502可提供 該電子郵件之銳_ - 丁砰仟之統字7〇編碼版本。 第20圖顯示根據本 货月之一態樣,將一訊息以一特定 字元集提供之步驟。自年 步驟2001開始,電子郵件伺服器 = 自其資料储存區取回-訊息。在步称讓,決 —5 、紙字元編碼旗號是否出現。若否,則步驟2002 分支到步驟2003,在兮產带7 牡”亥處電子郵件伺服器元件502以電 子郵件客戶端元件所 务 ^和疋之字元編碼提供電子郵件訊 息,若有必要會進行轉換。 *強适統一字70編碼旗號出現,則步驟2002分支到步 * 在該處決定該訊息是否以統一字元編碼儲存。 若:步驟2〇04分支到步驟2005,在該處以統一字元編 51 200421802 碼字元集將該訊息提供給電子郵件客戶端元件5〇1。若該 訊息並未以統一子元編碼儲存,則步驟2004分支到步驟 2006,在該處將該訊息轉換成統一字元編碼,且之後該過 程繼續至步称2005 ’在該處以統一字元編碼字元集將該 訊息提供給電子郵件客戶端元件。 此處引注之所有參考文獻,包括刊物、專利應用程式、 以及專利,皆於此處納入,如同個別且特定指明每一參考 文獻般,並於此處全部提出。
— /入,”,… ▼ … ,
詞來撝述本發明時(特別是在下列申請專利範圍之脈乡 中),應理解其同時包含單數與複數,除非此處特別指q 或明顯與上下文相抵觸〆至少包含」、「擁有」、「包括」 「含有」等詞,應理解為開放性語詞,(即代表「包4 仁不限於」),除非另行註明。此處詳述數值的範圍,僅; 欲提供一種快速的方法來個別指稱每一獨立且落在該』 圍間的數值,除非此處另行指明,且每—獨立數值皆被< 入本說明書’,如同已於此處個別詳述。所有此處敘述: 方法,皆可以適當的順序來執行,除非另有相反的說名〗 明顯與上下文相抵觸。此處所使用之任何與所有實施例j 不範性語言(如,「例如」),僅係為了更完善地闊明心 明’且不對本發明之範圍構成限制,除非另有不同之申i 專利範圍。說明說中所有文字不應被視其係指示任何非, 請專利圍之要件對於實作本發明有實質重要性。 此處敘述本發明之較佳具艘實施例,包括發明者已^ 52 200421802 的實行本發明t最佳模式。習之技藝人士藉由閱讀前述敘 述,可輕易發現這些較佳具體實施例的變形。發明者預期 習之技藝人士將適當運用此類變形,且發明者已設想到本 發明可以此處特定敘述以外之方法來實行。相對應地在 可次用法律允許的範圍内,本發明包括所附申請專利範圍 中詳述之專利標的之所有修改與等價物。此外,以其任何 可能的變形將任何前述項目所做的任何組合,皆為本發明 所涵蓋,除非此處另行指明,或明顯與上下文相抵觸。 【圖式簡單說明】 第1圓為一由網路連接之電腦的概要圖示。 第2圖為一概要圖示,闡明一可用於實作本發明之一 種示範性具體實施例的電腦系統。 第3圖為一概要圖示,描述一種同時具有電子郵件客 戶端疋件與電子郵件伺服器元件之多重版本的環境。 笛 Λ 4圖為一種通訊協定圖示,顯示在一電子郵件客戶 jrfe t χ» M及一電子郵件伺服器元件之間的一種通訊協定 協議程序之一種實施例。 第 5圖為一概要圖示,顯示一電子郵件網路之實施 例,其Φ , ' τ 電子郵件客戶端元件與電子郵件伺服器元件具 有固定大小之通訊緩衝區。 第6Α圆為一種通訊協定圖示,顯示一示範性通訊協 疋’其需要兩個請求-回應週期,以便完成一快速傳輸作 業。 53 200421802 第6B圖< 定,其需要一 作業。 第7A圓為 一電子郵件客 第7B圖為 電子郵件訊息 例程序。 第8A圖為 第8B圖為 第8C圓為 第8D圖為 頭傳輪模式的 第9囷為. 豕用電子郵件 第10圖J 定,其可同步>/ 器元件之間的 第U A圖j 型物件之一部 第11B圖j 態二位元大型 第12囷為 構。 每-種通訊協定囷示,顯示_示範性通訊協 單-請求-回應週期,以便完成一快速傳輸 -流程圖,描述傳送_電子郵件訊息主體至 戶端元件的一種示範性程序。 一流程圖,描述根據本發明之一態樣傳送一 主想至-電+郵件客戶#元件的一種實& · 一序列囷’闞明-種完整項目傳輸模式。 一序列圖,闞明-種標頭第-之傳輸模式。 · -序列圖’闡明一種僅有標頭之傳輸模式。 一序列圖,闞明一種標頭第—或一種僅有標 一例外。 一概要圖示,顯示一電子郵件客戶端元件之 伺服器元件正隨著時間而改變。 知一種通訊協定圖示,顯示一示範性通訊協 匕電子郵件客戶端元件與一電子郵件飼服 電子郵件資料夾。 ^ 一流程圖,描述最佳化一種狀態二位元大 Φ 份的一示範性程序。 ^ 一流程圖,描述根據本發明最佳化一種狀 物件之一部份的一實施例程序。 一概要圖示,闡明一電子郵件資料夾階層架 - 54 200421802 ^第13圖為一種通訊協定圖示,顯示一示範性通訊協 定’其可根據本發明之一態樣同步化並維持一電子郵件訊 息存放區之同步化。 ~第14A圖為一種通訊協定圖示,顯示一種示範性通訊 協定’其可在ROP層級傳遞錯誤資訊。 第圖為一種通訊協定圖示,顯示一種示範性通訊 協疋,其可根據本發明之一態樣,以每一訊息為基礎,在 R0P層級傳遞錯誤資訊。 第l5A圖為一流程圖,描述一種程序可在R〇p層級產
第1 5 B圖為一流程圖,描 豕个赞明 一態樣,以每一訊息為基礎,產生錯誤資訊 第圖為一種通訊協定圖示,顯示一示範性通訊 定可進行一快速傳輸作業。 —第16Β圖為一種通訊協定圖示,顯示一示範性通訊 疋,可根據本發明之一態樣,在進行一快速傳輸作業時 供進度資訊。 、、 第17Α圖為一流程圖,描述一種程序可串流輸出一息組。
卑17Β圖為一流程圖 裡程序可根據本發曰j 態樣,將進度資訊隨著一訊息組串流輸出 第18圓為多重電子郵件客戶端元件的一種概 不,其正因為在-電子郵件飼服器元件上該相同資料 之改變,而接受通知。 5 5 200421802 第19A圖為一流程圖,描述一種程序可通知多重訂閱 者。 第19B圖為一流程圖,描述一種程序可根據本發明之 一態樣通知多重訂閱者。 第20圖為一流程圖,描述一種程序其可使用根據本 發明之一態樣的理想字碼表,提供一電子郵件訊_。 11 網路 16記憶體 20顯示器 202不可移除儲存區 204輸入裝置
【元件代表符號簡單說明】 10 電腦 14處理單元 1 8最基本組態 201可移除儲存區 203輸出裝置 205通訊連線 301,3 02先前版本電子郵件客戶端元件 3 03最新版本電子郵件客戶端元件
3〇4, 305先前版本電子郵件伺服器元件 3 06最新版本電子郵件伺服器元件 電子郵 308’ 3〇9’ 31〇’ 3n 通訊協定 術,5〇1, 902, 904, 9〇6, 18〇1, i8〇2, 18〇3 件客戶端元件 402 , 502 , 902 , 903 , 905 , 4〇3客戶端版本資訊 503 ’505傳送緩衝區 1 804電子郵件伺服器元件 4〇4伺服器版本資訊 504 , 506接收緩衝區 56 200421802 602 , 606 , 604 第二 601,605,1301 第—t奢# 603 第二請求 801,805,811 第一雷之兩r μ Α 電子郵件訊息標頭 802 , 806第一電子郵件訊息主體 803 ’ 807第二電子郵件訊息標頭 804 ’ 808第二電子郵件訊息主體 8 0 9 ’ 8 1 3電子郵件訊息標頭 810電子郵件訊息主體 812電子郵 1001,1002,1003,1004 同步化資料夾 1201 根資料夾 1202,1203 1303 , 1305 , 1307 , 1601 , 1603 , 1605 % 1304 , 1306 , 1602 , 1604 , 1606 , 1607 , 1401 , 1402 , 1403 , 1404 , 1405 , 1406 , 1302 第一回應 應 件訊息主體? ,1204 資料夾 餘求 1608 回應 1407傳輸步驟 57

Claims (1)

  1. 200421802 1 . 一 -種 實 施 於一 電腦 包含: -第 一 資 料攔 位, 件; -第 二 資 料欄 位, 件之- ,請 求 9 以及 讀取媒體上之資料封包,其至少 係可識別一電子郵件客戶端元
    該指示至少 2·如申請專利範圍帛1項之資料封包,其中 包含隨著該請求的一旗號。 〜岡印1項之貢料封包,其中該請求 包含對-資料夹進行同步化的一請求,該資料夾為電 件資料物件所在之處。
    4·如申請專利範圍第i項之資料封包,其令該請求至少 包含一請求,其係請求電子郵件訊息之一複本。 5.種具有電腦可執行指令之電腦可讀取媒體,該指令 至少包含: 自一電子郵件客戶端元件接收一請求,其係請求複數 58 200421802 個電子郵件資料物件以及該電子郵件客戶端元件可_ 帶有一錯誤之-電子郵件資料物件的一指示; 取回複數個電子郵株沓祖札 郅件資科物件以回應該請求與該指 示,•及 對於該電子郵件資料物件之每一者而言: 若開啟該電子料資料物件時未發生錯誤,則 將該電子料資料物件料至該電子料客戶端元 件,及
    若開啟該電子郵件資料物件時發生一錯誤,則 將一錯誤訊息傳輸至該電子郵件客戶端元件。 6·如申請專利範圍第5項之電腦可讀取媒體,其中該錯 誤訊息至少包含該電子郵件資料物件之版本資訊。 7·如申凊專利範圍第6項之電腦可讀取媒體,其中該版 本資訊至少包含一 16位元整數。
    8·如申請專利範圍第5項之電腦可讀取媒體,其中該錯 誤訊息至少包含該電子郵件資料物件之識別資訊。 9.如申請專利範圍第8項之電腦可讀取媒體,其中該識 別資訊至少包含一 3 2位元整數。 59 200421802 10.如申請專利範圍第8項之電腦可讀取媒體,其中該識 別資訊至少包含一全球唯一識別元(GUID )以及一 6位 元組之序號。 11.如申請專利範圍第5項之電腦可讀取媒體,其中該錯 誤訊息至少包含關於該錯誤之資訊。
    12.如申請專利範圍第11項之電腦可讀取媒體,其中關 於該錯誤之資訊包括通訊錯誤詳細資料之一陣列的大小。 13.如申請專利範圍第5項之電腦可讀取媒體,其中該指 示至少包含隨著該請求的一旗號。 14. 如申請專利範圍第5項之電腦可讀取媒體,其中該請 求至少包含將一資料夾進行同步化的一請求,該資料夾為 電子郵件資料物件所在之處
    15. 如申請專利範圍第5項之電腦可讀取媒體,其中該請 求至少包含一請求,其係請求電子郵件訊息之一複本。 16. —種具有電腦可執行指令之電腦可讀取媒體,該指令 至少包含: 自一電子郵件客戶端元件傳送一請求,其係請求複數 60 200421802 個電子郵件資料物侔以芬 件以及該電子郵件客戶端元件可處理 帶有-錯誤之-電子郵件資料物件的一指示;以及 對於該電子郵件資料物件之每一者而言: 若該電子郵件資料物件時未包含一錯誤,則於該 電子郵件客戶端元件處,接收該電子郵件資料物件 並複製該電子郵件資料物件;及 若該電子郵件資料物件包含一錯誤,則接收一錯 誤訊息。
    17.如申请專利範圍第16項之電腦可讀取媒體,其中該 錯誤訊息至少包含該電子郵件資料物件之版本資訊。 18·如申請專利範圍第16項之電腦可讀取媒體,其中該 錯誤訊息至少包含關於該錯誤之資訊。 W·如申請專利範圍第16項之電腦可讀取媒體,其中該 指示至少包含隨著該請求的一旗號。
    20·如申請專利範圍第16項之電腦可讀取媒體,其中該 請求至少包含將一資料失進行同步化的一請求,該資料夾 為電子郵件資料物件所在之處 •如申請專利範圍第16項之電腦可讀取媒體,其中該 61 郵件訊息之一複本。 之資料封包,其至少 力一電子郵件資料物 子郵件資料物件的一 ”月求至少包含一請求,其係請求電子 22 · —種實施於一電腦可讀取媒體上 包含: 一第一資料攔位,其係可識別關 件之資料;及 一第二資料攔位,其係包括該電 錯誤碼。
    如申請專利範圍第22項之資料封包,其更包含一種 資料攔位’表不該電子郵件資料物件之版本資訊。 如申凊專利範圍第23項之資料封包,其中該第三資 料攔位至少包含- 16位元整數。
    第如申清專利範圍第22項之資料封包,其更包含一種 資料搁位,表不該電子郵件資料物件之識別資訊。 如申凊專利範圍第25項之資料封包,其中該第三資 料攔位至少包含- 32位元整數。 如申请專利範圍第25項之資料封包,其中該第三資 料搁位至Φ 尺 y. j, 匕5 一全球唯一識別元(GUID )與一 6位元 62 200421802 組之序號。 28.如申請專利範圍第22項之資料封包,其更包含一第 三資料欄位,其係包括關於與該錯誤碼有關之一錯誤的資 訊0 29.如申請專利範圍第28項之資料封包,其中關於該錯 誤之資訊包括通訊錯誤詳細資料之一陣列的大小。 3 0. —種實施於一電腦可讀取媒體上之資料封包,其至少 包含: 一第一資料欄位,其係可識別一電子郵件客戶端元 件; 一第二資料攔位,其係包括對複數個電子郵件資料物 件之請求;及 一第三資料欄位,其係包括該電子郵件客戶端元件可 處理帶進度模式資料的一指示。 31. 如申請專利範圍第30項之資料封包,其中該進度模 式資料包括該電子郵件資料物件之每一者的大小。 32. 如申請專利範圍第30項之資料封包,其中該指示至 少包含隨著該請求的一旗號。 63 200421802 3 3.如申請專利範圍第30項之資料封包,其中該請求至 少包含將一資料夾進行同步化的一請求,該資料夾為電子 郵件資料物件所在之處。 34.如申請專利範圍第30項之資料封包,其中該請求至 - 少包含一請求,其係請求電子郵件訊息之一複本。 3 5.如申請專利範圍第3 0項之資料封包,其中該進度模 H 式資料包括該複數個資料物件之大小。 3 6.如申請專利範圍第30項之資料封包,其中該進度模 式資料包括該複數個物件中之資料夾關聯資訊(FAI)物 件的數目。
    37.如申請專利範圍第36項之資料封包,其中該進度模 式資料包括該複數個物件中之資料夾關聯資訊(FAI )物 件全體的大小。 3 8.如申請專利範圍第30項之資料封包,其中該進度模 式資料包括該複數個電子郵件資料物件中電子郵件訊息 之數目。 64 200421802 39·如申請專利範圍第38項之資料封包,其中言 式資料包括該複數個物件中電子郵件訊息之全體 40·如申請專利範圍第3〇項之資料封包,其中言 式資料更包括每一物件是否為一資料夾關聯資訊 物件。 41. 一種具有電腦可執行指令之電腦可讀取媒體, 至少包含: 自一電子郵件客戶端元件接收一請求,其係讀 個電子郵件資料物件以及該電子郵件客戶端元件 進度模式資料之一指示; 回應該請求與該指示,取回複數個電子郵件 件;及 將進度模式資料連同該複數個資料物件一起 該電子郵件客戶端元件,該進度模式資料至少包含 郵件資料物件之每一者的大小β 如申請專利範圍第41項之電腦可讀取媒體, 指示至少包含隨著該請求的一旗號。 3.如申请專利範圍第41項之電腦可讀取媒體, 請求至少包含將一資料夾進行同步化的—請求該 進度模 L小0 進度模 (FAI) 該指令 求複數 可處理 資料物 提供至 該電子 其中該 其中該 資料夾 65 200421802 為電子 44. 如 請求至 4 5.如 進度模 46 ·如 進度模 (FAI) 47.如 進度模 (FAI) 4 8.如 進度模 郵件訊 49.如 進度模 計大小 中請專利範圍第 少包含一請求, 腦可讀取媒體,其中該 +郵件資料物件中電子 郵件資料物件所在之處。 41項之電腦可讀取媒體,其中該 其係請求電子郵件訊息之一複本。 請專利範圍第41項之電腦死# A 可讀取媒體,其中該 資料更包括該複數個資料物件之大小。 請專利範圍第41項之電腦可讀取媒體,其中該 式資料更包括該複數個物件中資料夾關… 物件之數目。 _請專利範圍第46項之雷腦开咬 ^ _ 萬版可讀取媒體,其中該 式資料更該複數個物件中白紅农 ^ 卞甲包括資料夾關聯資訊 物件全體之大小。 請專利範圍第41項之電 式資料更包括該複數個電 之數目。 夺請專利範圍第48項之電腦可讀取媒體 式資料更包括該複數個物件中電子郵件 ’其中該 訊息的總 66 200421802 50.如申請專利範圍第41項之電腦可讀取媒體,其中該 進度模式資料更包括每一物件是否為一種資料失關聯資 訊(FAI)物件。 51· -種具有電腦可執行指令之電腦可讀取媒體,該指令 至少包含: 求,其係請求複數 戶端元件可處理
    自一電子郵件客戶端元件接收一請 個電子郵件資料物件以及該電子郵件客 進度模式資料之一指示; 示 取回複數個電子郵件資料物件以回應該請求與該指 以及 將進度模式資料連同該複數個資料物件一起提供至 該電子郵件客戶端元件,該進彦描咨 必運度模式資料至少包含該複數 個電子郵件資料物件之大小。 •甲請專利範圍第51項之電腦可讀取媒體,其中該 指示至少包含隨著該請求的一旗號。 53.如申請專利範圍第51 哨(¾¾可讀取媒體,其中該 請求至少包含將一資料夾進扞 退仃冋步化的一請求,該資料夾 為電子郵件資料物件所在之處。 67 421802 54. 如申請專利範圍第51項之電腦可讀取媒體,其中該 請求至少包含一請求,其係請求電子郵件訊息之一複本 55. 如申請專利範圍第51項之電腦可讀取媒體,其中該 進度模式資料更包括該複數個資料物件之每一者的大小° 56. 如申請專利範圍第51項之電腦可讀取媒體,其中該 進度模式資料更包括該複數個物件中資料夾關聯資訊 (FAI )物件之數目。 57. 如申請專利範圍第56項之電腦可讀取媒體,其中該 進度模式資料更該複數個物件中包括資料夾關聯資訊 (FAI )物件全體之大小。 58. 如申請專利範圍第51項之電腦可讀取媒體,其中該 進度模式資料更包括該複數個電子郵件資料物件中電子 郵件訊息之數目。 59·如申請專利範圍第冗項之電腦 、 買取媒體,其中該進 度模式資料更包括該複數個物件中電 电于郵件訊息總計大 6〇.如申請專利範圍第51項之電腦可讀取媒體,其中該 68 200421802 進度換 (FAI) 61. 一: 白 個電子 進度模 在 資料物 應該請 在 利用該 電子郵 62. 如 少包含 63. 如 料至少 6 4.如 料至少 之數目 式資料更包括每一物件是否為一資料夾關聯資訊 物件。 種於電腦上實作的方法,其至少包含: 一電子郵件客戶端元件傳送一請求,其係請求複數 郵件資料物件以及該電子郵件客戶端元件可處理 式資料之一指示; 一電子郵件伺服器元件處,取回該複數個電子郵件 件以及該電子郵件資料物件之進度模式資料以回 求與該指示;及 該電子郵件客戶端元件處接收該進度模式資料,並 進度模式資料來監控該複數個資料物件傳送至該 件客戶端元件之進度。 申請專利範圍第61項之方法,其中該進度資料至 一種該複數個電子郵件資料物件之大小。 申请專利範圍第61項之方法,其中該進度模式資 包含該複數個資料物件之每一種的大小。 中睛專利範圍第61項之方法,其中該進度模式資 包含該複數個物件中資料夾關聯資訊(FAI )物件 69 65.如申請專利範圍第 料至少包含該複數個物 全體之大小。 64項> 士、丄 心万法,其中該進度模式資 件中資料夾關聯資m ( FAI )物件 66·如申請專利範圍第 料至少包含該複數個電 之數目。 6 1項之古、▲ 方法,其中該進度模式資 子郵件資料物#巾電子郵件訊息 67·如申請專利範圍第66項之方法 料至少包含該複數個物件中電子郵件 ’其中該進度模式資 訊息總數之大小。
    68·如申請專利範圍第61 料更包括每一物件是否為一 項之方法,其中該進度模式資 資料失關聯資訊(FAI )物件。 69. -種具有電觸可執行指令之電腦可讀取媒體該指令 至少包含:
    自一電子郵件客戶端元件接收一請求中的複數個子 請求,每_子請求會請求在_電子郵件伺服^牛的一作 業’且包括大小資訊;及 回應每一子請求時: 若該大小資訊包括一大小限制,其係介於該電子 郵件伺服器元件預期之一範圍内,則限制對該大小限 70 200421802 制之一回應;及 若該大小資訊包括一大小限制,且其位在該電子 郵件伺服器元件預期之一範圍外,則在該大小資訊中 尋找一新的大小限制。
    70.如申請專利範圍第69項之電腦可讀取媒體,其更包 含,若該大小資訊包括一大小限制,且其位在該電子郵件 伺服器元件預期之一範圍外,以該回應填滿該電子郵件伺 服器元件之一缓衝區。 71. —種於電腦上實作的方法,其至少包含: 在一電子郵件客戶端元件處: 於一請求内產生複數個子請求,每一子請求可 請求在一電子郵件伺服器元件的一作業,且包括大 小資訊;及
    將該請求傳送至一電子郵件伺服器元件; 在一電子郵件伺服器元件處: 接收該請求;及 回應每一子請求時: 若該大小資訊包括一大小限制,且其介於該 電子郵件伺服器元件預期之一範圍内,則限制 對該大小限制之一回應;及 若該大小資訊包括一大小限制,且其位在該 71 200421802 電子郵件伺服器元件預期之一範圍外,則在該 大小資訊中尋找一新的大小限制。 72.如申請專利範圍第71項之方法,其更包含,若該大 小資訊包括一大小限制,且其位在該電子郵件伺服器元件 預期之一範圍外,以該回應填滿該電子郵件伺服器元件之 一緩衝區。
    72
TW092136042A 2003-01-03 2003-12-18 Method for streaming data between a server and a client TWI339052B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43786903P 2003-01-03 2003-01-03
US10/367,161 US7620688B2 (en) 2003-01-03 2003-02-14 Progress mode for electronic mail component

Publications (2)

Publication Number Publication Date
TW200421802A true TW200421802A (en) 2004-10-16
TWI339052B TWI339052B (en) 2011-03-11

Family

ID=32511093

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092136042A TWI339052B (en) 2003-01-03 2003-12-18 Method for streaming data between a server and a client

Country Status (16)

Country Link
US (1) US7620688B2 (zh)
EP (3) EP1631025B9 (zh)
JP (1) JP4438989B2 (zh)
KR (1) KR101021385B1 (zh)
CN (1) CN100433733C (zh)
AT (2) ATE378758T1 (zh)
AU (1) AU2003268611B2 (zh)
BR (1) BR0306065A (zh)
CA (2) CA2841691C (zh)
DE (2) DE60317453T2 (zh)
HK (1) HK1066953A1 (zh)
MX (1) MXPA03011674A (zh)
MY (1) MY137065A (zh)
PL (1) PL364157A1 (zh)
RU (1) RU2331920C2 (zh)
TW (1) TWI339052B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI451328B (zh) * 2006-09-18 2014-09-01 Nat Semiconductor Corp 用於有效儲存與擷取串流資料之方法與系統

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003105004A1 (en) * 2002-06-06 2003-12-18 Crescendo Networks Ltd. System and method for connecting multiple slow connections to multiple fast connections
US7111039B2 (en) 2002-11-20 2006-09-19 Microsoft Corporation System and method for using packed compressed buffers for improved client server communications
US7650403B2 (en) 2002-11-20 2010-01-19 Microsoft Corporation System and method for client side monitoring of client server communications
US7386590B2 (en) 2003-01-03 2008-06-10 Microsoft Corporation System and method for improved synchronization between a server and a client
US20150195231A1 (en) * 2004-09-30 2015-07-09 Nahush Mahajan System and Method for Avoiding Loops in Automatic Message Processing
KR100659584B1 (ko) * 2004-12-07 2006-12-20 한국전자통신연구원 메시지 교환 방법
US7788237B2 (en) * 2004-12-17 2010-08-31 Microsoft Corporation Method and system for tracking changes in a document
US7899680B2 (en) * 2005-03-04 2011-03-01 Netapp, Inc. Storage of administrative data on a remote management device
US8291063B2 (en) * 2005-03-04 2012-10-16 Netapp, Inc. Method and apparatus for communicating between an agent and a remote management module in a processing system
US8090810B1 (en) 2005-03-04 2012-01-03 Netapp, Inc. Configuring a remote management module in a processing system
US7805629B2 (en) * 2005-03-04 2010-09-28 Netapp, Inc. Protecting data transactions on an integrated circuit bus
US9282081B2 (en) * 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
CN100417074C (zh) * 2006-09-30 2008-09-03 中兴通讯股份有限公司 一种无线局域网ip组播传输异常的快速检测方法
US20090037735A1 (en) * 2007-08-01 2009-02-05 O'farrell David Method and system for delivering secure messages to a computer desktop
US8396928B2 (en) * 2007-09-21 2013-03-12 Smartbrief, Inc. Methods and systems for handling electronic message content for electronic communications devices
US8407296B2 (en) * 2007-09-24 2013-03-26 Smartbrief, Inc. Multiple and multi-part message methods and systems for handling electronic message content for electronic communications devices
US8949344B2 (en) * 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
CN101583150B (zh) * 2009-06-18 2011-04-20 中兴通讯股份有限公司 一种无线接入点检测无线终端异常的方法及装置
US8504818B2 (en) * 2010-04-15 2013-08-06 Microsoft Corporation Method and system for reliable protocol tunneling over HTTP
US9307483B2 (en) * 2011-12-14 2016-04-05 Qualcomm Incorporated Systems and methods for transmitting and receiving discovery and paging messages
US10158594B2 (en) 2015-09-16 2018-12-18 Microsoft Technology Licensing, Llc Group headers for differentiating conversation scope and exposing interactive tools
US11405345B2 (en) 2016-11-01 2022-08-02 Microsoft Technology Licensing, Llc E-mail with smart reply and roaming drafts
US10516630B2 (en) 2016-11-01 2019-12-24 Microsoft Technology Licensing, Llc Switching synchronization systems for synchronizing server/client data
US10812434B2 (en) * 2017-03-23 2020-10-20 Blackberry Limited Apparatus and method for maintaining message databases in eventual consistency distributed database systems
FR3064437A1 (fr) * 2017-03-24 2018-09-28 Orange Procede de recommandation d'une pile de communication
US11347375B2 (en) * 2018-03-21 2022-05-31 Atlassian Pty Ltd. Digital task management using an intermediary single-account issue inbox system
CN114124925B (zh) * 2020-08-25 2023-05-12 华为技术有限公司 一种电子邮件的同步方法及电子设备

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63205747A (ja) 1987-02-13 1988-08-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 通信方法及びデータ処理システム
RU2095857C1 (ru) 1989-01-17 1997-11-10 Филипс Электроникс Н.В. Способ передачи информации с использованием носителя данных, носитель информации и устройство для воспроизведения информации с такого носителя
WO1993025962A1 (en) 1992-06-18 1993-12-23 International Business Machines Corporation Distributed applications processing network
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5325361A (en) 1992-12-01 1994-06-28 Legent Corporation System and method for multiplexing data transmissions
JP3184763B2 (ja) * 1995-06-07 2001-07-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチメディア直接アクセス記憶装置及びフォーマット方法
US5923846A (en) * 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
WO1998010580A1 (fr) 1996-09-03 1998-03-12 Toyota Jidosha Kabushiki Kaisha Controleur de communications d'information et systeme correspondant
US6377978B1 (en) * 1996-09-13 2002-04-23 Planetweb, Inc. Dynamic downloading of hypertext electronic mail messages
US6233318B1 (en) 1996-11-05 2001-05-15 Comverse Network Systems, Inc. System for accessing multimedia mailboxes and messages over the internet and via telephone
JP3318503B2 (ja) 1997-02-27 2002-08-26 京セラ株式会社 無線通信システム
JPH1168987A (ja) 1997-08-15 1999-03-09 Sony Corp 情報通信システム、情報通信端末、サーバ装置および情報通信方法
US6073137A (en) * 1997-10-31 2000-06-06 Microsoft Method for updating and displaying the hierarchy of a data store
SG118132A1 (en) * 1997-11-13 2006-01-27 Hyperspace Communications Inc File transfer system
US6324587B1 (en) 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6167402A (en) * 1998-04-27 2000-12-26 Sun Microsystems, Inc. High performance message store
FI105971B (fi) 1998-04-30 2000-10-31 Nokia Mobile Phones Ltd Menetelmä ja laitteisto sähköpostin käsittelemiseksi
US6134582A (en) 1998-05-26 2000-10-17 Microsoft Corporation System and method for managing electronic mail messages using a client-based database
US20010054115A1 (en) * 1998-05-29 2001-12-20 Tabitha Ferguson System and method for bundling information
US6438585B2 (en) * 1998-05-29 2002-08-20 Research In Motion Limited System and method for redirecting message attachments between a host system and a mobile data communication device
US6886030B1 (en) 1998-08-18 2005-04-26 United Video Properties, Inc. Electronic mail system employing a low bandwidth link for e-mail notifications
CA2275840A1 (en) 1998-08-18 2000-02-18 Lucent Technologies Inc. Generalized messaging construct
US6639687B1 (en) * 1998-09-08 2003-10-28 International Business Machines Corporation Progress indicator for multiple actions
US6917965B2 (en) 1998-09-15 2005-07-12 Microsoft Corporation Facilitating annotation creation and notification via electronic mail
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
JP3603936B2 (ja) 1999-01-22 2004-12-22 株式会社ソニー・コンピュータエンタテインメント 電子メール広告システム
US6449634B1 (en) 1999-01-29 2002-09-10 Digital Impact, Inc. Method and system for remotely sensing the file formats processed by an E-mail client
AU3767100A (en) 1999-03-22 2000-10-09 Webxi High speed streaming protocol
US6304898B1 (en) 1999-10-13 2001-10-16 Datahouse, Inc. Method and system for creating and sending graphical email
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US6684088B1 (en) 2000-03-01 2004-01-27 Axi Mobile Ltd. System and method for displaying electronic mail messages on a low bandwidth device
EP2237580B1 (en) 2000-04-10 2013-01-09 Research In Motion Limited System and method for indicating the state of a message
JP2001339422A (ja) 2000-05-25 2001-12-07 Mitsubishi Electric Corp メールデータ管理システム
WO2002021749A2 (en) 2000-09-08 2002-03-14 Plumtree Software Providing a personalized web page by accessing different servers
KR100453459B1 (ko) 2000-09-26 2004-10-15 인터렉스 가부시키가이샤 전자메일을 광고매체로 이용하기 위한 시스템 및 방법
US6934734B2 (en) 2000-12-04 2005-08-23 International Business Machines Corporation Method and apparatus for managing and presenting changes to an object in a data processing system
FI20002854A (fi) * 2000-12-22 2002-06-23 Nokia Corp Etälataamisen tilaindikaattorit langattomissa lyhyen kantaman laitteissa
CA2329891A1 (en) 2000-12-29 2002-06-29 Subsecond Technology Inc. Method and apparatus for remote database maintenance and access
JP2002208959A (ja) 2001-01-09 2002-07-26 Casio Comput Co Ltd 電子メールサーバ装置、電子メール転送制御方法及び記録媒体
AUPR444601A0 (en) 2001-04-17 2001-05-17 Pro-Super Holdings Limited Business tracking system
JP3798263B2 (ja) 2001-06-01 2006-07-19 三菱電機株式会社 電子メールサーバ及び電子メールキャッシュ方法及び電子メールキャッシュプログラム
US7149813B2 (en) 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US20030177171A1 (en) 2002-01-22 2003-09-18 Brown Bruce Loring Electronic mail retrieval
US20030231207A1 (en) * 2002-03-25 2003-12-18 Baohua Huang Personal e-mail system and method
US6868143B1 (en) 2002-10-01 2005-03-15 Bellsouth Intellectual Property System and method for advanced unified messaging
US20040068544A1 (en) * 2002-10-08 2004-04-08 Bellsouth Intellectual Property Corporation Multi-user e-mail client and alert schema
US7366760B2 (en) * 2003-01-03 2008-04-29 Microsoft Corporation System and method for improved client server communications of email messages
US7386590B2 (en) * 2003-01-03 2008-06-10 Microsoft Corporation System and method for improved synchronization between a server and a client

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI451328B (zh) * 2006-09-18 2014-09-01 Nat Semiconductor Corp 用於有效儲存與擷取串流資料之方法與系統

Also Published As

Publication number Publication date
ATE490632T1 (de) 2010-12-15
EP1435711B1 (en) 2007-11-14
CA2841691C (en) 2015-02-17
HK1066953A1 (en) 2005-04-01
PL364157A1 (en) 2004-07-12
RU2003137881A (ru) 2005-06-10
EP1631024B1 (en) 2013-01-16
KR20040062891A (ko) 2004-07-09
US20040133643A1 (en) 2004-07-08
JP4438989B2 (ja) 2010-03-24
JP2004215279A (ja) 2004-07-29
DE60335218D1 (de) 2011-01-13
CN1518304A (zh) 2004-08-04
MY137065A (en) 2008-12-31
KR101021385B1 (ko) 2011-03-14
BR0306065A (pt) 2005-05-17
AU2003268611B2 (en) 2009-07-09
DE60317453D1 (de) 2007-12-27
MXPA03011674A (es) 2005-02-25
EP1631024A2 (en) 2006-03-01
DE60317453T2 (de) 2008-03-06
CA2841691A1 (en) 2004-07-03
TWI339052B (en) 2011-03-11
EP1631025B1 (en) 2010-12-01
EP1631024A3 (en) 2006-05-31
RU2331920C2 (ru) 2008-08-20
AU2003268611A1 (en) 2004-07-22
ATE378758T1 (de) 2007-11-15
EP1631025A2 (en) 2006-03-01
EP1631025B9 (en) 2011-12-21
US7620688B2 (en) 2009-11-17
EP1435711A1 (en) 2004-07-07
CN100433733C (zh) 2008-11-12
CA2452527C (en) 2016-08-23
CA2452527A1 (en) 2004-07-03
EP1631025A3 (en) 2006-05-17

Similar Documents

Publication Publication Date Title
TW200421802A (en) Method for streaming data between a server and a client
TWI269557B (en) System and method for improved synchronization between a server and a client
TWI379204B (en) System and method for improved client server communications of email messages
AU2012200888B2 (en) System and method for improved synchronization between a server and a client
AU2014200931A1 (en) System and method for improved synchronization between a server and a client

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees