TW200841675A - Dispatching client requests to appropriate server-side methods - Google Patents

Dispatching client requests to appropriate server-side methods Download PDF

Info

Publication number
TW200841675A
TW200841675A TW097102894A TW97102894A TW200841675A TW 200841675 A TW200841675 A TW 200841675A TW 097102894 A TW097102894 A TW 097102894A TW 97102894 A TW97102894 A TW 97102894A TW 200841675 A TW200841675 A TW 200841675A
Authority
TW
Taiwan
Prior art keywords
http
uri
server
identified
request message
Prior art date
Application number
TW097102894A
Other languages
English (en)
Other versions
TWI354475B (en
Inventor
Tirunelveli R Vishwanath
Stephen J Maine
Clemens Friedrich Vasters
Brian Matthew Mcnamara
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 TW200841675A publication Critical patent/TW200841675A/zh
Application granted granted Critical
Publication of TWI354475B publication Critical patent/TWI354475B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • 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 Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

200841675 九、發明說明: 【發明所屬之技術領域】 本發明關於將客戶 晴求配送到適當伺服器 側的方法 0 【先前技術】 電腦系統與相關科技會影響社會的許夕 上’電腦系統處理資訊的能力已經轉 1面。實瞭 Ο Ο 的方式。現在電腦系統經常執行在電腦系统作 執行的多種工作(例如文字處理、排程及:展之别人工 電腦系統彼此耦合,並耦合其它電子震置,r )_。近年來, 線及無線電腦網路,在其中該電腦系統斑^同時形成有 傳遞電子資料…,許多運算工作的欵^'電子裝置可 不同的電腦系統及/或一些不同的運算組件。 丨些 -種常用的以網路為基礎之通信型式為在全球 (W而,“WGHdwide Web”)上交換電子訊息。在WWW上的 内容基本上係以一客戶端/飼服器模型來存取。一客戶端電 腦系統的網頁溯覽器傳送一請求而由“網頁伺服器,,存取内 容,或提供内容到網頁伺服器。對於WWW的請求常常使 用超文件傳輸協定(HTTP,“Hypertext Transfer Protocol”) 來傳送(以下稱之為HTTP請求)。 一 HTTP請求基本上包括在一請求URL之後至少一方 法符記。一方法符記指示一 HTTP Verb(或方法),例如像 是GET、POST、PUT等,其係要在由該請求URL所識別 的資源上執行。 5
200841675 一請求URL基本上包括一協定指標名 部份、一路徑部份及一資源部份的某種組 份指示用於傳送該URL的協定(如HTTP 部份識別一資源所位在的網域。路徑部份 網域内的位置(或在該網域上的路徑)。資 位置處是什麼(如一檔案,網頁等)。 因此,一方法符記及請求URL的組合 伺服器,以指示網頁伺服器一 HTTP動詞 求URL所識別的資源上執行。因此,當-份資料(如一檔案或網頁),網頁伺服器可 頁瀏覽器(如回應於一 GET動詞),或根據 請求更新該資料(如回應於一 PUT動詞)。 用於識別在一網頁伺服器處的服務。 在許多環境中,識別一服務的一請求 接對應於要被執行來實施該服務的可執行 求URL可識別一網頁式的電子郵件應用, 在大部份案例中並不識別)要被執行來實 子郵件應用之可執行碼。再者,當一内含 一服務時,網頁伺服器基本上缺少能配 請求到可執行碼中一適當且相對應之部份 因此,對於網頁伺服器已經至少開發 術來配送一 HTTP請求到適當的伺服器側 使用這些技術中任一種,一網頁伺服器可 求,其包含一網頁式的電子郵件應用之一 取份、一網域名稱 合。協定指標部 、FTP等)。網域 指示該資源在該 源部份指示在該 即傳送到一網頁 動作要在由該請 一 URL識別一部 傳回該資料到網 該網頁瀏覽器的 但是,U R L亦可 URL並不需要直 碼。例如,一請 而不需要識別(且 施該網頁式的電 的請求URL識別 :一收到的 HTTP 的功能性。 出兩種不同的技 可執行碼。例如 配送一 HTTP請 請求URL到用於 6 200841675 呈現一電子郵件介面及執行其它電子郵件相關功能的玎執 行碼。 一種技術包括一開發者,其撰寫他們自己的管理器(或 配送碼)’其可結合至一特定URL,並提供一單一進入點到 可執行碼。例如,一開發者可產生一 API,其對於所指定 的URL處理HTTP請求(例如檢查其中所包含的協定資
料)。當識別包含該指定的URL之一 HTTP請求時,該API 配送該HTTP請求到該相對應及適當的可執行 (I θ 但是,配送碼基本上係以個別應用為基礎來開發,並 用於配送指定的URL到一指定的可執行碼(例如以一對一 的對應性)。再者’配送碼基本上對於撰寫配送碼的特定開 發者會有編碼的些微差異。因此,使用開發者撰寫的配送 瑪之環境基本上並無一致的方式來配送HTTP請求。 另一種技術包括加入額外的元資料到一 HTTp請求(除 了由HTTP規格所定義的一 HTTP請求之部份之外,例如 像是一方法符記及請求URL)。例如,配送元資料可被插入 (SOAP,’’Simple Object Access
Protocol”)波封,然後該簡單物件存取協定連同一方法符記 及請求URL —併被包含在一 HTTP請求的主體中。收到這 種HTTP請求的網頁伺服器接著可處理該額外的配送元資 料(如SOAP動作),以決定該HTTP請求將如何被配送到 網頁伺服器處的可執行碼。 【發明内容】 7 200841675 Ο Ο 本發明延伸至用於將客戶請求配送到滴告h J y田词服器侧 方法的方法、系統及電腦程式產品。一伺服5|雷 σ电腦系統 收一客戶請求訊息’其中包括至少一請求統一資 貝源識別 (URI,“Uniform Resource Identifier”)及一和 + ν丄 %文件傳輸協 (HTTP)方法識別碼。收到該客戶請求訊息指 “相不該伺服器 腦系統由HTTP方法識別碼所識別的HTTP古、、丄^ 々法·係要在 該请求URI識別的一資源上執行。 伺服器電膜系統甴包含在所接收之客戶& 厂5月豕訊息中 URI擷取一 URI疼徑=伺服器電腦系統稱為一服務合約 架,以識別有可笔處理該識別的HTTP方沬+ 2 々决之伺服器側 業的子集合《該伺服器側作業的每一個人 市5係指定來 於伺服器電腦系統(其包括該擷取的URI敗焚 峪徑)的一URI 稱空間之一部份處理一 HTTP方法。 伺服器電腦系統由伺服器側作業的 J卞杲合當中識別 伺服器侧作業,該飼服器側作業被指定來處理該識別 HTTP方法。词服器電腦系統因應於識別該識別的祠服 側作業’而引發街應於該識別的伺服器側作業之一饲服 實施的方法以處理該客戶請求訊息。 ^ 〇 此發明内容係用來介紹在一簡 間化^式中選出的觀念 其在以下的實施方式中會進一步#明 d π說明。此發明内容說明 非要識別所主張之標的的關鍵特徵或 X暴本特徵,也並非 做為輔助決定所主張之標的的範嘴。 本發明額外的特徵與優點將在 乂下的說明當中提出 而部份將可由說明當中瞭解,或 Φ實施本發明來獲悉 之 接 碼 定 電 由 的 框 作 對 名 的 器 器 並 要 8 200841675 本發明的特徵與優點將藉由在下附申請專利範圍中特 出的元件及組合進行瞭解與取得。本發钥這些與其它 將藉由以下的說明及下附申請專利蕤圍更為顯而易見 可由此下提出之本發明的實施面得知。 【實施方式】 本發明延伸至用於將客戶請求配送到適當伺服器 方法的方法、系統及電腦程式產品=一伺服器電腦系 、 收一客戶請求訊息,其中包括至少一請求統一資源識 (URI,“Uniform Resource Identifier”)及一超文件傳輸 (HTTP)方法識別碼。收到該客戶請求訊急指示該伺服 腦系統由HTTP方法識別碼所識別的HTTP方法係要 該請求URI識別的一資源上執行。 伺服器電腦系統由包含在所接收之客戶請求訊息 URI擷取一 URI路徑。伺服器電腦系統稱為一服務合 架,以識別有可能處理該識別的HTTP方法之伺服器 業的子集合。該伺服器側作業的每一個子集合係指定 於該伺服器電腦系統(其包括該擷取的URI路徑)的一 名稱空間之一部份處理一 HTTP方法。 伺服器電腦系統由伺服器側作業的子集合當中識 定來處理該識別的HTTP方法之一伺服器側作業。伺 電腦系統因應於識別該識別的伺服器側作業,而引發 於該識別的伺服器側作業之一伺服器實施的方法以處 客戶請求訊息。 定指 特徵 ,或 側之 統接 別碼 協定 器電 在由 中的 約框 側作 來對 URI 別指 服器 對應 理該 9 200841675 本發明的具體實施例可包含一特殊目的或通用目的之 電腦,其中包括電腦硬體,如以下的詳細說明。在本發明 範疇内之具體實施例亦包括電腦可讀取媒體,用於承載或 包含儲存於其中的電腦可執行指令或資料結構。這種電滕 可讀取媒體可為任何可用的媒體’其可由一通用或特殊目 J ’電腦可讀取媒體 取儲存媒體,例如 的電腦進行存取。藉由範例(而非限制 可包含實體(或可記錄式)電腦可讀 磁
RAM、ROM、EEPR〇m、CD-ROM 或复仓企 〃匕元碟儲存元 $用電腦可執行指 構件之其它媒韹, 碟儲存元或其它磁性儲存裝置,或任何 令或資料結構型式儲存所想要的程式瑪 並可由一通用或特殊目的電腦進行存取 …睛辱利範圍中,「網路」係定義為 -或多個資料鏈結’其能夠在電腦系統及/或模组之間傳送 電子資料。當資訊在一網路卷盆仓 、 洛次其匕通信連接(硬體連線、無 線,或硬體連線及無線之組合丨 之上傳迗或提供給一電腦 時,該電腦可適當地看待該連接 山—丄 遷接為一電腦可讀取媒體。因 此,耩由範例(而非限制),電 了 §貝取媒體亦可白含一網 路或 > 料鏈結,其可用於以電 ^ 剂-V系费々 腦可執行指令或資料結構的 型式承载或儲存所想要的程式 ^ . 蜂構件’並可由一 用志胜 殊目的電腦進行存取。 ^用式特 電腦可執行指令包含例如 用電腦、牲砝及資料,其可使得一通 用電脶、特殊目的電腦或特殊 、 能戋功能群$ 的處理裝置來執行某個功 月b A刀月匕群組。該電腦可執 谂彳护6 y 4令例如可為二元化、中間 格式ί曰疋,例如組合語言或 Τ Π ^ 原始程式。雖然該標的已 10 200841675 經以特定於結構化特徵及/或方法 古f生步驟的語言來描述,其 應瞭解到在下附申請專利範圍中 Γ/τ疋義的標的並不必要地 限制於上述之說明特徵或步驟。 a ^ 7 而疋所描述的特徵與步驟 係以實施該等申請專利範圍之範例型式來揭示。 熟悉本技藝專業人士將可睁艇土 嚟解本發明可實施於具有多 種電腦系統組態之網路運算環境中 、 τ 包括個人電腦、桌上
Ο 型電腦、膝上型電腦、訊息處理器、掌上麼裝置、多處理 器系統、應用微處理器或可程式化消費電子產品、網路 pc、微電腦 '主機型電腦、行動電話、pda、呼叫器及類 似者。本發明亦可實施於分散式系統環境中,《中透過一 網路所鏈結(不論是硬體連線資料鏈結、無線資料鏈結、或 硬體連線及無線資料鏈結之組合)之太 一 ^ 口)之本地及遠端電腦系統 皆可執行工作。在一分散式系統環境中 來見丫’程式杈組可以同 時位於本地及遠端記憶體儲存裝置中。 第1圖為進行 之範例性電腦框架 腦糸統1 0 1及伺服 與伺服器電腦系統 何網路或其組合, 將客戶請求配送到適當的祠服器側方法 100。電腦框架100中所述為客戶端電 器電腦系統1 02。客戶端電腦系統! 〇 1 102連接至網路1〇3,其實際上可為任 例如像是區域網路(LAN,“Local area network”)、廣域網路(WAN,“wide area network”)及甚至網 際網路。因此’客戶端電腦系統1 0 1與伺服器電腦系統 1 02 ’以及任何其它相連的電腦系統,皆可產生訊息相關的 資料’並交換訊息相關的資料(如網際網路協定(IP)資料段 及其它利用1p資料段之較高層協定,例如網路1 03上的傳 11 200841675 輸控制協定(TCP,“Transmission Control Protocol”)、超文 件傳輸協定(HTTP,“Hypertext Transfer Protocol’’)、簡單郵 件傳輸協定(SMTP,“Simple Mail Transfer Protocol”)等)。 如上所述,電腦系統1 〇 1包括網頁瀏覽器104。網頁 瀏覽器1 04可經配置以回應於所接收(為使用者輸入或自 動化)指令來請求及接收以網頁為主的内容。網頁瀏覽器 104亦可呈現網頁式的内容做為電腦系統處的輸出。 為了請求内容或遠端以網頁為主之作業(更新遠端内容)之 Θ 效能,網頁瀏覽器1 04可傳送一請求訊息到一適當的網頁 伺服器。一請求訊息可包括識別一資源的統一資源識別碼 (URI)。一請求訊息亦可包括識別一 HTTP方法之一 HTTP 方法符記(有時稱之為Η T T P動詞),例如像是〇 ρ τ I 〇 N S, GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT 等’其係要在由URI所識別的資源上執行。 飼服器電腦系統1 02包括網頁伺服器1 〇6及伺服器實 施的方法1 09。網頁伺服器1 〇6經配置以回應於來自客戶 (J 端電腦系統的請求。網頁伺服器1 06可回應於對内容的一 客戶請求(如一 HTTP GET)而將内容傳遞回到一客戶端電 腦系統。網頁伺服器1〇6亦可回應於一客戶請求(如http put)進行在伺服器電腦系統1〇2處内容的更新。網頁伺服 器106可弓丨發在伺服器實施的方法109中的方法,例如像 是方法1〇9Α、方法1〇9B或方法1〇9C,以回應於一客戶請 求取得内容或更新内容。網頁伺服器1 06亦可管理一伺服 裔側URI名稱空間,其用於識別伺服器電腦系統1 02之可 12 200841675 用資源。 網頁伺服器1 0 6包括配送模組1 0 7及服務合約 111。服務合約框架111可包括HTTP請求與在元資料 告式地指定的管理器方法之間一或多個對映。該元資 由一配送機制(如配送模組 107)檢查,以決定如何導 接收的HTTP請求到一適當的管理器方法。如上所述 務合約框架111包括複數傳輸合約112A、112B、112C 每個傳輸合約對應於一指定的服務,並對映該伺服 URI名稱空間之一部份及一 HTTP方法到一相對應指 伺服器實施的方法。 配送模組 1 〇 8可識別及引發一適當的伺服器實 法,其被指定來回應於一客戶請求。為了識別一適當 服器實施方法,配送模組1 0 7可參照到服務合約框架 配送模組1 0 7包括比較模組1 0 8。比較模組1 0 8可比 URI路徑及/或來自一客戶請求訊息之一識別的HTTP 到服務合約框架111内傳輸合約的元件,以識別對應 URI路徑及/或該識別的HTTP方法之一特定傳輸合約 後配送模組1 〇 7可對於該特定傳輸合約引發相對應的 伺服器實施方法。由引發一指定的伺服器實施方法的 (例如内容或請求更新内容之結果)可傳回到一客戶端 系統。 第2圖為用於將客戶請求配送到適當伺服器側方 範例性方法200的流程圖。該方法200將參考電腦框架 中的組件及資料加以說明。 框架 中宣 料可 引一 ,服 等。 器侧 定的 施方 的祠 m。 較一 方法 於該 〇缺 指定 結果 電腦 法之 13 100 200841675 方法200包括接收一客戶請求訊息的步驟,其包括至 少一請求统一資源識別嫣(URI)及一超文件傳輸協定 (HTTP)方法識別碼,該客戶請求訊息之接收對該接收電腦 系統伯定關於由HTTP方法識別碼所識別的HTTP方法係 要在由請求URI識別的一資源上執行(步驟2〇1)。例如, 網頁伺服器106可接收請求訊息121,其包括至少URI 1 22 及HTTP方法符記123。請求訊息ι21亦可視需要包括資 P 料124(例如其要用於更新在伺服器電腦系統1〇2處的内 谷)。抆到請求訊息1 2 1指示網頁伺服器丨〇 6由η T T P方法 付記123識別的HTTP方法係要在由URI 122識別的一資 源上執行。 方法2 0 0包括由包括在該收到的客戶請求訊息中的 URI擷取一 URI路徑(步驟202)。例如,網頁伺服器ι〇6 及/或配送模組107可由URL 122擷取URI路徑132(URL 1 22之路徑部份)。URI路徑1 3 2可識別在伺服器電腦系統 1〇2之URI名稱空間内一特定資源。 〇 方法2 0 〇包括參照到一服務合約框架來識別有可能處 理該識別的HTTP方法之伺服器側作業的一子集合的步 驟,該伺服器側作業之每一個子集合被指定來處理包括該 操取的URI路徑之一 URI名稱空間的一部份之一 HTTP方 法(步驟203)。例如,比較模組108可參照服務合約框架 111來識別傳輸合約子集合11 7。比較模組丨〇8可比較URI 路徑132到服務合約111中每一傳輸合約的URI路徑,以 決定URI路徑132是否包含在每一傳輸合約的uri路徑之 14 200841675 内(或符合)。 例如,比較模組108可比較URI路徑132 113B,以決定URI疼徑132是否包含在 内(或符合)。在傳輸合約内的URI路徑可包括 算子(operator),其公開該伺服器側URI名稱竺 因此,一單一傳輸合約的URI路徑可對應於 URI範圍内的資源之客戶請求。如上所述,傳 0 合117包括傳輸合約Π2Β舆n2C(並亦可包 (或符合)URI路徑132之一 URI路徑的任^ 約)。 方法200包括自伺厫器倒作業的子集合當 服器側作業(其被指定來處理該識別的ΗΤτρ -(步驟204)。例如,比較模组ι〇8可在傳輸合約 中的傳輸合約當中識別傳輸合約1 i 2 B。傳輸名 被指定來處理由HTTP方法符記123所識別的 (例如 PUT,GET 等)。 〇 為了識別一傳輪-合約,比較模組1 〇 8可比
方法符記123所識別的HTTP方法與在傳輸合笑 中每一傳輸合約之HTTP方法。例如,比較模 較由HTTP方法符記123識別的HTTP方法與 Π 4B。當比較模組108找到HTTP方法之間的 該相對應傳輸合約被指定來處理該HTTP方法 較模組可找出由HTTP方法符記123所識別的 符合HTTP方法114B,且因此傳輸合約112B 到处1路徑 各經U3B之 萬用字元運 :間的部份。 識別在不同 輪合約子集 括具有包含 其它傳輪合 中識別一词 f法)的步驟 子集合1 1 7 ‘約112B可 HTTP方法 較由HTTP 丨子集合1 1 7 組108可比 HTTP方法 一符合時, 。例如,比 HTTP方法 被指定來處 15 200841675 理由HTTP方法符記123識別的HTTP方法。 方法200包括因應於識別該識別的伺服器倒作業,而 引發對應於該識別的伺服器側作業之一伺股器實施的方法 以處理該客戶請求訊息之步驟(步騎2〇5)s例如,配送模 組1 0 7可引發方法1 0 9 B。配送模組丨〇 7可參照傳輸合約 11 2 B來存取伺服器方法參照11 6 B (參照方法1 〇 9 B)。使用 4司服器方法參照1 1 6B ’配送模組1 〇7則可傳送引發指令 126來實例化方法109B的一實例。 方法109B可將結果127傳回到網頁伺嚴器1〇6。網頁 伺服器在回應訊息1 2 8中可包括結果1 2 7,並傳送回應訊 息1 28到電腦系統1 0 1。網頁瀏覽器1 〇4可依此接收回應 訊息1 2 8與處理結果1 2 7。 本發明的具體實施例可利用多種不同格式化的服務合 約框架。以下的程式碼範例描述一服務合約框架的範例(其 中包括行號係做為參照,但非程式碼的一部份)。 1. [ServiceContract] 2. interface ISample2 3. { 4. [OperationContract] 5. v o i d A (); 6. 7. [OperationContract] 8. [HttpTransferContract(Path=,Toon)] 9. void B(); 16 200841675 [OperationContract] [HttpTransferContract( Path=,Too",Method="POST")] voidC(); [OperationContract] [HttpTransferContract( Path=’’*’’,Method=nPUT”)] v o i d D (); Ο [OperationContract] [HttpTransferContract( Path = ’Too/{0}/Bar·,)] voidE(); [OperationContract Action:’’*’,] void F(); 25. }
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 如上所述,該服務合約框架範例包括複數作業合約元 件(4,7,11,15,19及23行)° 一些作業合約係相關於 HttpTransferContract 元件(8,12,16,20 行)’其包含代表 一 URI路徑及/或一 HTTP方法之多個名稱/數值配對。每 一個作業合約亦相關於a ’其係包含可被引發的相對應飼 服器實施方法(5,9,13,17,21及24行)。比較模組108可 比較來自一接收URL的一 URI路徑及由一收到的HTTP方 法符記所識別的一 HTTP方法與所包含的名稱/數值配對, 17 200841675 以嘗試來識別一符合。當識別到一符合時,即可引發該相 對應的伺服器實施方法。 路徑可包括萬用字元(wildcard),其可符合在一伺服器 側名稱空間内複數URI。例如,16行包括一 路徑,其 代表整個伺服器側名稱空間。因此,在 16 行處的 HttpTransferContract將符合在一客戶請求中收到的任何 URI。17行包括一路徑”F〇〇/{0}/Bar” 。該路徑的“{〇}”部 份符合在該路徑之段落内的任何數值。於該路徑的該段落 内一實際接收的 URI中的數值亦可被提供給方法"v〇id E()'\ 。例如對於收到的URI"Foo/26/Bar",數值26可提供 給方法"void E()"。 多種預設及覆寫行為亦可在服務合約框架中實施。例 如,在預設上,所有作業可結合至HTTP GET,並符合等 於該伺服器實施的方法之名稱之一 URI路徑段落。因此, 在該範例服務合約框架中,指示一 HTTP GET及路徑“/A” 之一 HTTP請求可使得“void A()’’被引發。 如果沒有一指定的方法名稱/數值配對,一 HTTP GET 方法可做為一預設HTTP方法。例如,指示一 HTTP GET 及路徑“/foo”之一 HTTP請求可使得“void B()”被引發。 另一方面,代表一 HTTP PUT及路徑“/foo”之一 HTTP 請求可使得“void C〇”被引發。在行 8 及 12處的 HttpTransferContracts在初始時可包含在該請求的一傳輸 合約子集合中。在行12之HttpTransferContract來自該傳 輸合約子集合,即可在比較HTTP方法時即可被識別為該 18 200841675 指定的 HttpTransferContract。 指示一 HTTP POST及路徑“/x/y/z”之一 HTTP請求可 使得“void D()”被引發。在行 16 的 HttpTransferContract 由於萬用字元運算子“*,,將HTTP PUTS符合到任何URI路 徑。 指示一 HTTP GET及路徑“Foo/X/Bar”之一 HTTP請求 可使得“void E〇”被引發(預設行為可結合至HTTP GET)。 在行20的HttpTransferContract由於萬用字元運算子“{〇},, 付合在該中間段落中任何數值。數值X亦可傳給“void E()” 做為一參數。 指示一 HTTP GET及路徑“/x/y/z”之一 HTTP請求可使 得“void F()”被引發。因為所述的 HttpTransferContracts 皆 不符合URI路徑“x/y/z/,,及HTTP GET,在行23的作業合 約用於補捉任何其它不符合的請求。 本發明的具體實施例亦允許伺服器作業被參數化。以 下的程式碼範例描述以上允許一伺服器作業被參數化的伺 服器合約框架之行1 1 -1 3的範例。 [OperationContract] [HttpTransferContract Path = ’’Foo’’,Method =,,POST")] void C( int parameter 1 ? string parameter2 );
如上所述,該伺服器實施方法“void C”可利用一整數 及一字串參數被引發。因此,本發明之具體實施例允許一 進入的HTTP請求之部份由該伺服器視為參數值^由伺服 器實施方法傳回的資料物件可用類似的方式排列成HTTP 19 200841675 回應訊息。 因此,本發明的具體實施例提供一種一致的機制來僅 基於URI路徑及HTTP方法來配送HTTP請求到所指定的 祠服器實施的方法。也就是說,一 HTTP請求可被配送到 一指定的伺服器實施的方法,而不需要在HTTP請求内包 括額外的配送元資料(如在一 S〇AP波封中)。 但是,本發明之具體實施例亦允許相同合約定義(定義 該合約之程式化加工品)的用途同時由一簡單Ηττρ網路基 礎設施以及一以s〇Ap為基礎的網路化基礎設施來重新使 用。也就是說,不同的配送模型可疊層在相同合約定義之 上。例如,當在Ηττρ層處並無識別到符合時,該範例服 務合約框架之行23-24的預設行為基於在s〇AP層處的一 SOAP動作來配送HTTp請求。如上所述,使用萬用字元運 算子來符合任何其它不符合的請求。 但是,於SOAP層處更複雜的符合功能性於在HTTP 層未識別到符合時即可實施。例如,一 Ηττρ請求可包括 一些S〇AP配送資料,即使http層配送係在一伺服器處 利用(例如資料124可為SOAP配送資料)。因此,當在HTTP 層處未識別到一符合時(如僅基於UIU路徑及HTTp方 法),一網頁伺服器可處理該SOAP配送資料,以決定如何 配送該HTTP請求。 本發明可實施成其它特定的型式,其皆不背離本發明 之精神或基本特性。上述的具體實施例在各個態樣甲皆應 視為例示性而非限制性。因此本發明的範疇係由下附申請 20 200841675 專利範圍所指示,而非由前述的說明。所有在申請專利 圍之同等性下的意義與範圍内之改變皆要涵蓋在其範疇 内0 【圖式簡單說明】 為了說明可以取得本發明上述及其它優點與特徵的 法,上述簡短說明之本發明的更為特定之說明將參考在 屬圖式中所例示的特定具體實施例來呈現。請瞭解這些 式所示僅為本發明之典型的具體實施例,因此不應視為 範疇的限制,本發明將藉由使用附屬圖式利用額外特定 容及細節束加以描逑與解釋,其中: 第1圖為進行將客戶請求配送到適當的伺服器側方 之範例性電腦框架。 第2圖為用於將客戶請求配送到適當伺服器側方法 範例性方法的流程圖。 範 之 方 附 圖 其 内 法 之 【主要元件符瓮說明】 100 電Jg框架 101 客戶端電腦系統 102 伺服器電腦系統 103 網路 104 網頁瀏覽器 106 網頁伺服器 107 配送模組 108 比較模組 109 伺服器實施的方法 109A 方法 109B 方法 109C 方法 111 服務合約框架 11 2A 傳輸合約 21 200841675 1 12Β 傳輸合約 123 超文件傳輸協定方法符記 1 12C 傳輸合約 124 資料 1 13Β 統一資源識別碼路徑 126 引發指令 114Β 超文件傳輸協定方法 127 結果 116Β 伺服器方法參照 128 回應訊息 117 傳輸合約子集合 132 統一資源識別碼路徑 121 請求訊息 122 統一資源識別碼 〇 Ο 22

Claims (1)

  1. 200841675 十、申請專利範圍: 1. 於一電腦系統處,該電腦系統包括用於識 統之可用資源的一 URI名稱空間,一種垮 請求訊息配送到適當的伺服器側作業來處 求訊息之方法,該方法包含以下步驟: 接收一客戶請求訊息的步驟,其包括 統一資源識別碼(URI)及一超文件傳輸協 法識別碼,該客戶請求訊息之接收對該電 關於由HTTP方法識別碼所識別的HTTP 由請求URI識別的一資源上執行; 由包含在所接收之客戶請求訊息中的 URI路徑的步驟; 參照到一服務合約框架來識別有可能 的HTTP方法之伺服器側作業的一子集合 伺服器側作業之每一個子集合被指定來處 名稱空間(其括該擷取的 URI路徑)的 HTTP方法; 自伺服器側作業的子集合當中識別一 業的步驟,該伺服器側作業被指定來處 HTTP方法;及 因應於識別該識別的伺服器側作業之 發一伺服器實施的方法(其對應於該識別 作業)以處理該客戶請求訊息的步驟; 處理該客戶請求訊息,使得該識別的 別該電腦系 於箬一客戶 理該客戶請 至少一請求 定(HTTP)方 葉系旋指示 方法备要在 URI搦取一 處理該識別 的步驟,該 理包一 URI 一部份之一 伺股器側作 理該識別的 步騍,而引 的伺服器側 HTTP方法 23 200841675 在由該請求URI識別的資源上執行。 2· 如申請專利範圍第1項所述之方法,其中接收包括至 少一請求統一資源識別碼(URI)及超文件傳輸協定 (HTTP)方法識別碼的一客戶請求訊息的步驟包含接 收一客戶請求訊息,其請求該内容被傳回到一網頁瀏 覽器。 3· 如申請專利範圍第1項所述之方法,其中接收包括至 少一請求統一資源識別碼(URI)及超文件傳輸協定 (HTTP)方法識別碼的一客戶請求訊息的步驟包含接 收一客戶請求訊息,其在該電腦系統處請求利用包括 在該客戶訊息請求中的資料來更新。 4. 如申請專利範圍第1項所述之方法,其中接收包括至 少一請求統一資源識別碼(URI)及超文件傳輸協定 (HTTP)方法識別碼的一客戶請求訊息的步驟包含接 收一客戶請求訊息之步驟,其中包括一 HTTP方法符 記,以識別自 OPTIONS,GET,HEAD,POST,PUT, DELETE,TRACE,CONNECT 當中選出的一 HTTP 方 法。 5. 如申請專利範圍第1項所述之方法,其中自包括在該 接收的客戶請求訊息中的URI擷取一 URI路徑的步驟 包含自曾在一網頁瀏覽器處收到的一 URI中擷取一 URI路徑,然後傳送到該電腦系統之步驟。 6. 如申請專利範圍第1項所述之方法,其中參照到一服 務合約框架以識別有可能處理該識別的HTTP方法之 24 200841675 伺服器側作業的一子集合之步驟包含 路徑符合於包括在該服務合約框架中 約的URI路徑之步驟。 7. 如申請專利範圍第6項所述之方法, URI路徑符合於包括在該服務合約框 輸合約的URI路徑之步驟包含將該擷 合於包括在一傳輸合約的URI路徑中 子,該萬用字元運算子經配置以符合 少一段落中任何數值。 8 · 如申請專利範圍第1項所述之方法, 務合約框架以識別伺服器側作業的一 含: 一參照到在HTTP請求與伺服器」 資料中宣告式地指定)之間一或多項對 一檢查該元資料以識別可能處理 方法之一或多項伺服器側作業的步驟 9. 如申請專利範圍第1項所述之方法, 器側作業的子集合當中識別一伺服g 定來處理該識別的 HTTP方法)的步 HTTP方法識別碼所識別的該 HTTP 在該服務合約框架中一傳輸合約的該 驟。 1 0.如申請專利範圍第1項所述之方法, 側作業的子集合當中識別一伺服器相 將該擷取的URI 一或多項傳輸合 其中將該擷取的 架中一或多項傳 取的URI路徑符 一萬用字元運算 該URI路徑的至 其中參照到一服 子集合之步驟包 ,施方法(其在元 映的步驟;及 該識別的 HTTP 〇 其中自由該伺服 !側作業(其被指 驟包含一將由該 方法符合於包括 HTTP方法的步 其中由該伺服器 4作業(其被指定 25 200841675 來處理該識別的 HTTP方法)的步驟包含一識別與該 URI路徑具有相同名稱的一伺服器實施方法的步驟。 11.如申請專利範圍第1項所述之方法,其中引發對應於 該識別的伺服器側作業之一伺服器實施方法的步驟包 含一將内含在該客戶請求訊息中做為參數的數值提供 給該伺服器實施的方法之步驟。 Ο
    12 ·如申請專利範圍第1項所述之方法,另包含將引發該 伺服器實施的方法之結果傳回到曾傳送該客戶請求訊 息之客戶。 1 3 · —種於一電腦系統處使用的電腦程式產品,該電腦系 統包括一 URI名稱空間,其用於識別該電腦系統的可 用資源,該電腦程式產品用於實施一種將一客戶請求 訊息配送到適當的伺服器側作業來處理該客戶請求訊 息的方法,該電腦程式產品包含一或多個電腦可讀取 媒體,其上已經儲存有電腦可執行指令,其在當由一 處理器執行時可使得一電腦系統執行以下步驟: 接收一客戶請求訊息,其包括至少一請求統一資 源識別碼(URI)及一超文件傳輸協定(HTTP)方法識別 碼,該客戶請求訊息之接收對該電腦系統指示關於由 HTTP方法識別碼所識別的HTTP方法係要在由請求 URI識別的一資源上執行; 由包含在所接收之客戶請求訊息中的URI擷取一 URI路徑; 參照到一服務合約框架來識別有可能處理該識別 26 200841675 的HTTP方法之伺服器側作業的一子集合,該伺服器 側作業之每一個子集合被指定來處理一 URI名稱空間 (其包括該擷取的URI路徑)的一部份之一 HTTP方法; 在伺服器側作業的子集合當中識別一伺服器側作 業,該伺服器側作業被指定來處理該識別的HTTP方 法;及
    14. Ο 15. 因應於識別該識別的伺服器侧作業之步驟,而引 發一伺服器實施的方法(其對應於該識別的伺服器側 作業)以處理該客戶請求訊息。 如申請專利範圍第1 3項所述之電腦程式產品,其中在 當執行電腦可執行指令時,使得該電腦系統接收一客 戶請求訊息,其包括至少一請求統一資源識別碼(URI) 及超文件傳輸協定(HTTP)方法識別碼,其包含當執行 電腦可執行指令時,使得該電腦系統接收一客戶請求 訊息,其中包括一 HTTP方法符記,以識別自OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT當中選出的一 HTTP方法。 如申請專利範圍第1 3項所述之電腦程式產品,其中在 當執行電腦可執行指令時使得該電腦系統參照到一服 務合約框架以識別可能處理該識別的HTTP方法之一 伺服器側作業的子集合,包含在當執行電腦可執行指 令時使得該電腦系統將該擷取的URI路徑符合於包括 在該服務合約框架中一或多個傳輸合約的URI路徑。 如申請專利範圍第1 5項所述之電腦程式產品,其中在 27 16. 200841675 17. Ο 當執行電腦可執行指令時使得該電腦系統將該擷取的 URI路徑符合於包括在該服務合約框架中一或多個傳 輸合約的URI路後包含在當執行電腦可執行指令時使 得該電腦系统將該擷取的URI路徑符合於包括在一傳 輸合約的URI路徑中一萬用字元運算子,該萬用字元 運算子經配置以符合該URI路徑的至少一段落之任何 數值。 如申請專利蕤圍第1 3項所述之電腦程式產品,其中在 當執行電腦可執行指令時使得該電腦系統參照到一服 務合約框架來識別一飼服器側作業的子集合,其包含 在當執行電垂可敦行指令時使得該電腦系統執行以下 步驟: 參照到在HTTP請求與伺服器實施方法(其在元資 料中宣告式地指定)之間一或多項對映;及 檢查該元資料以識別可能處理該識別的HTTP方 法之一或多項伺服器側作業。 g , 18. 如申請專利篇圍第1 3項所述之電腦程式產品,其中在 當執行電腦可執行指令時使得該電腦系統由該伺服器 側作業的子集合當中識別一伺服器側作業(其被指定 來處理該識別的HTTP方法)包含在當執行電腦可執行 指令時使得該電臈系統將由該HTTP方法識別碼所識 別的該HTTP方法符合於包括在該服務合約框架中一 傳輸合約的HTTP方法。 19. 如申請專利範圍第1 3項所述之電腦程式產品,其中在 28 200841675 當執行電腦可執行指令時使得該電膘系統引發對應於 該識別的伺服器側作業之一伺嚴器實施的方法包含在 當執行電腦可執行指令時使得該電番系统將内含在該 客戶請求訊息中做為參數的數僅提俣給該伺服器實施 的方法。 2 0 . —種電腦系統,包含: 一或多個處理器; 系統記憶體;及 一或多個在其上已經儲存代表一配送模組的電腦 可執行指令之電腦可讀取媒體,該配送模組經配置以 將HTTP請求配送到適當的伺厫器實施方法,其中該 電腦可執行指令當由一處理器執行時使得該配送模組 來執行以下步驟: 接收一客戶請求訊息,其包括至少一請求統一資 源識別碼(URI)及一超文件傳輸協定(HTTP)方法識別 碼,該客戶請求訊息之接收指示給該電臈系統關於由 HTTP方法識別碼所識別的HTTP方法係要在由請求 URI識別的一資源上執行; 由包含在所接收之客戶請求訊息中的URI擷取一 URI路徑; 參照到一服務合約框架來識別有可能處理該識別 的HTTP方法之伺服器側作業的一子集合,該伺服器 側作業之每一個子集合被指定來處理一 URI名稱空間 (其包括該擷取的URI路徑)的一部份之一 HTTP方法; 29 200841675 自伺服器側作業的子集合當中識別一 業,該伺服器側作業被指定來處理該識別 法;及 因應於識別該識別的伺服器側作業之 發一伺服器實施的方法(其對應於該識別 作業)以處理該客戶請求訊息。 服器側作 HTTP 方 驟,面引 伺服器側
    L) 30
TW097102894A 2007-02-23 2008-01-25 Dispatching client requests to appropriate server- TWI354475B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/678,522 US7657591B2 (en) 2007-02-23 2007-02-23 Dispatching client requests to appropriate server-side methods

Publications (2)

Publication Number Publication Date
TW200841675A true TW200841675A (en) 2008-10-16
TWI354475B TWI354475B (en) 2011-12-11

Family

ID=39710436

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097102894A TWI354475B (en) 2007-02-23 2008-01-25 Dispatching client requests to appropriate server-

Country Status (3)

Country Link
US (1) US7657591B2 (zh)
TW (1) TWI354475B (zh)
WO (1) WO2008103565A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281173A1 (en) * 2009-05-01 2010-11-04 Microsoft Corporation Delegated administration for remote management
US8700803B2 (en) * 2009-06-03 2014-04-15 Netcordant, Inc. Web page optimization
US9652552B2 (en) * 2010-12-14 2017-05-16 Facebook, Inc. Dialog server
US8903884B2 (en) * 2011-02-21 2014-12-02 Microsoft Corporation Multi-tenant services gateway
US9973398B1 (en) * 2011-10-31 2018-05-15 Reality Analytics, Inc. System and method for discriminating remote site origination of communication signals transmitted through a network based on envelope characteristics
US8984124B2 (en) * 2011-11-30 2015-03-17 Microsoft Technology Licensing, Llc System and method for adaptive data monitoring
US9667704B1 (en) * 2014-04-26 2017-05-30 Google Inc. System and method for classifying API requests in API processing systems using a tree configuration
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
ES2900999T3 (es) 2015-07-16 2022-03-21 Quantum Metric Inc Captura de documentos utilizando codificación delta basada en el cliente con un servidor
CN112565337B (zh) * 2020-11-06 2022-09-30 北京奇艺世纪科技有限公司 请求传输方法、服务端、客户端、系统及电子设备
CN114780216B (zh) * 2022-04-18 2023-06-16 湖南长银五八消费金融股份有限公司 任务调度方法、装置、计算机设备和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5930472A (en) * 1998-04-29 1999-07-27 Motorola, Inc. Method and apparatus in a wireless communication system for splitting a browser functionality between a wireless client and an infrastructure portion
US6629127B1 (en) * 1999-07-26 2003-09-30 Microsoft Corporation Methods and systems for processing HTTP requests
US6654796B1 (en) * 1999-10-07 2003-11-25 Cisco Technology, Inc. System for managing cluster of network switches using IP address for commander switch and redirecting a managing request via forwarding an HTTP connection to an expansion switch
US7240100B1 (en) * 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6826626B1 (en) * 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US6961766B2 (en) * 2001-04-24 2005-11-01 Oracle International Corp. Method for extracting personalization information from web activity
US20040030788A1 (en) * 2002-05-15 2004-02-12 Gaetano Cimo Computer message validation system
US20040179035A1 (en) * 2003-03-13 2004-09-16 International Business Machines Corporation Group administration of universal resource identifiers with asynchronous playback
US7266827B1 (en) * 2003-10-06 2007-09-04 Unisys Corporation Exposing an application object model to web-based clients via object model traversal
US7448047B2 (en) * 2004-04-29 2008-11-04 Sybase, Inc. Database system with methodology for providing stored procedures as web services
US7519684B2 (en) * 2004-09-28 2009-04-14 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
US20080144655A1 (en) * 2006-12-14 2008-06-19 James Frederick Beam Systems, methods, and computer program products for passively transforming internet protocol (IP) network traffic

Also Published As

Publication number Publication date
US20080208979A1 (en) 2008-08-28
TWI354475B (en) 2011-12-11
US7657591B2 (en) 2010-02-02
WO2008103565A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
TW200841675A (en) Dispatching client requests to appropriate server-side methods
TWI387933B (zh) 用於安全模組間通訊機制之方法及裝置
Daigneau Service Design Patterns: fundamental design solutions for SOAP/WSDL and restful Web Services
CN106464746B (zh) 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统
WO2016127793A1 (zh) 消息发送方法、装置、系统和服务器
US10423459B1 (en) Resource manager
JP2019537768A5 (zh)
EP3028437B1 (en) Messaging api over http protocol to establish context for data exchange
US9053136B2 (en) Systems and methods for identifying contacts as users of a multi-tenant database and application system
CN104022945B (zh) 在客户端中实现即时通讯的方法和装置
JP2005505051A (ja) クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
CN107431630A (zh) 高度可扩展、容错的远程访问架构和与之连接的方法
JP2008533784A5 (zh)
CN105915529B (zh) 一种报文生成方法及装置
CN109417552A (zh) 用于执行安全通信的方法和工业计算装置
CN103782278B (zh) 用于提供在中间件或其它环境中使用的动态调取和服务界面的系统和方法
US20150039675A1 (en) Messaging over http protocol for data exchange
US20150154617A1 (en) Determining leads based on web site interactions and browser sessions
US9350738B2 (en) Template representation of security resources
CN109150621A (zh) 监控业务流程的方法、装置、计算机设备及存储介质
CN105634929A (zh) 一种基于web网页的即时通信方法及装置
WO2014026542A1 (zh) 即时通信应用的实现方法及系统、与设备
US10217158B2 (en) Multi-factor routing system for exchanging business transactions
US20210334279A1 (en) On-demand data ingestion system and method
CN109450770A (zh) 服务执行方法、装置、计算机设备及存储介质

Legal Events

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