TWI409645B - 通訊伺服器與其處理訊息之方法及電腦可讀媒體 - Google Patents
通訊伺服器與其處理訊息之方法及電腦可讀媒體 Download PDFInfo
- Publication number
- TWI409645B TWI409645B TW098117752A TW98117752A TWI409645B TW I409645 B TWI409645 B TW I409645B TW 098117752 A TW098117752 A TW 098117752A TW 98117752 A TW98117752 A TW 98117752A TW I409645 B TWI409645 B TW I409645B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- data
- server
- strings
- module
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Description
本發明係關於一種通訊伺服器以及利用此伺服器處理訊息的方法。
在網際網路通訊中應用層(application layer)上,有各式各樣的通訊協定。幾個廣為人知的範例為“超文件傳輸協定(HyperText Transfer Protocol,HTTP)”,“簡易電子郵遞協定(Simple Mail Transfer Protocol,SMTP)”,“對話啟動協定(Session Initiation Protocol,SIP)”等等。
而這些通訊協定大多數都是文本(text-based)協定,其優點之一在於具有較佳的擴充性與使用上的彈性。但相對地,當伺服器收到一個文本訊息時,必須花費相當的處理器資源來對此文本訊息進行剖析(parse),當訊息流量大時,處理器可能會無法負擔,甚至會造成通訊伺服器當機(crash)。尤其是在“對話啟動協定”中,一般來說,在伺服器處理一個訊息的時間中,約有25%花費在進行訊息的“剖析”,因此上述的問題在“對話啟動協定”的通訊中更顯得嚴重。
本發明一方面在於:僅針對某些訊息,進行訊息完整的“剖析”,但對於另一些訊息,則僅進行局部的“剖析”,因此可減輕通訊伺服器中處理器的負擔。特別是針對客戶端重送(retransmit)的訊息,僅進行局部的“剖析”。
本發明另一方面在於:判斷哪些訊息需要進行完整的“剖析”,而哪些訊息可以僅進行局部的“剖析”,而此判斷不一定與訊息的種類(method)或類別(class)有關。
本發明又一方面在於:儲存某些訊息被“完整剖析”後的剖析資料,而供其他僅被局部剖析的訊息引用。
本發明另一方面在於:對某些訊息僅進行局部的“剖析”,而根據“局部剖析”後所產生的剖析資料,查找預先儲存的剖析資料。
根據本發明一實施例,通訊網路伺服器包含局部剖析模組、儲存模組、與查找模組。局部剖析模組用以剖析一訊息中部份字串,而產生局部剖析資料。儲存模組供儲存預先剖析資料。查找模組根據局部剖析資料從此儲存模組中查找一對應預先剖析資料。此伺服器至少根據此對應預先剖析資料以發送訊息。
根據本發明另一實施例,通訊網路伺服器包含第一剖析模組、第二剖析模組、與判斷模組。第一剖析模組用以剖析一訊息中第一組字串,而產生第一剖析資料。第二剖析模組用以剖析此第一組字串以外之字串。判斷模組比對第一剖析資料與參考資料,以判斷是否產生一呼叫給該第二剖析模組。若判斷模組發出呼叫,則第二剖析模組因應呼叫,對訊息進行剖析而產生第二剖析資料。
本說明書中所提及的特色、優點、或類似表達方式並不表示,可以本發明實現的所有特色及優點應在本發明之任何單一的具體實施例內。而是應明白,有關特色及優點的表達方式是指結合具體實施例所述的特定特色、優點、或特性係包含在本發明的至少一具體實施例內。因此,本說明書中對於特色及優點、及類似表達方式的論述與相同具體實施例有關,但亦非必要。
此外,可以任何合適的方式,在一或多個具體實施例中結合本發明所述特色、優點、及特性。相關技術者應明白,在沒有特定具體實施例之一或多個特定特色或優點的情況下,亦可實施本發明。在其他例子中應明白,特定具體實施例中的其他特色及優點可能未在本發明的所有具體實施例中出現。
參考以下說明及隨附申請專利範圍或利用如下文所提之本發明的實施方式,即可更加明瞭本發明的這些特色及優點。
本說明書中「一具體實施例」或類似表達方式的引用是指結合該具體實施例所述的特定特色、結構、或特性係包括在本發明的至少一具體實施例中。因此,在本說明書中,「在一具體實施例中」及類似表達方式之用語的出現未必指相同的具體實施例。
熟此技藝者當知,本發明可實施為伺服器、電腦裝置、方法或作為電腦程式產品之電腦可讀媒體。因此,本發明可以實施為各種形式,例如完全的硬體實施例、完全的軟體實施例(包含韌體、常駐軟體、微程式碼等),或者亦可實施為軟體與硬體的實施形式,在以下會被稱為「電路」、「模組」或「系統」。此外,本發明亦可以任何有形的媒體形式實施為電腦程式產品,其具有電腦可使用程式碼儲存於其上。
一個或更多個電腦可使用或可讀取媒體的組合都可以利用。舉例來說,電腦可使用或可讀取媒體可以是(但並不限於)電子的、磁的、光學的、電磁的、紅外線的或半導體的系統、裝置、設備或傳播媒體。更具體的電腦可讀取媒體實施例可以包括下列所示(非限定的例示):由一個或多個連接線所組成的電氣連接、可攜式的電腦磁片、硬碟機、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟片(CD-ROM)、光學儲存裝置、傳輸媒體(例如網際網路(Internet)或內部網路(intranet)之基礎連接)、或磁儲存裝置。需注意的是,電腦可使用或可讀取媒體更可以為紙張或任何可用於將程式列印於其上而使得該程式可以再度被電子化之適當媒體,例如籍由光學掃描該紙張或其他媒體,然後再編譯、解譯或其他合適的必要處理方式,然後可再度被儲存於電腦記憶體中。在本文中,電腦可使用或可讀取媒體可以是任何用於保持、儲存、傳送、傳播或傳輸程式碼的媒體,以供與其相連接的指令執行系統、裝置或設備來處理。電腦可使用媒體可包括其中儲存有電腦可使用程式碼的傳播資料訊號,不論是以基頻(baseband)或是部分載波的型態。電腦可使用程式碼之傳輸可以使用任何適體的媒體,包括(但並不限於)無線、有線、光纖纜線、射頻(RF)等。
用於執行本發明操作的電腦程式碼可以使用一種或多種程式語言的組合來撰寫,包括物件導向程式語言(例如Java、Smalltalk、C++或其他類似者)以及傳統程序程式語言(例如C程式語言或其他類似的程式語言)。程式碼可以獨立軟體套件的形式完整的於使用者的電腦上執行或部分於使用者的電腦上執行,或部分於使用者電腦而部分於遠端電腦,或者全部於伺服器上執行。在後面的情況,伺服器可以任何形式的網路連接至使用者的電腦,包括區域網路(LAN)或廣域網路(WAN),或者也可利用外部電腦來做連結(例如利用網際網路服務提供者來連接至網際網路)。
於以下本發明的相關敘述會參照依據本發明具體實施例之系統、裝置、方法及電腦程式產品之流程圖及/或方塊圖來進行說明。當可理解每一個流程圖及/或方塊圖中的每一個方塊,以及流程圖及/或方塊圖中方塊的任何組合,可以使用電腦程式指令來實施。這些電腦程式指令可供通用型電腦或特殊電腦的處理器或其他可程式化資料處理裝置所組成的機器來執行,而指令經由電腦或其他可程式化資料處理裝置處理以便實施流程圖及/或方塊圖中所說明之功能或操作。
這些電腦程式指令亦可被儲存在電腦可讀取媒體上,以便指示電腦或其他可程式化資料處理裝置來進行特定的功能,而這些儲存在電腦可讀取媒體上的指令構成一製成品,其內包括之指令可實施流程圖及/或方塊圖中所說明之功能或操作。
電腦程式指令亦可被載入到電腦上或其他可程式化資料處理裝置,以便於電腦或其他可程式化裝置上進行一系統操作步驟,而於該電腦或其他可程式化裝置上執行該指令時產生電腦實施程序以達成流程圖及/或方塊圖中所說明之功能或操作。
其次,請參照圖1A至圖5,在圖式中顯示依據本發明各種實施例的系統、裝置、方法及電腦程式產品可實施的架構、功能及操作之流程圖及方塊圖。因此,流程圖或方塊圖中的每個方塊可表示一模組、區段、或部分的程式碼,其包含一個或多個可執行指令,以實施指定的邏輯功能。另當注意者,某些其他的實施例中,方塊所述的功能可以不依圖中所示之順序進行。舉例來說,兩個圖示相連接的方塊事實上亦可以同時執行,或依所牽涉到的功能在某些情況下亦可以依圖示相反的順序執行。此外亦需注意者,每個方塊圖及/或流程圖的方塊,以及方塊圖及/或流程圖中方塊之組合,可籍由基於特殊目的硬體的系統來實施,或者籍由特殊目的硬體與電腦指令的組合,來執行特定的功能或操作。
圖1A顯示根據本發明實施例之通訊系統100,系統100包含一或多個伺服器110以及一或多個客戶端裝置120((例如個人電腦、筆記型電腦、或行動電子裝置)。伺服器110以及客戶端裝置120之間以網路180連結,網路180可為任何類型的網路,例如網際網路、區域網路(LAN)、廣域網路(WAN)、虛擬私有網路(VPN)、公用交換電話網路(PSTN)等。伺服器110以及客戶端裝置120之間的通訊可經由直接硬線連接(例如連接埠)或定址連接來發生,其可利用任何佈線及/或無線傳輸方法之組合。再者,可使用習知的網路連接,例如環狀區域網路(Token Ring)、乙太網路、WiFi、或其他習知通訊標準。又再者,可藉由習知TCP,UPD,TLS,SCTP等傳輸層協定提供連接。此外,然而應了解,雖未繪示但其他硬體及軟體組件(例如額外電腦系統、路由器、防火牆等)可包含於網路180之中。此外,伺服器110較佳為代理伺服器(proxy server),但亦可為其他伺服器,例如轉向伺服器(Redirect Server)、註冊伺服器(Registrar Server)等等。
圖1B進一步顯示通訊系統100的實施例。在此實施例中,通訊系統100採用SIP協定,但熟此技藝者應可知,本發明亦可應用於例如“超文件傳輸協定(HyperText Transfer Protocol,HTTP)”,“簡易電子郵遞協定(Simp1e Mail Transfer Protocol,SMTP)”,其中伺服器110以及客戶端裝置120所傳遞的Request/Response訊息皆類似,且訊息中標頭與代碼亦雷同。少數差異在於在某些協定中,伺服器不會主動發出Request訊息。SIP訊息分為兩類,一類為要求(Request),另一類為回應(Response)。在RFC 3261中定義了六個基本SIP要求種類,如下所述:INVITE、ACK、BYE、CANCEL、REGISTER、OPTIONS等。
圖1B顯示客戶端UA1(使用者名稱為Danny)送出一個INVITE訊息來呼叫UA2(使用者名稱為Car1)。在SIP中,訊息包含字串(string)所組成的起始句(Start-line)、標頭(header)、或是SDP(Session Description Protocol)。一個SIP INVITE請求訊息舉例如下,其中標頭部分接續在起始句”INVITE sip:carl @aaal.com SIP/2.0”之後,而省略的SDP乃關於多媒體的格式,在此不加贅述。
伺服器110收到此INVITE請求訊息後,會去查詢UA2實際的位址,再把此INVITE請求訊息發送給UA2。若UA2收到此INVITE請求訊息,便會回送180RING與200 OK訊息給伺服器110,伺服器110再轉送給UA1,最後UA1可再透過伺服器110發送ACK訊息給UA2,而UA1與UA2則可建立通訊。此部份之細節可參考SIP協定,在此不多贅述。
但須注意的是,如圖1B所示,伺服器110在把INVITE訊息發送給UA2的過程中,可能因為封包遺失,使得UA2沒有收到INVITE訊息,因此也不會回傳180 RING以及200 OK等回應。而UA1因為沒有收到回應,會繼續地傳送重複的INVITE訊息給伺服器110,而伺服器110若無進行特別的處理,則必須花費額外的處理器資源,來剖析這實質上相同的INVITE訊息。以下將進一步說明伺服器110。
如圖2所示,伺服器110包含處理器111與儲存裝置113,除此之外,伺服器110亦包含匯流排、輸入/輸出介面、輸入/輸出裝置(例如鍵盤與顯示器)、記憶體、快取記憶體、通訊系統、伺服器軟體(皆未圖示)。處理器111可為一般通訊網路伺服器所使用之處理器,例如Intel公司的Xeon伺服器處理器(「XeonTM
」為Intel公司在美國及/或其他國家的註冊商標)或是AMD公司的Athlon或Opteron伺服器處理器(「AthlonTM
」與「OpteronTM
」為AMD公司在美國及/或其他國家的註冊商標),此外伺服器110可包含一或多個處理器111。儲存裝置113可包含一或更多儲存裝置、例如磁碟機或光碟機。於其他實施例,儲存裝置113可為硬碟、動態隨機存取記憶體(DRAM)、或快閃記憶體,亦可包含分散於例如區域網路(LAN)、廣域網路(WAN)、及儲存區域網路(SAN)(未圖示)之儲存裝置。處理單元111執行應用程式以提供第一剖析模組114、第二剖析模組115、判斷模組116、以及查找模組118,並可存取或讀寫儲存裝置113中的儲存模組117。
第一剖析模組114,又可稱為局部剖析模組,用以剖析伺服器所收到的訊息(例如前述的INIVITE請求訊息)中所有字串中一部份的字串。習知伺服器中的剖析模組為了要確保訊息的處理或發送作業正確無誤,以及確保訊息接收者(例如圖1B中的客戶端UA2)可對訊息做正確的解讀,需要對訊息中大部份的字串加以剖析,例如上述範例SIP訊息中起始句與標頭中的所有字串。此處所謂“剖析”可包含例如,但不限於,將標頭剖析為鍵值對(key- value pairs)架構的資料。即剖析標頭時,以標頭之每一項目或欄位為一鍵值對之鍵,以該項目或欄位其後之值為該鍵值對之值。例如剖析”Via:SIP/2.0/UDP server.bbb.com;branch=z9hG4bKfw19b”後,Via為一鍵值對之鍵,而”SIP/2.0/UDP server.bbb.com;branch=z9hG4bKfw19b”該鍵值對之值。相較之下,第一剖析模組114所剖析的字串乃少於習知伺服器中的剖析模組所剖析的字串,而第一剖析模組114所剖析的字串而得到的剖析資料(又稱局部剖析資料),可能不足以讓伺服器110確保訊息的處理或發送作業正確無誤或確保訊息接收者可對訊息做正確的解讀,但相對地,第一剖析模組114比起習知伺服器中的剖析模組,也耗費較少伺服器110的處理器資源。以上述SIP IN VITE請求訊息為例,第一剖析模組114可僅對Branch ID值(branch=z9hG4bKfw19b)與Request URI值(sip:carl@aaal.com)進行剖析,或是額外再對”From”欄位值(Danny<sip:danny@ddd.com>)與“To”欄位值(Carl<sip:carl@aaa2.com>)進行剖析。第一剖析模組114亦可對其他字串進行剖析,只要字串或是字串的組合,為此訊息所特有(unique)即可,且可供伺服器110加以辨認,而不需考慮伺服器110能否依此對訊息進行正確的處理。但須注意,對愈多字串進行剖析,便會耗費更多的處理器資源。
第二剖析模組115,用以至少剖析第一剖析模組114所剖析的字串以外之字串。舉例來說,第二剖析模組115可實施為習知伺服器中的剖析模組,而在訊息中所剖析的字串數量,足夠伺服器110確保訊息的處理或發送作業正確無誤,並確保訊息接收者可對訊息做正確的解讀,例如第二剖析模組115可對訊息中所有的字串都進行剖析,甚至包含第一剖析模組114已經剖析過的字串。但在另一實施例中,第二剖析模組115僅針對第一剖析模組114尚未剖析過的字串進行剖析,而此部份的字串含有非此訊息所特有之字串,例如Content-Type的欄位值(application/sdp),但第一剖析模組114所剖析的字串加上第二剖析模組115所剖析的字串,需足夠伺服器110確保訊息的處理或發送作業正確無誤。
判斷模組116,比對第一剖析模組114所剖析的字串而得到的局部剖析資料與一參考資料,以判斷是否呼叫第二剖析模組115,使第二剖析模組115在第一剖析模組114後再對訊息的全部字串或是剩下的字串進行剖析。舉例來說,判斷模組116可判斷第一剖析模組114所剖析的Request URI是否與一預設的URI具有相同(或相異)的值,進而呼叫第二剖析模組115。參考資料可為任何預先載入至伺服器110之資料,其中該參考資料之較佳實施例,將參考圖3詳細說明於後。
在另一實施例中,伺服器110更含有儲存模組117,而判斷模組116更包含查找模組118可存取該儲存模組117。儲存模組117存放有複數筆預先剖析資料以及訊息查找表TA。在一實施例中,伺服器110先前從客戶端UA1所收到的訊息,與正在處理中的訊息實質相同,而此複數筆預先剖析資料可包含先前所收到的訊息,其接受“完整剖析”後所產生的剖析資料。此複數筆預先剖析資料亦可包含先前伺服器110從其他客戶端所收到的訊息接受完整剖析後所產生的剖析資料,或者包含為從網路180上其他伺服器(未顯示)複製而來的預先剖析資料。在一較佳實施例中,儲存模組117係一外取模組(cache)。
圖3則顯示儲存模組117訊息查找表TA之實施例。訊息查找表TA至少具有“訊息ID”以及“剖析資料指標(pointer)”兩個以上的欄位。在此實施例中,“訊息ID”與上述第一剖析模組114的局部剖析資料具有相同的資料格式,因此查找模組118可根據局部剖析資料作為訊息ID,而從訊息查找表TA中找出相對應的訊息ID,並進一步利用“剖析資料指標”,找到對應的預先剖析資料,而在伺服器110處理當下的訊息或要進行發送作業時,可加以“引用”,因此第二剖析模組115不需要再對當下的訊息進行剖析,而可節省伺服器110的處理器資源。
然而若查找模組118無法從訊息查找表TA找出相對應的訊息ID,意謂著無法引用預先剖析資料,則判斷模組116呼叫第二剖析模組115,使第二剖析模組115在第一剖析模組114之後再對訊息的全部字串或是剩下的字串進行剖析,以產生足夠的剖析資料。在此情況下,儲存模組117可進一步更新而儲存第一剖析模組114與第二剖析模組115針對當下的訊息所產生的剖析資料,作為一筆新的預先剖析資料,供日後之用。
此外,因為實際上儲存模組117所能儲存預先剖析資料數量有限,若要能夠增加新的預先剖析資料,則也要能夠刪除舊的預先剖析資料。如圖3所示,訊息查找表TA亦可包含“評分”欄位。舉例來說,針對不同種類(method)或類別(class)的訊息,或者根據訊息其他的特性,儲存模組117可給予不同的評分,例如對INVITE請求的訊息給予高於REGISTER請求的訊息高的分數,而在決定要刪除舊的預先剖析資料時,即可從評分最低的訊息開始刪除。此外,訊息查找表TA亦可包含“次數”欄位,也就是表示此筆預先剖析資料被“引用”的次數,而在決定要刪除舊的預先剖析資料時,可採用Least Recently Used(LRU)或是The Most Recently Used(MRU)的方式來決定。因此,當儲存模組117中有一預先剖析資料被引用時,訊息查找表TA中“評分”欄位與“次數”欄位可能也要加以更新。
圖4顯示一實施例中之客戶端裝置120之硬體架構。客戶端裝置120使用周邊元件互連(PCI)區域匯流排架構,但其它的匯流排架構亦可以被使用,例如加速圖形埠(AGP)以及工業標準架構(ISA)。客戶端裝置120之處理器151可為Intel公司所製造的中央處理器(CPU),與主記憶體152係透過PCI橋接器153來連接至PCI區域匯流排154。PCI橋接器153也可以包括一整合的記憶體控制器與快取記憶體,以供處理器151使用。
此外,區域網路(LAN)配接器155、小型電腦系統介面(SCSI)主機匯流排配接器156、以及擴充匯流排介面157係藉由直接連接的方式來連接至PCI區域匯流排154。相較之下,音效配接器158、圖形配接器159、以及音訊/視訊配接器160係藉由將附加卡插入擴充槽的方式來連接至PCI區域匯流排154。擴充匯流排介面157提供連接至鍵盤與滑鼠配接器161、數據機162、以及附加記憶體163。SCSI主機匯流排配接器156提供連接至硬碟機164、磁帶機165、以及光碟機166。典型的PCI區域匯流排154的實施會支援三或四個PCI擴充插,或附加連接器。
處理器151上執行作業系統,並且用來協調並提供客戶端110之中各種元件的控制。作業系統的範例如Microsoft公司的Windows XP(「Windows XPTM」為Microsoft公司在美國及/或其他國家的註冊商標)。作業系統以及應用程式或程式的指令,係位於儲存裝置上,例如硬碟機164,而會被載入至主記憶體152以供處理器151執行。處理器151亦執行客戶端程序與伺服器110通訊,讓使用者可登入伺服器110使用通訊網路。值得一提的是,客戶端120與伺服器110可採用相同的硬體架構。
以下配合圖1之伺服器110以及圖5之流程圖進一步說明本發明。在方法開始之前,儲存模組117儲存複數筆預先剖析資料以及並建立訊息查找表TA。而在步驟510中,伺服器110接收從客戶端UA1收到到訊息,而第一剖析模組114進一步對此訊息進行局部剖析,也就是僅針對部份的標頭字串(例如Request URI值、Branch ID值、”To”欄位值、或”From”欄位值進行剖析,而產生局部剖析資料作為訊息ID。
接著在步驟520中,查找模組118根據步驟510中所得的訊息ID,利用訊息查找表TA從儲存模組117所儲存的預先剖析資料中查找對應預先剖析資料。在步驟530中,若找不到對應預先剖析資料,則進行到步驟540。
在步驟540中,因為沒有對應預先剖析資料可供伺服器110直接引用,因此第二剖析模組115須進一步對訊息進行完整剖析,以提供伺服器110充分的剖析資料來正確地處理並發送訊息,並將此訊息的剖析資料加入至儲存模組117中作為新的預先剖析資料,並在步驟560中更新儲存模組117中的訊息查找表TA。
回到步驟530中,若可找到一對應預先剖析資料,則進行到步驟550。在步驟550中,伺服器110直接引用所找到的預先剖析資料,而對此收到的訊息進行處理及發送作業,因為不需要對此訊息進行完整的剖析,因此可節省伺服器110的處理器資源。最後在步驟560,可更新訊息查找表TA其中“評分”與“次數”欄位,若決定要刪除儲存模組117中舊的預先剖析資料時,可進一步參考“評分”與“次數”欄位。
在以上的設置中,由於能夠引用先行預存的剖析資料,因此可節省伺服器的處理器資源。特別是當網路狀況不穩定的時候,因訊息發送端遲遲得不到回應,而重複地發送相同的請求訊息給伺服器,而藉由本發明,伺服器僅需要對第一個請求訊息進行完整的剖析並加以儲存,而當後續收到相同的請求訊息時,僅需引用先前所儲存的剖析資料,而不需要浪費處理器資源對相同的請求訊息再次進行完整剖析。
在不脫離本發明精神或必要特性的情況下,可以其他特定形式來體現本發明。應將所述具體實施例各方面僅視為解說性而非限制性。因此,本發明的範疇如隨附申請專利範圍所示而非如前述說明所示。所有落在申請專利範圍之等效意義及範圍內的變更應視為落在申請專利範圍的範疇內。
100...通訊系統
110...伺服器
111...伺服器處理器
113...儲存裝置
114...第一剖析模組
115...第二剖析模組
116...判斷模組
117...儲存模組
118...查找模組
120...客戶端裝置
151...客戶端處理器
152...主記憶體
153...PCI橋接器
154...PCI區域匯流排
155...區域網路配接器
156...小型電腦系統介面主機匯流排配接器
157...擴充匯流排介面
158...音效配接器
159...圖形配接器
160...音訊/視訊配接器
161...鍵盤與滑鼠配接器
162...數據機
163...附加記憶體
164...硬碟機
165...磁帶機
166...光碟機
180...網路
UA1、UA2...客戶端
TA...訊息查找表
為了立即瞭解本發明的優點,請參考如附圖所示的特定具體實施例,詳細說明上文簡短敘述的本發明。在瞭解這些圖示僅描繪本發明的典型具體實施例並因此不將其視為限制本發明範疇的情況下,參考附圖以額外的明確性及細節來說明本發明,圖式中:
圖1A為一種依據本發明一具體實施例之通訊系統示意圖;
圖1B為一種依據本發明一具體實施例之通訊系統訊息傳遞示意圖;
圖2為一種依據本發明一具體實施例之伺服器示意圖;
圖3為一種依據本發明一具體實施例之訊息查找表示意圖;
圖4為一種依據本發明一具體實施例之客戶端裝置示意圖;
圖5為一種依據本發明一具體實施例之方法流程圖。
Claims (30)
- 一種通訊伺服器,供處理具有複數個字串之一訊息,該伺服器包含:一局部剖析模組,用以剖析該複數個字串中的部份字串,而產生一局部剖析資料,其中該部份字串包含該訊息所特有之字串;一儲存模組,供儲存複數筆預先剖析資料,該預先剖析資料係由剖析至少一先前訊息所有字串所產生;以及一查找模組,根據該局部剖析資料從該儲存模組中查找一對應之預先剖析資料;其中該伺服器至少根據該對應之預先剖析資料以發送該訊息。
- 如請求項1之伺服器,其中該訊息為具一鍵值對式(key-value pair based)標頭之訊息。
- 如請求項2之伺服器,其中該訊息為一SIP Request。
- 如請求項3之伺服器,其中該部份字串包含該訊息之Branch ID值與Request URI值。
- 如請求項4之伺服器,其中該部份字串更包含該訊息標頭中之"From"欄位值與“To"欄位值。
- 一種通訊伺服器,供處理具有複數個字串之一訊息,該伺服器包含:一第一剖析模組,用以剖析該複數個字串中一第一組字串, 而產生一第一剖析資料;一第二剖析模組,用以剖析該複數個字串中該第一組字串以外之字串;以及一判斷模組,比對該第一剖析資料與一參考資料,以判斷是否呼叫該第二剖析模組,其中該參考資料包含預先剖析資料,而該預先剖析資料係由剖析至少一先前訊息所有字串所產生;其中,若該判斷模組發出該呼叫,則該第二剖析模組因應該呼叫,對該訊息進行剖析而產生一第二剖析資料;其中該第一組字串含有該訊息所特有之字串。
- 如請求項6之伺服器,其中該伺服器至少根據該第二剖析資料以發送該訊息。
- 如請求項6之伺服器,更包含:一儲存模組,供儲存該參考資料,該參考資料更包含複數筆預先剖析資料;而該判斷模組更包含:一查找模組,用以根據該第一剖析資料從該儲存模組中查找一對應預先剖析資料;其中,若該查找模組從該儲存模組中找到該對應預先剖析資料,則該判斷模組判斷不產生該呼叫,而該伺服器至少根據該對應預先剖析資料以發送該訊息;其中,若該查找模組從該儲存模組中無法找到該對應預先剖析資料,則該判斷模組判斷產生該呼叫,而該伺服器至少根據該第二剖析資料以發送該訊息。
- 如請求項8之伺服器,其中若該查找模組無法找到該對應預先剖析資料,則該儲存模組進一步儲存該第一剖析資料與該第二剖析資料作為一預先剖析資料。
- 如請求項9之伺服器,其中該訊息為具一鍵值對式(key-value pair based)標頭之訊息。
- 如請求項10之伺服器,其中該第一組字串以外之字串含有非該訊息所特有之字串。
- 如請求項10之伺服器,其中該訊息為一SIP Request。
- 如請求項12之伺服器,其中該第一組字串包含該訊息之Branch ID值與Request URI值。
- 如請求項13之伺服器,其中該第一組字串更包含該訊息標頭中之"From"欄位值與“To"欄位值。
- 一種藉由一通訊伺服器處理具有複數個字串之一訊息之方法,包含:(a)儲存複數筆預先剖析資料,該預先剖析資料係由剖析至少一先前訊息所有字串所產生;(b)剖析該複數個字串中的部份字串,而產生一局部剖析資料,其中該部份字串包含該訊息所特有之字串;(c)根據該局部剖析資料從該複數筆預先剖析資料中查找一對應預先剖析資料;以及 (d)至少根據該對應預先剖析資料以發送該訊息。
- 如請求項15之方法,其中該訊息為具一鍵值對式(key-value pair based)標頭之訊息。
- 如請求項16之方法,其中該訊息為一SIP Request。
- 如請求項17之方法,其中該部份字串包含該訊息之Branch ID值與Request URI值。
- 如請求項18之方法,其中該部份字串包含更包含該訊息標頭中之"From"欄位值與“To"欄位值。。
- 一種電腦可讀媒體,儲存有一程式碼,供於一伺服器上執行時進行如請求項15至19中任一項之方法。
- 一種藉由一通訊伺服器處理具有複數個字串之一訊息之方法,包含:(a)剖析該複數個字串中一第一組字串,而產生一第一剖析資料;(b)比對該第一剖析資料與一參考資料,以判斷是否需要剖析該複數個字串中該第一組字串以外之字串,其中該參考資料包含預先剖析資料,而該預先剖析資料係由剖析至少一先前訊息所有字串所產生;以及(c)若(b)之判斷為是,則剖析該複數個字串中該第一組字串以外之字串,而產生一第二剖析資料,其中該第一組字串含有該訊 息所特有之字串。
- 如請求項21之方法,更包含:至少根據該第二剖析資料以發送該訊息。
- 如請求項21之方法,在步驟(b)之前,該方法更包含:儲存該參考資料,該參考資料更包含複數筆預先剖析資料;而步驟(b)更包含:根據該第一剖析資料從該複數筆預先剖析資料中查找一對應預先剖析資料;其中,若該查找模組從該複數筆預先剖析資料中無法找到該對應預先剖析資料,則步驟(b)之判斷為是;其中,若從該複數筆預先剖析資料中找到該對應預先剖析資料,則步驟(b)之判斷為否;步驟(c)更包含:至少根據該對應預先剖析資料以發送該訊息;其中該方法更包含步驟(d):若(b)之判斷為否,則至少根據該第二剖析資料以發送該訊息。
- 如請求項23之方法,更包含:(d)儲存該第一剖析資料與該第二剖析資料作為該預先剖析資料。
- 如請求項24之伺服器,其中該訊息為具一鍵值對式(key-value pair based)標頭之訊息。
- 如請求項25之方法,其中該第一組字串以外之字串含有非該訊息所特有之字串。
- 如請求項25之方法,其中該訊息為一SIP Request。
- 如請求項27之方法,其中該第一組字串包含該訊息之Branch ID值與Request URI值。
- 如請求項28之方法,其中該第一組字串更包含該訊息標頭中之"From"欄位值與“To"欄位值。
- 一種電腦可讀媒體,儲存有一程式碼,供於一伺服器上執行時進行如請求項21至29中任一項之方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098117752A TWI409645B (zh) | 2009-05-27 | 2009-05-27 | 通訊伺服器與其處理訊息之方法及電腦可讀媒體 |
| US12/787,670 US8560714B2 (en) | 2009-05-27 | 2010-05-26 | Message processing to improve server performance |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW098117752A TWI409645B (zh) | 2009-05-27 | 2009-05-27 | 通訊伺服器與其處理訊息之方法及電腦可讀媒體 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201042469A TW201042469A (en) | 2010-12-01 |
| TWI409645B true TWI409645B (zh) | 2013-09-21 |
Family
ID=43221531
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW098117752A TWI409645B (zh) | 2009-05-27 | 2009-05-27 | 通訊伺服器與其處理訊息之方法及電腦可讀媒體 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8560714B2 (zh) |
| TW (1) | TWI409645B (zh) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6628194B1 (en) | 1999-08-31 | 2003-09-30 | At&T Wireless Services, Inc. | Filtered in-box for voice mail, e-mail, pages, web-based information, and faxes |
| US10522241B2 (en) * | 2016-09-08 | 2019-12-31 | International Business Machines Corporation | Accelerating genomic data parsing on field programmable gate arrays |
| CN113904864A (zh) * | 2018-12-28 | 2022-01-07 | 阿波罗智联(北京)科技有限公司 | 用于解析报文的方法和装置 |
| CN112804288A (zh) * | 2020-12-14 | 2021-05-14 | 国汽(北京)智能网联汽车研究院有限公司 | 车端数据处理方法、装置、电子设备及计算机存储介质 |
| CN113890904B (zh) * | 2021-09-27 | 2023-10-27 | 新华三信息安全技术有限公司 | 一种报文解析的方法、装置、计算机设备及存储介质 |
| CN116737172B (zh) * | 2023-08-11 | 2023-12-12 | 杭州初灵信息技术股份有限公司 | 一种小颗粒数据包的解析系统和方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070226361A1 (en) * | 2006-03-23 | 2007-09-27 | Shaikh Mohammed T | Method and system to enhance performance of a session initiation protocol network and its elements |
| TW200903281A (en) * | 2007-06-11 | 2009-01-16 | Microsoft Corp | Using joint communication and search data |
| TW200919310A (en) * | 2007-10-16 | 2009-05-01 | Microsoft Corp | Software factory specification and execution model |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1137235A1 (en) | 2000-03-24 | 2001-09-26 | BRITISH TELECOMMUNICATIONS public limited company | Processing network communication control messages |
| US7680037B2 (en) | 2005-03-01 | 2010-03-16 | Alcatel-Lucent Usa Inc. | Resource-sensitive parser, method of parsing and session initiation protocol (SIP) network employing the same |
| US7414975B2 (en) | 2005-03-24 | 2008-08-19 | Ixia | Protocol stack |
| US20070100866A1 (en) * | 2005-10-31 | 2007-05-03 | International Business Machines Corporation | Method for registering a template message, generating an update message, regenerating and providing an application request, computer arrangement, computer program and computer program product |
-
2009
- 2009-05-27 TW TW098117752A patent/TWI409645B/zh not_active IP Right Cessation
-
2010
- 2010-05-26 US US12/787,670 patent/US8560714B2/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070226361A1 (en) * | 2006-03-23 | 2007-09-27 | Shaikh Mohammed T | Method and system to enhance performance of a session initiation protocol network and its elements |
| TW200903281A (en) * | 2007-06-11 | 2009-01-16 | Microsoft Corp | Using joint communication and search data |
| TW200919310A (en) * | 2007-10-16 | 2009-05-01 | Microsoft Corp | Software factory specification and execution model |
Also Published As
| Publication number | Publication date |
|---|---|
| US20100306398A1 (en) | 2010-12-02 |
| TW201042469A (en) | 2010-12-01 |
| US8560714B2 (en) | 2013-10-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6423059B2 (ja) | セキュリティプロトコルの動的選択 | |
| JP4755590B2 (ja) | 非同期的に要求を処理するための方法、サーバシステム、及びプログラム | |
| EP3404875B1 (en) | Electronic device providing dialog contents, server and method thereof | |
| TWI409645B (zh) | 通訊伺服器與其處理訊息之方法及電腦可讀媒體 | |
| US6553393B1 (en) | Method for prefetching external resources to embedded objects in a markup language data stream | |
| CN104767775B (zh) | 网页应用消息推送方法及系统 | |
| US8326920B1 (en) | Connection sharing | |
| US20090187410A1 (en) | System and method of providing speech processing in user interface | |
| CN101243437A (zh) | 由端点定制的虚拟机器人通信格式 | |
| CN103428261A (zh) | 通过硬件辅助处理http报头的方法 | |
| US9473592B2 (en) | Methods for optimizing a web content proxy server and devices thereof | |
| US10742691B2 (en) | Managing mid-dialog session initiation protocol (SIP) messages | |
| US8606861B2 (en) | Method, apparatus, and computer program product for reducing session related message size | |
| CN103970882A (zh) | 渲染页面的方法及装置 | |
| CN104717312A (zh) | 一种确定访问网络资源接口的方法及装置 | |
| CN113873057B (zh) | 数据处理方法和装置 | |
| CN104737550A (zh) | 多媒体重定向方法、服务器和客户端 | |
| CN111031148A (zh) | 一种地址解析方法、装置及电子设备和存储介质 | |
| CN114338631A (zh) | 设备控制方法、装置和系统 | |
| JP4988307B2 (ja) | コンテキスト・ベースのナビゲーション | |
| CN114817923B (zh) | 生成入侵检测规则的方法、装置、计算机设备及存储介质 | |
| CN117812436A (zh) | 媒体信息的协商方法、装置、设备及存储介质 | |
| CN116366732A (zh) | 数据处理方法、网关模块、电子设备及介质 | |
| CN103701910A (zh) | 支持内容中心网络的资源请求处理方法及Web浏览器 | |
| CN113726922B (zh) | 一种网络应用层连接协议确定方法、装置及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |