張贊波
(廣東輕工職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,廣東 廣州 510300)
Web服務(wù)技術(shù)的案例教學(xué)
張贊波
(廣東輕工職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,廣東廣州510300)
Web服務(wù)在網(wǎng)絡(luò)通信和網(wǎng)絡(luò)數(shù)據(jù)傳輸中得到廣泛應(yīng)用。在高職高專的應(yīng)用開發(fā)課程中,我們以某市海關(guān)電子卡口系統(tǒng)的升級(jí)為案例,說明Web服務(wù)的原理與應(yīng)用,并以該系統(tǒng)Web服務(wù)模塊的模擬程序作為實(shí)訓(xùn)任務(wù),引導(dǎo)學(xué)生進(jìn)行Web服務(wù)開發(fā)的實(shí)踐,取得了良好的教學(xué)效果。
Web服務(wù);教學(xué)設(shè)計(jì);教學(xué)案例
Web服務(wù)是指為一些功能提供接口,使得它們可以被Web上的另外一些程序訪問和使用的一種技術(shù)[1]。同時(shí),Web服務(wù)亦可以理解為能夠通過網(wǎng)絡(luò)使用的自包含的軟件模塊。Web服務(wù)是基于“軟件即為服務(wù)”的理念發(fā)展起來的新技術(shù)[1]。在應(yīng)用服務(wù)提供商軟件模型中,應(yīng)用服務(wù)提供商(Application Service Provider)將軟件以及相關(guān)的要素作為一個(gè)整體解決方案打包,提供給用戶作為一個(gè)服務(wù)來訂閱。相比于Web應(yīng)用程序,Web服務(wù)具有更高的靈活性,具有更強(qiáng)的自我描述能力,為應(yīng)用服務(wù)提供商提供了更靈活的解決方案。
Web服務(wù)技術(shù)可以作為分布計(jì)算的一個(gè)基礎(chǔ),其核心功能可以理解為網(wǎng)絡(luò)上的數(shù)據(jù)傳輸。它能使運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成[2]。隨著互聯(lián)網(wǎng)的發(fā)展,企業(yè)網(wǎng)絡(luò)化的日漸成熟,為了降低成本和提高效率,企業(yè)與企業(yè)之間的集成日益增加,通過Web通信的需求不斷增長(zhǎng)。而在單個(gè)企業(yè)的內(nèi)部,系統(tǒng)和應(yīng)用程序越來越多地使用分布式架構(gòu),多個(gè)模塊之間也經(jīng)常需要通過互聯(lián)網(wǎng)連接,這同樣造成了Web通信的需求。借助傳統(tǒng)的通信協(xié)議,例如Socket編程等,能夠解決Web通信的部分問題。但是存在諸多的局限性,如難以解決跨平臺(tái)和通用性問題,在靈活性和可集成性方面也不如Web服務(wù)。因此基于Web服務(wù)的Web通信越來越受到重視并被廣泛應(yīng)用。
在高職高專的應(yīng)用開發(fā)教學(xué)中,我們指導(dǎo)學(xué)生開發(fā)多種類型的應(yīng)用,包括桌面應(yīng)用、Web應(yīng)用和移動(dòng)應(yīng)用等。由于Web服務(wù)的重要性,我們也將Web服務(wù)的教學(xué)引入到.NET的課程中。主要通過實(shí)訓(xùn)課上結(jié)合案例教學(xué)講解。
在高職計(jì)算機(jī)專業(yè)課程的教學(xué)中,我們堅(jiān)持與企業(yè)的緊密聯(lián)系與合作。從專業(yè)方向的選擇、教學(xué)計(jì)劃的制定、課程的設(shè)置等方面,我們均參考相關(guān)企業(yè)近年的發(fā)展趨勢(shì),以及其對(duì)人才技能的需求來進(jìn)行。而授課內(nèi)容的具體設(shè)計(jì),我們也經(jīng)常采用企業(yè)的一些實(shí)際項(xiàng)目作為理論或?qū)嵺`教學(xué)的借鑒。對(duì)Web服務(wù)的教學(xué),我們參考了廣州市某公司開發(fā)的某市海關(guān)電子通關(guān)系統(tǒng),采用其中的Web服務(wù)通信模塊,根據(jù)我們授課的需要對(duì)其進(jìn)行一些修改以后,作為理論講解和實(shí)訓(xùn)項(xiàng)目。
為使得其電子卡口系統(tǒng)兼容散貨業(yè)務(wù),某市海關(guān)擬參照當(dāng)前流行的技術(shù)規(guī)范,對(duì)海關(guān)總署電子卡口系統(tǒng)進(jìn)行改造與升級(jí)。
升級(jí)后的海關(guān)電子卡口系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1。系統(tǒng)分為“場(chǎng)所端卡口”和“海關(guān)端卡口”兩部分。場(chǎng)所端讀取通關(guān)車輛和貨物數(shù)據(jù),送往海關(guān)端。海關(guān)端前臺(tái)通過卡口控制器采集數(shù)據(jù)以后,送往總關(guān)電子卡口管理服務(wù)器,通過服務(wù)器的業(yè)務(wù)邏輯進(jìn)行判斷,最后決定是否放行,將相關(guān)的信息通過卡口控制器返回給電子欄桿。
圖1 電子卡口系統(tǒng)結(jié)構(gòu)
“場(chǎng)所端卡口”和“海關(guān)端卡口”局域網(wǎng)之間物理隔離,相互不能直接訪問。兩部分卡口系統(tǒng)通過RS232串口通訊的方式進(jìn)行信息交換。
前端采集和后臺(tái)卡口管理服務(wù)之間原來采用Socket通訊方式。根據(jù)系統(tǒng)升級(jí)的需求,采用Web Service方式取代Socket通訊實(shí)現(xiàn)前端采集和后臺(tái)卡口管理服務(wù)間的數(shù)據(jù)傳輸,見圖2。Web Service服務(wù)部署在總關(guān)電子卡口管理服務(wù)器上,實(shí)時(shí)響應(yīng)各個(gè)現(xiàn)場(chǎng)前端采集的服務(wù)請(qǐng)求。
圖2 電子卡口系統(tǒng)升級(jí)示意圖
我們采用電子卡口系統(tǒng)的Web服務(wù)模塊作為教學(xué)案例。在理論教學(xué)中,我們介紹整個(gè)電子卡口系統(tǒng),并重點(diǎn)介紹Web服務(wù)模塊。結(jié)合這個(gè)實(shí)例來講解Web服務(wù)的原理及其應(yīng)用。由于有實(shí)際案例,學(xué)生通過學(xué)習(xí)Web服務(wù)在整個(gè)電子卡口系統(tǒng)中所處的地位和所起的作用,能更深入理解Web服務(wù)的應(yīng)用。
在實(shí)訓(xùn)環(huán)節(jié)中,我們要求學(xué)生實(shí)現(xiàn)該Web服務(wù)。由于在課堂和實(shí)驗(yàn)室中并不具備系統(tǒng)的硬件設(shè)備,所以我們的目標(biāo)是以程序模擬電子卡口系統(tǒng)的Web服務(wù)數(shù)據(jù)傳輸模塊。該模塊由兩個(gè)部分組成,其中一部分為卡口管理服務(wù)器上Web服務(wù)的服務(wù)端,另一部分為卡口工控機(jī)中調(diào)用Web服務(wù)的軟件模塊。
在卡口管理服務(wù)器端實(shí)現(xiàn)Web服務(wù)。該Web服務(wù)接收采集服務(wù)發(fā)送來的數(shù)據(jù),錄入數(shù)據(jù)庫(kù),根據(jù)業(yè)務(wù)邏輯判斷是否放行,產(chǎn)生欄桿抬降信號(hào),返回給采集服務(wù)。
在卡口工控機(jī)端,采用多線程模式模擬一個(gè)輸入模塊。以用戶輸入代替通過RS232串口通訊讀入的通關(guān)數(shù)據(jù)。當(dāng)有數(shù)據(jù)輸入,該模塊調(diào)用服務(wù)器端的Web服務(wù)程序,通過該Web服務(wù)實(shí)現(xiàn)數(shù)據(jù)錄入總關(guān)數(shù)據(jù)庫(kù)和判斷是否放行的功能。通關(guān)的結(jié)果輸出到模擬程序的屏幕。
由于Web服務(wù)的數(shù)據(jù)可經(jīng)過互聯(lián)網(wǎng)傳輸,對(duì)于安全性提出了需求。我們?cè)趯?shí)訓(xùn)練習(xí)中參考原系統(tǒng)提出了以下的安全性需求:(1)對(duì)通過Web服務(wù)傳遞的前端采集數(shù)據(jù)及回執(zhí)數(shù)據(jù)應(yīng)當(dāng)采取必要的加密及壓縮處理。(2)對(duì)Web服務(wù)請(qǐng)求的合法性要做必要的判斷,過濾非法的Web服務(wù)調(diào)用(控制的方式可以考慮IP訪問控制、客戶端密鑰控制等一種或多種)。
在理論課上,結(jié)合海關(guān)電子卡口系統(tǒng),我們介紹了Web服務(wù)的原理及其應(yīng)用。我們進(jìn)一步設(shè)計(jì)了實(shí)訓(xùn)任務(wù),實(shí)現(xiàn)對(duì)電子卡口系統(tǒng)Web服務(wù)模塊的模擬。包括對(duì)Web服務(wù)的服務(wù)器端和系統(tǒng)前端數(shù)據(jù)采集模塊的模擬。在實(shí)訓(xùn)中,學(xué)生以三至四人為一個(gè)小組,完成系統(tǒng)分析與設(shè)計(jì)的相關(guān)文檔,以及模擬程序開發(fā)。
由于有典型的案例,學(xué)生容易理解Web服務(wù)相關(guān)的抽象概念。同時(shí),對(duì)Web服務(wù)的實(shí)際應(yīng)用有更深刻的印象。在實(shí)訓(xùn)過程中,大部分小組能夠順利完成模擬程序的開發(fā)、調(diào)試與測(cè)試。課程教學(xué)效果良好。
[1]M.P.Papazoglou,龔玲,張?jiān)茲g.Web服務(wù)原理和技術(shù)[M].北京:機(jī)械工業(yè)出版社,2013.
[2]J.Bustos,K.Watson,侯彧譯..NET Web服務(wù)入門經(jīng)典——C#編程篇[M].北京:清華大學(xué)出版社,2003.
Web Service Case Teaching
Zhang Zanbo
(Department of Computer Engineering,Guangdong Industry Polytechic,Guangzhou 510300,Guangdong)
Web service is widely used in network communication and network data transfer.In the application development courses of higher vocational college computer specialty,we use a customs electronic checkpost system as a case to illustrate the principle and application of Web Services.We further assign the task of simulating the Web services modules of the system for practical training.The teaching effect is good.
Web service;teaching design;teaching case
G424.2;G642.4
A
1008-6609(2016)06-0011-02
張贊波,男,廣東潮州人,博士,副教授,研究方向:圖論和算法。
國(guó)家留學(xué)基金,項(xiàng)目編號(hào):201508440189;國(guó)家自然科學(xué)基金,項(xiàng)目編號(hào):11471342;廣東省自然科學(xué)基金,項(xiàng)目編號(hào):2016A030313829。