《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 用JAVA手機購物

用JAVA手機購物

2009-01-06
作者:曹斌

一、概述?

??? 本文主要闡述了基于motorola388 手機的手機購物系統的設計思想和實現原理。該系統是桌面型客戶關系管理系統在智能移動終端上的擴展,應用于廣大的手機用戶(包括個人用戶及企業級用戶)。手機購物打破傳統的購物理念,人們不必親自去商場選購商品,可以通過手機的服務實現隨時隨地購買商品,享受服務。系統開發時,我們采用了Java 無線應用技術(參見『1』),在J2ME(CLDC+MIDP) + JSP平臺上實現企業級的多層分布式體系架構,并利用XML 技術進行數據傳輸和交換。?

二、需求分析?

◆??系統需求?

??? 本系統是一個純Java解決方案的End2End的移動商務(m-Commerce)系統,它以無線的方式向用戶提供商品的購買和相關的一系列服務。該系統限于支持Java的手機用戶使用。?

??? 為提高商家的服務項目及服務質量,滿足客戶的需求,以人為本,使人感到方便快捷,達到隨時隨地購買商品,享受服務。使用的開發工具及軟件:J2SDK1.3.1 + JBuilder7 + J2Mewtk1.0.3 + jakarta-tomcat-4.0 + Access。?

◆??客戶需求分析?

●??購買商品,滿足客戶需要?

●??提供送貨上門服務,方便客戶?

●??提供餐飲食品即食服務?

◆??運營設想?

??? 目前有很多很成功的辦理即食餐飲業服務的公司,例如startbucks(星巴克)『2』,他們的運營方式很值得借鑒:?

??? (1)注冊:用戶首先通過網絡注冊,包括用戶信息注冊以及匯預付款(或者用招商銀行一卡通網上轉帳)。由于目前國內支付方式的限制,預付款是一個很好的負費解決方案,用一卡通直接轉帳也是方案之一。?

??? (2)購買:用戶完成注冊后即可通過無線客戶端進行商品的購買,尤其是食品,滿足客戶在任何地點享受餐飲服務的需要。為方便用戶,可選擇上次所購買的商品,簡潔快速,縮短客戶的選購時間。客戶既可以通過手機連接到網絡,進行選購,也可以通過PC機,登陸到服務商的網站上,進行商品的選購。?

三、系統設計與實現?

??? 考慮到系統的安全性、擴展性和可維護性,我決定在 JSP 平臺下開發服務器端程序,這樣做的復雜度低,成本低,系統性能優越。系統客戶端是運行在motorola388 手機上的,因此必須充分考慮其特點,并在開發中加以應用。也可考慮使用其他型號的手機,只要支持Java技術。系統設計的目標是分開數據庫、業務邏輯層和表示層,是一個典型的三層構架模式。如下圖所示:?

?????????????

??? 下文將對其設計思想和實現原理進行詳細闡述。?

1.客戶端?

??? 客戶端獲得用戶請求并提交遠程服務器,得到結果并加以表現。客戶端分為兩部分,一部分是在手機上運行的,另一部分是在電腦的瀏覽器上運行的。中間通過HTTP協議與服務器端連接。我選擇在J2ME(CLDC+MIDP)平臺上開發客戶端程序,由于MIDlet 程序開發具有內存小、界面簡單、有限的運算能力和網絡性能等特點,需要重點設計以下幾個方面:?

??? ①?與服務器之間的通信?

??? J2ME 支持打開網絡連接并傳送數據,訪問遠程服務器資源。首先,用戶在離線方式下設置系統參數,指定本公司Web服務器的IP地址、端口和Web根目錄,選擇工作方式。隨后,程序把相關信息寫進本地數據庫。每當系統啟動或者切換工作方式時加載,使得MIDlet工作在適當的狀態。?

MIDlet 編程支持Http 網絡連接『3』:?

HttpConnection conn = (HttpConnection)Connector.open(url);?

??? 這樣就在客戶端與服務器之間建立了Http連接,其中url存儲了請求參數信息,比如:?

url = “http://www.mcrm.com:8000/CRMRoot/custCreateAlias?id=001&name=…”?

??? 服務器中相應的servlet將調用doGet()方法處理請求,返回響應,從而把業務邏輯的處理交給了服務器端,達到了“瘦”客戶端的設計目標。建好Http連接以后,就可以方便的操作數據流,進行數據讀寫了:?

InputStream in = conn.openInputStream();?

int data;?

while (data=in.read()!=0){…} …?

??? 客戶端編程的重點在于準確地提交用戶請求參數:查詢商品信息、所選的商品情況、地址信息和服務請求等,并可對查詢到的結果進行更新、選擇。?

??? ② XML解析?

??? XML(Extensible Markup Language)是一種獨立于系統的表達數據信息的標記語言,現已成為網絡系統中通用的數據交換格式。本系統采用XML技術進行數據交換,利用它的分級結構,很容易訪問到所需的數據信息。這就意味著想要取得遠程服務器端XML文檔中的數據信息,MIDlet編程就必須支持XML解析技術。從網上不難得到J2ME端的XML解析器。由于手機上沒有XML解析器,且手機的資源非常有限,本系統采用的是較小的KXML解析器,它是一種非確認(non-validating)、單步(single-step)的解析器。KMXL解析整個XML文檔并把它轉換成一棵元素樹,可以通過調用方法getChildren、getTagName、getContents 等來遍歷整棵樹,得到數據信息。服務器端用JSP來接收參數,使用一個BEAN來封裝對數據庫的操作?

2.表示層?

??? Servlets和JavaBeans構成了表示層。這是一種控制結構,減低了視圖與模型之間的耦合性。當Servlet響應到一個HTTP GET 請求時,doGet()方法被service()方法的默認實現所調用,并把request對象和response對象作為參數傳給該函數。程序覆蓋了doGet()方法,所做主要工作是創建JavaBeans實例,傳遞request對象,調用bean方法,取得存放于bean中的數據,返回結果(XML 文檔)。JavaBeans封裝了更為復雜的業務邏輯Application,Server,JDBC,CommodityList方法執行各種數據存取的事務。它是一種可重用組件,提高代碼復用性,加快了軟件開發過程。如上所述,系統利用JAXP和W3C『4』提供的訪問XML的接口DOM來處理XML文檔。?

3.業務邏輯層?

??? 目前,業務邏輯層僅用了JSP,JavaBeans,Servlet來實現,以后將升級為EJB的版本。主要完成客戶端與服務器端的連接及數據處理問題,包括客戶申請服務,驗證客戶提交的信息是否符合格式要求,處理客戶提交的請求,返回客戶信息,上次的商品購買信息及商品列表,客戶選擇后,將所選商品列表及所在地址發送到服務器端,最后由服務器端確認后,完成這一系列的操作。?

??? 業務邏輯層包括用XML進行數據的傳輸,用Servlet實現。從數據庫中得到所需數據,將其以XML的格式輸出,并不需要建立具體的XML文件。用XML傳輸數據也便于客戶端的接收,是數據的傳輸統一規范。?

4.數據庫?

??? 數據庫端我使用的是Microsoft Access,利用SUN公司提供的JDBC API可以很方便地操作關系型數據庫(RDBMS),如上所述,JavaBeans要與數據庫表建立了一種良好的映射關系,設計數據庫時要注意主鍵值,它是唯一標識。?

??? 本系統數據庫共建立了三張表,見下表:?

???????

??? 在整個開發周期中,需不斷精化和細化用戶需求,改進用例與建模,改變數據庫中的表,迭代構造和測試,使系統趨于完善。?

四、結束語?

利用Java無線應用技術,結合J2ME和JSP平臺,可以設計并開發出健壯、高效的企業級無線應用程序,幫助企業提升經濟效益。還可以使用J2EE平臺『5』,將更好的完善服務器端,具有更好的安全性,更高的效率。現在,越來越多的電信廠商生產出性能優越的Java手機,而且在電信運營商、電信設備制造商和應用程序開發者之間存在著一種較好的盈利模式。Java手機也在不斷的發展,屏幕增大,使用彩屏,等等。相信Java無線應用會有更加美好的發展。?

參考文獻:?

『1』http://wireless.java.sun.com?

『2』http://www.cooltown.com/mpulse/0902-starbucks.asp?

『3』http://wireless.java.sun.com/midp/articles/tutorial2/?

『4』http://www.w3.org/?

『5』http://java.sun.com/j2ee/tutorial/index.html?

一些商品信息:?

Coffee:? http://www.starbucks.com/shop/category.asp?category%5Fname=Coffee?

Ice cream:? http://www.starbucks.com/grocery/icecream.asp?

StarbucksDoubleShot:? ?http://www.starbucks.com/grocery/dblshot.asp ?

bottledFrappuccino:? http://www.starbucks.com/grocery/frappuccino.asp?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 1级a的观看视频 | 国产精品国产三级在线高清观看 | 欧美另类孕交免费观看 | 欧美日韩精品一区二区三区不卡 | 日韩黄色视屏 | 青青热久久综合网伊人 | 久久99在线 | 久久成人免费视频 | 亚洲三级小视频 | 一级毛片私人影院老司机 | 亚洲网站www| 久久韩国| 中文偷拍视频在线观看 | 男女午夜爱爱久久无遮挡 | 91精品国产高清久久久久久io | 久久两性 | 在线观看一级片 | 亚洲美女aⅴ久久久91 | 色播亚洲 | 成人网18免费 | 日韩精品在线免费观看 | chinese耄耋70老太性 | 萌白酱粉嫩jk福利视频在线观看 | 色婷婷国产精品欧美毛片 | 99在线视频网站 | 日本欧美一区二区三区不卡视频 | 热99re久久国超精品首页 | 一本久综合久久爱 | 一级色网站 | 国产在线视频一区二区三区 | 成人国产综合 | 久99久精品视频免费观看v | 国产成人黄网在线免 | a级国产| 毛片基地免费视频a | 国产欧美在线观看视频 | a级片黄色片 | 国产一区二区三区免费在线视频 | 亚洲国产毛片aaaaa无费看 | 特级淫片国产免费高清视频 | 亚洲一区二区三区首页 |