電信寬頻運營採集系統專案總結
進行了為其五天的電信寬頻運營支撐系統的 專案實踐,收穫頗豐。上午無事來總結一下整個專案,以便後期學習時可做參考。
整個專案分了三大塊,客戶端、伺服器端和資料庫。客戶端分了五大模組,伺服器端分了五大模組,資料庫端只用了建表、插入資料(圖1-1)。
可以看到的是客戶端與服務
器端只有一個模組的不同,採集
模組與入庫模組的不同,這就是
架構精妙的好處了,深刻了解。
接下來說一下整個程式的正
常流程:
1、啟動伺服器端配置
模組,將五大模組配置完畢,然
後等待客戶端的接入。
2、啟動客戶端配置模組,將五大
模組配置完畢,呼叫採集模組開始採集資訊,
採集結束將正常上下線使用者資訊傳回呼叫方法處,未下線使用者做備份處理。
3、客戶端呼叫網路模組中的傳送方法,將資訊傳送到伺服器端。
4、伺服器端接收到客戶端連線,開始接收客戶端傳來的資訊,處理資訊,呼叫入庫模組,存入資料庫。大功告成。
專案重點:將JDBC、資料庫、TCP/IP協議通訊、IO流、反射等等很多舊知識完美的融入了整個專案,回顧了舊的知識,還學習了日誌Logger、動態代理等新知識。
專案難點:
1、配置模組中的兩句程式碼(圖1-2):
數了很久兩句話涉及的知識點有:反射、例項化、多型、動態代理、型別轉換、propertity、靜態變數等知識。(高內聚低耦合(感謝於同學提出)?暫打問號)
很多同學不理解這兩句話,在這裡詳細的解釋一下免得我以後也忘記。
先說一下背景知識:classpath是六個模組的類地址,Wossdule是六個模組的父類,Wossmodule類中有init方法,方法需要傳一個Properties物件,用來初始化六個模組的配置資訊。
開始講程式碼,Class.forName(“com.briup.server.ServerImpl”).newInstatance()(這裡以ServerImpl為例),通過反射獲得ServerImpl類,newInstance獲得物件。這裡獲取到的物件我們知道是SetverImpl類的物件,但是java程式不知道啊,認為他是Object型別的,所以強轉成為wossmodule引用的指向物件。編譯期wossmodule看起來是Wossmodule介面的引用,但是在執行期wossdule是六個模組的物件。wossmodule呼叫init方法相當於六個模組的物件都呼叫了init方法來初始化自己的模組。
這樣寫程式碼有什麼好處呢?將所有配置資訊放到一個檔案中,自然是方便查詢,更重要的是方便修改,不用去每個類中去修改各自的配置資訊,結構精妙,服。
收穫:1、日誌模組2、動態代理3、開啟遊標最大值4、Object流5、propertites
6、static變數7、高內聚低耦合8、備份模組
1、日誌模組:日誌模組在專案中只用了error輸出到控制檯,在Log4j中只是冰山一角,做日誌模組以前很認真的讀了log4j的文章,完美的只用到了一句,很氣。大概只是接觸日誌模組的一個開始吧。日誌既可以輸出到控制檯(編譯期很有用),也可以輸出到檔案,通過流傳輸(執行期很有用)。當日志要輸出一個低級別的資料時,會將跟他等級相同和比他等級高的一併輸出(DEBUG < INFO < WARN < ERROR < FATAL)。
首先需要配置log4j,可以配置日誌類別,輸出源,佈局。(老師給的。。)
PropertyConfigurator.configure(“src/com/briup/file/log4j.properties”);
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( ” debug ” );
Logger.登記(“要輸出的資訊”);
New 類名.等級(“要輸出的資訊”);
2、動態代理
與難點所講相同。
3、開啟遊標最大值
這是一個易忽視的點,一個java程式中游標最大值是300,而你建立一個Statement就意味著打開了一個遊標。我想到兩種解決方案:一是在for迴圈之前建立且只建立一個Statement,但我可能在for迴圈中執行此次操作,並沒有完全覆蓋上次的資料,可能造成資料混亂,所以捨棄。二是在每次for迴圈開始時建立一個Statement,結束時關閉。
4、Object流
①、可將實現Serializable 介面的物件寫入流中。
②、writeObject 方法用於將物件寫入流中。所有物件(包括 String 和陣列)都可以通過 writeObject 寫入。
在物件方面確實有不可多得的妙用,銘記於心。
5、Propertites(Map的子類)
以鍵值對中間是“=”儲存的資料;
Put(key,value) 存入檔案
Getproperty(key)取鍵
6、static變數(一直以來都沒記住的555~~)
靜態變數屬於類,在每個物件中都可以使用且不改變。
可以通過類名呼叫靜態變數
程式碼載入到記憶體,靜態變數就存在。
7、高內聚低耦合
整個專案都在貫徹高內聚,低耦合的思想(可臣妾就是做不到~),方法的單一性,不和陌生人通訊等。
8、備份模組
備份模組是帶專案老師忽視的點,但是在胡老師在眼中是跟其他五大模組平起平坐的存在。在專案開始採集時未下線使用者資訊需要備份(需要和下次資料做處理),傳送模組傳送資訊前備份,伺服器端接收到資料備份。你永遠不知道什麼時候系統會崩潰,什麼時候會停電,所以做好資料備份很重要(感謝胡老師)。
感謝潘老師的耐心教導,以及老於分享的高內聚低耦合,家琪分享的靜態知識,汪同學分享的一次專案要做兩份,還有更多同學的貢獻的知識。
相關推薦
電信寬頻運營採集系統專案總結
進行了為其五天的電信寬頻運營支撐系統的 專案實踐,收穫頗豐。上午無事來總結一下整個專案,以便後期學習時可做參考。 整個專案分了三大塊,客戶端、伺服器端和資料庫。客戶端分了五大模組,伺服器端分了五大模組,資料庫端只用了建表、插入資料(圖1-1)。 可以看到的是
淘淘商城分散式電商系統專案總結
淘淘商城是採用分散式架構部署的一個大型網上商城系統,類似於京東商城。本系統分前臺系統和後臺系統。前臺系統主要負責商城的頁面的顯示功能,這裡採用的面向服務的方式,pc端手機端只負責顯示頁面,業務邏輯都在服務層實現,客戶端呼叫服務端介面來實現顯示功能。 在前臺系統中主要分為:客戶端:系統前臺頁面顯示系
學生系統專案總結
在mapper所對應的xml檔案中,有兩個小坑 1.在resultMap所中,如果有一對一或者一對多查詢,那麼column所對應的值一定不能一樣,否則會導致只能掃描到第一個同名的欄位。解決方法有兩種:一個是在建資料庫表的時候就儘量避免相同的欄位,另一個就是起別名。 2.沒有resultMap的時候,返回值型
taotao電商系統專案總結
概述:淘淘商城是採用分散式架構部署的一個大型網上商城系統,類似於京東商城。本系統分前臺系統和後臺系統。前臺系統主要負責商城的頁面的顯示功能,這裡採用的面向服務的方式,pc端手機端只負責顯示頁面,業務邏輯都在服務層實現,客戶端呼叫服務端介面來實現顯示功能。在前臺系統中主要分為:
電信寬帶運營支撐系統
接收 arch 客戶 ble 流程 鏈接 ora 任務 封裝對象 電信寬帶運營支撐系統(電信采集) 流程:用戶---NAS---AAA---log文件 任務:log文件內容---解析---封裝對象---服務器---入庫(---網上營業廳) 技術:java(io、
NodeJS簡易部落格系統(九)後臺管理實現及專案總結
功能描述及流程在上一篇已經說明,現在來寫具體實現過程。 一、頁面實現 (1)模板 首頁模板main_template.html <!DOCTYPE html> <html lang="en"> <head> <
“面對面”app及員工管理系統---第一個java專案總結
個人層面 JFinal入門 做了這麼久專案,對JFinal框架似懂非懂,趁這個機會我們來一起深入理解一下。 1.1 JFinal五大組成部分 1.1.1 Controller Controller 是 JFinal 核心類之一,該類作為 MVC 模式中的控制器。基於 J
“供應鏈管理系統”專案階段性總結
本專案已經開發近一個月(2018.11.04開始),個人認為專案進度已經到了70%,基本實現主要的功能模組,後續30%的工作主要是測試+改bug。在這專案中,我負責的流程主要包括但不僅限於:倉庫盤點、門店盤點,門店退貨,門店廢棄、採購、採購退貨。
大資料技術學習筆記之網站流量日誌分析專案:Flume日誌採集系統1
一、網站日誌流量專案 -》專案開發階段: -》可行性分析 -》需求分析
酒店IPTV系統專案開發總結和方案簡介(含語音、監控、直播、點播、回看、酒店服務、客房管理、周邊景點等功能模組)
專案需求 IPTV系統功能定製開發和機房部署,新增酒店服務功能模組(桑拿服務、餐飲服務、房型介紹、衣物清理、客房管理和周邊景點等)。 直播、點播少佔寬頻或不佔寬頻。 支援語音系統接入。 支援監控系統接入和部署。 支援一個IPTV機房對多個酒店進行使用。 解決方案
java專案日誌系統的總結
目錄 日誌系統歸類以及關係 日誌的三個元件 slf4j的使用 專案中構建日誌系統 使用例子 日誌系統歸類以及關係 常用的日誌框架: slf4j、logback 、log4j、log4j2、JUL(java util logging)、jboss-logging、JCL(
訂單系統開發(仿淘寶和美團網) 之 專案總結(降低資料庫併發量)
原文: 訂單系統開發(仿淘寶和美團網) 之 專案總結(降低資料庫併發量) 繼上一篇"訂單系統開發(仿淘寶和美團網) 之 專案總結(一)",這篇部落格重點想說下訂單系統開發的設計和有待優化改進的問題。 上圖是訂單系統資料庫設計比較重要的
國家技能認證-資訊系統專案管理師 知識領域總結
如果想看腦圖請開啟文章底部連結,點選右上角管理過程(十大知識領域)整體管理範圍管理進度管理成本管理質量管理人力資源管理溝通管理干係人管理風險管理採購管理檔案內容(管理領域較重要檔案)專案章程工作說明書專
訂單系統開發(仿淘寶和美團網) 之 專案總結(一)
基於公司戰略的調整和開發框架的升級換代,也伴隨著SOP(面向服務程式設計)和SOA(面向服務架構)的軟體開發思想在公司開發團隊中的慢慢深入,最終討論決定在將現有(舊)的支撐公司業務的專案模組(如:產品,商家和訂單...)在進行底層架構升級的同時,要讓這個模組在一定程度上可
如何有效的結束專案--對某稅務MIS系統專案的經驗總結
在《人月神話》開始的時候,作者Frederick P. Brooks Jr.寫道:史前史中,沒有別的場景比巨獸們在焦油坑中垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛獁象、劍齒虎在焦油中掙扎。他們掙扎的越猛烈,焦油糾纏的就越緊,沒有任何猛獸足夠強壯或具有足夠的技巧,能夠掙脫
安卓收銀系統小票印表機資料採集外掛專案需求文件
建立時間 2017-12-12 1 引言 1.1專案背景 針對線上消費與線下消費界線逐漸模糊的商業消費現狀,我們團隊提出“以輕量的方式接入實體商業,採集全面的線下消費資料,建立共享的線下會員體系。”並針對如何採集線下消費資料進行設計。 1.2參考材
hbuilder專案總結:區分手機是Android系統還是ios系統
var btnArray = [{ title: “登出當前賬號” }, { title: “直接關閉應用”
【基於WPF+OneNote+Oracle的中文圖片識別系統階段總結】之篇一:WPF常用知識以及本專案設計總結
【小記】:大膽嘗試才能突破,某個中醫藥大學有一批圖片需要處理(ORC),然後進行資料探勘。之前沒有接觸過ORC這個東西,但是還是應允了。在網上搜索一番,關於中文圖片識別,最終敲定為基於微軟的OneNote,其識別率相對較高。網上這個技術點的資料真心不多,後來於部落格園找到一篇博文,但是那個
sEMG專案總結(4)康復手上位機系統
康復手上位機系統 目錄 1串列埠通訊 %%主函式:註釋說明和視窗初始化 function varargout = serial_communication2(varargin) gui_Singleton = 1; gui_State
專案總結—校園辦公管理系統(SSM框架搭建)
登入頁面 學以致用,學習完SSM框架之後,獨立完成一個小院辦公管理系統,熟悉框架的開發流程,熟悉專案的開發流程,完成一個簡單的校園辦公管理系統,下圖是自己畫的UML圖,實現相關功能。 開發環境:Windows + Tomcat 開發工具:My