【正文】
/* significant length of ut_host */ 114371 257 /* remote host name */ 25 詳細(xì)說(shuō)明 wtmpx 26 Type含義 ?define EMPTY 0 ?define RUN_LVL 1 ?define BOOT_TIME 2 ?define OLD_TIME 3 ?define NEW_TIME 4 ?define INIT_PROCESS 5 ?define LOGIN_PROCESS 6 登錄進(jìn)程 ?define USER_PROCESS 7 用戶(hù)進(jìn)程 ?define DEAD_PROCESS 8 終止進(jìn)程 27 Copyright Tarena Technologies Inc., 2021. All rights reserved. Tarena HighEnd IT Training 中國(guó)北京 電話(huà):( 010) 6213568 62136369 地址:北京市海淀區(qū)北三環(huán)西路甲 18號(hào) 中鼎大廈 B座 7層 中國(guó)上海 電話(huà):( 021) 612026 61202603 地址:上海市北京東路 668號(hào) 上海科技京城 B區(qū) 9層 加拿大多倫多 電話(huà):( 416) 4916456 地址: Suite 1208, Deerford Road, Toronto, Ontario, Canada 郵編: M2J 3J3 中國(guó)廣州 電話(huà): ( 020) 8551886 85518898 地址: 廣州天河區(qū)崗頂僑鑫教育主樓三層 數(shù)據(jù)采集分析設(shè)計(jì) 客戶(hù)端 28 數(shù)據(jù)采集分析設(shè)計(jì) ?分析設(shè)計(jì)的思路 ? 按用例場(chǎng)景為單位進(jìn)行分析設(shè)計(jì) . ? 以時(shí)序圖為主要手段 ,以類(lèi)圖為主要目的的分析模式分析設(shè)計(jì) . ? 分析中重點(diǎn)關(guān)注 :數(shù)據(jù)源 處理過(guò)程 數(shù)據(jù)結(jié)構(gòu) ?分析中的三個(gè)階段 : ? 第一階段 :數(shù)學(xué)模型建立階段 ? 實(shí)體類(lèi) ? 功能類(lèi) ? 第二階段 :業(yè)務(wù)邏輯模型建立階段 ? DAO層類(lèi) , ? 功能類(lèi)責(zé)任分配 . ? 第三階段 :模型整合與完善階段 ? 利用 J ava的設(shè)計(jì)模式 ,產(chǎn)生輔助類(lèi) ,降低系統(tǒng)的耦合程度 . 29 數(shù)據(jù)實(shí)體類(lèi)圖設(shè)計(jì) 數(shù)據(jù)源 30 實(shí)體類(lèi) LogRecord說(shuō)明 ?LogRecord: ? 把數(shù)據(jù)源的數(shù)據(jù)讀取后以對(duì)象形式保存 . ? 在該系統(tǒng)中 ,采用把登錄 /登出分開(kāi)存放 ,便于分析 . ? 負(fù)責(zé)封裝日志中數(shù)據(jù) ? user:登錄用戶(hù)帳號(hào) ? type:登錄類(lèi)型 ,登錄 7/登出 8 ? visittime:登錄 /登出的時(shí)間 ? labip:采集的服務(wù)器 IP ? userip:用戶(hù) IP ? pid:登錄進(jìn)程 ID,主要識(shí)別同用戶(hù)的登錄。 ?數(shù)據(jù)量很大。單獨(dú)存放在一張表中 月表。單獨(dú)存放在一張表中 月表。 產(chǎn)生 D a t a C o ll e ct o r對(duì)象調(diào)用數(shù)據(jù)采集函數(shù) co l le ct釋放資源線(xiàn)程關(guān)閉 r e t u r n49 類(lèi)說(shuō)明 ?DataCollector ?負(fù)責(zé)采集環(huán)境的處理與數(shù)據(jù)采集,分析處理 獲取本地 IP g e t N a t i v e I P初始化日志文件 i n i t l o g日志文件內(nèi)存映射 m a p p i n g L o g B u f f e r登出數(shù)據(jù)匹配 m a t ch讀取上次未匹配的數(shù)據(jù) a ct i v a t e注入 L o g D e a l e r 類(lèi)型的 l o g d e a l e r 對(duì)象調(diào)用 l o g d e a l e r 的 deal函數(shù)進(jìn)行數(shù)據(jù)處理保存未匹配數(shù)據(jù)p a ssi v a t e解析日志 p a r seL o g B u f f e r50 類(lèi)說(shuō)明 ? LogRecord類(lèi) ? 負(fù)責(zé)登錄 /登出數(shù)據(jù)封裝。 ? DetailDAO類(lèi) ? 負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)增 ,刪 ,修 ,查詢(xún)操作 . ? Detail類(lèi) ? 采集數(shù)據(jù)原始記錄實(shí)體類(lèi)。 ? ConnectionPool類(lèi) :數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)。 Detail類(lèi)對(duì)應(yīng)數(shù)據(jù)庫(kù)中對(duì)應(yīng)的t_detail_x31張表。 ? CollectionListener接口 ? 規(guī)范采集好的數(shù)據(jù)的處理方式。單獨(dú)存放在一張表中 年表。單獨(dú)存放在一張表中 年表。 ?登錄 /登出構(gòu)成一條記錄 ,不存儲(chǔ)時(shí)長(zhǎng)。 ?按不同用戶(hù)在不同實(shí)驗(yàn)室上的數(shù)據(jù)整合表。如果用戶(hù)量大,用戶(hù)頻繁地登入 /出,將產(chǎn)生大量的數(shù)據(jù),不便于將來(lái)生成用戶(hù)的月賬單和對(duì)開(kāi)放實(shí)驗(yàn)室的使用情況進(jìn)行月統(tǒng)計(jì)和年統(tǒng)計(jì),因此,出現(xiàn)了整合系統(tǒng)。最后把這些數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,以備其他系統(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ù)。 6 整合需求說(shuō)明 ?采集系統(tǒng)定時(shí)將用戶(hù)使用服務(wù)器的數(shù)據(jù)存入到了數(shù)據(jù)庫(kù)中,但這些數(shù)據(jù)都是流水帳的數(shù)據(jù),是用戶(hù)每次使用 UNIX操作系統(tǒng)的用時(shí)。 ?MatchedRecord ? 負(fù)責(zé)存放匹配處理好的數(shù)據(jù) .就是把用戶(hù)登錄 /登出整合成一條數(shù)據(jù) . ? 在數(shù)據(jù)發(fā)送 ,本地存儲(chǔ)都以該類(lèi)型的形式使用 . 31 根據(jù)實(shí)體類(lèi)設(shè)計(jì)成表結(jié)果 ?原始采集用戶(hù)登錄時(shí)長(zhǎng)明細(xì)表 (details_x) 其中 x 是 131MatchedRecord類(lèi) 字段英文名 字段漢字名 類(lèi)型 約束條件 說(shuō)明 loginname 登錄名 Varchar(20) loginip 登錄 IP Varchar(24) logintime 登錄時(shí)間 Timestamp logouttime 登出時(shí)間 Timestamp labip 實(shí)驗(yàn)室 IP Varchar(24) duration 登錄時(shí)長(zhǎng) long 32 數(shù)據(jù)實(shí)體類(lèi)圖設(shè)計(jì) 數(shù)據(jù)存儲(chǔ)目標(biāo) 33 數(shù)據(jù)實(shí)體類(lèi)說(shuō)明 ?在采集數(shù)據(jù)的存儲(chǔ)方式 ,根據(jù)客戶(hù)需求與系統(tǒng)性能的考慮 ,設(shè)計(jì)的時(shí)候把數(shù)據(jù)存儲(chǔ)表結(jié)構(gòu)分為三類(lèi) : ?采集的原始登錄數(shù)據(jù)記錄表。 ?可能為用戶(hù)查詢(xún)使用業(yè)務(wù)的明細(xì)的時(shí)候查詢(xún)。 ?一個(gè)月內(nèi)的數(shù)據(jù)整合成一條記錄。 ?一個(gè)月內(nèi)的數(shù)據(jù)整合成一條記錄。 ? MatchedRecord類(lèi) ? 負(fù)責(zé)匹配好的數(shù)據(jù)的封裝。該類(lèi)與 MatchedRecord完全一樣,在設(shè)計(jì)的時(shí)候?yàn)榕c客戶(hù)端分開(kāi),故意設(shè)計(jì)成實(shí)體類(lèi),主要便于使用 Hibernate。 ? IntegrateImpl類(lèi)是 BasicIntegrateDAO的實(shí)現(xiàn) . ? BasicIntegrateDAO:基本的數(shù)據(jù)訪問(wèn) ,整個(gè)整合過(guò)程的接口規(guī)范 . 59 開(kāi)始