資源簡介 (共26張PPT)第二章 信息系統(tǒng)的支撐技術2.6 網(wǎng)絡應用軟件開發(fā)學習目標借助工具與平臺開發(fā)網(wǎng)絡應用軟件。掌握網(wǎng)絡架構C/S和B/S的優(yōu)缺點。網(wǎng)絡軟件是網(wǎng)絡不可或缺的組成部分,離開網(wǎng)絡軟件,整個網(wǎng)絡將無法運作。怎樣才能開發(fā)出符合用戶需求的網(wǎng)絡軟件呢?軟件開發(fā)一般都需要基于某種程序設計語言及相應的開發(fā)工具或平臺來實現(xiàn)。新課講授知識點2.6.1:網(wǎng)絡應用開發(fā)概述在選擇開發(fā)平臺前,必須先了解網(wǎng)絡應用軟件的實現(xiàn)架構及不同分類。網(wǎng)絡應用軟件的實現(xiàn)架構有兩種,分別是_______________和_______________。1.客戶端/服務器架構(Client/Server 架構,簡稱_______)(1)概述:它可以充分利用客戶端與服務器端的硬件環(huán)境的優(yōu)勢,將任務合理地分配到客戶端和服務器端。①客戶端:主要完成用戶的具體業(yè)務,如人機交互、數(shù)據(jù)的輸入與輸出等。②服務器端:主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、系統(tǒng)維護和并發(fā)控制等。客戶端/服務器架構瀏覽器/服務器架構C/S架構(2)優(yōu)點:降低了系統(tǒng)的通信開銷和開發(fā)的難度。(3)缺點:客戶端軟件須安裝才能使用,給應用程序的升級和維護帶來一定的困難。2.瀏覽器/服務器架構(Browser/Server架構,簡稱_______)(1)概述:它是隨著Internet技術的興起,對C/S架構改進后產(chǎn)生的一種軟件系統(tǒng)體系結構。客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現(xiàn),應用程序基本上都集中于服務器端。B/S架構(2)優(yōu)點:客戶端無需專門的應用程序,用戶工作界面通過瀏覽器來實現(xiàn),應用程序基本上都集中于服務器端。由于客戶端無需專門程序,應用程序的升級和維護都可以在服務器端完成,升級和維護都較方便,極大地降低了成本和工作量。(3)缺點:服務器的負荷較重,對服務器的要求較高。架構 客戶端程序 系統(tǒng)的通訊開銷 開發(fā)的難度 應用程序的升級和維護 服務器負荷C/S架構 專用的應用程序 小 低 帶來一定的困難, 客戶端服務器端同時升級和維護 低B/S架構 瀏覽器 大 大 較方便, 只升級服務器端,降低了成本和工作量 重例1 小明搭建了一個“土壤濕度監(jiān)測系統(tǒng)”,能通過瀏覽器查看實時濕度數(shù)據(jù),當濕度小于某閾值時,信息系統(tǒng)自動開啟噴淋設備,大于某閾值時自動關閉噴淋設備。該系統(tǒng)的架構如圖所示:下列說法不正確的是 ( )A.該信息系統(tǒng)采用了B/S架構模式B.該信息系統(tǒng)具備閉環(huán)控制功能C.該信息系統(tǒng)僅傳輸了土壤濕度數(shù)據(jù)D.網(wǎng)絡是該信息系統(tǒng)中重要的支撐技術C解析:A選項Web服務器提供網(wǎng)頁瀏覽服務,因此是B/S架構。B選項指作為被控的輸出量以一定方式對輸入端施加控制影響的一種控制關系。C選項信息系統(tǒng)在工作時,肯定還要傳輸控制信息等。D選項網(wǎng)絡可將地理位置不同、功能獨立的多個計算機系統(tǒng)互聯(lián)起來。例1變式訓練 某公司現(xiàn)行的網(wǎng)絡系統(tǒng)架構是多年前搭建的,并專門配備了數(shù)名管理員負責公司內(nèi)部的通信軟件升級、維護,他們經(jīng)常需要在幾百甚至幾千部電腦之間來回奔跑,工作效率低。今年,公司提起了項目改造新方案,完成后只需要在服務器端升級和維護系統(tǒng)即可。該公司新的網(wǎng)絡系統(tǒng)架構是( )A.B/S架構B.S/C架構C.S/B架構D.C/S架構A解析:公司現(xiàn)行的網(wǎng)絡系統(tǒng)架構為客戶端/服務器(C/S)架構,管理員為員工升級維護軟件就必須到個人電腦上操作。升級后,管理員只需要維護服務器端,這種架構是B/S架構,員工只需要在個人電腦上使用瀏覽器完成工作。四個選項中B和C選項不屬于網(wǎng)絡系統(tǒng)架構。例2 小明搭建“室內(nèi)環(huán)境監(jiān)測系統(tǒng)”,實現(xiàn)如下功能:當室內(nèi)亮度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器放下窗簾,當窗臺濕度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器關閉窗戶,并且系統(tǒng)將采集到的數(shù)據(jù)通過室內(nèi) Wi-Fi 保存到服務器的數(shù)據(jù)庫中。系統(tǒng)架構示意圖如圖所示。下列說法不正確是 ( )A.搭建該系統(tǒng)需要配備光線傳感器和濕度傳感器B.該系統(tǒng)的網(wǎng)絡架構為 C/S 架構C.執(zhí)行器可以響應 PC 客戶端的請求D.該系統(tǒng)客戶端可以獲取輸入端傳感器的數(shù)據(jù)B解析:B選項題目中采用Web服務器,可知為B/S架構。C選項執(zhí)行器響應PC客戶端請求,執(zhí)行相應的動作。例2變式訓練 小王搭建“室內(nèi)環(huán)境監(jiān)測系統(tǒng)”,實現(xiàn)如下功能:當室內(nèi)亮度達到系統(tǒng)設定的閾值時,系統(tǒng)使用執(zhí)行器放下窗簾,當窗臺濕度達到系統(tǒng)設定的閾值時, 系統(tǒng)使用執(zhí)行器關閉窗戶,并且系統(tǒng)將采集到的數(shù)據(jù)通過室內(nèi) Wi Fi保存到服務器的數(shù)據(jù)庫中。系統(tǒng)架構示意圖如圖所示。下列說法不正確的是( )A.搭建該系統(tǒng)需要配備光敏傳感器和濕度傳感器B.該系統(tǒng)運行速度僅取決于硬件的性能C.本系統(tǒng)采用B/S網(wǎng)絡開發(fā)模式進行工作D.該系統(tǒng)客戶端可以通過網(wǎng)絡獲取輸入端傳感器的數(shù)據(jù)B解析:該系統(tǒng)運行速度取決于軟件及硬件的綜合性能。知識點2.6.2:網(wǎng)絡應用的規(guī)劃設計1.過程(1)對網(wǎng)絡應用進行詳細的分析。(2)在分析的基礎上確定應用的架構模式,并根據(jù)架構模式選擇合適的開發(fā)工具及現(xiàn)有的應用框架,同時明確應用的各個功能模塊。(3)用統(tǒng)一、規(guī)范的圖表和書面語言表達出來。(1)應用的目的:應用要解決的問題、軟件的輸入數(shù)據(jù)和輸出數(shù)據(jù)。(2)應用的總體架構:應用架構模式、開發(fā)工具、應用框架。(3)應用的功能組成:應用的各個功能模塊。(4)界面設計及代碼實現(xiàn):按各個功能模塊的作用設計出相應的人機交互界面,完成代碼編制。2.舉例:“網(wǎng)絡聊天機器人”應用的規(guī)劃設計知識點2.6.3:編寫網(wǎng)絡應用程序編寫網(wǎng)絡應用程序首先要確定相應的Web應用框架,在Python中常用的Web應用框架有Flask、Django及Tornado,其中Flask Web框架非常精簡,屬于小型框架。Flask Web框架具有一個包含基本服務的核心,并且是一個可擴展的框架,很多功能可以通過擴展來實現(xiàn)。它允許開發(fā)者任意挑選符合項目需求的擴展,甚至可以自行開發(fā)。1.導入框架模塊為Web應用程序導入Flask框架及擴展的模塊,以便在程序代碼中使用框架提供的功能,其代碼如下:from flask import Flask #導入Flask框架模塊2.創(chuàng)建應用實例為Web應用程序創(chuàng)建Flask類的對象,即創(chuàng)建一個應用實例,其代碼如下:app = Flask(_name_) #運用Fask框架建立Web應用APP,該APP已經(jīng)具備了Web應用的基本功能,開發(fā)者可以在此基礎上增加自己的功能。3.編寫路由和視圖函數(shù)建立URL到程序代碼的關聯(lián),其代碼如下:@app.route('/') #路由def index(): #視圖函數(shù) return'這是我的第一個網(wǎng)頁程序!'當用戶在瀏覽器中向Web服務器發(fā)出請求時,Web服務器會把請求發(fā)送給Flask應用實例,如上面的APP。Flask通過路由和視圖函數(shù)的方法,使應用實例知道每個URL與哪些Python代碼相關聯(lián)并運行。4.啟動Web應用其代碼如下:if _name_ == '_main_':app.run()在Flask框架中Web服務器是自帶的,調(diào)用應用實例APP的run方法就會啟動該集成的開發(fā)Web服務器,服務器啟動后就會進入輪詢狀態(tài),等待用戶訪問并處理用戶請求,直到程序停止。“_name_=='_main_'”是確保只有當直接執(zhí)行這個腳本時才啟動開發(fā)Web服務器,如:Python web.py。注:開發(fā)“網(wǎng)絡聊天機器人”,須在原有的Web應用程序的基礎上解決兩個問題:一是機器人對話能力的實現(xiàn);二是網(wǎng)頁上的輸入與輸出。①機器人對話能力——通過導入AIML模塊來解決AIML(Artificial Intelligence MarkupLanguage)即人工智能標記語言,本模塊由理查·華萊士(Richard Wallace)發(fā)明。目前AIML已經(jīng)有了Java、Python、C、C#及Pascal等語言的版本。②網(wǎng)頁上的輸入與輸出——通過在網(wǎng)頁中使用提交表單(Form)來解決表單收集用戶的聊天語句,提交至Web服務器,然后由Web服務器中的AIML調(diào)用respond接口處理這些語句,最后將機器人的回復(即處理結果)發(fā)送至訪問者的瀏覽器并輸出。導入flask_wtf擴展的FlaskForm模塊,實現(xiàn)在Flask Web應用程序中使用表單;導入Flask的render_template模塊,實現(xiàn)網(wǎng)頁模板的使用,使代碼更加精簡。知識點2.6.4:調(diào)試發(fā)布程序在編寫過程中會出現(xiàn)錯誤,需要進行調(diào)試、修正錯誤。錯誤一般包括兩類:相對簡單的語法錯誤,在程序執(zhí)行時Python會檢查出相應的錯誤并給出修改建議;相對復雜的邏輯錯誤,需要編程人員仔細研究和分析。調(diào)試結束后,在確保應用能正確運行的情況下,才能將其發(fā)布至服務器,供用戶使用。1.調(diào)試模式Flask Web框架的調(diào)試模式功能:在開發(fā)配置或程序代碼中設置debug=True打開調(diào)試功能。注意不要在實際的網(wǎng)站應用環(huán)境,即生產(chǎn)環(huán)境中使用調(diào)試模式,否則將會是一個巨大的安全漏洞。那么在實際生產(chǎn)環(huán)境中如果程序出現(xiàn)問題,該如何記錄以備開發(fā)人員檢查呢?開發(fā)人員往往會利用_____________________________進行報錯,以及用_________進行記錄等調(diào)試方法對程序進行查錯及排錯。電子郵件來發(fā)送程序運行的錯誤信息日志文件2.應用發(fā)布在開發(fā)環(huán)境中通過如下命令就可以啟動Web應用,以供他人訪問使用:Python 應用程序.py runserver但這是Flask Web框架自帶的開發(fā)Web服務器,它僅供開發(fā)者調(diào)試使用,本身不夠強健、安全和高效,同時也沒有顧及實際應用中隨著用戶數(shù)量增加而產(chǎn)生的性能問題,因此不適合作為實際生產(chǎn)環(huán)境使用。在實際生產(chǎn)環(huán)境中常見的可靠的Web服務器有很多,如IIS、 Apache、Nginx、Tomcat及WebLogic等,只需將自己編寫的Web應用程序以WSGI應用或CGI形式發(fā)布至相應的Web服務器即可。例3 小明使用Flask模塊制作了某信息系統(tǒng)的用戶登錄驗證子系統(tǒng),其各個路由、視圖說明以及實現(xiàn)程序如下所示,請回答相關問題。from flask import Flask, render_template, redirectapp=Flask(_ _name_ _)@app.route(" / ")def index():return render_template(" index.html ")①____________def login():#查詢代碼略if len(cur.fetchall()) >0: #找到用戶的相關信息return render_template(" manage.html " , username=usr)else:return redirect('/')@app.route(" /user/ ")def user(name):return " Hello, " +name+ " ! "if __name_ _== " __main__ " :app.run(②________)路由地址 視圖說明/ 系統(tǒng)首頁/user/ 顯示歡迎信息以及用戶對應的信息/system?name=xiaoming&password=secretinf 傳遞登錄信息完成驗證后顯示系統(tǒng)管理頁面(1)程序第①空是傳遞登錄信息,進行登錄驗證并顯示系統(tǒng)管理頁面的路由與視圖函數(shù),那么該處填寫的語句是____________(單選,選填字母)。[email protected](" /system " ,methods=[" GET "])[email protected](" /login " ,methods=[" GET "])[email protected](" /user " ,methods=[" POST "])[email protected](" /login " ,methods=[" POST " , " GET "])(2)若該Web服務器的地址是192.168.0.1,運行端口是8080,程序試運行時需打開調(diào)試功能,那么第②空應該填寫的語句是__________(單選,選填字母)。A.host= " 192.168.0.1 " ,port= " 8080 " ,debug=TrueB.host= " http:∥192.168.0.1 " , port= " 8080 " ,debug=TrueC.host= " http:∥192.168.0.1:8080 " ,debug=TrueD.host= " 192.168.0.1:8080 " ,port= " 8080”(3)該程序運行后,在瀏覽器輸入網(wǎng)址http:/192.168.0.1:8080/user/xiaoming,網(wǎng)頁顯示內(nèi)容為:________________AAHello, xiaoming!例3變式訓練 某校園飯卡查詢系統(tǒng),其實現(xiàn)的部分代碼如下所示:from flask import Flaskapp=Flask(__name__)@app.route(" /sy ")def welcome():#實現(xiàn)過程的代碼略return "歡迎登錄該系統(tǒng)! "@app.route(" /fw ")def hy():xm=request.args.get(" name ")return "歡迎”+xm+”同學訪問該系統(tǒng)! "if __name__== ”__main__”:app.run(host=”192.168.0.102 ”,port=5050)某同學訪問后,網(wǎng)頁顯示:“歡迎小李同學訪問該系統(tǒng)! ”,則該同學訪問的網(wǎng)址為( )A.http:∥192.168.0.102:5050/syB.http:∥192.168.0.102:5050/sy?name=小李C.http:∥192.168.0.102:5050/fwD.http:∥192.168.0.102:5050/fw?name=小李D例4 小明家最近申請了寬帶,想搭建一個家庭網(wǎng)絡系統(tǒng),家里配備了1臺計算機及多臺筆記本和移動終端。其搭建的家庭網(wǎng)絡示意圖如下圖所示,請回答下列問題:(1)小明家的網(wǎng)絡系統(tǒng)中包含了常見的硬件設備,其中有計算機硬件、移動終端硬件和通信網(wǎng)絡等。其中屬于移動終端設備的有__(填序號)(2)從圖中可以看出,小明家的外網(wǎng)接入是有線的光纖,他的臺式電腦是通過______(選填:無線/有線)方式接入網(wǎng),而他家的移動終端設備采用______(選填:無線/有線)方式接入網(wǎng),其中移動終端是通過____________(選填:無線路由器/交換機)設備來實現(xiàn)的。①②③有線無線無線路由器課堂小結機器人對話能力的實現(xiàn):AIML模塊網(wǎng)頁上的輸入與輸出:表單調(diào)試發(fā)布:調(diào)試模式、應用發(fā)布 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫