通信專業計費規則引擎的運用

時間:2022-08-16 09:54:11

導語:通信專業計費規則引擎的運用一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

通信專業計費規則引擎的運用

通信業高速發展的今天,新業務層出不窮,各業務的處理邏輯、流程五花八門。譬如,語音業務包括市話、長途、漫游、可視通話等;短信包括短信、彩信等;數據業務包括手機上網、無線上網卡業務等;增值業務包括手機電視、手機音樂等。使用這些業務所產生的使用事件類型更是多種多樣,譬如長途事件可分為省內長途、國內長途、港澳臺長途、國際長途等。批價或賬務模塊需要確定、區分這些使用事件類型,針對不同業務采用不同的方法處理。如果在代碼中列出目前所有的事件因素,然后根據不同情況來分別判斷,這樣雖然可以滿足現狀,但程序就沒有了擴展性。如果新增一項業務、其所需的事件因素又不同于已有數據,這樣程序就需升級,否則就不能開展此業務。基于上述情況,專業計費軟件必須對各項業務進行分析,抽象出其本質屬性,使用通用的算法和基于事件驅動的模式,才能實現支撐全業務融合計費的目標,更有力地支撐、推動業務發展。規則引擎算法可以滿足這一要求。

1規則引擎算法的通用性

規則引擎算法,是根據輸入對象的屬性,依次將屬性值與預期結果進行比較,通過則進行下一個屬性的判斷,不通過則比較另一個預期結果,如此形成一個遞歸,直至能確定一個唯一的輸出對象。根據上述思路,由屬性來驅動下一步判斷,算法可以不對輸入對象和輸出對象做限定;并且是遞歸處理,不限制屬性間是“且”還是“或”的關系,屬性和預期結果都是在數據庫配置,對象的屬性和個數不必固定。至此,其實現了不區分業務的通用性。比如在新增3G可視電話業務時,配置完相應的參數后,可以使用規則引擎算法確定一張詳單的使用事件類型。如圖1所示,首先從詳單文件中取出一條話單,判斷該話單的交換機屬性(即字段)的值:若等于1則表示為固網交換機產生的話單,若等于2則為2G語音交換機產生的話單,若等于3則為3G語音交換機產生的話單。假設此值等于3,說明該話單為3G語音通話,接下來判斷其中的可視標識屬性:若該屬性值為0,表示該話單是3G語音非可視通話;為1,則為3G語音可視通話。接下來判斷呼叫類型。根據詳單中的各屬性值可最終確定此詳單是3G可視主叫通話還是3G可視被叫通話事件。通過上圖的簡單說明,可以發現規則引擎算法易用、通用,不但適用于判斷事件類型,而且只要是這種復雜的業務流程判斷,配置一下參數即可使用。

2規則引擎算法采用事件驅動機制

全業務運營情況下,業務復雜多樣,新業務層出不窮。下面介紹一下計費系統使用規則引擎算法、采用事件驅動技術來解決這類問題。采用事件驅動機制,可以有效解決各業務的處理邏輯變更和新增業務流程的情況。比如同樣是交通工具,公共汽車主要是流程驅動的,其路線已預先設定;出租車主要是事件驅動的,其路線是由隨機搭載的乘客所決定的。很顯然出租車更加靈活。同時,事件驅動極大提高了事件處理效率,減少了不必要的步驟。規則引擎算法采用了類似于windows操作系統的事件驅動機制,利用動態鏈接庫技術,可為不同的輸入事件配置不同的處理步驟。事件類型決定了此業務的后續處理流程,不同業務的事件類型不一樣,所走的批價路徑也就不同。即事件類型相當于乘客,規則引擎相當于出租車,批價路徑相當于出租車行駛路線,這樣就實現了事件驅動的功能。如果按照公共汽車模式,使用一個批價路徑,即該批價路徑需要處理所有的業務,勢必所有的業務都必須經過一些不必要的步驟,既浪費時間且不具擴展性,容易出現無法支撐業務的情況。將規則引擎算法應用在批價向導中,流程如圖2所示。如圖2所示,根據輸入的使用事件,對使用事件屬性進行有效性規則檢查。然后根據事件屬性,找出使用事件的類型、業務、號段歸屬、用戶資料等信息。未能通過有效性檢查和信息查找及標準化的使用事件被拋出,成為異常事件。通過檢查后,根據用戶的號碼歸屬信息進行判斷:如果不是本省用戶,則進入漫游用戶使用事件處理流程;對本省用戶進行查找,有用戶資料的進入本省用戶使用事件處理流程,無用戶資料的進入無主使用事件處理流程。當然,具體實現比圖2復雜得多。若將上述各步驟配置在規則引擎算法里,則能大大降低流程變更及新增流程的風險,使批價向導的處理流程更加靈活。

3規則引擎算法的性能

規則引擎算法是通過屬性判斷以決定下一步的動作,因此,影響其性能的關鍵點在于屬性值和預期值的比較上。如何才能快速地找到與屬性匹配的預期值?經過試驗,哈希算法和二分法是比較有效的兩種方式。在所有屬性的預期值都較少的情況下,比如每個都不超過5個,程序通過遍歷的方式來匹配預期值也可達到理想效果。但若一個屬性的預期值有幾十個或上百成千個,遍歷的性能則非常低。使用哈希算法,程序動態地根據每個屬性的預期值的個數,分別選擇合適的哈希值,可有效降低比較次數,根據屬性值快速定位預期值。根據預期值的規律選擇合適的哈希算法,和根據預期值的個數選擇合適的哈希值,其時間復雜度是O(1),可見性能較高。當屬性預期值數據量很大時,適宜采用二分法。采用二分法查找時,數據需是排好序的。因此,程序運行時會將預期值進行排序,之后可使用二分法比較。其時間復雜度為O(nlog2n),最大的查找次數是O(log2n!),最小的次數為1。規則引擎算法支持上述算法,可根據不同情況(預期值的個數)選擇遍歷、二分法或哈希算法來定位預期值。

4結束語

規則引擎算法簡化了復雜的流程判斷,增強了程序擴展性和易維護性,極大地減少了全業務配置、新增業務、新增流程所產生的工作量。算法思路簡單,容易使用,適用性廣,且效率高,可廣泛應用于通信專業計費軟件中,靈活判斷、高效處理,能更好地支撐業務發展。