亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Open Lab的電信計(jì)費(fèi)數(shù)據(jù)采集系統(tǒng)開發(fā)

        2015-06-08 09:59:06徐向藝
        電子設(shè)計(jì)工程 2015年16期
        關(guān)鍵詞:信息系統(tǒng)

        黃 淼,徐向藝,馬 麗

        (平頂山學(xué)院 軟件學(xué)院,河南 平頂山 467000)

        目前很多電信公司都提供了Open Lab出租業(yè)務(wù),由于大型服務(wù)器購買昂貴,許多中小型公司都采用租用服務(wù)的方式經(jīng)營。電信公司提供一項(xiàng)叫做Unix服務(wù)器的出租業(yè)務(wù),需要使用Unix實(shí)驗(yàn)室出租業(yè)務(wù)的客戶,通過電信公司提供的賬號(hào)和密碼遠(yuǎn)程登錄指定的Unix機(jī)器,并使用Unix服務(wù)。電信運(yùn)營商根據(jù)用戶的使用時(shí)長進(jìn)行收費(fèi)。由于Unix服務(wù)器上記錄的用戶登錄日志信息中的數(shù)據(jù)都是流水賬數(shù)據(jù),而且用戶數(shù)量較多,使得數(shù)據(jù)信息量十分龐大。為了得到有序排列的用戶信息數(shù)據(jù),為日后計(jì)費(fèi)提供可靠的數(shù)據(jù)支持,所以非常有必要開發(fā)一個(gè)數(shù)據(jù)采集系統(tǒng),用于采集從Unix服務(wù)器上記錄的用戶登錄日志信息中提取與用戶計(jì)費(fèi)相關(guān)的信息,以便后期將這些數(shù)據(jù)轉(zhuǎn)移到數(shù)據(jù)庫中存儲(chǔ)為計(jì)費(fèi)做準(zhǔn)備[1]。

        1 數(shù)據(jù)采集系統(tǒng)需求分析

        1.1 業(yè)務(wù)需求分析

        電信公司通過數(shù)據(jù)采集系統(tǒng)需要最終得到的關(guān)鍵信息是各個(gè)用戶的在線時(shí)長,然后用來作為電信的收費(fèi)依據(jù)。能夠提供該信息的是Unix服務(wù)器自帶的用戶信息記錄日志文件wtmpx。該文件記錄了每次用戶登錄的OS賬號(hào)、進(jìn)程ID、登入時(shí)刻、登出時(shí)刻和登錄終端機(jī)器IP。

        數(shù)據(jù)采集系統(tǒng)客戶端需要對(duì)這些采集到的用戶信息成批進(jìn)行讀取,讀取一批數(shù)據(jù)后對(duì)采集到的成對(duì)登錄登出數(shù)據(jù)進(jìn)行匹配,然后將匹配成功的數(shù)據(jù)信息發(fā)送給數(shù)據(jù)采集服務(wù)器。匹配不成功的單條記錄進(jìn)一步同下一批日志數(shù)據(jù)一起進(jìn)行下一次匹配發(fā)送處理。數(shù)據(jù)采集服務(wù)器接受客戶端發(fā)送過來的成對(duì)數(shù)據(jù)并提供數(shù)據(jù)的接收監(jiān)控顯示功能,并將成對(duì)數(shù)據(jù)存入相應(yīng)的數(shù)據(jù)庫保存,為收費(fèi)提供數(shù)據(jù)管理和支持。

        1.2 數(shù)據(jù)描述

        日志文件wtmpx是實(shí)時(shí)動(dòng)態(tài)增長的,每372字節(jié)的數(shù)據(jù)代表一條登入/登出記錄。因此,數(shù)據(jù)采集端程序從日志文件中讀取數(shù)據(jù)時(shí),只需要讀取從上次讀取到本次讀取之間所產(chǎn)生的最新的日志數(shù)據(jù)。即,采集端程序需要從上次讀取的末尾位置開始讀取,以每372字節(jié)的數(shù)據(jù)為單位進(jìn)行讀取,直到接近文件末尾。正因?yàn)槿罩疚募菍?shí)時(shí)動(dòng)態(tài)增長的,如果讀至文件末尾,數(shù)據(jù)并非372字節(jié)的倍數(shù),則表示一條登錄數(shù)據(jù)尚未完全形成,因此,只需要讀至上一個(gè)372字節(jié)的數(shù)據(jù)即可。數(shù)據(jù)采集端程序讀取日志文件的過程如圖1所示。

        圖1 日志文件讀取過程Fig.1 Log file reading process

        圖1中突出顯示字體1000部分表示上次讀取的末尾位置,則本次讀取從此開始。因?yàn)槿罩疚募膭?dòng)態(tài)增長,以至于本次讀取時(shí),最后一條數(shù)據(jù)尚不是完整記錄,因此,只讀取到上一條登入/登出記錄即可。采集端程序從日志文件wtmpx中得到數(shù)據(jù)后,將數(shù)據(jù)存為臨時(shí)日志文件temp.log,然后進(jìn)行數(shù)據(jù)解析。該文件中包含多條登入/登出記錄,每條記錄(每372字節(jié))中需要采集的信息有:登錄的OS賬號(hào)、登錄的進(jìn)程 ID、登錄/登出的時(shí)間、登錄期間的在線時(shí)間、終端IP。這些需要采集的數(shù)據(jù)信息在每372長度的字節(jié)中的位置如表1所示。

        表1 采集的數(shù)據(jù)位置信息表Tab.1 Data collected by position information table

        Unix服務(wù)器自帶的文件中包含的用戶信息是數(shù)據(jù)采集系統(tǒng)將要讀取的關(guān)鍵數(shù)據(jù),對(duì)該文件的解析是系統(tǒng)設(shè)計(jì)的前提。該文件是一個(gè)二進(jìn)制文件,從表1中可以看出,系統(tǒng)需要采集的5個(gè)數(shù)據(jù)項(xiàng)在文件中的一條登錄登出記錄項(xiàng)的地址是不連續(xù)的,在設(shè)計(jì)系統(tǒng)時(shí),必須針對(duì)這幾個(gè)數(shù)據(jù)項(xiàng)的地址和各自的大小進(jìn)行讀取[2-3]。

        2 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

        根據(jù)系統(tǒng)的需求分析得出,該數(shù)據(jù)采集系統(tǒng)是一個(gè)基于“客戶端-服務(wù)器”架構(gòu)的數(shù)據(jù)挖掘系統(tǒng),由數(shù)據(jù)采集客戶端和數(shù)據(jù)采集服務(wù)器端兩部分組成。

        數(shù)據(jù)采集客戶端的主要功能為:

        1)定期讀取日志文件,得到最新的日志數(shù)據(jù)(從上一次讀取后的位置開始讀?。?;

        2)提取并解析日志文件中的數(shù)據(jù);

        3)如果有未匹配的日志文件,則將解析后的登錄日志數(shù)據(jù)和未匹配的日志文件數(shù)據(jù)合并;

        4)將這些記錄匹配為完整的登錄會(huì)話記錄(一次登錄會(huì)話包含一次登入記錄和一次登出記錄);

        5)提交匹配后的日志數(shù)據(jù)到服務(wù)器。

        數(shù)據(jù)采集客戶端的系統(tǒng)功能如圖2所示。

        圖2 數(shù)據(jù)采集客戶端系統(tǒng)功能流程圖Fig.2 The flow chart of data collection client system function

        數(shù)據(jù)采集服務(wù)器端的主要功能為:

        1)持續(xù)接收數(shù)據(jù)采集客戶端發(fā)來的登錄數(shù)據(jù),并記載登錄數(shù)據(jù);

        2)顯示數(shù)據(jù)接收以及操作的結(jié)果,以實(shí)現(xiàn)數(shù)據(jù)監(jiān)控;

        3)定期檢查所記載的登錄數(shù)據(jù),并將數(shù)據(jù)保存到歸檔日志文件logrecfile.txt中。

        數(shù)據(jù)采集服務(wù)器端的系統(tǒng)功能如圖3所示。

        圖3 數(shù)據(jù)采集服務(wù)器端功能Fig.3 The flow chart of data collection server system function

        由以上分析得出,可以把系統(tǒng)設(shè)計(jì)分成以下幾個(gè)模塊:讀取日志模塊,匹配日志模塊,發(fā)送日志模塊,日志瀏覽監(jiān)控模塊、日志接收模塊,以及日志存儲(chǔ)模塊。

        3 數(shù)據(jù)采集系統(tǒng)核心功能設(shè)計(jì)與實(shí)現(xiàn)

        3.1 類的設(shè)計(jì)及功能描述

        整個(gè)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)了7個(gè)類。分別是:

        1)Log類:日志數(shù)據(jù)業(yè)務(wù)類,代表從日志中解析出來的日志記錄,每個(gè)日志記錄解析為一個(gè)Log對(duì)象。

        2)LogPair類:"日志記錄對(duì)"業(yè)務(wù)對(duì)象,包含兩個(gè)登錄日志對(duì),還包括登錄主機(jī)的IP地址。日志對(duì)中一個(gè)是登錄記錄,一個(gè)是登出記錄。

        3)DMSClient類:采集客戶端核心業(yè)務(wù)程序,主要用于獲取日志數(shù)據(jù)、解析日志數(shù)據(jù)、匹配日志數(shù)據(jù)、以及向采集服務(wù)器發(fā)送日志數(shù)據(jù)。

        4)DMSClientFrame類:采集客戶端界面,顯示采集數(shù)據(jù)以及發(fā)送數(shù)據(jù)的狀態(tài)信息。

        5)DMSServer類:采集服務(wù)器接收程序,接收采集端發(fā)來的數(shù)據(jù),接收到數(shù)據(jù)以后寫入到文件中。

        6)DMSServerFrame類:采集服務(wù)器界面,能夠顯示采集過程中的數(shù)據(jù)信息。

        7)NetService類:設(shè)計(jì)網(wǎng)絡(luò)協(xié)議,提供數(shù)據(jù)發(fā)送和接受的格式[4]。

        3.2 日志讀取模塊

        日志讀取模塊每次讀取原始文件的一部分。采用增量讀取,每一次讀取一批。讀取日志核心算法步驟描述如下:

        1)檢查輸入數(shù)據(jù)文件是否存在。

        2)檢查上次讀取結(jié)果log.txt是否存在,如果存在就說明上次的結(jié)果沒有處理完成,這次就不再讀取。

        3)讀取上次的讀取位置(沒有的從開始位置讀?。?/p>

        4)根據(jù)上次的讀取位置和文件長度判斷是否有新記錄產(chǎn)生。如果沒有新數(shù)據(jù)產(chǎn)生,就不讀取。

        5)從上次讀取位置開始批量讀取日志到臨時(shí)文件,如果讀取到文件末尾就不讀取。

        6)保存本次讀取的位置。7)改名臨時(shí)文件到log.txt。8)如果有異常一定不產(chǎn)生文件log.txt。

        3.3 日志匹配模塊

        日志匹配模塊每次從日志讀取模塊產(chǎn)生的結(jié)果log.txt中讀取登錄登出數(shù)據(jù)中成對(duì)的數(shù)據(jù),最終產(chǎn)生匹配成功的成對(duì)數(shù)據(jù)文件matched.txt。其核心算法步驟描述如下:

        1)檢查是否有輸入數(shù)據(jù)文件log.txt,如果沒有就返回。

        2)檢查是否有輸出數(shù)據(jù)文件matched.txt,如果有返回。

        3)如果有單條登錄記錄login.txt存在,讀取 login.txt到集合 logins, logouts。

        4)讀取 log.txt到集合 logins, logouts。

        5)迭代 logouts的key查找logins。如果找到,就是登錄對(duì) matchedList<logPair>。找到從logins集合中刪除登錄記錄。

        6)保存 matched集合到matched.txt。

        7)保存 logins集合到login.txt

        8)刪除 log.txt。

        3.4 日志發(fā)送模塊

        發(fā)送日志要用到網(wǎng)絡(luò),網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)就是一項(xiàng)非常重要的工作。為了便于數(shù)據(jù)的封裝和擴(kuò)展。網(wǎng)絡(luò)協(xié)議設(shè)計(jì)采用XML[5]作為協(xié)議數(shù)據(jù)封裝。設(shè)計(jì)了負(fù)責(zé)XML數(shù)據(jù)的發(fā)送和接收的NetService類。XML報(bào)文設(shè)計(jì)包含類型type、長度length和值value三項(xiàng)內(nèi)容。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下:先發(fā)送類型type,設(shè)計(jì)每次發(fā)送10個(gè)Byte,再發(fā)送長度length為4個(gè)Byte的int類型數(shù)據(jù),最后發(fā)送value,節(jié)數(shù)量與length一致。發(fā)送數(shù)據(jù)方法 sendDocument(Document doc,Socket socket)將 xml doc通過socket的out流發(fā)送出去。其設(shè)計(jì)如下:

        1)先發(fā)送定長的type數(shù)據(jù) "XML"到流中。

        2)將xml doc寫入到內(nèi)存的緩沖區(qū)中,得到全部的Bytes數(shù)據(jù),同時(shí)得到數(shù)據(jù)的長度。

        3)將int分成4個(gè)Byte發(fā)送到流中。

        4)將XML的全部的Byte數(shù)據(jù)發(fā)送到流中。

        1)先接收定長 type類型。如果type不是 "XML"就拋出異常。

        2)接收4個(gè)Byte,合并為一個(gè)int,是長度信息length。

        3)從流中接收length個(gè)Byte到數(shù)組緩沖區(qū)。

        4)將數(shù)組緩沖區(qū)中的數(shù)據(jù),解析為XML doc。

        需要將一個(gè)List全部的日志數(shù)據(jù)封裝起來發(fā)送到服務(wù)器。發(fā)送XML數(shù)據(jù)格式設(shè)計(jì)如下:

        封裝服務(wù)器回送消息的接收XML數(shù)據(jù)格式設(shè)計(jì)如下:

        日志發(fā)送模塊的核心算法描述如下:

        1)檢查是否有被發(fā)送的數(shù)據(jù)文件matched.txt。如果沒有這個(gè)輸入數(shù)據(jù)文件,就不發(fā)送。如果有數(shù)據(jù),就讀取數(shù)據(jù)到集合中。

        2)連接到服務(wù)器。

        3)向服務(wù)器發(fā)送集合數(shù)據(jù)并等待響應(yīng)結(jié)果。如果響應(yīng)結(jié)果中包含消息OK則說明發(fā)送成功,刪除matched.txt。如果返回ERROR表示發(fā)送失敗,就不能刪除matched.txt。如果異常也不能刪除matched.txt。

        3.5 數(shù)據(jù)采集服務(wù)器端設(shè)計(jì)

        數(shù)據(jù)采集服務(wù)端主要用來接受客戶端發(fā)送過來的日志數(shù)據(jù),由于數(shù)據(jù)要通過網(wǎng)絡(luò)傳輸,服務(wù)器端采用讀取配置文件的方式讀取相關(guān)的初始化配置參數(shù)。設(shè)計(jì)一個(gè)loadConfig()方法負(fù)責(zé)讀取并且初始化服務(wù)器參數(shù)。服務(wù)端主要任務(wù)流程如下:首先讀取配置文件信息,然后開始監(jiān)聽服務(wù)器網(wǎng)絡(luò)端口號(hào),創(chuàng)建緩沖隊(duì)列和線程池。需要設(shè)計(jì)保存文件線程和客戶服務(wù)線程并將線程啟動(dòng)。保存文件線程會(huì)檢查緩沖隊(duì)列,如果有數(shù)據(jù)就追加寫入到logFile。 如果有客戶端連接進(jìn)來,就創(chuàng)建客戶端服務(wù)線程并提交到線程池執(zhí)行??蛻舴?wù)線程在執(zhí)行的時(shí)候,不斷接收用戶提交的數(shù)據(jù)并保存到緩沖隊(duì)列[6-7]。

        3.6 系統(tǒng)界面描述

        數(shù)據(jù)采集系統(tǒng)客戶端在讀取、解析、匹配和發(fā)送數(shù)據(jù)后,還需要將數(shù)據(jù)操作的結(jié)果顯示在界面上以實(shí)現(xiàn)數(shù)據(jù)監(jiān)控,每次操作后,均在頁面上顯示本次操作的結(jié)果。其界面效果如圖4所示。

        圖4 數(shù)據(jù)采集系統(tǒng)客戶端界面Fig.4 Data collection system is the client interface

        數(shù)據(jù)采集系統(tǒng)服務(wù)器端程序?qū)崟r(shí)獲取采集端發(fā)來的數(shù)據(jù)。在得到采集端發(fā)來的數(shù)據(jù)后,保存數(shù)據(jù),并將采集端服務(wù)器的信息顯示在界面上以實(shí)現(xiàn)數(shù)據(jù)監(jiān)控。其界面效果如圖5所示。

        圖5 數(shù)據(jù)采集系統(tǒng)服務(wù)器端界面Fig.5 Data collection system is the server interface

        4 結(jié)束語

        本文闡述了基于C/S模式的電信數(shù)據(jù)采集系統(tǒng)的開發(fā)過程。該系統(tǒng)在Windows操作系統(tǒng)下通過Java語言開發(fā)完成。實(shí)驗(yàn)結(jié)果表明,該數(shù)據(jù)采集系統(tǒng)能夠從大量雜亂的日志數(shù)據(jù)中提取所需要的關(guān)鍵信息并對(duì)這些信息進(jìn)行按規(guī)律整合,最后以GUI圖形界面的方式提供數(shù)據(jù)的瀏覽監(jiān)控顯示功能。極大地方便了后期的數(shù)據(jù)維護(hù)和計(jì)費(fèi)管理。該系統(tǒng)還可以推廣到除電信業(yè)務(wù)以外的其它需要處理大數(shù)據(jù)的場(chǎng)合。比如倉庫的物流管理、企業(yè)的業(yè)績分析、學(xué)校的學(xué)生信息管理等。

        [1]路鵬飛,李進(jìn).在線計(jì)費(fèi)系統(tǒng)中余額分配算法的優(yōu)化[J].計(jì)算機(jī)工程,2011,37(7):282-284.LU Peng-fei,LI Jin.Online billing system balance allocation algorithm in the optimization[J].Computer Engineering,2011,37(7):282-284.

        [2]周如培,馮同鑫.基于CORBA的電信計(jì)費(fèi)系統(tǒng)的研究與開發(fā)[J].計(jì)算機(jī)應(yīng)用研究,2002(8):130-131.ZHOU Ru-pei,F(xiàn)ENG Tong-xin.The research and development of the telecommunication billing system based on CORBA[J].Computer Application Research,2002(8):130-131.

        [3]張友生,李雄.軟件開發(fā)模型研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(3):17-19.ZHANG You-sheng,LI Xiong.Software development model studies reviewed[J].Computer Engineering and Application,2006,42(3):17-19.

        [4]孫衛(wèi)琴.Java面向?qū)ο缶幊蘙M].電子工業(yè)出版社,2006.

        [5]耿祥義.XML基礎(chǔ)教程[M].清華大學(xué)出版社,2006.

        [6]CHEN Zhi-rui,TAN Hong-zhou.Logic structure of programmable instructions for Java[J].Journal of Electronics(China),2009,26(5):44-46.

        [7]Little G,Miller R C.Keyword programming in Java[J].Automated Software Engineering,2009(3):32-35.

        猜你喜歡
        信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        精品少妇一区二区三区免费观| 精品人妻一区二区视频| 亚洲第一区二区精品三区在线 | 欧美激情乱人伦| 亚洲无精品一区二区在线观看| 一色桃子中文字幕人妻熟女作品 | 中文字幕大乳少妇| 久久国产精品免费专区| 中文人妻熟女乱又乱精品| www国产亚洲精品久久网站| 亚洲一区二区三区av在线免费| 亚洲免费福利视频网站| 色噜噜亚洲男人的天堂| 人妻在线日韩免费视频| 亚洲欧美日韩国产精品网| 精品久久精品久久精品| 久久精品中文字幕| 真人二十三式性视频(动)| 久久国产A∨一二三| 激情五月天在线观看视频| 亚洲中文字幕无码中文字| 人人狠狠综合久久亚洲婷婷| 放荡人妻一区二区三区| 国产亚洲av成人噜噜噜他| 曰本人做爰又黄又粗视频| 99精品成人片免费毛片无码| 亚洲一区二区三区麻豆| 久久久久成人精品免费播放动漫 | 精品无码国产一区二区三区麻豆| 最近日本免费观看高清视频| 日韩在线视精品在亚洲| 亚洲国产一区一区毛片a| 欧美亚洲日本国产综合在线美利坚| 国产亚洲日韩一区二区三区| 久久伊人网久久伊人网| 亚洲天堂成人av影院| 日本50岁丰满熟妇xxxx| 国产午夜亚洲精品一级在线| 婷婷开心五月亚洲综合| 97日日碰曰曰摸日日澡| 免费a级毛片在线观看|