TWI388992B - 在網路應用程式中用以製造並傳遞請求資料的系統與方法 - Google Patents

在網路應用程式中用以製造並傳遞請求資料的系統與方法 Download PDF

Info

Publication number
TWI388992B
TWI388992B TW095104781A TW95104781A TWI388992B TW I388992 B TWI388992 B TW I388992B TW 095104781 A TW095104781 A TW 095104781A TW 95104781 A TW95104781 A TW 95104781A TW I388992 B TWI388992 B TW I388992B
Authority
TW
Taiwan
Prior art keywords
namespace
event
value
request
data
Prior art date
Application number
TW095104781A
Other languages
English (en)
Other versions
TW200639652A (en
Inventor
Jorge Pereira
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 TW200639652A publication Critical patent/TW200639652A/zh
Application granted granted Critical
Publication of TWI388992B publication Critical patent/TWI388992B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

在網路應用程式中用以製造並傳遞請求資料的系統與方法
本發明之具體實施例係關於電腦通信領域。更特定言之,本發明之具體實施例係關於按具有一命名空間、該空間內之各事件以及該等事件之各參數之一綱要(schema)的形式來請求資料。
某些伺服器部署式、網頁式電子郵件應用程式讓使用者可存取中央式定位的郵件信箱。這些應用程式也提供了傳送以及接收電子郵件、行程約會的能力,以及執行來自一網路(例如網際網路)的其他個人資訊管理(PIM)。而該等應用程式之某些者在一瀏覽器中執行並且其伴隨著其他PIM應用程式。這樣的客戶端網頁應用程式需要大量欲能夠來實施該PIM功能的客戶端-伺服端流量。例如,當一使用者重新更新(refresh)一收件匣(inbox)內之電子郵件的一表單以檢查新電子郵件時,則傳送出一網頁請求至該伺服器以擷取該收件匣中之電子郵件的新表單。
對於某些客戶端應用程式來說,該客戶端-伺服端流量是作為超文件傳輸協定(HTTP)之延伸的Web型分散式編寫和版本制訂(WebDAV)以及其他不同綱要(例如基於在HTTP郵寄(HTTP POST requests)請求上單純化名稱-數值對)的一種混合。在先前這些系統中針對資料存取的多重協定之使用複雜化了該實施且貢獻了較拙劣的維護性。這些 先前系統也使用了針對該等請求的不一致性以及不足夠性。例如使用在特定先前系統之該名稱-數值格式將非常具有限制性且不容易支持強型別(strongly typed data)資料或者較複雜的結構或陣列。此外,該名稱-數值格式需要如針對名稱-數值對之分離器的一強制換行(line break),在傳遞之前,一特定名稱-數值對的所有資料必須被編碼而毋需一強制換行且接著基於接收而被解碼。在某些系統中的這些額外步驟減緩了處理過程並且增加其複雜性。某些現存網頁客戶端應用程式具有的另一間題為供應各式功能予該客戶端應用程式的該伺服端程式碼係為無秩序性且無組織化。在加入新請求處理器至該現存系統之伺服端程式碼將是相當困難的。
從而,亟需一種用於客戶端-伺服端通信的改良式系統,且該系統係能關於用來解決一或多個以上所述以及其他的劣勢。
本發明之具體實施例包含一用於在網路應用程式之中產生以及傳遞所請求資料的協定以及綱要,本發明更包含受用於產生該所請求資料的請求處理器之開發者的一結構以及一組應用程式介面。該應用程式介面致使該開發者能夠來建立自訂請求處理器(custom request handlers)。
在本發明之一客戶端-伺服端具體實施例中,一客戶端係根據本發明傳送請求資料至基於本發明之良好定義綱要 的一伺服器。該請求係識別一請求處理器命名空間、該請求處理器命名空間內的一事件處理器、以及該事件處理器之一或多個參數。本發明包含群組化進入該伺服器中之請求處理器命名空間之各事件處理器的一基礎建設(infrastructure),其中該伺服器中之傳遞者係按如各客戶端所請求之多重格式而回應至該客戶端。該伺服端基礎建設分析該請求以識別在一特定命名空間內之一特定事件處理器,並且因應該請求參數而執行相關於該所識別事件處理器之處理器程式碼。
本發明強大而輕量並且可加以升級。針對資料請求之一一致性綱要的使用簡化了各應用程式之間的互動並且提供了該請求處理器的增進式維持性。本發明的綱要支持複雜的資料結構。本發明支持各請求處理器的增加而不需改變用於產生以及傳遞該所請求資料的基礎建設。
根據本發明之一態樣,一系統包含一或多個用於儲存複數個事件處理器之電腦可讀媒體,其中該等事件處理器之各者具有一與其相關聯的命名空間。該複數個事件處理器之各者更具有一或多個與其相關聯的參數。該電腦可讀取媒體儲存表示一針對資料所格式化之請求的一資料結構。該資料結構包含一命名空間欄位,其係用以儲存表示該命名空間的一命名空間數值、一事件處理器欄位,其係用以儲存相對應於複數個事件處理器中之一者的一事件處理器數值。該複數個事件處理器中之一者係關聯於由在該命名空間欄位中之命名空間數值所表示的該命名空間。該 資料結構也包含一參數欄位,其係用以儲存相對應於該等參數中之一者的一參數數值。該等參數中之一者係關聯於由在該事件處理器欄位中之事件處理器數值所表示的該事件處理器。該系統也包含一第一處理,其係由一第二處理所部署。該第一處理係設置用來執行用於處理以下步驟的電腦可執行指令:接收一來自一使用者或處理的一資料請求、識別相關於該所接收請求的一命名空間數值、因應該所接收的請求以及該所識別命名空間數值而選擇一事件處理器數值、以及因應該所接收的請求以及該所選擇的事件處理器數值而決定參數數值。該第一處理更經由在該命名空間欄位儲存之該所識別命名空間數值、該事件處理器欄位中之該所選擇事件處理器數值、以及在該參數欄位中該所決定的參數數值來填入(populate)該資料結構。該第一處理更將該所填入資料結構傳送至該第二處理。一第二處理係設置用來執行用於執行以下步驟的電腦可執行指令:接收來自該第一處理之該所填入的資料結構、因應所接收資料結構而選擇自儲存在該電腦可讀取媒體中之複數個事件處理器的一事件處理器、執行該所選擇的事件處理器以產生結果資料、以及該所產生之結果資料傳送至該第一處理。
根據本發明之另一具體實施例,一電腦可實施指令自一處理產生以及傳遞資料至另一處理。該電腦可實施指令包含由一第一處理接收來自一使用者之一資料請求以及識別關於該所接收請求之一命名空間。該方法也包含因應該所接收的請求而由該第一處理來決定關於該所識別命名空 間的一事件處理器。該方法更包含因應該所接收的請求而由該第一處理填入關於該所決定之事件處理器的一參數,並且建立一含該所識別命名空間、該所決定事件處理器以及該所填入參數之格式化的請求。該方法也包含自該第一處理傳送該所建立、格式化的請求至一第二處理。該方法也包含由該第二處理接收來自該第一處理的該所格式化請求,以及因應該所接收的格式化的請求而選擇來自儲存在一記憶體區域中之複數個事件處理器的一事件處理器。該電腦可實施方法也包含由該第二處理執行該所選事件處理來產生結果資料,以及將來自該第二處理的該所產生結果資料傳送至該第一處理。
根據本發明之另一態樣,其揭示一種具有用於在一網路環境中產生以及傳送所請求資料之電腦可執行部件的電腦可讀取媒體。該等部件包含用於執行以下步驟之一伺服端部署式客戶端部件:接收來自來自一使用者的資料請求、識別相關於該所接收請求的一命名空間、因應該所接收的請求而決定關於該所識別命名空間的一事件處理器、因應該所接收的請求而填入關於該所決定之事件處理器的一參數、建立含該所識別之命名空間及所決定事件處理器與該所填入之參數的一格式化請求、傳送該所建立且格式化之請求至一伺服端部件。該等部件也包含用於執行以下步驟的該伺服器部件:接收來自該伺服端部署式客戶端部件之該所傳送的請求、因應該所接收的格式化的請求而選擇來自儲存在一記憶體區域中之複數個事件處理器的一事 件處理器、以及傳送該所產生之結果資料至該伺服端部署式客戶端部件。
另外,本發明亦包含各式的其它方法以及設備。
其他特徵亦將在如下部分地描述之而屬顯而易見者。
在一具體實施例中,本發明包含一用於將資料傳送至一伺服端部署式客戶端應用程式、部件、處理或其類似者的伺服端應用程式、部件、處理或其類似者,用以回應於如第1圖所示之來自該客戶端應用程式而針對資料的一請求。在一伺服端部件102上,用於回應例如資料請求103之資料的程式碼或常式被分成複數個事件處理器(例如複數個事件處理器104)等等。在一具體實施例中,該事件處理器104係邏輯地被組織化成各命名空間。特別地,本發明包含建立含有關於該命名空間及事件處理器來執行以及對該處理器之各參數的資訊之一請求(例如資料請求103)。本發明更包含該伺服端中之一基礎建設(infrastructure)以允許開發者來實作傳送各回應至資料請求的請求處理器。
在本發明之一範例中,其再依分配個人資訊管理應用程式中包含一行事曆檢視。一行事曆檢視顯示出一針對一給定日期之各約會的表單。該伺服端102經由詢查一資料庫而在該行事曆中重新更新該檢視藉以在一給定時間範圍中擷取各約會。該所擷取的約會則基於該開始時間以及各 約會的持續期間接著被拉至(drawn)在各適當位置中的一客戶端。在先前系統中,這樣的一重新操作可由該客戶端部件108來達成而以供使用HTTP通信協定的Web型分散式編寫和版本制訂(WebDAV)延伸規格來詢查在可延伸標記語言(XML)格式中欲返回的資料、使用一延伸綱要定義(XSD)轉換來產生來自該XML資料的HTML、並且呈現該HTML與該使用者。這樣的系統相當複雜且困難於維持。
然而,基於本發明,一行事曆重新更新係由該客戶端部件108所達成而供以傳送一格式化的資料請求(例如資料請求103)、以及接收定義該行事曆資料的一程式碼流(例如JAVASCRIPT)。該行事曆資料部分地在該伺服器102中被表現。該客戶端部件108執行該程式碼以及使用程式腳本(script)產生該HTML標記。因為多數行事曆資料以及顯示資訊係在該伺服器102中預先計算,則在該客戶端部件108的責任則因之降低。在本發明之另一具體實施例中,該伺服器102經由返回已經在該伺服器102中表現之HTML而重新更新一PIM之一郵件檢視。本發明未在任何特定格式中限制來返回資料。本發明按由該客戶端部件108所指定之任何格式來返回資料,例如HTML、XML、文字、JavaScript payload等等。
請參照第1圖,其顯示一例示性方塊圖,而該方塊圖描述一伺服端部件、處理或其類似者(例如伺服器部件102)透過一網路(例如網際網路)與一或多個客戶端部件108、處理或其類似者(例如客戶端部件#1至客戶端部件#N)進 行通信。第1圖的系統包含一或多個電腦可讀取媒體(例如一記憶體區域106)。該記憶體區域106儲存複數個事件處理器104,而各事件處理器具有與其相關聯之一命名空間。複數個事件處理器104之各者更具有一或多個與其相關聯之參數。一表示一格式化資料請求103之資料結構也被儲存在一電腦可讀取媒體。在第1圖中,其係顯示自該客戶端部件108被傳送至該伺服端部件102的資料請求。該表示資料請求103之資料結構包含用於儲存表示該命名空間之一命名空間數值的一命名空間欄位。該資料結構更包含用於儲存相應於複數個事件處理器104中之一者的一事件處理器數值,而該複數個事件處理器係被儲存在相關於由該命名欄位中之該命名空間數值所表示之命名空間的該記憶體區域106中。該資料結構更包含一參數欄位,用以儲存相應於與由該事件處理器欄位中之該事件處理器數值所表示之該事件處理器相關的一參數之至少一參數。
在第1圖的例子中,該客戶端部件108為一第一處理而該伺服端部件102為一第二處理。該第一處理為一分散式的客戶端應用程式或係由該第二處理所部署以提供該伺服端部件102之某些或所有功能。例如,該第一處理可為一伺服端部署式客戶端應用程式(例如一伺服端部署式個人資訊管理)並且該伺服端部件102可為一個人資訊管理伺服器。然而,本發明並不限制於在該第一處理以及該第二處理之間的一客戶端-伺服端關係。例如,該第一處理以及該第二處理之間的一客戶端-伺服端關係可為點對點式 (peer-to-peer)。
在一具體實施例中,該第一處理係被設置來執行用於請求來自該第二處理之資料的電腦可執行指令。特別上,該第一處理接收來自一使用者或處理之資料請求。該請求可包含例如檢查最近所接收之電子郵件的一請求、更新一行事曆顯示的一請求、或者任何其他資料的請求。該第一處理識別相關於該所接收請求之一命名空間數值並且因應該所接收的請求及該所識別的數值而選擇一事件處理器數值。該所選事件處理器特別於來自該使用者之該特定請求並且為相關於該所識別命名空間數值的複數個事件處理器104中之一者。該所選事件處理器具有一或多個參數。該第一處理決定針對該所選事件處理器之一或多個參數的一參數數值。使用來自該所接收請求之資料來決定該參數數值。該參數數值可包含任何形式的資料並且可以由該第二處理所認可的任何形式所具體實現(例如可延伸標記語言)。該第一處理經由儲存該所識別命名空間數值於該命名空間欄位、該所選擇事件處理器數值於該事件處理器欄位、以及該所決定參數於該參數欄位而填入表示資料請求103的資料結構。該第一處理將該所填入之資料結構(例如資料請求103)傳送至該第二處理。
在一具體實施例中,該所填入之資料結構包含一系列名稱-數值對。例如,該命名空間欄位以及該命名空間數值為一名稱-數值對,該事件處理器欄位及該該事件處理器數值為一名稱-數值對,以及該參數欄位以及該參數數值為一 名稱-數值對。
該第二處理係被設置以執行用於產生以及傳遞該所請求資料至該第一處理的電腦可執行指令。在一具體實施例中,該第二處理接收來自該第一處理之該所填入資料結構(例如資料請求103)並且選擇來自儲存在記憶體區域106之複數個事件處理器的一事件處理器,該所選事件處理器係相應於該所接收資料請求103內所指定的該事件處理器。該第二處理使用來自從該第一處理所接收之該資料請求103的各參數以執行該地所選事件處理器來產生結果資料。該第二處理傳送該所產生結果資料至該第一處理。
在一具體實施例中,該第二處理經由查閱載入以關於該可用命名空間、事件處理器(複數個事件處理器104)、以及各參數之資訊的一組態資料庫(configuration database)來選擇該適格事件處理器。該第二處理包含例如用於在接收來自該第一處理之該資料請求103之前建立該組態資料庫的一登錄部件。例如,該複數個事件處理器104可由命名空間被組織化在該組態資料庫。
本發明包含用於儲存複數個事件處理器104之構件、用於執行該第一處理的構件、以及用於執行該第二處理的構件。例如一資料結構、一使用者介面、一應用程式、一應用程式介面(API)、電腦可執行指令、韌體與相似者(例如各圖示上所述者)的硬體及軟體構成了用於儲存複數個事件處理器104之構件、用於執行該第一處理的構件、以及用於執行該第二處理的構件。
在一具體實施例中,本發明使用具有POST或GET之動詞的HTTP請求來實施。一請求包含以下的資訊:一命名空間(例如在該URL詢查字串參數“ns”所指示者)、一事件名稱(例如在該URL詢查字串為“ev”參數所指示者)、以及一或多個參數。各參數不是針對POST請求在XML中就是作為GET請求之名稱-數值對。
一例示性之本發明的GET請求(例如資料請求103)如下:URL:/mail/ev.owa?ns=CalendarView&ev=Refresh&d=11142004T00:00:00Z 在此範例中,該客戶端(例如客戶端部件108)正要求該伺服端(例如伺服端部件102)執行在該“行事曆檢視”命名空間中之該“重新更新”處理器。該客戶端部件108傳遞一命名為具有數值11/14/2004 at 12am之“d”的日期類型之參數。該伺服端部件基於該實施,針對此檢視返回該標記或JavaScript payload。
一例示性之本發明的POST請求(例如資料請求103)如下:URL:/mailserver/ev.owa?ns=Messaging&ev=SaveMessage BODY: <params> <subject>Test email</subject> <to><item>userA@pageA.net</item><item>userB@pageA.net</item></to> <body>Test something</body> </params> 在此範例中,該客戶端部件108正要求該伺服端部件在該“Messaging”命名空間中執行該“SaveMessage”事件處理器。該事件參數為標題(字串),to(字串陣列)以及主體(字串)。此事件之回應則為指示成功或錯誤的一HTTP結果。在此案例中,無返回的標記(no returned markup)是需要的。該等參數可為XML之形式或者對該伺服端來說為可識別的任何其他語言格式。
現請參照第2圖,其顯示描述用於傳遞所請求資料之伺服端與客戶端之操作的一例示性流程圖。第2圖之流程圖反應一用於自一處理產生以及傳遞至另一處理的一電腦實施方法。該方法包含由該第一處理(例如第1圖之客戶端部件108)接收來自一使用者之資料請求(方塊202)並且識別關於該所接收請求之一命名空間(方塊204)。該方法更包含因應該所接收的請求而決定關於該所識別之命名空間的一事件處理器(方塊206)並且因應該所接收的請求而填入關於該所決定之事件處理器之一參數(方塊208)。該方法也包含建立具有該所識別命名空間、該所決定事件處理器、以及該所填入參數210的一格式化請求(例如第1圖中之資料請求103)(方塊210)。該方法自該第一處理至該第 二處理傳送該所建立、格式化請求(方塊212)。
本發明之方法包含由該第二處理接收來自該第一處理之格式化請求(方塊214)。該方法基於該所接收請求選擇一命名空間(方塊215)。該方法也包含經由該第二處理因應該所接收、格式化請求而選擇來自儲存在一或多個電腦可讀取媒體(例如第1圖所示之記憶體區域106)之複數個事件處理器中(例如第1圖所示之複數個事件處理器104)之一事件處理器(方塊216)。該方法分析且證實該所接收請求內之該等參數(方塊217)。該方法更包含執行該所選擇事件處理器以產生結果資料(方塊218)以及自該第二處理至該第一處理傳送該所產生之結果資料至該第一處理(方塊220)。在一範例中,該第一處理接收該結果資料並且顯示該資料予該使用者。
一開發者或其他使用者可建立使用者定義式之命名空間、事件處理器、及/或各參數。本發明之該方法更包含由該來自該使用者之第一處理接收一使用者定義命名空間、關於該使用者定義命名空間之一使用者定義事件處理器、及/或該使用者定義事件處理器之一使用者定義參數。該第一處理以該第二處理登記該所接收之使用者定義命名空間、該使用者定義事件處理器、及/或該使用者定義參數。該第二處理登記該所接收之使用者定義命名空間、該使用者定義事件處理器、及該使用者定義參數而不需改變該第二處理之一基礎建設。也就是說,實施該第二處理之程式碼(例如該伺服器部件)將不因該登記而改變。該第二處理 之基礎建設按該第二處理存取其他命名空間、事件處理器以及各參數之相同方式下來存取該所登記、使用者定義命名空間、事件處理器或各參數。
在一具體實施例中,揭示出具有用於執行第2圖中所示之電腦實施方法之電腦可執行指令的一或多個電腦可讀取媒體。
現請參照第3圖,其顯示描述在該伺服端部件之各模組的一例示性方塊圖。該等模組係在由該伺服器部件所產生之一請求執行緒302內被呼叫。在一具體實施例中,該事件處理器為實施一IHttpHeadler介面的HTTP處理器。本發明在允許該處理器類執行該程式碼之介面上呼叫一ProcessRequest方法以處理該請求。一HTTP處理器工廠為一可實施該IHttpHeadlerFactory介面的類別。這樣的物件被使用來建立用來處理該等請求之該HTTP處理器物件的各例證(instances)。在第3圖之例子中,其顯示稱為IHttpHeadlerFactory之一HTTP處理器工廠類別。本發明例舉化(instantiate)此類別之一物件(例如EvenHandlerBase instance 308)並且呼叫該IHttpHeadlerFactory介面之一“GetHandler”方法,其基於該請求之命名空間而建立該合適HTTP處理器類別(例如EventHandlerBase subclasses)的一例證。HTTP應用程式306以及EventHandlerBase例證308存取一HTTP上下文314。一事件上下文312為一包含有關該請求(例如該命名空間、事件名稱、以及該請求之各參數)之資訊的資料結 構。該EventHandlerRegistry 310為一作為有關該命名空間及其由該應用程式所實施之事件處理器之一貯藏處(repository)以及所支持之自訂資料結構(custom data structures supported)與列舉(enumerations)的類別。該應用程式在應用開始使用此貯藏處310登記一EventHandlerBase類別。本發明掃描該類別(例如使用反射,reflection)來決定該命名空間、該命名空間內之各事件、以及該等事件之各參數。此資訊係在處理該請求以及分析該等參數期間被儲存且稍後被使用。
根據本發明,一例示性執行一請求的流程圖係描述在第3圖中。本發明接收基於本發明之一資料請求、建立一EventHeadlerFactory類別之一例j證、以及呼叫在該所建立之例證上的GetHandler。該EventHeadlerFactory的GetHandler實施查看該詢查字串以算出該命名空間以及事件名稱,並且針對相對應於該詢查字串中命名空間以及事件名稱的該處理器類別搜尋該EventHandlerRegister 310。如果本發明發現該所請求的事件處理器,本發明則建立該事件處理器之一例證。該事件上下文312也被建立。本發明呼叫該事件處理器上之ProcessRequest。ProcessRequest使用特定於該請求本身之一分析器類別(例如是否該請求為一GET動詞或一POST動詞)來分析該請求之各參數。該分析器類別分析該請求內的各參數並且使用EventHandlerRegister 310來執行任何型態的轉變以及確保該綱要是正確的(例如確保設定此處理器所需之所有 參數)。該等參數可在此點上儲存在該上下文之一集合中。本發明執行相關於該事件處理器之事件處理器程式碼(例如執行該處理器類別之一方法)。此程式碼存取該上下文內的各參數,執行該處理過程,並且將該回應以由該請求實體所指定之任何形式寫入該請求實體。
接著參照第4圖,其顯示描述繼承自EventHandlerBase 402之事件處理器類別的一簡單集合之一例示性方塊圖。EventHandlerBase 402實施一IHttpHandler介面404、CalendarEventHandler 406、MessagingEventHandler 408、以及MessageViewEventHandler 410繼承自EventHandlerBase 402。開發者或其他使用者可經由產生一命名空間、識別該命名空間之一事件、以及定義該事件之各參數而建立例如第4圖所示之一自訂事件處理器。一使用者定義命名空間、事件處理器、及/或參數可為使用者選擇式(例如在一現存命名空間內之一新事件處理器)或使用者建立式(例如一新命名空間)。在一具體實施例中,一使用者定義事件處理器係實施成一動態鏈結庫。
開發者或其他使用者可使用如下所示之特定來定義該命名空間之一綱要:[EventNamespace("Namespace1")] internal class TestEventHandler:EventHandlerBase { [Event("Event1")] [EventParameter("Param1",typeof(string))] [EventParameter("Param2",typeof(int))] public void Event1() { string param1=(string)Context.GetParamValue("Param1"); int param2=(int)Context.GetParamValue("Param2"); Writer.Write(“{0}+{1}={2}”,param1,param2,param1+param2). } } 在此範例中,該EventNamespace特性沿線(over the wire)來定義該命名空間的名稱,該事件特性沿線來定義該事件的名稱,以及該EventParameter特性定義該參數名稱、該類型以及是否該參數為隨意的(optional)或不是。為了使用該處理器,該處理器開發者撰寫繼承自EventHandlerBase 402的一類別、撰寫該等事件作為不用具有任何參數且傳回空的(void)之方法、使用該適當描述於其上之特性來定義該綱要,以及登記具有該伺服器部件之類別。
本發明之資料結構允許各開發者來定義可被使用為各參數之各複雜類型。一例示性資料結構則如下所示:[EventStruct("r")] internal class RecipientWellItem { [EventField("dn")] public string DisplayName; [EventField("em",true,“oof@pageA.net”)]//true=optional field public string Email; [EventField("t")] public int Type; internal RecipientWellItem() { DisplayName=""; Email=""; Type=0; } } 以上之該例示性資料結構被編碼成如下所示:<r dn=”display name”em=”email address”t=”1”/> 當本發明之該伺服器部件接收符合一特定資料結構之一請求時,本發明建立該特定資料結構類別之一例證,並且自該請求以該資料填入之。
例示性作業環境
第5圖其係在一電腦130的形式中顯示一一般用途計算裝置的一範例。在本發明之一具體實施例中,例如電腦130之一電腦係適格於在此中所描述及說明之其他圖式中使用。電腦130具有一或多個處理器或處理單元132以及系統記憶體134。在該所描述之具體實施例中,一系統匯流排136耦接包含該系統記憶體134至該處理單元132之各種系統部件。該匯流排136可為多種匯流排結構之任者,此者含有一記憶體匯流排或記憶體控制器、一周邊匯流排、一加速圖形埠,及一利用各式匯流排架構任者之一處理器或區域匯流排。藉以範例,而非限制,該等架構包含「工業標準架構(ISA)」匯流排、「微通道架構(MCA)」匯流排、「強化之ISA(EISA)」匯流排、「視訊電子裝置標準協會(VESA)」區域匯流排,及「周邊元件互連(PCI)」匯流排(又稱為Mezzanine匯流排)。
電腦130通常包含至少某些形式之電腦可讀取媒體。電腦可讀取媒體可為任何能夠由該電腦130所存取的可用媒體,且包含揮發性及非揮發性媒體、可抽取與非可抽取媒體。僅以範例,且非限於此,電腦可讀取媒體可包括電腦儲存媒體及通訊媒體。電腦儲存媒體包括依照任何用於儲存例如電腦可讀取指令、資料結構、程式模組或其他資料之資 訊的方法或技術所實作之揮發性及非揮發性、可抽取與非可抽取媒體媒體。例如,電腦儲存媒體包括,但不限於此,RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位光碟(DVD)或其他光學碟片儲存物、磁匣、磁帶、磁碟裝置或其他磁性儲存裝置,或是任何其他可用於儲存所欲資訊而可由該電腦130予以存取的媒體。通訊媒體通常可在像是載波之經調變資料信號或其他傳送機制內具體實作各項電腦可讀取指令、資料結構、程式模組或其他資料,且可含有任何資訊遞送媒體。熟悉該項技藝者應可明瞭到「經調變資料信號」意思是一具有一或更多其特徵集合,或按此方法而變化,以將資訊編碼於其信號之內的信號。通訊媒體包含像是有線網路或直接接線連接的有線媒體,以及像是音響式、RF、紅外線及其他無線媒體的無線媒體。上述任者之組合亦應被納入在該電腦可讀取媒體的範圍內。
系統記憶體134包含以可抽取及/或非可抽取、揮發性及/或非揮發性記憶體的電腦儲存媒體。在該描述的具體實施例中,系統記憶體134可包含ROM 134、以及RAM 140。基本輸出入系統(BIOS)142通常儲存於ROM 138,包含有協助電腦130各元件之間傳送資訊的基本資訊(像是在開機的過程中)。RAM 140通常包含有處理單元132可以立即存取、以及/或是正為處理單元120所運作的資料以及/ 或是程式模組。同樣基於例示(而非引以為限),第5圖顯示之RAM 140包含有作業系統144、應用程式146、其他程式模組148、以及程式資料150。
電腦130還可以包含其他可抽取式/非可抽取式的、揮發性/非揮發性的電腦儲存媒體。同樣基於例示,第5圖還包含有一讀寫非可抽取式的、非揮發性的磁性媒體的硬碟機154。第5圖也顯示一讀寫可抽取式的、非揮發性的磁碟158的磁碟機156;以及一可讀取或寫入可抽取式的、非揮發性的光碟片162(像是CD ROM或其他光學媒體)的光碟機160。可以用在該所例示的作業系統環境中其他可抽取式/非可抽取式的、揮發性/非揮發性的電腦儲存媒體還包含(但不限於)磁帶卡匣、快閃記憶體卡、DVD、數位錄影帶、固態(solid state)RAM,固態ROM、以及其他類似的裝置。硬碟機154以及磁碟機156與光碟機160通常是則通常透過一非揮發性的記憶體界面(像是界面166)連接到系統匯流排136。
如上述以及顯示於第5圖的驅動機或大量儲存裝置及其相關的電腦儲存媒體提供電腦130儲存其電腦可讀取的指令、資料結構、程式模組、以及其他資料。在第5圖中,例如,硬碟機154儲存有作業系統170、應用程式172、其他程式模組174、以及程式資料176。應可瞭解到該等元件可以和作業系統144、應用程式146,其他程式模組148、以及程式資料150相同或不同。從作業系統170、應用程式172、其他程式模組174、以及程式資料176被賦予不同 的參考號碼就表示了,至少他們代表的是不同的拷貝。
一使用者是透過輸入裝置像是鍵盤180以及一指向裝置(像是滑鼠、執跡球(trackball)、或觸控墊(touch pad))輸入命令與資訊到電腦130裡。其他沒有顯示的輸入裝置還包含麥克風、搖桿(joystick)、遊戲控制器(game pad)、衛星接收碟(satellite dish)、或其他類似裝置。這些以及其他輸入裝置通常是經由連接至系統匯流排138之使用者輸入界面184而連接到處理單元132,但也可能是透過其他匯流排結構,像是並行埠(parallel port)、遊戲埠(game port)或是通用序列匯流排(USB)。顯示器188或其他種類的顯示裝置也是透過一個界面,像是視訊界面190,連接到系統匯流排136。除了顯示器188外,電腦還可以包含其他周邊輸出裝置(未顯示),像是喇叭、印表機等。這些輸出裝置可以透過一輸出周邊界面(未顯示)來連接。
電腦130可以是使用邏輯的連線(logical connection)在一網路環境裡和一或多個遠端電腦(例如一遠端電腦194)運作。遠端電腦194可以是個人電腦、伺服器、路由器、網路PC、對等(peer)裝置或其他常見的網路節點並且包含許多或全部前述電腦130的元件。第5圖所示的邏輯連線包含一區域網路(LAN)196以及一廣域網路(WAN)198,但也可以包含其他網路。區域網路196以及一廣域網路198可為一有線網路、一無線網路、或其上之組合等等。這樣的網路環境在辦公室、企業電腦網路、內部網路(intranets)、以及全球電腦網路(例如網際網路)都是很 常見的。
當使用在LAN環境時,電腦130是透過網路界面或界面卡186連接到LAN 196。當使用在WAN環境時,電腦130通常包含一數據機178或其他用於建立與WAN 198(像是網際網路)之通訊的構件。數據機178可以是內接或外接的,然後經由使用者輸入界面184或其他適當機制連接到系統匯流排136。在一網路環境中,描述關於電腦130的程式模組(或其中部份)可以是儲存在遠端的記憶體儲存裝置(未顯示)裡。同樣基於例示(而非限制),第5圖所示的遠端應用程式192是位於記憶體儲存裝置裡。圖中所示的網路連線僅屬例示,其他可在電腦間建立通訊連結的手段也可以使用。
一般來說,電腦130之資料處理器係由在不同次數儲存在該電腦之各式電腦可讀取媒體的各指令構件所編程。程式及作業系統普遍被分配在例如軟碟機或CD-ROMs。自此,它們則被安裝或載入一電腦的記憶體。在執行上,它們至少部分被載入進該電腦主要電子記憶體。當這些媒體包含用於執行如下所述關於一微處理器或其他資料處理器之各步驟的指令或程式時,本發明此中所描述包含此些以及其他各式型態電腦可讀取媒體。當基於此中所述之方法及技術所編程時,本發明也包含該電腦本身。
雖然結合包含電腦130之一例示性計算系統環境來描述,本發明係可操作以各式其他意圖或特定意圖計算環境或設置。該計算系統環境係不意圖建議出關於本發明功能 性或使用之範圍的任何限制。此外,該計算系統環境不應被解釋成其應具有任何與在該例示性作業環境中所描述之組合或任何一者相關的相依性或需求性。其他適用於本發明之眾知的電腦系統、環境和/或設置包含(但不限於)個人電腦、伺服器電腦、手持或膝上型裝置、微處理器系統、微處理式系統、電視盒、可程式化消費式電子產品、行動電話、網路個人電腦、小型電腦、大型電腦、包含上述系統以及裝置和類似者的分散式技術環境、及其類似者。
本發明可按由一電腦所執行之一般情境的電腦可執行指令來描述,像是程式模組。一般說來,程式模組包含常式、程式、物件、元件、資料結構等,其可執行特定任務或實作特定抽象資料型態。亦可在分散式計算環境中實作本發明,其中會由透過一通信網路所鏈結之各遠端處理裝置來執行各項任務。在一分散式計算環境裡,各程式模組及其他資料可位於含有記憶體儲存裝置之本地及遠端電腦儲存媒體兩者處。
在一軟體架構之背景中之一介面包含一軟體模組、部件、程式碼部分、或其他相關電腦可執行指令。該介面包含例如一第一模組,其係用來存取一第二模組藉以執行代表該第一模組上的計算任務。在一例子中,該第一及第二模組包含應用程式介面(例如由作業系統所提供)、元件物件模組(COM)介面(例如針對點對點應用程式通信)、以及可延伸標記語 言元資料交換格式(XMI)介面(例如針對網頁服務之間的通信)。
該介面可為一緊密耦合、同步的實施,例如在Java 2平台企業版(J2EE)、COM、或分佈式COM(DCOM)例子。另外,該介面可為鬆弛耦合、非同步的實施,例如在一網頁服務(例如使用該簡單物件存取協定)。一般來說,該介面包含以下任何的組合:緊密耦合、鬆弛耦合、同步以及非同步。再者,該介面可符合一標準協定、專屬協定或標準協定及專屬協定的任何組合。
此中所描述的該等介面可為一單一介面之部分或者可被實施為獨立介面或其上之任何組合。該等介面可本地或遠端地執行以提供功能。再者,該等介面可包含比此中所描述及說明之額外或較少的功能。
在操作中,電腦130執行電腦可執行指令(例如第2圖所示)來在網路應用程式之中產生以及傳遞所請求的資料。
根據本發明,附錄A表列出例示性的命名空間、事件處理器、以及各參數。在附錄A中,一DatePickerEventHandler處理器類型包含一日期選擇器之各事件。一日期選擇器為一允許一使用者選擇該應用程式中之多個上下文內之各日期的使用者介面部件。該RenderMonth事件呈現出相應於一月之該HTML片段(fragment)。當使用者點選導覽至2005年1月,本發明之該客戶端部件傳送RenderMonth事件至該伺服端,該伺服 端採取該輸入參數(例如以‘m’代表month,其為2005年1月),並且呈現該月的HTML片段。該所呈現的HTML片段則被傳送回該客戶端。
一MessageListViewEventHandler處理器類型包含顯示例如在一收件匣(inbox)之各訊息之該訊息表檢視的各事件。當該使用者選擇刪除一少數訊息時則執行刪除事件。該資料夾(folder)識別器係由特性‘fId’所表示。該訊息之陣列刪除識別器係由該特性‘id’所表示。
一RecipientWellEventHandler為接收者良好事件處理器。在此處理器類型之一事件的例子為‘分解,resolve’。‘分解’採取在該一電子郵件訊息內之該至副本抄送(cc)以及密件副本(bcc)欄位而為字串之陣列的各參數。該分解事件分析且分解這些字串。例如,如果一使用者類型"BobS",該資料請求隨著該相應於該‘to’參數"BobS"之陣列中的一單一項目被傳送至該伺服端。該回應為一在含Bob Smith電子郵件地址之HTML中之具“Bob Smith”的HTML片段,並且可有其他資料附加於此。
在該行事曆檢視事件處理器中之GetViewPayload方法的一詳細解說將於稍後加以描述。此方法之各參數包含該特性'nvs,' 'fId,' 'days,' 'vt,'以及'dir.'。當該行事曆檢視需要被重新更新時,此事件處理器自該客戶端被重新呼叫。該行事曆檢視在具半小時增加之顯示器之左方顯示一時間條(time strip),並且將每一天顯示在一行(column)內。
當該行事曆檢視需要被重新更新時,一 GetViewPayload則被執行。此事件自該後端(backend)載入該資料(例如在郵件匣之使用者的行事曆上作出一詢查),以及呈現描述該資料之程式碼(例如JavaScript)。該所呈現之程式碼歸類當成一有效載荷(payload)。該有效載荷使用該有效載荷資料被傳送至重繪該檢視的客戶端。一例示性的有效載荷包含各約會之起始/結束時間、標題、位置、空閒/忙碌狀態等等。同樣地,各矩形之座標在該伺服端被計算,並且被傳送成此有效載荷的部分,藉以簡化該客戶端腳本(client side script)。
該GetViewPayload方法之各參數包含特性'nvs,' 'fId,' 'days,' 'vt,' and 'dir.'。該‘nvs’特性為“無檢視狀態,no view state”特性,並且其若為真(true)時,指出其將無具需求來持續該檢視狀態。該檢視狀態為一組定義該檢視(例如所檢視天數之數量以及該檢視類型)的參數。該檢視類型可為每星期或每日。如果“nvs”參數為false時,該檢視狀態被保留直至下次使用者登入。該‘fId’特性為該“資料匣識別器”特性,其相應於所檢視之行事曆資料匣的識別器。該‘days’特性包含供檢視之日期的陣列。該‘vt’特性相應於每日或每星期之該“檢視類型”。該‘dir’特性為導覽箭之該具選擇性特定“方向”。設定此等特性意指該使用者基於該‘日期’特性,點選該導覽箭並且該伺服端計算下組日期來檢視。例如,如果該‘days’特性為三月之2、3及4日並且該‘dir’特性設定至+1,該伺服端將會加7天至該等日之各者(例如7天增加的多重檢 視)。如果該‘days’特性僅為三月之2日(例如一單日檢視),點選該右箭導覽至三月之3日,如此該伺服端僅增加1天。
一該GetViewPayload方法的例示性請求顯示於如下:POST/mailclient/ev.owa?oeh=1&ns=CalendarView&ev=GetViewPayload HTTP/1.1 Body: <params><fId>LgAAAABjczgvWhhRQKW7OM2Ok4GDAQD4If+Jk6V9Saz9+rfNa9e8AAAAABedAAAB</fId><days><item>2004-12-15T00:00:00</item><item>2004-12-16T00:00:00</item><item>2004-12-17T00:00:00</item></days><vt>1</vt><nvs>1</nvs></params>
一例示性回應上述請求的一部份顯示於如下:a_cERow=1;a_sFTtl="Calendar:December 2004";a_iNRP=1;a_rgCal=new Array(nc("RgAAAABjctheWhhRQKW7OM2Ok4GDBwD4If+Jk6V9Saz9+rfNa9 e8AAAAABedAAD4If+Jk6V9Saz9+rfNa9e8AAAAADTfAAAI","12-15-2004 17:30:00 U","12-15-200418:00:00 U","Strategy Meeting","Conf Room 1",2,1,"Bob Smith",0,1,0,0,""),nc("CAjGsFAnk8AARgAAAABjczgthehRQKW7OM2Ok4GDBwD4If+Jk6V9Saz9+rfNa9e8AAAAABedAAD4If+Jk6V9Saz9+rfNa9e8AAAAACNqAAAJ","12-15-2004 21:00:00 U","12-15-2004 21:30:00 U","Out of Office","",2,0,"",1,3,1,0,""),nc("RgAAAABjczgvWhhRQKW7OM2Ok4GDBwD4If+Jk6V9Saz9+rfNa9e8AAAAABedAAD4If+Jk6V9Saz9+rfNa9e8AAAAADThAAAI","12-16-2004 00:00:00 U","12-16-2004 01:00:00 U","Portfolio Development Meeting","Conf Room 2",2,1,"Joe A.",1,1,0,0,""));a_rgDay=new Array();var t;t=newCalDay("15","Wednesday",15,12,2004);av(t,0,19,1,1,0);av(t,0,24,0.5,4,1);av(t,0.5,26,0.5,1,2);av(t,0,32,1,2,3);av(t,0,34,1,2,4);a_rgDay[0]=t;t=newCalDay("16","Thursday",16,12,2004);av(t,0,20,1,1,5);av(t,0,21,1,2,6);av(t,0,23,1,2,7);av(t,0,25,1,1,8);av(t,0,28,0.5,6,10);av(t,0.5,28,0.5,4,9);av(t,0.5,33,0.5,3,11);a_rgDay[1]=t;t=newCalDay("17","Friday",17,12,2004);av(t,0,20,0.5,4,13);av(t,0.5,20,0.5,2,12);av(t,0.5,23,0.5,3,14);av(t,0,25,0.5,1,15);av(t,0,28,0.5,2,17);av(t,0.5,29,0.5,3,18);avf(t,26,22,3);a_rgDay[2]=t;a_rgEvt=new Array(ne(2,0,1,16,2,0))
此中所描述及說明之各方法之執行的順序將非為必 要,除非另有特別指示。也就是說,該方法的各元件除非有特別規定否則可在任何一順序下執行,並且該等方法可包含多於或少於此中所揭示之元件。例如,應可瞭解到在前、同時或之後另一元件,執行一特定元件應皆涵蓋於本發明之範疇。
在上述的描述中,應可清楚體會到其完成本發明之許多目的並且達成了其他的有利結果。
在不悖離本發明之範疇下,將可在上述構建、產品以及方法上作出各式的變化,包含在上述描述以及顯示在隨附圖式中的所有事項應被解釋成僅引為例示性而非在此作為本發明的一限制。
102‧‧‧伺服端部件(第二處理)
106‧‧‧記憶體區域
104‧‧‧複數個事件處理器
103‧‧‧資料請求 命名空間 事件處理器 參數
108‧‧‧客戶端部件(第一處理)
202‧‧‧接收來自一使用者之資料請求
204‧‧‧識別關於該所接收請求之一命名空間
206‧‧‧因應該所接收請求而決定關於該所識別之命名空間的一事件處理器
208‧‧‧因應該所接收請求而填入關於該所決定之事件處理器之一或多個參數
210‧‧‧建立具有該所識別命名空間、該所決定事件處理器、以及該所填入參數的一格式化請求
212‧‧‧自該第一處理至該第二處理傳送該所建立、格式化請求
214‧‧‧由該第二處理接收來自該第一處理之格式化請求
215‧‧‧選擇一命名空間
216‧‧‧選擇來自複數個事件處理器中之一事件處理器
218‧‧‧執行該所選擇事件處理器以產生結果資料
220‧‧‧自該第二處理至該第一處理傳送該所產生之結果資料至該第一處理
第1圖係為一描述一伺服端部件透過一網路與一或多個客戶端部件進行通信的例示性方塊圖。
第2圖係為一描述用於傳遞所請求資料之客戶端與伺服端處理流程的操作之例示性流程圖。
第3圖係為一描述該伺服端部件中之各模組的例示性方塊圖。
第4圖係為一描述一組範例性事件處理器類別的例示性方塊圖。
第5圖係為一描述一合適可於其中實施本發明之計算系統環境之一範例的例示性方塊圖。
附錄A則描述在本發明之一電子郵件命名空間中之各 範例事件及參數。 透過以上該等圖式,相對應的參考字元則指出了其各相關的部份。
202‧‧‧接收來自一使用者之資料請求
204‧‧‧識別關於該所接收請求之一命名空間
206‧‧‧決定關於該所識別之命名空間的一事件處理器作為該所接收請求之一函數
208‧‧‧填入關於該所決定之事件處理器之一或多個參數作為該所接收請求之一函數
210‧‧‧建立具有該所識別命名空間、該所決定事件處理器、以及該所填入參數的一格式化請求
212‧‧‧自該第一處理至該第二處理傳送該所建立、格式化請求
214‧‧‧由該第二處理接收來自該第一處理之格式化請求
215‧‧‧選擇一命名空間
216‧‧‧選擇來自複數個事件處理器中之一事件處理器
218‧‧‧執行該所選擇事件處理器以產生結果資料
220‧‧‧自該第二處理至該第一處理傳送該所產生之結果資料至該第一處理

Claims (20)

  1. 一種用於通信的系統,其包含:一或多個用於儲存包含以下各項的電腦可讀取媒體:複數個事件處理器(event handler),該等複數個事件處理器之各者具有與其相關聯之一命名空間(namespace),並且該等複數個事件處理器之各者更具有與其相關聯之一或更多個參數;以及表示一格式化資料請求的一資料結構,該資料結構包含儲存一命名空間數值的一命名空間欄位、儲存一事件處理器數值的一事件處理器欄位,以及儲存一參數數值的一參數欄位,該命名空間數值表示該命名空間,該事件處理器數值對應於該等複數個事件處理器之一者,其中該等複數個事件處理器之被對應的該者係關聯於該命名空間欄位中之該命名空間數值所表示的該命名空間,該參數數值對應於該等參數中之一者,而該等參數中之該者係關聯於該事件處理器欄位中之該事件處理器數值所表示的該事件處理器;以及一第一處理,其係由一第二處理所部署,該第一處理被設置以執行包含以下步驟之電腦可執行指令:接收步驟,其係用以接收來自一使用者或處理之一資料請求;識別步驟,其係用以識別相關於該所接收請求的一命名空間數值;選擇步驟,其係用以因應該所接收請求以及該所識 別命名空間數值,選擇一事件處理器數值;決定步驟,其係用以因應該所接收請求以及該所選擇事件處理器數值,決定一參數數值;填入(populate)步驟,其係用以經由儲存該所識別命名空間數值在該命名空間欄位中,該所選擇事件處理器數值在該事件處理器欄位中,以及該所決定參數數值在該參數欄位中,而填入該資料結構;傳送步驟,其係用以將該所填入之資料結構傳送至該第二處理;以及該第二處理,其係被設置以用於執行包含以下步驟之電腦可執行指令:接收步驟,其係用以接收來自該第一處理的該所填入之資料結構;選擇步驟,其係用以因應該所接收資料結構,自儲存在該電腦可讀取媒體上之該等複數個事件處理器中選擇一事件處理器;執行步驟,其係用以執行該所選擇之事件處理器藉以產生結果資料,其中該第二處理呈現該所請求之資料的一部份,該產生的結果資料表示尚欲被處理之該所請求之資料的剩餘部份;及傳送步驟,其係用以將該所產生之結果資料傳送至該第一處理,其中該第一處理執行該所產生的結果資料,以致使該第二處理部份地呈現該所請求之資料並且該第一處理呈現該所請求之資料的剩餘部份。
  2. 如申請專利範圍第1項所述之系統,其中該格式化的資料請求包含該命名空間欄位及該命名空間數值而作為一名稱-數值對(name-value pair)、該事件處理器欄位及該事件處理器數值而作為一名稱-數值對,以及該參數欄位及該參數數值而作為一名稱-數值對。
  3. 如申請專利範圍第1項所述之系統,其中該電腦可讀取媒體以及該第一處理係關聯於一伺服端部署式(server-deployed)個人資訊管理客戶端。
  4. 如申請專利範圍第1項所述之系統,其中該電腦可讀取媒體以及該第二處理係關聯於一個人資訊管理伺服器。
  5. 如申請專利範圍第1項所述之系統,其中該參數數值包含基於一可延伸標記語言所格式化之資料。
  6. 如申請專利範圍第1項所述之系統,其中一分散式客戶端應用程式執行該第一處理並且一伺服端應用程式執行該第二處理,以及其中該分散式客戶端應用程式提供至少一部份該伺服端應用程式的功能。
  7. 如申請專利範圍第1項所述之系統,其中該第二處理更被設置以執行用於構建一組態資料庫的電腦可執行指令, 該組態資料庫具有儲存在該電腦可讀取媒體中之該複數個事件處理器。
  8. 如申請專利範圍第1項所述之系統,其更包含儲存構件,其係用於儲存該等複數個事件處理器。
  9. 如申請專利範圍第1項所述之系統,其更包含用於執行該第一處理的執行構件,以及用於執行該第二處理的執行構件。
  10. 如申請專利範圍第1項所述之系統,其中該第二處理更被設置以執行包含以下步驟的電腦可執行指令:確認步驟,其係用以確認該參數數值;以及轉換步驟,其係用以將該參數數值轉換成與其相關的一資料型態。
  11. 一種用於將資料自一處理產生及傳遞至另一處理的電腦可執行方法,該電腦可執行方法包含:接收步驟,其係用以由一第一處理接收來自一使用者的一資料請求;識別步驟,其係用以由該第一處理識別相關於該所接收請求的一命名空間;決定步驟,其係用以由該第一處理因應該所接收請求,決定相關於該所識別命名空間之一事件處理器,該事 件處理器在該資料結構之一事件處理器欄位中儲存一事件處理器數值,該事件處理器數值對應於該事件處理器,該事件處理器係關聯於該命名空間欄位中之該命名空間數值所表示之該命名空間;填入步驟,其係用以由該第一處理因應該所接收請求,填入相關於該所決定事件處理器之一參數,該所填入之參數在該資料結構之一參數欄位中儲存一參數數值,該參數數值相應於該參數,該參數係關聯於該事件處理器欄位中之該事件處理器數值所表示之該事件處理器;建立步驟,其係用以由該第一處理建立一格式化請求,該格式化請求具有該所識別命名空間、該所決定事件處理器以及該所填入之參數;其中針對資料之該格式化請求包含該命名空間及該命名空間數值而作為一名稱-數值對、該事件處理器及該事件處理器數值而作為一名稱-數值對,以及該參數及該參數數值而作為一名稱-數值對;傳送步驟,其係用以自該第一處理傳送該所建立、格式化之請求至一第二處理;接收來自第一處理之請求的步驟,其係用以由該第二處理接收來自該第一處理的該格式化請求;選擇步驟,其係用以由該第二處理因應該所接收的格式化之請求,自儲存在一記憶體區域中之複數個事件處理器選擇一事件處理器;執行步驟,其係用以由該第二處理執行該所選擇之事 件處理器以產生結果資料,該第二處理呈現該所請求之資料的一部份,該產生的結果資料表示尚未被處理之該所請求之資料的剩餘部份;以及傳送結果資料步驟,其係用以自該第二處理將該所產生之結果資料傳送至該第一處理,該所產生的結果資料包含一程式碼流,其中該第一處理執行該所產生的結果資料,以致使該第二處理部份地呈現該所請求之資料並且該第一處理呈現該所請求之資料的剩餘部份。
  12. 如申請專利範圍第11項所述之電腦可執行方法,其更包含接收結果資料步驟,其係用以由該第一處理接收該所傳送的結果資料。
  13. 如申請專利範圍第11項所述之電腦可執行方法,其更包含:來自該使用者的接收步驟,其係用以由該第一處理自該使用者接收一使用者定義命名空間、關聯於該使用者定義命名空間之一使用者定義事件處理器,以及該使用者定義事件處理器之一使用者定義參數;以及登記步驟,其係用以由該第一處理對該第二處理登記該所接收的使用者定義命名空間、該使用者定義事件處理器以及該使用者定義參數。
  14. 如申請專利範圍第13項所述之電腦可執行方法,其中 該第二處理登記該所接收使用者定義命名空間、該使用者定義事件處理器,以及該使用者定義參數而不需改變該第二處理之基礎建設(infrastructure)。
  15. 如申請專利範圍第11項所述之電腦可執行方法,其中一或更多個電腦可讀取媒體具有用於執行如申請專利範圍第11項所述之電腦可執行方法的電腦可執行指令。
  16. 一種具有用於在一網路環境中產生及傳遞請求資料之電腦可執行部件的電腦可讀取媒體,該等部件包含:一伺服端部署式客戶端部件,其用於執行以下步驟:接收步驟,其係用以接收來自一使用者的一資料請求;識別步驟,其係用以識別相關於該所接收請求的一命名空間,該所識別的命名空間在一資料結構之一命名空間欄位中儲存一命名空間數值,該命名空間數值表示該所識別之命名空間;決定步驟,其係用以因應該所接收請求,決定相關於該所識別的命名空間之一事件處理器,該事件處理器在該資料結構之一事件處理器欄位中儲存一事件處理器數值,該事件處理器數值相應於該事件處理器,該事件處理器係關聯於該命名空間欄位中之該命名空間數值所表示之該命名空間;填入步驟,其係用以因應該所接收的請求,填入相關於該所決定事件處理器之一參數,該所填入之參數在該資 料結構之一參數欄位中儲存一參數數值,該參數數值相應於該參數,該參數係關聯於該事件處理器欄位中之該事件處理器數值所表示之該事件處理器;建立步驟,其係用以建立一格式化請求,該格式化請求具有該所識別命名空間、該所決定事件處理器,以及該所填入之參數;其中針對資料之該格式化請求包含該命名空間及該命名空間數值而作為一名稱-數值對、該事件處理器及該事件處理器數值而作為一名稱-數值對,以及該參數及該參數數值而作為一名稱-數值對;傳送步驟,其係用以傳送該所建立、格式化之請求至一伺服端部件;及該伺服端部件,其係用於執行以下步驟:接收步驟,其係用以接收自該伺服端部署式客戶端部件所傳送之請求;選擇步驟,其係用以因應該所接收之請求,自儲存在一記憶體區域中之複數個事件處理器選擇一事件處理器;執行步驟,其係用以執行該所選擇之事件處理器以產生結果資料,該伺服端部件呈現該所請求之資料的一部份,該所產生的結果資料表示尚未被處理之該所請求之資料的剩餘部份;以及傳送步驟,其係用以將該所產生之結果資料傳送至該伺服端部署式客戶端部件,其中該伺服端部署式客戶端部件執行該所產生的結果資料,以致使該伺服端部件部份地 呈現該所請求之資料並且該伺服端部署式客戶端部件呈現該所請求之資料的剩餘部份。
  17. 如申請專利範圍第16項所述之電腦可讀取媒體,其更包含用於構建一組態資料庫的一登記部件,該組態資料庫具有儲存在該記憶體區域中之該等複數個事件處理器。
  18. 如申請專利範圍第17項所述之電腦可讀取媒體,其中該伺服端部件因應該所接收的請求,自該組態資料庫選擇一事件處理器。
  19. 如申請專利範圍第16項所述之電腦可讀取媒體,其中該伺服端部署式客戶端部件包含經由一網路與該伺服端部件通信的一個人資訊管理客戶端。
  20. 如申請專利範圍第16項所述之電腦可讀取媒體,其中該伺服端部件包含一個人資訊管理伺服器。
TW095104781A 2005-04-08 2006-02-13 在網路應用程式中用以製造並傳遞請求資料的系統與方法 TWI388992B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/102,039 US7418715B2 (en) 2005-04-08 2005-04-08 System and method for producing and communicating requested data among networked application programs

Publications (2)

Publication Number Publication Date
TW200639652A TW200639652A (en) 2006-11-16
TWI388992B true TWI388992B (zh) 2013-03-11

Family

ID=37084265

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095104781A TWI388992B (zh) 2005-04-08 2006-02-13 在網路應用程式中用以製造並傳遞請求資料的系統與方法

Country Status (11)

Country Link
US (1) US7418715B2 (zh)
EP (1) EP1872281A4 (zh)
JP (1) JP2008538428A (zh)
KR (1) KR101219997B1 (zh)
CN (1) CN101548256B (zh)
BR (1) BRPI0608817A2 (zh)
MX (1) MX2007011027A (zh)
MY (1) MY144258A (zh)
RU (1) RU2419864C2 (zh)
TW (1) TWI388992B (zh)
WO (1) WO2006110237A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198473A1 (en) * 2006-02-03 2007-08-23 Simdesk Technologies, Inc. Computer system displaying personal information items in database as individual files
US20080025232A1 (en) * 2006-07-26 2008-01-31 International Business Machines Corporation Method and system for network connection
US20080228715A1 (en) * 2007-03-12 2008-09-18 Terabyte Media, Llc Apparatus and method for distributed information retrieval and processing
US7966287B2 (en) 2008-05-15 2011-06-21 International Business Machines Corporation Apparatus, system, and method for dynamic database driven document synchronization
US8726237B2 (en) * 2009-10-28 2014-05-13 Microsoft Corporation Event handling for unmanaged code
CN102622216A (zh) 2011-01-30 2012-08-01 国际商业机器公司 一种用于应用的协同工作的方法和系统
TWI571747B (zh) * 2011-10-28 2017-02-21 Lxm公司 資料交換系統
US8984124B2 (en) * 2011-11-30 2015-03-17 Microsoft Technology Licensing, Llc System and method for adaptive data monitoring
JP5896712B2 (ja) * 2011-12-08 2016-03-30 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び、情報処理システム
JP5942634B2 (ja) * 2012-06-27 2016-06-29 富士通株式会社 秘匿化装置、秘匿化プログラムおよび秘匿化方法
US9141707B2 (en) * 2012-07-19 2015-09-22 Facebook, Inc. Context-based object retrieval in a social networking system
EP2991241A1 (en) 2014-08-27 2016-03-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sudac, user equipment, base station and sudac system
KR101581776B1 (ko) * 2015-05-14 2015-12-31 주식회사 티맥스 소프트 웹 서버에서 파일 디스크립터를 분배하는 방법, 이를 사용한 웹 서버 및 컴퓨터 판독 가능한 기록 매체
US9940169B2 (en) 2015-07-23 2018-04-10 Pearson Education, Inc. Real-time partitioned processing streaming
US11468053B2 (en) 2015-12-30 2022-10-11 Dropbox, Inc. Servicing queries of a hybrid event index
US11099912B1 (en) * 2016-06-29 2021-08-24 Amazon Technologies, Inc. Processing computationally intensive workloads
CN106406985B (zh) * 2016-09-21 2019-10-11 北京百度网讯科技有限公司 分布式计算框架和分布式计算方法
US11063946B2 (en) * 2018-10-24 2021-07-13 Servicenow, Inc. Feedback framework
CN114296641B (zh) * 2021-12-14 2023-09-19 北京欧珀通信有限公司 增量文件传输方法、装置、电子设备及可读存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3489123B2 (ja) * 1992-04-15 2004-01-19 株式会社日立製作所 アプリケーション結合方法
US5634053A (en) 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US6023694A (en) 1996-01-02 2000-02-08 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
JPH1196009A (ja) * 1997-09-22 1999-04-09 Toshiba Corp オブジェクトインターフェース変換方法及び記録媒体
US6366915B1 (en) 1998-11-04 2002-04-02 Micron Technology, Inc. Method and system for efficiently retrieving information from multiple databases
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement
US6539374B2 (en) 1999-06-03 2003-03-25 Microsoft Corporation Methods, apparatus and data structures for providing a uniform representation of various types of information
US7231433B1 (en) 2000-01-19 2007-06-12 Reynolds And Reynolds Holdings, Inc. Enterlink for providing a federated business to business system that interconnects applications of multiple companies
US7702719B1 (en) * 2000-02-08 2010-04-20 International Business Machines Corporation Methods and apparatus for reducing the number of server interactions in network-based applications using a dual-MVC approach
AU2001243597A1 (en) 2000-03-03 2001-09-17 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US7207046B1 (en) * 2000-08-23 2007-04-17 Agilent Technologies, Inc. Method and system for providing string-over-socket scripting language access to distributed object model interfaces
US7127514B2 (en) * 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
US20030163479A1 (en) 2001-05-14 2003-08-28 Mathews Michael B. Method and apparatus for implementing a data management system using a metadata specification
EP1298525A1 (en) 2001-09-26 2003-04-02 Sap Ag Interaction between computers with different object-oriented run-time environments
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7739223B2 (en) 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
DE10351351B4 (de) * 2003-11-04 2007-03-22 Siemens Ag Verfahren und System zur dynamischen Generierung von User Interfaces

Also Published As

Publication number Publication date
MX2007011027A (es) 2007-09-26
CN101548256A (zh) 2009-09-30
US20060230026A1 (en) 2006-10-12
EP1872281A2 (en) 2008-01-02
WO2006110237A2 (en) 2006-10-19
JP2008538428A (ja) 2008-10-23
BRPI0608817A2 (pt) 2010-01-26
RU2007137005A (ru) 2009-04-10
WO2006110237A3 (en) 2009-04-23
RU2419864C2 (ru) 2011-05-27
KR20070118076A (ko) 2007-12-13
TW200639652A (en) 2006-11-16
CN101548256B (zh) 2012-09-05
MY144258A (en) 2011-08-29
US7418715B2 (en) 2008-08-26
KR101219997B1 (ko) 2013-01-08
EP1872281A4 (en) 2011-06-15

Similar Documents

Publication Publication Date Title
TWI388992B (zh) 在網路應用程式中用以製造並傳遞請求資料的系統與方法
US8104044B1 (en) System and method for client-side widget communication
US9846732B2 (en) Communicating with data storage systems
JP4546744B2 (ja) 電子メールおよびアラート・メッセージを処理する方法、コンピュータプログラム、および、該コンピュータプログラムを有するコンピュータ読取り可能な記録媒体
JP5693600B2 (ja) ウェブサービスインターフェイス及びクエリ検索
US20080235681A1 (en) System, method and apparatus for retrieving schedule information from a remote location for an electronic calendar
US20030018661A1 (en) XML smart mapping system and method
US20010016845A1 (en) Method and apparatus for receiving information in response to a request from an email client
US20040199896A1 (en) Creating web services programs from other web services programs
US20020026441A1 (en) System and method for integrating multiple applications
US20020026461A1 (en) System and method for creating a source document and presenting the source document to a user in a target format
US20090254611A1 (en) System and Method for Platform and Language-Independent Development and Delivery of Page-Based Content
WO2002021413A2 (en) Methods and apparatus providing electronic messages that are linked and aggregated
US20030189585A1 (en) Template-driven process system
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
CA2524769A1 (en) Dynamic summary module
JP2009543167A (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
US20070156868A1 (en) Efficient dynamic discovery of web services
US7792969B2 (en) Message interface for configuring web services for remote portlets
JP7286798B2 (ja) 動的に構成可能なクライアントアプリケーションアクティビティ
Marii et al. Features of Development and Analysis of REST Systems
Jefford et al. Professional BizTalk Server 2006
Lerner At the Forge: Bloglines web services
US20070005577A1 (en) Entity agent
US8321500B2 (en) Method and system for generating messages

Legal Events

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