專利名稱:一種自定義格式平面話單文件的處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通信領(lǐng)域,尤其涉及一種自定義格式平面話單文件的處理方法。
背景技術(shù):
移動通信漫游計費通常是根據(jù)GSMA標準的TAP話單文件來實施數(shù)據(jù)清算,最終達到財務(wù)結(jié)算的目的。目前,全球多數(shù)運營商的計費話單文件都符合TAP標準,這樣清算中心在實施話單清算時,只需要根據(jù)相應(yīng)的幾種TAP文件版本(如TAP310、TAP311)實現(xiàn)對應(yīng)的編解碼和校驗方案,即可應(yīng)對任何運營商的符合TAP話單標準的的計費文件。然而部分運營商仍然存在一些不符合TAP標準的話單文件,這些話單文件通常是平面文本格式,常見的如CSV格式、定長分割格式,還存在話單文件包含文件頭節(jié)點、尾節(jié)點的情況,每個單獨的節(jié)點還可能包含子屬性,同時一個文件中可能混用多種格式,節(jié)點的數(shù)量和校驗方法都不盡相同。也就是說,一個運營商的非標準平面話單文件,完全是自定義格式和校驗規(guī)則的。如此復雜的情況,給清算中心帶來較大的壓力。面對這種情況,常用的處理方法是根據(jù)每一種自定義格式話單文件分別實施對應(yīng)的編解碼和校驗方案,這也是最容易理解的方案,但是這種方案給清算中心帶來的較高的成本,因為實現(xiàn)一套編解碼和校驗方案并非易事,且該方案并不具有通用性,只能應(yīng)用到與其對應(yīng)的話單文件上。另一種處理方法是將自定義格式話單文件轉(zhuǎn)換為標準的TAP文件,然后再進行清算實施。該方案具備可行性的原因是無論哪種格式的話單文件,都需要描述通話的基本信息,因此大部分節(jié)點與TAP標準都存在功能相似性。但該方案仍然存在顯著的缺點,首先,非標準話單文件和TAP話單文件之間通常也存在較大的差異性,導致在實施轉(zhuǎn)換時某些節(jié)點難以匹配;其次,先進行轉(zhuǎn)換再進行清算需要付出轉(zhuǎn)換成本,降低了系統(tǒng)處理能力 ’最后,需要針對每一類自定義話單文件實施對應(yīng)的轉(zhuǎn)換方案,不具備復用性。
上文提到的兩種常見方案都可以解決自定義格式平面話單文件的編解碼和校驗問題,但同時又具有不可避免的重要缺陷。首先是成本高,然后特別是針對新的自定義格式話單的出現(xiàn),完全需要實現(xiàn)一套新的編解碼及校驗機制,或者是實現(xiàn)一套新的轉(zhuǎn)換規(guī)則。長遠看來,需要存在一種方案,既能應(yīng)付現(xiàn)有自定義格式平面話單文件的編解碼和校驗,又能在出現(xiàn)新的自定義格式話單文件時,只需要付出較小的成本就能完成對新文件的編解碼和校驗。本發(fā)明就是這樣的方案,本方案要解決的技術(shù)問題在于,針對現(xiàn)有的自定義格式平面話單文件編解碼及校驗高成本,特別是面對新格式平面話單文件的出現(xiàn)而系統(tǒng)擴展性不足的問題,提供一種新的自定義格式平面話單文件的編解碼及校驗方案。該方案主要通過抽象文件格式和校驗規(guī)則,通過格式定義和校驗規(guī)則定義,提供一套可復用、易擴展、高效率、從而降低成本的自定義格式平面話單文件編解碼和校驗方法
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種擴展性好的自定義格式平面話單文件的處理方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種自定義格式平面話單文件的處理方法,包括:S10.分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義;S20.分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義;S30.根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并根據(jù)所述當前話單文件的運營商分別從相應(yīng)的格式定義配置文件和相應(yīng)的規(guī)則定義配置文件中裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。在本發(fā)明所述的自定義格式平面話單文件的處理方法中,在步驟SlO中,從運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義的步驟具體包括:Sll.獲取運營商提供的話單文件;S12.將所述話單文件分解成多個語義單元;S13.逐個判斷每個語義單元是否內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中,若是,則進行步驟S14 ;若否,則定義新的語義單元,然后執(zhí)行步驟S14 ;S14.逐個判斷每個節(jié)點的取值方式是否內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中,若是,則進行步驟S15 ;若否,則定義新的取值方式;S15.分析節(jié)點屬性,并判斷節(jié)點是否具備子屬性,若否,則執(zhí)行步驟S16 ;若是,則分析子屬性的取值方式,然后執(zhí)行步驟S16 ;S16.將所分析的語義單元、取值方式、節(jié)點屬性組合,以確定格式定義;S17.使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義。在本發(fā)明所述的自定義格式平面話單文件的處理方法中,在所述步驟S20中,從運營商提供的節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義的步驟包括:S21.將語義單元分解為多個節(jié)點;S22.分析每個節(jié)點的校驗屬性,并判斷所述校驗屬性是否內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中,若是,則執(zhí)行步驟S23 ;若否,則定義新的校驗屬性,然后執(zhí)行步驟S23 ;S23.將所分析的校驗屬性組合,以確定節(jié)點校驗的規(guī)則定義;S24.使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義。在本發(fā)明所述的自定義格式平面話單文件的處理方法中,預(yù)先存儲在校驗屬性系統(tǒng)中的校驗屬性包括:節(jié)點名稱、存在屬性、存在條件、數(shù)據(jù)類型、數(shù)據(jù)長度、有效取值、存在屬性錯誤碼、非法值錯誤碼。本發(fā)明還構(gòu)造一種自定義格式平面話單文件的處理系統(tǒng),包括:格式定義模塊,用于分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義;規(guī)則定義模塊,用于分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義;處理模塊,用于根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并根據(jù)所述當前話單文件的運營商分別從相應(yīng)的格式定義配置文件和相應(yīng)的規(guī)則定義配置文件中裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。在本發(fā)明所述的自定義格式平面話單文件的處理系統(tǒng)中,所述格式定義模塊包括:獲取單元,用于獲取運營商提供的話單文件;第一分解單元,用于將所述話單文件分解成多個語義單元;第一判斷單元,用于逐個判斷每個語義單元是否內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中;第一定義單元,用于在判斷語義單元無內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中時,則定義新的語義單元;第二判斷單元,用于逐個判斷每個節(jié)點的取值方式是否內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中;第二定義單元,用于在判斷節(jié)點的取值方式無內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中時,定義新的取值方式;第三判斷單元,用于分析節(jié)點屬性,并判斷節(jié)點是否具備子屬性;分析單元,用于在判斷節(jié)點具備子屬性時,分析子屬性的取值方式;格式確定單元,用于將所分析的語義單元、取值方式、節(jié)點屬性組合,以確定格式定義;第一存儲單元,用于使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義。在本發(fā)明所述的自定義格式平面話單文件的處理系統(tǒng)中,所述規(guī)則定義模塊包括:第二分解單元,用于將語義單元分解為多個節(jié)點;第四判斷單元,用于分析每個節(jié)點的校驗屬性,并判斷所述校驗屬性是否內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中;第三定義單元,用于在判斷所述校驗屬性無內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中時,定義新的校驗屬性;規(guī)則確定單元,用于將所分析的校驗屬性組合,以確定節(jié)點校驗的規(guī)則定義;第二存儲單元,用于使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義。在本發(fā)明所述的自定義格式平面話單文件的處理系統(tǒng)中,預(yù)先存儲在校驗屬性系統(tǒng)中的校驗屬性包括:節(jié)點名稱、存在屬性、存在條件、數(shù)據(jù)類型、數(shù)據(jù)長度、有效取值、存在屬性錯誤碼、非法值錯誤碼。實施本發(fā)明的技術(shù)方案,通過將自定義格式的平面話單文件的格式和節(jié)點校驗的規(guī)則抽象出來,使其組件化、可配置化,因此通用性高,對于非特殊的話單文件,只需通過簡單的格式定義和規(guī)則定義,再調(diào)用相應(yīng)運營商的格式定義和規(guī)則定義即可完成編解碼和校驗;其次,擴展性好,即使出現(xiàn)新的格式或校驗點,只需相應(yīng)的派生出新的格式和校驗點并加以實現(xiàn)即可,并不需要付出太大的成本;再次,性能好,因為直接操作話單文件,相對于現(xiàn)有的方案,并沒有類似轉(zhuǎn)換的工作,提高了系統(tǒng)處理能力;最后,可復用好,每一種格式和規(guī)則都可以作為基礎(chǔ)設(shè)施沉淀下來,最終擁有大量的組件,在處理新類型話單文件時,利用這些組件通過簡單裝配就能高效完成。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:圖1是本發(fā)明自定義格式平面話單文件的處理方法實施例一的流程圖;圖2是圖1中步驟SlO優(yōu)選實施例的流程圖;圖3是圖1中步驟S20優(yōu)選實施例的流程圖;圖4是一種自定義平面話單文件的結(jié)構(gòu)圖;圖5是本發(fā)明編解碼器類關(guān)系圖;圖6是本發(fā)明話單格式類關(guān)系圖;圖7是本發(fā)明校驗規(guī)則類關(guān)系圖;圖8是本發(fā)明語義單元類關(guān)系圖;圖9是本發(fā)明話單文件與其他工作類關(guān)系圖;圖10是本發(fā)明話單格式(Schema)對象內(nèi)部結(jié)構(gòu)圖;圖11是本發(fā)明校驗規(guī)則對象內(nèi)部結(jié)構(gòu)圖;圖12是本發(fā)明自定義格式平面話單文件的處理系統(tǒng)實施例一的邏輯圖;圖13是圖12中格式定義模塊優(yōu)選實施例的邏輯圖;圖14是圖12中規(guī)則定義模塊優(yōu)選實施例的邏輯圖。
具體實施例方式首先說明的是,標準的TAP話單文件將漫游詳單信息經(jīng)過ASN編碼為二進制后存儲起來,而非TAP話單文件為了降低復雜度,通常都采用平面文件格式,由于各個運營商使用的交換機不同,或者是由于一些個性化信息的加入,再或者是由于對話單文件進行了再加工,導致這些非標準的平面話單文件格式和校驗點五花八門。對于非標準平面話單文件,其基本格式通常有如下類型:I)符號分隔型。如逗號分隔文件,也稱為CSV格式,或者斜線分隔,例如AAA/BBB/CCC類似格式的話單記錄,每兩個分隔符之間的數(shù)據(jù)域稱為一個節(jié)點;2)定長分割型。按照長度獲取節(jié)點值。如存在ABCDEFG,規(guī)定第一個節(jié)點的起始位置為I,長度為2,第二個節(jié)點的起始位置為3,長度為5.那么第一個節(jié)點的值即為AB,第二個節(jié)點的值為⑶EFG ;事實上,非標準平面話單格式的復雜性主要體現(xiàn)在如下方面:I)話單文件存在附加信息。如部分運營商的話單包含頭部文件級信息或者尾部審計信息等,或者包含多個附加信息,對于附加信息,其中的信息量及校驗方式也不相同;2)同一話單采用混合格式。一個話單文件中頭尾附加信息、話單可能都是不同的格式,如附加信息格式是定長分割型,詳單記錄是符號分隔型;3)詳單節(jié)點定義不一致。話單文件中,一條語音詳單和一條GPRS詳單,由于要描述的信息的差異性,其節(jié)點數(shù)量和語義通常都是不一致的;4)節(jié)點還存在子屬性。話單文件中的節(jié)點還可能由多個子屬性構(gòu)成,而且某些子屬性還可能是可選屬性;非標準平面話單的格式還存在其他多種特點,并且隨著時間推移,還會出現(xiàn)更多新特點。清算中心在處理話單時,首要的操作就是將描述一條詳單的各個節(jié)點信息解析出來,如 IMSI (International Mobile Subscriber Identity,國際移動用戶識別碼)、通話起始時間、時長等,這個過程叫做解碼。同理,在將這些節(jié)點信息組織起來按照一定格式輸出到文件中的過程,稱為編碼。在進行話單文件的編解碼時,必須確定的知曉話單文件的格式。要清楚的描述一條詳單記錄,詳單中有些節(jié)點是必須存在的,有些節(jié)點則是可選出現(xiàn)的,而有些又是有條件出現(xiàn)的。同時由于各節(jié)點都有其獨立的含義,所以其值域也要求滿足一定的約束條件。如何判斷一條詳單是否有效,以及其各節(jié)點是否有效,是通過校驗來完成的。不同的節(jié)點有不同的校驗規(guī)則,對于一個具體的節(jié)點,可能的校驗點有是否存在、數(shù)據(jù)類型、長度、有效值等,某些節(jié)點之間還存在互相依存關(guān)系。校驗的結(jié)果需要清楚的展示出來,如節(jié)點不存在,值域不合法等。本發(fā)明專利針對具備上述復雜特征的平面話單文件,提供下述處理方案。如圖1所示,在本發(fā)明自定義格式平面話單文件的處理方法實施例一的流程圖中,該處理方法包括:S10.分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義;S20.分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義;S30.根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并根據(jù)所述當前話單文件的運營商分別從相應(yīng)的格式定義配置文件和相應(yīng)的規(guī)則定義配置文件中裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。圖2是圖1中步驟SlO優(yōu)選實施例的流程圖,步驟SlO包括步驟Sll S20,應(yīng)當說明的是,步驟Sll S20僅示出了一個運營商的話單文件的格式定義步驟,應(yīng)當理解,其它運營商的話單文件的格式定義步驟與其類似,不再贅述。下面具體說明步驟Sll S20:Sll.獲取運營商提供的話單文件;S12.將所述話單文件分解成多個語義單元;S13.逐個判斷每個語義單元是否內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中,若是,則進行步驟S14 ;若否,則執(zhí)行步驟S18 ;S18.定義新的語義單元,然后執(zhí)行步驟S14 ;S14.逐個判斷每個節(jié)點的取值方式是否內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中,若是,則進行步驟S15 ;若否,則執(zhí)行步驟S19 ;S19.定義新的取值方式;S15.分析節(jié)點屬性,并判斷節(jié)點是否具備子屬性,若否,則執(zhí)行步驟S16 ;若是,則執(zhí)行步驟S20 ;S20.分析子屬性的取值方式,然后執(zhí)行步驟S16 ;S16.將所分析的語義單元、取值方式、節(jié)點屬性組合,以確定格式定義;S17.使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義。圖3是圖1中步驟S20優(yōu)選實施例的流程圖,步驟S20包括步驟S21 S25,應(yīng)當說明的是,步驟S21 S25僅示出了一個運營商的節(jié)點校驗的規(guī)則定義步驟,應(yīng)當理解,其它運營商的節(jié)點校驗的規(guī)則定義步驟與其類似,不再贅述。下面具體說明步驟S21 S25:S21.將語義單元分解為多個節(jié)點;S22.分析每個節(jié)點的校驗屬性,并判斷所述校驗屬性是否內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中,若是,則執(zhí)行步驟S23 ;若否,則執(zhí)行步驟S25 ;S25.定義新的校驗屬性,然后執(zhí)行步驟S23 ;S23.將所分析的校驗屬性組合,以確定節(jié)點校驗的規(guī)則定義;S24.使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義。下面具體說明自定義格式平面話單文件的處理方法:I)抽象話單文件的格式定義,使用配置文件定義話單格式。雖然話單文件的格式千變?nèi)f化,但總體抽象起來,其最基本的取值格式是上文提到的符號分隔型和定長分割型。復雜的話單文件通常是不同的語義單元采用了不同的取值格式,并且話單文件包含多個語義單元。如果將這些特征拆分開來,一個話單文件的格式可以用如下特征描述:>話單文件是否存在附加信息?都有哪些附加信息?>附加信息取值方式是符號分隔型還是定長分割型,還是其它未定義的特殊取值方式?>詳單格式有幾種類型?其格式分別是什么?是符號分隔型還是定長分割型,還是其它特殊取值方式?>各節(jié)點有子屬性嗎?子屬性是符號分隔型還是定長分割型,還是其它特殊取值方式?本專利方案在分析如上特征后,將話單文件的格式定義劃分為三個因素,結(jié)合圖4所述的話單文件的格式,具體描述如下:籲語義單元。語義單元表示話單中一個具體的信息單元,此處的語義單元處在較高級的層次,不涉及具體的節(jié)點信息。話單文件中的語義單元如頭結(jié)點(HEADER)、尾節(jié)點(TRAILER)、詳單(CDR)等。本方案定義了基本的語義單元,約定只要出現(xiàn)語義單元定義則表示具有該語義單元,否則表示不存在。如果用戶需要的語義單元系統(tǒng)沒有內(nèi)置在預(yù)先存儲的語義單元系統(tǒng),還可以定義新的語義單元。 取值方式。取值方式表示從一條記錄中如何獲取某個節(jié)點的值,包含符號分隔型(DELIMITED)和定長分割型(FIXEDLENGTH)。對于符號分隔型,只需要定義分隔符即可,如DEUMITED(,)表示逗號分隔;對于定長分隔型,需要定義各節(jié)點的長度等,如FIXEDLENGTHd, 5,9)表示第一個節(jié)點長度為1,第二個節(jié)點長度為5,依次類推。當然,用戶還可以擴展新的取值方式定義。 節(jié)點屬性。節(jié)點屬性主要表示節(jié)點是否具有子屬性,如果具有子屬性,還需要定義子屬性的取值方式(SUBFMT)。為了簡化起見,約定只要語法單元存在SUBFMT定義則表示具有子屬性。針對如上三個因素,本方案將這些因素配置化,以達到使用這些因素單元來配置話單文件格式的目的,從而將復雜格式分解化,最后再統(tǒng)一化。一個典型的話單格式配置如下:[HEADER]FMT = DELIMITED (,)SUBFMT = FIXLENGTH (3,5,9)[CDR]FMT = FIXEDLENGTH (2,4,6,4,5,8,8)SUBFMT = DELIMITED (/)[TRAILER]FMT = FIXLENGTH (3,5)2)抽象節(jié)點校驗規(guī)則,使用配置文件定義節(jié)點校驗規(guī)則。有了話單的格式定義,就可以將其中的信息解析為各個語義單元,進而解析出各個節(jié)點,即解碼的過程。至于相應(yīng)的節(jié)點是否存在、節(jié)點值域是否正確,則依賴校驗來完成分析,要提供對節(jié)點的校驗,則需要知曉節(jié)點的詳細特征,本方案將其特性用屬性表示,各屬性抽象如下: 節(jié)點名稱(NAME)籲存在屬性(EXIST_TYPE,參考TAP標準,取值M/C/0,分別表示Mandatory/Conditional/Optional,如果為C型,則必須指定存在條件) 存在條件(EXIST_C0NDIT10N,為一個函數(shù)名稱,函數(shù)調(diào)用返回成功時,節(jié)點必須存在) 數(shù)據(jù)類型(DATA_TYPE,分為 string, number, datetime) 數(shù)據(jù)長度(DATA_LENGTH,當數(shù)據(jù)類型為string時,可選指定數(shù)據(jù)長度)
籲有效取值(LEGAL_VALUE,對應(yīng)區(qū)間值、枚舉型值在此列出,區(qū)間用表示,枚舉值用逗號分隔,為空表示不限制)
存在屬性錯誤碼(EXIST_ERR_C0DE,節(jié)點不存在錯誤碼) 非法值錯誤碼(VALUE_ERR_C0DE,非法取值錯誤碼)使用如上節(jié)點屬性,基本可以確定一個節(jié)點的校驗規(guī)則,如果上述定義的屬性還不能滿足某些節(jié)點的校驗,用戶可以自行定義新的屬性。要完成一個話單文件的校驗規(guī)則定義,首先需要將話單文件各語義單元包含的節(jié)點及順序定義出來,此處的語義單元需要和格式定義中的語義單元保持一致;然后再定義每一個節(jié)點的校驗規(guī)則。事實上,通常會將格式定義和規(guī)則定義合并在同一個配置文件中。一個典型的話單文件校驗規(guī)則定義如下:[HEADER]NODE = 1,2,3[CDR]NODE = 4,5,6,7[TRAIIER]NODE = 8,9[I]NAME = MSC_TYPEEXIST_TYP E = MDATA_TYPE = NUMBERLEGAL_VALUE = 1—5,11,12,13EXIST_ERR0R_C0DE = 10F0RMAT_ERR0R_C0DE = 20VALUE_ERR0R_C0DE = 30EXIST_C0NDIT10N =[2]TAG_NAME = CDR_IDEXIST_TYPE = CDATA_TYPE = STRINGDATA_LENGTH = 16EXIST_ERR0R_C0DE = 11F0RMAT_ERR0R_C0DE = 21VALUE_ERR0R_C0DE = 3IEXIST_C0NDIT10N = VALCDRIDEXIST3)提供編解碼和校驗服務(wù)框架,既能兼容已知格式和校驗規(guī)則的話單,又能在低成本擴展的情況下支持新類型話單,對所獲取的當前話單文件進行處理。本方案在抽象了格式定義和校驗規(guī)則的基礎(chǔ)上,提供了一套編解碼和校驗服務(wù)框架,該框架采用C++語言實現(xiàn),不僅能天然支持預(yù)定義的格式和校驗規(guī)則,還具備靈活的擴展能力。本方案的服務(wù)框架主要包含如下工作對象: 編解碼器(Codec)。針對兩種基本取值方式定義,符號分隔型和定長分隔型,將其對應(yīng)實現(xiàn)為DelimitCodec和FixedLengthCodec,結(jié)合圖5所示的編解碼器類關(guān)系圖,二者皆從抽象基類Codec派生而來,具備Decode O和EncodeO方法。 話單格式(Schema)。該對象用來描述話單包含的語義單元及其格式定義。 格式定義裝載器(SchemaLoader)。結(jié)合圖6所示的話單格式類關(guān)系圖,當定義了話單的格式后,該對象負責從格式定義配置文件中裝載格式信息,裝載完成后,提供接口GetSchema ()讓用戶獲取話單格式對象。 校驗規(guī)則單元(RuleUnit)。校驗規(guī)則單元是一類對象,規(guī)則定義中的每一個校驗條目如EXIST_TYPE或DATA_TYPE,都對應(yīng)一個校驗規(guī)則單元對象。此類對象從基類Rule派生,提供Validate O方法驗證該規(guī)則條目是否通過校驗。 節(jié)點校驗規(guī)則(ValRule)。該對象定義了一個節(jié)點的校驗規(guī)則,通常包含多個校驗規(guī)則單元,提供ValidateO方法。 校驗規(guī)則裝載器(RuleLoader)。結(jié)合圖7所示的校驗規(guī)則類關(guān)系圖,當定義了節(jié)點校驗規(guī)則后,該對象負責從校驗規(guī)則文件中裝載規(guī)則信息,裝載完成后,提供接口GetCompList O和GetCompRule O讓用戶獲取節(jié)點列表及其校驗規(guī)則。 語義單元(Component)。結(jié)合圖8所示的語義單元類關(guān)系圖,語義單元是一類對象的統(tǒng)稱,這一類對象均從Component抽象基類派生出來,主要包含字段(Field)、節(jié)點(Node)、記錄(Record)。Field表示沒有子屬性的節(jié)點,Node表示具有子屬性的節(jié)點。上文定義的語義單元均從Record對象派生,包含頭結(jié)點(Header)、尾節(jié)點(Trailer)、詳單(Cdr)。 話單文件(⑶File)。結(jié)合圖9所示的話單文件與其他工作類關(guān)系圖,該話單文件對象是最終的工作對象,它利用上文提到的工作對象組合起來完成對話單的Encode O、Decode O 和 Validate O。
在格式定義文件和校驗規(guī)則定義文件已存在的情況下,本服務(wù)框架的核心作流程如下:1、創(chuàng)建一個格式定義裝載器對象,該對象從格式定義配置文件中獲取當前話單文件中存在的語義單元,每個語義單元的取值方式,以及節(jié)點是否具有子屬性及其取值方式,然后將這些信息存儲在Schema對象里,如圖10所示的Schema對象內(nèi)部結(jié)構(gòu)圖,一個Schema對象包含了一類話單文件所有的格式信息;2、創(chuàng)建一個校驗規(guī)則裝載器對象,結(jié)合圖11所示的校驗規(guī)則對象內(nèi)部結(jié)構(gòu)圖,該對象從規(guī)則定義配置文件中獲取每一個語義單元包含的節(jié)點以及每個節(jié)點的校驗規(guī)則,在其內(nèi)部保存了每個語義單元,每個語義單元包含的節(jié)點,每個節(jié)點的校驗規(guī)則。3、創(chuàng)建一個話單文件對象,創(chuàng)建話單文件對象時,必須利用SetSchemaO方法和SetRuleO方法指定格式和校驗規(guī)則,同時需要指定話單文件路徑。該對象調(diào)用格式定義裝載器和校驗規(guī)則裝載器獲取話單中存在的語義單元,每個語義單元包含的節(jié)點、每個節(jié)點的校驗規(guī)則,通過調(diào)用DecodeO、Encode()和ValidateO方法完成對整個文件的編解碼和校驗?;谏鲜龇桨福覀冊谔幚碜远x格式平面話單文件時,可采用如下處理步驟實現(xiàn):1.定義文件格式。首先分析出語義單元,再分析出各語義單元的取值方式,同時確認節(jié)點是否具有子屬性,以及子屬性的取值方式。然后將其定義在配置文件中。當出現(xiàn)一種新的語義單元時,用戶也可以自定義新的語義單元,只需要在實現(xiàn)時從Record類派生出該語義單元,并實現(xiàn)其對應(yīng)的接口即可。同理,當出現(xiàn)新的取值方式時,只需要從編解碼器Codec派生出新的編解碼器即可。2.定義校驗規(guī)則。按照格式定義中的語義單元,分別確定各語義單元包含的節(jié)點及其順序,然后根據(jù)業(yè)務(wù)規(guī)則,將各個節(jié)點的校驗屬性表現(xiàn)出來。如果需要對某個節(jié)點增加新的約束,用戶也可自定義一種新的屬性,只需要在實現(xiàn)時從RuleUnit對象派生出來并實現(xiàn)對應(yīng)的接口即可。3.創(chuàng)建話單文件對象。上述兩個步驟完成后,即可創(chuàng)建話單文件對象⑶File,設(shè)置格式Schema和校驗規(guī)則Rule,然后調(diào)用其對應(yīng)的方法完成編解碼和校驗,其典型工作流
程如下:
權(quán)利要求
1.一種自定義格式平面話單文件的處理方法,其特征在于,包括: 510.分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義; 520.分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義; S30.根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并根據(jù)所述當前話單文件的運營商分別從相應(yīng)的格式定義配置文件和相應(yīng)的規(guī)則定義配置文件中裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。
2.根據(jù)權(quán)利要求1所述的 自定義格式平面話單文件的處理方法,其特征在于,在步驟SlO中,從運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義的步驟具體包括: 511.獲取運營商提供的話單文件; 512.將所述話單文件分解成多個語義單元; 513.逐個判斷每個語義單元是否內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中,若是,則進行步驟S14 ;若否,則定義新的語義單元,然后執(zhí)行步驟S14 ; 514.逐個判斷每個節(jié)點的取值方式是否內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中,若是,則進行步驟S15 ;若否,則定義新的取值方式; 515.分析節(jié)點屬性,并判斷節(jié)點是否具備子屬性,若否,則執(zhí)行步驟S16;若是,則分析子屬性的取值方式,然后執(zhí)行步驟S16 ; 516.將所分析的語義單元、取值方式、節(jié)點屬性組合,以確定格式定義; 517.使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義。
3.根據(jù)權(quán)利要求2所述的自定義格式平面話單文件的處理方法,其特征在于,在所述步驟S20中,從運營商提供的節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義的步驟包括: 521.將語義單元分解為多個節(jié)點; 522.分析每個節(jié)點的校驗屬性,并判斷所述校驗屬性是否內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中,若是,則執(zhí)行步驟S23 ;若否,則定義新的校驗屬性,然后執(zhí)行步驟S23 ; 523.將所分析的校驗屬性組合,以確定節(jié)點校驗的規(guī)則定義; 524.使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義。
4.根據(jù)權(quán)利要求3所述的自定義格式平面話單文件的處理方法,其特征在于,預(yù)先存儲在校驗屬性系統(tǒng)中的校驗屬性包括:節(jié)點名稱、存在屬性、存在條件、數(shù)據(jù)類型、數(shù)據(jù)長度、有效取值、存在屬性錯誤碼、非法值錯誤碼。
5.一種自定義格式平面話單文件的處理系統(tǒng),其特征在于,包括: 格式定義模塊,用于分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義; 規(guī)則定義模塊,用于分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義; 處理模塊,用于根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并根據(jù)所述當前話單文件的運營商分別從相應(yīng)的格式定義配置文件和相應(yīng)的規(guī)則定義配置文件中裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。
6.根據(jù)權(quán)利要求5所述的自定義格式平面話單文件的處理系統(tǒng),其特征在于,所述格式定義模塊包括: 獲取單元,用于獲取運營商提供的話單文件; 第一分解單元,用于將所述話單文件分解成多個語義單元; 第一判斷單元,用于逐個判斷每個語義單元是否內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中;第一定義單元,用于在判斷語義單元無內(nèi)置在預(yù)先存儲的語義單元系統(tǒng)中時,則定義新的語義單元; 第二判斷單元,用于逐個判斷每個節(jié)點的取值方式是否內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中; 第二定義單元,用于在判斷節(jié)點的取值方式無內(nèi)置在預(yù)先存儲的取值方式系統(tǒng)中時,定義新的取值方式; 第三判斷單元,用于分析節(jié)點屬性,并判斷節(jié)點是否具備子屬性; 子屬性分析單元,用于在判斷節(jié)點具備子屬性時,分析子屬性的取值方式; 格式確定單元,用于將所分析的語義單元、取值方式、節(jié)點屬性組合,以確定格式定義; 第一存儲單元,用于使用與運營商的標識相關(guān)的格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義。
7.根據(jù)權(quán)利要求6所述的自定義格式平面話單文件的處理系統(tǒng),其特征在于,所述規(guī)則定義模塊包括: 第二分解單元,用于將語義單元分解為多個節(jié)點; 第四判斷單元,用于分析每個節(jié)點的校驗屬性,并判斷所述校驗屬性是否內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中; 第三定義單元,用于在判斷所述校驗屬性無內(nèi)置在預(yù)先存儲的校驗屬性系統(tǒng)中時,定義新的校驗屬性; 規(guī)則確定單元,用于將所分析的校驗屬性組合,以確定節(jié)點校驗的規(guī)則定義; 第二存儲單元,用于使用與運營商的標識相關(guān)的規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義。
8.根據(jù)權(quán)利要求7所述的自定義格式平面話單文件的處理系統(tǒng),其特征在于,預(yù)先存儲在校驗屬性系統(tǒng)中的校驗屬性包括:節(jié)點名稱、存在屬性、存在條件、數(shù)據(jù)類型、數(shù)據(jù)長度、有效取值、存在屬 性錯誤碼、非法值錯誤碼。
全文摘要
本發(fā)明公開了一種自定義格式平面話單文件的處理方法和系統(tǒng),該處理方法包括分別從不同的運營商提供的話單文件的格式信息中抽象出話單文件的格式定義,并使用格式定義配置文件來存儲相應(yīng)運營商的話單文件的格式定義;分別從不同的運營商提供的話單節(jié)點校驗的規(guī)則信息中抽象出節(jié)點校驗的規(guī)則定義,并使用規(guī)則定義配置文件來存儲相應(yīng)運營商的節(jié)點校驗的規(guī)則定義;根據(jù)所獲取的當前話單文件創(chuàng)建所對應(yīng)的話單文件對象,并裝載格式定義和規(guī)則定義,然后調(diào)用所述格式定義和規(guī)則定義,并為所述當前話單文件對象設(shè)置格式和設(shè)置校驗規(guī)則,且對所述當前話單文件對象進行編解碼和校驗。實施本發(fā)明的技術(shù)方案,通用性高、擴展性好、性能好、可復用好。
文檔編號G06F17/27GK103164389SQ20111041798
公開日2013年6月19日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者陳卓, 郭琦, 杜歐杰, 姚蕓, 陳春松, 韓林 申請人:中國移動(深圳)有限公司