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