




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于cs模式下云打印系統(tǒng)的設(shè)計與實現(xiàn)版權(quán)聲明任何收存和保管本論文各種版本的單位和個人,未經(jīng)本論文作者同意,不得將本論文轉(zhuǎn)借他人,亦不得隨意復(fù)制、抄錄、拍照或以任何方式傳播。否則,引起有礙作者著作權(quán)之問題,將可能承擔法律責(zé)任。原創(chuàng)性聲明本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師的指導(dǎo)下,獨立進行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品或成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明,本聲明的法律結(jié)果由本人承擔。論文作者簽名: 日期: 年 月 日基于c/s模式下云打印系統(tǒng)的設(shè)計與實現(xiàn)f u(安康學(xué)院電子信息工程系,
2、陜西安康,725000)摘 要 隨著“云”概念地引入,在對“云”概念理解基礎(chǔ)上,為了解決傳統(tǒng)聯(lián)機打印(網(wǎng)絡(luò)共享打印)的不足之處,同時高效率地解決繁瑣的打印任務(wù),云打印地實現(xiàn)有著重要的意義。論文中研究基于c/s模式下系統(tǒng)的設(shè)計與實現(xiàn),在數(shù)據(jù)收發(fā)基礎(chǔ)上了增加了客戶端對數(shù)據(jù)地加密和服務(wù)器端對接收的文件,文件名稱和大小創(chuàng)建內(nèi)存映射表并排序輸出給打印機的功能,以vc+6.0為開發(fā)工具,采用windows的核心編程技術(shù)內(nèi)存管理和多線程操作對數(shù)據(jù)進行高效處理,在windowsxp平臺完成云打印的功能。為了確保數(shù)據(jù)安全完整和服務(wù)器高效地處理大量的數(shù)據(jù),著重研究了網(wǎng)絡(luò)通訊的數(shù)據(jù)安全和內(nèi)存管理、內(nèi)存映射技術(shù)。在檢
3、測客戶端和云端服務(wù)器數(shù)據(jù)是否有變更時,采用md5技術(shù)生成服務(wù)器中存放文件的md5摘要和最新的客戶端測到得md5摘要對比,確保數(shù)據(jù)完整。在服務(wù)器接收大量數(shù)據(jù)的時候,對文件名和大小創(chuàng)建內(nèi)存映射表,然后通過對內(nèi)存地址地訪問,來訪問數(shù)據(jù),實現(xiàn)了高效和快速處理數(shù)據(jù)的功能。經(jīng)測試,系統(tǒng)運行正常、良好,能夠?qū)崿F(xiàn)云打印功能。 關(guān)鍵詞 c/s模式;數(shù)字簽名;內(nèi)存映射表design and implementation of the cloud print system based on c/s mode jing qi(department of electronic and information engin
4、eering,ankang university,ankang,725000)abstract with the introduction of the cloud consept,the implementation of the cloud printing based on the understanding of the cloud concept has an important significance ,which is used to solve the inadequacies of the the traditional online printing (shared ne
5、twork printing) and complicated printing tasks efficiently.the paper design and mplementation of the cloud print system based on c/s mode .it adds the function of the encryption of the data by the client and creating a memory mapping table output to the print queue based on the received text ,which
6、uses the vc+ 6.0 as a tool and adopts windowss core programming technology of memory management and multi-threaded operation to deal with the data efficiently.it complete cloud printing in windowsxp platform. to ensure the security of data network communication and servers processing large amounts o
7、f data efficiently,the paper focuses on digital signature technology and the techniques of memory management and memory mapping .when detecting whether the data of the client and the server changes or not,it compares md5 summaries used md5 technology to generate files stored in the server wite md5 s
8、ummaries measured by the latest client to ensure the integrity of the data .when the server receives large amounts of data, it creates a memory mapping table on the file name and size .then it obtains the data by visiting the memory address,achieving the function of dealing with the data quickly and
9、 efficiently. after testing, the system is operating normally and can achieve the function of cloud printing .key words c/s mode; digital signature;memory mapping table目 錄1緒論11.1課題背景與提出11.2 國內(nèi)外研究現(xiàn)狀11.3研究的目的和意義22系統(tǒng)可行性分析32.1技術(shù)可行性32.1.1 網(wǎng)絡(luò)通訊的設(shè)計原理32.1.2客戶端機與服務(wù)器模型52.1.3網(wǎng)絡(luò)通信的數(shù)據(jù)安全62.1.4內(nèi)存管理,內(nèi)存映射技術(shù)82.1.5虛擬打
10、印技術(shù)82.2操作可行性92.3經(jīng)濟可行性92.4小結(jié)93 系統(tǒng)分析與設(shè)計103.1系統(tǒng)開發(fā)工具及簡介103.2 系統(tǒng)總體框架113.2.1設(shè)計流程圖113.2.2 系統(tǒng)類圖123.3 功能模塊設(shè)計133.3.1 基本功能模塊133.3.2 服務(wù)器和客戶端時序圖143.4 小結(jié)164系統(tǒng)實現(xiàn)174.1系統(tǒng)開發(fā)環(huán)境174.2系統(tǒng)各功能模塊的實現(xiàn)175系統(tǒng)測試235.1系統(tǒng)測試目的與意義235.2測試過程235.3測試結(jié)果255.4問題及解決276 總結(jié)與展望28參考文獻30致 謝32 1緒論1.1課題背景與提出 目前傳統(tǒng)的打印模式,基本處于人工管理階段,缺乏有效的管理手段和工具,造成打印資源浪費
11、,而且對打印文件沒有進行必要的安全處理,使打印機密泄漏。在如今這個信息化管理的時代,網(wǎng)絡(luò)調(diào)度打印是未來發(fā)展的趨勢,因為它沒有地域的限制,不需要手持打印文件,去尋找打印終端,只需要一款合適的軟件,就可以達到網(wǎng)絡(luò)傳輸文件給遠程打印終端實現(xiàn)打印的目的,簡單安全,推動了打印行業(yè)的發(fā)展,符合了更多企業(yè)和部門的打印要求。傳統(tǒng)的打印方式最直觀的打印方式就是打印共享。一臺打印機連接在網(wǎng)絡(luò)上,單位有很多電腦都可以遠程操控打印機來打印文檔,但是假如現(xiàn)在有急事,想要優(yōu)先打印,那么就得提升權(quán)限為單機共享,可是這樣妨礙了別的人對打印機的使用,同時如果打印任務(wù)龐大,會阻塞更多的等候打印的任務(wù)。在短時間內(nèi)效率不高,使打印資
12、源浪費。本文通過網(wǎng)絡(luò)調(diào)度打印這種方式,來實現(xiàn)打印資源的合理分配,其次減少了大量的人為操作,只需要通過客戶端對文件的提取和發(fā)送給遠程服務(wù)器,遠程服務(wù)器會自動接收數(shù)據(jù),并通過短任務(wù)優(yōu)先算法,加入打印隊列等候打印機打印,為人們今后的生活提供了更多便捷。1.2 國內(nèi)外研究現(xiàn)狀 2011年4月 google 第一次對外宣布了云打印計劃1,這一功能不但可以讓遠程無線打印成為現(xiàn)實,更解決了手持設(shè)備打印不方便的問題,本系統(tǒng)從中提取了“云打印”的思想并總結(jié)了制作思路,為制作本軟件奠定了基礎(chǔ)。 截至今日,chrome 中的云打印已經(jīng)基本可用,而另外一方面 google 的合作伙伴 hp 也在今天隆重發(fā)布了全系列支
13、持云打印的無線打印機,用戶可以從 cr-48,移動版 gmail 和 google docs 等支持云打印的應(yīng)用中直接打印到這些打印機上。 當使用 google 云打印進行打印時,文件會通過網(wǎng)絡(luò)安全地發(fā)送到的打印機。由于打印工作是通過網(wǎng)絡(luò)進行的,因此無論與打印機的距離是遠是近,google 云打印都能工作。無論用的是手機、傳統(tǒng)的臺式機還是介于兩者之間的設(shè)備(如平板電腦),都可以使用 google 云打印。 借助云端打印機,能立即體驗谷歌云打印。由于云端打印機可以通過家中或辦公室的無線網(wǎng)絡(luò)直接注冊谷歌云打印服務(wù),因此能隨時使用。此外,因為云端打印機總是會連接到網(wǎng)絡(luò),所以其驅(qū)動程序和固件無需的干預(yù)
14、即可更新至最新狀態(tài)。谷歌云打印還支持傳統(tǒng)的非云端打印機,因此可以使用現(xiàn)有的任意打印機立即開始體驗。 谷歌云打印是通過軟件實現(xiàn)與遠程打印服務(wù)器的連接,只要擁有打印資源,便可以通過互聯(lián)網(wǎng)通訊實現(xiàn),手機或者pc客戶機軟件實現(xiàn)數(shù)據(jù)發(fā)送給遠程云端打印,然而本文研究的是一種網(wǎng)絡(luò)數(shù)據(jù)傳輸打印,對于數(shù)據(jù)的安全和數(shù)據(jù)的完整提供了更高的要求。1.3研究的目的和意義對于如今的很多大小型企業(yè)和學(xué)校甚至政府單位來說,如果遇到大量的打印任務(wù),那么對于傳統(tǒng)的打印方式來說,肯定會耗費大量的打印時間,對于人力和財力無意是一種損耗。因為打印資源有限,合理的分配打印資源,如何讓打印資源充分利用是存在的問題;其次在時間上非正常的工作
15、時間,打印機沒有人為操作,就不能進行有效及時的打??;有時候打印的數(shù)據(jù)在傳播過程中會造成不必要的損失甚至丟失,這樣打印就不能正常進行,所以在保證數(shù)據(jù)完整和安全的前提下,對大量打印數(shù)據(jù)進行統(tǒng)一的管理和無人值守操作的自動打印調(diào)度是完全符合廣大客戶的需求。通過網(wǎng)絡(luò)調(diào)度打印推動了信息化社會信息的快速交流,利用網(wǎng)絡(luò)傳輸達到了快速、高效、安全,節(jié)省了人力、財力、物力,讓有限的打印資源能夠合理充分使用的同時,提高了生產(chǎn)力,為更多的打印商提供了創(chuàng)造財富的新途徑,足不出戶,就可以收到各地發(fā)來的打印訂單,第一時間解決客戶的打印問題,也創(chuàng)造了利益。其次對于各大企業(yè)和學(xué)校來說網(wǎng)絡(luò)調(diào)度打印的實現(xiàn),解決了更多人為了爭奪優(yōu)先
16、的打印資源,排隊等候,耗費大量時間,對于緊急的打印任務(wù)不能及時打印造成不良的后果等諸多問題。網(wǎng)絡(luò)調(diào)度打印不僅僅是解決人們的打印問題,還可以對其功能的改進和擴展,以適應(yīng)更多類似的服務(wù)行業(yè),高效的解決顧客的需求。比如餐飲業(yè),可以發(fā)展成為一個網(wǎng)絡(luò)調(diào)度訂餐系統(tǒng),這樣可以隨時隨地,解決客戶的就餐問題;比如訂票問題,通過這個調(diào)度打印可以第一時間解決客戶的乘車出行問題等等,也就是說,網(wǎng)絡(luò)調(diào)度打印它不僅僅是一個系統(tǒng)軟件,不僅僅只針對打印問題,它是可以擴展和延伸地,對于各個行業(yè)都可以涉及到,對于今后很多問題都可以合理化解決,這就是本系統(tǒng)軟件最大的意義之所在。2系統(tǒng)可行性分析2.1技術(shù)可行性 2.1.1 網(wǎng)絡(luò)通訊
17、的設(shè)計原理tcp/ip是國際互聯(lián)網(wǎng)所采用進行網(wǎng)際互連的通信協(xié)議。ip互連協(xié)議(internet protocol),負責(zé)主機之間的傳輸數(shù)據(jù)。tcp傳輸控制協(xié)議(transmission control protocol),負責(zé)在應(yīng)用程序之間傳遞數(shù)據(jù)。實際所稱的tcp/ip協(xié)議包括了在國際互聯(lián)網(wǎng)上應(yīng)用的一組協(xié)議,互聯(lián)網(wǎng)協(xié)議組是此協(xié)議組的另一個名字。這個協(xié)議組包括幾種工作在不同層次上的網(wǎng)絡(luò)協(xié)議,udp用戶數(shù)據(jù)報協(xié)議(user datagram protocol),提供給用戶進程的無連接協(xié)議,也負責(zé)在應(yīng)用程序之間無連接傳遞數(shù)據(jù),但不執(zhí)行正確性檢查。icmp互連網(wǎng)控制報文協(xié)議(internet con
18、trol message protocol),處理主機間的差錯和傳送控制。arp地址解析協(xié)議(address resolution protocol),負責(zé)將網(wǎng)絡(luò)層地址轉(zhuǎn)換成鏈路層地址。rarp反向地址解析協(xié)議(reverse address resolution protocol),負責(zé)將鏈路層地址轉(zhuǎn)換成網(wǎng)絡(luò)層地址。tcp/ip協(xié)議的核心是傳輸層協(xié)議(tcp、udp)、網(wǎng)絡(luò)層協(xié)議(ip)和物理接口層,這三層通常在操作系統(tǒng)的內(nèi)核中實現(xiàn)。tcp/ip網(wǎng)絡(luò)環(huán)境下的應(yīng)用程序設(shè)計是通過網(wǎng)絡(luò)系統(tǒng)編程界面socket實現(xiàn)的,socket提供應(yīng)用程序與系統(tǒng)內(nèi)核之間的網(wǎng)絡(luò)編程接口。協(xié)議可以是可靠的可以是不可靠
19、的??煽康膮f(xié)議意味著當數(shù)據(jù)通過協(xié)議傳遞時,協(xié)議保證數(shù)據(jù)正確傳輸??煽總鬏敯◣讉€特征。首先,為了確保數(shù)據(jù)正確傳送,協(xié)議在通信應(yīng)用程序之間互相交換確認信息。也就是說,程序每次發(fā)送一個報文時,都期望對方發(fā)送確認信息。如果發(fā)送程序沒有收到這樣一個確認信息,程序?qū)⒆詣又匦掳l(fā)送此報文,直到得到應(yīng)答信息為止。其次,為了確保傳輸?shù)臄?shù)據(jù)有效,可靠協(xié)議在每次傳輸時,都包含一個或更多的校驗和(crc)。接收計算機重新計算校驗碼,再與收到的校驗和進行比較。如果不匹配,就表明在傳輸過程中發(fā)生了錯誤。傳輸控制協(xié)議tcp是一個使用校驗和確認信息以及其它可靠數(shù)據(jù)傳輸技術(shù)的可靠協(xié)議。相比之下,不可靠協(xié)議不能確保數(shù)據(jù)正確傳輸。
20、協(xié)議試圖傳輸數(shù)據(jù),但不保證成功。而且,不可靠協(xié)議在傳輸失敗后,并不通知發(fā)送方??蓪⒉豢煽繑?shù)據(jù)傳輸比作沒有返回地址的信件。如果發(fā)送地址是錯誤的,由于郵遞系統(tǒng)不能將信退回給,所以就不知道信件有沒有送到。即使發(fā)送地址是正確的,也不能保證郵遞系統(tǒng)不丟失的信件。tcpip協(xié)議組中存在的兩個基本數(shù)據(jù)服務(wù)是:字節(jié)流服務(wù)和數(shù)據(jù)報服務(wù)。使用字節(jié)流的協(xié)議將信息看作一串字節(jié)流進行傳輸。協(xié)議不管要求發(fā)送或接收數(shù)據(jù)的長度和傳送數(shù)目,只是將數(shù)據(jù)看作一個簡單的字節(jié)串流。使用數(shù)據(jù)報的協(xié)議將信息視作一個獨立單元進行傳輸。協(xié)議單獨發(fā)一個數(shù)據(jù)報,與此同時數(shù)據(jù)報之間不相互依賴。例如,假設(shè)使用字節(jié)流協(xié)議發(fā)送5個數(shù)據(jù)段(每個有10字節(jié))
21、和一個包含50字節(jié)的數(shù)據(jù)段(總共100字節(jié))。連接的接收方可以按每次20字節(jié)讀數(shù)據(jù)(要讀5次)。傳輸控制協(xié)議是字節(jié)流協(xié)議。字節(jié)流協(xié)議不關(guān)心每個數(shù)據(jù)段的長度。如果應(yīng)用程序使用字節(jié)流協(xié)議發(fā)送數(shù)據(jù),則協(xié)議能夠保證連接的另一端按照發(fā)送的順序接收數(shù)據(jù)。相比之下,傳輸?shù)酵荒康牡氐亩鄠€數(shù)據(jù)報可能不會按發(fā)送順序到達。如果接收方應(yīng)用程序要求數(shù)據(jù)順序一致,應(yīng)用程序必須在數(shù)據(jù)到達后,校對這些數(shù)據(jù)。用戶數(shù)據(jù)報協(xié)議和互連網(wǎng)協(xié)議使用數(shù)據(jù)報傳輸數(shù)據(jù)。數(shù)據(jù)報類似于信件。在tcp/ip術(shù)語中,端口(port)類似于ip地址,ip地址與主機地址是相聯(lián)系的,端口和協(xié)議相聯(lián)系。ip數(shù)據(jù)報保存目的和源ip地址,同樣傳輸協(xié)議也保存源和
22、目的端口號。internet包括像ftp、telnet和mail這樣廣泛使用的應(yīng)用程序采用的應(yīng)用協(xié)議,在internet上,這些應(yīng)用程序使用一種叫做“通用口分配”的端口。通用口分配是特定應(yīng)用程序廣泛使用的一個協(xié)議端口。22.1.2客戶端機與服務(wù)器模型(client/server或客戶/服務(wù)器模式):client和server常常分別處在相距很遠的兩臺計算機上,client程序的任務(wù)是將用戶的要求提交給server程序,再將server程序返回的結(jié)果以特定的形式顯示給用戶;server程序的任務(wù)是接收客戶程序提出的服務(wù)請求,進行相應(yīng)的處理,再將結(jié)果返回給客戶程序。傳統(tǒng)的c/s體系結(jié)構(gòu)雖然采用的是
23、開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應(yīng)用中無論是client端還是server端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環(huán)境,c/s結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)開發(fā)不同版本的軟件, 加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用。而且代價高, 效率低。c/s 結(jié)構(gòu)的基本原則是將計算機應(yīng)用任務(wù)分解成多個子任務(wù),由多臺計算機分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成dbms的核心功能。這種客戶請求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計算機應(yīng)用模式。c/s結(jié)構(gòu)的優(yōu)點是能充分發(fā)揮客戶端pc的處理
24、能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點就是客戶端響應(yīng)速度快。具體表現(xiàn)在以下兩點:(1)應(yīng)用服務(wù)器運行數(shù)據(jù)負荷較輕。最簡單的c/s體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務(wù)器程序的機器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序運行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當需要對數(shù)據(jù)庫中的數(shù)據(jù)進行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運行數(shù)據(jù)負荷較輕。(2)數(shù)據(jù)的儲存管
25、理功能較為透明。在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨立進行的,并且通常把那些不同的前臺應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實現(xiàn),例如訪問者的權(quán)限,編號可以重復(fù)、必須有客戶才能建立這樣的規(guī)則。2.1.3網(wǎng)絡(luò)通信的數(shù)據(jù)安全(1) 網(wǎng)絡(luò)通信的數(shù)據(jù)安全包括以下幾個方面:1) 數(shù)據(jù)傳輸?shù)陌踩?,?shù)據(jù)傳輸?shù)陌踩允潜WC在公網(wǎng)上傳輸?shù)臄?shù)據(jù)不被第三方竊取。2) 數(shù)據(jù)完整性對數(shù)據(jù)的完整性需求是指數(shù)據(jù)在傳輸過程中不被篡改。3) 身份驗證在網(wǎng)上的通信雙方互不見面,必須在相互通信時確認對方的真實身份。4) 不可抵賴性在網(wǎng)絡(luò)通信中開展業(yè)務(wù)的各方在進行數(shù)據(jù)傳輸時,必須帶有自身持有的、
26、無法被別人復(fù)制的信息,以保證發(fā)生糾紛時有所對證。通常情況下,網(wǎng)絡(luò)通信中采用的安全技術(shù)主要有防火墻技術(shù)、數(shù)據(jù)加密技術(shù)和身份認證技術(shù)等。本文討論的重點是數(shù)據(jù)加密技術(shù)在網(wǎng)絡(luò)安全策略中的應(yīng)用。(2) 數(shù)字指紋技術(shù)數(shù)字指紋是一種形象的說法,在密碼學(xué)上被稱為“信息摘要”。它是通過安全的單向散列函數(shù)作用于將要發(fā)送的信息上產(chǎn)生的:message digest =secure hash(message)單向散列函數(shù)有三個主要特點:1) 它能處理任意大小的信息,并將其按信息摘要(message digesgt)方法生成固定大小的數(shù)據(jù)塊,對同一個源數(shù)據(jù)反復(fù)執(zhí)行secure hash函數(shù)將總是得到同樣的結(jié)果。2) 它
27、是不可預(yù)見的。產(chǎn)生的數(shù)據(jù)塊的大小與原始信息的大小沒有任何聯(lián)系,同時源數(shù)據(jù)和產(chǎn)生的數(shù)據(jù)塊看起來也沒有明顯關(guān)系,源信息的一個微小的變化都會對小數(shù)據(jù)塊產(chǎn)生很大影響。3) 它是完全不可逆的,沒有辦法通過生成的數(shù)據(jù)塊直接回復(fù)源數(shù)據(jù)。數(shù)字指紋技術(shù)不是一種加密機制,但卻能產(chǎn)生信息的數(shù)字“指紋”,通過驗證信息的“指紋”來確保數(shù)據(jù)沒有被修改或變化,保證信息的完整性不被破壞。常用的信息摘要算法有:md2、md5和sha-1等。3) 數(shù)字簽名 數(shù)字簽名是用來保證信息傳輸過程中信息的完整和提供信息發(fā)送者的身份驗證和不可抵賴性的一種安全技術(shù)。2.1.4內(nèi)存管理,內(nèi)存映射技術(shù)內(nèi)存管理,是指軟件運行時對計算機內(nèi)存資源的分配
28、和使用的技術(shù)。其最主要的目的是如何高效,快速的分配,并且在適當?shù)臅r候釋放和回收內(nèi)存資源。一個執(zhí)行中的程序,譬如網(wǎng)頁瀏覽器在個人電腦里將資料轉(zhuǎn)換于真實世界及電腦內(nèi)存之間,然后將資料存于電腦內(nèi)存內(nèi)部的過程。內(nèi)存映射文件,是由一個文件到一塊內(nèi)存的映射。win32提供了允許應(yīng)用程序把文件映射到一個進程的函數(shù) (createfilemapping)。內(nèi)存映射文件與虛擬內(nèi)存有些類似,通過內(nèi)存映射文件可以保留一個地址空間的區(qū)域,同時將物理存儲器提交給此區(qū)域,內(nèi)存文件映射的物理存儲器來自一個已經(jīng)存在于磁盤上的文件,而且在對該文件進行操作之前必須首先對文件進行映射。使用內(nèi)存映射文件處理存儲于磁盤上的文件時,將不
29、必再對文件執(zhí)行i/o操作,使得內(nèi)存映射文件在處理大數(shù)據(jù)量的文件時能起到相當重要的作用。內(nèi)存映射文件與虛擬內(nèi)存有些類似,通過內(nèi)存映射文件可以保留一個地址空間的區(qū)域,同時將物理存儲器提交給此區(qū)域,只是內(nèi)存文件映射的物理存儲器來自一個已經(jīng)存在于磁盤上的文件,而非系統(tǒng)的頁文件,而且在對該文件進行操作之前必須首先對文件進行映射,就將整個文件從磁盤加載到內(nèi)存。由此可以看出,使用內(nèi)存映射文件處理存儲于磁盤上的文件時,將不必再對文件執(zhí)行i/o操作,這意味著在對文件進行處理時將不必再為文件申請并分配緩存,所有的文件緩存操作均由系統(tǒng)直接管理,由于取消了將文件數(shù)據(jù)加載到內(nèi)存、數(shù)據(jù)從內(nèi)存到文件的回寫以及釋放內(nèi)存塊等步
30、驟,使得內(nèi)存映射文件在處理大數(shù)據(jù)量的文件時能起到相當重要的作用。另外,實際工程中的系統(tǒng)往往需要在多個進程之間共享數(shù)據(jù),如果數(shù)據(jù)量小,處理方法是靈活多變的,如果共享數(shù)據(jù)容量巨大,那么就需要借助于內(nèi)存映射文件來進行。實際上,內(nèi)存映射文件正是解決本地多個進程間數(shù)據(jù)共享的最有效方法。 2.1.5虛擬打印技術(shù)虛擬打印機,實際的打印驅(qū)動安裝在打印服務(wù)器端,將打印數(shù)據(jù)轉(zhuǎn)換為版式文件或者其他指定格式的文件,實現(xiàn)監(jiān)控的目的是一個虛擬打印驅(qū)動程序。這樣可以對每臺client客戶機的所有應(yīng)用程序都屏蔽除了虛擬打印機以外的所有打印機,使打印數(shù)據(jù)必須經(jīng)過虛擬打印的打印機處理;最后由虛擬打印機將打印數(shù)據(jù)轉(zhuǎn)發(fā)到真正的打印服
31、務(wù)器完成打印任務(wù)。虛擬打印機,它是一種軟件,能模擬真實打印機的功能,打印文件。安裝完畢,打開“控制面板”中的“打印機和傳真”,會看到所安裝的虛擬打印機,可以模擬真實的打印機環(huán)境。鼠標雙擊將其打開,可以對其“打印首選項”和“屬性”進行修改,從而設(shè)定是否共享、可使用時間、是否后臺打印和優(yōu)先級,以及紙張大小、版式安排等。它們同樣能截獲所有windows程序的打印操作,或模擬打印效果,或完成某一特殊功能。有些軟件自帶虛擬打印機,有些則是專門的虛擬打印機,利用這些虛擬打印機,可以幫助完成很多特殊的任務(wù)。虛擬打印機的打印文件是以某種特定的格式保存在電腦上。 2.2操作可行性網(wǎng)絡(luò)調(diào)度打印軟件的可視化相當好,
32、信息簡單明了,用戶操作簡單,對操作人員的使用技術(shù)水平要求很低,幾乎無技術(shù)要求只需對操作系統(tǒng)使用熟練,即可手工作操作。在操作技術(shù)上也具備可行性。與此同時每一個按鈕都有注明的文字,這對按鈕的操作簡單明了,ip地址欄上面有注明的服務(wù)器ip地址和端口號,用戶只需要從客戶端手動輸入ip地址和端口號就可以連接遠程服務(wù)器,不需要賬號和密碼,這在一定程度降低了客戶的操作難度,而且服務(wù)器的自動調(diào)度減去了以往要手動打開打印機,然后選擇要打印的文件,進而執(zhí)行打印操作,一連貫的繁瑣操作,服務(wù)器會自動接收文件,對文件進行自動加入打印隊列,最后自動調(diào)度打印機打印的,所以綜上所述操作具有可行性。2.3經(jīng)濟可行性任何系統(tǒng)項目
33、的開發(fā),都會受到資源和時間上的限制。因此,在每一個項目開始開發(fā)之前,都要進行全面的具體的可行性分析,這樣可以最大限度的減少項目開發(fā)風(fēng)險,避免大量的人力、物力的浪費。在當今的信息化高速發(fā)展時代,客戶端服務(wù)器管理模式可以滿足多樣化的客戶需求,服務(wù)器工作統(tǒng)一化、快速化、整體化。這種模式相對提高了打印的工作效率,提升了打印服務(wù)器端的經(jīng)濟效益,本系統(tǒng)軟件用c/s結(jié)構(gòu)模式,客戶端對計算機配置的要求不高,低配置電腦也可以完全滿足本系統(tǒng)的需求,滿足用戶的使用需要。同時,服務(wù)器在管理工作上的高效率和便捷性遠遠超出了本系統(tǒng)所開發(fā)的成本,在經(jīng)濟方面具有可行性。 2.4小結(jié) 本章主要課題背景和現(xiàn)狀,課題研究的目的和意
34、義,并對課題工作做出了規(guī)劃安排。最后簡要介紹了本課題開發(fā)所采用的相關(guān)工具和技術(shù)。 3 系統(tǒng)分析與設(shè)計3.1系統(tǒng)開發(fā)工具及簡介(1)本系統(tǒng)服務(wù)器處理的數(shù)據(jù)量大,對帶寬要求高,其次對于內(nèi)存和cup性能要求高。(2)visual c+6.0由microsoft開發(fā), 它不僅是一個c+ 編譯器,而且是一個基于windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,ide)。visual c+6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppwizard、類向?qū)lass wizard等開發(fā)工具。 這些組件通過一個名為developer
35、studio的組件集成開發(fā)環(huán)境。microsoft的主力軟件產(chǎn)品。visual c+是一個功能強大的可視化軟件開發(fā)工具。自1993年microsoft公司推出visual c+1.0后,visual c+已成為專業(yè)程序員進行軟件開發(fā)的首選工具。visual c+6.0以擁有“語法高亮”,自動編譯功能以及高級除錯功能而著稱。比如,它允許用戶進行遠程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及創(chuàng)建預(yù)編譯頭文件(stdafx.h)、最小重建功能及累加連結(jié)。 developer studio是一個集成開發(fā)環(huán)境,日常工作的99%都是在它上面完成的。
36、雖然developer studio提供了一個很好的編輯器和很多wizard,但實際上它沒有任何編譯和鏈接程序的功能。developer studio并不是專門用于vc的,它也同樣用于vb,vj,vid等。platform sdk是visual c+和整個visual studio的核心功能,platform sdk是以microsoft c/c+編譯器為核心,配合masm,輔以其他一些工具和文檔資料。developer studio沒有編譯程序的功能,cl、nmake和其他許多的命令行程序,是構(gòu)成visual studio的基石。結(jié)論:通過vc6.0豐富多彩的功能完全有能力在windows平
37、臺設(shè)上設(shè)計出符合要求的軟件。 3.2 系統(tǒng)總體框架3.2.1設(shè)計流程圖根據(jù)客戶的實際情況,為了能夠盡量滿足各種用戶需求,在進行基于客戶端服務(wù)器的網(wǎng)絡(luò)調(diào)度打印系統(tǒng)的技術(shù)方案設(shè)計時,采用c/s模式來進行設(shè)計。根據(jù)客戶端和服務(wù)器結(jié)構(gòu)的要求,系統(tǒng)平臺共分成2部分:客戶端、服務(wù)器。圖3.1設(shè)計流程圖 客戶端要執(zhí)行以下幾個步驟: (1)初始化socket (2)讀取端口號和ip地址 (3)與服務(wù)器建立連接 (4)載入本地打印數(shù)據(jù) (5)對數(shù)據(jù)進行md5數(shù)據(jù)加密 (6)發(fā)送文件到指定端口服務(wù)器。服務(wù)器主要負責(zé)對數(shù)據(jù)的接收、校驗、輸出提交給打印機服務(wù)器端執(zhí)行以下幾步驟: (1)初始化socket (2)綁定端
38、口和ip地址 (3)創(chuàng)建端口偵聽,啟動多線程循環(huán)監(jiān)聽鏈接 (4)接收數(shù)據(jù) (5)對數(shù)據(jù)進行校驗,確保數(shù)據(jù)是否完整 (6)如果數(shù)據(jù)不完整,丟棄并添加日志 3.2.2 系統(tǒng)類圖圖3.2系統(tǒng)類圖 (1)clanserverclientapp繼承cwinapp實現(xiàn)windows 操作系統(tǒng)的應(yīng)用程序的初始化、運行和終止 。 (2)caboutdlg繼承cdialog用戶在屏幕上顯示的對話框。也就是初始化定義了一些提示對話框。如服務(wù)器啟動按鈕其中dodataexchang實現(xiàn)主對話框和提示對話框的交互。(3)clanserverclientdlg繼承cdialog在屏幕上顯示的對話框(主對話框),該類為主
39、類調(diào)用clansocketclient類實例實現(xiàn)客戶端操作;調(diào)用clansocketserver實例實現(xiàn)服務(wù)器端操作。(4)clansocket類繼承casycsocket,clansocketclient調(diào)用該類方法,為客戶端操作提供服務(wù)(5)clansocketclient類繼承casycsocket實現(xiàn)客戶端的操作,客戶端可以有多個實例6.clansocketserver類繼承casycsocket實現(xiàn)服務(wù)器端操作,服務(wù)器端只有一個,用多線程監(jiān)聽管理客戶端。3.3 功能模塊設(shè)計3.3.1 基本功能模塊圖3.3基本功能模塊圖首先對于客戶端做功能模塊的分析:客戶端面對的是廣大持有移動設(shè)備的客
40、戶群體,所以對于移動設(shè)備的性能要求不高,并且界面設(shè)置簡單化,操作容易,上手快,適合每一個客戶的需求。打印客戶端通過輸入遠程服務(wù)器端的ip地址,然后點擊鏈接,客戶端就可以通過讀取服務(wù)器端ip,自動分配與之綁定的端口,實現(xiàn)基于tcp/ip協(xié)議的網(wǎng)絡(luò)通訊,這樣只要有可以聯(lián)網(wǎng)的移動設(shè)備,那么數(shù)據(jù)就可以完成簡單的通訊了。下一步對于數(shù)據(jù)發(fā)送模塊的需求分析:要把本地文件載入客戶端發(fā)送到遠程服務(wù)器過程中,很多時候個人的數(shù)據(jù)是保密的,不愿意被第三方竊取的,所以對于客戶端來說,在載入本地文件,實現(xiàn)數(shù)據(jù)發(fā)送的過程,添加了md5數(shù)據(jù)加密校驗的過程,這樣有效了保證的數(shù)據(jù)安全,是滿足客戶需要的。其次對于服務(wù)器端功能模塊做
41、下一步的需求分析:當服務(wù)器端接收數(shù)據(jù)的時候為了驗證數(shù)據(jù)是否完整那么必須進行數(shù)據(jù)校驗,這樣不至于對于錯誤的數(shù)據(jù)或者不完整的數(shù)據(jù),進行排隊處理,阻塞打印資源。最后對于打印任務(wù)做短任務(wù)優(yōu)先選擇法進行打印排隊,因為這樣單位時間內(nèi)就可以處理更多的打印任務(wù),解決了更多客戶的打印問題,提高了打印效率,合理分配了打印資源。 3.3.2 服務(wù)器和客戶端時序圖(1)客戶端的時序圖圖3.3客戶端的時序圖圖3.3描述了從客戶端到遠程服務(wù)器的數(shù)據(jù)上傳,顯示了上傳數(shù)據(jù)時系統(tǒng)的運行過程。上傳數(shù)據(jù)時系統(tǒng)仍然會首先顯示界面,首先連接服務(wù)器,如果連接服務(wù)器成功,那么通過客戶載入本地文件就可以實現(xiàn)對文件的加密,然后發(fā)送密文件到服務(wù)
42、器,接收連接請求成功后會自動監(jiān)聽數(shù)據(jù)源。(2)服務(wù)器端的時序圖圖3.4服務(wù)器端的時序圖圖3.4描述了從服務(wù)器端接收數(shù)據(jù)的過程,服務(wù)器循環(huán)監(jiān)聽,如有客戶端請求連接,那么服務(wù)器端相應(yīng)后,會對接收到的密文件進行分析,查看數(shù)據(jù)是否完整,如果數(shù)據(jù)不完整,丟棄并添加日志文件,這部分在debug過程中完成,最后如果數(shù)據(jù)校驗成功那么對所有接收到的數(shù)據(jù)進行文件名和大小創(chuàng)建內(nèi)存映射表,然后排序輸出個打印隊列,最后由打印機自動完成打印任務(wù)。3.4 小結(jié)本章主要對系統(tǒng)總體框架進行了設(shè)計,再根據(jù)系統(tǒng)框架和具體功能設(shè)計了類圖。在設(shè)計流程圖設(shè)計好后又設(shè)計流程圖實現(xiàn)的功能進行了細化,即將各個模塊的功能具體到每一個類中,實現(xiàn)了
43、主要類的設(shè)計工作。最后畫出了服務(wù)器端和客戶端的順序圖,為系統(tǒng)的實現(xiàn)提供依據(jù)。4系統(tǒng)實現(xiàn)4.1系統(tǒng)開發(fā)環(huán)境 (1)應(yīng)用客戶端: 應(yīng)用程序:客戶端 開發(fā)語言:c+ 操作系統(tǒng):windows xp 編譯器:vc+ (2)應(yīng)用服務(wù)器: 應(yīng)用程序:服務(wù)器 操作系統(tǒng):windows xp cpu:四核以上 內(nèi)存:4gb以上4.2系統(tǒng)各功能模塊的實現(xiàn)(1)客戶端在數(shù)據(jù)收發(fā)過程中,主要功能的實現(xiàn)關(guān)鍵代碼實現(xiàn):void clanserverclientdlg:onclient() / todo: add your control notification handler code herem_type = 1;
44、m_ip.enablewindow(true);getdlgitem(idc_start_link)-setwindowtext(連接);(afxgetmainwnd()-setwindowtext(客戶機);lresult clanserverclientdlg:netmessage(wparam wparam, lparam lparam)cstring str;switch(wparam)case clientread:str = m_socketclient.getmessstr();m_info = str;break;case clientsend:break;case conne
45、ct:m_info = 已連接上服務(wù)器 !;break;case serverclose:m_info = 服務(wù)器已關(guān)閉;break;case serverread:str = m_socketserver.getmessstr();m_info = str;break;case serversend:break;case accept:killtimer(2);m_info = 已接受客戶機請求 !;break;case clientclose:m_info = 客戶機已關(guān)閉;break;updatedata(false);return true;(2) 客戶端對數(shù)據(jù)加密功能的實現(xiàn) 關(guān)鍵代碼
46、:服務(wù)器界面主要有:服務(wù)器綁定ip地址欄、固定端口號、啟動服務(wù)器按鈕。數(shù)字簽名確保文件傳輸安全同時按大小排序輸出給打印機:const unsigned char md5:padding64=0x80;md5:md5()state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;md5:md5()bool md5:setmessage(const char * lhs)string tem(lhs);data = tem;state0=0x67452301;state1=0xefcdab89;state2=0x9
47、8badcfe;state3=0x10325476;return true;bool md5:setmessage(const std:string &lhs)data = lhs;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;return true;md5:md5(const char *lhs)string tem(lhs);data = tem;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;md
48、5:md5(const std:string &lhs)data = lhs;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;string md5:padding()/paddingstring tem;tem = data;unsigned int paddinglen;union struct uint4 messagelen,_;unsigned char messagelen9;message;message._ = 0;message.messagelen = tem.length() +
49、 8;paddinglen = message.messagelen & 0x3f;paddinglen = 64 - paddinglen;message.messagelen -= 8;message.messagelen *= 8;tem.append(const char *)padding,paddinglen);tem.append(const char *)message.messagelen,8);return tem;(3)服務(wù)器在數(shù)據(jù)接收過程中主要功能的實現(xiàn):關(guān)鍵代碼實現(xiàn):void clanserverclientdlg:onserver() / todo: add you
50、r control notification handler code herem_type = 0;m_ip.enablewindow(false);getdlgitem(idc_start_link)-setwindowtext(啟動);(afxgetmainwnd()-setwindowtext(服務(wù)器);void clanserverclientdlg:onstartlink() / todo: add your control notification handler code hereupdatedata();if(!m_type )if(m_socketserver.m_hsoc
51、ket = invalid_socket) bool bflag = m_socketserver.create(m_port, sock_stream, fd_accept);if(!bflag) messagebox(網(wǎng)絡(luò)建立錯誤 !); m_socketserver.close(); return;messagebox(服務(wù)已啟動 !);/“偵聽”成功,等待連接請求if(!m_socketserver.listen(1) int nerrorcode = m_socketserver.getlasterror(); if(nerrorcode = wsaewouldblock) mess
52、agebox(網(wǎng)絡(luò)偵聽錯誤 !); m_socketserver.close(); return; elsebyte a1,a2,a3,a4;m_ip.getaddress(a1,a2,a3,a4);m_serveradr.format(%d.%d.%d.%d,a1,a2,a3,a4);m_socketclient.shutdown(2);m_socketclient.rest(); /建立計時器,每1秒嘗試連接一次,直到連上或trycount10settimer(1,500,null);trycount=0; 5系統(tǒng)測試5.1系統(tǒng)測試目的與意義系統(tǒng)測試是軟件研發(fā)過程中必不可少的一個部分。主要
53、性體現(xiàn)在于它是能夠保證整個系統(tǒng)可靠的穩(wěn)定的重要過程,也是對整個系統(tǒng)開發(fā)過程中包括系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)的最終審查的一個必不可少的過程。系統(tǒng)測試就就是尋找問題的過程,在實際測試過程中會遇到大大小小的問題,對于這些問題的解決和修復(fù)將更好的服務(wù)于客戶。測試一旦遇到問題,那么要及時的經(jīng)過bug調(diào)試找出錯誤位置和原因,然后進行修正,直到真正能夠正常運行為止。這是計算機信息系統(tǒng)整體要求進行的穩(wěn)定性測試,系統(tǒng)測試是正對整個計算機信息系統(tǒng)進行的綜合性測試,目的是能夠驗證系統(tǒng)在滿足了用戶的需求,同時保證系統(tǒng)的可靠性和穩(wěn)定性,解決系統(tǒng)存在的不足之處。 5.2測試過程軟件開發(fā)完成之后,還要進行整體系統(tǒng)測試。單
54、獨對系統(tǒng)的測試主要從以下幾個方面:(1)功能測試:測試是否滿足開發(fā)要求,是否完成開題報告所描述的功能要求,是否滿足用戶的需求。功能測試是系統(tǒng)測試最常用和必須的測試。 (2)強度測試及性能測試:測試系統(tǒng)能力最高實際限度,即軟件在一些超負荷運行情況下系統(tǒng)功能實現(xiàn)的情況。 經(jīng)過上述的測試過程,對系統(tǒng)進行測試后,只有測試結(jié)果能夠滿足系統(tǒng)開發(fā)的要求,測試才宣告結(jié)束,系統(tǒng)算開發(fā)完成。在在實驗中門用虛擬打印機來完成實驗操作步驟,第一步打開虛擬打印機,初始狀態(tài)如圖:圖5.1虛擬機打開初始狀態(tài)圖 第二步:打開服務(wù)器,并啟動服務(wù)器實施監(jiān)控,如圖:圖5.2 服務(wù)器啟動狀態(tài)圖 第三步:打開本地客戶端,然后連接服務(wù)器,并發(fā)送打印數(shù)據(jù)。 圖5.3 客戶端鏈接并發(fā)送數(shù)據(jù)成功狀態(tài)圖 圖5.4 服務(wù)器成功接收數(shù)據(jù)狀態(tài)圖 第四步:點擊遠程打印按鈕,選擇要傳輸打印的文件,然后查看虛擬打印機的狀態(tài)。5.3測試結(jié)果 在測試的第二步中服務(wù)器啟動成功,通過netstat -an 命令查看端口號狀態(tài):現(xiàn)在端口號處于listening監(jiān)聽狀態(tài),說明測試過程中服務(wù)器啟動成功。圖5.5服務(wù)器端口狀態(tài)圖 在測試第三步中客戶端連接服務(wù)器成功,通過netstat -an 命令查看客戶端端口和服務(wù)器ip地址狀態(tài):現(xiàn)在客戶端端口號和本地ip地址與遠程服務(wù)器ip地址和端口號處于estab
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機械防護活動方案
- 普陀區(qū)公益保潔活動方案
- 新加坡文化游活動方案
- 晚間健康活動方案
- 服務(wù)社區(qū)公益活動方案
- 村莊擺酒活動方案
- 服裝公司開業(yè)策劃方案
- 服裝店打折節(jié)日活動方案
- 月餅散裝活動方案
- 暑期水上活動方案
- 酒店禁煙控制管理制度
- 加班飯管理制度
- 2025年中國自動鍋蓋行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 江蘇省海安縣財政局會計服務(wù)中心事業(yè)單位招聘招考27人題庫及完整答案【網(wǎng)校專用】
- 養(yǎng)護巡查制度
- 新人教版數(shù)學(xué)五年級下冊第二單元《因數(shù)和倍數(shù)》教材解讀
- 2024年中國心力衰竭診斷與治療指南更新要點解讀
- 系統(tǒng)壓力測試評估執(zhí)行規(guī)范
- 北師大版五年級下冊數(shù)學(xué)計算題每日一練帶答案(共30天)
- 河南省建筑安全員《A證》考試題庫
- 病理科生物安全培訓(xùn)
評論
0/150
提交評論