一種基于webservice的數(shù)據(jù)獲取及繪圖方法
【專利摘要】一種基于webservice的數(shù)據(jù)獲取及繪圖方法,屬計(jì)算機(jī)繪圖【技術(shù)領(lǐng)域】,智能終端通過遠(yuǎn)程調(diào)用webservice接口,獲取數(shù)據(jù)信息,將相應(yīng)的數(shù)據(jù)以曲線的形式表現(xiàn)出來。其特點(diǎn)有:智能終端通過webservice接口調(diào)用數(shù)據(jù)信息,避免了通過JDBC方式直接訪問數(shù)據(jù)庫(kù),保證了數(shù)據(jù)的安全性;對(duì)不同智能終端進(jìn)行權(quán)限劃分,實(shí)現(xiàn)了數(shù)據(jù)的層次管理,保密性和可靠性得到有效提高;智能終端可以設(shè)置更改訪問的ip地址和端口號(hào),調(diào)用數(shù)據(jù)更加方便快捷;Webservice接口將結(jié)果集打包成Arraylist,避免了數(shù)據(jù)庫(kù)資源的長(zhǎng)期占用,又提高了獲取數(shù)據(jù)的效率;此法可設(shè)定所要查詢數(shù)據(jù)的日期和時(shí)間間隔,查詢結(jié)果更加精確有效。
【專利說明】—種基于webservice的數(shù)據(jù)獲取及繪圖方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)繪圖【技術(shù)領(lǐng)域】,具體是涉及一種基于webservice的數(shù)據(jù)獲取及繪圖方法。
【背景技術(shù)】
[0002]Webservice是一項(xiàng)跨平臺(tái)的服務(wù),它使不同機(jī)器之間可以相互交換數(shù)據(jù),而不去關(guān)乎它們所使用的平臺(tái)、語言以及內(nèi)部協(xié)議,Webservice使用xml傳送結(jié)構(gòu)化的數(shù)據(jù),soap協(xié)議來實(shí)現(xiàn)遠(yuǎn)程調(diào)用。如今,這種技術(shù)被廣泛地應(yīng)用在PC和手機(jī)終端上,但在權(quán)限設(shè)置、數(shù)據(jù)庫(kù)資源利用以及數(shù)據(jù)的顯示等方面仍存在一些不足之處。例如,北京林業(yè)大學(xué)的鄔海波和吳保國(guó)老師在Computer Knowledge and Technology電腦知識(shí)與技術(shù)雜志上發(fā)表的《基于 WebService 的多源數(shù)據(jù)庫(kù)訪問方法》(ISSN1009-3044, Vol.5, N0.31, November2009, pp.8628-8631),該文提供一種以WebService技術(shù)為基礎(chǔ),通過Java平臺(tái)開發(fā)的遠(yuǎn)程多源數(shù)據(jù)庫(kù)數(shù)據(jù)訪問方法。用Java語言編寫服務(wù),Axis2框架發(fā)布WebService, JSON格式處理數(shù)據(jù)交換,通過WebService、Java、JS0N、Axis2等關(guān)鍵技術(shù)的應(yīng)用,實(shí)現(xiàn)跨平臺(tái)的遠(yuǎn)程數(shù)據(jù)訪問服務(wù)。該方法的權(quán)限設(shè)置主要體現(xiàn)在在數(shù)據(jù)庫(kù)操作(select、insert、update、delete等操作)上,而并未將具體的不同區(qū)域數(shù)據(jù)與終端相關(guān)聯(lián),該方法采用JSON格式來處理數(shù)據(jù)交換,雖然高效簡(jiǎn)潔,但卻引用了第三方軟件,而且JSON更多的應(yīng)用于瀏覽器,在手機(jī)終端上存在諸多限制。此外,該類方法在實(shí)時(shí)數(shù)據(jù)的顯示,用曲線細(xì)致地描繪變化趨勢(shì)等方面并未詳述。
【發(fā)明內(nèi)容】
[0003]本發(fā)明針對(duì)以上這些缺點(diǎn),提供一種基于webservice的數(shù)據(jù)實(shí)時(shí)獲取并可以繪制曲線的方法,能夠根據(jù)需求合理地設(shè)置權(quán)限,有效地利用數(shù)據(jù)庫(kù)資源,并且更加細(xì)致的處理和展示獲取的數(shù)據(jù)。
[0004]本發(fā)明的技術(shù)方案如下:
[0005]—種基于webservice的數(shù)據(jù)實(shí)時(shí)獲取并繪制曲線的方法,主要包括智能終端、數(shù)據(jù)庫(kù)和接口三部分,接口和數(shù)據(jù)庫(kù)封裝在服務(wù)器端,接口通過connection方法完成和數(shù)據(jù)庫(kù)之間的通信,智能終端通過網(wǎng)絡(luò)調(diào)用webservice接口,該方法步驟如下:
[0006]1、webservice根據(jù)需求將不同的sql封裝起來,從而形成不同功能的接口,不同功能的接口之間通過方法名來進(jìn)行唯一標(biāo)識(shí),這些功能接口主要包括landing (登陸接口,作用是進(jìn)行身份驗(yàn)證)、real-timeData (實(shí)時(shí)數(shù)據(jù)接口,作用是用來獲取數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù))、historyData (歷史數(shù)據(jù)接口,作用是從數(shù)據(jù)庫(kù)獲取具體時(shí)間的數(shù)據(jù)信息,為繪制曲線的功能提供數(shù)據(jù)源)、alertData(實(shí)時(shí)報(bào)警接口,作用是將最新報(bào)警信息傳遞給智能終端)、historyAlert (歷史報(bào)警接口,作用是將報(bào)警的歷史數(shù)據(jù)傳遞給智能終端),接口發(fā)布完成后,智能終端根據(jù)webservice提供的方法名、命名空間和url地址三個(gè)參數(shù)實(shí)現(xiàn)調(diào)用;
[0007]2、進(jìn)行權(quán)限的設(shè)置,首先在建立數(shù)據(jù)庫(kù)時(shí),將不同范圍的數(shù)據(jù)信息與不同的智能終端相連接,也就是說,每一個(gè)終端都有自己相對(duì)應(yīng)的數(shù)據(jù)范圍,它們之間通過智能終端的登錄名來標(biāo)識(shí),其次,在編寫Webservice接口時(shí),每個(gè)接口要引入兩個(gè)變量,UserName和password (用戶名和密碼),這兩個(gè)變量需要從終端獲取,終端調(diào)用接口獲取數(shù)據(jù)時(shí),須將這兩個(gè)變量的值傳遞給接口,然后接口根據(jù)這兩個(gè)變量的值去訪問數(shù)據(jù)庫(kù);智能終端部分的設(shè)置是在用戶登陸成功后,用SharedPerferences保存用戶名,每次調(diào)用webservice接口的時(shí)候,用戶名都作為一個(gè)參數(shù)傳遞,綜上,權(quán)限的設(shè)置需要數(shù)據(jù)庫(kù)、接口、智能終端三部分共同完成;
[0008]3、實(shí)現(xiàn)智能終端更改ip地址和端口號(hào),方法是在智能終端設(shè)置兩個(gè)全局變量,即“IP”和“PORT”兩個(gè)變量,用來記錄通信要使用的ip地址和端口號(hào),然后使用SharedPerferences方法來存儲(chǔ)這兩個(gè)變量的具體數(shù)值,從而實(shí)現(xiàn)在智能終端設(shè)置頁(yè)面中可以更改ip地址和端口號(hào);
[0009]4、Webservice接口以Arraylist數(shù)組形式打包數(shù)據(jù),最終封裝成List,實(shí)現(xiàn)方法是,Webservice接口從數(shù)據(jù)庫(kù)獲取結(jié)果集后,按行讀取數(shù)據(jù),每一行的數(shù)據(jù)內(nèi)容作為一個(gè)String型數(shù)據(jù),然后封裝在數(shù)組Array I i st中,所有行數(shù)據(jù)信息封裝完成后,將整個(gè)Li st作為一個(gè)變量傳遞給智能終端,注意:這里要傳送的List變量,需要?jiǎng)?chuàng)建XML文件,用methodname和return-type componentType方法對(duì)傳送變量進(jìn)行說明定義;
[0010]5、智能終端顯示實(shí)時(shí)數(shù)據(jù),方法是在智能終端上采用Thread類單獨(dú)開辟一個(gè)線程來監(jiān)視實(shí)時(shí)數(shù)據(jù)的變化,采用定時(shí)訪問數(shù)據(jù)庫(kù)的方法,通過方法名、命名空間和url地址三個(gè)參數(shù)訪問real-timeData接口,得到要顯示的實(shí)時(shí)數(shù)據(jù),之后采用安卓的Handler處理主線程和子線程之間的通信,將得到的數(shù)據(jù)實(shí)時(shí)顯示在智能終端上;
[0011]6、通過webservice接口訪問數(shù)據(jù)庫(kù)時(shí),將輸入的日期和時(shí)間間隔作為變量值,以String型數(shù)據(jù)傳遞給hiStoryData接口(歷史數(shù)據(jù)接口), historyData接口通過sql語句訪問數(shù)據(jù)庫(kù),然后返回XML文件到智能終端,智能終端解析接口返回的XML文件,使用HashMap存儲(chǔ)要繪制的點(diǎn),采用Google的開源圖標(biāo)庫(kù)AChartEngine進(jìn)行繪圖。
[0012]所述的connection方法是java連接數(shù)據(jù)庫(kù)的一類方法。
[0013]所述的sql是訪問和操作數(shù)據(jù)庫(kù)的一門語言。
[0014]所述的url地址是由ip地址和端口號(hào)構(gòu)成的網(wǎng)絡(luò)地址。
[0015]所述的SharedPerferences方法是安卓平臺(tái)提供的一個(gè)輕量級(jí)的存儲(chǔ)類。
[0016]所述的Arraylist是java中用來存儲(chǔ)數(shù)據(jù)的動(dòng)態(tài)數(shù)組。
[0017]所述的List是java中用來處理數(shù)據(jù)類庫(kù)中的一個(gè)類。
[0018]所述的method name和return-type componentType方法分別是用來定義方法名和返回List中的數(shù)據(jù)類型。
[0019]本發(fā)明方法的優(yōu)點(diǎn)如下:
[0020]1、智能終端只需遠(yuǎn)程調(diào)用webservice接口,而不需要知道數(shù)據(jù)庫(kù)的內(nèi)部結(jié)構(gòu),避免了通過JDBC方式直接訪問數(shù)據(jù)庫(kù),保證了數(shù)據(jù)庫(kù)數(shù)據(jù)的安全性;
[0021]2、智能終端有明顯的權(quán)限劃分,用不同的用戶名和密碼加以標(biāo)識(shí),終端只能訪問自己權(quán)限范圍內(nèi)的數(shù)據(jù),而不能查看超出自己權(quán)限的部分,使數(shù)據(jù)管理更加條理化、結(jié)構(gòu)化的同時(shí),又增加了數(shù)據(jù)的保密性和可靠性;
[0022]3、智能終端根據(jù)不同需要更改訪問服務(wù)器的ip地址和端口號(hào),也就是說,智能終端與服務(wù)器之間是一對(duì)多的關(guān)系,工作人員能查看不同數(shù)據(jù)庫(kù)的數(shù)據(jù)信息,有效的調(diào)高了工作效率,節(jié)省了勞動(dòng)力;
[0023]4、Webservice接口以Arraylist數(shù)組形式打包數(shù)據(jù),最終封裝成List,智能終端以map形式接收并讀取數(shù)據(jù),而不是一條一條單獨(dú)從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)信息,提高了獲取數(shù)據(jù)的效率;與此同時(shí),接口與數(shù)據(jù)庫(kù)之間的連接在sql查詢到所需數(shù)據(jù)后就立即斷開,避免了數(shù)據(jù)庫(kù)資源的長(zhǎng)期占用;
[0024]5、數(shù)據(jù)庫(kù)將一些數(shù)據(jù)比如報(bào)警信息,主動(dòng)傳送給相應(yīng)權(quán)限的智能終端,使其及時(shí)作出相應(yīng)處理;智能終端根據(jù)自己的需求查看相應(yīng)的歷史數(shù)據(jù),并繪制曲線,從而直觀的顯示數(shù)據(jù)的變化趨勢(shì);
[0025]6、智能終端在查看數(shù)據(jù)時(shí),設(shè)定所要查詢數(shù)據(jù)的日期和時(shí)間間隔,從而使查看結(jié)果更加精確有效,避免了數(shù)據(jù)的冗余性,又節(jié)省了資源。
【具體實(shí)施方式】
[0026]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,但不限于此。
[0027]實(shí)施例:
[0028]一種基于webservice的數(shù)據(jù)實(shí)時(shí)獲取并繪制曲線的方法,主要包括智能終端、數(shù)據(jù)庫(kù)和接口三部分,接口和數(shù)據(jù)庫(kù)封裝在服務(wù)器端,接口通過connection方法完成和數(shù)據(jù)庫(kù)之間的通信,智能終端通過網(wǎng)絡(luò)調(diào)用webservice接口,該方法步驟如下:
[0029]1、webservice根據(jù)需求將不同的sql封裝起來,從而形成不同功能的接口,不同功能的接口之間通過方法名來進(jìn)行唯一標(biāo)識(shí),這些功能接口主要包括landing (登陸接口,作用是進(jìn)行身份驗(yàn)證)、real-timeData (實(shí)時(shí)數(shù)據(jù)接口,作用是用來獲取數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù))、historyData (歷史數(shù)據(jù)接口,作用是從數(shù)據(jù)庫(kù)獲取具體時(shí)間的數(shù)據(jù)信息,為繪制曲線的功能提供數(shù)據(jù)源)、alertData (實(shí)時(shí)報(bào)警接口,作用是將最新報(bào)警信息傳遞給智能終端)historyAlert (歷史報(bào)警接口,作用是將報(bào)警的歷史數(shù)據(jù)傳遞給智能終端),接口發(fā)布完成后,智能終端根據(jù)webservice提供的方法名、命名空間和url地址三個(gè)參數(shù)實(shí)現(xiàn)調(diào)用;
[0030]2、進(jìn)行權(quán)限的設(shè)置,首先在建立數(shù)據(jù)庫(kù)時(shí),將不同范圍的數(shù)據(jù)信息與不同的智能終端相連接,也就是說,每一個(gè)終端都有自己相對(duì)應(yīng)的數(shù)據(jù)范圍,它們之間通過智能終端的登錄名來標(biāo)識(shí),其次,在編寫Webservice接口時(shí),每個(gè)接口要引入兩個(gè)變量,UserName和password (用戶名和密碼),這兩個(gè)變量需要從終端獲取,終端調(diào)用接口獲取數(shù)據(jù)時(shí),須將這兩個(gè)變量的值傳遞給接口,然后接口根據(jù)這兩個(gè)變量的值去訪問數(shù)據(jù)庫(kù);智能終端部分的設(shè)置是在用戶登陸成功后,用SharedPerferences保存用戶名,每次調(diào)用webservice接口的時(shí)候,用戶名都作為一個(gè)參數(shù)傳遞,綜上,權(quán)限的設(shè)置需要數(shù)據(jù)庫(kù)、接口、智能終端三部分共同完成;
[0031]3、實(shí)現(xiàn)智能終端更改ip地址和端口號(hào),方法是在智能終端設(shè)置兩個(gè)全局變量,即“IP”和“PORT”兩個(gè)變量,用來記錄通信要使用的ip地址和端口號(hào),然后使用SharedPerferences方法來存儲(chǔ)這兩個(gè)變量的具體數(shù)值,從而實(shí)現(xiàn)在智能終端設(shè)置頁(yè)面中可以更改ip地址和端口號(hào);
[0032]4、Webservice接口以Arraylist數(shù)組形式打包數(shù)據(jù),最終封裝成List,實(shí)現(xiàn)方法是,Webservice接口從數(shù)據(jù)庫(kù)獲取結(jié)果集后,按行讀取數(shù)據(jù),每一行的數(shù)據(jù)內(nèi)容作為一個(gè)String型數(shù)據(jù),然后封裝在數(shù)組Array I i st中,所有行數(shù)據(jù)信息封裝完成后,將整個(gè)Li st作為一個(gè)變量傳遞給智能終端,注意:這里要傳送的List變量,需要?jiǎng)?chuàng)建XML文件,用methodname和return-type componentType方法對(duì)傳送變量進(jìn)行說明定義;
[0033]5、智能終端顯示實(shí)時(shí)數(shù)據(jù),方法是在智能終端上采用Thread類單獨(dú)開辟一個(gè)線程來監(jiān)視實(shí)時(shí)數(shù)據(jù)的變化,采用定時(shí)訪問數(shù)據(jù)庫(kù)的方法,通過方法名、命名空間和url地址三個(gè)參數(shù)訪問real-timeData接口,得到要顯示的實(shí)時(shí)數(shù)據(jù),之后采用安卓的Handler處理主線程和子線程之間的通信,將得到的數(shù)據(jù)實(shí)時(shí)顯示在智能終端上;
[0034]6、通過webservice接口訪問數(shù)據(jù)庫(kù)時(shí),將輸入的日期和時(shí)間間隔作為變量值,以String型數(shù)據(jù)傳遞給historyData接口(歷史數(shù)據(jù)接口),historyData接口通過sql語句訪問數(shù)據(jù)庫(kù),然后返回XML文件到智能終端,智能終端解析接口返回的XML文件,使用HashMap存儲(chǔ)要繪制的點(diǎn),采用Google的開源圖標(biāo)庫(kù)AChartEngine進(jìn)行繪圖。
【權(quán)利要求】
1.一種基于webservice的數(shù)據(jù)實(shí)時(shí)獲取并繪制曲線的方法,主要包括智能終端、數(shù)據(jù)庫(kù)和接口三部分,接口和數(shù)據(jù)庫(kù)封裝在服務(wù)器端,接口通過connection方法完成和數(shù)據(jù)庫(kù)之間的通信,智能終端通過網(wǎng)絡(luò)調(diào)用webservice接口,該方法步驟如下: 1)webservice根據(jù)需求將不同的sql封裝起來,從而形成不同功能的接口,不同功能的接口通過方法名來進(jìn)行唯一標(biāo)識(shí),這些功能接口主要包括I an d i n g即登陸接口、real-timeData即實(shí)時(shí)數(shù)據(jù)接口、historyData即歷史數(shù)據(jù)接口、alertData即實(shí)時(shí)報(bào)警接口、historyAlert即歷史報(bào)警接口,接口發(fā)布完成后,智能終端根據(jù)webservice提供的方法名、命名空間和url地址三個(gè)參數(shù)實(shí)現(xiàn)調(diào)用; 2)進(jìn)行權(quán)限的設(shè)置,首先在建立數(shù)據(jù)庫(kù)時(shí),將不同范圍的數(shù)據(jù)信息與不同的智能終端相連接,也就是說,每一個(gè)終端都有自己相對(duì)應(yīng)的數(shù)據(jù)范圍,它們之間通過智能終端的登錄名來標(biāo)識(shí),其次,在編寫Webservice接口時(shí),每個(gè)接口要引入兩個(gè)變量:userName即用戶名和password即密碼,這兩個(gè)變量需要從終端獲取,終端調(diào)用接口獲取數(shù)據(jù)時(shí),須將這兩個(gè)變量的值傳遞給接口,然后接口根據(jù)這兩個(gè)變量的值去訪問數(shù)據(jù)庫(kù);智能終端部分的設(shè)置是在用戶登陸成功后,用SharedPerferences保存用戶名,每次調(diào)用webservice接口的時(shí)候,用戶名都作為一個(gè)參數(shù)傳遞,綜上,權(quán)限的設(shè)置需要數(shù)據(jù)庫(kù)、接口、智能終端三部分共同完成; 3)實(shí)現(xiàn)智能終端更改ip地址和端口號(hào),方法是在智能終端設(shè)置兩個(gè)全局變量,即“IP”和“PORT”兩個(gè)變量,用來記錄通信要使用的ip地址和端口號(hào),然后使用SharedPerferences方法來存儲(chǔ)這兩個(gè)變量的具體數(shù)值,從而實(shí)現(xiàn)在智能終端設(shè)置頁(yè)面中可以更改ip地址和端口號(hào); 4)Webservice接口以Arraylist數(shù)組形式打包數(shù)據(jù),最終封裝成List,實(shí)現(xiàn)方法是,Webservice接口從數(shù)據(jù)庫(kù)獲取結(jié)果集后,按行讀取數(shù)據(jù),每一行的數(shù)據(jù)內(nèi)容作為一個(gè)String型數(shù)據(jù),然后封裝在數(shù)組Array I i st中,所有行數(shù)據(jù)信息封裝完成后,將整個(gè)Li st作為一個(gè)變量傳遞給智能終端,注意:這里要傳送的List變量,需要?jiǎng)?chuàng)建XML文件,用methodname和return-type componentType方法對(duì)傳送變量進(jìn)行說明定義; 5)智能終端顯示實(shí)時(shí)數(shù)據(jù),方法是在智能終端上采用Thread類單獨(dú)開辟一個(gè)線程來監(jiān)視實(shí)時(shí)數(shù)據(jù)的變化,采用定時(shí)訪問數(shù)據(jù)庫(kù)的方法,通過方法名、命名空間和url地址三個(gè)參數(shù)訪問real-timeData接口,得到要顯示的實(shí)時(shí)數(shù)據(jù),之后采用安卓的Handler處理主線程和子線程之間的通信,將得到的數(shù)據(jù)實(shí)時(shí)顯示在智能終端上; 6)通過webservice接口訪問數(shù)據(jù)庫(kù)時(shí),將輸入的日期和時(shí)間間隔作為變量值,以String型數(shù)據(jù)傳遞給historyData接口,historyData接口通過sql語句訪問數(shù)據(jù)庫(kù),然后返回XML文件到智能終端,智能終端解析接口返回的XML文件,使用HashMap存儲(chǔ)要繪制的點(diǎn),采用Google的開源圖標(biāo)庫(kù)AChartEngine進(jìn)行繪圖。
【文檔編號(hào)】G06F17/30GK103530401SQ201310502651
【公開日】2014年1月22日 申請(qǐng)日期:2013年10月23日 優(yōu)先權(quán)日:2013年10月23日
【發(fā)明者】朱維紅, 王凱, 楊寶華, 丁少, 田曉亮, 羅璐璐 申請(qǐng)人:山東大學(xué)