達內(nèi)項目達內(nèi)dms詳細設(shè)計_第1頁
達內(nèi)項目達內(nèi)dms詳細設(shè)計_第2頁
達內(nèi)項目達內(nèi)dms詳細設(shè)計_第3頁
達內(nèi)項目達內(nèi)dms詳細設(shè)計_第4頁
達內(nèi)項目達內(nèi)dms詳細設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 通用數(shù)據(jù)采集系統(tǒng)v3.0 詳細設(shè)計說明書通用數(shù)據(jù)挖掘系統(tǒng)V3.0詳細設(shè)計說明書Version 3.0文檔編號 TTS*2012-04-11達內(nèi)IT 集團文檔歷史版本標(biāo)題內(nèi)容作者時間編寫目的描述DMS3.0項目的系統(tǒng)結(jié)構(gòu),數(shù)據(jù)實體,類的定義,類功能的實現(xiàn),部署要求,運行環(huán)境等內(nèi)容,該文檔用來指導(dǎo)程序員完成程序代碼實現(xiàn)。文檔的主要讀者包括:項目分析人員,項目設(shè)計人員,項目經(jīng)理,程序員,測試人員,部署人員,項目技術(shù)支持人員等。參考文檔DMS3.0需求說明書;文檔編號:TTS*;版本號v1.0DMS3.0概要設(shè)計說明書文檔編號:TTS*;版本號v1.0名稱解釋DMS:數(shù)據(jù)挖掘系統(tǒng)(Data Mini

2、ng System)系統(tǒng)架構(gòu):描述系統(tǒng)的核心功能組件和組件間的相互關(guān)聯(lián)。數(shù)據(jù)實體:描述系統(tǒng)需要采集,處理和保存的數(shù)據(jù)的結(jié)構(gòu)。用戶登入/登出記錄:在登錄日志文件中記錄的用戶登入Unix系統(tǒng)的日志記錄,該日志記錄包含用戶的登錄名,用戶登入Unix的時刻,登錄的終端機器IP等信息。用戶的登錄記錄:將用戶的登入記錄和登出記錄按照對應(yīng)關(guān)系匹配起來,形成一條完整的登錄記錄,登錄記錄中包含以下信息:用戶登錄名,登入時刻,登出時刻,登錄時長,登錄終端機器IP等。匹配的登入/登出記錄:等同于用戶的登錄記錄。未匹配的登入記錄:在登錄日志文件中理論上一條登入記錄跟一條登出記錄匹配,但有可能在我們采集數(shù)據(jù)時用戶還沒有

3、登出,所以日志文件中可能出現(xiàn)沒有登出記錄與之匹配的登入記錄,這些登入記錄我們將其保存在一個指定的文件中,在下次采集時再讀取。系統(tǒng)架構(gòu)綜述DMS3.0由以下幾個功能模塊組成:數(shù)據(jù)讀取模塊,數(shù)據(jù)匹配模塊,數(shù)據(jù)發(fā)送模塊,數(shù)據(jù)接收模塊,數(shù)據(jù)保存模塊和數(shù)據(jù)整合模塊,每個模塊的核心功能如下:數(shù)據(jù)讀取模塊:負責(zé)從用戶登錄記錄文件和未匹配登錄記錄文件中讀取用戶的登錄記錄數(shù)據(jù),將其轉(zhuǎn)化為LogRec對象,然后傳遞給數(shù)據(jù)匹配模塊匹配。數(shù)據(jù)匹配模塊:負責(zé)將用戶登錄記錄數(shù)據(jù),按照登入/登出的關(guān)系匹配起來,形成匹配的用戶登錄記錄數(shù)據(jù)(MatchedLogRec對象),并計算出每次登錄的時間長度。數(shù)據(jù)發(fā)送模塊:將匹配好的

4、用戶登錄記錄通過網(wǎng)絡(luò)發(fā)送到采集系統(tǒng)服務(wù)器。數(shù)據(jù)接收模塊:服務(wù)器端接收匹配好的用戶登錄記錄數(shù)據(jù)。數(shù)據(jù)保存模塊:將接受到的用戶登錄記錄數(shù)據(jù)保存到數(shù)據(jù)庫的用戶登錄記錄明細表中。數(shù)據(jù)整合模塊:將用戶登錄記錄明細表中的數(shù)據(jù)整合成日報表,月報表和年報表。靜態(tài)結(jié)構(gòu)設(shè)計數(shù)據(jù)實體類根據(jù)需求分析,我們設(shè)計出以下數(shù)據(jù)實體類:LogRec:登入/登出記錄類,用來表示一條原始的用戶登入/登出記錄。MatchedLogRec:匹配的登錄記錄類,用來表示一條匹配的用戶登錄記錄。以下分別對這兩個實體類的設(shè)計作出說明:登入/登出記錄數(shù)據(jù)類1,登入/登出記錄類(LogRec)類圖:2,登入/登出記錄類(LogRec)成員變量說明

5、:成員變量定義成員變量說明備注char logname32用戶登錄名int pid用戶登錄的進程IDshort type登錄記錄類型7=登入;8=登出int logtime用戶登入/登出時刻(秒)原日志中數(shù)據(jù)單位是秒char logip257用戶登錄IP匹配的用戶登錄記錄類1,匹配的用戶登錄記錄類(MatchedLogRec)類圖:2,匹配的用戶登錄記錄類(MatchedLogRec)成員變量說明:成員變量定義成員變量說明備注char logname32用戶登錄名char logip32用戶登錄終端IPint logintime用戶登入時刻(秒)原日志中數(shù)據(jù)單位是秒int logoutTime

6、用戶登出時刻(秒)原日志中數(shù)據(jù)單位是秒int durations用戶在線時間長度(秒)char labip257實驗室IP數(shù)據(jù)庫表設(shè)計根據(jù)需求,設(shè)計出如下數(shù)據(jù)庫表結(jié)構(gòu):表結(jié)構(gòu):用戶登錄記錄明細表:字段類型長度約束備注登錄記錄編號Number15PK系統(tǒng)自動生成用戶IDchar32NOT NULL實驗室IPchar20NOT NULL用戶終端IPchar257NOT NULL登入時間Number20NOT NULL登出時間Number20NOT NULL登錄時長Number12由登出時間-登入時間求得用戶登錄記錄日報表:字段類型長度約束備注用戶IDchar32PK實驗室IPchar20PK日登錄

7、時長Number12NOT NULL登出時間Date用戶登錄記錄月報表:字段類型長度約束備注用戶IDchar32PK實驗室IPchar257PK月登錄時長Number12NOT NULL登出時間Date用戶登錄記錄年報表:字段類型長度約束備注用戶IDchar32PK實驗室IPchar20PK年登錄時長Number12NOT NULL登出時間Date總體類圖【客戶端類圖】【服務(wù)端類圖】Client 類Client類封裝數(shù)據(jù)采集系統(tǒng)客戶端的所有功能。Client類定義 Client類方法說明1)sendLogs方法定義:方法原型public void sendLogs()方法功能執(zhí)行數(shù)據(jù)采集客戶端

8、的完整過程 logReader 負責(zé)讀取數(shù)據(jù) logSender負責(zé)發(fā)送數(shù)據(jù)參數(shù)說明無返回類型void拋出異常調(diào)用類的異常LogReader類logReader類封裝了日志讀取的所有功能LogReader類定義LogReader成員變量說明成員變量定義成員變量說明char logFileName50用戶登錄日志文件名char backFileName50日志備份文件名 char failLoginsFileName50未匹配成功的登錄記錄保存文件名logins list保存登錄記錄的集合logouts list保存登出記錄的集合matches list保存匹配成功記錄的集合LogReader類

9、方法說明readLogs方法:方法原型public List readlogs() 方法功能讀取日志文件總調(diào)度函數(shù) 得到匹配好的集合 參數(shù)說明無返回類型List拋出異常調(diào)用函數(shù)中可能拋出的異常readLogs方法活動圖:backup方法:方法原型private:void backup() 方法功能備份日志文件 把變化的文件處理成不變的 把日志文件改名即可,系統(tǒng)會自動生成wtmpx文件參數(shù)說明無返回類型void拋出異常讀取數(shù)據(jù)失敗拋出BackupException readFailLogins方法:方法原型public: void readFailLogins 方法功能讀取上一次沒有匹配的 登入

10、記錄參數(shù)說明無返回類型void拋出異常讀取數(shù)據(jù)失敗拋出ReadFailLoginExceptionreadFailLogins方法活動圖:readBackupFile方法:方法原型public: void readBackupFile方法功能讀取備份的日志文件 把讀取到的數(shù)據(jù)放入對應(yīng)的屬性中參數(shù)說明無返回類型Void拋出異常讀取數(shù)據(jù)失敗拋出ReadBackFileException4) matchLogRec方法:方法原型public void matchLogRec() 方法功能將用戶登入/登出記錄匹配為完整的登錄記錄 logins ,logouts進行匹配存入matches參數(shù)說明無返回類

11、型void拋出異常匹配數(shù)據(jù)失敗拋出MatchLogRecExceptionmatchLogRec方法活動圖:6) saveFailLogins方法:方法原型public void saveFailLogins() 方法功能將匹配失敗的日志記錄存到文件參數(shù)說明無返回類型無拋出異常匹配數(shù)據(jù)失敗拋出SaveFailLoginsException LogSender類 LogSender類定義LogSender類成員變量說明成員變量定義成員變量說明char failSendFileName50發(fā)送失敗記錄的保存文件名int fd采集系統(tǒng)服務(wù)器網(wǎng)絡(luò)描述符unsigned short port服務(wù)器的端口

12、char serverIp20要連接的服務(wù)器ipLogSender類方法說明1)sendMatches方法:方法原型public void sendMatches(list*matches) 方法功能發(fā)送匹配日志集合到服務(wù)端參數(shù)說明matches 存儲發(fā)送數(shù)據(jù)的集合返回類型Void拋出異常建立連接失敗拋出SendDataExceptionsendMatches方法活動圖: 2)initSocket方法:方法原型public void initNetWork() 方法功能根據(jù)ip和port 以及serverIp建立到服務(wù)端的socket連接初始化網(wǎng)絡(luò)參數(shù)說明無返回類型void拋出異常建立連接失敗

13、拋出SendDataException3)readSendfailed方法:方法原型public void readSendfailed (list*matches) 方法功能讀取發(fā)送失敗的數(shù)據(jù)文件參數(shù)說明matches: 匹配的用戶日志記錄列表指針返回類型void拋出異常發(fā)送數(shù)據(jù)失敗拋出SendDataException4)saveSendfailed方法:方法原型public void saveSendfailed (list*matches) 方法功能存儲發(fā)送失敗的數(shù)據(jù) 以備下次讀取發(fā)送參數(shù)說明matches: 匹配的用戶日志記錄列表指針 存儲時 把集合中剩余的數(shù)據(jù)存儲到文件返回類型vo

14、id拋出異常發(fā)送數(shù)據(jù)失敗拋出SendDataExceptionServer類Server類定義Server成員變量說明成員變量定義成員變量說明char labIp20實驗室ipInt fd 網(wǎng)絡(luò)套接字描述符DataReciveThread productor接收數(shù)據(jù)的線程DataSaveThread customer存儲數(shù)據(jù)的線程UserData dataPool線程共享數(shù)據(jù)緩沖池Server類方法說明initSocket方法 方法原型public void initSocket( ) 方法功能初始化服務(wù),啟動Socket 的bind listen 和accept參數(shù)說明無返回類型void拋出

15、異常DmsServerException 創(chuàng)建ServerSocket過程中發(fā)生的異常startService方法 方法原型public void startService( ) 方法功能響應(yīng)客戶連接請求,開啟線程為客戶服務(wù)參數(shù)說明無返回類型void拋出異常DMSServerException 創(chuàng)建相應(yīng)客戶請求過程中發(fā)生的異常 DataReciveThread類說明 成員說明: threadid 創(chuàng)建線程時使用 標(biāo)示一個線程對象 方法說明: run 完成具體的數(shù)據(jù)接收工作 start 完成線程的創(chuàng)建和啟動線程 reciveData(void *) 創(chuàng)建線程時調(diào)用的線程函數(shù)DataSaveThr

16、ead類說明 成員說明: threadid 創(chuàng)建線程時使用 標(biāo)示一個線程對象 logDao 向數(shù)據(jù)庫中存儲數(shù)據(jù)的對象 方法說明: run 完成具體的調(diào)用dao的工作 start 完成線程的創(chuàng)建和啟動線程 saveData(void *) 創(chuàng)建線程時調(diào)用的線程函數(shù) LogDao類說明 方法說明:connect 連接數(shù)據(jù)庫saveData 存儲數(shù)據(jù) 根據(jù)日志記錄的退出時間放入相應(yīng)的日志表中 如退出時間是8日 則放入logdetail08日志表中commitData 提交事務(wù)disconnect 斷開連接UserData類說明 UserData成員變量說明成員變量定義成員變量說明deque data

17、緩沖客戶端的數(shù)據(jù)池的真正存儲容器pthread_mutex_t mutex控制線程安全的互斥量pthread_cont_t con_p控制是否生產(chǎn)的條件量pthread_cont_t con_c控制是否消費的條件量UserData類方法說明push_data方法:方法原型public:void push_data(LogData rec) 方法功能向緩沖池中加入數(shù)據(jù)參數(shù)說明LogData rec是要往數(shù)據(jù)庫表中存儲的數(shù)據(jù)返回類型void拋出異常無pop_data方法:方法原型public:LogData pop_data() 方法功能從緩沖池中取出數(shù)據(jù)參數(shù)說明無返回類型LogData 異常設(shè)計客戶端異常類結(jié)構(gòu)圖:客戶端異常類說明異常類名異常類責(zé)任說明備注DmsReadException數(shù)據(jù)讀取異常。BackupException備份異常。ReadFailLoginException讀取未匹配的登入數(shù)據(jù)異常。MatchLogRecException匹配日志記錄異常。SendDataException發(fā)送數(shù)據(jù)異常數(shù)據(jù)整合: 前置條件:數(shù)據(jù)已經(jīng)按照登出的日期放入到了對應(yīng)的詳細日志表中 數(shù)據(jù)按照01到31編號。 三

溫馨提示

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

評論

0/150

提交評論