999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

樹莓派在軟件工程專業教學中的應用研究

2020-10-09 11:01:23汪文彬吳淑婷馬玉春
軟件 2020年8期

汪文彬 吳淑婷 馬玉春

摘 ?要: 軟件工程專業的教學實踐離不開服務器,而服務器環境的搭建比較繁瑣,服務器本身也相對昂貴,如果用單機實踐客戶機與服務器,與實際生產環境也不一致。樹莓派是卡片式計算機,利用樹莓派搭建服務器,價格低廉,在使用過程中,除了電源不需要任何外接設備,可以用來便捷地開發Web應用程序及網絡數據庫管理系統,對學生來說比較直觀,容易理解。

關鍵詞: 樹莓派;Linux;MySQL;Tomcat

中圖分類號: TP311.5 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.001

本文著錄格式:汪文彬,吳淑婷,馬玉春. 樹莓派在軟件工程專業教學中的應用研究[J]. 軟件,2020,41(08):01-05

【Abstract】: The teaching practice of software engineering cannot be carried out without the server, and the construction of the server environment is very complicated, and the server itself is relatively expensive. If a single machine is used as both the client and server, it is not consistent with the actual production environment. Raspberry Pi is a card type computer; it is feasible to construct a multifunctional server at a low price with Raspberry Pi. The server does not need any external equipment except the power supply, and can be used to develop Web applications and network database management system conveniently, which is more intuitive and easy for students to understand.

【Key words】: Raspberry pi; Linux; MySQL; Tomcat

0 ?引言

軟件工程專業的特點之一,就是在掌握專業理論的條件下,通過在實踐中反復試錯來檢驗和強化理論,從而將理論知識演變為自己的經驗,也通過實踐來體現理論的價值,為將來的謀職或創業做好準備。現代應用軟件的開發離不開服務器,跟早期傳統的單機桌面應用程序不一樣。因而,為了節省設備,一般采用單機充當客戶機(包括瀏覽器)和服務器,對學生來說不直觀,跟實際生產環境也不一樣。

樹莓派是一種卡片式計算機,只有信用卡大小,現在已經發展到4B版本,最高內建4G內存,可以滿足一臺簡單服務器的基本需要。樹莓派通過Wi-Fi建立無線連接,開通SSH,這樣可以借助軟件工具,利用臺式機來輸入樹莓派命令;安裝FTP服務器,可以在樹莓派和臺式機之間傳送文件;在樹莓派上安裝MySQL服務器,則可以用來實踐網絡數據庫的開發;在樹莓派上搭建Tomcat服務器,可以將Web應用程序部署到樹莓派上。將此樹莓派接上電源,無需外接任何設備,則一個宿舍的同學均可以比較直觀地實踐以上所有任務。

1 ?操作系統的燒錄與基本配置

樹莓派使用TF(T-Flash)卡來安裝系統,為了得到較好的性能,一般選擇閃迪(SanDisk)10速(寫入速度為10 MB/s),32G容量的TF卡,基本能夠較好地滿足需要。另外還有超高速(Ultra High Speed,UHS)TF卡,可以達到30 MB/s的寫入速度。樹莓派中可以安裝多種操作系統,一般下載文獻[1]中的官方版本(Debian版,Linux的發行版之一),該版本兼容性好,本文以此版本展開。另外,Ubuntu MATE系統的可視化效果更好,可以較好地通過該系統支持USB接口的打印機實現網絡共享,但目前沒有4B版本的系統;Windows 10 IoT Core 系統可以較好地支持物聯網應用,但該系統不能直接燒錄,需要在線安裝。

系統映像下載后,通過Win32DiskImager工具寫入TF卡,插入樹莓派中對應的插槽,連接鍵盤、鼠標和HDMI顯示器,插上網線,上電啟動。初始啟動需要設置國家(Country)、語言(Language)和時區(Time-zone)等,勾選使用美國鍵盤(Use US keyboard),否則有些字符無法輸出。缺省用戶名為pi,設置一個自己喜歡的用戶密碼。無需設置Wi-Fi,使用如下第(1)條命令修改設置,第(2)條是配置中的文本內容,這里輸入了一個IP地址的DNS,如果有多個IP地址,以空格分隔即可。

sudo nano /etc/dhcpcd.conf (1)

static domain_name_servers=114.114.114.114 (2)

有線比無線的速度快得多。輸入命令sudo reboot,啟動樹莓派,利用有線更新系統,如下第(3)條命令讀取需要更新的軟件包列表,第(4)條完成系統軟件的更新。如果更新不完整,可以添加參數“—fix- missing”,修補丟失的軟件包,然后重新啟動系統。

sudo apt-get update [--fix-missing] (3)

sudo apt-get dist-upgrade [--fix-missing] (4)

燒錄好的樹莓派在初始狀態下沒有root密碼。在軟件安裝和系統配置過程中,有時需要root權限。為了更好地使用系統,可以使用shell命令sudo passwd root來添加root密碼。

2 ?SSH與FTP的安裝及配置

SSH連接比Telnet遠程桌面連接使用更為安全,已經成為行業標準。使用SSH連接登錄樹莓派,可以對樹莓派進行遠程控制與編程開發。樹莓派最終作為一個只需要連接電源即可工作的服務器,因而,需要配置好SSH連接,以便輸入遠程命令。安裝FTP服務器則方便臺式機與樹莓派之間傳送文件,這樣連U盤也不需要了。

通過命令sudo raspi-config打開系統設置,選擇 Interfacing Options -> SSH,設置SSH Enabled,保存退出。通過第(5)條命令安裝SSH服務,然后打開/etc/rc.local文件,在語句“exit 0”之前加入第(6)條命令,這樣即可開機自動啟動SSH服務。圖1為在Windows 10 平臺下,通過PuTTY工具建立與樹莓派的SSH連接,設置樹莓派參數的效果。

sudo apt-get install openssh-server (5)

/etc/init.d/ssh start (6)

在Linux系統中,可供選擇的FTP服務器種類眾多。vsftpd(Very Secure FTP Daemon,即非常安全的FTP進程)是一個基于GPL發布的類UNIX類操作系統上運行的FTP服務器,支持很多其他傳統的FTP服務器不支持的良好特性,小巧輕快,安全易用,十分適合樹莓派。通過第(7)條命令安裝FTP服務器,第(8)條命令啟動服務。但是需要將/etc/vsftpd.conf文件中的local_enable變量設置為YES(即允許本地訪問),write_enable變量設置為YES(即允許寫操作)。

sudo apt-get install vsftpd (7)

sudo service vsftpd start (8)

配置完畢,重新啟動樹莓派,即可在臺式機上通過“ftp IP”命令(IP替換為具體的地址)連接樹莓派,輸入第1節配置的用戶名pi和對應的密碼即可。登錄成功后,采用lcd命令切換本地路徑,!dir顯示本地目錄和文件;cd命令切換遠程路徑,ls命令顯示遠程目錄和文件;put命令上傳文件到樹莓派(缺省為pi目錄),get命令從樹莓派(缺省為pi目錄)下載文件。

雖然配置好了SSH和FTP服務,但是,還需要通過防火墻開放對應的端口。Linux防火墻的iptables過于繁瑣,ufw(ubuntu fireward 的縮寫)防火墻工具使用方便高效。通過命令(9)安裝ufw防火墻,命令(10)使能或者禁用防火墻,命令(11)缺省將所有端口關閉,命令(12)開放SSH默認端口22,命令(13)查看防火墻狀態,即打開了多少端口。相應地,FTP服務需要打開默認端口21,下文需要安裝的MySQL服務器需要打開默認端口3306,Tomcat服務器則需要打開默認端口8080,具體根據實際需要進行調整。

sudo apt-get install ufw (9)

sudo ufw enable/disable (10)

sudo ufw default deny (11)

sudo ufw allow 22 (12)

sudo ufw status (13)

3 ?MySQL數據庫服務器的安裝與配置

MySQL 是最流行的關系型數據庫管理系統之一,采用SQL 語言訪問數據庫,通用性比較強,目前使用該數據庫的主流公司與組織有Facebook、Github、YouTube、Twitter、PayPal、諾基亞、Spotify、Netflix 等。MySQL 軟件采用了雙授權政策,分為社區版(免費)和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫,高校也經常采用此數據庫系統用于教學。

MariaDB數據庫管理系統是MySQL的一個分支,由MySQL的創始人Michael Widenius主導開發,采用GPL授權許可,完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的替代品。4B版本的樹莓派只能安裝MariaDB,這里第(14)條命令即可完成安裝。為了能夠在其它計算機上也能訪問樹莓派上的MySQL數據庫,需要通過命令(15)修改文件中的bind-address,將本地IP地址“127.0.0.1”修改為“0.0.0.0”。通過命令(16)設置MySQL的root密碼。

sudo apt-get install default-mysql-server (14)

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf(15)

sudo mysqladmin -u root -p password (16)

當root密碼修改完成后,即可登錄MySQL數據庫,使用如下數據庫命令開啟root遠程登錄權限。

->USE mysql;

->update user set host='%' where user='root' and host='localhost';

->update mysql.user set plugin='mysql_native_ pass?word' wh?ere user='root';

->FLUSH PRIVILEGES;

->exit;

如此配置完成后,通過ufw開放3306端口即可遠程訪問MySQL數據庫系統,用于創建數據庫和數據表,執行查改刪操作。

4 ?通過Visual Basic .NET訪問MySQL數據庫

文獻[2]實現了一個基于Windows的事務提醒軟件(軟件名WinAlarm),方便辦公事務安排。但是,采用Access數據庫需要安裝Office辦公軟件,不夠便捷。如果在一個小公司,將需要提醒的事務放入一個MySQL服務器中,通過桌面程序共享,即可協調大家的工作。這里采用Visual Basic .NET(Express 2019版本)訪問MySQL數據庫,研發一個支持MySQL的Windows事務提醒軟件(WinAlarmMySQL)。MySQL數據庫是通過相關驅動程序被開發工具調用的,這里需要下載文獻[3]中所列的“Connector/NET”驅動程序,選擇8.0.19版的Windows安裝程序,安裝后的路徑如下所示,該驅動程序需要使用4.5.2版的.NET Framework框架。

新建項目WinAlarmMySQL,右擊項目,項目屬性-->應用程序-->目標框架,選擇.NET Framework 4.5.2.如果本機沒有該版本的框架,點擊“安裝其他框架”,到微軟站點下載相應的Windows框架安裝軟件即可。在項目屬性的“引用”部分添加對MySql.Data.dll的引用。

ADO.NET DataSet是數據的內存駐留表示形式,它提供了獨立于數據源的一致關系編程模型。DataSet 表示整個數據集,其中包含表、約束和表之間的關系。由于 DataSet 獨立于數據源,因此 DataSet 可以包含應用程序本地的數據,也可以包含來自多個數據源的數據。與現有數據源的交互通過 DataAdapter 適配器來控制。DataSet、DataAdapter 與數據源之間的關系如圖2所示。

本文利用圖2所示的數據庫模型讀寫數據。在項目中分別導入(Imports)MySql.Data和MySql.Data. MySqlClient兩個類。MySQL驅動提供了MySql?Con-nectionStringBuilder類來構建連接字符串,生成該對象的實例builder后,即可傳入用戶名、密碼、服務器名、端口號和數據庫名,通過builder的ConnectionString屬性獲得連接字符串conn.如下第(17)條語句得到適配器的實例adapter,傳入的第一個參數為SELECT語句sql,第二個參數conn是包含用戶名與密碼等的連接字符串,一條語句即實現了數據源的讀取,如圖2的模型所示。第(18)條語句生成DataSet實例ds,其中沒有數據。第(19)條語句通過Fill方法將數據填入ds,第(20)條語句得到數據表DataTable對象dt,這樣即可簡單地通過dt對象對二維關系表進行修改、添加和刪除操作。但是,對dt的操作僅限于內存,調用第(21)條函數,即可將數據寫入數據源。文獻[4]中設計的“Access數據庫類”詳細介紹了使用DataAdapter操作二維數據庫的方法,只要稍加改動即可用于操作MySQL數據庫。

adapter = New MySqlDataAdapter(sql, conn) (17)

ds = New DataSet() (18)

adapter.Fill(ds) (19)

dt = ds.Tables(0) (20)

adapter.Update(ds, dt.TableName) (21)

5 ?構建Web應用程序

在“Java程序設計”的教學過程中,一般選用免費的elipse版本作為開發工具,這里選擇文獻[5]的壓縮包,解壓縮以后即可直接使用。但需要先安裝JDK,并完成配置。構建Web應用程序是每個軟件工程專業學生必須掌握的技能,此版本的eclipse不能用來開發Web應用程序,需要通過主菜單路徑“Help->Install New Software->Work with下拉框”,選擇當前的版本安裝“Web, XML, Java EE and OSGI Enterprise Development”插件,打開Progress窗口可以查看安裝進度,安裝過程中提醒是否安裝沒有簽名的軟件,選擇全部同意即可。安裝完成后,plugins目錄下將增加400多個插件。關于eclipse的日期版本號,可以通過主菜單Help下的“About Eclipse IDE”子菜單查看。

安裝完Web插件,eclipse即可創建“Dynamic Web Project”,即Web應用程序。但Web應用程序需要Web服務器,這里同樣選用免費的Tomcat,從文獻[6]下載壓縮版,解壓縮后即可使用,conf子目錄下的server.xml文件中有缺省端口設置(默認8080),如果跟其它軟件相沖突,可以在這里調整。執行bin子目錄下的startup命令,即可啟動Web服務,這樣就可以在瀏覽器中打開Tomcat的默認主頁。

在開發Web應用程序的過程中,啟動Tomcat不是通過startup命令進行的,而是通過開發環境eclipse本身,因而,需要建立eclipse與Tomcat之間的關聯,即進行必要的配置。從主菜單開始,Window-> Preferences->Server ->Runtime Environment->Add,添加Apache Tomcat 9.0,并勾選Create a new local server(創建本地服務器)。接著右擊創建的Web項目,Java Build Path->Libraries->Add Library->Server Runtime,下一步選擇Apache Tomcat v9.0,這樣eclipse就建立了與Tomcat的關聯,并且添加了Tomcat的類庫支持。

Web應用程序離不開數據庫,這里仍然調用MySQL數據庫,因而,也需要對應的Java驅動程序,從文獻[7]中下載壓縮版,操作系統一欄選擇“Platform Independent(平臺無關)”,解壓縮以后將驅動包“mysql-connector-java-8.0.17.jar”復制到新建Web項目的WebContent\Web-INF\lib目錄下。以下為查詢數據庫的關鍵代碼,url中包括IP地址、開放的端口和數據庫名firstdb,sql中指示查詢數據表grade,最后得到數據集對象rs,通過一個循環(代碼略)即可列出所有數據。

Class.forName("com.mysql.cj.jdbc.Driver");

String url = "jdbc:mysql://192.168.1.105:3306/ firstdb";

Connection conn = DriverManager.getCon?nec-tion(url, "root", "123456");

Statement stat = conn.createStatement();

String sql = "select * from grade";

ResultSet rs = stat.executeQuery(sql);

6 ?部署Web應用程序

Web應用程序開發完成后,需要部署到服務器(樹莓派)。首先通過第(22)條命令安裝Java環境(無需配置),然后從文獻[7]下載Linux版本的Tomcat壓縮包,解壓縮后放到樹莓派的“/usr”目錄下。

sudo apt-get install oracle-java8-jdk (22)

運行Tomcat子目錄bin下的“./startup.sh”腳本啟動Tomcat,即可從瀏覽器訪問本地主頁。為了可以從其它計算機訪問,需要使用ufw工具開放默認端口8080。關閉Tomcat,執行對應的“./shutdown.sh”腳本即可。現在只是手動啟動和關閉Tomcat,在樹莓派投入使用后,需要開機自動啟動。可以在 /etc/init.d 目錄下構建一個服務腳本(命名為my-tomcat.sh),啟動該服務的時候,運行startup腳本;關閉Tomcat的時候,運行shutdown腳本。執行第(23)條命令將該服務腳本設置為可運行,通過第(24)條命令將該服務加入系統管理并設置默認啟動級別,第(25)條命令允許作為系統服務開機自動啟動。

sudo chmod +x /etc/init.d/my-tomcat.sh (23)

sudo update-rc.d my-tomcat.sh defaults (24)

sudo systemctl enable my-tomcat.sh (25)

從上一節導出Web項目TestMySQL.war,采用第2節介紹的FTP工具登錄樹莓派,通過put命令將Web項目上傳到樹莓派并復制到Tomcat的webapps子目錄,重新啟動樹莓派。在其它計算機上運行瀏覽器的效果如圖3所示,Tomcat是開機自動啟動的,也成功訪問了MySQL數據庫。

7 ?教學應用

在軟件公司工作,經常需要面對不同的操作系統以及多位員工之間的協作。作為軟件工程專業的學生,如果大學四年只守著一臺Windows計算機,既作為客戶機使用,又作為服務器使用,軟件部署界限不明顯,直觀體會不夠深刻,而且,客戶機與服務器位于一臺計算機上,也容易引起沖突。將樹莓派引入軟件工程專業的教學實踐,可以用來低成本熟悉Linux操作系統及對應的軟件開發;配置好Wi-Fi無線連接后,只需要樹莓派和電源適配器,即可提供SSH登錄,用來熟悉shell命令和簡單的代碼編寫;臺式機和樹莓派之間的文件傳送,不需要使用繁瑣的U盤,只要使用FTP功能即可;可以在SSH客戶端操作樹莓派、安裝和卸載軟件以及操作MySQL數據庫;也可以將Web應用程序部署到樹莓派,使其充當Web服務器的功能,在Web應用程序中讀寫MySQL中的數據。

8 ?結語

樹莓派采用Linux操作系統,價格低廉,攜帶方便。只要連接Wi-Fi,提供電源,即可充當多種服務器使用,并實現小范圍內共享,尤其適合軟件工程專業的學生在宿舍進行軟件實踐。本文重點提供了利用Visual Basic .NET調用MySQL數據庫的解決方案,以及在Web應用程序中使用Java調用MySQL數據庫的關鍵代碼與項目部署方案。此外,樹莓派還可以一條命令安裝可視化的Code Blocks開發環境,用來實踐Linux操作系統的底層軟件開發。樹莓派自帶的Python開發工具,可以廣泛應用于AI開發和硬件設計與操作[9]。

參考文獻

[1] Download Raspbian for Raspberry Pi[OL]. (2020-03-21) [2020-08-20]. https: //www.raspberrypi.org/downloads/raspbian/.

[2] 馬玉春. 計算機監控系統的仿真開發[M]. 北京: 國防工業出版社, 2015: 182-196.

[3] MySQL Community Downloads[OL]. (2020-03-21)[2020- 08-20]. https://dev.mysql.com/downloads/.

[4] 馬玉春, 苑囡囡, 王哲河. 基于Visual Basic 2008的Access數據庫類的設計[J]. 軟件, 2012, 33(6): 41-43+47.

[5] Eclipse IDE for Eclipse Committers[OL]. (2020-03-21) [2020-08-20]. https://www.eclipse.org/downloads/packages/

[6] Tomcat 9 Software Downloads[OL]. (2020-03-21)[2020-08- 20]. https://tomcat.apache.org/download-90.cgi.

[7] MySQL Product Archives, MySQL Connector/J(Archived Ver?sions)[OL]. (2020-03-21)[2020-08-20]. https://downloads. mysql.com/archives/c-j/.

[8] 馬玉春, 汪文彬. Android個性化服務軟件的設計及教學應用[J]. 軟件, 2020, 41(1): 24-28.

[9] 楊叢叢, 吳濤, 張安峰等. 基于樹莓派的無線遙控移動機器人設計及運動控制[J]. 軟件, 2020, 41(2): 97-101.

[10] 韓萬江, 姜立新, 張笑燕等. 基于工程化的軟件工程教學案例研究[J]. 軟件, 2019, 40(3): 78-87.

[11] 屈天琦. 探究計算機軟件工程的維護措施與方法[J]. 軟件, 2019, 40(8): 168-170.

主站蜘蛛池模板: 国产午夜精品鲁丝片| 亚洲精品桃花岛av在线| 亚洲乱码精品久久久久..| 免费在线看黄网址| 在线视频97| 波多野结衣一区二区三区四区 | 欧美成人怡春院在线激情| 永久免费无码成人网站| 在线观看视频一区二区| 伊人精品视频免费在线| 日韩天堂视频| 欧美专区在线观看| 2021国产精品自产拍在线| 国产sm重味一区二区三区| 超级碰免费视频91| 男人天堂亚洲天堂| 日韩午夜伦| 亚洲人成网站在线播放2019| 亚洲成人在线网| 99视频精品全国免费品| 青青操视频在线| 久久国语对白| 婷婷色在线视频| 白浆免费视频国产精品视频 | 欧美激情视频二区三区| 黄色福利在线| 毛片在线播放a| 理论片一区| 日韩无码白| 久久国产毛片| 伦精品一区二区三区视频| 国产极品美女在线观看| 国产一区在线观看无码| 亚洲精品波多野结衣| 国产91av在线| 久久人午夜亚洲精品无码区| 多人乱p欧美在线观看| 三级国产在线观看| 亚洲人成网站在线观看播放不卡| 夜夜操天天摸| 亚洲一区二区三区国产精华液| 欧美一区二区人人喊爽| 亚洲中文字幕在线精品一区| 久久综合激情网| 91综合色区亚洲熟妇p| 精品国产99久久| 99这里只有精品免费视频| 老司国产精品视频91| 蜜臀av性久久久久蜜臀aⅴ麻豆| 一级毛片免费观看不卡视频| 91探花国产综合在线精品| 国产乱人激情H在线观看| 99精品伊人久久久大香线蕉| 青青久视频| 国产乱子伦视频在线播放| 国产美女无遮挡免费视频网站 | 福利在线不卡| 福利一区在线| 国产精品福利社| 国产精品蜜芽在线观看| 欧美日韩在线亚洲国产人| 福利国产在线| 亚洲中文字幕av无码区| 性色在线视频精品| 色综合久久88色综合天天提莫| 99久久亚洲综合精品TS| 无码日韩人妻精品久久蜜桃| 亚洲成A人V欧美综合| 激情六月丁香婷婷四房播| 日本一区二区不卡视频| 精品撒尿视频一区二区三区| 欧美a在线视频| 国产精品女主播| 啪啪免费视频一区二区| 色悠久久久久久久综合网伊人| 网友自拍视频精品区| 在线综合亚洲欧美网站| 天天干天天色综合网| 亚洲成人网在线播放| 呦视频在线一区二区三区| 国产原创演绎剧情有字幕的| 午夜日本永久乱码免费播放片|