【正文】
是將某個用戶在某一時段內所用機時求和后形成一條記錄。 其他系統(tǒng)說明由于本課題重點設計的后臺數據服務部分,而其它7個功能板塊系統(tǒng)均屬于前臺運營和前臺用戶服務?!『笈_數據服務功能模塊分析 后臺數據服務系統(tǒng)部署圖32 后臺系統(tǒng)部署圖示圖32中,左側3個模塊是用于出租的Unix服務器,在本系統(tǒng)中作為數據采集的客戶端?!『笈_數據服務系統(tǒng)用例分析 客戶端數據采集用例說明用例名稱:數據采集客戶用例簡述:(1)讀取日志文件,并且清空日志;(2)從讀取的數據中解析用戶登錄時間等信息;(3)把解析的用戶登錄時間數據發(fā)送到服務器;(4)如果發(fā)送失敗,就存儲在實驗室上等下次發(fā)送。(3)每月按用戶業(yè)務整合一次用戶登錄時間數據。參與者:系統(tǒng)管理員前置條件:無后置條件:產生整合數據。本課題重點研究后臺數據整合部分,進行了詳細的說明。第4章 系統(tǒng)詳細設計 客戶端數據采集 客戶端數據采集設計類圖圖41 客戶端數據采集類圖在客戶端數據采集板塊中,共涉及5個類和1個接口及其相應的實現類,有類CollectorLanchor,CollectionThread,DataCollector,LogRecord,MatchedRecord,接口CollectionListener,其實現類為LogDeaker。(3)屬性sourcefile 為采集的源的文件名。由于在采集的時候由于用戶正在登錄中,還沒有登出,所以無法處理這種數據,這就是不能匹配成對的數據。(8)屬性serverport 為數據接收服務器的服務端口。在此類中包含的函數如下:圖42 Main函數流程圖(1)Main函數 該函數為客戶端數據采集功能板塊的程序入口,運行之前需要把客戶端的配置文件相關信息按要求正確配置。用戶后臺服務發(fā)起的方式只需要把線程的運行方式改變成循環(huán)就可以。該類主要調用采集器類DataCollector進行數據采集。run函數流程說明:圖43 run函數流程圖(2)start函數 該函數負責啟動線程,來自Thread線程類,該函數繼承自JDK標準類Thread。該類中包含的函數如下:(1)getNativeIP函數 該函數負責讀取要采集服務器的IP地址,該IP值由屬性文件進行配置。該函數的返回值類型為String類型,返回的是采集數據源的備份文件路徑。(4)parseLogBuffer函數 負責解析緩沖的內存結構,利用參數返回兩個Vector結構對象,一個存放登錄數據,一個存放登出數據。參數是存放上次未匹配的登錄日志記錄,返回Vector結構,其中元素類型LogRecord。(6)match函數 負責匹配登錄/登出數據,并返回用戶登錄時間數據。參數是沒有匹配好的登錄記錄,類型是Vector,其中元素類型是LogRecord。該類中有四個屬性,其中user為登陸用戶的用戶登錄名;visittime為用戶登出時間和登錄時間的時間間隔,即為在線時間;userip是登錄用戶的客戶端主機的IP地址,以備擴展程序,用于統(tǒng)計使用用戶的區(qū)域;labip為實驗室服務器的IP地址。該類中擁有6個屬性和其所對應的GETTERS和SETTERS,其中user為登錄用戶名;logintime為用戶登錄時間;logouttime為用戶登出時間;labip為實驗室服務器IP地址;userip為用戶的IP地址;duration為用戶登錄的時長數據。此接口中只包含一個抽象方法deal,是負責對匹配好的數據進行處理。其算法設計的好壞會從某種程度上影響程序質量的好壞。其中,參數ObjectOutputStream為發(fā)送數據的網絡流。如果接收成功返回0,否則是失敗。(7)函數deal 該函數重寫了實現接口中的抽象函數deal,是共有函數?!祿飙h(huán)境參數Port:9999 采集的服務器端口Driver: 數據庫驅動程序類名URL:jdbc:mysql://:3306/netctoss?characterEncoding=gb2312 數據庫連接URL[14]User:root 數據庫連接用戶名Password:meiyou 數據庫連接口令以上參數為默認值,在實際操作中,會提供圖形化界面進行修改?!☆怐ataRecieverTh DataRecieverTh類,服務器接受主線程。還包含如下函數:(1)函數initSocket 負責網絡服務器的初始化。該類繼承Thread。(2)函數getConnection 負責根據連接屬性打開與數據庫的連接,返回類型Connection代表返回一個對數據庫的連接。 泛型類BasicDAOEntityType封裝對數據庫訪問最常用的規(guī)范。函數run負責根據整合規(guī)則,并調用相應的整合函數對數據進行整合。 類IntegrationByCall IntegrationByCall類:整合的存儲過程調用實現,實現Integration接口。(1)函數getIntegrationCallDAO 該函數目前不實現。返回類型Integration,就是整合對象。(1)函數getConnection 從連接池中獲取一個連接,在目前版本中,池的大小固定為1。(3)函數close 負責關閉池中的某個連接,由于目前版本設計一個連接,關閉就直接關閉所有連接,沒有設計參數。(3)函數integratByMonth 負責按用戶進行月整合。需要說明的是整合過程分兩類:根據客戶整合和根據實驗室整合。本章還涉及到數據庫的設計分析,也是本課題的重點之一?!祿茨M實現數據源的模擬實現其實就是一個隨機過程?!∠到y(tǒng)演示設計 系統(tǒng)演示程序設計說明由于本課題的程序設計的最終實現需要多臺采集點客戶端和一臺服務器?!≌n題說明圖51 課題說明課題說明這一界面也相當于一個歡迎界面,顯示了一些本可以的設計內容和基本要求等。為了避免因為使用中文數據而造成亂碼問題,同時需要設計數據庫的字符集,我們采用的GB2312字符集。圖53 數據源模擬 采集服務器端圖54 采集服務器端首先,設計屬性值,并保存修改?!祿宵c擊運行數據整合端,程序會自動調用“”程序,程序的整合包括兩部分:根據客戶整合和根據實驗室整合。圖形化演示界面較為直觀,操作順序為:創(chuàng)建數據庫及數據表模擬產生數據源開啟采集服務器端開啟采集客戶端采集數據數據整合。其次,除了JAVA語言之外,還學習了UNIX操作系統(tǒng)知識、UML設計知識、MySQL數據庫基礎和SQL語言。另外,完成客戶端數據采集、服務器端數據采集和數據整合三個功能板塊的類圖。對本系統(tǒng)進行數據庫設計,完成數據庫和數據表的創(chuàng)建。張老師敏銳的學術洞察力、嚴謹求實的治學作風、扎實勤勉的工作態(tài)度,無私奉獻的精神時刻激勵著我刻苦鉆研、認真完成研究工作。除此之外,盧教授針對以后的生活工作方面給予了很多指導和心理輔導。電信計費系統(tǒng)的建設初期,由于計算機硬件性能的限制,軟件開發(fā)成本和難度的過高,以及電信運營者服務意識和競爭意識的淡漠,只能以自動化為目標,以算費、計帳和收費的簡單功能實現。(2)選題依據和意義本課題主要設計內容是針對電信計費系統(tǒng)當中原始數據采集及整合部分。用戶每次登錄和退出Unix服務器的信息都會被自動保存到一個在線日志文件/var/adm/wtmpx中。整合系統(tǒng) 采集系統(tǒng)定時將用戶使用服務器的數據存入到了數據庫中,但這些數據都是流水賬的數據,是用戶每次使用UNIX操作系統(tǒng)的用時。四、研究工作進度1 — 4周資料準備,學習java的基本語法及API的使用學習面向對象的思想和編程技巧,學習使用ROSE工具,進行項目分析5 — 8周學習圖形開發(fā)、多線程開發(fā)、SOCKET編程等學習MYSQL、JDBC等數據庫相關知識,并進行數據庫規(guī)劃9 — 12周系統(tǒng)的詳細設計,以及功能更板塊的劃分,用例分析13 — 16周系統(tǒng)的編碼實現,以及編碼后的演示和調試17 — 18周編寫畢業(yè)論文五、主要參考文獻1 呂國英.電信重組將加速電信運營支撐系統(tǒng)全面升級.IT時代周刊,2008, (14)2 李方村.下一代電信運營與支撐.移動通信,2008,(21)3 吳建,鄭潮.UML基礎與Rose建模案例.人民郵電出版社,20074 國剛,周峰,孫更新.UML與RationalRose2003軟件工程統(tǒng)一建模原理與實踐教程.電子工業(yè)出版社,20075 Ellie Quigley.UNIX SHELL范例精解.李化,張國強譯.清華大學出版社,20076 Cay S. Horstmann, Gary Cornell.JAVA core volume II advantage features. 20087 Kenneth L Calvert, Michael J Donahoo.Java TCP/IP Socket Program.2008六、指導教師意見指導教師簽字: 年 月 日 七、系級教學單位審核意見審查結果: □ 通過 □ 完善后通過 □ 未通過負責人簽字: 年 月 日 附錄2本科畢業(yè)設計(論文)文獻綜述課題名稱: 基于JAVA開發(fā)的電信IP計費系統(tǒng) 學院(系): 里仁學院電子工程系 年級專業(yè): 電信054班 學生姓名: 指導教師: 完成日期: 2009年4月1日 一、課題國內外現狀電信計費系統(tǒng)經歷了從人工到自動的進程,計費系統(tǒng)正從初級走向高級、從分散處理走向集中處理,關于計費系統(tǒng)的建設也已經逐步形成一整套完整的理論。集中式系統(tǒng)的優(yōu)勢在于:整個電信計費系統(tǒng)從系統(tǒng)設計、技術實現、平臺和開發(fā)工具的選定、業(yè)務流程和管理模式等方面具有高度的統(tǒng)一性和規(guī)范性,能夠非常靈敏地響應市場變化,能夠以統(tǒng)一的立場為用戶提供服務。二、研究主要成果 電信計費系統(tǒng)實時性的建設:由于交換機與計算機接口技術的不一致性或由于交換機型復雜,操作難度大等問題的限制,計費系統(tǒng)初期基本采用磁帶脫機處理方式,一個月脫一次或數次磁帶。電信計費系統(tǒng)的綜合性的建設:隨著智能、增值業(yè)務、數據多媒體業(yè)務以及Internet業(yè)務的出現,計費系統(tǒng)從單一業(yè)務正向具備綜合業(yè)務的計費系統(tǒng)轉移。其次,計費系統(tǒng)需要充分考慮人性化設計,尤其用戶的自服務系統(tǒng)。而與此相反,庫的創(chuàng)建者必須能自由地進行修改與改進,同時保證客戶程序員代碼不會受到那些變動的影響。對于一個數據成員,庫的創(chuàng)建者怎樣才能知道哪些數據成員已受到客戶程序員的訪問呢?若方法屬于某個類唯一的一部分,而且并不一定由客戶程序員直接使用,那么這種痛苦的情況同樣是真實的。這種訪問控制的級別在“最大訪問”和“最小訪問”的范圍之間,分別包括:public,“友好的”(無關鍵字),protected以及private。然而,組件庫以及控制誰能訪問那個庫的組件的概念現在仍不是完整的。這樣才能理解訪問指示符的完整含義。所以現在要么指定完整名稱“”(可省略import語句),要么簡單地指定一個“Vector”(因為import是默認的)。之所以要進行這樣的導入,是為了提供一種特殊的機制,以便管理“命名空間”(Name Space)。正是由于存在名字潛在的沖突,所以特別有必要對Java中的命名空間進行完整的控制,而且需要創(chuàng)建一個完全獨一無二的名字,無論因特網存在什么樣的限制。為Java創(chuàng)建一個源碼文件的時候,它通常叫作一個“編輯單元”(有時也叫作“翻譯單元”)。那個編譯單元剩下的類(如果有的話)可在那個包外面的世界面前隱藏起來,因為它們并非“公共”的(非public),而且它們由用于主public類的“支撐”類組成。但那并不是Java的工作方式。每個文件都有一個public類(并沒強迫使用一個public類,但這種情況最很典型的),所以每個文件都有一個組件。該語句的作用是指出這個編譯單元屬于名為mypackage的一個庫的一部分。例如。另一個辦法則是指定完整的名稱: m = new ()。A primary consideration in objectoriented design is “separating the things that change from the things that stay the same.”This is particularly important for libraries. Users (client programmers) of that library must be able to rely on the part they use, and know that they won’t need to rewrite code if a new version of the library es out. On the flip side, the library creator must have the freedom to make modifications and improvements with the certainty that the client code won’t be affected by those changes.This can be achieved through convention. For example, the library programmer must agree to not remove existing methods when modifying a class in the library, since that would break the cl