自匹配數(shù)據(jù)格式的裝置和方法
【專利摘要】本發(fā)明提供了一種自匹配數(shù)據(jù)格式的裝置,位于發(fā)送方web系統(tǒng)中,包括:格式識別單元,用于識別發(fā)送方web系統(tǒng)的待傳輸數(shù)據(jù)的數(shù)據(jù)格式;判斷單元,用于判斷待傳輸數(shù)據(jù)的數(shù)據(jù)格式與需求的數(shù)據(jù)格式是否相匹配;格式轉(zhuǎn)換單元,用于在不匹配的情況下,將待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為需求的數(shù)據(jù)格式;數(shù)據(jù)交互單元,用于在不匹配的情況下,將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),否則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。本發(fā)明還提出了一種自匹配數(shù)據(jù)格式的方法。通過本發(fā)明的技術(shù)方案,可以在客戶端或服務端為每種數(shù)據(jù)格式添加一種相應的實現(xiàn),即可在數(shù)據(jù)傳輸時實現(xiàn)多種數(shù)據(jù)格式的兼容,確保數(shù)據(jù)格式的自適應匹配。
【專利說明】自匹配數(shù)據(jù)格式的裝置和方法【技術(shù)領域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸【技術(shù)領域】,具體而言,涉及一種自匹配數(shù)據(jù)格式的裝置和一種自匹配數(shù)據(jù)格式的方法。
【背景技術(shù)】
[0002]web服務是一項面向服務架構(gòu)的技術(shù)。保證不同平臺不同系統(tǒng)之間的服務可以相互利用。忽略不同系統(tǒng)之間的技術(shù)差異。
[0003]由于系統(tǒng)不同,彼此交互的各個系統(tǒng)所基于的技術(shù)以及數(shù)據(jù)格式也有很大的差另O,如何使服務返回的數(shù)據(jù)格式與用戶需要的數(shù)據(jù)格式相匹配,目前業(yè)界有下面幾種解決方案:
[0004]1)第一種解決方案
[0005]最常見方案的是服務提供方提供不同的服務,每個服務都返回不同格式的數(shù)據(jù),服務請求方根據(jù)自己的需求,向服務提供方請求不同的遠程服務,這樣,服務請求方需要對服務提供方提供的每種服務的詳細細節(jié)有充分的了解,在向服務提供方系統(tǒng)請求服務的時候要顯式的根據(jù)本地的數(shù)據(jù)的具體格式請求不同的服務,而且在服務器端,也需要顯式的為每一種數(shù)據(jù)格式提供不同的實現(xiàn),并把這些實現(xiàn)公布出去,以保證服務請求方系統(tǒng)能夠獲得這些具體的實現(xiàn)的詳細信息。這樣的缺點是服務器端的實現(xiàn)更加復雜,而且需要服務請求方熟悉這些復雜的服務的具體細節(jié)。
[0006]目前,業(yè)內(nèi)標準的基于JAX-RS的restful的webservice就是采取了這種方案,并且目前符合此標準的所有開源框架均采用了這種方案。
[0007]具體如圖1所示,當system_A通過網(wǎng)絡與system_B進行交互時,system_B需要提供所有不同數(shù)據(jù)格式對應的服務,比如圖中所示的json格式、xml格式、pojo類型等。同時,system_A作為請求方,還需要清楚自己的數(shù)據(jù)格式以及服務發(fā)布方發(fā)布的數(shù)據(jù)格式的地址,根據(jù)自己的數(shù)據(jù)格式請求不同的服務,也就是例如圖中發(fā)布的json,xml, pojo對象等不同數(shù)據(jù)格式的服務。
[0008]2)第二種解決方案
[0009]網(wǎng)絡服務提供方只提供基于某一種數(shù)據(jù)格式的請求接收和響應返回的服務,比如標準的xml數(shù)據(jù)格式,假定這種“標準”的數(shù)據(jù)格式是需要使用此網(wǎng)絡服務的各系統(tǒng)都能夠識別的,然后由用戶實現(xiàn)本地格式和標準格式的轉(zhuǎn)換。目前比較流行的基于標準soap協(xié)議的webService就是采取的這種方案。
[0010]這樣,用戶需要把自己的數(shù)據(jù)請求按照一定的語法(比如soap方式的webservice中的wsdl文件)來轉(zhuǎn)換為服務器端能夠識別的數(shù)據(jù)格式語義。然后服務器端根據(jù)標準語法識別數(shù)據(jù),并返回給客戶端標準數(shù)據(jù)格式的web響應??蛻舳诵枰軌蜃R別這種“標準”的數(shù)據(jù)格式,然后再轉(zhuǎn)換為自己需要的本地數(shù)據(jù)格式。
[0011]但顯然,該方案仍需要用戶清楚了解自身的數(shù)據(jù)格式和對應的標準格式,然而才能夠?qū)崿F(xiàn)數(shù)據(jù)格式轉(zhuǎn)換。[0012]3)第三種解決方案
[0013]服務發(fā)布的系統(tǒng)提供多種客戶端,以供服務請求方選擇。不同的客戶端提供了不同的數(shù)據(jù)格式的支持,包括請求和響應的數(shù)據(jù)格式的支持。這樣服務請求者也需要根據(jù)當前本地的數(shù)據(jù)格式而選用不同的客戶端,客戶端負責和服務器端進行通信并進行數(shù)據(jù)轉(zhuǎn)換。
[0014]這個相當于前兩種方案的一個衍生,這樣的優(yōu)點是服務器端不需要復雜的實現(xiàn),由支持不同數(shù)據(jù)格式的客戶端屏蔽了數(shù)據(jù)格式的差異。缺點是用戶仍然需要了解當前使用的數(shù)據(jù)格式,如果當前用戶不是當前數(shù)據(jù)的原始持有者,或者數(shù)據(jù)來源于第三方,選擇客戶端這個操作對于當前請求方用戶來講,仍然是有很大局限的。
[0015]如圖2所示,system_B只發(fā)布一種支持標準數(shù)據(jù)格式的服務,而為system_A提供了多種客戶端,這樣system_A的用戶需要清楚了解自身的數(shù)據(jù)格式,然后需要根據(jù)自己的數(shù)據(jù)格式來選擇不同的客戶端,比如圖中所示的POJO類型,xml以及json格式的多種客戶端。
[0016]因此,如何降低對用戶的要求,在數(shù)據(jù)交互過程中實現(xiàn)數(shù)據(jù)格式的自適應匹配,成為目前亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0017]本發(fā)明正是基于上述問題,提出了一種新的自匹配數(shù)據(jù)格式的技術(shù),可以在客戶端或服務端為每種數(shù)據(jù)格式添加一種相應的實現(xiàn),即可在數(shù)據(jù)傳輸時實現(xiàn)多種數(shù)據(jù)格式的兼容,確保數(shù)據(jù)格式的自適應匹配。
[0018]有鑒于此,本發(fā)明提出了一種自匹配數(shù)據(jù)格式的裝置,位于發(fā)送方web系統(tǒng)中,包括:格式識別單元,用于確定所述發(fā)送方web系統(tǒng)的待傳輸數(shù)據(jù),并識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式;判斷單元,用于判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配;格式轉(zhuǎn)換單元,用于在不匹配的情況下,將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式;數(shù)據(jù)交互單元,用于在不匹配的情況下,將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),否則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
[0019]在該技術(shù)方案中,發(fā)送方web系統(tǒng)直接對待傳輸數(shù)據(jù)的數(shù)據(jù)格式進行檢查,并判斷出是否與接收方web系統(tǒng)所需要的數(shù)據(jù)格式相匹配,若不匹配,則自動對其數(shù)據(jù)格式進行轉(zhuǎn)換,從而使得發(fā)送方web系統(tǒng)的用戶無需了解對待傳輸數(shù)據(jù)的數(shù)據(jù)格式,接收方web系統(tǒng)也無需為不同的數(shù)據(jù)格式提供多種服務或提供多種客戶端,即可實現(xiàn)數(shù)據(jù)格式的自適應匹配,降低了對用戶接收方web系統(tǒng)的需求。
[0020]在上述技術(shù)方案中,優(yōu)選地,所述格式識別單元包括:數(shù)據(jù)解析子單元,用于解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu);結(jié)構(gòu)比較子單元,用于將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
[0021]在該技術(shù)方案中,通過對待傳輸數(shù)據(jù)的結(jié)構(gòu)進行解析和獲取,使得通過數(shù)據(jù)結(jié)構(gòu)的比較,能夠確定當前的數(shù)據(jù)格式是否相匹配,即是否滿足接收方web系統(tǒng)的實際需求,從而使得發(fā)送方web系統(tǒng)的用戶無需對待傳輸數(shù)據(jù)的格式進行了解,也有助于降低接收方web系統(tǒng)的復雜度。
[0022]在上述任一技術(shù)方案中,優(yōu)選地,還包括:編輯單元,用于根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
[0023]在該技術(shù)方案中,可以根據(jù)實際需求,對實際支出的數(shù)據(jù)格式進行添加和減少,通過添加更多的預設數(shù)據(jù)結(jié)構(gòu),可以支持更多的數(shù)據(jù)格式,從而提升自適應匹配的成功率;通過減少預設數(shù)據(jù)結(jié)構(gòu)的數(shù)量,可以使得格式匹配所花費的時間更短,提高數(shù)據(jù)的格式轉(zhuǎn)換效率。
[0024]在上述任一技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)交互單元還用于:接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù);所述格式轉(zhuǎn)換單元還用于:將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致,以供所述發(fā)送方web系統(tǒng)輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
[0025]在該技術(shù)方案中,在向接收方web系統(tǒng)發(fā)送待傳輸數(shù)據(jù)時,對識別出來的數(shù)據(jù)格式進行記錄,從而在接收到接收方web系統(tǒng)返回的數(shù)據(jù)時,無需執(zhí)行反復的格式識別,即可直接使用記錄的數(shù)據(jù)格式,用于對返回的數(shù)據(jù)的格式轉(zhuǎn)換,有助于提高轉(zhuǎn)換效率,降低發(fā)送方web系統(tǒng)的功耗。
[0026]在上述任一技術(shù)方案中,優(yōu)選地,所述判斷單元還用于:判斷所述發(fā)送方web系統(tǒng)是否接收到用戶發(fā)出的格式指定指令;其中,所述格式轉(zhuǎn)換單元還用于:若接收到,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式,否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致。
[0027]在該技術(shù)方案中,除了可以通過對待傳輸數(shù)據(jù)的格式自動識別和轉(zhuǎn)換,還可以由用戶對數(shù)據(jù)格式進行指定,使得發(fā)送方web系統(tǒng)無需將待傳輸數(shù)據(jù)的格式與預設數(shù)據(jù)格式一一進行比較,有助于提高轉(zhuǎn)換效率。
[0028]根據(jù)本發(fā)明的又一方面,還提出了一種自匹配數(shù)據(jù)格式的方法,包括:步驟202,發(fā)送方web系統(tǒng)確定自身的待傳輸數(shù)據(jù);步驟204,識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式,并判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配;步驟206,若不匹配,則將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式,并將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),若匹配,則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
[0029]在該技術(shù)方案中,發(fā)送方web系統(tǒng)直接對待傳輸數(shù)據(jù)的數(shù)據(jù)格式進行檢查,并判斷出是否與接收方web系統(tǒng)所需要的數(shù)據(jù)格式相匹配,若不匹配,則自動對其數(shù)據(jù)格式進行轉(zhuǎn)換,從而使得發(fā)送方web系統(tǒng)的用戶無需了解對待傳輸數(shù)據(jù)的數(shù)據(jù)格式,接收方web系統(tǒng)也無需為不同的數(shù)據(jù)格式提供多種服務或提供多種客戶端,即可實現(xiàn)數(shù)據(jù)格式的自適應匹配,降低了對用戶接收方web系統(tǒng)的需求。
[0030]在上述技術(shù)方案中,優(yōu)選地,所述識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式的過程包括:解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu);將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
[0031]在該技術(shù)方案中,通過對待傳輸數(shù)據(jù)的結(jié)構(gòu)進行解析和獲取,使得通過數(shù)據(jù)結(jié)構(gòu)的比較,能夠確定當前的數(shù)據(jù)格式是否相匹配,即是否滿足接收方web系統(tǒng)的實際需求,從而使得發(fā)送方web系統(tǒng)的用戶無需對待傳輸數(shù)據(jù)的格式進行了解,也有助于降低接收方web系統(tǒng)的復雜度。
[0032]在上述任一技術(shù)方案中,優(yōu)選地,還包括:根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
[0033]在該技術(shù)方案中,可以根據(jù)實際需求,對實際支出的數(shù)據(jù)格式進行添加和減少,通過添加更多的預設數(shù)據(jù)結(jié)構(gòu),可以支持更多的數(shù)據(jù)格式,從而提升自適應匹配的成功率;通過減少預設數(shù)據(jù)結(jié)構(gòu)的數(shù)量,可以使得格式匹配所花費的時間更短,提高數(shù)據(jù)的格式轉(zhuǎn)換效率。
[0034]在上述任一技術(shù)方案中,優(yōu)選地,還包括:所述發(fā)送方web系統(tǒng)接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù);將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致;輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
[0035]在該技術(shù)方案中,在向接收方web系統(tǒng)發(fā)送待傳輸數(shù)據(jù)時,對識別出來的數(shù)據(jù)格式進行記錄,從而在接收到接收方web系統(tǒng)返回的數(shù)據(jù)時,無需執(zhí)行反復的格式識別,即可直接使用記錄的數(shù)據(jù)格式,用于對返回的數(shù)據(jù)的格式轉(zhuǎn)換,有助于提高轉(zhuǎn)換效率,降低發(fā)送方web系統(tǒng)的功耗。
[0036]在上述任一技術(shù)方案中,優(yōu)選地,還包括:所述發(fā)送方web系統(tǒng)判斷是否接收到用戶發(fā)出的格式指定指令;若接收到,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式;否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)
格式一致。
[0037]在該技術(shù)方案中,除了可以通過對待傳輸數(shù)據(jù)的格式自動識別和轉(zhuǎn)換,還可以由用戶對數(shù)據(jù)格式進行指定,使得發(fā)送方web系統(tǒng)無需將待傳輸數(shù)據(jù)的格式與預設數(shù)據(jù)格式一一進行比較,有助于提高轉(zhuǎn)換效率。
[0038]通過以上技術(shù)方案,可以在客戶端或服務端為每種數(shù)據(jù)格式添加一種相應的實現(xiàn),即可在數(shù)據(jù)傳輸時實現(xiàn)多種數(shù)據(jù)格式的兼容,確保數(shù)據(jù)格式的自適應匹配。
【專利附圖】
【附圖說明】
[0039]圖1示出了相關(guān)技術(shù)中一種實現(xiàn)數(shù)據(jù)格式匹配的原理示意圖;
[0040]圖2示出了相關(guān)技術(shù)中另一種實現(xiàn)數(shù)據(jù)格式匹配的原理示意圖;
[0041]圖3示出了根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的裝置的示意框圖;
[0042]圖4示出了根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的方法的流程示意圖;
[0043]圖5示出了根據(jù)本發(fā)明的實施例的實現(xiàn)數(shù)據(jù)格式匹配的原理示意圖;
[0044]圖6示出了根據(jù)本發(fā)明的實施例的實現(xiàn)數(shù)據(jù)格式匹配的流程示意圖。
【具體實施方式】
[0045]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和【具體實施方式】對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
[0046]在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。
[0047]圖3示出了根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的裝置的示意框圖。
[0048]如圖3所示,根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的裝置300,位于發(fā)送方web系統(tǒng)中,包括:格式識別單元302,用于確定所述發(fā)送方web系統(tǒng)的待傳輸數(shù)據(jù),并識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式;判斷單元304,用于判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配;格式轉(zhuǎn)換單元306,用于在不匹配的情況下,將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式;數(shù)據(jù)交互單元308,用于在不匹配的情況下,將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),否則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
[0049]在該技術(shù)方案中,發(fā)送方web系統(tǒng)直接對待傳輸數(shù)據(jù)的數(shù)據(jù)格式進行檢查,并判斷出是否與接收方web系統(tǒng)所需要的數(shù)據(jù)格式相匹配,若不匹配,則自動對其數(shù)據(jù)格式進行轉(zhuǎn)換,從而使得發(fā)送方web系統(tǒng)的用戶無需了解對待傳輸數(shù)據(jù)的數(shù)據(jù)格式,接收方web系統(tǒng)也無需為不同的數(shù)據(jù)格式提供多種服務或提供多種客戶端,即可實現(xiàn)數(shù)據(jù)格式的自適應匹配,降低了對用戶接收方web系統(tǒng)的需求。
[0050]在上述技術(shù)方案中,優(yōu)選地,所述格式識別單元302包括:數(shù)據(jù)解析子單元3022,用于解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu);結(jié)構(gòu)比較子單元3024,用于將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
[0051]在該技術(shù)方案中,通過對待傳輸數(shù)據(jù)的結(jié)構(gòu)進行解析和獲取,使得通過數(shù)據(jù)結(jié)構(gòu)的比較,能夠確定當前的數(shù)據(jù)格式是否相匹配,即是否滿足接收方web系統(tǒng)的實際需求,從而使得發(fā)送方web系統(tǒng)的用戶無需對待傳輸數(shù)據(jù)的格式進行了解,也有助于降低接收方web系統(tǒng)的復雜度。
[0052]在上述任一技術(shù)方案中,優(yōu)選地,還包括:編輯單元310,用于根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
[0053]在該技術(shù)方案中,可以根據(jù)實際需求,對實際支出的數(shù)據(jù)格式進行添加和減少,通過添加更多的預設數(shù)據(jù)結(jié)構(gòu),可以支持更多的數(shù)據(jù)格式,從而提升自適應匹配的成功率;通過減少預設數(shù)據(jù)結(jié)構(gòu)的數(shù)量,可以使得格式匹配所花費的時間更短,提高數(shù)據(jù)的格式轉(zhuǎn)換效率。
[0054]在上述任一技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)交互單元308還用于:接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù);所述格式轉(zhuǎn)換單元306還用于:將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致,以供所述發(fā)送方web系統(tǒng)輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
[0055]在該技術(shù)方案中,在向接收方web系統(tǒng)發(fā)送待傳輸數(shù)據(jù)時,對識別出來的數(shù)據(jù)格式進行記錄,從而在接收到接收方web系統(tǒng)返回的數(shù)據(jù)時,無需執(zhí)行反復的格式識別,即可直接使用記錄的數(shù)據(jù)格式,用于對返回的數(shù)據(jù)的格式轉(zhuǎn)換,有助于提高轉(zhuǎn)換效率,降低發(fā)送方web系統(tǒng)的功耗。
[0056]在上述任一技術(shù)方案中,優(yōu)選地,所述判斷單元304還用于:判斷所述發(fā)送方web系統(tǒng)是否接收到用戶發(fā)出的格式指定指令;其中,所述格式轉(zhuǎn)換單元306還用于:若接收至IJ,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式,否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致。
[0057]在該技術(shù)方案中,除了可以通過對待傳輸數(shù)據(jù)的格式自動識別和轉(zhuǎn)換,還可以由用戶對數(shù)據(jù)格式進行指定,使得發(fā)送方web系統(tǒng)無需將待傳輸數(shù)據(jù)的格式與預設數(shù)據(jù)格式一一進行比較,有助于提高轉(zhuǎn)換效率。
[0058]圖4示出了根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的方法的流程示意圖。
[0059]如圖4所示,根據(jù)本發(fā)明的實施例的自匹配數(shù)據(jù)格式的方法,包括:步驟402,發(fā)送方web系統(tǒng)確定自身的待傳輸數(shù)據(jù);步驟404,識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式,并判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配;步驟406,若不匹配,則將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式,并將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),若匹配,則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
[0060]在該技術(shù)方案中,發(fā)送方web系統(tǒng)直接對待傳輸數(shù)據(jù)的數(shù)據(jù)格式進行檢查,并判斷出是否與接收方web系統(tǒng)所需要的數(shù)據(jù)格式相匹配,若不匹配,則自動對其數(shù)據(jù)格式進行轉(zhuǎn)換,從而使得發(fā)送方web系統(tǒng)的用戶無需了解對待傳輸數(shù)據(jù)的數(shù)據(jù)格式,接收方web系統(tǒng)也無需為不同的數(shù)據(jù)格式提供多種服務或提供多種客戶端,即可實現(xiàn)數(shù)據(jù)格式的自適應匹配,降低了對用戶接收方web系統(tǒng)的需求。
[0061]在上述技術(shù)方案中,優(yōu)選地,所述識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式的過程包括:解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu);將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
[0062]在該技術(shù)方案中,通過對待傳輸數(shù)據(jù)的結(jié)構(gòu)進行解析和獲取,使得通過數(shù)據(jù)結(jié)構(gòu)的比較,能夠確定當前的數(shù)據(jù)格式是否相匹配,即是否滿足接收方web系統(tǒng)的實際需求,從而使得發(fā)送方web系統(tǒng)的用戶無需對待傳輸數(shù)據(jù)的格式進行了解,也有助于降低接收方web系統(tǒng)的復雜度。
[0063]在上述任一技術(shù)方案中,優(yōu)選地,還包括:根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
[0064]在該技術(shù)方案中,可以根據(jù)實際需求,對實際支出的數(shù)據(jù)格式進行添加和減少,通過添加更多的預設數(shù)據(jù)結(jié)構(gòu),可以支持更多的數(shù)據(jù)格式,從而提升自適應匹配的成功率;通過減少預設數(shù)據(jù)結(jié)構(gòu)的數(shù)量,可以使得格式匹配所花費的時間更短,提高數(shù)據(jù)的格式轉(zhuǎn)換效率。
[0065]在上述任一技術(shù)方案中,優(yōu)選地,還包括:所述發(fā)送方web系統(tǒng)接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù);將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致;輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
[0066]在該技術(shù)方案中,在向接收方web系統(tǒng)發(fā)送待傳輸數(shù)據(jù)時,對識別出來的數(shù)據(jù)格式進行記錄,從而在接收到接收方web系統(tǒng)返回的數(shù)據(jù)時,無需執(zhí)行反復的格式識別,即可直接使用記錄的數(shù)據(jù)格式,用于對返回的數(shù)據(jù)的格式轉(zhuǎn)換,有助于提高轉(zhuǎn)換效率,降低發(fā)送方web系統(tǒng)的功耗。
[0067]在上述任一技術(shù)方案中,優(yōu)選地,還包括:所述發(fā)送方web系統(tǒng)判斷是否接收到用戶發(fā)出的格式指定指令;若接收到,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式;否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)
格式一致。
[0068]在該技術(shù)方案中,除了可以通過對待傳輸數(shù)據(jù)的格式自動識別和轉(zhuǎn)換,還可以由用戶對數(shù)據(jù)格式進行指定,使得發(fā)送方web系統(tǒng)無需將待傳輸數(shù)據(jù)的格式與預設數(shù)據(jù)格式一一進行比較,有助于提高轉(zhuǎn)換效率。
[0069]圖5示出了根據(jù)本發(fā)明的實施例的實現(xiàn)數(shù)據(jù)格式匹配的原理示意圖。
[0070]如圖5所示,system_B只提供一種固定格式的用戶資源服務并對外發(fā)布,這里不需要為不同的數(shù)據(jù)格式發(fā)布不同的網(wǎng)絡服務。而對于syStem_A,也不需要關(guān)心當前使用的數(shù)據(jù)格式,也不用去自己選擇客戶端,而是統(tǒng)一調(diào)用自匹配數(shù)據(jù)格式的客戶端。
[0071]上述客戶端實現(xiàn)自匹配數(shù)據(jù)格式的過程如下:
[0072]首先,由數(shù)據(jù)格式識別和轉(zhuǎn)換引擎來識別并轉(zhuǎn)換數(shù)據(jù),屏蔽不同數(shù)據(jù)格式之間的差異。具體地,數(shù)據(jù)格式識別和轉(zhuǎn)換引擎會調(diào)用數(shù)據(jù)格式識別器以及數(shù)據(jù)格式轉(zhuǎn)換器。
[0073]數(shù)據(jù)格式轉(zhuǎn)換器提供了多種數(shù)據(jù)格式的識別實現(xiàn),并且可以根據(jù)用戶需要而自助擴展。例如圖5中已經(jīng)預置了比較常見的數(shù)據(jù)格式的轉(zhuǎn)換器,比如標準的json數(shù)據(jù)格式轉(zhuǎn)換器、xml數(shù)據(jù)格式轉(zhuǎn)換器等,這些轉(zhuǎn)換器會組成轉(zhuǎn)換器鏈,依次匹配,直至得到最終結(jié)果。而數(shù)據(jù)格式轉(zhuǎn)換器還提供格式語法定義,可以由用戶根據(jù)自身需求自定義新的格式,從而實現(xiàn)對更多數(shù)據(jù)格式的支持。
[0074]綜上所述,無論當前數(shù)據(jù)格式如何,SyStem_A都不需要關(guān)心,只需要訪問同一個客戶端并獲取system_B提供的服務,由客戶端完成數(shù)據(jù)格式的識別和轉(zhuǎn)換,這里的自匹配數(shù)據(jù)格式的客戶端提供多種數(shù)據(jù)格式識別器和數(shù)據(jù)格式轉(zhuǎn)換器,如果有特殊的數(shù)據(jù)格式,也可以方便的擴展出新的數(shù)據(jù)格式識別器。
[0075]另外,從用戶的特殊情況和系統(tǒng)效率等方面考慮,這里的數(shù)據(jù)格式識別器和數(shù)據(jù)格式轉(zhuǎn)換器也允許用戶直接指定具體的數(shù)據(jù)格式,這適用于用戶對數(shù)據(jù)結(jié)構(gòu)熟悉的情況。如果用戶指定了數(shù)據(jù)格式,那么會根據(jù)用戶指定的執(zhí)行策略進行數(shù)據(jù)轉(zhuǎn)換,否則會啟用自動識別系統(tǒng),自匹配適合的數(shù)據(jù)格式識別器和數(shù)據(jù)格式轉(zhuǎn)換器,完成網(wǎng)絡系統(tǒng)間數(shù)據(jù)交互的自動格式轉(zhuǎn)換。
[0076]這樣,可以專注于業(yè)務處理,而不需要關(guān)心不同數(shù)據(jù)格式之間的差異。
[0077]具體地,比如傳入的請求數(shù)據(jù)為xml數(shù)據(jù),那么SyStem_A不需要關(guān)注當前的數(shù)據(jù)格式(當然,這里我們的系統(tǒng)設計為用戶也可以指定數(shù)據(jù)格式),只需要把數(shù)據(jù)傳入自匹配數(shù)據(jù)格式的客戶端,數(shù)據(jù)格式識別和轉(zhuǎn)換引擎首先將檢查請求方是否指定了數(shù)據(jù)格式,如果指定,那么直接去匹配數(shù)據(jù)轉(zhuǎn)換器,否則,會調(diào)用數(shù)據(jù)格式識別器去檢查數(shù)據(jù)格式。
[0078]基于圖5所示的結(jié)構(gòu),圖6示出了對應的實現(xiàn)數(shù)據(jù)格式匹配的流程示意圖。
[0079]如圖6所示,根據(jù)本發(fā)明的實施例的實現(xiàn)數(shù)據(jù)格式匹配的流程包括:
[0080]首先,用戶從客戶端發(fā)起請求,比如通過圖中起始的“數(shù)據(jù)輸入”步驟,輸入具體的xml數(shù)據(jù)(以此類型為例),這里后system_A不需要關(guān)注數(shù)據(jù)類型,統(tǒng)一調(diào)用自匹配客戶端(即自匹配數(shù)據(jù)格式客戶端)。
[0081]自匹配客戶端檢查輸入的數(shù)據(jù)是請求數(shù)據(jù)還是響應數(shù)據(jù)。這里首先會按照請求數(shù)據(jù)處理,然后檢查調(diào)用方是否自行指定了數(shù)據(jù)類型,如果有用戶已經(jīng)指定數(shù)據(jù)類型信息則直接調(diào)用數(shù)據(jù)轉(zhuǎn)換器,否則調(diào)用數(shù)據(jù)格式識別器來識別數(shù)據(jù)格式。[0082]數(shù)據(jù)格式識別器具體執(zhí)行識別實現(xiàn)的過程包括:通過分析當前數(shù)據(jù)結(jié)構(gòu)的格式是否與已知數(shù)據(jù)結(jié)構(gòu)相匹配,若匹配,則確定該匹配的數(shù)據(jù)格式。這里采用責任鏈模式,注冊多個數(shù)據(jù)結(jié)構(gòu)識別器的具體實現(xiàn)(即預置多種已知的、用于進行匹配的數(shù)據(jù)結(jié)構(gòu)),依次匹配。類似事件傳播機制,將數(shù)據(jù)在這個鏈上傳遞,直至鏈上的某一個實現(xiàn)能夠最終處理數(shù)據(jù),采用這種方式使得該數(shù)據(jù)結(jié)構(gòu)識別器可以方便的擴展的識別實現(xiàn)。如圖中,如果無法識別則會傳遞數(shù)據(jù),用于與下一個預設的數(shù)據(jù)結(jié)構(gòu)進行匹配,直至得到相匹配的情況。
[0083]如果已經(jīng)識別了數(shù)據(jù)格式,那么會傳遞給數(shù)據(jù)格式轉(zhuǎn)換器。這里數(shù)據(jù)格式轉(zhuǎn)換器與數(shù)據(jù)格式識別器為成對出現(xiàn)。也就是在擴展的時候會同時擴展數(shù)據(jù)格式轉(zhuǎn)換器與數(shù)據(jù)格式識別器。這里首先檢查當前的數(shù)據(jù)格式是否需要轉(zhuǎn)換,具體會檢查當前數(shù)據(jù)格式是否與服務器供的網(wǎng)絡服務所需要的數(shù)據(jù)格式相匹配。然后會根據(jù)當前服務方要求的數(shù)據(jù)類型,將請求信息轉(zhuǎn)換為結(jié)構(gòu)化的請求體。這里我們針對xml數(shù)據(jù),先使用xml解析工具解析出必要的信息,然后組裝為system_B期望的結(jié)構(gòu)體對象,發(fā)送請求。
[0084]向SyStem_B&送請求,調(diào)用網(wǎng)絡(web)服務,并且得到請求的用戶信息數(shù)據(jù)。首先對得到的數(shù)據(jù)做一定的檢查,比如數(shù)據(jù)合法性的檢查,這里會重新調(diào)用數(shù)據(jù)格式識別器對響應做處理,具體步驟如上述請求數(shù)據(jù)的識別和轉(zhuǎn)換。這里會優(yōu)先考慮用戶自身的指定信息,如果沒有具體指定,則默認根據(jù)之前請求的數(shù)據(jù)的具體格式轉(zhuǎn)換響應數(shù)據(jù),以保證用戶請求和響應數(shù)據(jù)的格式一致性。
[0085]這里比如SyStem_A沒有指定期望得到的數(shù)據(jù)的數(shù)據(jù)格式,則直接按照請求數(shù)據(jù)的數(shù)據(jù)格式返回響應數(shù)據(jù),syStem_B返回的數(shù)據(jù)為結(jié)構(gòu)化的用戶信息,這里由客戶端轉(zhuǎn)換為xml格式,返回給system_A。
[0086]最終,我們得到期望的數(shù)據(jù),而服務請求方SyStem_A在該過程中不需要關(guān)心數(shù)據(jù)格式,也不需要根據(jù)數(shù)據(jù)格式去選擇服務的路徑和相應的客戶端,整個web服務調(diào)用過程對system_A來說是完全透明的。
[0087]以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,本發(fā)明提出的技術(shù)方案完美的解決了相關(guān)技術(shù)方案的不足:一方面簡化了服務器端服務的發(fā)布,另一方面使得數(shù)據(jù)格式對于客戶端透明化,服務請求方不需要關(guān)注本地數(shù)據(jù)格式或者第三方數(shù)據(jù)的數(shù)據(jù)格式。這種方式方便了客戶端對遠程服務的調(diào)用,另外也使得客戶端能夠更方便的利用第三方數(shù)據(jù)來滿足自己的業(yè)務。
[0088]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種自匹配數(shù)據(jù)格式的裝置,位于發(fā)送方web系統(tǒng)中,其特征在于,包括: 格式識別單元,用于確定所述發(fā)送方web系統(tǒng)的待傳輸數(shù)據(jù),并識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式; 判斷單元,用于判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配; 格式轉(zhuǎn)換單元,用于在不匹配的情況下,將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式; 數(shù)據(jù)交互單元,用于在不匹配的情況下,將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),否則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的自匹配數(shù)據(jù)格式的裝置,其特征在于,所述格式識別單元包括: 數(shù)據(jù)解析子單元,用于解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu); 結(jié)構(gòu)比較子單元,用于將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
3.根據(jù)權(quán)利要求2所述的自匹配數(shù)據(jù)格式的裝置,其特征在于,還包括: 編輯單元,用于根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
4.根據(jù)權(quán)利要求1至3中任一項所述的自匹配數(shù)據(jù)格式的裝置,其特征在于, 所述數(shù)據(jù)交互單元還用于:接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù); 所述格式轉(zhuǎn)換單元還用于:將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致,以供所述發(fā)送方web系統(tǒng)輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的自匹配數(shù)據(jù)格式的裝置,其特征在于,所述判斷單元還用于:判斷所述發(fā)送方web系統(tǒng)是否接收到用戶發(fā)出的格式指定指令; 其中,所述格式轉(zhuǎn)換單元還用于:若接收到,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式,否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致。
6.一種自匹配數(shù)據(jù)格式的方法,其特征在于,包括: 步驟202,發(fā)送方web系統(tǒng)確定自身的待傳輸數(shù)據(jù); 步驟204,識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式,并判斷所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式與接收方web系統(tǒng)所需求的數(shù)據(jù)格式是否相匹配; 步驟206,若不匹配,則將所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為所述接收方web系統(tǒng)所需求的數(shù)據(jù)格式,并將格式轉(zhuǎn)換后的所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng),若匹配,則直接將所述待傳輸數(shù)據(jù)發(fā)送至所述接收方web系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的自匹配數(shù)據(jù)格式的方法,其特征在于,所述識別所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式的過程包括: 解析所述待傳輸數(shù)據(jù),獲取所述待傳輸數(shù)據(jù)的結(jié)構(gòu); 將所述待傳輸數(shù)據(jù)的結(jié)構(gòu)與至少一種預設數(shù)據(jù)結(jié)構(gòu)進行比較,并將相匹配的預設數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)格式作為所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式。
8.根據(jù)權(quán)利要求7所述的自匹配數(shù)據(jù)格式的方法,其特征在于,還包括: 根據(jù)接收到的編輯指令,對所述至少一種預設數(shù)據(jù)結(jié)構(gòu)進行編輯。
9.根據(jù)權(quán)利要求6至8中任一項所述的自匹配數(shù)據(jù)格式的方法,其特征在于,還包括: 所述發(fā)送方web系統(tǒng)接收來自所述接收方web系統(tǒng)的返回數(shù)據(jù); 將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致; 輸出格式轉(zhuǎn)換后的所述返回數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的自匹配數(shù)據(jù)格式的方法,其特征在于,還包括: 所述發(fā)送方web系統(tǒng)判斷是否接收到用戶發(fā)出的格式指定指令; 若接收到,則根據(jù)所述格式指定指令,將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換為指定的數(shù)據(jù)格式; 否則將所述返回數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換至與所述待傳輸數(shù)據(jù)的數(shù)據(jù)格式一致。
【文檔編號】H04L29/08GK103491135SQ201310392242
【公開日】2014年1月1日 申請日期:2013年9月2日 優(yōu)先權(quán)日:2013年9月2日
【發(fā)明者】丁賢明 申請人:用友軟件股份有限公司