新四季網

一種遠程過程調用方法和系統的製作方法

2023-05-28 06:53:56

專利名稱:一種遠程過程調用方法和系統的製作方法
技術領域:
本發明涉及IPTV(Internet Protocol Television,交互式網絡電視)技術,尤其 涉及網元之間的通信技術。
背景技術:
IPTV即交互式網絡電視,是一種利用寬帶有線電視網,集網際網路、多媒體、通訊等 多種技術於一體,向家庭用戶提供包括數位電視在內的多種交互式服務的嶄新技術。用戶 在家中可以有兩種方式享受IPTV服務(l)計算機,(2)網絡機頂盒+普通電視機)。它能 夠很好地適應當今網絡飛速發展的趨勢,充分有效地利用網絡資源。IPTV既不同於傳統的 模擬式有線電視,也不同於經典的數位電視。因為,傳統的和經典的數位電視都具有頻分 制、定時、單向廣播等特點;儘管經典的數位電視相對於模擬電視有許多技術革新,但只是 信號形式的改變,而沒有觸及媒體內容的傳播方式。 IPTV是利用計算機或機頂盒+電視完成接收視頻點播節目、視頻廣播及網上衝浪 等功能。它採用高效的視頻壓縮技術,使視頻流傳輸帶寬在800Kb/s時可以有接近DVD的 收視效果(通常DVD的視頻流傳輸帶寬需要3Mb/s),對今後開展視頻類業務如網際網路上視 頻直播、遠距離真視頻點播、節目源製作等來講,有很強的優勢,是一個全新的技術概念。
現有的IPTV系統中,網元之間的通信往往採用Web Service的模式,或者是自定 義的通信協議。 Web Service的模式的缺點是效率問題,雖然Web Service能夠很好的解決異構問 題,但是對於電信級應用,對通信的要求體現在高效,異步等方面,這些都是Web Service做 不到的;而自定義協議也存在開發成本,協議的穩定性等問題。 Web Service的一個缺點就是同步調用,這是使用http協議的結果,假如伺服器 端是一個長過程的調用,那麼Web Service就得阻塞在那裡。為了避免這種情況,可以讓 Web Service立即返回,並在調用完成之後回調,但是這種方式增加了程序設計的複雜度。
因此,隨著數位電視技術的發展,如何提高異步調用效率,成為急待解決的問題。

發明內容
本發明目的在於提供一種遠程過程調用RPC(Remote Procedlure Call)系統,克 服了 WebService在效率,異步調用方面的不足,並且具有與平臺無關,用戶代碼中心簡單 易用等特點。 為解決本發明的技術問題,本發明公開一種遠程過程調用系統,包括通信模塊,
序列化模塊,調度模塊和編譯模塊,其中,所述序列化模塊,調度模塊和編譯模塊均與所述
通信模塊連接,通過所述通信模塊與其他通信設備通信,其中 所述通信模塊,用於為RPC提供底層通信機制; 所述序列化模塊,用於對傳輸的消息進行序列化和反序列化; 所述調度模塊,用於對整個RPC調用進行調度,包括對異步調用的管理、超時機制、事務機制; 所述編譯模塊,用於為接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間 的轉換提供支持。 較優的,所述底層通信機制包括傳輸控制協議(TCP)和流控制傳輸協議(SCTP)。
較優的,所述編譯模塊用於編譯頭文件為IDL,再由IDL生成客戶端和伺服器端的 樁。 較優的,所述編譯模塊用於將頭文件編譯為接口定義語言文件、客戶端樁代碼和 伺服器端樁代碼;用於將接口定義語言文件生成Protocol Buffer的序列化代碼,用於將 序列化代碼和伺服器端樁代碼,客戶端樁代碼分別編譯成為伺服器端樁和客戶端樁,其中 所述客戶代碼和伺服器代碼分別連結自己的樁,成為完整的客戶端程序和伺服器端程序。
為解決本發明的技術問題,本發明還公開一種遠程過程調用方法,其中,包括
對傳輸的消息進行序列化和反序列化; 在接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的進行轉換;
對整個RPC調用進行調度,包括對異步調用的管理、超時機制、事務機制。
較優的,所述在接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的進行 轉換具體包括 編譯頭文件為IDL,再由IDL生成客戶端和伺服器端的樁。 較優的,所述在接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的進行 轉換具體包括 將頭文件編譯為接口定義語言文件、客戶端樁代碼和伺服器端樁代碼;
將接口定義語言文件生成Protocol Buffer的序列化代碼; 將序列化代碼和伺服器端樁代碼,客戶端樁代碼分別編譯成為伺服器端樁和客戶 端樁; 其中,所述客戶代碼和伺服器代碼分別連結自己的樁,成為完整的客戶端程序和
伺服器端程序。 較優的,還包括 函數調用的所有形參,封裝在一個以函數名為基礎命名的結構體中,稱為根 (root)結構體; 以結構體為單位,做內存的序列化處理; 建立一個哈希表,將結構體類型和內存指針為哈希的key,結構體的內存為哈希的 從根結構體開始遍歷,存儲所有的子結構體,跳過在哈希表中的結構體,處理至
RPC所支持的最基本數據結構為止。 與現有技術相比,本發明具有如下有益效果 本發明公開一種遠程過程調用(RPC)方法和系統,克服了Web Service在效率,異 步調用方面的不足,並且具有與平臺無關,用戶代碼中心簡單易用等特點。


圖1為本發明實施例的一種基於Google Protocol Buffer的RPC通信系統結構示意圖; 圖2為本發明實施例的RPC在序列化調用參數時的一個示例圖; 圖3為本發明實施例的用戶使用RPC的一個示意圖; 圖4為本發明實施例的遠程過程調用RPC系統的結構示意圖。
具體實施例方式
本發明一種遠程過程調用(RPC)方法和系統,克服了 Web Service在效率,異步調 用方面的不足,並且具有與平臺無關,用戶代碼中心簡單易用等特點。 遠程過程調用RPC協議, 一種通過網絡從遠程電腦程式上請求服務,而不需 要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP (Transmission ControlProtocol,傳輸控制協議)或UDP(User Datagram Protocol,用戶數據報協議),為 通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使 得開發包括網絡分布式多程序在內的應用程式更加容易。 圖1為本發明實施例的一種基於Google Protocol Buffer的RPC通信系統結構 示意圖,該系統包括調用伺服器ll,伺服器12和客戶機13,其中伺服器12和客戶機13均 與調用伺服器11通信連接。調用伺服器11內裝有服務程序l,伺服器12內裝有服務程序 2,客戶機13內裝有客戶程序。 其中,調用伺服器11處於多個網段,它可以連接客戶機13與伺服器12,客戶機13 想要調用伺服器12中服務程序2,但是由於它和伺服器12之間沒有路由,所以無法調用。 但是通過RPC命名機制的支持,客戶機13可以對服務調用伺服器11發起調用,由調用服務 器11負責調用伺服器12中的服務程序2,並將調用的結果返回給客戶機13。
圖2為本發明實施例的RPC在序列化調用的形式參數時的示例圖,假設此調用的 參數只有結構體A,那麼序列化必須把結構體A所涉及到得所有內存都保存下來,發給服務 端,RPC的序列化模塊42對結構體A進行了遍歷,這是一個遞歸的調用,因為事先不能確定 這種結構體之間的指針構成了多複雜的內存結構。 當遍歷到b3時,發現b3所組成的key已經在哈希中,哈希命中,不再繼續做分析, 從而避免了死循環。當內存指針更複雜時,處理的原則是一樣的。
圖3為本發明實施例的用戶使用RPC的一個示意圖,其過程可以如下所示。
步驟31,用戶定義頭文件。 步驟32, RPC的編譯模塊將頭文件編譯為接口定義語言文件、客戶端樁代碼和服 務器端樁代碼。 步驟33,將接口定義語言文件生成Protocol Buffer的序列化代碼。 步驟34,將序列化代碼和伺服器端樁代碼,客戶端樁代碼分別編譯成為伺服器端
樁和客戶端樁。 步驟35,客戶代碼和伺服器代碼分別連結自己的樁,成為完整的客戶端程序和服 務器端程序。 本發明提出了一種基於protocol buffer的遠程過程調用(RPC)系統,其主要特 點是 1)平臺無關性
RPC可以做到與系統平臺和程序語言無關,以下重點描述伺服器開發中常用的C 語言的實現。用戶代碼中心(User-Code-Centered) ,RPC以用戶代碼為中心,定義良好的頭 文件設置不需做任何更改,用戶可以方便的將現有的本地調用代碼移植為遠程調用。
2)簡單性 簡單性指用戶使用簡單、方便。該RPC還集成了 Google Protocol Buffer的可擴 展性、高性能和向後兼容等特點。 如圖4所示,為本發明實施例的一種遠程過程調用RPC系統的結構示意圖,從功能 上可以邏輯可以包括通信模塊41,序列化模塊42,調度模塊43和編譯模塊44。其中,所 述序列化模塊42,調度模塊43和編譯模塊44均與通信模塊41連接,通過所述通信模塊41 與其他通信設備通信。 通信模塊41,用於為RPC提供底層通信機制,通信模塊41的設計使得RPC系統可 以使用各種通信協議,包括TCP和SCTP (STREAM CONTROL TRANSMISSION PROTOCOL,流控制 傳輸協議)。 序列化模塊42,由樁(stub)和Google Protocol Buffer共同完成,其作用是對傳 輸的消息進行序列化和反序列化。 調度模塊43的作用是對整個RPC調用進行調度,包括對異步調用的管理、超時機 制、事務機制等。 編譯模塊44為接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的轉換 提供支持。該RPC是用戶代碼中心的(User-Code-Centered),因此用戶提供自己的頭文件, 就可以由編譯模塊44編譯此頭文件為IDL,再由IDL生成客戶端和伺服器端的樁。
樁(stub)生成策略 生成樁的目的是提供客戶端13和調用伺服器11、 12端的支持,以便用戶無需書寫 代碼,上調用遠程的伺服器就如同調用本地函數一樣。樁包括客戶端樁和伺服器端樁,它們 的相同部分是都需要把調用所涉及的內存傳遞到對方。因此如何序列化這些內存就成為一 個重要的問題。 對於C這種過程式的語言來說,不能期望像Java —樣直接把類序列化或者反序列 化,因此必須用一種抽象的方式描述C語言當中的內存。
本發明的RPC採取的策略描述如下 1)函數調用的所有形參,封裝在一個以函數名為基礎命名的結構體中,稱為根 (root)結構體。 2)以結構體為單位,做內存的序列化處理。 3)建立一個哈希表,將結構體類型和內存指針為哈希的key,結構體的內存為哈 希的value o 4)從根結構體開始遍歷,存儲所有的子結構體,跳過在哈希表中的結構體(即為 已經處理過),否則處理至RPC所支持的最基本數據結構為止。
5)得到調用所涉及的所有內存。 本發明的RPC使用rpc:〃ip:port/service_name的方式命名RPC服務,類URI的 命名使其獲得良好的可讀性和通用性,此外這種方式使得一臺處於不同網段的機器有了做 RPC代理的可能。
當一臺調用伺服器11處於不同網段時,它可以被設置為當收到一個不屬於自己 的調用請求時(即rpc字串中的ip不是自己的),轉發此rpc調用,並且將調用的結果返回 給請求的客戶機13,如圖1所示。 本發明的RPC提供版本校驗特性,在通信程序中,由於接口版本問題所帶來的問
題很多,因此版本校驗的特性有很大意義,本發明的RPC使用IDL文件的MD5值作為版本的
描述信息,當發現客戶機13和調用伺服器11端的MD5值不一致時給予警告。 使用IDL文件的MD5值作為版本的好處是,可以不必要求用戶頭文件的一致,由於
IDL是用戶頭文件生成的,對於不同的頭文件,只要其意義仍一致,就認為是其版本沒有發
生變化。 本發明的RPC提供異步調用,採用事件驅動的方式為用戶提供類印oll的接口 ,使 得用戶程序不必阻塞,從而得到更高的效率。
權利要求
一種遠程過程調用系統,其特徵在於,包括通信模塊,序列化模塊,調度模塊和編譯模塊,其中,所述序列化模塊,調度模塊和編譯模塊均與所述通信模塊連接,通過所述通信模塊與其他通信設備通信,其中所述通信模塊,用於為RPC提供底層通信機制;所述序列化模塊,用於對傳輸的消息進行序列化和反序列化;所述調度模塊,用於對整個RPC調用進行調度,包括對異步調用的管理、超時機制、事務機制;所述編譯模塊,用於為接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的轉換提供支持。
2. 如權利要求l所述的系統,其特徵在於,所述底層通信機制包括傳輸控制協議(TCP) 和流控制傳輸協議(SCTP)。
3. 如權利要求1所述的系統,其特徵在於,所述編譯模塊用於編譯頭文件為IDL,再由 IDL生成客戶端和伺服器端的樁。
4. 如權利要求3所述的系統,其特徵在於,所述編譯模塊用於將頭文件編譯為接口定 義語言文件、客戶端樁代碼和伺服器端樁代碼;用於將接口定義語言文件生成Protocol Buffer的序列化代碼,用於將序列化代碼和伺服器端樁代碼,客戶端樁代碼分別編譯成為 伺服器端樁和客戶端樁,其中所述客戶代碼和伺服器代碼分別連結自己的樁,成為完整的 客戶端程序和伺服器端程序。
5. —種遠程過程調用方法,其特徵在於,包括 對傳輸的消息進行序列化和反序列化;在接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的進行轉換; 對整個RPC調用進行調度,包括對異步調用的管理、超時機制、事務機制。
6. 如權利要求5所述的方法,其特徵在於,所述在接口定義文件(IDL)、用戶頭文件、樁 (stub)文件三者之間的進行轉換具體包括編譯頭文件為IDL,再由IDL生成客戶端和伺服器端的樁。
7. 如權利要求5所述的方法,其特徵在於,所述在接口定義文件(IDL)、用戶頭文件、樁 (stub)文件三者之間的進行轉換具體包括將頭文件編譯為接口定義語言文件、客戶端樁代碼和伺服器端樁代碼; 將接口定義語言文件生成Protocol Buffer的序列化代碼;將序列化代碼和伺服器端樁代碼,客戶端樁代碼分別編譯成為伺服器端樁和客戶端樁;其中,所述客戶代碼和伺服器代碼分別連結自己的樁,成為完整的客戶端程序和服務 器端程序。
8. 如權利要求5所述的方法,其特徵在於,還包括函數調用的所有形參,封裝在一個以函數名為基礎命名的結構體中,稱為根(root)結 構體;以結構體為單位,做內存的序列化處理;建立一個哈希表,將結構體類型和內存指針為哈希的key,結構體的內存為哈希的從根結構體開始遍歷,存儲所有的子結構體,跳過在哈希表中的結構體,處理至RPC所 支持的最基本數據結構為止。
全文摘要
本發明公開一種遠程過程調用方法和系統,包括通信模塊,用於為RPC提供底層通信機制;序列化模塊,用於對傳輸的消息進行序列化和反序列化;調度模塊,用於對整個RPC調用進行調度,包括對異步調用的管理、超時機制、事務機制;編譯模塊,用於為接口定義文件(IDL)、用戶頭文件、樁(stub)文件三者之間的轉換提供支持。克服了Web Service在效率,異步調用方面的不足,並且與具有平臺無關,用戶代碼中心簡單易用等特點。
文檔編號H04N7/173GK101719902SQ20091018873
公開日2010年6月2日 申請日期2009年12月4日 優先權日2009年12月4日
發明者李昌盛 申請人:深圳創維數位技術股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀