Java版QQ項(xiàng)目詳細(xì)設(shè)計(jì)之:概述
前兩天在博客上,發(fā)了一篇博文,概述了java qq設(shè)計(jì)中的幾個(gè)重要的問(wèn)題,及其解決方案,有的人求源代碼,其實(shí)得到源代碼也未必能看懂的詳細(xì)結(jié)構(gòu),原因之一就是代碼太多,二是鄙人的代碼編寫(xiě)水平很有限,所以為方便那些拿到代碼的朋友的閱讀,特此連載詳細(xì)設(shè)計(jì)思路、詳細(xì)設(shè)計(jì)圖、及偽代碼。
今天第一部分寫(xiě)一下概述,今后幾天會(huì)連續(xù)更新出來(lái)其他的。重申:代碼水平有限,肯定會(huì)有設(shè)計(jì)不周及小bug的地方,請(qǐng)大家提提建議或意見(jiàn),勿拍板磚,謝謝
(一)接口
一、外部接口
1、用戶界面
在用戶界面部分,根據(jù)需求分析的結(jié)果,用戶需要一個(gè)用戶友善界面。在界面設(shè)計(jì)上,應(yīng)做到簡(jiǎn)單明了,易于操作,并且要注意到界面的布局,應(yīng)突出的顯示重要以及出錯(cuò)信息。外觀上也要做到合理化,考慮到用戶多對(duì)WINDOW 風(fēng)格較熟悉,應(yīng)盡量向這一方向靠攏。在設(shè)計(jì)語(yǔ)言上,已決定使用 Java se進(jìn)行編程,在界面上可使用Java2 se 所提供的可視化組件,向WINDOWS 風(fēng)格靠近。 其中服務(wù)器程序界面要做到操作簡(jiǎn)單,易于管理。在設(shè)計(jì)上采用下拉式菜單方式,在出錯(cuò)顯示上可調(diào)用Java2 se 庫(kù)中的錯(cuò)誤提示函數(shù)。
總的來(lái)說(shuō),系統(tǒng)的用戶界面應(yīng)作到可靠性、簡(jiǎn)單性、易學(xué)習(xí)和使用
2、軟件接口
服務(wù)器程序可使用Java2 se 提供的對(duì) SQL SERVER 的接口,進(jìn)行對(duì)數(shù)據(jù)庫(kù)的所有訪問(wèn)。服務(wù)器程序上可使用SQL SERVER 的對(duì)數(shù)據(jù)庫(kù)的備分命令,以做到對(duì)數(shù)據(jù)的保存。在網(wǎng)絡(luò)軟件接口方面,使用一種無(wú)差錯(cuò)的傳輸協(xié)議,采用滑動(dòng)窗口方式對(duì)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸及接收。
3、硬件接口
在輸入方面,對(duì)于鍵盤(pán)、鼠標(biāo)的輸入,可用Java2 se的標(biāo)準(zhǔn)輸入/輸出,對(duì)輸入進(jìn)行處理。
在輸出方面,打印機(jī)的連接及使用,也可用Java2 se的標(biāo)準(zhǔn)輸入/輸出對(duì)其進(jìn)行處理。在網(wǎng)絡(luò)傳輸部分,在網(wǎng)絡(luò)硬件部分,為了實(shí)現(xiàn)高速傳輸,將使用高速ATM。
二、內(nèi)部接口
內(nèi)部接口方面,各模塊之間采用函數(shù)調(diào)用、參數(shù)傳遞、返回值的方式進(jìn)行信息傳遞。具體參數(shù)的結(jié)構(gòu)將在下面數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的內(nèi)容中說(shuō)明。接口傳遞的信息將是以數(shù)據(jù)結(jié)構(gòu)封裝了的數(shù)據(jù),以參數(shù)傳遞或返回值的形式在各模塊間傳輸。
(二)運(yùn)行設(shè)計(jì)
一、運(yùn)行模塊的組合
客戶機(jī)程序在有輸入時(shí)啟動(dòng)接收數(shù)據(jù)模塊,通過(guò)各模塊之間的調(diào)用,讀入并對(duì)輸入進(jìn)行格式化。
在接收數(shù)據(jù)模塊得到充分的數(shù)據(jù)時(shí),將調(diào)用網(wǎng)絡(luò)傳輸模塊,將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)送到服務(wù)器,并等待接收服務(wù)器返回的信息。接收到返回信息后隨即調(diào)用數(shù)據(jù)輸出模塊,對(duì)信息進(jìn)行處理,產(chǎn)生相應(yīng)的輸出。
服務(wù)器程序的接收網(wǎng)絡(luò)數(shù)據(jù)模塊必須始終處于活動(dòng)狀態(tài)。接收到數(shù)據(jù)后,調(diào)用數(shù)據(jù)處理/查詢模塊對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),完成后調(diào)用網(wǎng)絡(luò)發(fā)送模塊,將信息返回客戶機(jī)。
運(yùn)行控制運(yùn)行控制將嚴(yán)格按照各模塊間函數(shù)調(diào)用關(guān)系來(lái)實(shí)現(xiàn)。在各事務(wù)中心模塊中,需對(duì)運(yùn)行控制進(jìn)行正確的判斷,選擇正確的運(yùn)行控制路徑。
在網(wǎng)絡(luò)傳方面,客戶機(jī)在發(fā)送數(shù)據(jù)后,將等待服務(wù)器的確認(rèn)收到信號(hào),收到后,再次等待服務(wù)器發(fā)送回答數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行確認(rèn)。服務(wù)器在接到數(shù)據(jù)后發(fā)送確認(rèn)信號(hào),在對(duì)數(shù)據(jù)處理、訪問(wèn)數(shù)據(jù)庫(kù)后,將返回信息送回客戶機(jī),并等待確認(rèn)。
二、出錯(cuò)處理設(shè)計(jì)
1、出錯(cuò)處理對(duì)策
所有的客戶機(jī)及服務(wù)器都必須安裝不間斷電源以防止停電或電壓不穩(wěn)造成的數(shù)據(jù)丟失的損失。若真斷電時(shí),客戶機(jī)上將不會(huì)有太大的影響,主要是服務(wù)器上:在斷電后恢復(fù)過(guò)程可采用 SQL SERVER 的日志文件,對(duì)其進(jìn)行ROLLBACK 處理,對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。
在網(wǎng)絡(luò)傳輸方面,可考慮建立一條成本較低的后備網(wǎng)絡(luò),以保證當(dāng)主網(wǎng)絡(luò)斷路時(shí)數(shù)據(jù)的通信。
在硬件方面要選擇較可靠、穩(wěn)定的服務(wù)器機(jī)種,保證系統(tǒng)運(yùn)行時(shí)的可靠性。
2、安全保密設(shè)計(jì)
不好意思,這一方面做的最差,可以說(shuō)為了進(jìn)度,幾乎完全沒(méi)考慮,請(qǐng)拿到源代碼的朋友完善一下,完善后可以分享一下
3、維護(hù)設(shè)計(jì)
維護(hù)方面主要為對(duì)服務(wù)器上的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行維護(hù)。可使用 SQL SERVER 的數(shù)據(jù)庫(kù)維護(hù)功能機(jī)制。例如,定期為數(shù)據(jù)庫(kù)進(jìn)行Backup,維護(hù)管理數(shù)據(jù)庫(kù)死鎖問(wèn)題和維護(hù)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的一致性等。
本系列博文僅提供設(shè)計(jì)思路,及少量偽碼,詳細(xì)代碼:
http://down.51cto.com/data/353289
原文鏈接:http://wangchangshuai0010.iteye.com/blog/1450308
【編輯推薦】
- Java QQ項(xiàng)目詳細(xì)設(shè)計(jì)之:安全模塊
- Java QQ項(xiàng)目詳細(xì)設(shè)計(jì)之:申請(qǐng)模塊
- Java QQ項(xiàng)目詳細(xì)設(shè)計(jì)之:登錄模塊
- Java版QQ項(xiàng)目詳細(xì)設(shè)計(jì)之:概述