◆袁 宏 梁 虹
(1.四川省核工業(yè)地質(zhì)調(diào)查院 四川 610061;2.中國(guó)地質(zhì)調(diào)查局成都地質(zhì)調(diào)查中心 四川 610081)
基于.NET的地球物理信息服務(wù)平臺(tái)與Andorid應(yīng)用開(kāi)發(fā)
◆袁 宏1梁 虹2
(1.四川省核工業(yè)地質(zhì)調(diào)查院 四川 610061;2.中國(guó)地質(zhì)調(diào)查局成都地質(zhì)調(diào)查中心 四川 610081)
在網(wǎng)絡(luò)技術(shù)日新月異的發(fā)展下,移動(dòng)終端憑借其“實(shí)時(shí)實(shí)地”獲取信息的能力,成為我們了解信息的重要渠道。在傳統(tǒng)PC終端基礎(chǔ)上,移動(dòng)端上的用戶(hù)體驗(yàn)已成為Web信息系統(tǒng)的一個(gè)重要關(guān)注點(diǎn)。本文采用ASP.NET后端技術(shù)、JSON數(shù)據(jù)交換格式,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)地球物理行業(yè)信息共享與綜合服務(wù)平臺(tái),以服務(wù)于行業(yè)發(fā)展和社會(huì)經(jīng)濟(jì)發(fā)展。
.NET;Android;JSON;服務(wù)平臺(tái)
當(dāng)今,互聯(lián)網(wǎng)已經(jīng)成為一種普遍的生活方式?;ヂ?lián)網(wǎng)可以比任何一種方式都更快、更經(jīng)濟(jì)、更直觀(guān)、更有效地把一個(gè)思想或信息傳播開(kāi)來(lái)。[1]同時(shí),隨著寬帶無(wú)線(xiàn)接入技術(shù)和移動(dòng)終端技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)逐漸和移動(dòng)通信結(jié)合形成移動(dòng)互聯(lián)網(wǎng)。如今,移動(dòng)APP(移動(dòng)應(yīng)用服務(wù))“實(shí)時(shí)實(shí)地”獲取各種信息的能力,使得它已經(jīng)成為我們了解信息的重要渠道,如微博、微信、電子地圖等。
如今,在傳統(tǒng)的PC終端基礎(chǔ)上,移動(dòng)端上的用戶(hù)體驗(yàn)已成為 Web信息系統(tǒng)的一個(gè)重要關(guān)注點(diǎn)。手機(jī)已不再僅僅是一種通信工具,而已發(fā)展成為集通信、生活服務(wù)、休閑娛樂(lè)、辦公等多種功能的移動(dòng)手持終端。[2]同時(shí),不同種類(lèi)的移動(dòng)終端應(yīng)用(APP)也蓬勃興起和快速發(fā)展。微博作為一種流行的結(jié)合無(wú)線(xiàn)網(wǎng)絡(luò)和有線(xiàn)網(wǎng)絡(luò),分享并獲取信息的即時(shí)通訊服務(wù),也從PC發(fā)展到手機(jī)端,帶給用戶(hù)更便捷的信息傳播和交流方式。此外,微信借助互聯(lián)網(wǎng)和移動(dòng)客戶(hù)端的快速發(fā)展,迅速發(fā)展成為當(dāng)下人們?nèi)粘贤ㄅc分享信息的主要通訊方式。[3]微信已成為一種全新的信息傳播方式正在改變著人們的社交方式和生活方式[4]。
地球物理學(xué)是地球科學(xué)的主要學(xué)科之一,地球物理勘探是一種重要的勘查方法技術(shù),在油氣勘探、礦產(chǎn)地質(zhì)勘探、工程勘探、環(huán)境勘探、工業(yè)管線(xiàn)勘探、考古勘探中應(yīng)用廣泛。但由于行業(yè)聯(lián)合不足,沒(méi)有形成較好的市場(chǎng)機(jī)制,不能較好適應(yīng)市場(chǎng)經(jīng)濟(jì)的發(fā)展變化,許多積累的資源未能得到充分利用。為此,利用互聯(lián)網(wǎng)建立一個(gè)資源共享、信息互通的服務(wù)平臺(tái)有著重要的意義。
地球物理行業(yè)信息服務(wù)平臺(tái)構(gòu)建采用PC端與移動(dòng)端結(jié)合的方式,構(gòu)建了針對(duì)普通PC端的網(wǎng)站,構(gòu)建了針對(duì)移動(dòng)端的APP,搭建了針對(duì)PC和移動(dòng)端的微博、微信。
平臺(tái)整體架構(gòu)如圖1所示。
平臺(tái)整體架構(gòu)從下至上按照5層設(shè)計(jì):數(shù)據(jù)層按照規(guī)范化的格式搭建一個(gè)統(tǒng)一數(shù)據(jù)庫(kù),提供平臺(tái)運(yùn)行的基礎(chǔ)數(shù)據(jù)中心;平臺(tái)層依托高性能服務(wù)器24小時(shí)提供信息瀏覽、知識(shí)交流、成果轉(zhuǎn)化、公益互動(dòng)的功能與服務(wù);應(yīng)用層采用線(xiàn)上網(wǎng)絡(luò)信息服務(wù)與線(xiàn)下人工服務(wù)配合的方式,為行業(yè)單位、從業(yè)人員和社會(huì)公眾提供具有針對(duì)性的信息服務(wù)、知識(shí)服務(wù)、宣傳服務(wù)和公益服務(wù)等社會(huì)化服務(wù);網(wǎng)絡(luò)層依托互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)實(shí)現(xiàn)用戶(hù)只要能聯(lián)網(wǎng)即可訪(fǎng)問(wèn)與使用本平臺(tái);展示層可在多種終端設(shè)備上進(jìn)行平臺(tái)接入,如電腦、智能手機(jī)、智能電視和觸摸設(shè)備等。
圖1 平臺(tái)架構(gòu)
本平臺(tái)是一個(gè)網(wǎng)絡(luò)信息服務(wù)平臺(tái),主要的開(kāi)發(fā)技術(shù)包括動(dòng)態(tài)網(wǎng)站建站技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、Android開(kāi)發(fā)技術(shù)等。目前,國(guó)內(nèi)外動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā)語(yǔ)言主要有:ASP、JSP、PHP、ASP.NET。其中ASP.NET是一個(gè)編譯的、基于.NET的環(huán)境,有著自己特殊的優(yōu)勢(shì):管理性強(qiáng)、更好的安全保護(hù)、底層類(lèi)多、開(kāi)發(fā)速度快、易于部署等。本平臺(tái)針對(duì)PC端的Web應(yīng)用開(kāi)發(fā)即選擇ASP.NET進(jìn)行建站,相應(yīng)的數(shù)據(jù)庫(kù)采用了SQL Server,開(kāi)發(fā)環(huán)境為Visual Studio 2013。ASP.NET的建站技術(shù)相對(duì)成熟,結(jié)合HTML、CSS、JavaScript等即可實(shí)現(xiàn)。在已有ASP.NET網(wǎng)站基礎(chǔ)上,平臺(tái)移動(dòng)端開(kāi)發(fā)是一個(gè)關(guān)鍵問(wèn)題。
Android的開(kāi)發(fā)模式一般有原生態(tài)開(kāi)發(fā)、web應(yīng)用開(kāi)發(fā)和混合模式開(kāi)發(fā)三種。他們同時(shí)具備自己的有點(diǎn),同時(shí)也有自身的缺點(diǎn)。
(1)原生態(tài)開(kāi)發(fā)即使用移動(dòng)平臺(tái)(如 Android、iOS)支持的開(kāi)發(fā)工具和語(yǔ)言進(jìn)行開(kāi)發(fā)。比較而言,原生應(yīng)用程序的外觀(guān)和性能是最佳的,但其開(kāi)發(fā)成本高、版本更新不方便,獲得新版本時(shí)需重新下載應(yīng)用更新。
(2)Web應(yīng)用開(kāi)發(fā)本質(zhì)上是為移動(dòng)瀏覽器設(shè)計(jì)的基于Web的應(yīng)用開(kāi)發(fā),現(xiàn)在常用的開(kāi)發(fā)技術(shù)是HTML5、JavaScript和CSS。它可實(shí)現(xiàn)只編寫(xiě)一次即可在多個(gè)跨平臺(tái)設(shè)備上運(yùn)行,同時(shí)仍存在一些局限性,如會(huì)話(huà)管理、安全離線(xiàn)存儲(chǔ)以及訪(fǎng)問(wèn)原生設(shè)備功能等。
(3)混合應(yīng)用即原生應(yīng)用和Web應(yīng)用的結(jié)合體,它綜合了Web應(yīng)用開(kāi)發(fā)的開(kāi)發(fā)速度和Native應(yīng)用開(kāi)發(fā)的高性能體驗(yàn),可兼容多平臺(tái),但是性能稍慢。它主要使用H5和JS構(gòu)建而成,然后封裝在細(xì)薄的原生容器里面,可通過(guò)容器來(lái)訪(fǎng)問(wèn)原生平臺(tái)功能。
綜合研究時(shí)間、成本、維護(hù)性和擴(kuò)展性要求,在已有 Web網(wǎng)站基礎(chǔ)上,平臺(tái)移動(dòng)端選擇Hybrid App開(kāi)發(fā)模式完成平臺(tái)APP開(kāi)發(fā)工作。
在移動(dòng)端,相關(guān)數(shù)據(jù)顯示目前世界上使用最多的操作系統(tǒng)為Android,作為移動(dòng)端的操作系統(tǒng),其處理能力遠(yuǎn)遠(yuǎn)比不上PC端的處理能力。平臺(tái)Web網(wǎng)站采用SQL Server數(shù)據(jù)庫(kù),而SQL Server安裝后將占用上GB的存儲(chǔ)空間,運(yùn)行內(nèi)存占用也高達(dá)上100M,若想在Android端直接連接SQL Server數(shù)據(jù)庫(kù),對(duì)于移動(dòng)端來(lái)說(shuō)開(kāi)銷(xiāo)是巨大的。而且,Android采用JAVA語(yǔ)言,若直接連接SQL Server要先加載SQLJDBC驅(qū)動(dòng),目前只有PC版的驅(qū)動(dòng)包。由此通過(guò)一個(gè)中間“橋梁”訪(fǎng)問(wèn)SQL Server數(shù)據(jù)庫(kù)是當(dāng)前的主要方法。中間“橋梁”即運(yùn)行在服務(wù)器端的服務(wù)程序,它的主要作用是連接與訪(fǎng)問(wèn)SQL Server數(shù)據(jù)庫(kù),實(shí)現(xiàn)客戶(hù)端的各種操作請(qǐng)求并返回操作結(jié)果。復(fù)雜的數(shù)據(jù)庫(kù)操作都由服務(wù)器端完成,客戶(hù)端只進(jìn)行較為簡(jiǎn)單的數(shù)據(jù)交互,大大減輕了客戶(hù)端的負(fù)擔(dān)。
平臺(tái)技術(shù)方案如圖2所示。
圖2 平臺(tái)技術(shù)方案
針對(duì)ASP.NET應(yīng)用程序,服務(wù)端的實(shí)現(xiàn)可采用Web service,也可采用Web site。Web site即通常說(shuō)的網(wǎng)站。Web service是一個(gè)平臺(tái)獨(dú)立的、低耦合的、基于可編程的web的應(yīng)用程序,它向外界暴露出一個(gè)能夠通過(guò)Web進(jìn)行調(diào)用的API。比較而言:Web service只是提供一種服務(wù),它使用開(kāi)放的XML標(biāo)準(zhǔn)來(lái)描述、發(fā)布、協(xié)調(diào)和配置這些服務(wù);Web site可提供用戶(hù)界面等具體的頁(yè)面,使用W3C標(biāo)準(zhǔn)來(lái)描述、發(fā)布頁(yè)面內(nèi)容。
值得一提的是,ASP.NET頁(yè)面以ASPX擴(kuò)展名存儲(chǔ)。頁(yè)面由文本、標(biāo)記以及ASP.NET特定服務(wù)器標(biāo)記和腳本組成。與ASPX不同,ASP.NET中另外一種格式ASHX(一般事務(wù)處理程序頁(yè))主要用來(lái)寫(xiě)Web handler,它只簡(jiǎn)單的對(duì)Web請(qǐng)求直接返回結(jié)果,比ASPX少處理了HTML過(guò)程,比ASPX響應(yīng)快,特別適合于生成動(dòng)態(tài)圖片、動(dòng)態(tài)文本(純文本、JSON、XML、JavaScript等)[5]。
這里的JSON,英文全稱(chēng)JavaScript Object Notation,是一種輕量級(jí)數(shù)據(jù)交換格式,在跨平臺(tái)數(shù)據(jù)傳輸中非常有優(yōu)勢(shì)[6]。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C、C++、C#、Java、JS、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。它比XML更小、更快、更易解析,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成[7]。
由此,本文采用ASHX+JSON實(shí)現(xiàn)Android移動(dòng)端的數(shù)據(jù)庫(kù)連接與訪(fǎng)問(wèn)操作。一方面,ASHX與ASPX的編碼方式一致,上手容易,能與已開(kāi)發(fā)的Web網(wǎng)站快速部署,另一方面,ASHX相對(duì)Web service比較輕量級(jí),經(jīng)測(cè)試處理效率更高,而Web service需要遵守一些 SOA標(biāo)準(zhǔn)協(xié)議反而在處理簡(jiǎn)單文本數(shù)據(jù)時(shí)效率更低。
綜上,整個(gè)平臺(tái)基于一個(gè)統(tǒng)一的 SQL Server數(shù)據(jù)庫(kù),采用ASP.NET為PC端和移動(dòng)端提供統(tǒng)一的管理窗口。ASP.NET通過(guò)WEB窗體(ASPX)提供客戶(hù)端瀏覽器訪(fǎng)問(wèn)服務(wù);通過(guò)一般處理程序(ASHX)為移動(dòng)端(APP)提供數(shù)據(jù)交互(JSON);通過(guò)ADO.NET與數(shù)據(jù)庫(kù)進(jìn)行交互。微博、微信為第三方提供的功能,由管理員統(tǒng)一管理。
平臺(tái)采用ASP.NET與Android Studio環(huán)境,C#、JAVA開(kāi)發(fā)語(yǔ)言,實(shí)現(xiàn)了一個(gè)網(wǎng)站、APP與第三方微博、微信緊密結(jié)合的網(wǎng)絡(luò)信息服務(wù)系統(tǒng),主要實(shí)現(xiàn)了追蹤行業(yè)新聞動(dòng)態(tài)、共享行業(yè)資源、交流行業(yè)熱點(diǎn)、學(xué)習(xí)優(yōu)秀項(xiàng)目案例、科普行業(yè)知識(shí)等功能。
圖3 平臺(tái)網(wǎng)站
圖4 APP首頁(yè)
圖5 APP資源頁(yè)面
本文基于移動(dòng)互聯(lián)思想,研究實(shí)現(xiàn)了一套地球物理行業(yè)服務(wù)平臺(tái),用戶(hù)可以通過(guò)電腦、手機(jī)等多種終端訪(fǎng)問(wèn)與使用平臺(tái)功能。平臺(tái)將地球物理行業(yè)的單位機(jī)構(gòu)、人才、設(shè)備、項(xiàng)目成果等資源整合起來(lái),實(shí)現(xiàn)資源共享、提高設(shè)備利用率、促進(jìn)交流等目的。
[1] 方富貴.淺析中國(guó)互聯(lián)網(wǎng)的現(xiàn)狀及發(fā)展趨勢(shì)[J].甘肅聯(lián)合大學(xué)學(xué)報(bào)(自然科學(xué)版),2012.
[2] 丁釗.移動(dòng)互聯(lián)網(wǎng)時(shí)代廣播媒體面臨的機(jī)遇與挑戰(zhàn)[J].中國(guó)廣播,2014.
[3] 唐睿.移動(dòng)互聯(lián)網(wǎng)背景下微信的傳播優(yōu)勢(shì)分析[J].新聞傳播,2014.
[4] 申丹丹.移動(dòng)互聯(lián)網(wǎng)背景下微信的傳播優(yōu)勢(shì)分析[J].青春歲月,2013.
[5] Jeff Wong. aspx,ascx 和 ashx 使用小結(jié)[EB/OL].http://www.cnblogs.com/jeffwongishandsome/archive/2009/07/07/1517628.html.
[6] 郭武士.JSON在Web開(kāi)發(fā)中的應(yīng)用[J].四川工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007.
[7] 百度百科.JSON[EB/OL].http://baike.baidu.com/link?url=cZyQmr234mrTYLRxonlSJlCvrXM c1hjmFqLjC3UIFElFWOWdKEf5VXI1ySaqQL9wISRatgcj0KC3S0 lWLB7Fsa.
基金:四川省科技廳基礎(chǔ)條件平臺(tái)項(xiàng)目(2016GZ0012)。