目標對象的生成方法及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機技術(shù)領(lǐng)域,尤其涉及一種目標對象的生成方法及服務(wù)器。
【背景技術(shù)】
[0002]隨著電子商務(wù)技術(shù)的發(fā)展,隨之出現(xiàn)的業(yè)務(wù)系統(tǒng)越來越多,而且用戶往往需要通過這些業(yè)務(wù)系統(tǒng)來完成某種操作,完成一個操作有時需要借助共享系統(tǒng)來實現(xiàn)。共享系統(tǒng)會接收源業(yè)務(wù)系統(tǒng)發(fā)送的自定義的對象,即源對象,而目標業(yè)務(wù)系統(tǒng)也會從該共享系統(tǒng)中獲取自己需要的信息,然而目標業(yè)務(wù)系統(tǒng)并不希望理解越來越多的源業(yè)務(wù)系統(tǒng)自定義的源對象,所以就需要共享系統(tǒng)將上述源對象轉(zhuǎn)化成標準的目標對象,從而使得目標業(yè)務(wù)系統(tǒng)能夠獲取到自己需要的信息。由此,目標業(yè)務(wù)系統(tǒng)只需要理解標準的目標對象即可,不再需要費力去理解各種源業(yè)務(wù)系統(tǒng)自定義的各種源對象。
[0003]例如,用戶通過源業(yè)務(wù)系統(tǒng)例如商品中心購買自己需要的商品,而在購買的過程中,用戶很有可能會選擇支付寶這樣的共享系統(tǒng)來完成付款,在這個過程中,用戶首先通過商品中心向共享系統(tǒng)提交所定義的淘寶訂單對象,共享系統(tǒng)將商品中心所定義的淘寶訂單對象轉(zhuǎn)化成標準的訂單,從而驗證用戶合法性的目標業(yè)務(wù)系統(tǒng)例如認證中心就可以從標準的訂單中讀取用戶信息,從而判斷上述用戶的合法性。
[0004]圖1為共享系統(tǒng)與各業(yè)務(wù)系統(tǒng)之間的消息交互示意圖,其中,共享系統(tǒng)主要包括消息中心和實時數(shù)據(jù)平臺(zdatabus)兩個部分,其具體處理過程如下:
[0005]I)消息中心負責收集各個源業(yè)務(wù)系統(tǒng)(數(shù)據(jù)生產(chǎn)方)發(fā)出來的源對象,并推送給實時數(shù)據(jù)平臺;
[0006]2)實時數(shù)據(jù)平臺在收到源對象后,通過轉(zhuǎn)化工具進行源對象的轉(zhuǎn)化處理,生成標準的目標對象,并將生成的標準的目標對象,實時推送給有訂閱的目標業(yè)務(wù)系統(tǒng)(數(shù)據(jù)消費方)。
[0007]然而在進行zdatabus的建設(shè)過程中碰到的最大的問題就是,由于源對象種類繁多,按照一般的做法,每一種對象都需要通過編寫java代碼,轉(zhuǎn)成標準的目標對象,工作量大,需求復雜,不符合共享系統(tǒng)的標準。
[0008]現(xiàn)有技術(shù)中,轉(zhuǎn)化工具預先建立數(shù)據(jù)庫表,然后通過該數(shù)據(jù)庫表描述源對象的屬性和目標對象模型的屬性之間的對應(yīng)關(guān)系,當需要將源對象轉(zhuǎn)化為目標對象時,轉(zhuǎn)化工具通過讀取數(shù)據(jù)庫表來獲取源對象的屬性和目標對象模型的屬性之間的對應(yīng)關(guān)系,并根據(jù)該對應(yīng)關(guān)系,為目標對象模型的屬性賦值,從而生成目標對象。然而數(shù)據(jù)庫表只能描述簡單的屬性間對應(yīng)關(guān)系,而無法描述更復雜的邏輯,例如條件判斷、對象轉(zhuǎn)化的觸發(fā)條件等;另外,很多對象的轉(zhuǎn)化是復雜的多對多的關(guān)系,如果想要通過數(shù)據(jù)庫表來完整描述各種屬性的對應(yīng)關(guān)系,表的定義會非常復雜,以致難以理解,反而給開發(fā)帶來難度;另外,數(shù)據(jù)庫表中屬性的維護也比較困難。
[0009]另一種現(xiàn)有技術(shù)中,腳本引擎把源對象的屬性和目標對象模型的屬性之間的對應(yīng)關(guān)系放在具有自身語法體系的腳本中,在運行時讀取和解析腳本,并執(zhí)行腳本得到結(jié)果,根據(jù)得到的結(jié)果,為目標對象模型的屬性賦值,從而生成目標對象。但是,通過編寫腳本的方法,依然是傳統(tǒng)意義上的代碼開發(fā),差別只是換了一種語言,并不能有效降低程序員的開發(fā)工作。而且,寫在腳本中的源對象的屬性和目標對象模型的屬性之間的對應(yīng)關(guān)系仍然是非結(jié)構(gòu)化的,無法體現(xiàn)對象之間的繼承關(guān)系,在腳本運行出現(xiàn)問題時,不能快速的定位問題。
[0010]由上述可知,現(xiàn)有技術(shù)中在將源對象轉(zhuǎn)化為目標對象過程中,當源對象到目標對象的轉(zhuǎn)化為復雜的多對多的關(guān)系時,存在編碼復雜,進而耗費大量人力和計算機資源的問題。
【發(fā)明內(nèi)容】
[0011]本申請實施例提供了一種目標對象的生成方法及服務(wù)器,以解決當源對象到目標對象的轉(zhuǎn)化為復雜的多對多的關(guān)系時,存在的編碼復雜,進而耗費大量人力和計算機資源的問題。
[0012]第一方面,提供了一種目標對象的生成方法,該方法包括:
[0013]將預先配置好的配置文件讀入內(nèi)存,存儲為對應(yīng)的對象映射根節(jié)點;
[0014]接收源對象,從所述對象映射根節(jié)點中選擇與所述源對象相關(guān)聯(lián)的目標對象映射根節(jié)點,所述目標對象映射根節(jié)點中包括轉(zhuǎn)化條件和目標對象模型;
[0015]根據(jù)所述目標對象模型,對所述目標對象映射根節(jié)點分組;
[0016]對每組目標對象映射根節(jié)點,判斷所述組中的各個目標對象映射根節(jié)點中的轉(zhuǎn)化條件是否成立,當其中任一目標對象映射根節(jié)點中的轉(zhuǎn)化條件成立時,為該組目標對象映射根節(jié)點對應(yīng)的目標對象模型的屬性賦值,從而生成目標對象。
[0017]第二方面,提供了一種服務(wù)器,該服務(wù)器包括:存儲單元、接收單元、分組單元和生成單元;
[0018]所述存儲單元,用于將預先配置好的配置文件讀入內(nèi)存,存儲為對應(yīng)的對象映射根節(jié)點;
[0019]所述接收單元,用于接收源對象,從所述存儲單元存儲的所述對象映射根節(jié)點中選擇與所述源對象相關(guān)聯(lián)的目標對象映射根節(jié)點,所述目標對象映射根節(jié)點中包括轉(zhuǎn)化條件和目標對象模型;
[0020]所述分組單元,用于根據(jù)所述目標對象模型,對所述目標對象映射根節(jié)點分組;
[0021]所述生成單元,用于對每組目標對象映射根節(jié)點,判斷所述組中的各個目標對象映射根節(jié)點中的轉(zhuǎn)化條件是否成立,當其中任一目標對象映射根節(jié)點中的轉(zhuǎn)化條件成立時,為該組目標對象映射根節(jié)點對應(yīng)的目標對象模型的屬性賦值,從而生成目標對象。
[0022]本申請實施例提供的目標對象的生成方法及服務(wù)器,通過編寫配置文件的方法來描述復雜的目標對象模型的屬性的賦值方式,在轉(zhuǎn)化的過程中,在接收到源對象之后,通過讀取并解析與該源對象關(guān)聯(lián)的配置文件,為目標對象模型的屬性賦值,從而生成目標對象。由于編寫配置文件比編寫代碼要簡單很多,因此,可以有效降低編程復雜難度,從而縮短開發(fā)時間,并在運行時達到節(jié)省計算機資源的目的。
【附圖說明】
[0023]圖1為共享系統(tǒng)與各業(yè)務(wù)系統(tǒng)之間的消息交互示意圖;
[0024]圖2為本申請實施例一提供的目標對象的生成方法流程圖;
[0025]圖3為目標對象的生成方法示意圖;
[0026]圖4示出了目標對象映射根節(jié)點的排序結(jié)果圖;
[0027]圖5為本申請實施例二提供的目標對象的生成方法流程圖;
[0028]圖6為本申請實施例三提供的服務(wù)器的示意圖。
【具體實施方式】
[0029]下面通過附圖和實施例,對本申請的技術(shù)方案做進一步的詳細描述。
[0030]本申請實施例提供的目標對象的生成方法及服務(wù)器,通過編寫配置文件的方法來描述復雜的目標對象模型的屬性的賦值方式,在轉(zhuǎn)化的過程中,在接收到源對象之后,通過讀取并解析與該源對象關(guān)聯(lián)的配置文件,為目標對象模型的屬性賦值,從而生成目標對象。由于編寫配置文件比編寫代碼要簡單很多,因此,可以有效降低編程復雜難度,從而縮短開發(fā)時間,并在運行時達到節(jié)省計算機資源的目的。
[0031]本申請實施例提供的目標對象的生成方法可以應(yīng)用于如下場景中:用戶通過源業(yè)務(wù)系統(tǒng)例如商品中心購買自己需要的商品,而在購買的過程中,用戶很有可能會選擇支付寶這樣的共享系統(tǒng)來完成付款,在這個過程中,用戶首先通過商品中心向共享系統(tǒng)提交所定義的淘寶訂單對象(即源對象),共享系統(tǒng)將商品中心所定義的淘寶訂單對象轉(zhuǎn)化成標準的訂單對象(即目標對象),從而驗證用戶合法性的目標業(yè)務(wù)系統(tǒng)例如認證中心就可以從標準的訂單(目標對象)中讀取用戶信息,從而判斷上述用戶的合法性。
[0032]圖2為本申請實施例一提供的目標對象的生成方法流程圖。所述方法的執(zhí)行主體可以為具有處理能力的設(shè)備:服務(wù)器或者系統(tǒng)或者裝置,例如圖1中的實時數(shù)據(jù)平臺,如圖2所示,所述方法具體包括:
[0033]步驟210,將預先配置好的配置文件讀入內(nèi)存,存儲為對應(yīng)的對象映射根節(jié)點。
[0034]需要說明的是,該配置文件是由人工預先配置的,人工預先把目標對象的生成規(guī)則寫成結(jié)構(gòu)化的配置文件。其中,目標對象就是由實時數(shù)據(jù)平臺生成的目標業(yè)務(wù)系統(tǒng)可以理解的對象。該配置文件用于描述在滿足一定的條件下,如何為目標對象模型的屬性賦值,從而生成目標對象。目標對象模型是由人工預先建立的,對應(yīng)特定的類,并且該目標對象模型具有不同的屬性,為上述目標對象模型的屬性賦值之后,就可以生成目標對象??梢岳斫獾氖?,給定同一目標對象模型的屬性不相同的值時,則可以生成不同的目標對象,但是這些目標對象屬于同一類,即屬于目標對象模型對應(yīng)的特定類。
[0035]可以理解的是,待生成的目標對象不同,則需要配置的配置文件則不同。當需要生成N個不同的目標對象時,則需要配置N個不同的配置文件。該配置文件包括轉(zhuǎn)化條件,還可以包括目標對象模型的屬性的賦值方式,其中,轉(zhuǎn)化條件也可以稱為過濾條件,用于判斷是否要根據(jù)配置文件中的目標對象模型的屬性的賦值方式,為目標對象模型的屬性賦值,從而生成目標對象。
[0036]需要說明的是,由于在java語言中,當需要引用目標對象模型