freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于中間件的圖書管理系統(tǒng)unix課程設(shè)計(已修改)

2024-07-14 18:48 本頁面
 

【正文】 《UNIX系統(tǒng)與軟件開發(fā)》課程設(shè)計說明書設(shè)計題目: 圖書管理系統(tǒng) 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師: 班 級: 學(xué) 號: 姓 名: 同 組 人: 計算機(jī)科學(xué)與工程學(xué)院2014 年 6 月18 日前言在信息技術(shù)發(fā)展迅猛的二十一世紀(jì)的今天,我們需要掌握的不僅僅是科學(xué)文化知識,還需要把所學(xué)到的知識合理的運(yùn)用到現(xiàn)實(shí)生活中來??茖W(xué)技術(shù)是第一生產(chǎn)力,它給我們帶來的不僅僅是生活中的各種便利和生活水平的不斷提高,同時也給帶給了我們各種各樣的不同類型和不同層次的科技的領(lǐng)先發(fā)展的成果。在中間件誕生之前,多采用傳統(tǒng)C/S二層結(jié)構(gòu)。這種二層結(jié)構(gòu)是計算機(jī)及軟件技術(shù)發(fā)展的一大進(jìn)步。一般而言,服務(wù)器是一個進(jìn)程,它等待客戶機(jī)與其聯(lián)系,提出某種類型的服務(wù)要求。C/S模式在操作過程中采取的是主動請求方式。服務(wù)對客戶機(jī)服務(wù)可將結(jié)果或信息返回給客戶機(jī)(雙向),也可不返回(單向)。雖然它帶來了相當(dāng)?shù)撵`活性,但也逐漸暴露出其客戶端和服務(wù)器端負(fù)擔(dān)過重的現(xiàn)象,并且拓展性也較差,無法跨越不同的業(yè)務(wù)部門和業(yè)務(wù)系統(tǒng)。這不僅表現(xiàn)在技術(shù)上有難度,更重要的是在制度和安全方面。于是,三層結(jié)構(gòu)出現(xiàn)了所謂三層結(jié)構(gòu),就是在原有的兩層結(jié)構(gòu)之間,增加一個中間層。該中間層既包括服務(wù)也包括請求中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機(jī)/ 服務(wù)器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通訊。是連接兩個獨(dú)立應(yīng)用程序或獨(dú)立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執(zhí)行中間件的一個關(guān)鍵途徑是信息傳遞。通過中間件,應(yīng)用程序可以工作于多平臺或 OS 環(huán)境。它的工作機(jī)制是:當(dāng)客戶端上的應(yīng)用程序需要從網(wǎng)絡(luò)中某個節(jié)點(diǎn)處獲取一定的數(shù)據(jù)或服務(wù)時,這些數(shù)據(jù)和服務(wù)可能處于一個運(yùn)行著和客戶端不同的硬、軟件、網(wǎng)絡(luò)或操作系統(tǒng)的平臺上。C/S應(yīng)用程序中負(fù)責(zé)尋找數(shù)據(jù)的部分只需訪問一個中間件系統(tǒng),由中間件完成到網(wǎng)絡(luò)中找到數(shù)據(jù)源或服務(wù),進(jìn)而實(shí)現(xiàn)傳輸客戶請求、重組答復(fù)信息,最后將結(jié)果送回應(yīng)用程序的任務(wù)。 本次設(shè)計的中間件是交易型中間件。交易型中間件是指用在不同行業(yè)、不同部門間的通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的軟件,在不同的行業(yè)、不同的系統(tǒng)間提供通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的橋梁作用。本次設(shè)計不是基于WEB的,不需要很多與WEB開發(fā)相關(guān)的知識,主要是利用UNIX系統(tǒng)提供的Socket庫在網(wǎng)絡(luò)底層,開發(fā)交易型中間件。本次設(shè)計的目的是掌握利用軟件工程的思想方法和TCP/IP設(shè)計出用于不同行業(yè)和部門間的通訊轉(zhuǎn)發(fā)或協(xié)議轉(zhuǎn)換軟件—中間件,尤其掌握這種設(shè)計的思想和方法。目錄一、系統(tǒng)環(huán)境 1硬件環(huán)境 1軟件環(huán)境 1二、設(shè)計目的及要求 2 2 2三、總體設(shè)計 4 4 5 6四、詳細(xì)設(shè)計 7 7 MySQL數(shù)據(jù)庫在Unix的使用 8 軟件包需要 8 MySQL服務(wù)配置 9 MySQL客戶端命令行工具 9 客戶端命令行 9 MySQL開發(fā)接口 9五、調(diào)試與測試 11 11 11六、設(shè)計中遇到的問題及解決方法 22七、源程序清單 23 23 24 33 36八、心得體會 57九、參考文獻(xiàn) 58一、系統(tǒng)環(huán)境硬件環(huán)境Pentium(R), 4 cpu ,512MB內(nèi)存。軟件環(huán)境該圖書管理系統(tǒng)是在windows XP操作系統(tǒng)下使用Linux虛擬機(jī)環(huán)境,使用GNU C,在UNIX/Linux make開發(fā)工具的管理和控制下,利用UNIX/Linux Socket庫和MySQL數(shù)據(jù)庫在網(wǎng)絡(luò)的底層進(jìn)行開發(fā)設(shè)計的。二、設(shè)計目的及要求基于UNIX Socket和MySQL數(shù)據(jù)庫,設(shè)計一個交易型中間件系統(tǒng)。這里的中間件是指交易型中間件。交易型中間件是指用在不同行業(yè)、不同部門間的通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的軟件,在不同的行業(yè)、不同的系統(tǒng)間提供通訊轉(zhuǎn)發(fā)和協(xié)議轉(zhuǎn)換的橋梁作用。例如電子商務(wù)、銀行代理業(yè)務(wù)軟件等都是這種類型的軟件。本設(shè)計不是基于WEB的,不需要很多與WEB開發(fā)相關(guān)的知識,主要是利用UNIX系統(tǒng)提供的Socket庫在網(wǎng)絡(luò)底層,開發(fā)交易型中間件。本設(shè)計的目的是使參與設(shè)計者掌握利用軟件工程的思想方法和TCP/IP設(shè)計出用于不同行業(yè)和部門間的通訊轉(zhuǎn)發(fā)或協(xié)議轉(zhuǎn)換軟件—中間件,尤其掌握這種設(shè)計的思想和方法。在很多場合中間件部分是必須的,因?yàn)樵诓煌男袠I(yè)的網(wǎng)絡(luò)是不允許直通的。這里有政策的因素,有制度的要求,也有技術(shù)的成份。(1)客戶端客戶端程序可命名為client,要求帶有兩個命令行參數(shù)一個是服務(wù)(自己定義,并保存在/etc/services中,比如mysvr1 5678),另一個是目的主機(jī)(自己定義,并保存在/etc/hosts內(nèi),也可使用DNS來解析),缺省時為本機(jī)??蛻舳酥辽僖獙?shí)現(xiàn)如下功能:用戶管理;查詢;交易(交費(fèi),購物等);撤銷;留跡;本地業(yè)務(wù)統(tǒng)計。客戶端的環(huán)境可以是Windows系統(tǒng),也可以的Linux系統(tǒng)。(2)中間件中間件程序命名為middle,要帶有三個參數(shù),一個是用于服務(wù)器的服務(wù)(名字,與客戶端同),第二個作為請求的服務(wù)(自己定義,并保存在/etc/services中,要區(qū)別于客戶端,比如mysvr2 5679),第三個為目的主機(jī)(定義在/etc/hosts內(nèi)),缺省時為本機(jī)。中間件要完成與客戶要求相符的功能:是本地的本地處理,否則發(fā)往服務(wù)器方。具體地是:接收客戶方數(shù)據(jù);組織服務(wù)器方所需數(shù)據(jù);重組服務(wù)方返回數(shù)據(jù),并返回給客戶方;留跡;本地業(yè)務(wù)統(tǒng)計。中間件的環(huán)境可以是Windows系統(tǒng),也可以的Linux系統(tǒng)。(3)服務(wù)器服務(wù)器程序命名為server,要求帶有一個服務(wù)參數(shù),與中間件的mysvr2同服務(wù)器方程序要完成客戶端或中間件提出的業(yè)務(wù)請求,并做好留跡工作。服務(wù)端環(huán)境必須是Linux系統(tǒng)。(4)留跡或log留跡或log工作在客戶端、中間件和服務(wù)器三方都要做,以供統(tǒng)計或核對使用??蛻舳嘶蛑虚g件方可以使用文本文件或數(shù)據(jù)庫,但在服務(wù)器方必須使MySql數(shù)據(jù)庫。三、總體設(shè)計設(shè)計過程中借助了中間件來實(shí)現(xiàn)主機(jī)和客戶機(jī)之間的鏈接,它的工作機(jī)制是:當(dāng)客戶端上的應(yīng)用程序需要從網(wǎng)絡(luò)中某個節(jié)點(diǎn)處獲取一定的數(shù)據(jù)或服務(wù)時,這些數(shù)據(jù)和服務(wù)可能處于一個運(yùn)行著和客戶端不同的硬、軟件、網(wǎng)絡(luò)或操作系統(tǒng)的平臺上。C/S應(yīng)用程序中負(fù)責(zé)尋找數(shù)據(jù)的部分只需訪問一個中間件系統(tǒng),由中間件完成到網(wǎng)絡(luò)中找到數(shù)據(jù)源或服務(wù),進(jìn)而實(shí)現(xiàn)傳輸客戶請求、重組答復(fù)信息,最后將結(jié)果送回應(yīng)用程序的任務(wù)。Server_mserver_1……MiddleClient_2Client_1…… 中間件服務(wù)框圖serverClient_nClient_1…… c/s客戶/服務(wù)器模式框圖socket()建立服務(wù)方套接字描述符為sSocket()建立服務(wù)方套接字,描述符為sConnect()建立服務(wù)方連接Send()和write()向服務(wù)方發(fā)送請求客戶方等待服務(wù)方Recv()和read()讀取服務(wù)方數(shù)據(jù)Close()關(guān)閉最初套接字s,結(jié)束服務(wù)器服務(wù)Close()關(guān)閉套接字ns,結(jié)束本次對話進(jìn)行服務(wù)處理成功后返回與s具有相同特性的套接字accept(s)等待客戶方鏈接Listen(s)通知TCP,準(zhǔn)備接受bind(s)綁定套接字與本地地址和端口recv()和read()通過ns讀取客戶方數(shù)據(jù)Send()和writer()向客戶方提供服務(wù)結(jié)果Close()關(guān)閉套接字s,結(jié)束本次通話 程序設(shè)計類圖 開始登錄結(jié)束查詢用戶管理員 輸入密碼續(xù)借刪除添加借書還書顯示借閱信息 請求服務(wù)中間件數(shù)據(jù)庫服務(wù)器 和數(shù)據(jù)庫交換數(shù)據(jù) 程序設(shè)計流程圖四、詳細(xì)設(shè)計 【1】創(chuàng)建套接字—socket() 應(yīng)用程序在使用套接字前,必須擁有一個套接字,系統(tǒng)調(diào)用socket()向應(yīng)用程序提供創(chuàng)建套接字的手段。其調(diào)用格式如下:include sys/int socket(int domain, int type, int protocol)。該調(diào)用要接收3個參數(shù),根據(jù)這3個參數(shù)建立一個套接字,并將相應(yīng)的資源分配給它,同時返回一個整型套接字號,只和一個特定的協(xié)議相聯(lián)系。實(shí)際上指定了相關(guān)五元組中的“協(xié)議”這一元。domain(協(xié)議族):AF_INET,AF_UNIX,AF_IPXtype(類型):SOCK_STREAM,SOCK_DGRAMprotocol(協(xié)議):0讓系統(tǒng)使用指定類型和協(xié)議族上的默認(rèn)協(xié)議?!?】綁定本地地址—bind()當(dāng)一個套接字用socket()創(chuàng)建后,存在一個名字空間(地址族),但它沒有被命名,bind()將套接字地址(包括本地主機(jī)地址和本地端口地址)與所創(chuàng)建的套接字號綁定起來,即將名字賦予套接字,以指定本地半相關(guān)。其調(diào)用格式如下:include sys/ int bind(int sockfd,const struct sockaddr *my_addr, int addrlen)。說明:sockfd:為socket成功時的返回值—套接字描述符。my_addr為本方地址數(shù)據(jù)結(jié)構(gòu)。addrlen=sizeof(my_addr).【3】監(jiān)聽連接—listen() 此調(diào)用用于面向連接服務(wù)器,表明它愿意接收連接。1isten()需在accept()之前調(diào)用,其調(diào)用格式如下:include sys/int listen(int s,int backlog)。listen()在執(zhí)行調(diào)用過程中可為沒有調(diào)用過bind()的套接字s完成所必需的連接,并建立長度為backlog的請求連接隊列。backlog定義最大長度的socket等待隊列。默認(rèn)值為5. 【4】connect(),accept()這兩個系統(tǒng)調(diào)用用于完成一個完整相關(guān)的建立,其中connect()用于客戶建立連接。accept()用于使服務(wù)器等待來自某客戶進(jìn)程的實(shí)際連接。①connect功能:客戶方調(diào)用發(fā)出的請求用法:int connect(int sockfd,const structct sockaddr * server_addr, socklen_t addrlen)。 在面向連接的協(xié)議中,該調(diào)用導(dǎo)致本地系統(tǒng)和外部系統(tǒng)之間連接實(shí)際建立。 ②accept服務(wù)器調(diào)用,從等待從編號為s的套接字上接受客戶連接請求用法:int accept(int s, struct sockaddr *addr, socklen_t addrlen)。 ③connect與accept的說明調(diào)用accept()后,服務(wù)器等待從編號為s的套接字上接受客戶連接請求,連接請求是由客戶方的connect()調(diào)用發(fā)出的。當(dāng)有連接請求到達(dá)時,accept()調(diào)用將請求連接隊列上的第一個客戶方套接字地址及長度放入addr和addrlen,并創(chuàng)建一個與s有相同特性的新套接字號。新的套接字可用于處理服務(wù)器并發(fā)請求。 【5】數(shù)據(jù)傳輸:send()/write與recv()/read() 當(dāng)一個連接建立以后,就可以傳輸數(shù)據(jù)了。常用的系統(tǒng)調(diào)用有send()和recv()。send()調(diào)用用于在參數(shù)s指定的已連接的數(shù)據(jù)報或流套接字上發(fā)送輸出數(shù)據(jù),格式如下:int send(int s,void *buf,int len,int flags)。int recv(int s,void *buf,int len,int flags)。 recv/send可由文件系統(tǒng)調(diào)用read/write所取代。在處理二進(jìn)制數(shù)據(jù)處理時,后者優(yōu)于前者?!?】關(guān)閉套接字:close()close()關(guān)閉套接字s,并釋放分配給該套接字的資源。如果s涉及一個打開的TCP連接,則該連接被釋放。close()的調(diào)用格式如下:int close(int s); MySQL數(shù)據(jù)庫在Unix的使用 軟件包需要1)MySql服務(wù)器2)MySql客戶端3)MySql開發(fā)接口庫 MySQL服務(wù)配置◆ mysqyld服務(wù)要運(yùn)行起來。最好是設(shè)為開機(jī)自動啟動。方法:◆ chkconfig –level 2345 mysqld on◆ ntsysv◆ service mysqld start / stop /restart◆ 圖形方式 MySQL客戶端命令行工具M(jìn)ySqyl客戶端命令行工具為mysql。其常用法為:mysql [OPTIONS] [database]
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1