




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于TCP/UDP協(xié)議的局域網(wǎng)即時通信工具的設(shè)計與實現(xiàn)摘 要隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,各種各樣基于網(wǎng)絡(luò)的應(yīng)用也隨之誕生,比如基于互聯(lián)網(wǎng)的信息發(fā)布,通信,數(shù)據(jù)共享等等。局域網(wǎng)的發(fā)展也同樣迅速。很多政府機構(gòu),企業(yè),學(xué)校,都是先以一個統(tǒng)一的局域網(wǎng)聯(lián)結(jié)在一起,再分別接入INTERNET.因此基于局域網(wǎng)的即時通信工具,就這樣應(yīng)運而生了。隨著信息技術(shù)的發(fā)展,即時通信(Instant Message)軟件應(yīng)運而生,即時通信工具讓我們沖破了地域的界限,隨時隨地和各地的朋友溝通聯(lián)系,它們已經(jīng)成為新時代人們生活和工作中不可缺少的伙伴!即時通信(Instant Message),由于其具有實時性、跨平臺行、成本低、
2、效率高等優(yōu)點而受到廣泛的使用。設(shè)計并實現(xiàn)一個能夠處理多用戶進行實時、安全的即時通信工具具有較強的現(xiàn)實意義。本文設(shè)計并實現(xiàn)了基于局域網(wǎng)的簡單即時通信系統(tǒng),系統(tǒng)采用C/S模式,底層通信公告SOCKET套接字接口實現(xiàn),服務(wù)器負責(zé)客戶端的登錄驗證,好友信息的保存和消息的發(fā)送。客戶端采用點對點方式實現(xiàn)消息傳遞,并能實現(xiàn)文件的傳輸。本系統(tǒng)基于JAVA,使用Eclipse等作為開發(fā)工具完成即時通信系統(tǒng)的設(shè)計。關(guān)鍵詞:局域網(wǎng) 即時通信 文件傳輸 TCP協(xié)議 UDP協(xié)議 The Design and Implementation of Simple Instant Message Software Based
3、on TCP/UDP Protocol Abstract Along with the high-speed development of the computer network technology, various of applications based on network was born, like information releasing, data sharing . The development of the LAN is the same fast. Some governments, enterprises and schools constitute a LAN
4、 first ,then join into INTERNET. So the instant messenger in LAN was borned. With the development of information technology, instant messaging ( Instant Message ) emerge as the times require software, instant communication tools allow us to break geographical boundaries, whenever and wherever possib
5、le and friends from all over the communication link, which has become a new era of people living and working in an indispensable partner! Instant messages have several advantages such as real-time, cross-platform, cheap and efficient. To design a Multi-user IM (instant message) architecture is very
6、important in both theory and realism. The system uses the client/server(C/S) mode. The server takes the responsibility of the login message of client, the saving of friend message and Message heartbeat. The transmission of the basic messages of the customer end will be designed on P2P architecture.
7、The system is based on JAVA, using Eclipse as a development tool to complete the instant communication system design.Key words: Local area network; Instant Message; File Transfer; TCP protocol;UDP protocol目 錄摘 要1The Design and Implementation of Simple Instant Message Software Based on TCP/UDP Protoc
8、ol2第一章 緒論41.1 研究背景及研究意義41.2 即時通信的基本知識51.3 TCP與UDP的相關(guān)知識6第二章 相關(guān)工具及技術(shù)介紹72.1 系統(tǒng)開發(fā)環(huán)境72.2 系統(tǒng)開發(fā)所用工具82.2.1 Eclipse的簡介及運用82.2.2 Java的簡介及運用8第三章 系統(tǒng)需求分析與總體設(shè)計93.1 即時通信工具需求分析93.2 性能分析103.3 系統(tǒng)設(shè)計的目標103.4 系統(tǒng)功能模塊設(shè)計11第四章 數(shù)據(jù)庫設(shè)計114.1 數(shù)據(jù)庫的基本概念114.2 概念結(jié)構(gòu)設(shè)計124.3 邏輯結(jié)構(gòu)設(shè)計144.4 物理結(jié)構(gòu)設(shè)計15第五章 系統(tǒng)詳細設(shè)計與實現(xiàn)165.1 用戶管理165.1.1 新建用戶模塊165.
9、1.2 登錄模塊165.1.3 刪除好友模塊175.2 用戶登錄獲取信息模塊175.3 查找用戶模塊175.4 添加好友模塊185.5 建群模塊185.6 即時聊天模塊195.6.1 文件傳輸模塊195.6.2 語音聊天模塊19結(jié) 束 語20致 謝21參考文獻22第一章 緒論在網(wǎng)絡(luò)飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各方面發(fā)揮著重要的作用?;ヂ?lián)網(wǎng)上存在大量的信息,人與人之間的溝通、信息交換顯得尤為重要。人們一直在尋找一種方便、低廉的交流信息工具,因此網(wǎng)上聊天便成為人們的首先,而一個好的的即時通信工具是操作簡單、方便,界面美觀大方、人性化、
10、節(jié)約系統(tǒng)資源。一個好的即時通信工具不僅僅是方便了人們的生活,同時也給企業(yè)帶來了商業(yè)利益,很多事情都可以通過進行聊天而解決、通過服務(wù)器的消息傳輸讓用戶能夠很快的獲取信息,節(jié)約了時間也創(chuàng)造了更多的利益。1.1 研究背景及研究意義 隨著社會經(jīng)濟技術(shù)的發(fā)展,即時通信在全球的應(yīng)用越來越廣泛,從以前最開始的簡單通信到現(xiàn)在視頻聊天、查資料、看電視等功能的應(yīng)用,即時通信已經(jīng)成為人們生活當中必不可少的一部分,即時通信不僅僅應(yīng)用到生活當中,影響著人們的一切,而且現(xiàn)在也應(yīng)用到各個領(lǐng)域影響著整個世界。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,即時通信正在成為在線活動中不可或缺的業(yè)務(wù),即時通信軟件不僅僅只限于用戶間的聊天活動,運營商已經(jīng)開始
11、利用即時通信平臺不斷地進行業(yè)務(wù)的擴張和整合,充分的運用到整個企業(yè),整個社會當中,而即時通信軟件的誕生也給企業(yè)的管理帶來了新的思路和手段,推動了企業(yè)工作效率的提高,降低了辦公費用,引起了工程應(yīng)用領(lǐng)域的研究熱潮。即時通信的實時交互、低廉資費、方便快捷讓其成為繼電話、郵件等通訊工具之后的又一個充分融入現(xiàn)代企業(yè)溝通的互聯(lián)網(wǎng)工具。但是任何事務(wù)在發(fā)展的同時也必然會帶來各方面的問題,比如最常見的安全問題,即時通信的優(yōu)點就是能夠?qū)崟r交互,馬上能夠知道對方的一切,然而這樣也很容易照成安全隱患問題,一旦沒有做好加密、防火墻工作,數(shù)據(jù)、資料等就很很容易遭到泄露,被惡意篡改、竊聽,從而導(dǎo)致對方收到的信息是錯誤的,這樣
12、也會給工作、生活等方面帶來困難。 所以當前,研究網(wǎng)絡(luò)即時通信系統(tǒng)是當今網(wǎng)絡(luò)編程方面的一個熱門課題。即時通信正成為在線活動中不可或缺的業(yè)務(wù)。小至個人、企業(yè)大至國家、世界,演化著即時通信的飛速變化,日益改變豐富著人們的生活。而在經(jīng)濟技術(shù)日益發(fā)展的情況下,對即時通信的需求也越來越迫切,所以在此前提下,就急需一種兩全其美的解決方案。 1.2 即時通信的基本知識隨著信息技術(shù)的發(fā)展,即時通信(IM)軟件應(yīng)運而生,即時通信工具讓我們沖破了地域的界限,隨時隨地和各地的朋友溝通聯(lián)系,它們已經(jīng)成為新時代人們生活和工作中不可缺少的伙伴!即時通信(IM)是指能夠即時發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù)。1998年即時通信的功
13、能日益豐富,逐漸集成了電子郵件、博客、音樂、電視、游戲和搜索等多種功能。即時通信不再是一個單純的聊天工具,它已經(jīng)發(fā)展成集交流、資訊、娛樂、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合化信息平臺。隨著移動互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)即時通信也在向移動化擴張。目前,微軟、AOL、Yahoo等重要即時通信提供商都提供通過手機接入互聯(lián)網(wǎng)即時通信的業(yè)務(wù),用戶可以通過手機與其他已經(jīng)安裝了相應(yīng)客戶端軟件的手機或電腦收發(fā)消息。即時通信是一個基于局域網(wǎng)平臺而設(shè)計的系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立、維護以及前端應(yīng)用程序的開發(fā)兩個方面。前者要求建立起數(shù)據(jù)一致性、完整性、安全性高的庫,后者則要求應(yīng)用程序功能完備,
14、能夠題供前臺順利運行,易使用等特點。即時通信具有:管理員設(shè)置客戶端的單位組織結(jié)構(gòu)信息;客戶端不需自行添加聯(lián)系人;聯(lián)系人之間能夠發(fā)送消息;聯(lián)系人之間能夠互相傳送文件;管理員能夠建立現(xiàn)了人分組,加入分組后的聯(lián)系人允許互相通信;分組成員之間可以群發(fā)消息等功能。1.3 TCP與UDP的相關(guān)知識Java網(wǎng)絡(luò)編程中有兩種不同的通訊協(xié)議,分別是TCP(面向連接)與UDP(面向無連接),兩種協(xié)議各有優(yōu)缺點。TCP:是Tranfer Control Protocol的簡稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過TCP協(xié)議傳輸,得到的是一個順序的無差錯的數(shù)據(jù)流。發(fā)送方和接收方的成對的兩個socket之間必須建立
15、連接,以便在TCP協(xié)議的基礎(chǔ)上進行通信,當一個socket(通常都是server socket)等待建立連接時,另一個socket可以要求進行連接,一旦這兩個socket連接起來,它們就可以進行雙向數(shù)據(jù)傳輸,雙方都可以進行發(fā)送或接收操作。 UDP:是User Datagram Protocol的簡稱,是一種無連接的協(xié)議,每個數(shù)據(jù)報都是一個獨立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內(nèi)容的正確性都是不能被保證的。其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務(wù)包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。通過
16、面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。通俗說,它是事先為所發(fā)送的數(shù)據(jù)開辟出連接好的通道,然后再進行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性、流控或差錯恢復(fù)功能。一般來說,TCP對應(yīng)的是可靠性要求高的應(yīng)用,而UDP對應(yīng)的則是可靠性要求低、傳輸經(jīng)濟的應(yīng)用。TCP支持的應(yīng)用協(xié)議主要有:Telnet、FTP、SMTP等;UDP支持的應(yīng)用層協(xié)議主要有:NFS(網(wǎng)絡(luò)文件系統(tǒng))、SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)、DNS(主域名稱系統(tǒng))、TFTP(通用文件傳輸協(xié)議)等。第二章 相關(guān)工具及技術(shù)介紹2.1 系統(tǒng)開發(fā)環(huán)境由于日趨發(fā)展的信息技術(shù),對通信工具的要求也逐漸提高,而快速的成長當中帶來的影響也是深遠的,那么如何在這樣
17、的環(huán)境下設(shè)計一個安全系數(shù)高、方便快捷的通信工具呢,這就是本系統(tǒng)所要解決的問題。實現(xiàn)局域網(wǎng)用戶之間的即時交流與文件傳輸,建立網(wǎng)絡(luò)即時通信安全機制,保證信息傳送的及時性和安全性。本系統(tǒng)采用基于java平臺的Eclipse工具來設(shè)計并實現(xiàn)這一通信工具的設(shè)計與實現(xiàn)。2.2 系統(tǒng)開發(fā)所用工具2.2.1 Eclipse的簡介及運用Eclipse是一種基于 Java 的可擴展開源開發(fā)平臺。就其自身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括為人熟知的 Java 開發(fā)工具(Java Development Tools,JDT)。雖然大多數(shù)
18、用戶很樂于將 Eclipse 當作 Java 集成開發(fā)環(huán)境(IDE)來使用,但Eclipse的目標卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它
19、的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插件已經(jīng)可用,或預(yù)計將會推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。更舒服的是,利用Eclipse中的MyEclipse插件來搭建一個動態(tài)JSP程序,快速,簡單、方便。2.2.2 Java的簡介及運用技術(shù)上采用sun公司的java語言,該語言有很多有點,比如多線程、網(wǎng)絡(luò)流概念、異常捕獲處理、安全性以及速度與性能等方面,并且具有可以一次編寫、到處運行的跨平臺優(yōu)點。多線程:多線程是這樣一種機制,它允許在程序中并發(fā)執(zhí)行多個指令流,每個指令流都稱為一個線程,彼此間互
20、相獨立,線程又稱為輕量級進程,多線程技術(shù)允許你在一個應(yīng)用程序中啟動多個執(zhí)行輕量程序,使多段程序同時競爭CPU資源,從而提高系統(tǒng)效率。而對于網(wǎng)絡(luò)通訊工具來說,多線程的特性是必須的,不僅是為了效率,而且可以實現(xiàn)同時處理多個請求。網(wǎng)絡(luò)流:java中的網(wǎng)絡(luò)通訊以及文件的讀取都是以一種流的概念來理解的,這樣,網(wǎng)絡(luò)上數(shù)據(jù)的傳輸其實就等同于看成一臺機器上文件的讀取,有利于理解與編寫運用程序,java類庫中提供了豐富的IO流類資源以及網(wǎng)絡(luò)編程類資源,軟件開發(fā)人員可以很方便的編寫網(wǎng)絡(luò)應(yīng)用程序。例外處理:Java通過面向?qū)ο蟮姆椒▉硖幚砝?。在一個方法的運行過程中,如果發(fā)生了例外,則這個方法生成代表該例外的一個對
21、象,并把它交給運行時系統(tǒng),運行時系統(tǒng)尋找相應(yīng)的代碼來處理這一例外。我們把生成例外對象并把它提交給運行時系統(tǒng)的過程稱為拋棄(throw)一個例外。運行時系統(tǒng)在方法的調(diào)用棧中查找,從生成例外的方法開始進行回朔,直到找到包含相應(yīng)例外處理的方法為止,這一個過程稱為捕獲(catch)一個例外。所以,java的例外處理使非常方便的??缙脚_:Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用模式Java虛擬
22、機屏蔽了與具體平臺相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。第三章 系統(tǒng)需求分析與總體設(shè)計3.1 即時通信工具需求分析伴隨著當今互聯(lián)網(wǎng)的迅速發(fā)展,人們之間的信息交互的實時性能變得越來越重要,傳統(tǒng)的電子郵件交互已經(jīng)不能夠滿足人們的即時通訊要求,鑒于此種情況打算開發(fā)出一款類似于騰訊QQ的即時通訊軟件,只要經(jīng)過注冊你便可以獲取一個帳號,通過該帳號你可以在客戶端登陸,成功登錄后便可以在互聯(lián)網(wǎng)上與你的親朋好友進行暢談,由于技術(shù)和時間問題,該軟件主要提供私聊
23、、群聊、好友管理、群管理等常用功能,其它一些功能比如文件傳輸、語音聊天和視頻聊天等功能,由于技術(shù)問題暫時沒有實現(xiàn),可以在該系統(tǒng)的基礎(chǔ)上實現(xiàn)這些功能,也可以在此基礎(chǔ)上進行更多功能的擴展。3.2 性能分析作為一個簡單安全的溝通通信平臺,安全及時通信系統(tǒng)需要保證數(shù)據(jù)通信的即時性以及通信過程和信息存儲的安全性,為使用者提供信息安全保證,同時減少系統(tǒng)資源的消耗,保證系統(tǒng)運行的速率。 1.數(shù)據(jù)通信完整和可靠性:即時通信亦即用戶間能實時發(fā)送和接收各種信息,包括文本通信和文件傳輸,其中保證數(shù)據(jù)的可到達性,保證數(shù)據(jù)解讀的正確性,防止數(shù)據(jù)丟失和數(shù)據(jù)錯位,從而保證消息傳達的可靠性。 2.通信安全性:通信安全是指保證
24、客戶之間傳送消息和文件的安全,防止數(shù)據(jù)在傳輸過程中遭泄密、竊密或被篡改數(shù)據(jù)。 3.通信效率和公平性:這主要體現(xiàn)在服務(wù)器端。服務(wù)器需要同時處理所有用戶發(fā)送的各類信息,并且需要完成數(shù)據(jù)庫存儲、讀取、更新等操作。需要采用適當?shù)姆椒ㄌ岣叻?wù)器接受、解讀、處理和發(fā)送數(shù)據(jù)的效率,在指定時間呃逆完成需要的通信量,提高系統(tǒng)的即時通信性能,通信保證數(shù)據(jù)處理的公平性,保證各客服端的信息能夠被及時響應(yīng)和處理。 4.系統(tǒng)可控性:系統(tǒng)可控性是指系統(tǒng)運行期間完成數(shù)據(jù)存儲、數(shù)據(jù)庫備份、系統(tǒng)故障恢復(fù)等任務(wù)的性能,包括用戶注冊管理、登陸管理、客戶端運行過程中監(jiān)控等模塊的設(shè)計。防止重要數(shù)據(jù)的丟失或被篡改,提高系統(tǒng)的運行可靠性,增
25、強系統(tǒng)使用者的信心。 5.系統(tǒng)穩(wěn)定性能:系統(tǒng)穩(wěn)定性包括系統(tǒng)在高通信強度下是否能夠正常、及時低處理各客服端的請求和信息,系統(tǒng)在長時間工作狀態(tài)下是否會出現(xiàn)異常以及系統(tǒng)容錯性能等。防止系統(tǒng)崩潰和程序退出,同時降低程序運行中CPU等資源的消耗。3.3 系統(tǒng)設(shè)計的目標 本課題目標是實現(xiàn)局域網(wǎng)用戶之間的即時交流與文件傳輸?shù)?,通過基礎(chǔ)的網(wǎng)絡(luò)SOCKET編程,為局域網(wǎng)內(nèi)部的即時通信提供一個簡單而較安全的解決方案。3.4 系統(tǒng)功能模塊設(shè)計該系統(tǒng)主要包括三層,客戶端,服務(wù)器端,以及數(shù)據(jù)庫服務(wù)器,客戶端用來提供用戶的登錄,服務(wù)器端用來對登錄的用戶進行管理以及用來處理信息之間的轉(zhuǎn)發(fā),數(shù)據(jù)庫服務(wù)器主要存放一些重要的信息
26、。它們之間的關(guān)系如下圖所示:客戶端服務(wù)器數(shù)據(jù)庫服務(wù)器根據(jù)上述需求的描述,對該系統(tǒng)按照功能進行了模塊的細化,主要包括注冊登錄、好友聊天、好友組管理、群聊天4個模塊,還有很多其它小模塊,這4個模塊是實現(xiàn)該系統(tǒng)的核心模塊,模塊之間的耦合程度非常低,其中注冊模塊是通過B/S結(jié)構(gòu)來實現(xiàn),不需要安裝客戶端。下圖是上述的4個重要模塊的用例交互圖。第四章 數(shù)據(jù)庫設(shè)計4.1 數(shù)據(jù)庫的基本概念數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理的最新技術(shù),是計算機科學(xué)技術(shù)中發(fā)展最快的領(lǐng)域之一,也是應(yīng)用最廣的技術(shù)之一。它已成為各行各業(yè)存儲數(shù)據(jù)、管理信息、共享資源的最先進最常用的技術(shù)。數(shù)據(jù)庫,簡單地說就是數(shù)據(jù)的倉庫,即數(shù)據(jù)存放的地方。數(shù)據(jù)庫系統(tǒng)(d
27、atabase systems),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。它是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理的核心機構(gòu)。它是一個實際可運行的存儲、維護和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。數(shù)據(jù)庫系統(tǒng)DBS(Data Base System,簡稱DBS)是一個實際可運行的存儲、維護和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。它通常由軟件、數(shù)據(jù)庫和數(shù)據(jù)管理員組成。其軟件主要包括操作系統(tǒng)、各種宿主語言、實用程序以及數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,數(shù)據(jù)的插入、修改和檢索均要通過數(shù)據(jù)庫管理系統(tǒng)進行。數(shù)據(jù)管理員負責(zé)
28、創(chuàng)建、監(jiān)控和維護整個數(shù)據(jù)庫,使數(shù)據(jù)能被任何有權(quán)使用的人有效使用。4.2 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計就是對信息世界進行建模,常用的概念模型是E-R模型,它是P.P.S.Chen于1976年提出來的。概念結(jié)構(gòu)設(shè)計的任務(wù)是在需求分析階段產(chǎn)生的需求說明書的基礎(chǔ)上,按照特定的方法把它們抽象為一個不依賴于任何具體機器的數(shù)據(jù)模型,即概念模型。概念模型使設(shè)計者的注意力能夠從復(fù)雜的實現(xiàn)細節(jié)中解脫出來,而只集中在最重要的信息的組織結(jié)構(gòu)和處理模式上。而這樣做有三個好處:(1)從邏輯設(shè)計中分離出概念設(shè)計以后,各階段的任務(wù)相對單一化,設(shè)計復(fù)雜程度大大降低,便于組織管理。(2)概念模型不受特定的DBMS的限制,也獨立于存儲
29、安排和效率方面的考慮,因而比邏輯模型更為穩(wěn)定。(3)概念模型不含具體的DBMS所附加的技術(shù)細節(jié),更容易為用戶所理解,因而更有可能準確反映用戶的信息需求。概念模型在數(shù)據(jù)庫的各級模型中的地位如圖所示:應(yīng)用1 應(yīng)用1 應(yīng)用2 應(yīng)用3外模式3外模式2應(yīng)用要求外模式1 映像概念模 式應(yīng)用2 應(yīng)用要求 概念模式 映像應(yīng)用3 轉(zhuǎn)換物理模式綜合應(yīng)用要求 (a) (b) 概念結(jié)構(gòu)設(shè)計的特點(1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。(2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計成功的關(guān)鍵。(3)易于更
30、改,當應(yīng)用環(huán)境和應(yīng)用要求改變時,容易對概念模型修改和擴充。(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)設(shè)計的方法:設(shè)計概念結(jié)構(gòu)的E-R模型可采用以下四種方法(1)自頂向下:首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化(2)自底向上:首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)(3)逐步擴張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)(4)混合策略:將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。概念結(jié)構(gòu)設(shè)計的步驟:以自底向上設(shè)計方法為例進
31、行數(shù)據(jù)抽象,設(shè)計局部E-R模型,即設(shè)計用戶試圖。集成格局部E-R模型,形成全局E-R模型,即視圖集成。以局部E-R模型設(shè)計為例:數(shù)據(jù)抽象后得到了實體和屬性,實際上實體和屬性是相對而言的,往往要根據(jù)實際情況進行必要的調(diào)整。在調(diào)整中要遵循以下兩條原則。實體具有描述信息,而屬性沒有。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。屬性不能與其他實體具有聯(lián)系,聯(lián)系只能發(fā)生在實體之間。而根據(jù)本課題來看,通信工具的設(shè)計則在概念結(jié)構(gòu)設(shè)計中能夠體現(xiàn)出來,用戶是一個實體,賬號、昵稱、性別、年齡、等級等是用戶實體的屬性。這時,等級只表示用戶屬于那個級別,不涉及具體情況,換句話說,沒有需要進一步描述的特性,即是
32、不可分的數(shù)據(jù)項,則根據(jù)原則1可以作為用戶實體的屬性。用 戶 賬號 等級年齡昵稱性別 屬于 等級學(xué) 生 好友人數(shù)級別年齡性別昵稱賬號 4.3 邏輯結(jié)構(gòu)設(shè)計1. 概念結(jié)構(gòu)設(shè)計階段得到的E-R模型是用戶的模型,它獨立于任何一種數(shù)據(jù)模型,獨立于任何一個具體的DBMS。設(shè)計邏輯結(jié)構(gòu)應(yīng)該選擇最適于描述與表達相應(yīng)概念結(jié)構(gòu)的數(shù)據(jù)模型,然后選擇最合適的DBMS。設(shè)計邏輯結(jié)構(gòu)時一般要分三步進行: 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,并將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對數(shù)據(jù)模型進行優(yōu)化一般的邏輯結(jié)構(gòu)設(shè)計分為以下三步:1.初始關(guān)系模式設(shè)計;2.關(guān)系模式規(guī)范化;3.模式的評價與
33、改進。2. 設(shè)計外模式: 前面我們根據(jù)用戶需求設(shè)計了局部應(yīng)用視圖,這種局部應(yīng)用視圖只是概念模型,用E-R圖表示。在我們將概念模型轉(zhuǎn)換為邏輯模型后,即生成了整個應(yīng)用系統(tǒng)的模式后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體DBMS的特點,設(shè)計用戶的外模式。目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)一般都提供了視圖概念,支持用戶的虛擬視圖。我們可以利用這一功能設(shè)計更符合局部用戶需要的用戶外模式。定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時間效率、空間效率、易維護等角度出發(fā)。由于用戶外模式與模式是獨立的,因此我們在定義用戶外模式時應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括:使用更符合用戶習(xí)慣的別名針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性
34、的要求簡化用戶對系統(tǒng)的使用4.4 物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫最終要存儲在物理設(shè)備上。對于給定的邏輯數(shù)據(jù)模型,選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,稱為數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計。物理結(jié)構(gòu)設(shè)計的任務(wù)是為了有效地實現(xiàn)邏輯模式,確定所采取的存儲策略。此階段是以邏輯設(shè)計的結(jié)構(gòu)作為輸入,結(jié)合具體DBMS的特點與存儲設(shè)備特性進行設(shè)計,選定數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計可分為兩步:1.確定物理結(jié)構(gòu)。2.評價物理結(jié)構(gòu),評價的重點是時間和空間效率。1.確定物理結(jié)構(gòu)(1)確定數(shù)據(jù)庫的存儲結(jié)構(gòu)(2)設(shè)計數(shù)據(jù)庫的存取路徑(3)確定數(shù)據(jù)的存放位置(4)確定系統(tǒng)配置2.評價物理結(jié)構(gòu)和前面幾個設(shè)計階段一樣,
35、在確定了數(shù)據(jù)庫的物理結(jié)構(gòu)之后,要進行評價,評價重點是時間和空間的效率,如果評價結(jié)果滿足設(shè)計要求,則可進行數(shù)據(jù)庫實施。實際上,往往需要經(jīng)過反復(fù)測試才能優(yōu)化數(shù)據(jù)庫物理結(jié)構(gòu)。第五章 系統(tǒng)詳細設(shè)計與實現(xiàn)5.1 用戶管理5.1.1 新建用戶模塊注冊模塊是整個系統(tǒng)最基礎(chǔ)的模塊,當服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的消息,諸如客戶的昵稱、性別、籍貫、頭像、個人資料等。便通過與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回起申請?zhí)柎a,客戶收到服務(wù)器返回的信息后,便打開主程序窗口。程序流程圖:客戶端主界面信息處理服務(wù)器 端填寫信息注冊頁面點擊注 冊客戶端登錄 框 通過此模塊可以實現(xiàn)密碼的
36、找回、密碼的修改以及個人信息的查詢。5.1.2 登錄模塊該模塊主要給注冊成功的用戶提供一個登錄界面,用戶根據(jù)自己注冊的帳號信息可以與服務(wù)器交互,如果提供的信息通過服務(wù)器的驗證便可以成功的登錄系統(tǒng),成功登錄系統(tǒng)之后,可以進行一些操作,比如和好友聊天等,使用該模塊之前必須安裝一個客戶端。登錄模塊只是一個簡單的頁面,主要填寫用戶名、密碼之類的信息,登錄成功后的主界面包含了系統(tǒng)的大部分功能,比如添加和刪除好友、添加和刪除好友分組、和朋友聊天等功能。下圖是登錄模塊的用例圖:客戶端主界面或者提示錯誤并進入登陸界面客戶端服務(wù)器對客戶信息處理結(jié)果服務(wù)器端填寫信息發(fā)送到服務(wù)器客戶端 5.1.3 刪除好友模塊登陸
37、系統(tǒng)界面過后,在主界面上則會顯示用戶分組情況以及好友的基本信息,如昵稱、個性簽名等,如果在用戶的界面上出現(xiàn)了陌生人的信息,用戶可以選擇直接拉入黑名單,也可以選擇直接刪除。通過服務(wù)器的認證對此請求作出處理,若服務(wù)器通過則可以刪除好友。下圖是刪除好友模塊視圖:客戶端已刪除好友通過認證批準服務(wù)器對客戶的請求作出處理服務(wù)器請求刪除信息發(fā)送到服務(wù)器客戶端 5.2 用戶登錄獲取信息模塊用戶登錄系統(tǒng),進入主界面之后,除了在主界面上顯示的信息外,還可以獲取其他信息,可以通過在線搜索或者查找等功能獲取用戶想要的信息,此功能模塊能夠通過客戶端到服務(wù)器的響應(yīng),快速便捷的查詢到想要的信息,便于用戶能夠更好的運用該系統(tǒng)
38、。下面是功能模塊視圖:客戶端服務(wù)器反應(yīng)顯示基本信息系統(tǒng)主界面客戶端 查找 返回 5.3 查找用戶模塊客戶登錄后,按查找按鈕后,開始向服務(wù)器發(fā)出查找請求,服務(wù)器讀取數(shù)據(jù)庫表中的請求信息并向客戶返回其結(jié)果,客戶收到后在查找窗口中顯示,如果用戶選擇了一個好友,就向服務(wù)器發(fā)送添加好友請求,服務(wù)器收到后就向數(shù)據(jù)庫表中添加好友的號碼,并從表中讀取其基本信息返回給客服端,然后客戶收到并在主窗口顯示該好友。并通過UDP通知該客戶,對方收到該消息后,可以選擇添加該用戶為好友或者不。下面是流程視圖:服務(wù)器處理該信息客戶端通過UDP來添加好友并將資料送至數(shù)據(jù)庫客戶端客戶端查找結(jié)果頁面服務(wù)器處理請求的結(jié)果發(fā)送到客戶端
39、服務(wù)器端查找請求發(fā)送到服務(wù)器 5.4 添加好友模塊在客戶向服務(wù)器發(fā)送請求添加好友信息后,如果找到就返回用戶服務(wù)信息,打開一個用戶信息顯示界面,該界面會提供一個“添加為好友”按鈕,可以進行好友添加,則查找到好友的基本信息,如賬號和昵稱。如果是你所要添加的好友則點擊添加,如不是則添加失敗??蛻舳丝蛻魟t選擇添加或不添加返回允許結(jié)果給客服端服務(wù)器端認證基本信息服務(wù)器端客戶端請求添加好友發(fā)送到服務(wù)器5.5 建群模塊根據(jù)用戶的需要,在本系統(tǒng)中可以實現(xiàn)建群功能,用戶注冊以后群個數(shù)為0。用戶在執(zhí)行添加群操作以后,客戶端分別將一個這個動作的信息發(fā)送給服務(wù)器。服務(wù)器端的表接受到這個請求,會進行數(shù)據(jù)庫操作,將要添加
40、的群消息插入到數(shù)據(jù)庫中。如果成功,則返回這個群的消息給客服端,否則返回錯誤提示消息。以下是流程視圖:客戶端則可以建群認證成功返回給服務(wù)器通過數(shù)據(jù)庫服務(wù)器接受客戶端請求建群信息發(fā)送到服務(wù)器 5.6 即時聊天模塊5.6.1 文件傳輸模塊文件傳輸模塊的功能主要有:(1)共享文件;(2)查看并下載文件。(1)在啟動文件傳輸服務(wù)器的共享文件功能之前,要設(shè)置它的IP號和端口,如果設(shè)置不好,好友將無法看到這些共享的文件,還有一個重要的步驟就是添加共享文件或目錄,最后啟動文件共享。(2)使用文件傳輸?shù)目头艘_配置好服務(wù)器的IP和端口號,以及下載好的文件的存放目錄。如果其中之一配置不好,文件下載將會失敗。設(shè)
41、置好后,點擊“連接”按鈕,如果配置正確,這時將會看到服務(wù)器共享的文件。目前不能支持文件下載,當看到一個文件夾以后,可以雙擊該文件夾并查看文件夾里面的文件。下列視圖說明:客戶端向服務(wù)器發(fā)送文件傳輸請求,如果服務(wù)器端同意傳輸,就讀取文件流并將數(shù)據(jù)流寫到客戶端??蛻舳俗x取到文件名之后,立即點擊打開,則文件就會自動傳輸給對方。客戶端接收文件讀取文件流發(fā)送到客戶端查找文件創(chuàng)建服務(wù)器監(jiān)聽線程服務(wù)器端打開要傳輸?shù)奈募蛻舳?第五章 系統(tǒng)詳細設(shè)計與實現(xiàn)5.6.2 語音聊天模塊當客戶發(fā)送請求語音聊天給好友時,客戶端正在接收請求并將此請求發(fā)送給服務(wù)器,服務(wù)求接收是否語音聊天,將請求結(jié)果返回給客戶端,如果服務(wù)器端同意進行語音聊天,則客戶與好友之間的聊天已經(jīng)連接,如果服務(wù)器端拒絕進行語音聊天,則返回消息,好友拒絕接收語音聊天,連接失敗??蛻舳四芊襁M行語音聊天返回結(jié)果給客戶端服務(wù)器接收并處理服務(wù)器請求語音聊天客戶端 結(jié) 束 語即時通信是是網(wǎng)絡(luò)發(fā)展的必然趨勢,它的技術(shù)仍然在不斷的改進和蓬勃發(fā)展中。本文主要討論了基于TCP/UDP協(xié)議的局域網(wǎng)即時通信工具的設(shè)計與實現(xiàn)。課題通過采用基于java平臺的Eclipse工具來設(shè)計并實現(xiàn)這一通信工具,本次設(shè)計雖然實現(xiàn)了簡單的即時通信功能,但是從很多方面來說都是不完善的,僅僅只是實現(xiàn)了簡單的即時聊天、好友添加等功能模塊,是一個簡單而粗略的系統(tǒng)。在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西北大學(xué)《口腔醫(yī)學(xué)臨床前技能訓(xùn)練(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江汽車職業(yè)技術(shù)學(xué)院《數(shù)據(jù)分析與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島黃海學(xué)院《入侵檢測與入侵防御》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東勝利職業(yè)學(xué)院《供應(yīng)鏈與物流概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅省定西市漳縣2025屆五年級數(shù)學(xué)第二學(xué)期期末統(tǒng)考模擬試題含答案
- 廣東茂名健康職業(yè)學(xué)院《高等藥理學(xué)(雙語)》2023-2024學(xué)年第二學(xué)期期末試卷
- 古希臘哲學(xué)和中國哲學(xué)
- 功放高頻移相
- 公共交通服務(wù)規(guī)范管理制度
- 工程項目成本控制的原則
- 火災(zāi)自動報警系統(tǒng)施工過程檢查記錄
- TD/T 1069-2022 國土空間生態(tài)保護修復(fù)工程驗收規(guī)范(正式版)
- 踝關(guān)節(jié)扭傷康復(fù)治療
- FZ∕T 01085-2018 粘合襯剝離強力試驗方法
- 白龍江引水工程環(huán)境影響報告書(公示版)
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 瀏陽煙花術(shù)語大全
- 居民心理健康知識講座課件
- 2024年英語專業(yè)四級考試真題及詳細答案
- 成語故事葉公好龍
- MHT:中小學(xué)生心理健康檢測(含量表與評分說明)
評論
0/150
提交評論