TWI354475B - Dispatching client requests to appropriate server- - Google Patents
Dispatching client requests to appropriate server- Download PDFInfo
- Publication number
- TWI354475B TWI354475B TW097102894A TW97102894A TWI354475B TW I354475 B TWI354475 B TW I354475B TW 097102894 A TW097102894 A TW 097102894A TW 97102894 A TW97102894 A TW 97102894A TW I354475 B TWI354475 B TW I354475B
- Authority
- TW
- Taiwan
- Prior art keywords
- uri
- http
- transmission
- request message
- contract
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols 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
1354475 九、發明說明: 【發明所屬之技術領域】 本發明關於將客戶請求配送到適當伺服器側的方法。 【先前技術】 電腦系統與相關科技會影響社會的許多層面。 只際 上’電腦系統處理資訊的能力已經轉變了我們生活及 <作 的方式。現在電腦系統經常執行在電腦系統發展之前 執行的多種工作(例如文字處理、排程及會計等近年來 電腦系統彼此耗合’並輕合其它電子裝置,以同時形成有 線及無線電腦網路’在其中該電腦系統與其它電子裝置可 傳遞電子資料。因此,許多運算工作的效能即分散到一此 不同的電腦系統及/或一些不同的運算組件》 一種常用的以網路為基礎之通信型式為在全球資訊網 (WWW,“Worldwide Web”)上交換電子訊息。在WWW上的 内容基本上係以一客戶端/伺服器模型來存取。一客戶端電 腦系統的網頁瀏覽器傳送一請求而由“網頁伺服器”存取内 容’或提供内容到網頁伺服器》對於WWW的請求常常使 用超文件傳輸協定(HTTP, “Hypertext Transfer Protocol”) 來傳送(以下稱之為HTTP請求)。 一 HTTP請求基本上包括在一請求URL之後至少一方 法符記。一方法符記指示一 HTTP Verb(或方法),例如像 是GET、POST、PUT等,其係要在由該請求URL所識別 的資源上執行。 5 1354475 一請求URL基本上包括一協定指標部份、一網域名稱 部份、一路徑部份及一資源部份的某種紐合。協定指標部 份指示用於傳送該URL的協定(如HTTP、FTP等)》網域 部份識別一資源所位在的網域。路徑部份指示該資源在該 網域内的位置(或在該網域上的路徑)。資源部份指示在該 位置處是什麼(如一檔案,網頁等)。 因此,一方法符記及請求URL的組合即傳送到一網頁 飼服器,以指示網頁伺服器一 HTTP動詞動作要在由該請 求URL所識別的資源上執行。因此,當一 url識別一部 份資料(如一檔案或網頁),網頁伺服器可傳回該資料到網 頁瀏覽器(如回應於一 GET動詞),或根據該網頁瀏覽器的 請求更新該資料(如回應於一 PUT動詞)。但是,URL亦可 用於識別在一網頁伺服器處的服務。 在許多環境中,識別一服務的一請求URL並不需要直 接對應於要被執行來實施該服務的可執行碼。例如,一請 求URL可識別一網頁式的電子郵件應用,而不需要識別(且 在大部份案例中並不識別)要被執行來實施該網頁式的電 子卸件應用之可執行碼。再者’當一内含的請求Url識別 一服務時’網頁伺服器基本上缺少能配送一收到的Ηττρ 請求到可執行碼中一適當且相對應之部份的功能性。 因此’對於網頁伺服器已經至少開發出兩種不同的技 術來配送一 HTTP請求到適當的伺服器側可執行碼。例如 使用這些技術中任一種,一網頁伺服器可配送一 HTTp請 求’其包含一網頁式的電子郵件應用之一請求Url到用於 6 1354475 呈現一電子郵件介面及執行其它電子郵件相關功能的可執 行碼。 一種技術包括一開發者’其撰寫他們自已的管理器(或 提供—單一進入S到 API 1其對於所指定 的URL處理HTTP請求(例如檢查其中所包含的協定資 料)。當識別包含該指定的URL之一 HTTP請求時,該Αρι 配送該HTTP請求到該相對應及適當的可執行碼。
但是,配送碼基本上係以個別應用為基礎來開發,並 用於配送指定的URL到一指定的可執行碼(例如以_對_ 的對應性)。再者,配送碼基本上對於撰寫配送瑪的特定開 發者會有編碼的些微差異。因此,使用開發者撰寫的配送_ 碼之環境基本上並無一致的方式來配送HTTP請求。
配送碼),其可結合至一特定URL,並 可執行碼。例如,一開發者可產生一 另一種技術包括加入額外的元資料到一 HTTP請求(除 了由HTTP規格所定義的一 HTTP請求之部份之外,例如 像是一方法符記及請求URL)。例如,配送元資料可被插入 到簡單物件存取協定(SOAP, "Simple Object Access Protocol”)波封,然後該簡單物件存取協定連同一方法符記 及請求URL —併被包含在一 HTTP請求的主體中。收到這 種HTTP請求的網頁伺服器接著可處理該額外的配送元資 料(如SOAP動作),以決定該HTTP請求將如何被配送到 網頁伺服器處的可執行碼。 【發明内容】 1354475
本發明延伸至用於將客戶請求配送到適當伺服器側 方法的方法、系統及電腦程式產品。一伺服器電腦系統 收一客戶請求訊息,其中包括至少一請求統一資源識別 (URI,“Uniform Resource Identifier”)及一超文件傳輸協 (HTTP)方法識另ij碼。收到該客戶請求訊息指示該伺服器 腦系統由HTTP方法識別碼所識別的HTTP方法係要在 該請求URI識別的一資源上執行。 伺服器電腦系統由包含在所接收之客戶請求訊息中 URI擷取一 URI路徑。伺服器電腦系統稱為一服務合約 架,以識別有可能處理該識別的HTTP方法之伺服器側 業的子集合。該伺服器側作業的每一個子集合係指定來 於伺服器電腦系統(其包括該擷取的URI路徑)的一 URI 稱空間之一部份處理一HTTP方法》 伺服器電腦系統由伺服器側作業的子集合當中識別 飼服器側作業’該伺服器側作業被指定來處理該識別 HTTP方法。伺服器電腦系統因應於識別該識別的伺服 側作業,而引發對應於該識別的伺服器側作業之一伺服 實施的方法以處理該客戶請求訊息。 此發明内容係用來介紹在一簡化型式中選出的觀念 其在以下的實施方式中會進一步說明。此發明内容說明 非要識別所主張之標的的關鍵特徵或基本特徵,也並非 做為輔助決定所主張之標的的範鳴。 本發明額外的特徵與優點將在以下的說明當中提出 而部份將可由說明當中瞭解’或可由實施本發明來獲悉 之 接 碼 定 電 由 的 框 作 對 名 的 器 器 並 要 8 1354475 本發明的特徵與優點將藉由在下附申請專利範圍中特定指 出的元件及組合進行瞭解與取得。本發明這些舆其它特徵 將藉由以下的說明及下附申請專利範圍更為顯而易見,或 可由此下提出之本發明的實施而得知。 【實施方式】
本發明延伸至用於將客戶請求配送到適當伺服器側之 方法的方法、系統及電腦程式產品。一词服器電腦系統接 收一客戶請求訊息,其中包括至少一請求統一資源識別瑪 (URI,“Uniform Resource Identifier”)及一超文件傳輸協定 (HTTP)方法識別碼。收到該客戶請求訊息指示該祠服器電 腦系統由HTTP方法識別碼所識別的HTTP方法係要在由 該請求URI識別的一資源上執行。 服器電腦 取一 URI 識別有可 集合。該 服器電腦 間之一部 服器電腦 理該識別 統因應於 別的伺服 求訊息。 祠 URI擷 架,以 業的子 於該伺 名稱空 Ί司 定來處 電腦系 於該識 客戶請 —,5«, 路徑。飼服器電腦系統稱為一服務 能處理該識別的HTTP方法之飼服 伺服器側作業的每一個子集合係指 系統(其包括該擷取的URI路徑)的 份處理'HTTP方法。 系統由伺服器側作業的子集合當中 的Η T T P方法之一词服器側作業。 識別該識別的伺服器側作業,而引 器側作業之一伺服器實施的方法以 9 1354475
本發明的具體實施例可包含一特殊目的或通用目的之 電滕’其中包括電腦硬體,如以下的詳細說明。在本發明 範脅内之具體實施例亦包括電腦可讀取媒體,用於承載或 包含儲存於其中的電腦可執行指令或資料結構。這種電鹿 可讀取媒體可為任何可用的媒體,其可由一通用或特殊目 的電腦進行存取。藉由範例(而非限制)’電腦可讀取媒體 可包含實體(或可記錄式)電腦可讀取儲存媒體,例如 RAM、ROM、EEPROM、CD-ROM或其它光碟健存元、磁 碟儲存元或其它磁性儲存裝置,或任何可用電腦可執行指 令或資料結構型式儲存所想要的程式碼構件之其它媒體, 並可由一通用或特殊目的電腦進行存取。 在 一或多 電子資 線,或 時,該 此,藉 路或資 型式承 殊目的 電 用電腦 能或功 格式指 '"^ M ^ τ 螂峪」係定義為 個資料鏈結,其能夠在電腦系統及/或模組之間傳送 料。當資訊在一網路或其它通信連接(硬體連線、無 硬體連線及無線之組合)之上傳送或提供給一電腦 電腦可適當地看待該連接為一電腦可讀取媒體。因 由範例(而非限制),電腦可讀取媒體亦可包含一 料鏈結,其可用於以電腦 ^ ^ 執仃扣令或資料結構的 載或儲存所想要的程^ 、 電腦進行切。 通用或特 腦可執行指令包含例如指令及資料,其可使 、特殊目的電腦或特殊目的處理裝置來執 能群組。該電腦可執行指令例如可為二元化、、功 定’例如組合語言或甚至原始程式。雖然該標的: 10 經以特定於结構化特徵及/或方法性步驟的語言來描述,其 應瞭解到在下附申請專利範圍中所定義的標的並不必要地 限制於上逑之說明特徵或步驟。而是所描述的特徵與步騍 係以實施該等申請專利範圍之範例型式來揭示。 熟悉本技藝專業人士將可瞭解本發明可實施於具有多 種電堪系統级態之網路運算環境+,包括個人電滕、桌上 ,電堪1上型電腦、訊息處理器'掌上型裝置、多處理 盗系統、應用徵處理器或可程式化消費電子產品、網路 pc、微電珉 '主機型電腦、行動電話、pDA、呼叫器及類 似者。本發明亦可實施於分散式系統環境中,纟中透過一 網路所鍵結(不諸是I趙連線資料鏈結無線資料鍵結或 硬體連線及巍資料鏈結之組合)之本地及遠端電腦系統 β執行工作。在—分散式系統環境中,程式模組可以同 時位於本地及遠端記憶體儲存裝置中。 第1圖為進行將客戶請求配送到適當的伺服器側方法 之範例性電腦框架100。電腦框架100中所述為客戶端電 腦系統101及词服器電腦系統102»客戶端電腦系統101 與飼服器電滕系統1〇2連接至網路1〇3,其實際上可為任 何網路或其組合’例如像是區域網路(LAN,“Local area netW〇rk”)、廣域網路(WAN,“Wide area netw〇rk,,)及甚至網 際網路因此’客1戶端電腦系統101 IM司服器電腦系統 102’以及任何其它相連的電腦系統,皆可產生訊息相關的 資料’並交換訊息相關的資料(如網際網路協定(IP)資料段 及其匕利用IP資料段之較高層協定例如網路ι〇3上的傳 1354475 輸控制協定(TCP,“Transmission Control Protocol’’)、超文 件傳輪協定(HTTP, “Hypertext Transfer Protocol”)、簡單郵 件傳輸協定(SMTP, “Simple Mail Transfer Protocol”)等)。 如上所述,電滕系蘇101包括網頁潘I寬器1〇4。網頁 瀏覽器104可經配置以回應於所接收(為使用者輸入或自 動化)指令來請求及接收以網頁為主的内容。網頁潘j覽器 104亦可呈現網頁式的内容做為電腦系統ι〇1處的輸出。 為了請求内容或遠端以網頁為主之作業(更新遠端内容)之 效能,網頁瀏覽器1 04可傳送一請求訊息到一適當的網頁 伺服器。一請求訊息可包括識別一資源的統一資源識別瑪 (URI)。一請求訊息亦可包括識別一 HTTP方法之一 Ηττρ 方法符記(有時稱之為HTTP動詞),例如像是〇pTi〇Ns, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT 等,其係要在由URI所識別的資源上執行。 伺服器電腦系統102包括網頁伺服器1〇6.及词服器實 施的方法109。網頁飼服器106經配置以回應於來自客戶 端電腦系統的請求。網頁伺服器106可回麻沐似 w瑪於對内容的一 客戶請求(如一 HTTP GET)而將内容傳遞丨 rriuj到—客戶端電 腦系統。網頁伺服器106亦可回應於一客戶妹+、
I尸"嘴求(如HTTP PUT)進行在伺服器電腦系統102處内容的争批 文祈。網頁伺服 器106可引發在伺服器實施的方法109中的古4 r的方去,例如像 是方法109A、方法109B或方法109C,以庙β 从回懕於一客戶請 求取得内容或更新内容。網頁伺服器1〇6亦开总 小Γ管理一伺服 器側URI名稱空間,其用於識別伺服器雷腮&从 w电胞糸統1 〇2之可 (S ) 12 1354475
用資源。 網頁伺服器106包括配送模组 107及服務合約 111。服務合約框架111可包括HTTP請求舆在元資钭 告式地指定的管理器方法之間一或多個對映。該元資 由一配送機制(如配送模组 107)檢查,以決定如何導 接收的HTTP請求到一適當的管理器方法。如上所述 務合約框架111包括複數傳輸合約112A、112B、112C 每個傳輸合約對應於一指定的服務,並對映該伺服 URI名稱空間之一部份及一 HTTP方法到一相對應指 伺服器實施的方法。 配送模組1 0 8可識別及引發一適當的伺服器實 法,其被指定來回應於一客戶請求。為了識別一適當 服器實施方法,配送模组1 0 7可參照到服務合約框架 配送模組107包括比較模組108。比較模組108可比 URI路徑及/或來自一客戶請求訊息之一識別的HTTP 到服務合約框架1 1 1内傳輸合約的元件,以識別對應 URI路徑及/或該識別的HTTP方法之一特定傳輸合約 後配送模組1 07可對於該特定傳輸合約引發相對應的 伺服器實施方法。由引發一指定的伺服器實施方法的 (例如内容或請求更新内容之結果)可傳回到一客戶端 系統。 第2圖為用於將客戶請求配送到適當伺服器側方 範例性方法200的流程圖。該方法200將參考電腦框架 中的組件及資料加以說明》 框架 中宣 料可 引一 ,服 等。 器側 定的 施方 的伺 1 1 1 〇 較一 方法 於該 。然 指定 結果 電腦 法之 13 100 1354475 方法200包括接收一客戶請求訊息的步驟,其包括至 少一請求統一資源識別碼(URI)及一超文件傳輸協定 (HTTP)方法識別碼,該客戶請求訊息之接收對該接收電腦 系統指定關於由HTTP方法識別碼所識別的HTTP方法係 要在由請求URI識別的一資源上執行(步驟201)。例如, 網頁伺服器106可接收請求訊息121,其包括至少URI 122 及HTTP方法符記123。請求訊息121亦可視需要包括資 料124(例如其要用於更新在伺服器電腦系統1〇2處的内 容)。收到請求訊息1 2 1指示網頁伺服器丨〇6由HTTP方法 符記123識別的HTTP方法係要在由URI 1 22識別的一資 源上執行。 方法2 00包括由包括在該收到的客戶請求訊息中的 URI揭取一 URI路徑(步驟2〇2)。例如,網頁伺服器ι〇6 及/或配送模組1〇7可由URL 122擷取URI路徑132(URL 1 22之路徑部份)。URI路徑丨32可識別在伺服器電腦系統 1 0 2之U RI名稱空間内一特定資源。 方法200包括參照到一服務合約框架來識別有可能處 理該識別的HTTP方法之伺服器側作業的一子集合的步 驟’該词服器側作業之每一個子集合被指定來處理包括該 擷取的URI路徑之一 URI名稱空間的一部份之一 HTTp方 法(步雜2 0 3卜例如,比較模組丨〇 8可參照服務合約框架 ill來識別傳輪合約子集合117。比較模組ι〇8可比較URI 路徑1 32到服務合約i丨丨中每—傳輸合約的URI路徑,以 決定URI路徑132是否包含在每一傳輸合約的URI路徑之 14 C S ) 1354475
内(或符合)。 例如,比較模组108可比較URI路徑132 113B ’ α決定URI路徑132是否包含在謂禅 内(或符合)。在傳輸合約内的URI路徑可包括 算子(operator),其公開該伺服器側uri名稱空 因此,一單一傳輸合約的URI路徑可對應於 URI範圍内的資源之客戶請求。如上所述,傳 合117包括傳輸合約112B與U2C(並亦可包 (或符合)URI路徑132之一 URI路徑的任何 約)。 方法200包括自伺服器側作業的子集合當 服器側作業(其被指定來處理該識別的HTTP i (步驟204)。例如’比較模組i〇8可在傳輸合約 中的傳輸合約當中識別傳輸合約112B。傳輸合 被指定來處理由HTTP方法符記123所識別的 (例如 PUT, GET 等)。
為了識別一傳輸合約,比較模組1 0 8可比 方法符記123所識別的HTTP方法與在傳輸合約 中每一傳輪合約之HTTP方法。例如’比較模 較由HTTP方法符記123識別的HTTP方法與 114B。當比較模組108找到HTTP方法之間的 該相對應傳輪合約被指定來處理該HTTP方法 較模組可找出由HTTP方法符記123所識別的 符合HTTP方法114B,且因此傳輸合約112B 到URI路徑 卜徑1 1 3 B之 萬用字元運 間的部份。 識別在不同 輸合約子集 括具有包含 其它傳輸合 中識別一飼 7法)的步帮 子集合117 ’約1 1 2 B可 HTTP方法 較由HTTP 子集合11 *7 組1 0 8可& HTTP方法 一符合時, 。例如,比 HTTP方法 被指定來處 15 1354475 理由HTTP方法符記123識別的HTTP方法。 方法200包括因應於識別該識別的伺服器側作業,而 引發對應於該識別的伺服器側作業之一伺服器實施的方法 以處理該客戶請求訊息之步驟(步驟205)。例如,配送模 組1 0 7可引發方法1 0 9 B。配送模組1 0 7可參照傳輸合約 1 1 2B來存取伺服器方法參照1 1 6B(參照方法1 09B)。使用 伺服器方法參照 11 6B,配送模組1 07則可傳送引發指令 126來實例化方法109B的一實例。
方法109B可將結果127傳回到網頁伺服器106。網頁 伺服器在回應訊息128中可包括結果127,並傳送回應訊 息1 28到電腦系統1 0 1。網頁瀏覽器1 04可依此接收回應 訊息1 2 8與處理結果1 2 7。 本發明的具體實施例可利用多種不同格式化的服務合 約框架。以下的程式碼範例描述一服務合約框架的範例(其 中包括行號係做為參照,但非程式碼的一部份)。 1 . [ServiceContract]
2 . interface ISample2 [OperationContract] v o i d A (); 6. 7. 8. 9.
[OperationContract] [HttpTransferContract(Path = 'Too")] void B(); 16 1354475 10. 11. [OperationContract] 12. [HttpTransferContract( Path='Too",Method="POST")] 13. voidC(); 14. 15. [OperationContract] 16. [HttpTransferContract( Path="*",Method="PUT")] 17. voidD(); 18. 19. [OperationContract] 20. [HttpTransferContract( Path = 'To〇/{〇}/Bar")] 21. voidE(); 22. 23. [OperationContract Action = "*"] 24. void F(); 25. }
如上所述,該服務合約框架範例包括複數作業合約元 件(4,7,11,15,19及23行)。一些作業合約係相關於 HttpTransferContract 元件(8,12,16,20 行),其包含代表 一 URI路徑及/或一 HTTP方法之多個名稱/數值配對。每 一個作業合約亦相關於a ’其係包含可被5丨發的相對應伺 服器實施方法(5, 9, 13, 17, 21及24行)。比較模組108可 比較來自一接收URL的一 URI路徑及由一收到的HTTP方 法符記所識別的一 HTTP方法與所包含的名稱/數值配對, 17 1354475 以嘗試來識別一符合。當識別到一符合時,即可引發該相 對應的伺服器實施方法。 路徑可包括萬用字元(wildcard),其可符合在一伺服器 側名稱空間内複數URI。例如,16行包括一 路徑,其 代表整個伺服器側名稱空間。因此,在 16行處的 HttpTransferContract將符合在一客戶請求中收到的任何 URI» 17行包括一路徑"Foo/{0}/Bar” 。該路徑的“{0}’’部
份符合在該路徑之段落内的任何數值。於該路徑的該段落 内一實際接收的 URI中的數值亦可被提供給方法"void 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及珞徑“/f00”之一 HTTP 請求可使得“void C〇”被引發。在行 8及12處的 HttpTransferContracts在初始時可包含在該請求的一傳輸 合約子集合中。在行12之HttpTransferContract來自該傳 輸合約子集合,即可在比較HTTP方法時即可被識別為該 C S :) 18 1354475 指定的 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的作業合 約用於補捉任何其它不符合的請求。
本發明的具體實施例亦允許伺服器作業被參數化。以 下的程式碼範例描述以上允許一伺服器作業被參數化的词 服器合約框架之行11-13的範例。 [OperationContract] [HttpTransferContract Path = "Foo",Method = "POST”)] void C( int parameter 1,string parameter2 );
如上所述,該伺服器實施方法“void C”可利用一整數 及一字串參數被引發。因此,本發明之具體實施例允許— 進入的HTTP請求之部份由該伺服器視為參數值。由伺服 器實施方法傳回的資料物件可用類似的方式排列成HTTP 19 1354475 回應訊息。 因此,本發明的具體實施例提供一種一致的機制來僅 基於URI路徑及HTTP方法來配送HTTP請求到所指定的 伺服器實施的方法。也就是說,一 HTTP請求可被配送到 一指定的伺服器實施的方法,而不需要在HTTP請求内包 括額外的配送元資料(如在一 SOAP波封中)。
但是,本發明之具體實施例亦允許相同合約定義(定義 該合約之程式化加工品)的用途同時由一簡單HTTP網路基 礎設施以及一以SOAP為基礎的網路化基礎設施來重新使 用。也就是說,不同的配送模型可疊層在相同合約定義之 上。例如,當在HTTP層處並無識別到符合時,該範例服 務合約框架之行23-24的預設行為基於在SOAP層處的一 SOAP動作來配送HTTP請求。如上所述,使用萬用字元運 算子來符合任何其它不符合的請求》
但是,於SOAP層處更複雜的符合功能性於在HTTP 層未識別到符合時即可實施。例如,一 HTTP請求可包括 一些SOAP配送資料,即使HTTP層配送係在一伺服器處 利用(例如資料124可為SOAP配送資料)。因此,當在HTTP 層處未識別到一符合時(如僅基於 URI路徑及 HTTP方 法),一網頁伺服器可處理該SOAP配送資料,以決定如何 配送該HTTP請求。 本發明可實施成其它特定的型式,其皆不背離本發明 之精神或基本特性。上述的具體實施例在各個態樣中皆應 視為例示性而非限制性。因此本發明的範疇係由下附申請 20 (S ) 1354475
專利 範 圍 所 指 示 而 非 由 前 述 的 說明 〇 所 有 在 中 請 專 利 範 圍之 同 等 性 下 的 意 義 與 範 圍 内 之 改變 皆 要 涵 盍 在 其 範 之 内。 【圖 式 簡 單 說 明 ] 為 了 說 明 可 以 取 得 本 發 明 上 述及 其 它 優 點 與 特 徵 的 方 法, 上 述 簡 短 說 明 之 本 發 明 的 更 為特 定 之 說 明 將 參 考 在 附 屬圖 式 中 所 例 示 的 特 定 具 體 實 施 例來 呈 現 〇 請 瞭 解 這 些 圖 式所 示 僅 為 本 發 明 之 典 型 的 具 體 實施 例 > 因 此 不 應 視 為 其 範疇 的 限 制 本 發 明 將 藉 由 使 用 附屬 圖 式 利 用 額 外 特 定 内 容及 細 即 來 加 以 描 述 與 解 釋 其 中: 第 1 圖 為 進 行 將 客 戶 請 求 配 送到 適 當 的 饲 服 器 側 方 法 之範 例 性 電 腦 框 架 0 第 2 圖 為 用 於 將 客 戶 請 求 配 送到 適 當 词 服 器 側 方 法 之 範例 性 方 法 的 流 程 圖 0 【主 要 元 件 符 號 說 明 ] 100 電 腦 框 架 108 比 較 模 組 101 客 戶 端 電 腦 系 統 109 伺 服 器 實 施 的 方 法 102 伺 服 器 電 腦 系 統 109A 方 法 103 網 路 109B 方 法 1 04 網 頁 瀏 覽 器 1 09C 方 法 106 網 頁 祠 服 器 11 1 服 務 合 約 框 架 107 配 送 模 組 1 12A 傳 輸 合 約 21 1354475 1 12B 傳輸合約 123 超文件傳輸協定方法符記 112C 傳輸合約 124 資料 1 13B 統一資源識別碼路徑 126 引發指令 1 14B 超文件傳輸協定方法 127 結果 1 16B 伺服器方法參照 128 回應訊息 117 傳輸合約子集合 132 統一資源識別碼路徑 121 請求訊息 122 統一資源識別碼
22 (S )
Claims (1)
1354475 ί。啤/月IT日修正本 則屮。畔 十、申請專利範圍: 1 . 一種於包括用於識別該電腦系統之可用資源的一 URI 名稱空間的一電腦系統處用於將一客戶請求訊息配送 到一適當的伺服器側方法來處理該客戶請求訊息之方 法,該方法包含以下步驟:
接收一客戶請求訊息的步驟,該客戶請求訊息包 括至少一請求統一資源識別碼(URI)及一超文件傳輸. 協定(HTTP)方法識別碼,該客戶請求訊息之接收對該 電腦系統指示關於由該HTTP方法識別碼所識別的該 HTTP方法係要在由該請求URI識別的一資源上執行; 由包含在該所接收之客戶請求訊息中的該URI擷 取一 URI路徑的步驟,該擷取的 URI路徑識別在該 URI名稱空間内的一路徑;
存取一服務合約框架的步驟,該服務合約框架包 含:複數個傳輸合約,該等複數個傳輸合約的每一傳 輸合約指示:當一請求與該傳輸合約符合時,該等伺 服器實施方法的至少一者被召喚起,該等複數個傳輸 合約的至少一傳輸合約包含:識別在該URI名稱空間 内的該路徑之該URI路徑,及指示:當一第一請求與 該至少一傳輸合約符合時被召喚起的該等複數個伺服 器實施方法的一第一伺服器實施方法; 根據指定的行為,將該擷取的URI路徑和該HTTP 方法與該等複數個傳輸合約的每一者作比較,以識別 被召喚起以處理該客戶請求訊息的一指示的伺服器實 23 1354475 施方法之步驟,其包含以下步驟: 藉由將該擷取的URI路徑與包含一 URI路徑的 該至少一傳輸合約的每一者之該URI路徑作比較, 識別符合於該擷取的URI的該等複數個傳輸合約之 一子集合的傳輸合約之步驟;及
從該子集合的傳輸合約中識別符合於在該客戶 請求訊息中的該HTTP方法之一經識別的傳輸合約 之步驟;及 召喚起在該經識別的傳輸合約中指示的該伺服器 實施方法以處理該客戶請求訊息的步驟,處理該客戶 請求訊息,使得該識別的HTTP方法在由該擷取的URI 識別的資源上執行。 2. 如申請專利範圍第1項所述之方法,其中接收包括至 少一請求統一資源識別碼(URI)及一超文件傳輸協定 (HTTP)方法識別碼的一客戶請求訊息的步驟包含以 φ 下步驟:接收一客戶請求訊息,該客戶請求訊息請求 該内容被傳回到一網頁瀏覽器。 3. 如申請專利範圍第1項所述之方法,其中接收包括至 少一請求統一資源識別碼(URI)及一超文件傳輸協定 (HTTP)方法識別碼的一客戶請求訊息的步驟包含以 下步驟:接收一客戶請求訊息,該客戶請求訊息請求 在該電腦系統處利用包括在該客戶訊息請求中的資料 24 1354475 來更新。 4. 如申請專利範圍第1項所述之方法,其中接收包 少一請求統一資源識別碼…尺”及一超文件傳輸 (HTTP)方法識別瑪的一客戶請求訊息的步羯包 下步雜:接收一客戶請求訊息之步驟,該客戶請 息包括一 HTTP方法符記’以識別自OPTIONS, HEAD, POST, PUT, DELETE, TRACE, CONNECT 選出的一 HTTP方法D 5. 如申請專利範圍第1項所述之方法,其中自包括 接收的客戶請求訊息中的該URI擷取一 URI路徑 驟包含以下步驟:自在一網頁瀏覽器處接收到 URI中擷取一 URI路徑,然後傳送到該電腦系統 驟。 6. 如申請專利範圍第1項所述之方法,其中存取一 合約框架之步驟包含以下步驟:存取包含該等傳 約的複數個作業合約之步驟。 7. 如申請專利範圍第1項所述之方法,其中識別符 該棟取的URI路徑的一子集合的傳輸合約之步驟 以下步驟:將該擷取的URI路徑符合於包括在一 合約的該URI路徑t 一萬用字元運算子之步驟, 括至 協定 含以 求訊 GET, 當中 在該 的步 的該 之步 服務 輸合 合於 包含 傳輸 該萬 25 1354475 用字元運算子經配置以符合該URI路徑的至少一段落 (segment)中任何數值。 8. 如申請專利範圍第1項所述之方法,其中將該擷取的 URI和該HTTP方法與該等傳輸合約的每一者作比較 之步驟包含以下步驟:
一參照到在HTTP請求與伺服器實施方法之間的 —或多項對映的步驟,該伺服器實施方法在元資料中 宣告式地指定;及 一檢查該元資料以識別可能處理該識別的 HTTP 方法之一或多項伺服器側作業的步驟。 9. 如申請專利範圍第1項所述之方法,其中從該子集合 的傳輸合約中識別一傳輸合約的步驟,該傳輸合約對 應於在該客戶請求訊息中的該HTTP方法,包含以下 步驟:將在該客戶請求訊息的該HTTP方法符合於一 φ 傳輸合約的該HTTP方法的步驟。 10.如申請專利範圍第1項所述之方法,其中從該子集合 的傳輸合約中識別一傳輸合約的步驟,該傳輸合約對 應於在該客戶請求訊息中的該HTTP方法,包含以下 步驟:識別與該URI路徑具有相同名稱的一伺服器實 施方法的步驟。 26 1354475 11.如申請專利範圍第1項所述之方法,其中引發在該 識別的傳輸合約中指示的該伺服器實施方法的步驟 含以下步驟:將内含在該客戶請求訊息中做為參數 數值提供給該伺服器實施方法之步驟。
12.如申請專利範圍第1項所述之方法,更包含以下 驟:將引發該指示的伺服器實施方法之結果傳回到 送該客戶請求訊息之該客戶。 經 包 的 步 傳
13. 一種於一電腦系統處使用的電腦程式產品,該電腦 統包括一 URI名稱空間,該URI名稱空間用於識別 電腦系統的可用資源,該電腦程式產品用於實施一 將一客戶請求訊息配送到一適當的伺服器側方法來 理該客戶請求訊息的方法,該電腦程式產品包含一 多個電腦可讀取儲存媒體,其上已經儲存有電腦可 行指令,其在當由一處理器執行時可使得一電腦系 執行以下步驟: 接收一客戶請求訊息,其包括至少一請求統一 源識別碼(URI)及一超文件傳輸協定(HTTP)方法識 碼,該客戶請求訊息之接收對該電腦系統指示關於 該HTTP方法識別碼所識別的HTTP方法係要在由 請求URI識別的一資源上執行; 由包含在所接收之客戶請求訊息中的URI榻取 URI路徑,該擷取的URI路徑識別在該URI名稱空 系 該 種 處 或 執 統 資 別 由 該 間 27 1354475 内的一路徑;
存取一服務合約框架,該服務合約框架包含:複 數個傳輸合約,該等複數個傳輸合約的每一傳輸合約 指示:當一請求與該傳輸合約符合時,複數個伺服器 實施方法的至少一者被召喚起,該等複數個傳輸合約 的至少一傳輸合約包含:識別在該URI名稱空間内的 該路徑之該URI路徑,及指示:當一第一請求與該至 少一傳輸合約符合時被召喚起的該等複數個伺服器實 施方法的一第一伺服器實施方法; 根據定義的預設和覆寫行為,將該擷取的URI路 徑和該HTTP方法與該等複數個傳輸合約的每一者作 比較,以識別被召喚起的一指示的伺服器實施方法以 處理該客戶請求訊息,該步驟包含以下步驟:
藉由將該擷取的URI路徑與包含一 URI路徑的 該至少一傳輸合約的每一者之該URI路徑作比較, 識別符合於該擷取的URI的該等複數個傳輸合約之 一子集合的傳輸合約;及 從該子集合的傳輸合約中識別符合於在該客戶 請求訊息中的該 HTTP方法之一經識別的傳輸合 約;及 引發在該經識別的傳輸合約中指示的該伺服器實 施方法以處理該客戶請求訊息,處理該客戶請求訊息 使得該識別的HTTP方法在由該擷取的URI識別的資 28 1354475 源上執行。
14.如申請專利範圍第13項所述之電腦程式產品,其中在 當執行時使得該電腦系統接收包括至少一請求統一資 源識別碼(URI)及一超文件傳輸協定(HTTP)方法識別 碼的一客戶請求訊息的電腦可執行指令包含:當執行 時使得該電腦系統接收一客戶請求訊息的電腦可執行 指令,該客戶請求訊息包括一 HTTP方法符記,以識 別自 OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE,CONNECT當中選出的一 HTTP方法。 15. 如申請專利範圍第13項所述之電腦程式產品,其中在 當執行時使得該電腦系統參照到一存取一合約框架的 電腦可執行指令包含:在當執行時使得該電腦系統存 取複數個包含該傳輸合約的作業合約之電腦可執行指 令〇
16. 如申請專利範圍第13項所述之電腦程式產品,其中在 當執行時使得該電腦系統識別符合於該擷取的URI路 徑之一子集合的傳輸合約之電腦可執行指令包含:在 當執行時使得該電腦系統將該擷取的URI路徑符合於 包括在一傳輸合約的該URI路徑中一萬用字元運算子 之電腦可執行指令,該萬用字元運算子經配置以符合 該URI路徑的至少一段落之任何數值》 29 1354475 17.如申請專利範圍第13項所述之電腦程式產品,其中在 當執行時使得該電腦系統將該擷取的URI和該HTTP 方法與該傳輸合約的每一者作比較的電腦可執行指令 包含:在當執行時使得該電腦系統執行以下步驟的電 腦可執行指令:
參照到在HTTP請求與伺服器實施方法之間一或 多項對映,該伺服器實施方法在元資料中宣告式地指 定;及 檢查該元資料以識別可能處理該識別的HTTP方 法之一或多項伺服器側作業。 1 8.如申請專利範圍第1 3項所述之電腦程式產品,其中在 當執行時使得該電腦系統從該子集合的傳輸合約中識 別對應於在該客戶請求訊息中的該HTTP方法之一傳 輸合約的電腦可執行指令包含:在當執行時使得該電 φ 腦系統將在該客戶請求訊息中的該HTTP方法符合於 一傳輸合約的該HTTP方法。 19.如申請專利範圍第13項所述之電腦程式產品,其中在 當執行時使得該電腦系統引發在該經識別的傳輸合約 中指示的該伺服器實施方法的電腦可執行指令包含: 在當執行時使得該電腦系統將内含在該客戶請求訊息 中做為參數的數值提供給該伺服器實施方法之電腦可 30 1354475
執行指令。 2 0 . —種電腦系統,包含: 一或多個處理器; 系統記憶體,及 一或多個在其上已經儲存代表一配送模組的電 可執行指令之電腦可讀取媒體,該配送模組經配置 將HTTP請求配送到適當的伺服器實施方法,其中 電腦可執行指令當由一處理器執行時使得該配送模 來執行以下步驟: 接從一客戶請求訊息,該客戶請求訊息包括至 一請求統一資源識別碼(URI)、數個參數、及一超文 傳輸協定(HTTP)方法識別碼,該客戶請求訊息之接 指示給該電腦系統關於由HTTP方法識別碼所識別 該HTTP方法係根據該等參數在由該請求URI識別 一資源上執行; 由包含在所接收之客戶請求訊息中的該URI擷 一 URI路徑,該擷取的URI路徑識別在該URI名稱 間内的一路徑; 從該接收的客戶請求訊息擷取該等參數,該等 數係用於呈遞至一伺服器實施方法; 存取一服務合約框架,該服務合約框架包含: 數個傳輸合約,該等複數個傳輸合約的每一傳輸合 指示:當一請求與該傳輸合約符合時,複數個伺服 腦 以 該 組 少 件 收 的 的 取 空 參 複 約 器 31 1354475
實施方法的至少一者被召喚起,在該等複數個傳輸合 約的一第一傳輸合約包含:識別在該URI名稱空間内 的一路徑之一明確地指示的URI路徑,及指示:當一 請求與該第一傳輸合約符合時被召喚起的一第一伺服 器實施方法,在該等複數個傳輸合約的一第二傳輸合 約包含:具有一萬用字元運算子的一 URI路徑,及指 示:當一請求與該第二傳輸合約符合時被召喚起的一 第二伺服器實施方法,其中該萬用字元運算子建立 (carve out)該URI名稱空間的一部份,以使得該第二 傳輸合約可符合於識別從一範圍的不同UR的資源之 客戶請求; 根據定義的預設和覆寫行為,將該擷取的URI路 徑、該等擷取的參數、及該HTTP方法與該等包含該 第一和該第二傳輸合約之傳輸合約的每一者作比較, 以識別被召喚起的一指示的伺服器實施方法以處理該 客戶請求訊息,其包含以下步驟:
藉由將該擷取的URI路徑與包含一 URI路徑的 該至少一傳輸合約的每一者之該URI路徑作比較,識 別符合於符合於該擷取的 URI之一子集合的傳輸合 約,該傳輸合約包含該第一和該第二傳輸合約,其中 該擷取的URI路徑藉由將該擷取的URI路徑的一部份 符合於該萬用字元運算子而符合該第二傳輸合約;以 及 從該子集合的傳輸合約中識別符合於在該客戶 32 1354475 請求訊息中的該HTTP方法之至少二個傳輸-利用該定義的覆寫行為以從該至少二 約中選擇一適當的傳輸合約;以及 根據該選擇的參數,引發在該選擇的傳 指示的該伺服器實施方法以處理該客戶請求 理該客戶請求訊息,使得該識別的HTTP方 擷取的URI識別的資源上執行。 ^約; 個傳輸合 輸合約中 訊息*處 法在由該
33
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 TW200841675A (en) | 2008-10-16 |
TWI354475B true 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)
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)
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 |
-
2007
- 2007-02-23 US US11/678,522 patent/US7657591B2/en active Active
-
2008
- 2008-01-25 TW TW097102894A patent/TWI354475B/zh not_active IP Right Cessation
- 2008-02-08 WO PCT/US2008/053502 patent/WO2008103565A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US7657591B2 (en) | 2010-02-02 |
TW200841675A (en) | 2008-10-16 |
US20080208979A1 (en) | 2008-08-28 |
WO2008103565A1 (en) | 2008-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI354475B (en) | Dispatching client requests to appropriate server- | |
TWI387933B (zh) | 用於安全模組間通訊機制之方法及裝置 | |
CN106663002B (zh) | Rest服务源代码生成 | |
CN106156133B (zh) | 控制表单重复提交的方法、装置及系统 | |
CN102571932B (zh) | 为在线应用用户提供状态服务 | |
CN100578495C (zh) | 以透明方式公开计算机生成文档中嵌套数据的方法和系统 | |
US7711723B2 (en) | System and method for managing web applications | |
CN108322530A (zh) | 上下文环境信息的传递方法、装置、服务网关及存储介质 | |
CN1829224A (zh) | 使用遵从MAPI的邮件应用程序的Web服务处理 | |
US11502899B2 (en) | Dynamic product installation based on user feedback | |
CN108415710A (zh) | 在智能对话开发平台上发布、调用api的方法和系统 | |
CN103391312A (zh) | 资源离线下载方法及装置 | |
CN107656742A (zh) | 一种软件产品发布方法和装置 | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN111651140B (zh) | 基于工作流的服务方法及装置 | |
US7257819B1 (en) | Method and system for dispatching service requests to sub-applications | |
CN113965628A (zh) | 消息调度方法、服务器和存储介质 | |
CN104094299A (zh) | 从发布的日历检索可用性信息 | |
CN107291826A (zh) | 文件搜索处理方法及装置 | |
US20070255720A1 (en) | Method and system for generating and employing a web services client extensions model | |
CN116644250B (zh) | 页面检测方法、装置、计算机设备和存储介质 | |
CN103490985B (zh) | 一种图片消息的处理方法和装置 | |
JP2004246747A (ja) | 既存サービスのラッピング方法および装置 | |
CA2552651A1 (en) | A system and method for formatted inter-node communications over a computer network | |
EP3502925A1 (en) | Computer system and method for extracting dynamic content from websites |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |