對於乙個boss系統而言,計費賬務系統自然是乙個相當重要的組成部分,在整個boss系統中,最有別於別的行業的部分應該也就是計費賬務系統了,或者應該更強調的說是計費系統。
一般來說,計費系統分為:採集、預處理、剃重、批價、詳單入庫、賬單入庫這幾個部分。
採集系統負責從業務網元獲取各種業務的服務使用記錄,很多情況下,我們都叫他們做cdr(call detail record),即使很多業務比方說是簡訊,並不是通話,我們也習慣上叫這些記錄做cdr或者是詳單。
採集的方式有很多,主要看網元的提供方式,對於電信運營商而言,核心的業務是語音、簡訊和gprs,而語音和簡訊的話單一般都是由交換機或者是簡訊平台提供檔案,在這種情況下,一般都是採集系統用ftp的方式來獲取這些話單檔案。這裡不涉及什麼高深的技術,大部分情況就是ftp,然後就是採集完後把已經採集過的話單檔案移到備份目錄。
這裡需要提出一點的是交換機出話單的策略,為了更快的輸出話單,交換機一般有兩種輸出策略,第一種是按時間,第二種是按檔案大小。前者的意思是多長時間輸出乙個話單檔案,後者的意思是當話單檔案達到多大,就輸出乙個。自然,為了盡快的輸出話單,忙時應該用第二種策略;而閒時的話,則使用的是第一種策略。
乙個完整的話單包含的元素有發話時間、結束時間、主叫、被叫、發話地點等等。這裡最要命的就是結束時間,乙個完整的話單必須有結束時間,所以對於乙個一直沒有結束通話的聯絡歷史,傳統的計費系統是無法對這條記錄進行批價的,這也就是為什麼會出現當你的卡上剩下1塊錢,只要你不結束通話**,你可能可以打很長時間,很長時間!但是注意的是,我說的是「可能」,因為你知道這個秘密,運營商也不傻,他們會想辦法處理這個問題,至於怎麼處理,我以後會慢慢寫。
預處理系統實際上是乙個和交換廠商密切相關的領域。它需要做的是把各個交換機的話單格式轉換成乙個統一的話單格式,你需要把這些交換機的話單格式都搞清楚,如此而已,幸好廠商不多,因為這裡沒有什麼標準可言,所以壟斷有時候也有點好處。預處理系統還有乙個重要的功能是話單合併,因為交換機會對長話單進行分段處理,比方說你通話超過30分鐘,交換機會30分鐘出一條話單,對於預處理系統則需要把這些話單進行合併。
剃重,很多情況下,剃重會歸併到預處理系統裡面,但是也有把他單獨拿出來說的。從字面上來說,就是把重複的話單提出掉。話單出現重複的原因主要是交換機的原因,交換機有時候會出現乙個聯絡歷史產生兩條一樣的話單的情況,至於原因,我不是很清楚,呵呵。
剃重是一門很複雜的技術。但是剃重的條件實際上很簡單,就是同一時間的同乙個人不能做兩件同樣的事情,就是說你不能在同時給同乙個人打兩個**。為什麼說剃重是一門很複雜的技術呢,關鍵是涉及的話單量,你看看中國移動09年一季度的財報,一天淨賺2.8億!對於大部分省的移動運營商而言,乙個月的話單都是億為單位的,每天也是千萬級。在這種海量的資料裡面去迅速定位兩個重複的記錄,的確不是那麼簡單的事情。可以總結出的兩種剃重技術,庫外剃重和庫內剃重,這主要看具體實現的方式是不是依賴資料庫的唯一索引,如果依賴,則一般叫做庫內剃重,反之如果是通過自建資料結構來處理叫庫外剃重。
批價系統,很多情況下,我們會經常聽說一批和二批這兩個詞,這兩個詞的叫法有很多種含義,說法也比較拗口,簡單舉個例子,如果你使用了乙個**,包200分鐘的市話主叫,超出之後每分鐘2毛錢,這時你打了個4分鐘的市話,一批出來是8毛;二批發現如果在200分鐘內的話,則批成0。還有一種說法是一批先批成標準資費,即每分鐘4毛,4分鐘1塊6,然後再批成0,或者是8毛。總是一批和二批的說法有這麼幾種,不過,隨著系統的發展,一批和二批之間的界限實際上已經越來越模糊了,越來越多的計費系統都是通過一次性的批價來得出最終的結果,這是乙個發展趨勢。批價系統是計費系統裡面最複雜的部分,乙個計費系統好不好,可能更多的是通過批價系統來衡量。
衡量乙個批價系統好不好,作為乙個電信級的系統,首先當然是系統安全性要高,回退、重批等功能需要具備;其次就是要靈活。眾所周知的是移動的**之多,多得到了令人髮指的情況,多得到了很多運營部門的人都搞不完全清楚。如此多的**支援,而且美其名曰要迅速對市場部門需求做出響應,所以批價系統要盡量快的應對運營商提出的各種**需求。在支援這個**的過程中,其實運營商是不關心你每次會不會要改**的,即使是口頭上說說,只要你每次改的快,他們也不在乎的,這似乎和很多人鼓吹的並不一樣,他們總會說是運營商要求要提高計費系統的可配置化。實際上是誰希望提高系統的可配置化呢?是整合商,整合商希望每次改**不要動**,由現場維護人員改改配置,就能搞定,這樣研發和測試就要省很多的事情。做計費系統的人都知道,運營商會要求現場有很多維護人員,至少是10個,甚至更多,他們可以給維護費,只要你支援他的需求,出錯能兜得住,他不會管你是怎麼實現的,是改**還是修改配置?他們才不管。
關於批價系統說的比較多,大家還可以看看我的另外一篇文字《將lua嵌入c++中用來做計費系統的批價》
詳單入庫和剃重乙個道理,關鍵是效能,大量的資料入庫必然對效能的要求很高。一般的做法也可以分為兩種,庫內和庫外。其中庫外儲存詳單現在越來越少了,雖然他的優點很明顯,占用資源少,速度快,但同時缺點也同樣十分明顯,就是查詢和管理不方便,越來越多的開發商放棄了庫外詳單儲存。而借助oracle的分割槽技術,庫內詳單儲存基本上成為大部分開發商的首選方案。
詳單入庫之後就是合併賬單了,因為賬單的特殊性,他的update操作特別多,基於效能的考慮很多開發商選擇了記憶體資料庫來儲存。以前很多的開發商都是自己基於unix的共享記憶體技術來管理儲存當月或者上月的賬單,但是最近幾年隨著altibase和timesten的流行,越來越多的開發商也開始放棄自己開發的東西,轉而使用成熟的商用解決方案。一旦使用altibase和timesten之後,賬單的入庫對於開發人員來說也就沒多少技術含量了。
以上是乙個對計費系統的簡單介紹,有不對之處請大家多多指正。
賬務系統設計文件
一 設計目的 賬務系統旨在提供金融系統賬戶 授信 餘額等核心資料維護的一站式解決方案,要達成涵蓋全量業務 資料精準 效能優良的設計目標,主要功能有開戶 授信額度管理,可用餘額管理 各類資訊查詢 對賬等。二 名詞解釋 分賬戶 使用者維度下的分賬戶,乙個使用者可以開通多個賬戶,主要分為信使用者和現金戶兩...
賬戶賬務系統架構與實踐
由於企業每條業務線都有各自的使用者 商家以及運營補貼策略。在開始階段我們並沒有統一的賬務系統,每個業務線都有類似賬務系統相應的系統。導致的問題就是資金池業務吻合嚴重,對賬難,以及資料不統一,另外成本也非常高,為此我們做了統一的賬戶系統。賬務系統作為到家業務線的基礎服務,為到家業務提供統一清算 賬戶 ...
關於新計費系統
首先新一代的計費系統需要使得實時通知 授權 推廣 運營商和客戶進行的 使用監控 以及其他實時活動均得到每天24小時,每週7天的支援。第二,新系統必須能夠提供乙個擁有選擇性 便捷性和控制權的新世界,以此增強客戶的忠誠度和增加來自每個使用者的平均收入 arpu 客戶越容易立即發現並定購它,他們就越有可能...