本文向大家簡單介紹一下J2ME應用程序架構模型,J2ME技術從誕生到現在還處於不斷的發展壯大中,雖然各種手機對JSR標准支持的差異,各廠商的虛擬機實現的差異,或多或少的阻礙了J2ME最大的優勢。
J2ME應用程序架構模型
做了快一年的手機應用程序,抽空寫點對應用程序架構的認識吧。本文以J2ME手機應用程序為實例。介紹一下在企業應用的開發中,都會涉及到哪些方面的J2ME應用程序架構特征。
J2ME技術從誕生到現在還處於不斷的發展壯大中,雖然各種手機對JSR標准支持的差異,各廠商的虛擬機實現的差異,或多或少的阻礙了J2ME最大的優勢————跨平台性的體現,但是也不可否認,J2ME技術仍然是當前作為移動開發領域最主要的技術之一。因為它開發簡便,可移植性強,使從事Java的開發者可以很快的投入J2ME開發,相比SymBian平台的C++開發可謂是容易許多。
作為企業客戶的應用,現在以C/S模式為主,服務器端保存用戶數據,以及響應在線用戶的復雜業務邏輯。客戶端作為數據的接收者,處理簡單的業務邏輯,保存少量的數據,例如聊天紀錄,本地賬號和密碼等。當然客戶端也可能是PC。
比如一款手機的即時通訊軟件IM(InstantMessage),服務器端需要支持多客戶端同時在線,保存客戶信息,處理每個客戶端發過來的請求,將A客戶的信息轉發給B客戶,將C客戶的離線信息轉發給C客戶的所有好友,等等。也就是說一個客戶端於另一個客戶端所有的溝通都要通過服務器去中轉。下面來介紹一下客戶端的一個簡單的架構模型。
◆我們可以用MVC的設計理念來設計這個框架。大致可分為以下幾個層次。
Handler:處理網絡請求,網絡消息分發,這個層面是最關鍵的,它會涉及到整體結構的每一層。
Database:用來存儲少量數據,在J2ME中,RMS(RecordManagementSystem)是這個層次主要承擔者。每個手機可能對RMS的大小支持不同,使這寶貴的存儲空間更加珍貴。Handler會控制對Database的存儲和提取,用來VIEw層顯示。
Model:這個層次主要是根據程序需要創建的一些邏輯控制類。把數據封裝,創建公共接口等。比如一條消息,可能會創建一種Message類型來存儲在數據庫中。
VIEw:這層用來顯示用戶界面,並且響應和處理鍵盤的指令。將Handler層指派的一些信息顯示出來,並且將需求信息送給Handler去處理。所以這層直接於Handler溝通,不會直接涉及到Database或網絡信息。
當然在實際的應用開發中會更復雜一些。比如會有一個session的東西來控制消息的輪詢和網絡連接。下面我通過一個偽代碼來進一步說明這個模型。