專利名稱:自組織網絡中可靠的服務發(fā)現和服務選擇方法
技術領域:
本發(fā)明屬于自組織網絡和服務計算的交叉技術領域,具體涉及到一種在自組織網
絡中可靠的服務發(fā)現和服務選擇方法。
背景技術:
隨著網絡技術的飛速發(fā)展,用戶的需求已從最初的信息共享逐漸發(fā)展為如何利用其它Web站點提供的功能。相應地,服務科學作為有效進行功能調用的學科被提出。服務是一種部署在網絡上的、自包含的、模塊化的應用程序,它可以在網絡中描述、發(fā)布、查找以及調用。服務的提出實現了對各種設備或平臺上的任何硬件或軟件實體可以提供給其他設備訪問的資源或功能的一種抽象。 自組織網絡是一種不需要固定基礎結構、在移動或固定環(huán)境下可以快速部署的無線網絡。網絡中的節(jié)點利用自身的無線收發(fā)設備交換信息,當相互之間不在彼此的通信范圍內時,可以借助其他中間節(jié)點中繼來實現多跳通信。 無線自組織網絡中由于網絡拓撲結構的不斷變化和網絡連接的不穩(wěn)定性,服務執(zhí)行失敗經常發(fā)生。于是服務請求節(jié)點常常需要重新發(fā)起服務請求,從而浪費了節(jié)點能量,增加了服務的響應時間,并且節(jié)點的能量通常是有限的,而對于網絡中節(jié)點請求的服務,可能存在多個服務提供節(jié)點。綜合上面的因素,如何發(fā)現和選擇一個可靠的服務,最大限度的降低服務執(zhí)行失效的可能性,是非常重要的。針對以上問題,本發(fā)明提出了一種在自組織網絡中可靠的服務發(fā)現和選擇方法。
發(fā)明內容
本發(fā)明的目的在于針對自組織網絡的網絡拓撲動態(tài)變化、節(jié)點能量有限等特點,提出了一種可靠的服務發(fā)現和服務選擇方法,以保證找到網絡中相對可靠的服務提供節(jié)點。
本發(fā)明的目的通過下述方法和步驟實現
首先對一些基本概念和符號進行定義 服務請求節(jié)點(request source):服務的需求方和請求方,發(fā)起服務發(fā)現過程以獲取所需服務的位置等信息。 TSKEQ、 TSKEP :TSKEQ表示服務請求節(jié)點發(fā)送SREQ包的時間,TSKEP表示表示服務應答節(jié)點發(fā)送SREP的時間。如圖1所示,對于節(jié)點A和B之間的鏈接而言,TA—SKEQ表示節(jié)點A發(fā)送SREQ的時間;TB—SKEP表示節(jié)點B發(fā)送SREP的時間。由于傳送SREQ的時間很短,我們可以近似地認為節(jié)點A發(fā)送SREQ包的時間和節(jié)點B接收SREQ包的時間為同一時間。同樣地,我們也近似地認為節(jié)點B發(fā)送SREP的時間和節(jié)點A接收SREP的時間為同一時間。[OOW] LN—SKEQ、 LN—SKEP :LN—SKEQ表示節(jié)點N在收到SREQ時刻在網絡中的位置,LN—SKEP表示節(jié)點N在收到SREP時刻在網絡中的位置。如圖1所示,LA—弧。和LA—弧p表示節(jié)點A在TA—弧。和TA—證時刻在網絡中的位置,LB—SKEQ和LB—證表示節(jié)點B在TB—SKEQ和TB—證時刻在網絡中的位置,它們可以通過地理定位系統(如GPS系統)得到。 鏈接到期時間(Link e鄧iration time, LET):由于無線自組織網絡節(jié)點是在不斷移動的,兩個連接的節(jié)點在經過一段時間后會變得無法連接,LET指當前連接的鏈路斷裂的時間點,即當前通信的節(jié)點變得無法通信的時間節(jié)點。 路徑到期時間(Path expiration time, PET):它是整個路徑到期的時間,其值為SREQ在轉發(fā)過程中整個路徑上LET的最小值。因為在SREQ轉發(fā)的過程中,一個鏈路的斷裂就意味著整條鏈路的斷裂,故PEL取整個路徑上LET的最小值。 服務請求包(Service request packet, SREQ):服務請求節(jié)點在請求一個服務時構造的包的類型。它包含request source, broadcast ID, pre node, request service,hop count。 broadcast ID :廣播編號,它和request source —起唯一確定一個SREQ包。
pre node :用于記錄發(fā)送該SREQ包的前置節(jié)點,以便在找到服務后按原路返回。
request service :請求服務的服務信息。 hop count :跳數信息,它記錄該SREQ包到服務請求節(jié)點的跳數。
服務回復包(Service r印ly packet, SREP):當網絡中節(jié)點收到服務請求包后,如果能夠提供所需的服務,向服務請求節(jié)點發(fā)送的包的類型,告訴服務請求節(jié)點該節(jié)點能夠提供它所需要的月艮務。SREP包含request source, broadcast ID,provider information,service information, hop co皿t,s咖,LN—SREP, PET。 provider information :服務提供節(jié)點的節(jié)點信息,包括該節(jié)點的能量信息。
service information :服務提供節(jié)點上的服務信息,包括服務執(zhí)行時間,服務調用入口。 前向路由緩存(forward route cache):節(jié)點在收到SREQ后在前向路由緩存中緩存相關路由信息,供節(jié)點收到SREP后計算LET時使用。緩存信息包含如下broadcast ID,request source, pre—node, TSKEQ, LN—SKEQo 返向路由緩存(reversed route cache):節(jié)點在收到SREP后在返向路由緩存中緩存相關路由信息,節(jié)點在進行服務執(zhí)行時根據返向路由緩存中的節(jié)點信息獲得路由信息。該緩存信息包含request service, provider information, PET, next node。
next node :相應SREP包的發(fā)送節(jié)點。 本發(fā)明提出的可靠服務發(fā)現和選擇方法包括服務發(fā)現和服務選擇兩個部分,下面分別介紹這兩個部分。 可靠的服務發(fā)現包括發(fā)送服務請求、響應服務請求、處理服務回復包三個階段。
各步驟具體如下
(1)發(fā)送服務請求。 當節(jié)點需要一個服務時,發(fā)起一個服務發(fā)現請求,然后在前向路由緩存該節(jié)點發(fā)送SREQ的時間和在網絡中的位置,接著向它周圍的節(jié)點發(fā)送該SREQ包。
(2)響應服務請求。 網絡中節(jié)點在收到SREQ包后首先在本節(jié)點的前向路由緩存中緩存相關路由信息,緩存下來的路由信息在計算SREP包中的LET時會使用到。 然后在自己提供的服務列表中查找匹配的服務,如果沒有找到說明自己沒有能力提供該服務,那么將SREQ包中hop信息加1后向周圍節(jié)點轉發(fā)該SREQ包。 如果找到,則說明本節(jié)點有能力提供該服務。為了在后面計算LET時獲得不同的
時間和位置信息,該節(jié)點稍微等待一小段時間,然后構造服務回復包SREP, SREP根據前向
路由緩存中的pre-node返回。 (3)處理服務回復包 網絡中節(jié)點在收到SREP后,檢查本節(jié)點是不是服務請求節(jié)點,如果不是服務請求節(jié)點,則對SREP進行如下處理 a.根據SREP包中節(jié)點的位置信息和相應的時間信息以及前向路由緩存中緩存的相關路由信息計算LET。
LET的計算方法為 如圖l所示,對于節(jié)點A和B之間的鏈接而言,通過矢量計算得到節(jié)點A和B在TA—SKEQ時刻的距離= I LB—SKEQ-LA—SKEQI ,用相同的方法,通過矢量計算得到節(jié)點A和B在TB—SKEP時刻的距離D2 = |LB—SKEP-LA—SKEP| ,于是可以得到從TA—SKEQ時刻到TB—5咖時刻兩個節(jié)點間距離的變化。通過計算可以得到A節(jié)點和B節(jié)點間變化的速率,即v = (D廠D》/CVSKEP-TA—SKEQ).于是LET = (R-D2)/v+TB—SKEP。 R表示網絡中節(jié)點能夠傳輸的半徑,它表示網絡中節(jié)點能夠傳輸的范圍。 b.如果LET比SREP中PET小,則更新PET,將PET的值更新為LET的值。 c.在返向路由緩存中緩存相關路由信息。節(jié)點在執(zhí)行服務時根據返向路由緩存中
的節(jié)點信息獲得路由信息。 d.根據前向路由緩存中緩存的相關路由信息轉發(fā)SREP給前置節(jié)點。如果是服務請求節(jié)點,對SREP進行如下處理 a.根據SREP包中的節(jié)點的位置信息和相應的時間信息以及之前緩存的相關路由信息計算LET。 b.如果LET比PET小,則更新PET,將PET的值更新為LET的值。 c.在返向路由緩存中緩存相關路由信息,該緩存信息如前所述。 可靠的服務選擇是指從找到的服務提供節(jié)點中選擇出可靠的節(jié)點作為服務提供
節(jié)點的過程,它包括選擇能量符合要求的節(jié)點、選擇PET符合要求的節(jié)點、選擇跳數最小的
節(jié)點三個階段。 各步驟具體如下 1.選擇能量符合要求的節(jié)點 服務請求節(jié)點從返回的SREP中可以得到服務提供節(jié)點的剩余能量信息,并將其與執(zhí)行該服務所需要的能量進行比較,篩選出能夠提供服務執(zhí)行所需要能量的節(jié)點作為服務候選節(jié)點。如果經過篩選后的節(jié)點數量等于O,則表示本次服務發(fā)現失??;如果等于l,則將該節(jié)點作為服務提供節(jié)點;如果大于l,則轉而進行步驟二的選擇。
2.選擇PET符合要求的節(jié)點 服務請求節(jié)點將計算得到的PET與該服務的執(zhí)行時間及服務發(fā)現時間之和進行比較,篩選出PET大于服務執(zhí)行時間及服務發(fā)現時間之和的節(jié)點作為服務候選節(jié)點。經過篩選后如果節(jié)點數量等于0,則選擇步驟一中PET最大的節(jié)點作為服務提供節(jié)點;如果等于l,則將該節(jié)點作為服務提供節(jié)點;如果大于l,則轉而進行步驟三的選擇。
6
3.選擇跳數最小的節(jié)點 服務請求節(jié)點從返回的SREP中可以得到服務提供節(jié)點的跳數信息,選擇跳數最小的節(jié)點作為服務提供節(jié)點。如果跳數最小的節(jié)點有多個,則比較它們的PET,選擇PET最大的節(jié)點作為服務提供節(jié)點。
圖1是兩個不同時刻節(jié)點A、 B的位置圖。 圖2是會議應用場景,描述了網絡節(jié)點構成,以及節(jié)點的角色等信息。
具體實施方案 以下結合具體的實施例,對本發(fā)明做進一步的闡述。實施例僅用于對本發(fā)明做說
明而不是對本發(fā)明的限制。 實施例 本實施例以會議應用場景中的復印服務為例來詳細介紹本發(fā)明的具體實施方式
,應用場景如圖2所示,其中SP1、SP2是服務提供者,它們提供打印服務,而網絡中節(jié)點Nl提供打印服務,節(jié)點SR是服務請求者,它需要復印服務。 本發(fā)明提出的可靠服務發(fā)現和選擇方法包括服務發(fā)現和服務選擇兩個部分,服務
發(fā)現的步驟如下 (1)發(fā)送服務請求。 節(jié)點SR需要一個復印服務,產生一個服務發(fā)現請求SREQ包,請求周圍節(jié)點的復印服務,然后在前向路由緩存中緩存TSKEQ(SK)和LSKEQ(SK)b并向它周圍的節(jié)點Nl發(fā)送了 SREQ包。[OOSO] (2)響應服務請求。 節(jié)點Nl收到節(jié)點SR發(fā)來的SREQ包后首先在本節(jié)點的前向路由緩存中緩存相關路由信息,記錄下節(jié)點Nl收到SREQ時刻的時間信息TN1—,。及節(jié)點Nl在網絡中的位置信息LN1—SKEQ。然后在自己提供的服務列表中查找匹配的服務,發(fā)現本節(jié)點無法提供復印服務,則將SREQ包中hop信息加1后向周圍節(jié)點SP1和SP2轉發(fā)該SREQ包。 節(jié)點SP1收到節(jié)點Nl發(fā)來的SREQ包后首先在本節(jié)點的前向路由緩存中緩存相關路由信息,記錄下節(jié)點SP1收到SREQ時刻的時間信息及節(jié)點SP1在網絡中的位置信息。然后在自己提供的服務列表中查找匹配的服務,發(fā)現本節(jié)點可以提供復印服務,那么稍微等待一小段時間,然后構造服務回復包SREP,SREP中包含節(jié)點SP1收到SREQ時在網絡中的位置信息LSP1—,。和節(jié)點SP1發(fā)送SREP時刻在網絡中的位置信息LSP1—,p,最后向Nl節(jié)點發(fā)送服務回復包SREPSP1。 節(jié)點SP2收到節(jié)點N2發(fā)來的SREQ包后首先在本節(jié)點的前向路由緩存中緩存相關路由信息,記錄下節(jié)點SP2收到SREQ時刻的時間信息及節(jié)點SP2在網絡中的位置信息。然后在自己提供的服務列表中查找匹配的服務,發(fā)現本節(jié)點可以提供復印服務,那么稍微等待一小段時間,然后構造服務回復包SREP,SREP中包含節(jié)點SP2收到SREQ時在網絡中的位置信息LSP2—,。和節(jié)點SP2發(fā)送SREP時刻在網絡中的位置信息LSP2—SKEP。后向Nl節(jié)點發(fā)送服務回復包SREPSP2。
(3)處理服務回復包
a.根據SREPSP1包中節(jié)點SPl的位置信息和相應的時間信息以及前向路由緩存中節(jié)點Nl緩存的位置信息和相應的時間信息計算LETN1—SP1,計算的方法如前所述,假設此時得到的LEVSP1值為8時20分。 b.由于SREPSP1中PET初值為無窮大,于是更新PET,將PET的值更新為LETN1—SP1的值8時20分。 c.在節(jié)點Nl的返向路由緩存中緩存相關路由信息,記錄下提供如提供服務節(jié)點
SPl的節(jié)點信息、發(fā)送該SREP包的后置節(jié)點為SPl節(jié)點等相關信息。 d.根據前向路由緩存中緩存的路由信息向節(jié)點SR轉發(fā)該SREPSP1包。 節(jié)點Nl收到節(jié)點SP2發(fā)來的服務回復包SREPSP2后,檢查本節(jié)點得到節(jié)點Nl不是
服務請求節(jié)點,于是對SREPSP2進行如下處理 a.根據SREPSP2包中節(jié)點SP2的位置信息和相應的時間信息以及前向路由緩存中節(jié)點Nl緩存的位置信息和相應的時間信息計算LETN1—SP2,計算的方法如前所述,假設此時得到的LET^M值為8時40分。 b.由于SREPSP2中PET初值為無窮大,于是更新PET,將PET的值更新為LETN1—SP2的值8時40分。 c.在節(jié)點Nl的返向路由緩存中緩存相關路由信息,記錄下提供如提供服務節(jié)點
SP2的節(jié)點信息、發(fā)送該SREP包的后置節(jié)點為SP2節(jié)點等相關信息。 d.根據前向路由緩存中緩存的路由信息向節(jié)點SR轉發(fā)該SREPSP2包。 節(jié)點SR收到節(jié)點Nl發(fā)來的服務回復包SREPSP1后,檢查本節(jié)點得到節(jié)點SR是服
務請求節(jié)點,于是對SREPSP1進行如下處理 a.根據SREP^包中節(jié)點N1的位置信息和相應的時間信息以及前向路由緩存中節(jié)點SR緩存的位置信息和相應的時間信息計算LETSK—N1,計算的方法如前所述,假設此時得到的LEVN1值為8時45分。 b.由于LETSK—N1比PET大,則不更新PET。 c.在返向路由緩存中緩存相關路由信息,該緩存信息如前所述。 節(jié)點SR收到節(jié)點Nl發(fā)來的服務回復包SREPSP2后,檢查本節(jié)點得到節(jié)點SR是服
務請求節(jié)點,于是對SREPSP2進行如下處理 a.根據SREPSP2包中節(jié)點Nl的位置信息和相應的時間信息以及前向路由緩存中節(jié)點SR緩存的位置信息和相應的時間信息計算LETSK—N1,計算的方法如前所述,假設此時得到的LEVN1值為8時45分。 b.由于LETSK—N1比PET大,則不更新PET。 c.在返向路由緩存中緩存相關路由信息,該緩存信息如前所述。 服務選擇的步驟如下 (1)選擇能量符合要求的節(jié)點 服務請求節(jié)點SR從返回的SREP中可以得到服務提供節(jié)點的剩余能量信息,這里假設節(jié)點SPl和節(jié)點SP2的剩余能量能夠滿足執(zhí)行該服務所需要的能量,那么轉而進行步驟二的選擇。[OOSS] (2)選擇PET符合要求的節(jié)點 服務請求節(jié)點SR將計算得到的PET與該服務的執(zhí)行時間與服務發(fā)現時間之和進行比較,這里假設該服務的執(zhí)行時間與服務發(fā)現時間之和為20分鐘,而當前時間為8時15分。即PET的值必須大于8時35分,由于收到的SREPSP1包中的PET值為8時20分,收到的SREPSP2包中的PET值為8時40分,只有節(jié)點SP2符合要求,于是將節(jié)點SP2作為該服務的服務提供節(jié)點。
權利要求
一種無線自組織網絡環(huán)境中可靠的服務發(fā)現和服務選擇方法,由可靠的服務發(fā)現和可靠的服務選擇兩個部分組成,其特征在于所述可靠的服務發(fā)現包括發(fā)送服務請求、響應服務請求、處理服務回復包三個階段,可靠的服務選擇包括選擇能量符合要求的節(jié)點、選擇路徑到期時間符合要求的節(jié)點、選擇跳數最小的節(jié)點三個階段。
2. 根據權利要求1所述的可靠的服務發(fā)現和服務選擇方法,其特征在于所述的服務發(fā) 現的三個階段其步驟具體如下(1) 發(fā)送服務請求當節(jié)點需要一個服務時,發(fā)起一個服務發(fā)現請求,然后在前向路由緩存該節(jié)點發(fā)送SREQ的時間和在網絡中的位置,接著向它周圍的節(jié)點發(fā)送該SREQ包;(2) 響應服務請求。網絡中節(jié)點在收到SREQ包后首先在本節(jié)點的前向路由緩存中緩存相關路由信息,然 后在自己提供的服務列表中查找匹配的服務,如果沒有找到說明自己沒有能力提供該服 務,那么將SREQ包中hop信息加1后向周圍節(jié)點轉發(fā)該SREQ包;如果找到,則說明本節(jié)點 有能力提供該服務,該節(jié)點稍微等待一小段時間,然后構造服務回復包SREP, SREP根據前 向路由緩存中的pre-node返回;(3) 處理服務回復包網絡中節(jié)點在收到SREP后,檢查本節(jié)點是不是服務請求節(jié)點,如果不是服務請求節(jié) 點,則對SREP進行如下處理a. 根據SREP包中節(jié)點的位置信息和相應的時間信息以及前向路由緩存中緩存的相關 路由信息計算LET (Link Expiration Time,鏈路到期時間);b. 如果LET比SREP中PET (Path Expiration Time,路徑到期時間)小,則更新PET,將 PET的值更新為LET的值;c. 在返向路由緩存中緩存相關路由信息;d. 根據前向路由緩存中緩存的相關路由信息轉發(fā)SREP給前置節(jié)點; 如果是服務請求節(jié)點,對SREP進行如下處理a. 根據SREP包中的節(jié)點的位置信息和相應的時間信息以及之前緩存的相關路由信息 計算LET ;b. 如果LET比PET小,則更新PET,將PET的值更新為LET的值;c. 在返向路由緩存中緩存相關路由信息;
3. 根據權利要求1所述的可靠的服務發(fā)現和服務選擇方法,其特征在于所述的可靠的 服務選擇方法其三個階段具體步驟如下(1) 選擇能量符合要求的節(jié)點服務請求節(jié)點從返回的SREP中可以得到服務提供節(jié)點的剩余能量信息,并將其與執(zhí) 行該服務所需要的能量進行比較,篩選出能夠提供服務執(zhí)行所需要能量的節(jié)點作為服務候 選節(jié)點如果經過篩選后的節(jié)點數量等于O,則表示本次服務發(fā)現失敗;如果等于l,則將該 節(jié)點作為服務提供節(jié)點;如果大于l,則轉而進行步驟二的選擇;(2) 選擇PET符合要求的節(jié)點服務請求節(jié)點將計算得到的PET與該服務的執(zhí)行時間及服務發(fā)現時間之和進行比較, 篩選出PET大于服務執(zhí)行時間及服務發(fā)現時間之和的節(jié)點作為服務候選節(jié)點;經過篩選后如果節(jié)點數量等于0,則選擇步驟一中PET最大的節(jié)點作為服務提供節(jié)點;如果等于1,則將 該節(jié)點作為服務提供節(jié)點;如果大于l,則轉而進行步驟三的選擇; (3)選擇跳數最小的節(jié)點服務請求節(jié)點從返回的SREP中可以得到服務提供節(jié)點的跳數信息,選擇跳數最小的 節(jié)點作為服務提供節(jié)點;如果跳數最小的節(jié)點有多個,則比較它們的PET,選擇PET最大的 節(jié)點作為服務提供節(jié)點。
全文摘要
本發(fā)明涉及一種無線自組織網絡環(huán)境中可靠的服務發(fā)現和服務選擇方法,分為可靠的服務發(fā)現和可靠的服務選擇兩個部分??煽康姆瞻l(fā)現包括發(fā)送服務請求、響應服務請求、處理服務回復包三個階段,可靠的服務選擇包括選擇能量符合要求的節(jié)點、選擇路徑到期時間PET符合要求的節(jié)點、選擇跳數最小的節(jié)點三個階段。本發(fā)明能夠從自組織網絡中選擇相對穩(wěn)定可靠的服務,并且能夠很好地適應自組織網絡的網絡拓撲多變和節(jié)點能量有限的特點。
文檔編號H04L12/56GK101741916SQ20081020272
公開日2010年6月16日 申請日期2008年11月14日 優(yōu)先權日2008年11月14日
發(fā)明者任剛, 余平, 凌力, 孫未未, 彭勃, 董家麒 申請人:復旦大學