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

?

基于SOA架構(gòu)的建筑能耗監(jiān)測系統(tǒng)移動端的設(shè)計與實現(xiàn)

2013-01-15 08:59:56王文琴李亦飛
常州工學(xué)院學(xué)報 2013年1期
關(guān)鍵詞:開源圖表架構(gòu)

王文琴,李亦飛

(常州工學(xué)院計算機(jī)信息工程學(xué)院,江蘇 常州 213002)

0 引言

我國的建筑能耗隨著城市建設(shè)的高速發(fā)展逐年大幅上升,已達(dá)到全社會能源消耗量的32%,如果加上每年房屋建筑材料生產(chǎn)能耗約13%,那么建筑總能耗實際已達(dá)全國能源總消耗量的45%。近年來,國家對建筑節(jié)能工作提出了一系列更新更高的要求,出臺了有關(guān)建筑節(jié)能的實施意見等相關(guān)文件,要求建立大型公共建筑和國家機(jī)關(guān)辦公建筑能耗監(jiān)測體系,通過對大型公共建筑和國家機(jī)關(guān)辦公建筑能耗進(jìn)行動態(tài)實時監(jiān)測、能耗統(tǒng)計、能耗審計,為大型公共建筑和國家機(jī)關(guān)辦公建筑節(jié)能改造提供數(shù)據(jù)支持,實現(xiàn)建筑節(jié)能規(guī)劃目標(biāo)。

移動互聯(lián)網(wǎng)的不斷發(fā)展和智能手機(jī)的快速更新使移動終端的服務(wù)更加豐富和實用化,在移動設(shè)備上的交互式信息系統(tǒng)的研究成為3G業(yè)務(wù)新的亮點。本文采用Web Services技術(shù),設(shè)計開發(fā)了基于SOA架構(gòu)的建筑能耗監(jiān)測系統(tǒng),并基于此方案實現(xiàn)了運行于Android操作系統(tǒng)的移動端軟件,進(jìn)一步擴(kuò)大了能耗信息的覆蓋面,使各行業(yè)應(yīng)用部門能夠及時獲取建筑能耗數(shù)據(jù)并得到高效利用。

1 基于SOA架構(gòu)的建筑能耗監(jiān)測系統(tǒng)設(shè)計

1.1 SOA架構(gòu)和Web Services技術(shù)

SOA(Services Oriented Architecture)是為解決網(wǎng)絡(luò)應(yīng)用環(huán)境下分布式異構(gòu)系統(tǒng)集成及實現(xiàn)資源共享問題而逐步發(fā)展起來的一種系統(tǒng)架構(gòu)設(shè)計思想,它可以根據(jù)需要對網(wǎng)絡(luò)上松散耦合的應(yīng)用組件進(jìn)行分布式部署、組合和調(diào)用。實現(xiàn)SOA架構(gòu)的技術(shù)有ESB、Web Services和JMS等。

Web Services是一種新的計算模式,這種技術(shù)隱藏了服務(wù)實現(xiàn)的細(xì)節(jié),允許通過獨立于硬件或軟件平臺、獨立于編寫服務(wù)所使用的編程語言、獨立于服務(wù)實現(xiàn)的方式使用該服務(wù)。Web Services技術(shù)的主要目標(biāo)是在各種異構(gòu)平臺的基礎(chǔ)之上構(gòu)建一個與平臺和語言無關(guān)的相同的技術(shù)層,各種應(yīng)用都可以通過這個技術(shù)層來實施彼此的連接和集成。這些特點使Web Services作為SOA的具體實現(xiàn)技術(shù)非常合適,成為異構(gòu)系統(tǒng)集成的主要手段,也是目前常用的SOA實現(xiàn)技術(shù)。其典型的工作流程如圖1所示:①Web Service服務(wù)器將實現(xiàn)的業(yè)務(wù)功能封裝為服務(wù),并使用UDDI把自己提供的Web Service發(fā)布到注冊中心;②服務(wù)請求者通過查詢UDDI服務(wù)器中的WSDL獲取所需Web Service的服務(wù)器地址和接口;③服務(wù)請求者通過SOAP發(fā)出訪問Web Service的請求;④Web Service的提供者接收并處理這個請求,并將請求的處理結(jié)果使用SOAP應(yīng)答消息發(fā)送。

圖1 Web Services工作流程

1.2 基于SOA架構(gòu)的建筑能耗監(jiān)測系統(tǒng)架構(gòu)

按SOA設(shè)計思想,建筑能耗監(jiān)測系統(tǒng)按圖2所示分為4部分:中心數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、Web Service服務(wù)器和各種終端用戶。系統(tǒng)使用Web服務(wù)封裝了各種能耗數(shù)據(jù)管理功能,并將這些服務(wù)在Web Service服務(wù)器上發(fā)布,提供給各種終端用戶使用;實現(xiàn)了建筑能耗監(jiān)管系統(tǒng),實時采集建筑物用能狀況,并自動對采集到的能耗數(shù)據(jù)進(jìn)行處理,完成建筑用能效率、建筑能耗結(jié)構(gòu)及建筑節(jié)能潛力數(shù)據(jù)分析,并將相關(guān)統(tǒng)計數(shù)據(jù)進(jìn)一步報送上一級數(shù)據(jù)中心;開發(fā)了基于Android手機(jī)操作系統(tǒng)的移動端軟件,可以通過Wi-Fi、GSM 或GPRS等無線通訊技術(shù)訪問服務(wù),獲取能耗數(shù)據(jù)。

圖2 建筑能耗監(jiān)測系統(tǒng)架構(gòu)

系統(tǒng)所涉及的軟件環(huán)境主要包括以下4個方面:①中心數(shù)據(jù)庫服務(wù)器,采用Oracle 10g做為數(shù)據(jù)庫管理軟件;②Web服務(wù)器和Web Service服務(wù)器,采用IIS 6.0;③建筑能耗監(jiān)管系統(tǒng)開發(fā),使用Microsoft Visual Studio 2010開發(fā)環(huán)境,基于ASP.NET技術(shù)和Ext.NET框架設(shè)計實現(xiàn);④建筑能耗監(jiān)測系統(tǒng)移動端開發(fā),基于Android手機(jī)操作系統(tǒng),使用Eclipse+Android Developer Tools開發(fā)工具,采用Java語言結(jié)合Android SDK和Google Map API等類庫實現(xiàn)。

2 建筑能耗監(jiān)測系統(tǒng)移動端的設(shè)計與實現(xiàn)

智能手機(jī)使用的操作系統(tǒng)有Android、iOS、Windows Phone和BlackBerry OS等。其中Android是Google發(fā)布的基于Linux平臺的開源手機(jī)操作系統(tǒng),由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個為移動終端打造的真正開放和完整的移動軟件。截至2012年6月,Android占據(jù)全球智能手機(jī)操作系統(tǒng)市場59%的份額,中國市場占有率為76.7%,成為全球第一大智能操作系統(tǒng)。

建筑能耗監(jiān)測系統(tǒng)移動端軟件開發(fā)基于Android手機(jī)操作系統(tǒng),主要功能包括:①使用Google Map技術(shù)將用戶管理的建筑標(biāo)記在手機(jī)地圖上,并可以放大、縮小和移動,方便用戶查找建筑標(biāo)記、獲取建筑地理位置信息;②通過無線網(wǎng)絡(luò)訪問Web Service服務(wù)器上封裝的能耗數(shù)據(jù)管理服務(wù)解析建筑能耗數(shù)據(jù);③使用圖表技術(shù)對獲取的建筑能耗數(shù)據(jù)進(jìn)行動態(tài)圖表顯示,可以選擇的圖形包括柱狀圖和線形圖等;④使用推送技術(shù)接收遠(yuǎn)程服務(wù)器的推送信息,實現(xiàn)預(yù)警;⑤使用JavaMail技術(shù)實現(xiàn)郵件發(fā)送功能,提交用戶反饋信息。本節(jié)對系統(tǒng)實現(xiàn)中的一些關(guān)鍵技術(shù)進(jìn)行介紹。

2.1 移動端統(tǒng)計圖表的繪制

建筑能耗監(jiān)測系統(tǒng)移動端需要對大量的數(shù)據(jù)進(jìn)行統(tǒng)計,統(tǒng)計過程中通常使用圖表來給用戶恰當(dāng)?shù)臄?shù)據(jù)體驗,如餅狀圖、柱形圖和線形圖等。在Android中,可用的圖表繪制方案有Google Chart API、AChartEngine庫和Chartdroid庫等。

①Google Chart API:是Google公布的繪圖服務(wù)(Google Chart)接口,能夠為統(tǒng)計數(shù)據(jù)自動生成圖片,可用的圖片類型有折線圖、條狀圖、餅狀圖、Venn圖和散點圖。這種方法實現(xiàn)較為簡單,但是在使用過程中手機(jī)端必須連接網(wǎng)絡(luò),對于手機(jī)用戶來說有額外的網(wǎng)絡(luò)流量開銷。

②AChartEngine庫:是 Google的開源圖表庫,這種方法在項目中引入achartengine-1.0.0.jar包(http://code.google.com/p/achartengine/downloads/list),利用 AChartEngine庫提供的功能可以實現(xiàn)折線圖、散點圖、條狀圖、餅狀圖、氣泡圖、柱狀圖和儀表圖等圖形的繪制,功能強(qiáng)大。

③Chartdroid庫:該方法需先下載并安裝ChartdroidCore-2.0.0.apk,應(yīng)用程序利用Android提供的ContentProvider機(jī)制使用Chartdroid庫。因此,對于手機(jī)用戶來說帶有強(qiáng)制性,不合適。

根據(jù)以上分析,本系統(tǒng)最終使用Google提供的開源圖表庫AChartEngine實現(xiàn)了圖表繪制,圖3是使用AChartEngine繪制圖表的思路,具體分析如下:

圖3 使用AChartEngine繪制圖表

XYMultipleSeriesDataset:用于數(shù)據(jù)的存放。添加的XYSeries對象用于提供繪制的點集合的數(shù)據(jù)。程序中需要把用來畫圖的數(shù)據(jù)存入這些結(jié)構(gòu)中,并且要根據(jù)所畫圖的類型不同,將數(shù)據(jù)整理成特定的格式。

XYMultipleSeriesRenderer:主要是設(shè)置所畫圖形的線的顏色、點的形狀、是否顯示數(shù)據(jù)等。添加的XYSeriesRender對象用于定義繪制的點集合設(shè)置,注意數(shù)量要和XYMultipleSeriesDataset添加的XYSeries一致。

ChartFactory:使用ChartFactory類的getXXXChartIntent()方法繪制不同的圖表,使用時需傳入XYMultipleSeriesRenderer和XYMultipleSeriesDataset類型的對象。

2.2 移動端推送功能實現(xiàn)

獲取服務(wù)器上不定時更新信息的方法一般有:一是客戶端使用Pull(拉)方式,定時訪問服務(wù)器查詢是否有新的信息;二是服務(wù)器使用Push(推送)方式,即客戶端和服務(wù)器之間建立持久連接通道,當(dāng)服務(wù)端有新消息時通過此通道發(fā)給客戶端。雖然Pull和Push方式都能實現(xiàn)獲取服務(wù)器端更新信息的功能,但相比Pull方式,Push方式不需要定時訪問服務(wù)器,推送的消息是實時的,而且節(jié)約手機(jī)電量和流量。目前Android平臺上推送實現(xiàn)方式有:C2DM云端推送、XMPP協(xié)議、MQTT協(xié)議和使用第三方推送服務(wù)等。

①C2DM(Cloud to Device Messaging):是Google推出的云消息服務(wù),用來幫助開發(fā)者從服務(wù)器向Android應(yīng)用程序發(fā)送數(shù)據(jù)。服務(wù)提供了一個簡單的、輕量級的機(jī)制,但是C2DM內(nèi)置于Android 2.2系統(tǒng),無法兼容老的系統(tǒng),且需要依賴于Google官方提供的C2DM服務(wù)器,由于國內(nèi)的網(wǎng)絡(luò)環(huán)境,這個服務(wù)經(jīng)常不可用。

②XMPP(可擴(kuò)展通訊和表示協(xié)議):基于XML協(xié)議,前身是Jabber,目前已由IETF國際標(biāo)準(zhǔn)化組織完成了標(biāo)準(zhǔn)化工作。該協(xié)議成熟,可擴(kuò)展性強(qiáng),主要應(yīng)用于許多聊天系統(tǒng)中。androidpn(Android Push Notification)是一個基于XMPP協(xié)議的Java開源實現(xiàn),包含了完整的客戶端和服務(wù)器端。服務(wù)端基于openfire開源項目、客戶端基于smack開源項目,均采用Java語言實現(xiàn)。這個解決方案比較簡單,但部署硬件成本較高,且XMPP協(xié)議復(fù)雜,費流量和電量,對智能機(jī)的消耗太大,對不穩(wěn)定的手機(jī)網(wǎng)絡(luò)不是最優(yōu)的選擇。

③MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸):由IBM 開發(fā),為大量計算能力有限,且工作在低帶寬、不可靠網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計的協(xié)議,是一種開放、精簡、輕量級和容易實現(xiàn)的協(xié)議。

④第三方推送服務(wù):客戶端嵌入第三方提供的lib庫,由第三方建立長連接,負(fù)責(zé)消息的接收/發(fā)送。目前比較成熟的有:parse、pubnub、個推等。

推送方案的評價可采取4S標(biāo)準(zhǔn),即Safe(安全)、Stable(穩(wěn)定)、Save(省電省流量省成本)和Slim(體積小)。按照此標(biāo)準(zhǔn)及項目成本和安全性考慮,本系統(tǒng)最終在項目中引入 IBM提供的MQTT協(xié)議實現(xiàn)包wmqtt.jar(http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006)完成推送功能。圖4為系統(tǒng)實現(xiàn)界面,在左邊的target文本框中輸入設(shè)備的唯一ID號“AslanchenIsGod”,text文本框中輸入要發(fā)送的內(nèi)容“危險警告”,點擊“Send Push Message”按鈕就可在手機(jī)端推送及時的報警信息。

圖4 系統(tǒng)實現(xiàn)的推送功能

2.3 Android平臺Web Services訪問

Web Services是一種基于SOAP協(xié)議實現(xiàn)遠(yuǎn)程調(diào)用的分布式計算方式,是目前常用的SOA實現(xiàn)技術(shù)和異構(gòu)系統(tǒng)集成的主要手段,具有非常廣闊的應(yīng)用前景。但是,在Android SDK中并沒有提供調(diào)用Web Services的類庫,需要借助第三方類庫來實現(xiàn)。其中最常用的是開源項目ksoap2-android(http://code.google.com/p/ksoap2-android/),其為Android平臺提供給了一個輕量級而且高效的SOAP庫。利用ksoap2-android開源項目訪問Web Services的步驟如圖5所示。

3 結(jié)語

SOA是近幾年業(yè)界廣為接受的軟件體系架構(gòu),它的提出使得Web Services得到了更為廣泛的應(yīng)用。本文采用SOA架構(gòu),利用Web Services的封裝性和松耦合性,將采集到的建筑能耗數(shù)據(jù)封裝為Web服務(wù)提供給各種類型的終端用戶,可以很好地適應(yīng)目前建筑能耗監(jiān)測系統(tǒng)應(yīng)用環(huán)境存在的地域分布性的狀況?;谠摻鉀Q方案實現(xiàn)了一個面向移動設(shè)備,運行于Android操作系統(tǒng)的建筑能耗監(jiān)測系統(tǒng),使用戶能通過各種移動終端獲取最新的建筑能耗信息及預(yù)警信息,擴(kuò)大了能耗信息的覆蓋面。

圖5 利用ksoap2-android開源項目訪問Web Service方法

[1]鄭宗生,黃冬梅,張建新,等.面向SOA的城市風(fēng)暴潮災(zāi)害評估 GIS 系統(tǒng)[J].計算機(jī)工程與設(shè)計,2011,32(3):931-935.

[2]劉建峰,陳志泊.基于SOA的校園網(wǎng)運維平臺[J].計算機(jī)工程與設(shè)計,2011,32(2):543-548.

[3]馬越.Android的架構(gòu)與應(yīng)用[D].北京:中國地質(zhì)大學(xué),2008.

[4]Shane Conder.Android移動應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.

[5]管紅杰,王珂,江海峰,等.SOA架構(gòu)的工作流管理系統(tǒng)的研究與應(yīng)用[J].計算機(jī)工程與設(shè)計,2011,32(5):1654-1657.

猜你喜歡
開源圖表架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
五毛錢能買多少頭牛
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
雙周圖表
足球周刊(2016年14期)2016-11-02 10:54:56
雙周圖表
足球周刊(2016年15期)2016-11-02 10:54:16
雙周圖表
足球周刊(2016年10期)2016-10-08 18:30:55
圖表
世界博覽(2016年16期)2016-09-27 18:25:26
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
钟祥市| 乐都县| 南江县| 兴仁县| 柳河县| 苏尼特左旗| 石台县| 延长县| 宝清县| 新乡县| 堆龙德庆县| 定陶县| 玛沁县| 化德县| 乐安县| 大关县| 文安县| 浏阳市| 东方市| 白河县| 德阳市| 诸城市| 潍坊市| 武强县| 伽师县| 剑河县| 山东省| 台湾省| 上高县| 固原市| 五台县| 德格县| 宁晋县| 中方县| 彩票| 胶南市| 澄迈县| 合水县| 隆尧县| 寻甸| 南投县|