国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Java Socket及數(shù)據(jù)庫連接池的農(nóng)業(yè)監(jiān)測系統(tǒng)

2016-02-23 20:30:27王海峰張偉
物聯(lián)網(wǎng)技術(shù) 2016年2期
關(guān)鍵詞:應用

王海峰++張偉

摘 要:通過基于Java Socket的農(nóng)業(yè)監(jiān)測系統(tǒng)及其相關(guān)應用,農(nóng)業(yè)生產(chǎn)者可以通過Web得到實用性強的數(shù)據(jù),從而對農(nóng)作物進行有效控制。該系統(tǒng)結(jié)合Socket通信和數(shù)據(jù)庫連接池來進行數(shù)據(jù)存儲,可以使系統(tǒng)的知識庫能適應網(wǎng)絡(luò)環(huán)境的應用和分布式處理,并具有較好的移植性和擴展性。

關(guān)鍵詞:農(nóng)業(yè)監(jiān)測系統(tǒng);應用;Socket通信;數(shù)據(jù)庫連接池

中圖分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2016)02-00-02

0 引 言

充分利用農(nóng)業(yè)監(jiān)測系統(tǒng)采集點多的優(yōu)勢,建立Web平臺的農(nóng)業(yè)監(jiān)測系統(tǒng)是解決我國農(nóng)業(yè)問題的一條切實可行的便利途徑。將節(jié)點接入系統(tǒng)后,再加入安全性驗證,保證雙方數(shù)據(jù)安全并使得數(shù)據(jù)實時刷新。系統(tǒng)采用 TCP標準Java實現(xiàn),完成服務(wù)端和客戶端的信息傳輸,同時通過連接池訪問數(shù)據(jù)庫,實現(xiàn)了C/S模式經(jīng)典三層架構(gòu),從而使得系統(tǒng)更易使用和安全。該平臺服務(wù)器端架構(gòu)于Windows 7系統(tǒng)下,數(shù)據(jù)庫采用MySQL。

1 TCP 協(xié)議原理

TCP/IP是一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議簇[1],通常稱該協(xié)議簇為TCP/IP。TCP和UDP是信息傳輸?shù)膬蓚€主要協(xié)議。TCP是面向連接的服務(wù),若要傳輸數(shù)據(jù),應先構(gòu)建可靠連接通道,而后終端計算機通過這條通道來傳輸數(shù)據(jù)。使用TCP傳遞數(shù)據(jù)之前,終端之間應先創(chuàng)建連接[2],實現(xiàn)可靠信息傳遞。對于傳輸前不需要構(gòu)建連接的UDP協(xié)議,傳輸時不需要等待主機任何響應,也不能保障數(shù)據(jù)的安全,數(shù)據(jù)傳遞是不可靠的。基于可靠性數(shù)據(jù)傳輸考慮,系統(tǒng)通過TCP協(xié)議達到信息安全傳遞的目的。

2 TCP 實現(xiàn)Java Socket通信

Java不僅跨平臺,同時支持多線程,而且還自帶驗證方法,從而提高了代碼的安全度,故系統(tǒng)運用Java開發(fā)。Socket俗稱套接字,作用于進程間,一般包含終端計算機名、目標端口、標準約定名,用以表示網(wǎng)絡(luò)上的兩個目標主機,即每個終端含有Socket,同時在兩終端間構(gòu)建了虛“通道”,實現(xiàn)穩(wěn)定連接。涉及網(wǎng)絡(luò)開發(fā)的Java類大都存放于網(wǎng)絡(luò)包里,它運用以TCP協(xié)議作為標準的Socket類[3]和Server Socket類創(chuàng)建“通道”。當前客/服模式是網(wǎng)絡(luò)通信的經(jīng)典結(jié)構(gòu)。

2.1 Socket客戶端套接字

運用Socket類可研發(fā)客戶端應用,它可自主請求服務(wù)器,以public Socket(InetAddressaddress,intport)throws IOException方法構(gòu)造Socket對象,它創(chuàng)建了同目標計算機的連接。

2.2 ServerSocket服務(wù)器端套接字

服務(wù)器端ServerSocket類可監(jiān)聽和處理連接請求,獲取數(shù)據(jù)[4]后,返回對應結(jié)果。服務(wù)器端指定本地計算機8888端口,若創(chuàng)建服務(wù)器端失敗,則會捕獲非正常情況。

調(diào)用ServerSocket.accept()監(jiān)聽Socket連接請求,同時做出連接響應,該響應顯示了兩終端連接[5],終端間運用Socket對象進行信息傳輸。但調(diào)用accept()會阻塞運行線程,Server端只有收到客戶端連接請求,才會給出對應結(jié)果。

若服務(wù)器端要適應客戶端的并發(fā)請求,一般有兩種方式:(1)服務(wù)器端循環(huán)給多個用戶做出響應;(2)服務(wù)器端并發(fā)處理客戶端請求,該方式要求多線程實現(xiàn)。系統(tǒng)以并發(fā)多線程方式工作,通過實現(xiàn)Runnable接口來實現(xiàn)多線程,即每一個客戶端請求啟動一個服務(wù)器端線程,其工作原理如圖1所示。

2.3 Socket通信過程

構(gòu)建Socket通信過程的步驟如下:

(1)構(gòu)造對象ServerSocket并指定目標端口,創(chuàng)建Socket類作為客戶端。

(2)使用accept()方法監(jiān)聽連接請求。

(3)使用getInputStream()和getOutputStream()方法來獲得輸入流和輸出流。通訊兩端依據(jù)約定獲取數(shù)據(jù),從而達到信息傳遞的目標。

(4)結(jié)束傳輸后,用close()關(guān)閉兩端連接。

Socket交互過程工作原理如圖2所示。

3 連接池工作原理

以往,開發(fā)人員運用jdbc[6]構(gòu)建數(shù)據(jù)庫連接。但是在使用了jdbc連接的項目中,當請求較少時,數(shù)據(jù)庫還能較好運行,若存在大并發(fā)請求時,就會降低整個系統(tǒng)的性能。故系統(tǒng)采用連接池訪問數(shù)據(jù)庫。傳統(tǒng)jdbc連接數(shù)據(jù)庫過程如圖3所示。

在使用連接池前,會先構(gòu)建較多連接存放在內(nèi)存中供之后使用。連接池的運作方式是:首先向數(shù)據(jù)庫請求多個Connection,放置于池內(nèi),等待其它人構(gòu)建連接,結(jié)束后返還給連接池,連接不會銷毀,使得應用和數(shù)據(jù)庫之間獲得更多連接數(shù)。它允許應用多次采納現(xiàn)有連接,但不會去再創(chuàng)建,同時釋放空閑連接,從而降低數(shù)據(jù)庫負載。該方法使得數(shù)據(jù)庫更易操作,極大地提高了系統(tǒng)性能。

使用連接池主要有以下幾方面:

(1)建立連接池;

(2)管理連接池。當用戶需訪問數(shù)據(jù)庫時,不需要再構(gòu)建連接,而是跟連接池申請連接;

(3)封閉連接池。當系統(tǒng)結(jié)束運行時,連接池需要關(guān)閉,釋放內(nèi)存,緩解主機壓力。

使用連接池創(chuàng)建連接的過程如圖4所示。

4 實現(xiàn)農(nóng)業(yè)監(jiān)測系統(tǒng)服務(wù)器

農(nóng)業(yè)監(jiān)測系統(tǒng)服務(wù)器運行于Windows7操作系統(tǒng),采用專線與底層相連。當服務(wù)器端啟動后,客戶端向它請求構(gòu)建連接,此時服務(wù)器端做出響應,會啟動一線程,同時創(chuàng)建服務(wù)器端Socket與客戶端間的連接,以獲取傳輸數(shù)據(jù),從而截取業(yè)務(wù)信息,而后依據(jù)業(yè)務(wù)類型不同調(diào)用對應業(yè)務(wù)類處理,之后客戶端接收到返回結(jié)果,形成經(jīng)典三層架構(gòu)。其結(jié)構(gòu)如圖5所示。

5 結(jié) 語

通過Java提供的Java Socket和連接池構(gòu)建了經(jīng)典三層結(jié)構(gòu)的農(nóng)業(yè)監(jiān)測系統(tǒng),服務(wù)器端作為中間層訪問數(shù)據(jù)庫,將數(shù)據(jù)信息返回給另一終端。由于模型層與視圖層的分離,當其它應用層需要變化時,客戶端不必修改,極大地提升了模塊的重用性。這樣服務(wù)器端作為中間層,不僅系統(tǒng)安全得到保障,同時規(guī)避了重要接口外露,使得整個系統(tǒng)可穩(wěn)定安全運行。伴隨著時代的發(fā)展,該結(jié)構(gòu)將得到普及。

參考文獻

[1] LARRY L P,BRUCE S D.計算機網(wǎng)絡(luò)系統(tǒng)方法[M].葉新銘,賈波,等,譯.北京:機械工業(yè)出版社,2005.

[2] CHAD D.Java網(wǎng)絡(luò)編程指南[M].邱仲潘,等,譯.北京:電子工業(yè)出版社,2002.

[3]陸正武,張志立.Java項目開發(fā)實踐[M].北京:中國鐵道出版社,2005.

[4]劉曉華.精通Java核心技術(shù)[M].北京:電子工業(yè)出版社,2003.

[5]耿祥義,張躍平.JAVA 2實用教程[M].北京:清華大學出版社,2012.

[6]田翔川.JSP 數(shù)據(jù)庫連接池的設(shè)計[J].計算機應用研究,2004,21 (2):198-199.endprint

猜你喜歡
應用
配網(wǎng)自動化技術(shù)的應用探討
科技視界(2016年21期)2016-10-17 19:54:47
帶壓堵漏技術(shù)在檢修中的應用
科技視界(2016年21期)2016-10-17 19:54:05
行列式的性質(zhì)及若干應用
科技視界(2016年21期)2016-10-17 18:46:46
癌癥擴散和治療研究中的微分方程模型
科技視界(2016年21期)2016-10-17 18:37:58
紅外線測溫儀在汽車診斷中的應用
科技視界(2016年21期)2016-10-17 18:28:05
多媒體技術(shù)在小學語文教學中的應用研究
考試周刊(2016年76期)2016-10-09 08:45:44
微課的翻轉(zhuǎn)課堂在英語教學中的應用研究
大學教育(2016年9期)2016-10-09 08:28:55
分析膜技術(shù)及其在電廠水處理中的應用
科技視界(2016年20期)2016-09-29 14:22:00
GM(1,1)白化微分優(yōu)化方程預測模型建模過程應用分析
科技視界(2016年20期)2016-09-29 12:03:12
煤礦井下坑道鉆機人機工程學應用分析
科技視界(2016年20期)2016-09-29 11:47:01
南皮县| 彭泽县| 沾益县| 宜州市| 仙居县| 泾源县| 勐海县| 长葛市| 高邮市| 扎囊县| 饶阳县| 郑州市| 博客| 平陆县| 乐清市| 遂平县| 广元市| 元谋县| 板桥市| 大城县| 阜新| 西林县| 怀宁县| 容城县| 迁安市| 宁武县| 犍为县| 丽水市| 红河县| 黄石市| 敦煌市| 黎川县| 沐川县| 麦盖提县| 南昌市| 保山市| 南投县| 张家口市| 二手房| 临夏县| 雅安市|