電信運(yùn)營(yíng)計(jì)費(fèi)-數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)_第1頁(yè)
電信運(yùn)營(yíng)計(jì)費(fèi)-數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)_第2頁(yè)
電信運(yùn)營(yíng)計(jì)費(fèi)-數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)_第3頁(yè)
電信運(yùn)營(yíng)計(jì)費(fèi)-數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)_第4頁(yè)
電信運(yùn)營(yíng)計(jì)費(fèi)-數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

牛肉質(zhì)量溯源及清真食品認(rèn)證WEB系統(tǒng)的開(kāi)發(fā)目錄TOC\o"1-3"\h\z前言 11. 數(shù)據(jù)采集與整合子系統(tǒng)概述 21.1選題背景 21.2選題意義 21.3系統(tǒng)介紹 21.4系統(tǒng)可行性分析 32. 數(shù)據(jù)采集與整合子系統(tǒng)需求分析 42.1業(yè)務(wù)目標(biāo) 42.2用例分析 53. 數(shù)據(jù)采集與整合子系統(tǒng)總體設(shè)計(jì) 83.1系統(tǒng)框架 83.2系統(tǒng)功能模塊設(shè)計(jì) 93.3數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì) 94.數(shù)據(jù)采集與整合子系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn) 114.1數(shù)據(jù)采集類圖設(shè)計(jì) 114.2數(shù)據(jù)整合類圖設(shè)計(jì) 214.3開(kāi)發(fā)準(zhǔn)備 234.4系統(tǒng)發(fā)布 24總結(jié) 30致謝 31參考文獻(xiàn) 32電信運(yùn)營(yíng)計(jì)費(fèi)——數(shù)據(jù)采集與整合子系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)前言面對(duì)更加復(fù)雜的全業(yè)務(wù)運(yùn)營(yíng)模式,中國(guó)電信業(yè)運(yùn)營(yíng)支撐系統(tǒng)將面臨機(jī)遇與挑戰(zhàn),作為電信運(yùn)營(yíng)支撐系統(tǒng)的重要組成部分,計(jì)費(fèi)系統(tǒng)也將迎來(lái)新的發(fā)展機(jī)遇。首先,在全業(yè)務(wù)模式下,對(duì)計(jì)費(fèi)系統(tǒng)的實(shí)時(shí)性提出了新的要求。在過(guò)去,已經(jīng)實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)地對(duì)業(yè)務(wù)進(jìn)行計(jì)費(fèi),提高了業(yè)務(wù)的處理速度,優(yōu)化了客戶體驗(yàn)。但一些高風(fēng)險(xiǎn)的新業(yè)務(wù),要求能立即扣費(fèi),卻由于現(xiàn)網(wǎng)的各種系統(tǒng)都無(wú)法較好支持,影響了業(yè)務(wù)的開(kāi)展。在全業(yè)務(wù)時(shí)代,實(shí)時(shí)費(fèi)用查詢,計(jì)費(fèi)通知,對(duì)客戶來(lái)說(shuō)十分必要。計(jì)費(fèi)信息可以實(shí)時(shí)影響業(yè)務(wù)的提供、帳戶余額可以實(shí)時(shí)更新的計(jì)費(fèi)機(jī)制,因此需要計(jì)費(fèi)機(jī)制與會(huì)話/服務(wù)控制直接的交互,不僅是包括了在線的和離線的,而且跟客戶關(guān)系管理緊密聯(lián)系起來(lái)。而有效預(yù)防風(fēng)險(xiǎn),提升客戶滿意度,本身就是優(yōu)化業(yè)務(wù)成效的一個(gè)表現(xiàn),將大大增強(qiáng)運(yùn)營(yíng)商的競(jìng)爭(zhēng)力。其次,全業(yè)務(wù)運(yùn)營(yíng)要求計(jì)費(fèi)系統(tǒng)進(jìn)行預(yù)付費(fèi)和后付費(fèi)的融合。目前由于預(yù)付費(fèi)、后付費(fèi)用戶在不同平臺(tái),所以產(chǎn)品資料、用戶資料分散存放,導(dǎo)致不能進(jìn)行預(yù)付費(fèi)、后付費(fèi)互轉(zhuǎn),以及融合計(jì)費(fèi)。在全業(yè)務(wù)運(yùn)營(yíng)時(shí)代,所有的客戶都希望在處理各種服務(wù)時(shí)不必區(qū)分移動(dòng)或固定電話,后付費(fèi)或預(yù)付費(fèi)??蛻舨⒉幌朐诟鞣N服務(wù)、促銷、折扣之間費(fèi)盡周折。用戶希望可以自由選擇業(yè)務(wù)組合方式,比如神州行的用戶要想轉(zhuǎn)成全球通套餐,雖然兩種品牌分別屬于預(yù)付費(fèi)和后付費(fèi)業(yè)務(wù),但用戶不希望在業(yè)務(wù)切換時(shí)帶來(lái)更換電話號(hào)碼的麻煩。全部用戶和業(yè)務(wù)的預(yù)付費(fèi)是發(fā)展的方向,但首先必須把后付費(fèi)用戶的計(jì)費(fèi)功能納入到(OnlineChargingSystem—在線計(jì)費(fèi)系統(tǒng))系統(tǒng)當(dāng)中。最后,全業(yè)務(wù)運(yùn)營(yíng)也對(duì)系統(tǒng)提供商提出了更高的要求。受過(guò)去以業(yè)務(wù)為中心的思想影響,各個(gè)系統(tǒng)往往為了某種業(yè)務(wù)而單獨(dú)建設(shè)一套系統(tǒng),包括計(jì)費(fèi)、帳務(wù)、營(yíng)業(yè)等全部功能,當(dāng)業(yè)務(wù)較多時(shí),無(wú)疑會(huì)加大業(yè)務(wù)流程和系統(tǒng)維護(hù)、處理、數(shù)據(jù)分析的難度。在全業(yè)務(wù)運(yùn)營(yíng)環(huán)境下,運(yùn)營(yíng)商可以提供包括語(yǔ)音、數(shù)據(jù)、游戲在內(nèi)的所有業(yè)務(wù),在這種新的變化形式下,需要各大運(yùn)營(yíng)商對(duì)自己的計(jì)費(fèi)系統(tǒng)進(jìn)行升級(jí),做為運(yùn)營(yíng)支撐系統(tǒng)的提供者,各計(jì)費(fèi)系統(tǒng)集成商必須具備全方位整套解決方案能力,如亞信、HP、中興軟創(chuàng)等紛紛推出的融合實(shí)時(shí)在線計(jì)費(fèi)系統(tǒng)產(chǎn)品,其產(chǎn)品包括開(kāi)發(fā)、測(cè)試、集成、服務(wù)在內(nèi)的一攬子解決方案,并在標(biāo)準(zhǔn)化方面與運(yùn)營(yíng)商充分合作,這樣的產(chǎn)品能更好地適應(yīng)目前中國(guó)電信市場(chǎng)的發(fā)展。基于上述背景,結(jié)合特定企業(yè)的特定要求,開(kāi)發(fā)一套具有較高可移植性、可擴(kuò)展性、可維護(hù)性和容錯(cuò)性的數(shù)據(jù)采集與整合系統(tǒng),不僅成為擺在國(guó)內(nèi)電信運(yùn)營(yíng)企業(yè)面前的重大課題,也是廣大軟件工作者為之努力的目標(biāo)。

數(shù)據(jù)采集與整合子系統(tǒng)概述1.1選題背景電信運(yùn)營(yíng)商新增一項(xiàng)OpenLab(開(kāi)放實(shí)驗(yàn)室)出租業(yè)務(wù),即該電信運(yùn)營(yíng)商提供基于Unix平臺(tái)的實(shí)驗(yàn)室環(huán)境,選擇使用這種業(yè)務(wù)的用戶能夠遠(yuǎn)程登錄到實(shí)驗(yàn)室中做基于這個(gè)實(shí)驗(yàn)室環(huán)境的一些工作和實(shí)驗(yàn)。運(yùn)營(yíng)商希望借助先進(jìn)的計(jì)算機(jī)技術(shù)對(duì)訪問(wèn)實(shí)驗(yàn)室的用戶進(jìn)行管理和計(jì)費(fèi),由此實(shí)現(xiàn)對(duì)此項(xiàng)業(yè)務(wù)運(yùn)營(yíng)的支持與管理,于是電信運(yùn)營(yíng)計(jì)費(fèi)管理系統(tǒng)應(yīng)運(yùn)而生。1.2選題意義要想對(duì)用戶進(jìn)行準(zhǔn)確的收費(fèi),首先必須能夠獲得用戶使用開(kāi)放實(shí)驗(yàn)室的準(zhǔn)確的使用記錄,采集子系統(tǒng)正是為了獲取這些記錄而提供的。采集系統(tǒng)定時(shí)將用戶使用服務(wù)器的數(shù)據(jù)存入到了數(shù)據(jù)庫(kù)中,但這些數(shù)據(jù)都是流水帳的數(shù)據(jù),是用戶每次使用UNIX操作系統(tǒng)的用時(shí)。如果用戶量大,用戶頻繁地登入/出,將產(chǎn)生大量的數(shù)據(jù),不便于將來(lái)生成用戶的月賬單和對(duì)開(kāi)放實(shí)驗(yàn)室的使用情況進(jìn)行月統(tǒng)計(jì)和年統(tǒng)計(jì),因此,出現(xiàn)了整合系統(tǒng)。1.3系統(tǒng)介紹電信計(jì)費(fèi)系統(tǒng)作為對(duì)出租實(shí)驗(yàn)室的計(jì)費(fèi)管理,主要包含了以下子模塊:數(shù)據(jù)采集、數(shù)據(jù)整合、用戶管理、資費(fèi)管理、管理員管理、賬單查詢、賬務(wù)查詢、用戶自服務(wù)和權(quán)限管理模塊。用戶管理子系統(tǒng)就是對(duì)用戶的帳務(wù)帳號(hào)和業(yè)務(wù)帳號(hào)進(jìn)行管理。資費(fèi)管理子系統(tǒng)就是用來(lái)管理資費(fèi)的。具有資費(fèi)管理權(quán)限的管理員登陸成功后,可以添加新的資費(fèi),查詢所有的資費(fèi),可以修改現(xiàn)有的資費(fèi)信息,還可以刪除資費(fèi)。管理員管理系統(tǒng)就是超級(jí)管理員來(lái)管理普通管理員。超級(jí)管理員登陸成功后,可以增加新的普通管理員,同時(shí)為他分配一些權(quán)限,可以修改普通管理員的信息,可以查詢所有的管理員信息,可以刪除某些管理員。具有帳單查詢權(quán)限的管理員可以利用此子系統(tǒng)對(duì)所有用戶的月賬單進(jìn)行查詢。此子系統(tǒng)不僅提供對(duì)某個(gè)帳務(wù)帳號(hào)上產(chǎn)生的總的費(fèi)用進(jìn)行查詢,還提供對(duì)某個(gè)帳務(wù)帳號(hào)上的每個(gè)業(yè)務(wù)帳號(hào)上產(chǎn)生的費(fèi)用明細(xì)進(jìn)行查詢。具有帳務(wù)查詢的管理員可以使用此子系統(tǒng)對(duì)開(kāi)放實(shí)驗(yàn)室的使用情況進(jìn)行查詢。此子系統(tǒng)可以提供以月為周期的查詢,也可以提供以年為周期的查詢。用戶自服務(wù)系統(tǒng)可以方便地供用戶查詢自己的賬單和修改自己的個(gè)人信息。這個(gè)子系統(tǒng)是唯一的一個(gè)用戶可以使用的子系統(tǒng)。而采集系統(tǒng)通過(guò)調(diào)用Unix系統(tǒng)函數(shù)來(lái)讀取這個(gè)日志文件中的內(nèi)容,然后對(duì)讀取到的內(nèi)容進(jìn)行整理,整理為方便計(jì)費(fèi)的數(shù)據(jù),其中包括登錄名、登錄時(shí)間或登出時(shí)間等作為計(jì)費(fèi)依據(jù)的數(shù)據(jù)。最后把這些數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,以備其他系統(tǒng)使用。整合是將某個(gè)用戶在某一時(shí)段內(nèi)所用機(jī)時(shí)求和后形成一條記錄。1.4系統(tǒng)可行性分析由于系統(tǒng)運(yùn)行過(guò)程中可能出現(xiàn)不可預(yù)知的狀況,可能出現(xiàn)數(shù)據(jù)丟失的情況,從五個(gè)方面考慮數(shù)據(jù)的準(zhǔn)確性問(wèn)題:1)綜合考慮,先把日志文件在處理前進(jìn)行備份。今后的任何失敗,都可有原始數(shù)據(jù)參考。2)客戶端數(shù)據(jù)讀取,解析:解析沒(méi)有匹配的數(shù)據(jù)一定要保存,在下次采集匹配的時(shí)候再次讀取出來(lái)匹配。從理論上講,登出數(shù)據(jù)肯定能找到匹配的登入數(shù)據(jù).反之則不一定。解析過(guò)程一般不會(huì)出現(xiàn)數(shù)據(jù)異常的情況。3)客戶端數(shù)據(jù)發(fā)送:數(shù)據(jù)發(fā)送的時(shí)候,可能出現(xiàn)網(wǎng)絡(luò)故障,數(shù)據(jù)可能發(fā)送不出去。網(wǎng)絡(luò)正常也有可能服務(wù)器端接收數(shù)據(jù)或保存數(shù)據(jù)錯(cuò)誤。上面兩種或其他異常發(fā)生的時(shí)候,數(shù)據(jù)一定要保存到文件中,在下次采集的時(shí)候,先發(fā)送歷史失敗數(shù)據(jù),在發(fā)送新采集的數(shù)據(jù)。4)服務(wù)器端數(shù)據(jù)接受,存儲(chǔ):在TCP協(xié)議下,在服務(wù)器端數(shù)據(jù)可能在保存數(shù)據(jù)庫(kù)的時(shí)候出現(xiàn)錯(cuò)誤,比如網(wǎng)絡(luò)問(wèn)題.當(dāng)服務(wù)器出現(xiàn)保存錯(cuò)誤的時(shí)候,向客戶發(fā)送錯(cuò)誤標(biāo)記,讓數(shù)據(jù)保存在客戶。5)數(shù)據(jù)整合:數(shù)據(jù)整合的時(shí)候,可能發(fā)送數(shù)據(jù)庫(kù)網(wǎng)絡(luò)連接失敗,延時(shí)等問(wèn)題或其他異常問(wèn)題,則需要記錄該整合相關(guān)數(shù)據(jù),便于客戶通過(guò)PL/SQL編程或其他程序進(jìn)行定點(diǎn)補(bǔ)充整合。數(shù)據(jù)采集與整合子系統(tǒng)需求分析2.1業(yè)務(wù)目標(biāo)本系統(tǒng)是一個(gè)計(jì)費(fèi)的系統(tǒng),要想對(duì)用戶進(jìn)行準(zhǔn)確的收費(fèi),首先必須能夠獲得用戶使用開(kāi)放實(shí)驗(yàn)室的準(zhǔn)確的使用記錄,采集子系統(tǒng)正是為了獲取這些記錄而提供的。獲取用戶使用實(shí)驗(yàn)室的準(zhǔn)確記錄有三種情況:利用操作系統(tǒng)的自身功能:開(kāi)放實(shí)驗(yàn)室是一個(gè)Unix服務(wù)器,Unix服務(wù)器本身就具有記錄系統(tǒng)日志的功能。用戶每次登錄和退出Unix服務(wù)器的信息都會(huì)被自動(dòng)保存到一個(gè)在線日志文件/var/adm/wtmpx中。采集系統(tǒng)通過(guò)調(diào)用Unix系統(tǒng)函數(shù)來(lái)讀取這個(gè)日志文件中的內(nèi)容,然后對(duì)讀取到的內(nèi)容進(jìn)行整理,整理為方便計(jì)費(fèi)的數(shù)據(jù),其中包括登錄名、登錄時(shí)間或登出時(shí)間等作為計(jì)費(fèi)依據(jù)的數(shù)據(jù)。最后把這些數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,以備其他系統(tǒng)使用。為了使讀取的數(shù)據(jù)量不至于過(guò)大,采集系統(tǒng)會(huì)每小時(shí)定時(shí)執(zhí)行一次,每次只采集上一個(gè)小時(shí)時(shí)間段之內(nèi)的數(shù)據(jù)。利用開(kāi)放實(shí)驗(yàn)室的個(gè)人web主頁(yè)功能(personalwebhosting):只要用戶在其主目錄(home)下創(chuàng)建了public_html目錄,采集系統(tǒng)通過(guò)掃描目錄public_html就可以產(chǎn)生計(jì)費(fèi)依據(jù)。訪問(wèn)開(kāi)放實(shí)驗(yàn)室的web信息:用戶每次訪問(wèn)web服務(wù)器,web服務(wù)器都會(huì)在access.log中記錄下相應(yīng)的信息,如客戶端的ip和被訪問(wèn)的URL等。通過(guò)分析web服務(wù)器的訪問(wèn)日志產(chǎn)生計(jì)費(fèi)依據(jù)。使用開(kāi)放實(shí)驗(yàn)室的e-mail功能:根據(jù)郵箱的個(gè)數(shù)產(chǎn)生計(jì)費(fèi)依據(jù)。說(shuō)明:2,3的情況目前不做處理,提供擴(kuò)展接口便于今后擴(kuò)展。采集系統(tǒng)定時(shí)將用戶使用服務(wù)器的數(shù)據(jù)存入到了數(shù)據(jù)庫(kù)中,但這些數(shù)據(jù)都是流水帳的數(shù)據(jù),是用戶每次使用UNIX操作系統(tǒng)的用時(shí)。如果用戶量大,用戶頻繁地登入/出,將產(chǎn)生大量的數(shù)據(jù),不便于將來(lái)生成用戶的月賬單和對(duì)開(kāi)放實(shí)驗(yàn)室的使用情況進(jìn)行月統(tǒng)計(jì)和年統(tǒng)計(jì),因此,出現(xiàn)了整合系統(tǒng)。整合是將某個(gè)用戶或某個(gè)實(shí)驗(yàn)室在某一時(shí)段內(nèi)所用機(jī)時(shí)求和后形成一條記錄。整合系統(tǒng)具體整合規(guī)則如下:每小時(shí)定時(shí)整合一次,生成以小時(shí)為單位統(tǒng)計(jì)的數(shù)據(jù),程序總是每小時(shí)定時(shí)整合前一小時(shí)的數(shù)據(jù)。每天定時(shí)整合一次,生成以天為單位統(tǒng)計(jì)的數(shù)據(jù),程序總是每天定時(shí)整合前一天的數(shù)據(jù).每個(gè)月定時(shí)整合一次,生成以月為單位統(tǒng)計(jì)的數(shù)據(jù),程序總是每個(gè)月定時(shí)整合前一個(gè)月的數(shù)據(jù)。整合按用戶與實(shí)驗(yàn)室整合,便于帳單查詢與帳務(wù)查詢,以及用戶自服務(wù)帳單查詢.2.2用例分析2.2.1系統(tǒng)用例圖圖2-1數(shù)據(jù)采集與整合用例圖如圖2-1所示,數(shù)據(jù)采集與整合子系統(tǒng)包括數(shù)據(jù)采集客戶,數(shù)據(jù)采集服務(wù)器,數(shù)據(jù)整合三個(gè)用例。2.2.2系統(tǒng)用例描述描述要素描述內(nèi)容備注事項(xiàng)用例名稱數(shù)據(jù)采集客戶用例編號(hào)用例簡(jiǎn)述讀取日志文件,并清空日志。從讀取的數(shù)據(jù)中解析用戶登錄時(shí)間等信息。把解析的用戶登錄時(shí)間數(shù)據(jù)發(fā)送到服務(wù)器。如果發(fā)送失敗,就存儲(chǔ)在實(shí)驗(yàn)室上等下次發(fā)送。參與者系統(tǒng)管理人員前置條件需要root權(quán)限后置條件日志文件被備份后清空異常事件流備份讀取數(shù)據(jù)源異常:結(jié)束本次采集,并等待下次采集.解析數(shù)據(jù)源異常,中斷整個(gè)采集過(guò)程.上次登入數(shù)據(jù)讀取異常,忽略異常,并繼續(xù)采集數(shù)據(jù)發(fā)送失敗異常,保存文件到本地,并等待下次采集特殊需求表2-1數(shù)據(jù)采集客戶端用例描述表2-2數(shù)據(jù)采集服務(wù)端用例描述描述要素描述內(nèi)容備注事項(xiàng)用例名稱數(shù)據(jù)采集服務(wù)器用例編號(hào)用例簡(jiǎn)述接受各客戶采集程序發(fā)送的數(shù)據(jù)。接受失敗,請(qǐng)求客戶端重新發(fā)送。根據(jù)時(shí)間存儲(chǔ)到相應(yīng)的數(shù)據(jù)表。參與者系統(tǒng)管理員前置條件后置條件異常事件流連接數(shù)據(jù)庫(kù)異常:發(fā)送標(biāo)記到客戶端,讓客戶端按服務(wù)器異常處理.服務(wù)器接受客戶端異常:認(rèn)定為異?;蚩蛻舨杉Y(jié)束,直接終止服務(wù)器對(duì)相關(guān)客戶的處理,并釋放資源.特殊需求表2-3數(shù)據(jù)整合用例描述描述要素描述內(nèi)容備注事項(xiàng)用例名稱數(shù)據(jù)整合用例編號(hào)用例簡(jiǎn)述每小時(shí)按用戶業(yè)務(wù)整合一次用戶登錄時(shí)間數(shù)據(jù)。每天按用戶業(yè)務(wù)整合一次用戶登錄時(shí)間數(shù)據(jù)。每月按用戶業(yè)務(wù)整合一次用戶登錄時(shí)間數(shù)據(jù)。每小時(shí)按實(shí)驗(yàn)室服務(wù)器整合一次用戶使用的時(shí)間數(shù)據(jù)。每天按實(shí)驗(yàn)室服務(wù)器整合一次用戶使用的時(shí)間數(shù)據(jù)。每月按實(shí)驗(yàn)室服務(wù)器整合一次用戶使用的時(shí)間數(shù)據(jù)。參與者系統(tǒng)管理員前置條件后置條件產(chǎn)生整合數(shù)據(jù)。異常事件流采集出現(xiàn)網(wǎng)絡(luò)異常:記錄異常時(shí)間,便于用戶定點(diǎn)整合.特殊需求

數(shù)據(jù)采集與整合子系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)框架本系統(tǒng),采用簡(jiǎn)單的J2SE+MySQL開(kāi)發(fā)。設(shè)計(jì)的時(shí)候采用基于網(wǎng)絡(luò)的多層C/S的設(shè)計(jì)模式。實(shí)驗(yàn)室上寫一個(gè)程序,負(fù)責(zé)讀取日志,解析日志,并寫一個(gè)網(wǎng)絡(luò)客戶程序,把解析好的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送到某個(gè)服務(wù)器。不是直接存入數(shù)據(jù)庫(kù)。[采集客戶端]在遠(yuǎn)程寫一個(gè)服務(wù)器程序,接收個(gè)實(shí)驗(yàn)室服務(wù)器上采集并解析處理好的數(shù)據(jù),然后再放入數(shù)據(jù)庫(kù),再通過(guò)數(shù)據(jù)整合程序?qū)?shù)據(jù)分組存放。[采集服務(wù)器端]圖3-1采集系統(tǒng)結(jié)構(gòu)框架3.2系統(tǒng)功能模塊設(shè)計(jì)圖3-2系統(tǒng)功能模塊圖如圖3-2所示,數(shù)據(jù)采集與整合系統(tǒng)為電信運(yùn)營(yíng)系統(tǒng)的子系統(tǒng),其主要功能模塊包括采集客戶端,采集服務(wù)器端,以及整合端。3.3數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)在采集數(shù)據(jù)的存儲(chǔ)方式,根據(jù)客戶需求與系統(tǒng)性能的考慮,設(shè)計(jì)的時(shí)候把數(shù)據(jù)存儲(chǔ)表結(jié)構(gòu)分為三類:采集的原始登錄數(shù)據(jù)記錄表。按不同用戶在不同實(shí)驗(yàn)室上的數(shù)據(jù)整合表。按不同實(shí)驗(yàn)室的數(shù)據(jù)整合表。注意:按實(shí)驗(yàn)室整合與按用戶在不同實(shí)驗(yàn)室上整合的存儲(chǔ)因?yàn)閿?shù)據(jù)量的問(wèn)題在設(shè)計(jì)上有區(qū)別。其中前者的表按天,月,年各一張,后者的天表31張,月表12張,年表根據(jù)年份一年一張。表3-1原始采集用戶登錄時(shí)長(zhǎng)明細(xì)表(details_x)其中x是1-31字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)loginip登錄IPVarchar(24)logintime登錄時(shí)間Timestamplogouttime登出時(shí)間Timestamplabip實(shí)驗(yàn)室IPVarchar(24)duration登錄時(shí)長(zhǎng)long如表3-1所示,該表存儲(chǔ)原始采集用戶的登錄名,登錄IP,登錄時(shí)間,登出時(shí)間,實(shí)驗(yàn)室IP,登錄時(shí)長(zhǎng)。該表特點(diǎn):該類表一張。該表設(shè)計(jì)成一個(gè),主要是原始數(shù)據(jù)很少被查詢。數(shù)據(jù)量很大??赡転橛脩舨樵兪褂脴I(yè)務(wù)的明細(xì)的時(shí)候查詢。登錄/登出構(gòu)成一條記錄,不存儲(chǔ)時(shí)長(zhǎng)??赡軒讉€(gè)小時(shí)一條記錄,也可能一小時(shí)內(nèi)若干條記錄表3-2按用戶統(tǒng)計(jì)整合的時(shí)記錄表detaildays_x其中x是1-31字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)loginip登錄IPVarchar(24)logouttime登出時(shí)間Timestamplabip實(shí)驗(yàn)室IPVarchar(24)duration登錄時(shí)長(zhǎng)long如表3-2所示,該表是按用戶統(tǒng)計(jì)整合的時(shí)記錄表表3-3按用戶統(tǒng)計(jì)整合的天記錄表detailmonths_x是1-12字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)loginip登錄IPVarchar(24)logouttime整合時(shí)間Timestamplabip實(shí)驗(yàn)室IPVarchar(24)duration登錄時(shí)長(zhǎng)long如表3-3所示,該表是按用戶統(tǒng)計(jì)整合的天記錄表表3-4按用戶統(tǒng)計(jì)整合的月記錄表detailyears_xx不定x表示年字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)Loginip登錄IPVarchar(24)logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long如表3-4所示,該表是按用戶統(tǒng)計(jì)整合的月記錄表該類表主要存儲(chǔ)整合后的數(shù)據(jù)。其中存儲(chǔ)時(shí)長(zhǎng),按時(shí)間間隔分三種:一小時(shí)內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-天表。一天內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-月表。一個(gè)月內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-年表。注意:這三張表結(jié)構(gòu)完全一樣,除時(shí)間范圍具體的值不同。因?yàn)樵摫聿樵兊念l繁度很高,在設(shè)計(jì)的時(shí)候設(shè)計(jì)成天表31張,月表12張,年表根據(jù)年份一年一張。表3-5按服務(wù)器整合的時(shí)記錄表detaildays字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long如表3-5所示,該表是按服務(wù)器整合的時(shí)記錄表表3-6按服務(wù)器整合的天記錄表degtailmonths字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)Long如表3-6所示,該表是按服務(wù)器整合的天記錄表表3-7按服務(wù)器整合的月記錄表detailyears字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long如表3-7所示,該表是按服務(wù)器整合的月記錄表該類表存儲(chǔ)整合數(shù)據(jù),其中不再存儲(chǔ)用戶登錄名等信息,按時(shí)間間隔分三種:一小時(shí)內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-天表。一天內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-月表。一個(gè)月內(nèi)的數(shù)據(jù)整合成一條記錄。單獨(dú)存放在一張表中-年表。注意:該表的查詢主要是運(yùn)營(yíng)商在統(tǒng)計(jì)運(yùn)營(yíng)情況的時(shí)候使用,使用頻率相對(duì)較低。設(shè)計(jì)的時(shí)候采用每種表各一張。

4.數(shù)據(jù)采集與整合子系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4.1數(shù)據(jù)采集類圖設(shè)計(jì)4.1.1數(shù)據(jù)采集客戶端圖4-1類結(jié)構(gòu)概要說(shuō)明如圖4-1所示,數(shù)據(jù)采集客戶端分為CollectionLaunchor,CollectionThread,DataCollector,LogRecord,MatchedRecord,LogDealer這幾個(gè)類,而LogDealer類實(shí)現(xiàn)了CollectionListener接口圖4-2類功能結(jié)構(gòu)說(shuō)明-時(shí)序圖類詳細(xì)說(shuō)明CollectionLaunchor采集主程序類,發(fā)動(dòng)采集線程??蛻舨杉瘑?dòng)器,主要啟動(dòng)采集線程,單獨(dú)啟動(dòng)一個(gè)線程進(jìn)行數(shù)據(jù)采集。在main函數(shù)中創(chuàng)建CollectionThread線程對(duì)象,并調(diào)用run函數(shù)啟動(dòng)線程。該流程圖如圖4-3所示。圖4-3采集主程序類流程圖注意:該啟動(dòng)器可以由用戶發(fā)起為一個(gè)后臺(tái)服務(wù),也可以由Unix的定時(shí)服務(wù)發(fā)起,我們采用使用Unix發(fā)起的方式。用戶后臺(tái)服務(wù)發(fā)起的方式只需要把線程的運(yùn)行方式改變成循環(huán)就是。CollectionThread采集線程,負(fù)責(zé)啟動(dòng)采集過(guò)程。封裝一個(gè)采集線程。該類主要調(diào)用采集器類DataCollector進(jìn)行數(shù)據(jù)采集。函數(shù)run():就是主要?jiǎng)?chuàng)建DataCollector對(duì)象,并調(diào)用其collection函數(shù)進(jìn)行數(shù)據(jù)采集。該函數(shù)是Thread的run函數(shù)覆蓋函數(shù).函數(shù)start():負(fù)責(zé)啟動(dòng)線程,該函數(shù)來(lái)自Thread線程類.注意:該線程是否循環(huán)決定采集器啟動(dòng)的方式是否利用Unix的定時(shí)啟動(dòng)功能,如果采用Unix的定時(shí)功能,則該線程采集完畢自動(dòng)關(guān)閉清空。DataCollector負(fù)責(zé)采集環(huán)境的處理與數(shù)據(jù)采集,分析處理所有的采集任務(wù)有該類完成,主要獲取本機(jī)IP,復(fù)制備份并清空日志文件,讀取日志文件,解析日志文件,匹配處理日志登錄/登出記錄獲取用戶登錄時(shí)間,在線用戶下次匹配。圖4-5數(shù)據(jù)收集類圖函數(shù)getNativeIP讀取要采集服務(wù)器的IP,該IP用屬性文件配置。函數(shù)initlog()負(fù)責(zé)調(diào)用Runtime執(zhí)行mvshell指令進(jìn)行日志文件的備份并清空原始文件。備份的文件名wtmpx+年(4位)+月(2位)+日(2位)+時(shí)(2位),比如wtmpx2008053013.注意:利用Unix系統(tǒng)的Kenerl函數(shù)讀取的時(shí)候,該文件必須采用x結(jié)尾,在這里用java處理就不需要。函數(shù)mappingLogBuffer主要把備份的日志文件映射為本地內(nèi)存緩沖,便于后面解析。參數(shù)是備份日志文件名,返回MappedByteBuffer.函數(shù)parseLogBuffer,負(fù)責(zé)解析緩沖的內(nèi)存結(jié)構(gòu),利用參數(shù)返回兩個(gè)Vector結(jié)構(gòu)對(duì)象,一個(gè)存放登錄數(shù)據(jù),一個(gè)存放登出數(shù)據(jù),Vecotor中存放的元素類型是LogRecord.該類型請(qǐng)參考LogRecord類說(shuō)明。函數(shù)activate負(fù)責(zé)把上次為匹配的數(shù)據(jù)讀取為Vector結(jié)構(gòu)。便于后面匹配。參數(shù)是存放上次未匹配的登錄日志記錄,返回Vector結(jié)構(gòu),其中元素類型LogRecord。函數(shù)match,負(fù)責(zé)匹配登錄/登出數(shù)據(jù),并返回用戶登錄時(shí)間數(shù)據(jù)。參數(shù)是兩個(gè)Vector類型的登錄/登出數(shù)據(jù)結(jié)構(gòu),元素類型是LogRecord,返回的是匹配好的用戶登錄時(shí)長(zhǎng)記錄,數(shù)據(jù)類型是Vector,其中元素類型是MatchedRecord,詳細(xì)說(shuō)明請(qǐng)參考MatchedRecord類的說(shuō)明。函數(shù)passivate,負(fù)責(zé)把這次沒(méi)有匹配好的登錄記錄保存成文件,以便下次采集的時(shí)候匹配。參數(shù)是沒(méi)有匹配好的登錄記錄,類型是Vector,其中元素類型是LogRecord.函數(shù)collect,負(fù)責(zé)整個(gè)采集過(guò)程。這是該類中的唯一的一個(gè)public函數(shù),主要供采集線程調(diào)用。圖4-4采集線程類流程圖LogRecord類,負(fù)責(zé)登錄/登出數(shù)據(jù)封裝。圖4-5LogRecord類圖MatchedRecord類,負(fù)責(zé)匹配好的數(shù)據(jù)的封裝。圖4-6MatchedRecord類圖CollectionListener接口,規(guī)范采集好的數(shù)據(jù)的處理方式。函數(shù)deal,負(fù)責(zé)匹配好數(shù)據(jù)的處理,返回void,參數(shù)是Vector類型,元素類型是MatchedRecord,是匹配好的所有登錄時(shí)長(zhǎng)數(shù)據(jù)。LogDealer類,負(fù)責(zé)匹配好數(shù)據(jù)的發(fā)送處理,如果發(fā)送失敗,則數(shù)據(jù)被保存。該類主要實(shí)現(xiàn)CollectionListener接口。函數(shù)init,主要初始化服務(wù)器參數(shù),服務(wù)器參數(shù)使用屬性文件配置IP與Port。圖4-7LogDealer類流程圖函數(shù)initSocket,主要初始化網(wǎng)絡(luò)連接。如果初始化失敗,則保存數(shù)據(jù)退出函數(shù)send,主要負(fù)責(zé)數(shù)據(jù)發(fā)送。該函數(shù)先發(fā)送歷史失敗數(shù)據(jù)。函數(shù)deal,調(diào)用上面的三個(gè)函數(shù)完成整個(gè)處理過(guò)程。并接受服務(wù)器接收成功的標(biāo)志。4.1.2數(shù)據(jù)采集服務(wù)器端圖4-8數(shù)據(jù)實(shí)體類圖4-9類結(jié)構(gòu)概要說(shuō)明-類圖如圖4-9所示,數(shù)據(jù)采集服務(wù)器端由ServerLauncher,DataRecieverTh,CollectionTh,DBEnvInit,DetailDAO,Detail這幾類以及BasicDAO<EntityType>接口組成。圖4-10類功能結(jié)構(gòu)說(shuō)明-時(shí)序圖類詳細(xì)說(shuō)明:1)ServerLauncher類:服務(wù)器數(shù)據(jù)接受器啟動(dòng)器ServerLauncher主要負(fù)責(zé)啟動(dòng)服務(wù)器接受線程函數(shù)main,主要?jiǎng)?chuàng)建DataRecieverTh對(duì)象,并調(diào)用起其start函數(shù)啟動(dòng)線程。2)DataRecieverTh類,服務(wù)器接受主線程。圖4-11DataRecieverTh類圖主要負(fù)責(zé)接受客戶連接,并為每個(gè)客戶啟動(dòng)一個(gè)數(shù)據(jù)接收線程來(lái)進(jìn)行客戶數(shù)據(jù)接收。該類繼承Thread。成員collectionth是Vector的靜態(tài)數(shù)據(jù)結(jié)構(gòu),負(fù)責(zé)保存所有客戶連接。其中元素類型是CollectionTh.成員serversocket服務(wù)器Socket成員dao封裝對(duì)數(shù)據(jù)的連接及其對(duì)數(shù)據(jù)表訪問(wèn)封裝,具體說(shuō)明參考DetailDAO說(shuō)明。函數(shù)initSocket,負(fù)責(zé)網(wǎng)絡(luò)服務(wù)器的初始化。函數(shù)initDAO,負(fù)責(zé)數(shù)據(jù)庫(kù)連接初始化,并初始化數(shù)據(jù)訪問(wèn)對(duì)象dao。函數(shù)init服務(wù)讀取數(shù)據(jù)庫(kù)連接擦參數(shù)的讀取,數(shù)據(jù)庫(kù)連接參數(shù)用屬性文件配置driver,url,user,password四個(gè)key-value鍵值對(duì)。該過(guò)程由DBEnvInit中兩個(gè)靜態(tài)函數(shù)完成。函數(shù)run是Thread類的覆蓋函數(shù),負(fù)責(zé)接收客戶連接,并建立客戶處理線程并啟動(dòng)線程,并在collectionth中記錄該客戶線程處理對(duì)象。3)CollectionTh類,每個(gè)客戶數(shù)據(jù)接收處理類。圖4-12CollectionTh類圖該類主要接收采集器發(fā)送過(guò)來(lái)的數(shù)據(jù),接收成功后發(fā)送一個(gè)成功標(biāo)志,然后保存接收的數(shù)據(jù)。該類繼承Thread。函數(shù)run接收線程過(guò)程,主要調(diào)用receive私有函數(shù)。函數(shù)recieve,通過(guò)inputstream讀取數(shù)據(jù),并發(fā)送成功標(biāo)記,然后調(diào)用全局的dao保存數(shù)據(jù)。4)DBEnvInit類,數(shù)據(jù)庫(kù)環(huán)境初始化類圖4-13DBEnvInit類圖該類封裝了兩個(gè)函數(shù)工具,完成對(duì)數(shù)據(jù)庫(kù)的連接。函數(shù)getDBParamter,負(fù)責(zé)從屬性文件讀取數(shù)據(jù)庫(kù)連接參數(shù)。函數(shù)getConnection,負(fù)責(zé)根據(jù)連接屬性打開(kāi)與數(shù)據(jù)庫(kù)的連接。注意:該工具可以提供對(duì)數(shù)據(jù)源的支持,在后繼版本中提供數(shù)據(jù)源與Hibernate的支持描述。5)DetailDAO類圖4-13DetailDAO類圖提供對(duì)Detail數(shù)據(jù)庫(kù)的插入等操作訪問(wèn)。函數(shù)insert負(fù)責(zé)把接收到的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)。6)BasicDAO<EntityType>泛型類封裝對(duì)數(shù)據(jù)庫(kù)訪問(wèn)最常用的規(guī)范。在后面的DAO類,缺省必須實(shí)現(xiàn)該接口。7)Detail類,采集數(shù)據(jù)原始記錄實(shí)體類。該類與MatchedRecord完全一樣,在設(shè)計(jì)的時(shí)候?yàn)榕c客戶端分開(kāi),故意設(shè)計(jì)成實(shí)體類,主要便于使用Hibernate。Detail類對(duì)應(yīng)數(shù)據(jù)庫(kù)中對(duì)應(yīng)的t_detail_x31張表。4.2數(shù)據(jù)整合類圖設(shè)計(jì)圖4-14數(shù)據(jù)實(shí)體類結(jié)構(gòu)圖圖4-15數(shù)據(jù)整合類結(jié)構(gòu)概要說(shuō)明如圖4-15所示,數(shù)據(jù)整合端由ServerLauncher類,DataIntegratorTh類,Integration接口,IntegrationByCall類,IntegrationByClient類,IntegrationFactory類,DBEnvInit類以及DetailYearDAO,DetailMonthDAO,DetailDayDAO,IntegratedDetailDayDAO,IntegratedDetailMonthDAO,IntegratedDetailYearDAO這些類組成。圖4-16時(shí)序圖類詳細(xì)說(shuō)明ServerLauncher類:整合啟動(dòng)程序類。DataIntegratorTh類:整合線程,主要完成整合的調(diào)用。Integration接口:整合接口規(guī)范IntegrationByCall類:整合的存儲(chǔ)過(guò)程調(diào)用實(shí)現(xiàn)IntegrationByClient:整合的Java調(diào)用實(shí)現(xiàn)。IntegrationFactory類:利用工廠模式產(chǎn)生的一個(gè)類,負(fù)責(zé)產(chǎn)生整合對(duì)象。DBEnvInit類:見(jiàn)數(shù)據(jù)采集存儲(chǔ)中的說(shuō)明。DetailYearDAO,DetailMonthDAO,DetailDayDAO,IntegratedDetailDayDAO,IntegratedDetailMonthDAO,IntegratedDetailYearDAO負(fù)責(zé)每個(gè)表的整合。注意:整合過(guò)程分兩類:根據(jù)客戶整合。根據(jù)實(shí)驗(yàn)室整合。由于整合過(guò)程就是數(shù)據(jù)庫(kù)分組統(tǒng)計(jì)查詢與數(shù)據(jù)插入操作,所以設(shè)計(jì)中其邏輯流程沒(méi)有設(shè)計(jì)。4.3開(kāi)發(fā)準(zhǔn)備4.3.1系統(tǒng)開(kāi)發(fā)的軟件環(huán)境開(kāi)發(fā)系統(tǒng)所用的軟件環(huán)境為:操作系統(tǒng):WindowsXPProfessionalSP2/linux/unix客戶端瀏覽器:InternetExplorer7.0/firefox4.3.2開(kāi)發(fā)工具使用開(kāi)發(fā)工具有:開(kāi)發(fā)平臺(tái):MyEclipse6.0.1Java版本:jdk1.6.0_05數(shù)據(jù)庫(kù)服務(wù)器:MySQL5.04.4系統(tǒng)發(fā)布本系統(tǒng)通過(guò)GUI完成系統(tǒng)界面,在界面上完成業(yè)務(wù),已基本實(shí)現(xiàn)系統(tǒng)所有功能。圖4-17系統(tǒng)界面如圖4-17所示,系統(tǒng)主要分為系統(tǒng)說(shuō)明,建庫(kù)/表,數(shù)據(jù)模擬源,采集服務(wù)器端,采集客戶端,數(shù)據(jù)整合這幾個(gè)選項(xiàng)卡,而系統(tǒng)的執(zhí)行順序是從左向右執(zhí)行。圖4-18建庫(kù)/表的執(zhí)行如圖4-18所示,用戶輸入相應(yīng)的參數(shù)建立數(shù)據(jù)庫(kù)/表,然后點(diǎn)擊建庫(kù)/表按鈕來(lái)運(yùn)行程序。參數(shù)解釋:IP:MYSQL所在服務(wù)器的IP地址,目前都是本機(jī)回旋IP端口:MYSQL服務(wù)端口,MYSQL的端口默認(rèn)3306用戶:MYSQL的用戶名密碼:MYSQL用戶密碼庫(kù)名:采集系統(tǒng)的數(shù)據(jù)庫(kù)名解碼集:數(shù)據(jù)存儲(chǔ)傳輸采用的解碼集圖4-19建庫(kù)/表運(yùn)行圖如圖4-19所示,建庫(kù)/表成功!建表成功后,接下來(lái)就是數(shù)據(jù)源模擬,如圖4-20所示,填入相應(yīng)的參數(shù),然后點(diǎn)模擬數(shù)據(jù)遠(yuǎn)端按鈕,運(yùn)行程序。圖4-20數(shù)據(jù)模擬源界面如圖4-21,數(shù)據(jù)源模擬器啟動(dòng)。圖4-21數(shù)據(jù)源模擬程序運(yùn)行界面數(shù)據(jù)源模擬器啟動(dòng)成功后,不要關(guān)閉它,而是繼續(xù)運(yùn)行下一個(gè)程序,采集服務(wù)器端的運(yùn)行。圖4-22采集服務(wù)器端界面如圖4-22所示,填寫相應(yīng)的參數(shù),然后點(diǎn)擊運(yùn)行服務(wù)器端。圖4-23采集服務(wù)器端啟動(dòng)采集服務(wù)器端啟動(dòng)成功后,同樣不要關(guān)閉它,而是繼續(xù)運(yùn)行下一個(gè)程序——采集客戶端。圖4-24采集客戶端界面如圖4-24所示,填寫相應(yīng)的參數(shù),運(yùn)行客戶端。圖4-25采集客戶端啟動(dòng)如圖4-25所示,采

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論