專利名稱:執(zhí)行數(shù)據(jù)中間處理的方法以及關(guān)聯(lián)的計算機程序產(chǎn)品、數(shù)據(jù)中間處理設(shè)備和信息系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信,更具體地,涉及在數(shù)據(jù)通信網(wǎng)絡(luò)中執(zhí)行數(shù)據(jù)中間處理的方 法,該數(shù)據(jù)通信網(wǎng)絡(luò)能夠傳送用于表示針對由一個或多個分布式數(shù)據(jù)資源提供的數(shù)據(jù)服務(wù) 的請求的數(shù)據(jù)消息,以及在適合的時候傳送對這種請求的響應(yīng),所述請求是以用于數(shù)據(jù)訪 問的第一格式來表達的,所述第一格式定義多個消息參數(shù),所述數(shù)據(jù)消息被編碼為用于在 數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷健1景l(fā)明還涉及關(guān)聯(lián)的計算機程序產(chǎn)品、數(shù)據(jù)中間處理設(shè) 備和信息系統(tǒng)。
背景技術(shù):
復(fù)雜的信息系統(tǒng)環(huán)境常常涉及對信息或功能進行請求的請求側(cè)與對信息進行響 應(yīng)或執(zhí)行所請求功能的響應(yīng)側(cè)之間的不同數(shù)據(jù)模型。此外,這種復(fù)雜環(huán)境中的響應(yīng)側(cè)常常 包括多個數(shù)據(jù)資源,該多個數(shù)據(jù)資源是可以在向外擴展的意義上(涉及不同實體的數(shù)據(jù)分 布在同一類型的目錄的多個實例上)以及在信息樹分布的意義上(不同類型的信息位于不 同類型的目錄中)分布的。在這種復(fù)雜的信息系統(tǒng)環(huán)境中,有必要將某種數(shù)據(jù)中間處理包 括在信息系統(tǒng)中,以允許請求側(cè)與響應(yīng)側(cè)之間的通信。通常,復(fù)雜的信息系統(tǒng)可以在如GSM、UMTS、D-AMPS, CDMA2000、FOMA 或 TD-SCDMA 之類的移動電信系統(tǒng)中找到,具體地,可以在為了管理系統(tǒng)中的各種訂戶數(shù)據(jù)和事務(wù)而需 要的目錄服務(wù)中找到。作為可實施本發(fā)明的環(huán)境的非限制性示例,將在本文的其余部分中 使用移動電信的目錄服務(wù)。歸屬位置寄存器(HLR)和歸屬訂戶服務(wù)器(HSS)是訂戶目錄的兩個示例。目前認 為,對于未來的移動電信系統(tǒng)架構(gòu),如第四代或更高,將訂戶目錄(如HLR或HSS)劃分為 “無數(shù)據(jù)”前端設(shè)備,該“無數(shù)據(jù)”前端設(shè)備對業(yè)務(wù)和信令進行控制但不包含電信目錄數(shù)據(jù); 以及單獨的一般數(shù)據(jù)層,通過基于例如輕量目錄訪問協(xié)議(LDAP)的目錄服務(wù)而實現(xiàn)。這種 目錄的大小可能是巨大的,包含多至幾千萬個訂戶,每個訂戶由多個標識符標識,并且包含 每秒100,000個事務(wù)的量級的總吞吐量,其中,所允許的延遲限于幾毫秒。由于大小的關(guān) 系,數(shù)據(jù)層將必須向外擴展到許多實現(xiàn)的數(shù)據(jù)資源(如LDAP目錄服務(wù)器)上以及在地理上 向外擴展。在這種復(fù)雜和大型的環(huán)境中,數(shù)據(jù)中間處理變?yōu)殛P(guān)鍵任務(wù)。典型地,表示針對數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息由請求方(如軟件應(yīng)用)以用于數(shù) 據(jù)訪問的第一格式來表達。用于數(shù)據(jù)訪問的第一格式遵循預(yù)定義語法,并包括多個消息參 數(shù),其目的在于包含指定所請求的數(shù)據(jù)服務(wù)所必需的數(shù)據(jù)。一旦被創(chuàng)建,數(shù)據(jù)消息就被編碼 為用于傳輸?shù)牡诙袷?。第二格式使得可以將編碼后的數(shù)據(jù)消息方便地發(fā)送至信息系統(tǒng)中 包括的數(shù)據(jù)通信網(wǎng)絡(luò)上。當(dāng)提供所請求的數(shù)據(jù)服務(wù)的數(shù)據(jù)資源是LDAP目錄服務(wù)器時,用于 數(shù)據(jù)訪問的第一格式就是LDAP。然后,將稱作抽象語法標記1 (ASN. 1)的預(yù)定義標準標記與 關(guān)聯(lián)的編碼規(guī)則(如基本編碼規(guī)則(BER)) —起使用,將LDAP格式的數(shù)據(jù)消息編碼為適于 傳輸?shù)牡诙M制格式。
圖1示意了使用基于LDAP的目錄服務(wù)在移動電信系統(tǒng)中執(zhí)行數(shù)據(jù)中間處理的現(xiàn) 有技術(shù)方式。在步驟50中,數(shù)據(jù)中間處理器從數(shù)據(jù)通信網(wǎng)絡(luò)接收傳入的數(shù)據(jù)流16。對數(shù) 據(jù)流16進行分析,以確定完整的輸入數(shù)據(jù)消息12in(稱為成幀的過程)。輸入數(shù)據(jù)消息12in 是由請求方以用于數(shù)據(jù)訪問的第一格式創(chuàng)建的LDAP消息的BER編碼的二進制表示,用于表 示例如針對由以LDAP目錄服務(wù)器的形式存在的多個數(shù)據(jù)資源中的任一個提供的數(shù)據(jù)服務(wù) 的請求,并被編碼為以字節(jié)13序列的形式存在的用于傳輸?shù)钠涞诙袷?。LDAP消息(以其 第一格式存在)包含多個消息參數(shù)。在步驟52中,使用數(shù)據(jù)中間處理器中的解析功能,針 對每個消息參數(shù),對輸入數(shù)據(jù)消息12in進行解析。隨著對消息參數(shù)進行解析,以例如數(shù)據(jù)對 象、記錄或數(shù)據(jù)變量的形式來創(chuàng)建每個所解析參數(shù)的高級表示。因此,在步驟52中,創(chuàng)建運 行時數(shù)據(jù)結(jié)構(gòu)34,作為具有消息參數(shù)的輸入數(shù)據(jù)消息12in的完整表示。不再利用在接收時 存儲在數(shù)據(jù)中間處理器的存儲器中的輸入數(shù)據(jù)消息12in。在步驟M中,數(shù)據(jù)中間處理器執(zhí)行數(shù)據(jù)中間處理邏輯。這包括對所創(chuàng)建的、具有 所解析的消息參數(shù)的運行時數(shù)據(jù)結(jié)構(gòu)34進行處理,以檢查對于即將到來的數(shù)據(jù)中間處理 任務(wù)而言特別關(guān)注的消息參數(shù),并在必要時對消息參數(shù)進行適配以便隨后在接收側(cè)向其目 的地傳送數(shù)據(jù)消息。對消息參數(shù)進行適配的步驟包括將運行時數(shù)據(jù)結(jié)構(gòu)34修改為修改后 的版本34’,反映由數(shù)據(jù)中間處理邏輯在步驟M期間生成的任何改變的、刪除的或添加的 消息參數(shù)。在一些情況下,這可以包括將整個運行時數(shù)據(jù)結(jié)構(gòu)34拷貝為拷貝34’。一旦數(shù)據(jù)中間處理邏輯完成在步驟M中對運行時數(shù)據(jù)結(jié)構(gòu)34/34’的處理,數(shù)據(jù) 中間處理器就通過將處理后的運行時數(shù)據(jù)結(jié)構(gòu)34’編碼為用于傳輸?shù)牡诙袷?,在步驟56 中從頭開始構(gòu)建新的輸出數(shù)據(jù)消息12。ut。最后,在數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流18中 發(fā)送由此產(chǎn)生的輸出數(shù)據(jù)消息12。ut。盡管認為上述現(xiàn)有技術(shù)方式在執(zhí)行數(shù)據(jù)中間處理時能夠達到其目的,但是本發(fā)明 的發(fā)明人已意識到該方式的性能問題,其在存儲器利用率方面和處理成本方面都不高效。 所造成的缺點是信息系統(tǒng)中請求與響應(yīng)之間的延遲可能升高至不可接受的水平。因此,需要改進在復(fù)雜的信息系統(tǒng)中執(zhí)行數(shù)據(jù)中間處理的方式。
發(fā)明內(nèi)容
相應(yīng)地,本發(fā)明的目的是消除或減輕上述問題中的至少一些。作為本發(fā)明背后的概念思想,本發(fā)明的發(fā)明人已意識到,可以通過僅仔細選擇消 息參數(shù)的子集以進行解析,從而僅產(chǎn)生僅表示所選子集中的所解析參數(shù)的、受限的運行時 數(shù)據(jù)結(jié)構(gòu),來避免將輸入數(shù)據(jù)消息的所有消息參數(shù)完全解析為完整的運行時數(shù)據(jù)結(jié)構(gòu)。由 于發(fā)明人的這種見解,使處理時間以及存儲處理方面的改進變得可行。已經(jīng)將該概念思想簡化為至少根據(jù)以下所述的本發(fā)明的方面和實施例來實施。因此,本發(fā)明的一方面在于一種在數(shù)據(jù)通信網(wǎng)絡(luò)中執(zhí)行數(shù)據(jù)中間處理的方法,所 述網(wǎng)絡(luò)能夠傳送用于表示針對由一個或多個分布式數(shù)據(jù)資源提供的數(shù)據(jù)服務(wù)的請求的數(shù) 據(jù)消息,以及在適合的時候傳送對這種請求的響應(yīng),所述請求是以用于數(shù)據(jù)訪問的第一格 式來表達的,所述第一格式定義多個消息參數(shù),所述數(shù)據(jù)消息被編碼為用于在數(shù)據(jù)通信網(wǎng) 絡(luò)中傳輸?shù)牡诙袷?,所述方法包括從所述?shù)據(jù)通信網(wǎng)絡(luò)接收傳入的數(shù)據(jù)流;
對傳入的數(shù)據(jù)流進行分析以確定所述傳入的數(shù)據(jù)流中的輸入第二格式消息;通過對所述多個消息參數(shù)的所選子集進行解析,對輸入第二格式消息的一部分進 行處理;產(chǎn)生運行時數(shù)據(jù)結(jié)構(gòu)以表示所選子集中的所解析的消息參數(shù);通過應(yīng)用數(shù)據(jù)中間處理邏輯來對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理,所述數(shù)據(jù)中 間處理邏輯定義要對傳入的數(shù)據(jù)消息采取的動作,所述動作包括在必要時,通過對所選子 集中的消息參數(shù)中的任一個進行修改和/或基于所解析的消息參數(shù)來添加新的消息參數(shù), 對所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)進行適配;根據(jù)輸入第二格式消息以及在對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理的步驟中適 配的所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu),構(gòu)建輸出第二格式消息;以及在所述數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流中發(fā)送所述輸出第二格式消息。本發(fā)明的該方面將提供數(shù)據(jù)中間處理的顯著性能增益,這是由于未對輸入消息完 全進行解析。取而代之,該解析被限于所選消息參數(shù),并且僅針對這些所解析的消息產(chǎn)生運 行時數(shù)據(jù)結(jié)構(gòu)。這將允許以更緊湊的方式設(shè)計中間處理邏輯,從而節(jié)約存儲空間和處理成 本。由于可以使數(shù)據(jù)中間處理變得更加高效,因此可以減小系統(tǒng)中請求與響應(yīng)之間的延遲。典型地,數(shù)據(jù)服務(wù)由多個分布式數(shù)據(jù)資源來提供,其中,由所述數(shù)據(jù)中間處理邏輯 定義的動作包括要對傳入的數(shù)據(jù)消息采取的路由動作,以將所述傳入的數(shù)據(jù)消息引導(dǎo)至所 述多個分布式數(shù)據(jù)資源中正確的分布式數(shù)據(jù)資源。在一個或多個實施例中,在分析步驟中,將輸入第二格式消息存儲在存儲器中并 保存于其中,其中,構(gòu)建輸出第二格式消息的步驟包括使輸出第二格式消息整體地或部分 地基于保存在存儲器中的輸入第二格式消息。由于與現(xiàn)有技術(shù)方式相比,輸出第二格式消 息不是根據(jù)(以用于數(shù)據(jù)訪問的第一格式)表示整個數(shù)據(jù)消息的運行時數(shù)據(jù)結(jié)構(gòu)來從頭開 始構(gòu)建的,而是直接根據(jù)所存儲的輸入第二格式消息(已經(jīng)以用于傳輸?shù)牡诙袷酱嬖? 來構(gòu)建的,輸出消息的構(gòu)建能夠更快速且以更高存儲效率來進行。對于這樣的一個或多個實施例,在通過進行解析來進行處理的步驟期問,有利地, 在所述存儲器中設(shè)置和維持指向輸入第二格式消息內(nèi)的所解析的消息參數(shù)的位置的指針, 以便進一步改進處理效率和存儲處理。對于這樣的一個或多個實施例,當(dāng)在通過應(yīng)用數(shù)據(jù)中間處理邏輯來進行處理的步 驟期間已經(jīng)將所解析的消息參數(shù)中的任一個的數(shù)據(jù)值適配為新值時,構(gòu)建輸出第二格式消 息的步驟包括在所述存儲器中數(shù)據(jù)值原始存儲的位置,利用新值來蓋寫數(shù)據(jù)值。這里,有 益地使用先前在通過進行解析來進行處理的步驟期間在所述存儲器中設(shè)置和維持的、指向 輸入第二格式消息內(nèi)的所解析的消息參數(shù)的位置的指針。當(dāng)在通過應(yīng)用數(shù)據(jù)中間處理邏輯來進行處理的步驟期間已經(jīng)將所解析的消息參 數(shù)中的單個消息參數(shù)的數(shù)據(jù)值適配為需要與所述第二格式的所述數(shù)據(jù)值不同的數(shù)據(jù)長度 的新值時,構(gòu)建輸出第二格式消息的步驟可以包括在所述存儲器中數(shù)據(jù)值原始存儲的位置,利用新值替換數(shù)據(jù)值;在所述存儲器中更新所述單個參數(shù)的長度值;對所述存儲器中存儲的輸入第二格式消息進行處理,以適應(yīng)所述單個參數(shù)的不同 數(shù)據(jù)長度;以及
更新受所適配的單個參數(shù)影響的任何其他長度值。這種其他長度值可以例如是包 含的(高級)消息參數(shù)的長度值或者輸入第二格式消息的總長度值。對所存儲的輸入第二格式消息的處理可以包括將所存儲的輸入第二格式消息的 尾部剩余部分拷貝或移動至存儲器中的鄰接存儲位置,以在存儲器的連續(xù)存儲區(qū)域中維持 所存儲的輸入第二格式消息。通過在所述存儲器的連續(xù)存儲區(qū)域中維持所存儲的輸入第二 格式消息,即作為存儲器中的單個字節(jié)序列,發(fā)送步驟將是非常高效的,這是由于可以從連 續(xù)的存儲區(qū)域中讀取完整的輸出數(shù)據(jù)消息而無需任何(重新)分配存儲器的操作。然而, 作為備選,可以取而代之地允許所存儲的輸入第二格式消息變?yōu)橛捎谏鲜龈聰?shù)據(jù)值長度 的步驟而被分段為所述存儲器中的多個存儲區(qū)域。在這種情況下,可以在發(fā)送步驟期間挑 選分段后的數(shù)據(jù)消息片段,并在傳出的數(shù)據(jù)流中將其組合為單個輸出數(shù)據(jù)消息。在一個或多個實施例中,所述方法還包括在通過應(yīng)用數(shù)據(jù)中間處理邏輯來進行處理的步驟中,確定是否需要對任何附加消 息參數(shù)進行解析;以及如果需要,則對來自輸入第二格式消息的附加部分的、未包括在所述多個消息參數(shù)的所選子集 中的至少一個附加消息參數(shù)進行解析;以及對所述至少一個附加消息參數(shù)進行處理。因此,根據(jù)這樣的一個或多個實施例,將對輸入消息的處理劃分為兩個階段第 一強制階段,其中,始終對消息參數(shù)的所選受限子集進行解析,而與所涉及的消息的類型無 關(guān);以及第二階段,僅當(dāng)在第一階段中或在第一階段之后由中間處理邏輯確定所涉及的消 息具有特定類型或者包含或請求特定數(shù)據(jù)從而需要附加處理時才執(zhí)行。由于在第一階段 中解析的消息參數(shù)的子集較小(僅最小范圍的參數(shù))但對于許多常見消息類型來說足夠, 因此通常執(zhí)行第一階段便足以完成數(shù)據(jù)中間處理,從而提供了特別高效的數(shù)據(jù)中間處理方 式。對所述至少一個附加消息參數(shù)進行處理的步驟可以包括將數(shù)據(jù)中間處理邏輯還 應(yīng)用于所解析的至少一個附加消息參數(shù)。在一個或多個實施例中,由所述多個分布式數(shù)據(jù)資源提供的數(shù)據(jù)服務(wù)可以包括目 錄服務(wù)。用于數(shù)據(jù)訪問的第一格式可以符合輕量目錄訪問協(xié)議(LDAP),用于傳輸?shù)牡诙?式可以是符合抽象語法標記1(ASN. 1)的編碼規(guī)則中的任一個的編碼格式。因此,對于這樣的一個或多個實施例,將抽象語法標記1 (ASN. 1)標準與其編碼規(guī) 則中的任一個一起使用,將第一格式數(shù)據(jù)消息(符合LDAP)編碼為用于傳輸?shù)牡诙袷?。這 些編碼規(guī)則包括基本編碼規(guī)則(BER)、規(guī)范編碼規(guī)則(CER)、唯一編碼規(guī)則(DER)、xml編碼 規(guī)則(XER)、壓縮編碼規(guī)則(PER)和通用串編碼規(guī)則(GSER)。然而,能夠想到,其他實施例 可以用于具有除LDAP外的其他數(shù)據(jù)訪問格式和/或除ASN. 1標準的編碼規(guī)則外的其他傳 輸格式的數(shù)據(jù)消息的數(shù)據(jù)中間處理。在一個有利實施例中,目錄服務(wù)在移動電信系統(tǒng)中實現(xiàn)歸屬位置寄存器(HLR)或 歸屬訂戶服務(wù)器(HSS)的數(shù)據(jù)層。這種移動電信系統(tǒng)可以例如符合GSM、UMTS、D-AMPS、 CDMA2000、FOMA或TD-SCDMA,或者符合第四代或更高架構(gòu)中的任何未來標準。認為本發(fā)明 在未來電信系統(tǒng)架構(gòu)中特別有益,其中,HLR或HSS很可能被劃分為“無數(shù)據(jù)”前端設(shè)備, 該“無數(shù)據(jù)”前端設(shè)備對業(yè)務(wù)和信令進行控制但不包含電信目錄數(shù)據(jù);以及單獨的一般數(shù)據(jù)
8層,通過LDAP服務(wù)而實現(xiàn)。鑒于這種目錄的“電信級”大小,數(shù)據(jù)層將包含巨大量的數(shù)據(jù)并 將必須向外擴展至許多實現(xiàn)的數(shù)據(jù)資源(LDAP服務(wù)器)上以及在地理上向外擴展。數(shù)據(jù)中 間處理在這種環(huán)境中變?yōu)殛P(guān)鍵任務(wù),本發(fā)明提供的在效率上的可觀改進被認為是特別有價 值的。在該有利實施例或另一有利實施例中,數(shù)據(jù)服務(wù)由多個分布式數(shù)據(jù)資源來提供, 并至少包括消息收發(fā)服務(wù)或?qū)﹄娦欧?wù)的收費。本發(fā)明的實施例對于信息系統(tǒng)來說是特別有利的,其中,數(shù)據(jù)服務(wù)由多個分布式 數(shù)據(jù)資源來提供,并包括對分布在特定類型的目錄和/或不同類型的多個目錄的多個實例 上的數(shù)據(jù)對象或?qū)嶓w的訪問,其中,所述數(shù)據(jù)中間處理邏輯要對傳入的數(shù)據(jù)消息采取的動 作用于形成所述數(shù)據(jù)服務(wù)的請求方對所述多個分布式數(shù)據(jù)資源的公共訪問點。本發(fā)明的第二方面是一種包括計算機可讀介質(zhì)在內(nèi)的計算機程序產(chǎn)品,所述計算 機可讀介質(zhì)上具有包括程序指令在內(nèi)的計算機程序,所述計算機程序能夠被加載至數(shù)據(jù)處 理單元中,并適于在所述計算機程序由所述數(shù)據(jù)處理單元運行時使所述數(shù)據(jù)處理單元執(zhí)行 根據(jù)本發(fā)明第一方面的步驟。本發(fā)明的第三方面是一種用于在數(shù)據(jù)通信網(wǎng)絡(luò)中執(zhí)行數(shù)據(jù)中間處理的數(shù)據(jù)中間 處理設(shè)備,所述網(wǎng)絡(luò)能夠傳送用于表示針對由一個或多個分布式數(shù)據(jù)資源提供的數(shù)據(jù)服務(wù) 的請求的數(shù)據(jù)消息,以及在適合的時候傳送對這種請求的響應(yīng),所述請求是以用于數(shù)據(jù)訪 問的第一格式來表達的,所述第一格式定義多個消息參數(shù),所述數(shù)據(jù)消息被編碼為用于在 數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷?,所述?shù)據(jù)中間處理設(shè)備包括用于從所述數(shù)據(jù)通信網(wǎng)絡(luò)接收傳入的數(shù)據(jù)流并對傳入的數(shù)據(jù)流進行分析以確定 所述傳入的數(shù)據(jù)流中的輸入第二格式消息的一個或多個模塊;用于通過對所述多個消息參數(shù)的所選子集進行解析來對輸入第二格式消息的一 部分進行處理并產(chǎn)生運行時數(shù)據(jù)結(jié)構(gòu)以表示所選子集中的所解析的消息參數(shù)的一個或多 個模塊;用于通過應(yīng)用數(shù)據(jù)中間處理邏輯來對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理的一個 或多個模塊,所述數(shù)據(jù)中間處理邏輯定義要對傳入的數(shù)據(jù)消息采取的動作,所述動作包括 在必要時,通過對所選子集中的消息參數(shù)中的任一個進行修改和/或基于所解析的消息參 數(shù)來添加新的消息參數(shù),對所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)進行適配;用于根據(jù)輸入第二格式消息以及由所述用于對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處 理的一個或多個模塊適配的所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu),構(gòu)建輸出第二格式消息的一個或多個模 塊;以及用于在所述數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流中發(fā)送所述輸出第二格式消息的一 個或多個模塊。本發(fā)明的第四方面是一種信息系統(tǒng),包括一個或多個分布式數(shù)據(jù)資源;數(shù)據(jù)通信網(wǎng)絡(luò),能夠傳送用于表示針對由所述一個或多個分布式數(shù)據(jù)資源提供的 數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息,以及在適合的時候傳送對這種請求的響應(yīng),所述請求是以用 于數(shù)據(jù)訪問的第一格式來表達的,所述第一格式定義多個消息參數(shù),所述數(shù)據(jù)消息被編碼 為用于在數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷?;以?br>
根據(jù)本發(fā)明第三方面的數(shù)據(jù)中間處理設(shè)備。本發(fā)明的第二、第三和第四方面的實施例一般可以具有與第一方面的上述特征中 的任一個相同或直接相對應(yīng)的特征。應(yīng)當(dāng)強調(diào),本說明書中使用的術(shù)語“包括”被視為指定存在所述特征、組分、步驟或 部件,但不排除存在或添加一個或多個其他特征、組分、步驟、組件或其組合。
參照附圖,通過以下具體實施方式
,本發(fā)明的實施例的目的、特征和優(yōu)勢將變得顯 而易見,在附圖中圖1是在復(fù)雜信息系統(tǒng)中執(zhí)行數(shù)據(jù)中間處理的現(xiàn)有技術(shù)方式的示意圖;圖2是可實施本發(fā)明實施例的信息系統(tǒng)的非限制性示例的示意圖;圖3是根據(jù)本發(fā)明一個實施例的具有以LDAP目錄服務(wù)器形式存在的多個分布式 數(shù)據(jù)資源以及數(shù)據(jù)中間處理設(shè)備的信息系統(tǒng)的示意圖;圖4和5示意性地示出了根據(jù)本發(fā)明一個實施例的執(zhí)行數(shù)據(jù)中間處理的方法;圖6示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)中間處理設(shè)備的功能模塊;以及圖7和8是示出了本發(fā)明實施例與來自商用供應(yīng)商的現(xiàn)有數(shù)據(jù)中間處理軟件之間 的性能測試的圖形。
具體實施例方式現(xiàn)在將參照附圖來描述本發(fā)明的實施例。然而,本發(fā)明可以以許多不同形式體現(xiàn), 并且不應(yīng)理解為限于這里闡述的實施例;更確切地說,提供這些實施例,使得本公開是全面 且完整的,并將向本領(lǐng)域技術(shù)人員完整地傳達本發(fā)明的范圍。附圖中所示的具體實施例的具體實施方式
中使用的術(shù)語并不意在限制本發(fā)明。在附圖中,類似的標記表示類似的元素。在轉(zhuǎn)至所公開的實施例的具體實施方式
之前,現(xiàn)在將參照圖2來簡要描述可實施 這些實施例的示例環(huán)境。圖2公開了信息系統(tǒng)100,在系統(tǒng)中的請求側(cè)具有數(shù)據(jù)服務(wù)的多個請求方 llOa-llOn,并在系統(tǒng)中的響應(yīng)側(cè)具有一個或多個(典型為多個)數(shù)據(jù)資源140a-140n。請 求方IlOa-IlOn(可以是軟件應(yīng)用)通過發(fā)送在數(shù)據(jù)通信網(wǎng)絡(luò)120中傳輸、由數(shù)據(jù)中間處 理器130處理且最終被轉(zhuǎn)發(fā)至數(shù)據(jù)資源140a-140n的數(shù)據(jù)消息112,請求由多個數(shù)據(jù)資源 140a-140n提供的信息或功能。數(shù)據(jù)中間處理器130充當(dāng)請求方IlOa-IlOn對數(shù)據(jù)資源 140a-140n的訪問點,從而實現(xiàn)請求側(cè)與響應(yīng)側(cè)之間的通信。當(dāng)請求方IlOa(等等)要進行請求時,其將以用于數(shù)據(jù)訪問的第一格式創(chuàng)建數(shù)據(jù) 消息11 。數(shù)據(jù)消息具有多個消息參數(shù)114,消息參數(shù)114包含指定所請求的數(shù)據(jù)服務(wù)所必 需的數(shù)據(jù)。一旦被創(chuàng)建,數(shù)據(jù)消息就被編碼為用于傳輸?shù)牡诙袷?,如?1 處所示。第 二格式使得可以將編碼后的數(shù)據(jù)消息11 方便地發(fā)送至數(shù)據(jù)通信網(wǎng)絡(luò)120上。因此,如在11 處所示,包括來自請求方IlOa的編碼后消息在內(nèi)的、來自請求方 IlOa-IlOn中任一個的編碼后數(shù)據(jù)消息將在通信網(wǎng)絡(luò)120中傳輸,并到達數(shù)據(jù)中間處理器 130。從而,數(shù)據(jù)中間處理器130將接收傳入的數(shù)據(jù)流116,對其進行分析以確定傳入的數(shù)據(jù) 流中的來自請求方IlOa的輸入第二格式消息1123,并將其存儲在內(nèi)部存儲器中,如在11 處所示。如將參照其余附圖更詳細地解釋的,數(shù)據(jù)中間處理器130將通過對多個消息參數(shù) 114的所選子集進行解析來對輸入第二格式消息11 的一部分進行處理,并產(chǎn)生受限的運 行時數(shù)據(jù)結(jié)構(gòu)134以表示所選子集中的所解析的消息參數(shù)。然后,數(shù)據(jù)中間處理器130將 通過應(yīng)用預(yù)定義數(shù)據(jù)中間處理邏輯132來對所產(chǎn)生的受限運行時數(shù)據(jù)結(jié)構(gòu)134進行處理, 所述數(shù)據(jù)中間處理邏輯定義要對傳入的數(shù)據(jù)消息采取的動作,以將其引導(dǎo)至多個分布式數(shù) 據(jù)資源140a-140n中正確的數(shù)據(jù)資源,所述動作包括在必要時,通過對所選子集中的消息 參數(shù)中的任一個進行修改和/或基于所解析的消息參數(shù)來添加新的消息參數(shù),對所產(chǎn)生的 受限數(shù)據(jù)結(jié)構(gòu)134進行適配。然后,數(shù)據(jù)中間處理器130將根據(jù)在11 處存儲的輸入第二格式消息11 以及在 必要時在由數(shù)據(jù)中間處理邏輯132對所產(chǎn)生的受限數(shù)據(jù)結(jié)構(gòu)134進行處理期間適配的所產(chǎn) 生的有限數(shù)據(jù)結(jié)構(gòu)134,構(gòu)建輸出第二格式消息1125。然后,將在數(shù)據(jù)通信網(wǎng)絡(luò)120上,在傳 出的數(shù)據(jù)流118中向多個數(shù)據(jù)資源140a-140n發(fā)送輸出第二格式消息,如在11 處所示。圖3示出了使用基于LDAP的目錄服務(wù)的復(fù)雜信息系統(tǒng)的示例,可在移動電信系統(tǒng) 中用于管理訂戶相關(guān)事務(wù)。如圖3所示,響應(yīng)側(cè)(即,數(shù)據(jù)資源M0)包括數(shù)據(jù)資源MOa1+ 240b1_2……MOrvdP 242η的復(fù)雜結(jié)構(gòu)。在這些數(shù)據(jù)資源中,數(shù)據(jù)資源M0ai_3、240lv2…… 對此㈠是!^^ 目錄,而數(shù)據(jù)資源屬于不同類型,稱作“協(xié)議X”。接收機側(cè)可以例如在 如第四代或更高的未來移動電信系統(tǒng)架構(gòu)中實現(xiàn)歸屬位置寄存器(HLR)和/或歸屬訂戶服 務(wù)器(HSS)的數(shù)據(jù)層。如圖所示,數(shù)據(jù)資源240是在向外擴展的意義上(涉及不同對象或 實體(如電信用戶)的數(shù)據(jù)分布在同一類型的目錄的多個實例上(如在M0ai_3處所示)) 以及在信息樹分布的意義上(不同類型的信息位于不同類型的目錄(即,不同類型的LDAP 目錄以及協(xié)議X目錄)中)分布的。數(shù)據(jù)中間處理器230形成請求應(yīng)用210a-210n對數(shù)據(jù)資源240的復(fù)雜結(jié)構(gòu)的單個 訪問點。數(shù)據(jù)中間處理器230從而隱藏應(yīng)用210a-210n的響應(yīng)側(cè)的下游復(fù)雜度和拓撲(信 息和網(wǎng)絡(luò))。在201處示意性地示出了數(shù)據(jù)中間處理器230如何有效地提供應(yīng)用210a-210n 對“虛擬目錄”的接口,該“虛擬目錄”被應(yīng)用210a-210n視為本質(zhì)上單個目錄,但該“虛擬 目錄”實際上通過目錄^(^+2401^2……240ηι_4和242Η的復(fù)雜結(jié)構(gòu)而實現(xiàn)。目錄M0ai_3、240lv2……240ηι_4和242^的大小可能是巨大的;包含多至幾千萬 個訂戶,每個訂戶由多個標識符標識,并且包含每秒100,000個事務(wù)的量級的總吞吐量。然 而,由于根據(jù)本發(fā)明的執(zhí)行數(shù)據(jù)中間處理的高效方法,可以降低處理和存儲成本,并且可以 實現(xiàn)請求與響應(yīng)之間的可接受的延遲。圖4和5更詳細地示出了應(yīng)用于如圖3所示的LDAP至LDAP數(shù)據(jù)中間處理情形時, 根據(jù)本發(fā)明的數(shù)據(jù)中間處理的原理。如前所述,不同于現(xiàn)有技術(shù),本發(fā)明的關(guān)鍵特征在于 根據(jù)所接收的輸入二進制消息,實際上僅將所選部分解析為將容易地可用作中間處理邏輯 的輸入的運行時數(shù)據(jù)結(jié)構(gòu)。這帶來了有益的節(jié)約;該解析僅必須檢查二進制消息,直到找到 所有所需參數(shù)的時間點為止,并且,可以避免對不必要的數(shù)據(jù)結(jié)構(gòu)進行構(gòu)造從而保持數(shù)據(jù) 中間處理實際上不需要的信息。此外,這導(dǎo)致對拷貝數(shù)據(jù)的需要減少以及減少存儲器分配, 在適合的時候包括垃圾收集。在圖4中,在步驟250中,數(shù)據(jù)中間處理器130、230從數(shù)據(jù)通信網(wǎng)絡(luò)120、220接收傳入的數(shù)據(jù)流216。對數(shù)據(jù)流216進行分析,以通過成幀處理來確定完整的輸入數(shù)據(jù)消息 212in。輸入數(shù)據(jù)消息212^可以是由請求方以用于數(shù)據(jù)訪問的第一格式創(chuàng)建的LDAP消息 (例如,圖2中的請求方IlOa或圖3中的應(yīng)用210a創(chuàng)建的消息112》的BER編碼的二進制 表示,用于表示例如針對由被實現(xiàn)為例如LDAP目錄服務(wù)器的多個數(shù)據(jù)資源140、240中的任 一個提供的數(shù)據(jù)服務(wù)的請求。在被編碼為用于傳輸?shù)钠涞诙袷綍r,輸入數(shù)據(jù)消息211 包 含字節(jié)213序列,在接收時將其存儲在數(shù)據(jù)中間處理器130、230的存儲器中。如前所述,LDAP消息(以其第一格式存在)包含多個消息參數(shù)114、214。在步驟 252中,數(shù)據(jù)中間處理器130、230對輸入數(shù)據(jù)消息212in執(zhí)行解析。更具體地,如圖5所示, 僅選擇可用消息參數(shù)214的子集215以由數(shù)據(jù)中間處理邏輯132進行解析以及隨后處理。 在圖5中,該消息表示LDAP SearchRequest,消息參數(shù)的所選子集215包含messageld、 SearchRequest和baseOb ject參數(shù),而不選擇LDAP SearchRequest的其他參數(shù)217以在步 驟252中進行解析。因此,步驟252僅對輸入數(shù)據(jù)消息212in的前導(dǎo)部分進行操作,并僅對 其消息參數(shù)的所選子集215進行解析。由此,產(chǎn)生受限的運行時數(shù)據(jù)結(jié)構(gòu)234,以僅表示所 解析的消息參數(shù)。本領(lǐng)域技術(shù)人員認為適當(dāng)時,可以例如以表示每個所解析的參數(shù)的數(shù)據(jù) 對象或數(shù)據(jù)變量的集合的形式來實現(xiàn)受限運行時數(shù)據(jù)結(jié)構(gòu)234,或者可以將受限運行時數(shù) 據(jù)結(jié)構(gòu)234實現(xiàn)為整體表示所解析的消息參數(shù)的子集的數(shù)據(jù)記錄。在步驟252完成時,如 現(xiàn)有技術(shù)中所進行的,不丟棄輸入二進制消息212in,而是相反,保存輸入二進制消息 以便隨后用于在步驟256中高效地構(gòu)建輸出二進制消息212。ut。因此,在步驟252中進行解 析期間,在存儲器中設(shè)置和維持指向輸入消息212in內(nèi)的所解析的消息參數(shù)的位置的指針, 以便在后續(xù)構(gòu)建步驟256期間進一步改進處理效率和存儲處理。然而,首先,在步驟254中,數(shù)據(jù)中間處理器130、230執(zhí)行或應(yīng)用預(yù)定義數(shù)據(jù)中間 處理邏輯132。這包括對具有所選子集215中的所解析的消息參數(shù)的所產(chǎn)生的受限運行 時數(shù)據(jù)結(jié)構(gòu)234進行處理;以及在必要時對消息參數(shù)進行適配,以便隨后在接收側(cè)向其目 的地傳送數(shù)據(jù)消息。對消息參數(shù)進行適配可以包括將運行時數(shù)據(jù)結(jié)構(gòu)234修改為修改后 的版本234’,反映由數(shù)據(jù)中間處理邏輯在步驟2M期間生成的任何改變的、刪除的或添加 的消息參數(shù)。在一些情況下,數(shù)據(jù)中間處理邏輯132可以推斷出所選子集215中的所解析的消 息參數(shù)不足以完成數(shù)據(jù)中間處理器的任務(wù);因此,如步驟255中所示,確定是否需要對來自 輸入消息212in的一個或多個附加參數(shù)進行解析。如果需要,則通過在搜索所需的附加消 息參數(shù)時對輸入消息212in的附加部分進行解析來重復(fù)步驟252,并且在必要時還重復(fù)步驟 254。在步驟256中,數(shù)據(jù)中間處理器130、230根據(jù)所存儲的輸入二進制消息來構(gòu) 建輸出二進制消息212。ut,該輸入二進制消息212ine經(jīng)方便地以用于傳輸?shù)牡诙?二進制) 格式可用,并存儲在數(shù)據(jù)中間處理器130、230的存儲器中。這種對所存儲的輸入二進制消 息212in的字節(jié)213序列的重用以構(gòu)建輸出二進制消息212。ut由圖4中的箭頭260來指示, 并表示構(gòu)建輸出消息的處理和存儲高效方式。從修改后的運行時數(shù)據(jù)結(jié)構(gòu)234’檢索任何所適配的消息參數(shù),并將這些消息參數(shù) 并入輸入二進制消息212in以構(gòu)建輸出消息212。ut。有益地使用在解析步驟252期間在存儲 器中設(shè)置和維持的、指向輸入消息212in內(nèi)的所解析的消息參數(shù)的位置的指針。根據(jù)修改后的消息參數(shù)的大小和范圍,該過程可以采用不同的形式在最簡單的情況下,僅需要蓋寫修改后的消息參數(shù)的實際數(shù)據(jù)值,例如當(dāng)改變整 數(shù)值以及新值處于與初始值相同的范圍內(nèi)時。產(chǎn)生新長度的二進制編碼值的更新值操作更加復(fù)雜一些。在這種情況下,需要在 編碼后的消息中反映長度的改變。典型地,這意味著更新該值自身的長度字段以及任何包 含它的(高級)消息參數(shù)的長度值(如總消息長度)。這種改變還將需要將所存儲的輸入 消息212in的尾部剩余部分拷貝或移動至存儲器中的鄰接存儲位置的操作,以在存儲器的 連續(xù)存儲區(qū)域中維持所存儲的輸入第二格式消息。通過在存儲器的連續(xù)存儲區(qū)域中維持所存儲的輸入第二格式消息2Uin,即作為存 儲器中的單個字節(jié)序列,隨后的發(fā)送步驟258將是非常高效的,這是由于可以從連續(xù)存儲 區(qū)域中讀取完整的輸出消息212。ut而無需任何(重新)分配存儲器的操作。然而,作為備 選,可以取而代之地允許所存儲的輸入消息212in變?yōu)橛捎谏鲜龈聰?shù)據(jù)值長度的步驟而 被分段為存儲器中的多個存儲區(qū)域。在這種情況下,可以在發(fā)送步驟期間挑選分段后的數(shù) 據(jù)消息片段,并在傳出的數(shù)據(jù)流中將其組合為單個輸出數(shù)據(jù)消息。如果消息的大小較大,則 后一種備選方案可能是優(yōu)選的,但是應(yīng)當(dāng)注意,在正常情況下,字節(jié)數(shù)組的直接拷貝是低成 本且快速的操作。最后,在數(shù)據(jù)通信網(wǎng)絡(luò)120、220上,在傳出的數(shù)據(jù)流218中發(fā)送由此產(chǎn)生的輸出數(shù) 據(jù)消息212。ut。注意,以上描述涉及以一般方式對LDAP消息的處理,因此,相同的觀察適用于對 從請求側(cè)接收的請求和從響應(yīng)側(cè)接收的響應(yīng)的處理?,F(xiàn)在將更細致地查看兩個常見LDAP消息——SearchRequest和 SearchResultEntry,以及可以如何通過上述數(shù)據(jù)中間處理來處理它們??傮wLDAP消息結(jié)構(gòu)由以下ASN. 1定義來定義
LDAPMessage: = SEQUENCE{
messageID MessageID,
protocolOp CHOICE{
bindRequestBindRequest,
bindResponseBindResponse,
unbindRequestUnbindRequest,
searchRequestSearchRequest,
searchResEntrySearchResultEntry,
searchResDoneSearchResultDone,
searchResRefSearchResultReference,
modifyRequestModifyRequest,
modifyResponseModifyResponse,
addRequestAddRequest,
addResponseAddResponse,
delRequestDelRequest,
delResponseDelResponse,
intermediateResponse IntermediateResponse}, controls
Controls OPTIONAL}
modDNRequestModifyDNRequest,
modDNResponseModifyDNResponse,
compareRequestCompareRequest,
compareResponseCompareResponse,
abandonRequestAbandonRequest,
extendedReqExtendedRequest,
extendedRespExtendedResponse,如以用于傳輸?shù)牡诙袷蕉幋a的,可以通過對第一 SEQUENCE進行BER編碼,從 信息的第一字節(jié)導(dǎo)出消息的完整長度。需要該信息來對請求進行適當(dāng)?shù)某蓭?,即,以確定何 時接收到完整的請求。關(guān)于接下來的messagelD,應(yīng)當(dāng)注意,潛在地,其可以有益于將響應(yīng)和請求進行相 關(guān)。但是,在許多情況下,由較低網(wǎng)絡(luò)層(即TCP)給出的信息足以進行這種相關(guān)。在所公開的實施例中,始終對messageld和隨后的protocolOp進行解析和處理。 對于多個LDAP消息,這實際上表示足以進行適當(dāng)處理(即,正確地轉(zhuǎn)發(fā)消息、更新與LDAP 會話有關(guān)的所保存的內(nèi)部狀態(tài)、檢測差錯的特定分類等等)的信息。如下定義的LDAP SearchRequest需要另外的一些解析SearchRequest: = [APPLICATION 3]SEQUENCE{baseObject LDAPDN,scopeENUMERATED{baseObject(0),singleLevel(1),wholeSubtree(2),.··},derefAliases ENUMERATED{neverDerefAliases (0),deref InSearching (1),derefFindingBaseObj (2),derefAlways(3)},sizeLimit INTEGER(0. . maxlnt),timeLimit INTEGER(0. . maxlnt),typesOnly BOOLEAN,filterFilter,attributes AttributeSeIection} 需要在對karchRequest的處理中應(yīng)用的邏輯要基于所請求的信息是什么來將 SearchRequest路由至正確的下游目錄實例。在正常情況下,包含在baseObject中的信息 將提供足以正確地進行路由的信息,并且解析可以在該參數(shù)之后停止。
在觀察單個請求時的潛在節(jié)約可能顯得較小,但必須記住,將非常頻繁地執(zhí)行該 邏輯。還需要查看karchRequest的結(jié)果。^archResultEntry與目錄中的一個條目相 對應(yīng),并且是與karchRequest的參數(shù)相匹配的結(jié)果SearchResultEntry: = [APPLICATION 4]SEQUENCE{objectNameLDAPDN,attributes PartialAttributeList}PartialAttributeList:: = SEQUENCE OFpartialAttribute PartialAttributePartialAttribute:: = SEQUENCE{typeAttributeDescription,valsSET OF value Attribute Value}AttributeDescription:: = LDAPString—Constrained to<attributedescription>— [RFC4512]AttributeValue:: = OCTET STRING可以從單個SearchRequest返回多個SearchResultEntry項目。在被稱作
SearchResDone的尾部項目中攜帶該搜索自身的實際狀態(tài)。由于^archResultEntry (可 以)攜帶包含在匹配條目中的所有屬性,因此,其可以1)包含多個屬性,幻具有非常顯著的 大小。在HLR的情況下,討論構(gòu)成整個用戶簡檔的多至超過1000個屬性,總大小為10KB的 量級。可以將所有這種數(shù)據(jù)解析為較大的運行時數(shù)據(jù)結(jié)構(gòu)的直接的現(xiàn)有技術(shù)實現(xiàn)方式將很 可能附加地對每請求消耗至少這一數(shù)量的存儲器,(潛在地,如果實際上不對屬性自身進行 操作,則只要使垃圾收集器忙)。當(dāng)考慮更大的屬性時(例如,在HSS透明數(shù)據(jù)的情況下), 甚至將進一步加劇該情形。圖7和8所示的將回到本文后續(xù)部分的性能測試已經(jīng)清楚地確 認,較大響應(yīng)對來自商業(yè)供應(yīng)商的所測試的現(xiàn)有數(shù)據(jù)中間處理軟件的性能具有很大影響。圖6示出了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)中間處理設(shè)備330的功能模塊。從1至 12編號的箭頭指示并描述了數(shù)據(jù)中間處理設(shè)備330中的活動的流程。數(shù)據(jù)中間處理設(shè)備 330可以根據(jù)之前的附圖來實現(xiàn)數(shù)據(jù)中間處理器130或230。如圖6所示,數(shù)據(jù)中間處理設(shè) 備330包括輸入10處理器模塊331,可以處理圖4的步驟250 ;以及初始消息解析器模塊 333,可以處理圖4的步驟252。圖4的步驟254由中間處理邏輯協(xié)調(diào)器模塊335和中間處 理邏輯執(zhí)行器模塊337處理,中間處理邏輯執(zhí)行器模塊337與附加消息解析器模塊339 (步 驟252、255)和協(xié)議狀態(tài)機模塊341進行協(xié)作。中間處理邏輯協(xié)調(diào)器模塊335還與路由表模塊343、連接池模塊345和輸出10處 理器模塊347進行協(xié)作,輸出10處理器模塊347可以處理圖4的步驟258并可以包括路由 動作,以將傳入的數(shù)據(jù)消息112、212引導(dǎo)至數(shù)據(jù)資源140、240中正確的數(shù)據(jù)資源。在圖6的 實施例中,圖4的輸出消息構(gòu)建步驟256的功能由中間處理邏輯協(xié)調(diào)器模塊335執(zhí)行。在 其他實施例中,其可以被實現(xiàn)為單獨的模塊,或由其他模塊中的任一個實現(xiàn)。在一些實施例 中,執(zhí)行數(shù)據(jù)中間處理方法所需的數(shù)據(jù)中間處理設(shè)備330的功能被實現(xiàn)為單個軟件而不是 模塊。因此,在本發(fā)明的上下文中,“模塊”應(yīng)當(dāng)理解為本領(lǐng)域技術(shù)人員為了實現(xiàn)本文所教導(dǎo)的數(shù)據(jù)中間處理功能而可以實現(xiàn)的任何裝置——基于軟件的和/或基于硬件的裝置。當(dāng)這 種功能以軟件實現(xiàn),即被實現(xiàn)為包括程序指令在內(nèi)的一個或多個計算機程序時,數(shù)據(jù)中間 處理設(shè)備330當(dāng)然還將包括為了能夠執(zhí)行軟件和執(zhí)行功能而需要的硬件,包括處理器或其 他數(shù)據(jù)處理單元、工作存儲器、存儲存儲器、內(nèi)部數(shù)據(jù)總線、網(wǎng)絡(luò)接口等。軟件可以存儲在所 述存儲存儲器中和/或存儲在另一計算機可讀介質(zhì)上。本發(fā)明實施例與來自商業(yè)供應(yīng)商的現(xiàn)有數(shù)據(jù)中間處理軟件之間的性能測試由圖7 和圖8的圖形示出。本發(fā)明的重要優(yōu)勢在于提高效率和/或降低處理成本方面的可能的性 能增益。將圖7和8中指示為“產(chǎn)品1”、“產(chǎn)品2”、“產(chǎn)品3”和“UPG”(后者是本申請的申 請人的數(shù)據(jù)中間處理產(chǎn)品)四個不同的商業(yè)可用的數(shù)據(jù)中間處理軟件產(chǎn)品相對于圖7和8 中指示為“UPGton”的本發(fā)明實施例進行測試。圖7和8呈現(xiàn)了吞吐量和響應(yīng)時間(延遲) 作為cpu利用率的函數(shù)的變化。圖形清楚地指示了有利于本發(fā)明的所測試實施例的優(yōu)越性 能。從而,以上已經(jīng)參照本發(fā)明的一些實施例描述了本發(fā)明。然而,本領(lǐng)域技術(shù)人員容 易理解,在所附權(quán)利要求限定的本發(fā)明范圍內(nèi)還可能有其他實施例。具體地,盡管在本文 中,本發(fā)明的描述集中于涉及移動電信應(yīng)用中的LDAP目錄服務(wù)的信息系統(tǒng)中的數(shù)據(jù)中間 處理,但是應(yīng)當(dāng)強調(diào),這不應(yīng)解釋為對本發(fā)明的限制;本發(fā)明的優(yōu)點還可以用于與目錄服務(wù) 不同的其他數(shù)據(jù)服務(wù),其中數(shù)據(jù)消息以與LDAP不同的其他格式來表達。一種可能的備選應(yīng)用是在電信系統(tǒng)中對帳戶(例如預(yù)付帳戶或信用帳戶)的用 戶的收費的處理。以傳送終端用戶服務(wù)的應(yīng)用的形式存在的收費客戶端可以使用用于如 Diameter之類的已知協(xié)議來調(diào)用作為對具有大量收費服務(wù)器(幾十個至幾百個)的隱藏下 游結(jié)構(gòu)的單個訪問點的數(shù)據(jù)中間處理器,以分布式方式存儲用戶和帳戶數(shù)據(jù)。因此,收費服 務(wù)器將作為用戶帳戶的主機并提供數(shù)據(jù)服務(wù),以供收費客戶端與帳戶進行交互,例如以用 于扣除資金。然而,在電信系統(tǒng)領(lǐng)域之內(nèi)或之外存在落在本發(fā)明范圍內(nèi)的多個其他可能的 實施例。因此,另一可能的備選應(yīng)用對消息收發(fā)服務(wù)進行處理。在所公開的實施例中,提供了多個數(shù)據(jù)資源140J40 ;然而,其他實施例可以僅包 括這種數(shù)據(jù)資源140、240中的一個實例。此外,可以想到以下實施例具有關(guān)聯(lián)功能的數(shù)據(jù) 中間處理器130并不構(gòu)建輸出消息或在傳出的數(shù)據(jù)流中將其發(fā)送至數(shù)據(jù)通信網(wǎng)絡(luò)上,例如 在實現(xiàn)數(shù)據(jù)中間處理器130的服務(wù)器(等等)是網(wǎng)絡(luò)中的終端節(jié)點,或者至少不被配置為 在處理步驟之后將所有所接收的消息進一步路由至網(wǎng)絡(luò)上的情形下。
權(quán)利要求
1.一種在數(shù)據(jù)通信網(wǎng)絡(luò)(120;220)中執(zhí)行數(shù)據(jù)中間處理的方法,所述網(wǎng)絡(luò)能夠傳送用 于表示針對由一個或多個分布式數(shù)據(jù)資源(140 440)提供的數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息 (112 ;212),以及在適合的時候傳送對這種請求的響應(yīng),所述請求是以用于數(shù)據(jù)訪問的第一 格式來表達的,所述第一格式定義多個消息參數(shù)(114 ;214),所述數(shù)據(jù)消息被編碼為用于 在數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷?,所述方法包括從所述?shù)據(jù)通信網(wǎng)絡(luò)接收(250)傳入的數(shù)據(jù)流016);對傳入的數(shù)據(jù)流進行分析O50)以確定所述傳入的數(shù)據(jù)流中的輸入第二格式消息 (212in);通過對所述多個消息參數(shù)的所選子集(21 進行解析,對輸入第二格式消息的一部分 進行處理(252);產(chǎn)生(252)運行時數(shù)據(jù)結(jié)構(gòu)034)以表示所選子集中的所解析的消息參數(shù);通過應(yīng)用數(shù)據(jù)中間處理邏輯(13 來對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理OM),所 述數(shù)據(jù)中間處理邏輯定義要對傳入的數(shù)據(jù)消息采取的動作,所述動作包括在必要時,通過 對所選子集中的消息參數(shù)中的任一個進行修改和/或基于所解析的消息參數(shù)來添加新的 消息參數(shù),對所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)進行適配;根據(jù)輸入第二格式消息以及在對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理的步驟中適配的 所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu),構(gòu)建(256)輸出第二格式消息Ol2。ut);以及在所述數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流(218)中發(fā)送(258)所述輸出第二格式消息。
2.根據(jù)權(quán)利要求1所述的方法,其中,輸入第二格式消息Ol2in)在分析(250)步驟中 存儲在存儲器中并保存于其中,并且,構(gòu)建(256)輸出第二格式消息Ol2。ut)的步驟包括 使輸出第二格式消息整體地或部分地基于(260)保存在存儲器中的輸入第二格式消息。
3.根據(jù)權(quán)利要求2所述的方法,其中,在通過進行解析來進行處理052)的步驟期間, 在所述存儲器中設(shè)置和維持指向輸入第二格式消息Ol2in)內(nèi)的所解析的消息參數(shù)(215) 的位置的指針。
4.根據(jù)權(quán)利要求2或3的方法,其中,當(dāng)在通過應(yīng)用數(shù)據(jù)中間處理邏輯來進行處理 (254)的步驟期間已經(jīng)將所解析的消息參數(shù)015)中的任一個的數(shù)據(jù)值適配為新值時,構(gòu) 建(256)輸出第二格式消息Ol2。ut)的步驟包括在所述存儲器中數(shù)據(jù)值原始存儲的位置,利用新值來蓋寫所述數(shù)據(jù)值。
5.根據(jù)權(quán)利要求2至4中任一項所述的方法,其中,當(dāng)在通過應(yīng)用數(shù)據(jù)中間處理邏輯來 進行處理(254)的步驟期間已經(jīng)將所解析的消息參數(shù)(21 中單個消息參數(shù)的數(shù)據(jù)值適配 為需要與所述第二格式的所述數(shù)據(jù)值不同的數(shù)據(jù)長度的新值時,構(gòu)建(256)輸出第二格式 消息Ql2。ut)的步驟包括在所述存儲器中數(shù)據(jù)值原始存儲的位置,利用新值替換所述數(shù)據(jù)值;在所述存儲器中更新所述單個參數(shù)的長度值;對所述存儲器中存儲的輸入第二格式消息Ol2in)進行處理,以適應(yīng)所述單個參數(shù)的 不同數(shù)據(jù)長度;以及更新受所適配的單個參數(shù)影響的任何其他長度值。
6.根據(jù)權(quán)利要求5所述的方法,其中,對所存儲的輸入第二格式消息Ql2in)的處理包 括將所存儲的輸入第二格式消息的尾部剩余部分拷貝或移動至所述存儲器中的鄰接存儲位置,以在所述存儲器的連續(xù)存儲區(qū)域中維持所存儲的輸入第二格式消息。
7.根據(jù)前述權(quán)利要求中任一項所述的方法,還包括在通過應(yīng)用數(shù)據(jù)中間處理邏輯來進行處理的步驟中,確定(25 是否需要對任何附加 消息參數(shù)進行解析;以及如果需要,則對來自輸入第二格式消息的附加部分的、未包括在所述多個消息參數(shù)的所選子集中的 至少一個附加消息參數(shù)進行解析;以及對所述至少一個附加消息參數(shù)進行處理。
8.根據(jù)權(quán)利要求7所述的方法,其中,對所述至少一個附加消息參數(shù)進行處理的步驟 包括將數(shù)據(jù)中間處理邏輯還應(yīng)用于所解析的至少一個附加消息參數(shù)。
9.根據(jù)前述權(quán)利要求中任一項所述的方法,其中,由所述多個分布式數(shù)據(jù)資源(140; 240)提供的數(shù)據(jù)服務(wù)包括目錄服務(wù)。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述用于數(shù)據(jù)訪問的第一格式符合輕量目錄訪 問協(xié)議LDAP。
11.根據(jù)權(quán)利要求9所述的方法,其中,用于傳輸?shù)乃龅诙袷绞欠铣橄笳Z法標記 1 “ASN.1”的編碼規(guī)則中的任一個的編碼格式。
12.根據(jù)權(quán)利要求9至11中任一項所述的方法,其中,所述目錄服務(wù)在移動電信系統(tǒng)中 實現(xiàn)歸屬位置寄存器HLR或歸屬訂戶服務(wù)器HSS的數(shù)據(jù)層。
13.根據(jù)權(quán)利要求9至11中任一項所述的方法,其中,數(shù)據(jù)服務(wù)由多個分布式數(shù)據(jù)資源 (140 ;240)來提供,并至少包括消息收發(fā)服務(wù)或?qū)﹄娦欧?wù)的收費。
14.根據(jù)前述權(quán)利要求中任一項所述的方法,數(shù)據(jù)服務(wù)由多個分布式數(shù)據(jù)資源(140; 240)來提供,并包括對分布在特定類型的目錄和/或不同類型的多個目錄的多個實例 (240ar240a3)上的數(shù)據(jù)對象或?qū)嶓w的訪問,其中,所述數(shù)據(jù)中間處理邏輯要對傳入的數(shù)據(jù) 消息采取的動作,用于形成所述數(shù)據(jù)服務(wù)的請求方(110;210)對所述多個分布式數(shù)據(jù)資源 的公共訪問點050)。
15.根據(jù)前述權(quán)利要求中任一項所述的方法,數(shù)據(jù)服務(wù)由多個分布式數(shù)據(jù)資源(140; 240)來提供,其中,由所述數(shù)據(jù)中間處理邏輯(132)定義的動作包括要對傳入的數(shù)據(jù)消息 采取的路由動作,以將所述傳入的數(shù)據(jù)消息引導(dǎo)至所述多個分布式數(shù)據(jù)資源中的正確的分 布式數(shù)據(jù)資源。
16.一種包括計算機可讀介質(zhì)在內(nèi)的計算機程序產(chǎn)品,所述計算機可讀介質(zhì)上具有包 括程序指令在內(nèi)的計算機程序,所述計算機程序能夠被加載至數(shù)據(jù)處理單元中,并適于在 所述計算機程序由所述數(shù)據(jù)處理單元運行時使所述數(shù)據(jù)處理單元執(zhí)行根據(jù)權(quán)利要求1至 15中任一項所述的步驟。
17.一種用于在數(shù)據(jù)通信網(wǎng)絡(luò)(120;220)中執(zhí)行數(shù)據(jù)中間處理的數(shù)據(jù)中間處理設(shè) 備(130 ;230 ;330),所述網(wǎng)絡(luò)能夠傳送用于表示針對由一個或多個分布式數(shù)據(jù)資源(140 ; 240)提供的數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息(112 ;212),以及在適合的時候傳送對這種請求的 響應(yīng),所述請求是以用于數(shù)據(jù)訪問的第一格式來表達的,所述第一格式定義多個消息參數(shù) (114 ;214),所述數(shù)據(jù)消息被編碼為用于在數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷?,所述?shù)據(jù)中間 處理設(shè)備(330)包括用于從所述數(shù)據(jù)通信網(wǎng)絡(luò)接收傳入的數(shù)據(jù)流016)并對傳入的數(shù)據(jù)流進行分析以確定所述傳入的數(shù)據(jù)流中的輸入第二格式消息(212in)的一個或多個模塊(331);用于通過對所述多個消息參數(shù)的所選子集(215)進行解析來對輸入第二格式消息的 一部分進行處理并產(chǎn)生(252)運行時數(shù)據(jù)結(jié)構(gòu)034)以表示所選子集中的所解析的消息參 數(shù)的一個或多個模塊(333);用于通過應(yīng)用數(shù)據(jù)中間處理邏輯(132)來對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理的一 個或多個模塊(335-341),所述數(shù)據(jù)中間處理邏輯定義要對傳入的數(shù)據(jù)消息采取的動作,所 述動作包括在必要時,通過對所選子集中的消息參數(shù)中的任一個進行修改和/或基于所 解析的消息參數(shù)來添加新的消息參數(shù),對所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)進行適配;用于根據(jù)輸入第二格式消息以及由所述用于對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理的 一個或多個模塊適配的所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu),構(gòu)建輸出第二格式消息Ol2。ut)的一個或多個 模塊(335,343);以及用于在所述數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流018)中發(fā)送所述輸出第二格式消息的 一個或多個模塊(335、344-347)。
18. 一種信息系統(tǒng),包括 一個或多個分布式數(shù)據(jù)資源(140 ;240);數(shù)據(jù)通信網(wǎng)絡(luò)(120 ;220),能夠傳送用于表示針對由所述一個或多個分布式數(shù)據(jù)資 源提供的數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息(112 ;212),以及在適合的時候傳送對這種請求的 響應(yīng),所述請求是以用于數(shù)據(jù)訪問的第一格式來表達的,所述第一格式定義多個消息參數(shù) (114 ;214),所述數(shù)據(jù)消息被編碼為用于在數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷剑灰约案鶕?jù)權(quán) 利要求17所述的數(shù)據(jù)中間處理設(shè)備(130 ;230 ;330)。
全文摘要
本發(fā)明提供了一種用于在數(shù)據(jù)通信網(wǎng)絡(luò)中執(zhí)行數(shù)據(jù)中間處理的方法,所述網(wǎng)絡(luò)能夠傳送用于表示針對由一個或多個分布式數(shù)據(jù)資源提供的數(shù)據(jù)服務(wù)的請求的數(shù)據(jù)消息。所述請求具有用于數(shù)據(jù)訪問的第一格式,所述第一格式定義多個消息參數(shù),所述數(shù)據(jù)消息被編碼為用于在數(shù)據(jù)通信網(wǎng)絡(luò)中傳輸?shù)牡诙袷健K龇椒ò◤乃鰯?shù)據(jù)通信網(wǎng)絡(luò)接收(250)傳入的數(shù)據(jù)流(216);對傳入的數(shù)據(jù)流進行分析(250)以確定輸入第二格式消息(212in);通過對消息參數(shù)的所選子集(215)進行解析,對輸入第二格式消息的一部分進行處理(252);產(chǎn)生(252)運行時數(shù)據(jù)結(jié)構(gòu)(234)以表示所選子集中的所解析的消息參數(shù);通過應(yīng)用數(shù)據(jù)中間處理邏輯(132)來對所產(chǎn)生的運行時數(shù)據(jù)結(jié)構(gòu)進行處理(254),所述數(shù)據(jù)中間處理邏輯(132)定義要對傳入的數(shù)據(jù)消息采取的動作,所述動作包括在必要時,通過對所選子集中的消息參數(shù)中的任一個進行修改和/或基于所解析的消息參數(shù)來添加新的消息參數(shù),對所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)進行適配;根據(jù)輸入第二格式消息以及在先前步驟中適配的所產(chǎn)生的數(shù)據(jù)結(jié)構(gòu),構(gòu)建(256)輸出第二格式消息(212out);以及在所述數(shù)據(jù)通信網(wǎng)絡(luò)上,在傳出的數(shù)據(jù)流(218)中發(fā)送(258)所述輸出第二格式消息。
文檔編號H04L29/06GK102090039SQ200980124015
公開日2011年6月8日 申請日期2009年6月24日 優(yōu)先權(quán)日2008年6月26日
發(fā)明者帕·卡爾森 申請人:艾利森電話股份有限公司