張婷
(唐山學院計算機科學與技術系 河北唐山 063000)
“智慧城市”建設是我國“十二五”規劃的重要戰略目標之一,而城市移動信息化是“智慧城市”建設的重要組成部分。利用移動技術,構建一個信息化應用與服務平臺,為城市中的居民、企事業單位等提供一個綜合的、統一接口的移動信息化服務,是推動城市發展與建設的有力動力。近年來,隨著移動通信應用技術的發展和人們對隨時隨地獲取資訊,尤其對互聯網移動化需求的增強,手機作為隨身便捷、更具時效性的媒體出現,已逐漸成為人們新聞資訊主要來源。手機媒體的快速發展,必然加大對社會的影響力,充分利用手機等移動終端作為城市移動信息化建設的平臺,建立和完善相應的信息傳播管理機制,為完善信息社會做更大努力。
城市門戶建設分為三個層面,一是移動政務,移動信息化技術將傳統的政務應用結合到移動通信平臺[1],為城市居民與政府職能部門之間搭建了一座可以隨時溝通的橋梁;二是移動商務,高效城市是移動商務的發展方向,移動信息化有效地提高辦公的效率,使商務生活在快節奏中有條不紊;三是移動生活,針對城市居民的城市新聞資訊、旅游咨詢、生活服務、購物、娛樂節目等。唐山作為國家級科學發展示范區,在其“十二五”城市信息化發展規劃中,著重提出數字城市的建設,因此,城市移動門戶-“掌上唐山”的建設顯得尤為重要。
“掌上唐山”以本地資源為依托,立足于打造城市掌上“虛擬城市”,建立本地化的信息內容,側重于本地生活信息和內容,整合本地資源,提供便民服務。為我市本地移動用戶和外地客商提供最全面的本地新聞、衣食住行以及貼近生活的信息查詢服務,為廣大市民提供一站式的生活解決方案,同時也是展示我市形象的重要窗口,是城市對外和對內宣傳的重要陣地。
根據調研,考慮到實際應用,前臺使用Android技術,后臺應用JSP+M ysql開發“掌上唐山”移動門戶。
Android是一種以Linux為基礎的開放源碼操作系統,主要用于便攜設備,是目前全球最受歡迎的智能手機平臺。Android SDK為開發人員提供了在Android平臺使用Java編程語言進行開發應用程序所必要的工具和API[2]。從軟件分層的角度來看,Android平臺由應用程序、應用程序框架、程序庫(libraries)、Android系統運行庫以及Linux內核五部分構成[3]。手機終端使用的開發工具是包含KVM 虛擬機的插件的Eclipse,同時前臺界面采用Android編程語言。
在W indow s環境下搭建Android開發環境,需要的組件包括:JDK、Eclipse、ADT、Android在Eclipse上的開發工具、Android SDK等。Android開發應用程序包括活動(Activity)、服務(Service)、廣播接收者(BroadcastReceiver)、內容提供者(ContentProvider)、意圖(Intent)等基本組件。
數據庫使用M ySQL,一個多用戶、多線程的SQL數據服務器。SQL是一種標準化語言,它使得存儲、更新和存取信息更容易。M ySQL能夠以相當快的速度和靈活來允許您存儲紀錄文件和圖像。對于M ySQL來說具有可延伸性以及資料處理能力;M ySQL提供了許多不同的用戶界面和各種程序語言介面,例如C+,PHP,Perl,Java,以及Python。
對于手機客戶端來說,主要是將U I線程與后臺業務處理層分開,這樣有助于多人開發并集成,而且解決了非U I線程對U I線程進行操作引發的問題[4]。這兩層在設計時不會有相互干擾。當業務處理層將獲得的數據放入客戶端緩存中,方便U I的調用。
對于服務端來說,主要采用了Factory和DAO設計模式。其優點主要有以下幾點:
(1)簡單遷移化
DAO層的使用,使應用程序向不同的數據庫進行遷移變得容易。商業對象可以對底層數據是如何實現的一無所知.這樣的話,遷移只涉及到DAO層的修改。另外,使用工廠模式,能夠為每一種底層數據實現提供一個具體的工廠模式實現成為可能。
(2)透明化
商業對象可以在完全不知道數據源如何具體實現的狀況下來使用數據源.訪問數據源是相當透明的,因為實現的細節已經被隱藏到了DAO層。
(3)降低商業對象的編程難度
因為DAO管理著所有的數據訪問細節,從而在很大程度上簡化了在商業對象和其它使用DAO的數據客戶端里的實現代碼。所有的實現細節代碼比如SQL語句都包含在DAO層而不在商業對象中,這樣的話使得代碼變得更加健壯且提高了開發效率。
(4)所有的數據訪問都集中到同一層中去
由于所有的數據訪問操作都已經被DAO層所代理,所以單獨的數據訪問層可以被看作可以是將數據訪問層和其余應用程序隔離的一層。這種集中,使得應用程序的維護和管理更加容易。
“掌上唐山”為本地新聞資訊客戶端,設計功能涵蓋本地資訊及國內外新聞,包括焦點新聞即時推送、滾動播報,本地、國內、國際、文體全覆蓋;滿足用戶需求的商業資訊,電子優惠券、消費提示;社區掌上互動;微周刊以及生活服務信息分類,即時搜索,餐飲、休閑、娛樂場所點擊即達,提供用戶訂閱頻道。
(1)新聞頻道。第一時間獲知國內國際、文娛體育要聞趣聞,特別是來自本地主流報媒的本地要聞及深度報道,用戶可縱橫“穿越”報紙、網絡、手機三種不同媒介,隨時隨地與報紙全媒體記者在線溝通。
(2)訂閱頻道。用戶根據自己喜好訂閱“掌上唐山”內部和外包內容的頻道,可添加、刪除、移動欄目,點擊欄目可以直接進入對應頻道、專題或活動鏈接。
(3)優惠頻道。為電子優惠券頻道,用戶在合作商家出示優惠券享受優惠,有·推薦、免費、美食、娛樂、購物、其他等二級頻道。
(4)微刊頻道。微刊是用相對簡短的內容對一個主題的連載,是由合作伙伴、網友“自己當主編”的欄目,其二級頻道為:最新、時尚、文化、公益、其他等。
(5)生活頻道。為本地生活服務信息分類頻道。有美食、娛樂、結婚、健身、酒店等信息。可查詢交通、違章、本地列車、本地航班、本地公交線路功能。通過LBS定位身邊的注冊場所,有反饋、論壇和關于我們連接。
后臺功能:包括權限設置、新聞管理、訂閱管理、優惠券管理、微刊管理、生活頻道:廣告位設置、分享功能、統計功能等。
系統功能如圖1所示。

圖1 系統功能圖
網絡通信模式采用無狀態的同步通信模式。無狀態即在客戶端與服務器的一次完整會話過程中,沒有始終建立的一條確定的連接,而是在每次客戶端需要請求服務器的服務時臨時建立連接,服務完成后連接則關閉。無狀態的同步通信模式具有負荷小的特點,但如何讓服務器區分各個客戶端指令是需要解決的問題。利用在服務器端設計緩存的方式,把用戶保存并設計編號,編號發給客戶端,客戶端則以編號的形式附加給服務請求。編號是由服務器創建的只為保證當前登錄的用戶編號,不同的登錄需要重新賦予編號。有狀態的同步通信模式具有負荷較大的特點,有若干線程維護著鏈接。
設計中客戶端與服務器的通信方式采用Socket通信完成,Socket傳遞Java對象(使用Java對象序列化機制),即Socket中傳遞的是Request(請求)和Response(應答)對象。而Request和Response對象中封裝一個Map來保存需要傳遞的參數,所有參數均需實現java.io.Serializable(可序列化)接口。
由于篇幅限制,這里給出部分實現代碼,主Activity代碼:




隨著移動用戶的迅速增長和智能手機的快速普及,智能終端及應用在人們的生活中越來越重要。系統使用Eclipse開源開發平臺進行手機客戶端軟件的開發與設計,通過TCP報文與后臺進行數據交換,使用通信中間件作為并發交易消息的分發與處理,使用Sybase數據庫系統作為后臺數據存儲管理,設計并實現了一個基于Android的城市移動門戶——“掌上唐山”系統。
[1]李曉軍.移動政務的功能及評價研究[D].北京交通大學,2011(6)85-86.
[2]3GPP2,S.R0037,IPNetwork Architecture Model 1 for CDMA2000 Spread Sprectrum Systems,2004.
[3](美)羅杰.Android應用開發(李耀亮譯)[M].北京:人民郵電出版社,2010.
[4]林博佳.基于Android平臺的煤礦移動信息化系統的研究與實現[D].北京郵電大學,2012(1)25-26.