劉帥奇,胡紹海,肖 揚(yáng)
(北京交通大學(xué)信息科學(xué)研究所,北京 100044)
團(tuán)購是一種滿足企業(yè)與市場雙贏和社會共性需求的一種行為[1]。消費(fèi)者利用團(tuán)購形式可以通過低廉的成本獲得最滿意價(jià)值的商品或者服務(wù)。而對于企業(yè)來說,團(tuán)購意味著大規(guī)模、成批量的采購商品或者服務(wù),這將大大降低經(jīng)營成本,加速資金流通速度。隨著時(shí)間的推移,團(tuán)購網(wǎng)站日益的增多競爭白熱化,大量的團(tuán)購網(wǎng)站日益消失。因此,現(xiàn)在的團(tuán)購網(wǎng)站到了最后的攻堅(jiān)時(shí)刻,現(xiàn)在是決定未來誰可以生存的關(guān)鍵時(shí)刻。隨著智能手機(jī)已經(jīng)成為當(dāng)今人們生活中主流手機(jī),基于Android操作系統(tǒng)的手機(jī)憑借其強(qiáng)大的智能性逐漸成為智能手機(jī)領(lǐng)域中的王者。Android系統(tǒng)平臺具有開放性、應(yīng)用等價(jià)性和易于開發(fā)等優(yōu)點(diǎn)[2],因此應(yīng)用相當(dāng)廣泛。團(tuán)購網(wǎng)站不僅僅是拼誰的背后實(shí)力雄厚,誰的投資資本大,應(yīng)該是更多地?fù)屨加脩?,只有擁有了客戶才可以盈利。如今,隨著智能手機(jī)操作系統(tǒng)和物聯(lián)網(wǎng)革命性的向前發(fā)展,買家已經(jīng)不僅僅局限于PC端進(jìn)行各種操作[3],也不再局限于使用網(wǎng)站進(jìn)行購物,團(tuán)購亦是如此。所以,在此背景下團(tuán)購的商家應(yīng)該有所改變,或者這也許是第三方開發(fā)者的一個(gè)機(jī)會。
在目前的背景下,可以做如下的嘗試,建立一個(gè)所有團(tuán)購信息匯集的網(wǎng)站,或者更簡單,只需要和所有的團(tuán)購網(wǎng)站建立一個(gè)良好的合作關(guān)系,根據(jù)一定的盈利模式將團(tuán)購信息接口開放,然后可以將這些信息匯集到一個(gè)服務(wù)器上進(jìn)行分類。最后,可以基于此服務(wù)器開發(fā)一款基于目前流行的移動平臺的客戶端,以供廣大的手機(jī)用戶使用。通過上述分析,本文創(chuàng)建一個(gè)新的基于Android平臺的團(tuán)購信息匯集業(yè)務(wù),該業(yè)務(wù)為團(tuán)購事業(yè)的繼續(xù)發(fā)展提供了一個(gè)新的思路。
Android作為全世界唯一全面開放的手機(jī)操作系統(tǒng),與其他的手機(jī)操作系統(tǒng)相比,Android有4個(gè)無可比擬的好處——開放性、應(yīng)用平等性、應(yīng)用無界性和易于開發(fā)性[4]。Android系統(tǒng)的架構(gòu)如圖1所示。
圖1 Android系統(tǒng)結(jié)構(gòu)(截圖)
從架構(gòu)圖看,Android分為4層,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux核心層[5]。應(yīng)用開發(fā)人員大部分情況下是和應(yīng)用框架層打交道。應(yīng)用程序架構(gòu)設(shè)計(jì)簡化了組件的重要性,任一應(yīng)用程序都可以發(fā)布它的功能塊,并供其他的任何應(yīng)用程序使用,使用戶可以方便地替換程序組件。系統(tǒng)運(yùn)行庫包括系統(tǒng)庫和運(yùn)行庫,系統(tǒng)庫中包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。核心庫提供了JAVA編程語言核心庫的大多數(shù)功能,其中最重要的是緩存器型態(tài)的Dalvik虛擬機(jī),可以使用最少的內(nèi)存資源來執(zhí)行,同時(shí)執(zhí)行多個(gè)虛擬機(jī)特性,運(yùn)行的速度較快,且硬件實(shí)現(xiàn)比較容易。
在本業(yè)務(wù)中首先建立一個(gè)Linux平臺后臺服務(wù),將已有多個(gè)團(tuán)購網(wǎng)站的信息通過該服務(wù)下載到服務(wù)器上。其次,在服務(wù)器上創(chuàng)建一個(gè)監(jiān)聽服務(wù),該服務(wù)可以監(jiān)聽客戶端對服務(wù)器的連接,可以根據(jù)要求向客戶端發(fā)送團(tuán)購信息。最后,創(chuàng)建一個(gè)移動平臺的客戶端,該客戶端可以向服務(wù)器發(fā)起連接,然后將得到的團(tuán)購信息顯示出來,還可以查詢某一城市,某一項(xiàng)的團(tuán)購信息。當(dāng)然,在后期,如果和團(tuán)購網(wǎng)站洽談得順利,則可以加上購買團(tuán)購的服務(wù)??傮w設(shè)計(jì)的流程圖如圖2所示。
服務(wù)器端的設(shè)計(jì)分為兩部分,首先是啟動一個(gè)服務(wù)用來收集各個(gè)團(tuán)購網(wǎng)站的團(tuán)購信息,并將其按照城市或者關(guān)鍵詞進(jìn)行分類,稱該服務(wù)為團(tuán)購信息抓取服務(wù)。其次是啟動一個(gè)服務(wù)用來監(jiān)聽是否有客戶端連接服務(wù)器,并根據(jù)收到的客戶端指令將客戶端所需的團(tuán)購信息發(fā)送給客戶端,稱該服務(wù)為指令服務(wù)。
對于團(tuán)購信息抓取服務(wù),目前本業(yè)務(wù)采用簡單定時(shí)抓取服務(wù),使用Linux+MySql來實(shí)現(xiàn),這是一項(xiàng)非常成熟的技術(shù)。不過,顯然本文設(shè)計(jì)的服務(wù)只適合于小規(guī)模的應(yīng)用,要想實(shí)現(xiàn)大規(guī)模的應(yīng)用,可以考慮使用文獻(xiàn)[6]提出的移動云存儲技術(shù),該技術(shù)大大增加服務(wù)的計(jì)算能力和存儲空間。
對于指令接受服務(wù),本文采用J2ME與Android直接進(jìn)行Socket通信,采用UDP協(xié)議,通過接受分析客戶端的各種指令,來進(jìn)行相應(yīng)的操作,再通過Socket將處理的結(jié)果返回給客戶端。其具體流程如圖3所示。
本文開發(fā)的客戶端是基于Android系統(tǒng)平臺的,將apk安裝到相應(yīng)的手機(jī)啟動即可,注意這個(gè)時(shí)候手機(jī)應(yīng)該已經(jīng)連上互聯(lián)網(wǎng)了。首先,客戶端會啟動一個(gè)Socket服務(wù)連接服務(wù)器,此時(shí)如果服務(wù)器啟動,且連接成功則會返回當(dāng)前最新的一百條團(tuán)購信息。
服務(wù)器將抓取的團(tuán)購信息轉(zhuǎn)換為上面的團(tuán)購信息結(jié)構(gòu),在發(fā)生給客戶端時(shí)該信息會寫入SD卡。由于該團(tuán)購信息類實(shí)現(xiàn)了序列化操作,所以在服務(wù)器解析到的團(tuán)購信息都可以寫成一個(gè)對象文件,從而發(fā)送給客戶端,而客戶端只需要序列化地讀取即可。為了實(shí)現(xiàn)客戶端與服務(wù)器的交互,本文采用指令交互。一般分為發(fā)送全部的最新100條團(tuán)購數(shù)據(jù)、發(fā)送指定的城市的團(tuán)購信息、發(fā)送指定關(guān)鍵詞的團(tuán)購信息、發(fā)送完畢。
由于在服務(wù)器端,沒有開發(fā)顯示界面,因此只需要去對應(yīng)存儲團(tuán)購信息的目錄下查看有沒有存儲文件即可。對于客戶端,當(dāng)連接網(wǎng)絡(luò)的時(shí)候,打開客戶端軟件時(shí)將會顯示如圖4所示的界面。圖4的出現(xiàn)意味著發(fā)送全部的最新100條團(tuán)購數(shù)據(jù)和發(fā)送完畢指令完成驗(yàn)證,發(fā)送指定的城市的團(tuán)購信息、發(fā)送指定關(guān)鍵詞的團(tuán)購信息這兩條指令可以通過圖5的選單進(jìn)行驗(yàn)證。
圖4 團(tuán)購客戶端的啟動界面(截圖)
這樣就完成了全部的開發(fā)設(shè)計(jì)過程??傮w來看,本文開發(fā)的基于Android系統(tǒng)的團(tuán)購匯集業(yè)務(wù)的效果不錯(cuò),不使用PC設(shè)備就可以上網(wǎng)查看不同網(wǎng)站匯集到的最新的團(tuán)購信息,而且該客戶端還具有良好的交互性。
圖5 團(tuán)購客戶端不同指令的選單(截圖)
本文設(shè)計(jì)了一種基于團(tuán)購信息匯集的業(yè)務(wù),該業(yè)務(wù)為當(dāng)前的團(tuán)購事業(yè)的繼續(xù)發(fā)展提供了新的思路,開發(fā)設(shè)計(jì)的成果證明該方法是可行的。如果將來可以和這些團(tuán)購網(wǎng)站談好利益分配問題的話,可以在客戶端中加上購買該團(tuán)購的功能,從而實(shí)現(xiàn)盈利。
[1]吳國慶.“團(tuán)購”行為特點(diǎn)及影響分析[J].商業(yè)研究,2003(23):145-146.
[2]李琴,陳立定,任志剛.基于Android智能手機(jī)遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2012,36(2):134-136.
[3]楊明極,畢晶.基于Android視頻客戶端的設(shè)計(jì)[J].電視技術(shù),2012,36(3):43-47.
[4]沈才樑,唐科萍,俞立峰,等.Android權(quán)限提升漏洞攻擊的檢測[J].電信科學(xué),2012,28(5):115-119.
[5]陳彩蓮,褚晶輝,呂衛(wèi),等.可與數(shù)字電視進(jìn)行信息交互的Android應(yīng)用程序設(shè)計(jì)[J].電視技術(shù),2011,35(12):78-79.
[6]王培海.基于Android的移動云存儲系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2012,35(15):94-97.