專利名稱:在網(wǎng)絡上捆綁消息的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及在計算機網(wǎng)絡上傳播信息的技術領域。更具體地,本發(fā)明涉及計算機網(wǎng)絡中的客戶機服務器體系結構,其中客戶機通過生成請求消息和接收數(shù)據(jù)消息從服務器搜索信息項。
背景技術:
現(xiàn)代計算機網(wǎng)絡通常涉及維持(具有)大的信息數(shù)據(jù)庫(項)的系統(tǒng)/代理/服務器。例如,yahoo.com提供了涉及多個大數(shù)據(jù)庫的新聞、股票市場報價、體育信息、多媒體內容等。數(shù)據(jù)庫被用于對來自各種客戶機系統(tǒng)(信息搜索者/搜索者)的對信息項的子集的請求提供服務。
滿足這些請求的最明顯的方法是為每個單獨的客戶機發(fā)送所請求的項目的子集。但是,這種方法可能增加服務器的計算資源以及網(wǎng)絡資源的負擔??商娲?,服務器可以為所有信息搜索者廣播所有的項目,然后各個接收者從中提取所請求的信息。該方案導致網(wǎng)絡帶寬資源的浪費,并且同時使每個接收者忙于從大量信息中搜索而不堪重負。一種同時解決服務器以及客戶機系統(tǒng)的計算成本的矛盾需求的方法是對多個客戶組所請求的項目分組,然后向相應客戶組提供響應集。在該方法中,可以實現(xiàn)矛盾需要之間的折衷,最優(yōu)化全局目標。
在對來自客戶機的請求的服務中存在各種類型的成本。服務器在每次向客戶機發(fā)送信息束時會產生一定的成本。給定的客戶機可能沒有收到所請求的準確數(shù)量的項目,它可能接收到多于/少于所請求數(shù)量的項目。存在與客戶機沒有收到的每個項目有關的成本。以及,與收到的但沒有請求的每個項目相關的成本,因為對于客戶機存在附加的負擔來剔除這種額外的信息。
美國專利No.5805823提供了用于在客戶機-服務器網(wǎng)絡中的客戶應用之間的最佳多路消息聚合的系統(tǒng)和方法(a system and method for optimalmultiplexed message aggregation between client applications inclient-server network)。該發(fā)明提供了一種向客戶機多路傳輸消息的消息體系結構。該發(fā)明只進行了普通、簡單的消息聚合,而不是對客戶機。另外,實現(xiàn)的聚合只是普通的和簡單的,沒有限定最佳的技術以便節(jié)省計算資源。
美國專利No.2002020124101A1涉及通過選擇性的提前傳遞在服務器側優(yōu)化到客戶機的內容傳遞,從而能夠根據(jù)服務器的當前負載優(yōu)化性能。該發(fā)明基于概率測量預先向客戶機傳遞內容。該發(fā)明沒有考慮到一個或多個客戶的實際請求。
美國專利公開No.20010027494A1捆綁去往同一個地址或子地址的一個或多個消息。只為同一個客戶機和被其服務的計算設備管理數(shù)據(jù)包。根據(jù)用戶定義的時間限制或包的大小進行捆綁。該發(fā)明沒有公開任何實現(xiàn)在捆綁消息和單獨傳送它們之間進行優(yōu)化的方法。
美國專利No.6407994提供了為了在電信網(wǎng)絡中傳送捆綁消息的系統(tǒng)和方法。該專利只為特定的客戶機捆綁一個或多個消息,而不考慮對相同信息項提出請求的其它客戶機。由此,雖然該專利減少了帶寬需求,但沒有為解決在服務器或客戶機端的處理開銷提供任何手段。
發(fā)明內容
本發(fā)明的目的是通過同時對客戶機及它們的請求進行聚類(cluster),將滿足客戶機的請求的總成本最小化。最優(yōu)化涉及服務器和客戶機兩者的計算成本。
為了實現(xiàn)所述目的,所提出的發(fā)明首先公式化在服務來自各種客戶機的請求中所涉及的各種成本。然后,本發(fā)明采用同時對客戶機和項目聚類的方法和系統(tǒng)。在可配置的預先定義值的范圍上對多個請求和客戶機進行聚類,并計算每一個選擇的聚類數(shù)量值的成本。本發(fā)明采用模糊聚類算法同時對客戶機和項目進行聚類,從而最小化滿足客戶機的請求的總成本。
在所附權利要求書中說明了本發(fā)明特有的新穎特征。但是,當結合附圖閱讀本說明書時,通過參考后面對優(yōu)選實施例的詳細介紹可以更好的理解發(fā)明本身以及所采用的優(yōu)選方式、進一步的目的和優(yōu)點,其中圖1示出了由服務器(存儲項目)和客戶機構成的基本的網(wǎng)絡結構。
圖2示出了一般的計算系統(tǒng)的內部結構,在其上通過使用它們作為服務器以及客戶機,可以實現(xiàn)本發(fā)明。
圖3是用于這里所介紹的方法的流程圖。
圖4是用于以給定的聚類數(shù)量同時對項目和客戶機進行聚類的處理過程的流程圖。
具體實施例方式
圖1示出了可以實現(xiàn)本發(fā)明的一般的客戶機-服務器網(wǎng)絡。它包括連接到網(wǎng)絡(1.1)的一個或多個服務器(1.6)。網(wǎng)絡和范圍覆蓋了所有類型的網(wǎng)絡,例如局域網(wǎng)、因特網(wǎng)等。并且在網(wǎng)絡上還存在不同的客戶機(1.2、1.3、1.4、1.5)。在網(wǎng)絡上的不同客戶機之間的互連可以通過任何已知的通信方式,例如有線鏈接、無線鏈接或者通過紅外線傳輸。網(wǎng)絡拓撲則覆蓋所有已知的拓撲,例如星形、線形、環(huán)形或者它們的任意組合??蛻魴C與服務器使用任何已知的通信協(xié)議進行通信,例如TCP/IP或以太網(wǎng)。對于服務器和客戶機的數(shù)量沒有限制,數(shù)據(jù)可以位于一個服務器上或者分布在多個服務器上。服務器(1.6)用于信息存儲,客戶機是信息搜索者,向服務器發(fā)送請求以獲得服務器中包含的信息項目。
客戶機(1.2、1.3、1.4、1.5)包括電子設備,例如個人計算機、移動電話、交互式電視等,由人操作或由代表個人或組織的利益工作的軟件代理操作。
圖2示出了可以實施本發(fā)明的一般的計算系統(tǒng)(2.1)的框圖。計算機系統(tǒng)(2.1)包括通過系統(tǒng)總線(2.2)的幫助互相連接在一起的各種子系統(tǒng)。微處理器(2.3)通信并控制其它子系統(tǒng)的功能。微處理器(2.3)作為控制單元與存儲器(2.4)一起操作,執(zhí)行由存儲的指令定義的操作。在一般的計算機系統(tǒng)中,控制模塊是任何商業(yè)上可用的處理器,例如,Intel的x86處理器和Motorola的680×0系列。計算系統(tǒng)可以是單處理器系統(tǒng)或者在單個系統(tǒng)或網(wǎng)絡上使用兩個或多個處理器。該控制模塊還控制計算系統(tǒng)(未示出)的其它部件的功能??刂颇K(2.3)通過互連計算設備各部分的系統(tǒng)總線(2.2)訪問所述存儲器(2.4)??刂颇K執(zhí)行用于計算機系統(tǒng)的基本功能的稱作操作系統(tǒng)的程序。操作系統(tǒng)的一些例子為UNIX、WINDOWS和DOS。這些操作系統(tǒng)為各種程序分配計算機系統(tǒng)資源,并且方便用戶與系統(tǒng)的交互。存儲器(2.4)通過存儲程序執(zhí)行所需的指令和數(shù)據(jù)支持微處理器。存儲器的例子包括隨機訪問存儲器裝置,例如動態(tài)隨機訪問存儲器(DRAM)或靜態(tài)存儲器(SRAM)。存儲裝置(2.5)用于永久保持數(shù)據(jù)和指令,例如操作系統(tǒng)和其它程序。視頻接口(2.6)用作系統(tǒng)總線和顯示裝置(2.7)之間的接口,顯示裝置(2.7)通常是視頻顯示單元,例如監(jiān)視器。網(wǎng)絡接口(2.8)用于通過有線或無線的方式將計算機與網(wǎng)絡上的其它計算機連接,該網(wǎng)絡可以是局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)或者任何其它類型的計算機網(wǎng)絡。該網(wǎng)絡接口也可以用來連接因特網(wǎng)。計算機系統(tǒng)還可以包含聲卡(2.9)。系統(tǒng)通過輸入/輸出接口(2.10)連接到各種輸入設備,例如鍵盤(2.11)和鼠標(2.12),以及輸出設備如打印機(2.13)。這些子系統(tǒng)的各種配置都是可能的。還應當注意到,實現(xiàn)本發(fā)明的系統(tǒng)可以使用比上述子系統(tǒng)更多或更少的子系統(tǒng)。
在本發(fā)明的優(yōu)選實施例中,指令以計算機程序的形式存儲在存儲裝置(2.5)中。該程序包含用于在本說明書中所介紹的不同算法的編碼的指令。在運行程序時,這些指令被傳送到存儲器(2.4)中,并且處理器(2.3)執(zhí)行這些指令??梢酝ㄟ^例如鍵盤(2.11)和鼠標(2.12)的輸入設備給出指令來人工控制該系統(tǒng)。無論是由程序或由用戶輸入的指令都駐留在存儲器(2.4)中,并且隨后由微處理器(2.3)遵照執(zhí)行。應當理解,本發(fā)明并不限于由計算機系統(tǒng)或其上運行的軟件構成的任何特定的硬件。
本領域的普通技術人員應當理解,用于由客戶機產生服務請求以及由服務器對它們進行處理的各種手段是計算機程序。這些程序能夠以嵌入的形式存在于系統(tǒng)的硬件中或者體現(xiàn)在各種計算機可讀介質中。計算機可讀介質可以采取為在特定信息處理系統(tǒng)中的實際使用編碼的編碼格式的形式。在本文中的計算機程序手段(裝置)或計算機程序的意思是任何語言的指令集的任何表達、代碼或符號,使具有信息處理能力的系統(tǒng)直接或者執(zhí)行下面的兩者之一或者都執(zhí)行之后實現(xiàn)特定的功能a)轉換為另一種語言、代碼或符號。
b)以不同的材料形式再現(xiàn)。
在圖2介紹的例子并不意味著對結構的限制,所述手段的結合裝置的配置可以根據(jù)實施而變化。可以采用適于實現(xiàn)這里介紹的手段任何類型的計算機系統(tǒng)或其它設備來實現(xiàn)本發(fā)明。典型的硬件和軟件的組合是具有計算機程序的通用計算機系統(tǒng),當裝載和執(zhí)行時,該計算機程序控制計算機系統(tǒng),從而實現(xiàn)這里所介紹的手段??梢允褂玫慕Y合裝置的其它例子為筆記本計算機或手持計算機、PDA等。
本發(fā)明所要解決的問題可以定義為假設r1,…,rN為N個信息/消息項,s1,…,sM為M個客戶機。假設 假設R1,…,和RK為發(fā)送到客戶機的子集S1,…,和SK的項目的子集。假設R1,…,和RK由N維二進制列向量表示,S1,…,和SK由M維二進制列向量表示。并且,假設R=[rij]=[R1,…,RK]以及S=[sij]=[S1,…,SK]表示相應的矩陣。即, 則,服務器的成本與K成正比,客戶機的成本依賴于它接收到的額外項目的數(shù)量和它請求但沒有收到的項目的數(shù)量。假設T=[tij],這里tij是sj收到的ri的拷貝的數(shù)量。
tij=Σl=1KrilSjl]]>則由sj收到的項目的總數(shù)為∑itij。因此,向客戶機的S1,…,SK集合發(fā)送項目R1,…,RK的總成本為
Φ(R,S,K)=αK+βΣj=1M|tj▿aj|--(1)]]>這里,aj=[a1j,…,aNj]是表示由sj請求的項目的向量,tj=[t1j,…,tNj]是表示由sj收到的項目的向量,|xy|表示在向量x和y之間的對稱差的基數(shù)(the cardinality of the symmetric difference)。則問題是找到R、S和K使Φ(R,S,K)最小化。
上述問題的解由矩陣A=[aij]確定。作為一個簡單的例子,考慮M個客戶機的情況,其中每個只搜索一個項目,搜索M個不同的項目(即,M<N)。因為從最優(yōu)化的角度考慮,所有的客戶機都是相同的,所以假設由這些客戶機請求的M個項目被分為K個相等的組,并且每組項目被多點傳送(multicast)到相應的請求該組中項目的客戶機集合。則,|tjaj|=M/K-1,解上述最優(yōu)化問題得到K=Mβ/α.]]>通過上述方程式得到的推論之一是僅當βM2>a時,項目應當被分組并多點傳送以滿足請求,即,服務器的處理成本至少比客戶的成本重要M倍。
本發(fā)明提出了通過客戶機和項目的聚類解決上述優(yōu)化問題。在圖3中示出了所涉及的基本步驟。首先,定義聚類數(shù)量的值的范圍,并且將K設置為最小值(3.1)。使用客戶機的請求的數(shù)據(jù)(3.2),將客戶機(搜索者)和項目同時聚類為‘K’個聚類(3.3)。然后計算以結果項目和客戶機聚類進行的處理的成本(3.4)。如果當前的成本小于之前得到的最小成本(如果有的話)(3.5),則當前成本作為最小成本保存。而且,將當前聚類的數(shù)量記為聚類的最佳數(shù)量。然后K加1(3.6)。如果K大于所定義的聚類的最大值(3.7),則輸出所保存的聚類的最佳數(shù)量并用該數(shù)量對項目和客戶機進行聚類(3.8)。重復步驟3.3到3.6,直到達到聚類的最大值。下面將更詳細的說明同時對項目和客戶機聚類(3.3)的方法當A是任意二進制矩陣時,難以找到上述問題的最佳解。本發(fā)明提出了通過找到次最佳解近似解決上述問題的聚類算法。
解法是通過以下步驟進行的在一個給定的范圍內對于K的各種值找到使Φ(R,S,K)最小化的R、S,并且然后選擇使目標函數(shù)最小化的K。
下面給出了基于模糊集合理論的最優(yōu)化算法,對于一個給定的K優(yōu)化Φ(R,S,K),為了簡單起見表示為Φ(R,S)。對于一個給定的K,解優(yōu)化為
Φ(R,S)=Σj=1M|tj▿aj|--(2)]]>假設元素sj屬于第l組具有模糊組員(fuzzy membership)sjl,并且ri屬于第l組具有模糊組員ril,這里sjl∈
,ril∈
。這些模糊組員要求滿足Σi=1Kril=1,]]>以及(3)Σj=1KSjl=1---(4)]]>為了實現(xiàn)要求最小化的該新的目標函數(shù)Φ(R,S)=Σj=1M|tj▿aj|+ρ(R,S)+Σi=1Nηi(Σl-1Kril-1)+Σj=1Mμl(Σl=1Ksjl-1)--(5)]]>這里,ρ(R,S)是在指定模糊程度中起作用的正則化函數(shù)(regularizationfunction),ηi和μj是分別對應于條件(3)和(4)的拉格朗日乘數(shù)。tj和aj之間的模糊對稱差計算如下|tj▿aj|=Σi=1N|tij-aij|]]>ρ(R,S)的例子之一為ρ(R,S)=λrΣi=1NΣl=1Krillog(ril)+λsΣj=1MΣl=1Ksjllog(sjl)--(6)]]>注意,當sjl和ril等于1或0時,在ρ(R,S)中的各項最大化。λr和λs是指定模糊程度的加權參數(shù)。假設uij=sign(tij-aij),這里 則|tj▿aj|=Σi=1Nuij(tij-aij)]]>對于相對于sjl和ril,ρ(R,S)如(6)中所給定的Φ的最優(yōu)性的必要條件如下∂Φ∂sjl=Σi=1Nuijril-λs(1+log(sjl))+μj=0]]>以及 (7)∂Φ∂ril=Σj=1Muijsjl-λr(1+log(ril))ηi=0--(8)]]>
以及,在方程式(3)和(4)中定義了相對于ηi和μj的必要條件。由方程式(3)、(4)、(7)和(8)解出sjl和ril,得到sjl=exp(-(ril/λs+1))Σm=1Kexp(-(rjm/λs+1))--(9)]]>ril=exp(-(sil/λr+1))Σm=1Kexp(-(sim/λr+1))--(10)]]>這里,rjl=Σi=1Nuijril]]>并且sil=Σj=1Muijsjl]]>對(9)和(10)使用皮卡(Picard)迭代,優(yōu)化在(5)中給出的目標函數(shù)。以用于sjl和ril的初始隨機值開始,在每次迭代分別使用(9)和(10)更新sjl和ril的值(defuzzy),直到達到收斂或某些終止條件。最后,將模糊組員sjl和ril逆模糊化,從而得到客戶機和項目的明確的聚類。圖4示出了算法的各個步驟,總結如下步驟1.根據(jù)由各個客戶機作出的請求形成矩陣A=[aij](4.1)。
步驟2.隨機初始化sjl和ril,使得滿足方程式(3)和(4)(4.2)。
步驟3.用公式(9)計算Sjl的新集合,sjl’。4.3)步驟4.用公式(10)計算ril的新集合,ril’。(4.3)步驟5.如果Σi,l|ril′-ril|>θr,]]>并且Σj,l|sjl′-sjl|>θs(4.4),]]>則拷貝ril’到ril,拷貝sjl’到sjl,并回到步驟3。(4.5,4.6)步驟6.拷貝ril’到ril,拷貝sjl’到sjl。(4.7)步驟7.對sjl和ril進行逆模糊化。(4.7)步驟8.結束。
逆模糊化將模糊組員的向量轉換為二進制值的向量。換句話說,根據(jù)模糊組員,將項目和客戶機分配到各個聚類中。假設f=(f1,…,fK)表示在聚類Cl中的項目或客戶機的模糊組員,l=1,…,K。下面給出的方法對f逆模糊化,以得到g=(g1,…,gK),這里gi是二進制,i=1,…,K。假設f’=maxl(f-l),則使用下面的公式得到g的元素 其中γ是小于1的常數(shù)。
其它修改正則化項ρ(R,S)的其它形式可以是ρ(R,S)=λrΣi=1NΣl=1Kril2+λsΣj=1MΣl=1Ksjl2--(10)]]>將其用在公式(5)中,得到sjl和ril的更新公式rjl=12λs(1KΣm=1Ks^m-s^l)--(11)]]>sjl=12λs(1KΣm=1Kr^m-r^l)--(12)]]>顯然,對于本領域的普通技術人員,以上所述僅僅是說明性的,不是要窮舉或限制,只以例子的形式提出,可以在上述本發(fā)明的范圍內進行各種修改。本發(fā)明可以以硬件、軟件或硬件和軟件的組合的形式實現(xiàn)。在本發(fā)明中所介紹的模塊可以以在一個計算機系統(tǒng)上以集中的方式實現(xiàn),或者分散在幾個互連的計算機系統(tǒng)上。適于實現(xiàn)這里所介紹的方法的任何類型的計算機系統(tǒng)或其它設備都是合適的。典型的硬件和軟件的組合是具有計算機程序的通用計算機系統(tǒng),當裝載和執(zhí)行時,該程序控制計算機系統(tǒng),從而實現(xiàn)這里所介紹的方法。
因此,本發(fā)明并不限于為了公開的目的而選擇的特定的例子,而是試圖覆蓋所有不脫離本發(fā)明的許可范圍的變化和修改。因此,本發(fā)明并不由這里所包含的介紹或附圖限定,而僅由權利要求書限定。
權利要求
1.一種在客戶機-服務器網(wǎng)絡中使處理客戶機請求的成本最小化的方法,包括以下步驟-為進入的客戶機請求將被聚類在其中的聚類數(shù)量選擇值的范圍;-為每個選擇的值同時對請求和發(fā)請求的客戶機進行聚類;-計算處理每個請求和發(fā)請求的客戶機的聚類的成本;以及-確定提供最小處理成本的聚類組合。
2.根據(jù)權利要求1的方法,還包括將項目的聚類分配到各自的客戶機的聚類的步驟。
3.根據(jù)權利要求1的方法,其中為聚類數(shù)量選擇值的范圍的步驟是可配置的手工過程。
4.根據(jù)權利要求1的方法,其中對為聚類數(shù)量選擇的范圍中的每個值進行聚類的步驟,包括以下步驟-隨機地初始化請求和發(fā)請求的客戶機的模糊組員值;-迭代地計算模糊組員值,直到模糊組員值的變化的和小于可配置的閾值;以及-對模糊組員值逆模糊化,以得到項目和客戶機的實際聚類。
5.一種在客戶機-服務器網(wǎng)絡中用于最小化服務客戶機請求的成本的系統(tǒng),包括-用于為進入的客戶機請求將被聚類到其中的聚類數(shù)量選擇值的范圍的選擇裝置;-為每個選擇的值同時對請求和發(fā)請求的客戶機進行聚類的聚類裝置;-為每個選擇的值建立總處理成本的計算設備;以及-用于建立最小處理成本的確定裝置。
6.根據(jù)權利要求5的系統(tǒng),還包括將項目的聚類分配到各自的客戶機的聚類的裝置。
7.根據(jù)權利要求5的系統(tǒng),其中發(fā)請求的客戶是連接到作為服務由客戶機產生的請求的一個或多個計算設備的請求產生計算設備。
8.根據(jù)權利要求5的系統(tǒng),其中該請求包括客戶機需要的信息、消息和數(shù)據(jù)。
9.根據(jù)權利要求7的系統(tǒng),其中所述裝置位于一個服務器設備或者多個服務器設備的組合上,所述服務器設備包括-系統(tǒng)總線;-連接到該系統(tǒng)總線的通信單元;-連接到該系統(tǒng)總線上的包含指令集合的存儲器;以及-執(zhí)行該存儲器中的該指令的控制單元。
10.根據(jù)權利要求7的系統(tǒng),其中客戶機和服務器計算設備通過任何適合的計算機網(wǎng)絡互相連接,該網(wǎng)絡包括使用包括環(huán)形、總線形和星形的任何希望的網(wǎng)絡拓撲的以太網(wǎng)、因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和域域網(wǎng)。
11.一種計算機程序產品,包括存儲在計算機可讀存儲介質上的計算機可讀程序代碼,用于在客戶機-服務器網(wǎng)絡中最小化處理客戶機請求的總成本,包括-用于為進入的客戶機請求將被聚類到其中的聚類數(shù)量選擇值的范圍的計算機可讀程序代碼裝置;-為每個選擇的值同時對請求和客戶機進行聚類的計算機可讀程序代碼裝置;-為每個聚類數(shù)量的選擇的值計算處理的總成本的計算機可讀程序代碼裝置;以及-用于確定最小處理成本的計算機可讀程序代碼裝置。
12.根據(jù)權利要求11的計算機程序產品,進一步包括用于將請求的聚類分配到各自的客戶機的聚類的計算機可讀程序代碼裝置。
13.根據(jù)權利要求11的計算機程序產品,其中為在聚類數(shù)量的選定范圍內的每個值進行聚類的計算機可讀程序代碼裝置包括-用于隨機地初始化項目和客戶機的模糊組員值的計算機可讀程序代碼裝置;-用于迭代地計算模糊組員值直到組員值的變化的和小于可配置的閾值的計算機可讀程序代碼裝置;以及用于對模糊組員值逆模糊化以得到項目和客戶機的實際聚類的計算機可讀程序代碼裝置。
全文摘要
本發(fā)明介紹了在客戶機-服務器網(wǎng)絡中優(yōu)化網(wǎng)絡帶寬并在消息/數(shù)據(jù)傳輸中得到更高效率的方法和系統(tǒng)。本發(fā)明提出對客戶機請求和數(shù)據(jù)項聚類從而最優(yōu)化網(wǎng)絡傳輸并降低分別在服務器和客戶機端發(fā)送和挑選/修剪數(shù)據(jù)項中所涉及的處理成本。
文檔編號G06F15/173GK1509038SQ200310121250
公開日2004年6月30日 申請日期2003年12月15日 優(yōu)先權日2002年12月16日
發(fā)明者M·庫馬爾, R·克里西納普拉姆, K·庫馬姆魯, M 庫馬爾, 砟仿, 鏤髂善綻 申請人:國際商業(yè)機器公司