陳建麗
[摘 要]Java是被廣泛接受的編程語言和執(zhí)行環(huán)境,在70%的企業(yè)中使用。隨著這些應(yīng)用擴展到移動性,系統(tǒng)架構(gòu)師轉(zhuǎn)向相關(guān)的J2SE和J2ME技術(shù)。J2SE將Java的優(yōu)勢帶到PC,筆記本電腦,平板電腦和PDA,而J2ME是Java的小型版本,是世界上大多數(shù)手機和智能電話的基礎(chǔ)軟件技術(shù)。
[關(guān)鍵詞]Java J2EE J2SE J2ME 移動應(yīng)用
一、前言
在今天逐漸分散的商業(yè)環(huán)境中,眾多公司正在尋找新的方式在企業(yè)間共享信息、分散決策制定過程、對客戶反映更靈敏以及降低成本。為了達到以上目標(biāo),許多公司正在考慮采用企業(yè)移動系統(tǒng)。公司發(fā)現(xiàn)這些系統(tǒng)經(jīng)常會帶來很高的投資回報,并取得持續(xù)的競爭優(yōu)勢。通過把公司的應(yīng)用擴展到這一領(lǐng)域,在公司就可以實現(xiàn)操作流水作業(yè)、增加生產(chǎn)力,并且進一步完善同客戶和合作伙伴的關(guān)系。
系統(tǒng)集成商,獨立軟件開發(fā)商和企業(yè)IT部門正在轉(zhuǎn)向這些商業(yè)產(chǎn)品以加速性能強大的移動應(yīng)用的開發(fā)以及打開新的市場。
本篇文章主要討論了移動性對今天商業(yè)環(huán)境以及一些企業(yè)范圍的應(yīng)用的影響;它也觀察了java不斷增長的影響以及使它成為移動開發(fā)領(lǐng)導(dǎo)者的能力;最后,探索了引入移動數(shù)據(jù)庫來支持關(guān)鍵性的軟件和性能。
二、當(dāng)前企業(yè)移動應(yīng)用的現(xiàn)狀和面臨的困境
根據(jù)研究機構(gòu)In-Stat/MDR的數(shù)據(jù),到2006年,3千9百萬工人將日常使用企業(yè)移動方案。“企業(yè)移動”指現(xiàn)場專業(yè)人士使用擴展的方式(如VPN連接)與企業(yè)信息的后臺數(shù)據(jù)庫同步交換數(shù)據(jù)的商業(yè)流程。它不同于今天的“無線”系統(tǒng),因為企業(yè)移動方案依賴于無線網(wǎng)絡(luò)來取得可觀的商業(yè)利益?!坝肋h在線”的無線訪問給企業(yè)帶來了一些挑戰(zhàn),包括高的上網(wǎng)成本和傳輸時延。雖然無線覆蓋范圍很廣,但是它傳輸率低,延時時間長,數(shù)據(jù)丟包現(xiàn)像嚴(yán)重,現(xiàn)場人員不可能依靠這樣的傳輸方式來管理他們的數(shù)據(jù)。因此,目前大多數(shù)企業(yè)的應(yīng)用采用“偶爾上網(wǎng)”架構(gòu)設(shè)計,在這種情況下,信息儲存在本地,并在需要或者方便聯(lián)網(wǎng)時周期性地和后臺數(shù)據(jù)庫同步,進而造成數(shù)據(jù)延時不同步的弊端。
然而,移動應(yīng)用增長最快的領(lǐng)域是一些關(guān)鍵性的應(yīng)用,如ERP,B2B,B2C、FSA,CRM和一些現(xiàn)場自動化軟件。隨著強大的同步化和本地數(shù)據(jù)管理的出現(xiàn),企業(yè)正在認(rèn)識到從更好的信息共享和數(shù)據(jù)收集中獲得的好處。這些好處導(dǎo)致了新的商業(yè)機會和長期投資回報的顯著改善,因此企業(yè)對網(wǎng)絡(luò)的連接質(zhì)量要求越來越高。
三、Java語言的特點
Java是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言。具體來說,它具有如下特性:簡單性、面向?qū)ο?、分布式、解釋型、可靠、安全、平臺無關(guān)、可移植、高性能、多線程、動態(tài)性等。下面我們將重點介紹Java語言的面向?qū)ο?、平臺無關(guān)、分布式、多線程、可靠和安全等特性。
(一)面向?qū)ο?/p>
面向?qū)ο笃鋵嵤乾F(xiàn)實世界模型的自然延伸。現(xiàn)實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現(xiàn)實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。如果說傳統(tǒng)的過程式編程語言是以過程為中心,以算法為驅(qū)動的話,面向?qū)ο蟮木幊陶Z言則是以對象為中心,以消息為驅(qū)動。用公式表示,過程式編程語言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=對象+消息。
所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外?,F(xiàn)實世界中的對象均有屬性和行為,映射到計算機程序上,屬性則表示對象的數(shù)據(jù),行為表示對象的方法(其作用是處理數(shù)據(jù)或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數(shù)據(jù)和方法聯(lián)在一起形成一個整體??梢哉f,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為Java無全程變量,無主函數(shù),在Java中絕大部分成員是對象,只有簡單的數(shù)字類型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應(yīng)的對象類型以便與其他對象交互操作。
多態(tài)性就是多種表現(xiàn)形式,具體來說,可以用“一個對外接口,多個內(nèi)在實現(xiàn)方法”表示。舉一個例子,計算機中的堆??梢源鎯Ω鞣N格式的數(shù)據(jù),包括整型,浮點或字符。不管存儲的是何種數(shù)據(jù),堆棧的算法實現(xiàn)是一樣的。針對不同的數(shù)據(jù)類型,編程人員不必手工選擇,只需使用統(tǒng)一接口名,系統(tǒng)可自動選擇。運算符重載(operator overload)一直被認(rèn)為是一種優(yōu)秀的多態(tài)機制體現(xiàn),但由于考慮到它會使程序變得難以理解,所以Java最后還是把它取消了。
繼承是指一個對象直接使用另一對象的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。例如,若把汽車看成一個實體,它可以分成多個子實體,如:卡車、公共汽車等。這些子實體都具有汽車的特性,因此,汽車是它們的“父親”,而這些子實體則是汽車的“孩子”。Java提供給用戶一系列類(class),Java的類有層次結(jié)構(gòu),子類可以繼承父類的屬性和方法。與另外一些面向?qū)ο缶幊陶Z言不同,Java只支持單一繼承。
(二)平臺無關(guān)性
Java是平臺無關(guān)的語言是指用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上運行。平臺無關(guān)有兩種:源代碼級和目標(biāo)代碼級。C和C++具有一定程度的源代碼級平臺無關(guān),表明用C或C++寫的應(yīng)用程序不用修改只需重新編譯就可以在不同平臺上運行。
Java主要靠Java虛擬機(JVM)在目標(biāo)碼級實現(xiàn)平臺無關(guān)性。JVM是一種抽象機器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機器指令,并有自己的棧、寄存器組等。但JVM通常是在軟件上而不是在硬件上實現(xiàn)。(目前,SUN系統(tǒng)公司已經(jīng)設(shè)計實現(xiàn)了Java芯片,主要使用在網(wǎng)絡(luò)計算機NC上。另外,Java芯片的出現(xiàn)也會使Java更容易嵌入到家用電器中。)JVM是Java平臺無關(guān)的基礎(chǔ),在JVM上,有一個Java解釋器用來解釋Java編譯器編譯后的程序。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節(jié)代碼。任何一臺機器只要配備了Java解釋器,就可以運行這個程序,而不管這種字節(jié)碼是在何種平臺上生成的(過程如圖1所示)。另外,Java采用的是基于IEEE標(biāo)準(zhǔn)的數(shù)據(jù)類型。通過JVM保證數(shù)據(jù)類型的一致性,也確保了Java的平臺無關(guān)性。
Java的平臺無關(guān)性具有深遠意義。首先,它使得編程人員夢寐以求的事情(開發(fā)一次軟件在任意平臺上運行)變成事實,這將大大加快和促進軟件產(chǎn)品的開發(fā)。其次Java的平臺無關(guān)性正好迎合了“網(wǎng)絡(luò)計算機”思想。如果大量常用的應(yīng)用軟件(如字處理軟件等)都用Java重新編寫,并且放在某個Internet服務(wù)器上,那么具有NC的用戶將不需要占用大量空間安裝軟件,他們只需要一個Java解釋器,每當(dāng)需要使用某種應(yīng)用軟件時,下載該軟件的字節(jié)代碼即可,運行結(jié)果也可以發(fā)回服務(wù)器。目前,已有數(shù)家公司開始使用這種新型的計算模式構(gòu)筑自己的企業(yè)信息系統(tǒng)。
(三)分布式
分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機上,操作分布是指把一個計算分散在不同主機上處理。
Java支持WWW客戶機/服務(wù)器計算模式,因此,它支持這兩種分布性。對于前者,Java提供了一個叫作URL的對象,利用這個對象,你可以打開并訪問具有相同URL地址上的對象,訪問方式與訪問本地文件系統(tǒng)相同。對于后者,Java的applet小程序可以從服務(wù)器下載到客戶端,即部分計算在客戶端進行,提高了系統(tǒng)執(zhí)行效率。
Java提供了一整套網(wǎng)絡(luò)類庫,開發(fā)人員可以利用類庫進行網(wǎng)絡(luò)程序設(shè)計,方便實現(xiàn)Java的分布式特性。
(四)可靠性和安全性
Java最初設(shè)計目的是應(yīng)用于電子類消費產(chǎn)品,因此要求較高的可靠性。Java雖然源于C++,但它消除了許多C++不可靠因素,可以防止許多編程錯誤。首先,Java是強類型的語言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內(nèi)存的非法訪問;第三,Java的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題;第四,Java解釋器運行時實施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界,最后,Java提供了異常處理機制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理任務(wù),便于恢復(fù)。
由于Java主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險。Java通過自己的安全機制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java字節(jié)碼進入解釋器時,首先必須經(jīng)過字節(jié)碼校驗器的檢查,然后,Java解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來自網(wǎng)絡(luò)的類裝載到單獨的內(nèi)存區(qū)域,避免應(yīng)用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問某些文件系統(tǒng)。上述幾種機制結(jié)合起來,使得Java成為安全的編程語言。
(五)多線程
線程是操作系統(tǒng)的一種新概念,它又被稱作輕量進程,是比傳統(tǒng)進程更小的可并發(fā)執(zhí)行的單位。C和C++采用單線程體系結(jié)構(gòu),而Java卻提供了多線程支持。
Java在兩方面支持多線程。一方面,Java環(huán)境本身就是多線程的。若干個系統(tǒng)線程運行負(fù)責(zé)必要的無用單元回收,系統(tǒng)維護等系統(tǒng)級操作;另一方面,Java語言內(nèi)置多線程控制,可以大大簡化多線程應(yīng)用程序開發(fā)。Java提供了一個類Thread,由它負(fù)責(zé)啟動運行,終止線程,并可檢查線程狀態(tài)。Java的線程還包括一組同步原語,這些原語負(fù)責(zé)對線程實行并發(fā)控制。利用Java的多線程編程接口,開發(fā)人員可以方便得寫出支持多線程的應(yīng)用程序,提高程序執(zhí)行效率。必須注意地是,Java的多線程支持在一定程度上受運行時支持平臺的限制。例如,如果操作系統(tǒng)本身不支持多線程,Java的多線程特性可能就表現(xiàn)不出來。
四、Java技術(shù)在企業(yè)移動應(yīng)用中的優(yōu)勢及前景
Java現(xiàn)在已經(jīng)成為了一項成熟的技術(shù),適合于企業(yè)級的移動項目,它的優(yōu)勢包括完全的跨平臺通用性,可以使得同樣的代碼在多個平臺上使用?;贘ava的網(wǎng)絡(luò)改進提供了移動企業(yè)需要的可靠性和可獲得性。
Java是被廣泛接受的編程語言和執(zhí)行環(huán)境,在70%的企業(yè)中使用。J2EE技術(shù)是大規(guī)模電子商務(wù)方案的事實上的標(biāo)準(zhǔn)。隨著這些應(yīng)用擴展到移動性,系統(tǒng)架構(gòu)師轉(zhuǎn)向相關(guān)的J2SE和J2ME技術(shù)。J2SE將Java的優(yōu)勢帶到PC,筆記本電腦,平板電腦和PDA,而J2ME是Java的小型版本,是世界上大多數(shù)手機和智能電話的基礎(chǔ)軟件技術(shù)。
當(dāng)其他技術(shù)傾向于把開發(fā)人員固定在一個專有的硬件和軟件平臺時,Java促進了跨平臺的通用性。它還降低了集成成本,因為它可以同時支持將不同平臺的多個設(shè)備相連。這在大多數(shù)商業(yè)環(huán)境中是特別的優(yōu)勢,因為移動性通常是加在現(xiàn)存的系統(tǒng)之上的。
可延展的企業(yè)移動方案應(yīng)該實現(xiàn)本地數(shù)據(jù)庫和企業(yè)數(shù)據(jù)庫同步化信息。移動數(shù)據(jù)庫有一套獨特的要求以保證兼容性、效率和可延展性。
另外,移動數(shù)據(jù)庫應(yīng)該容易和同步化技術(shù)整合,以獲得信息的雙向交流和更新。開發(fā)人員需要提供不依賴平臺的雙向的同步化數(shù)據(jù)庫方案來促進信息的流動,以及提供可延展的連接性以容納不斷增加的用戶。用戶也可以從沖突檢測和分辨率工具中獲益,這些工具在同步連接的用戶間自動協(xié)調(diào)數(shù)據(jù)沖突。
企業(yè)移動深入到了非常廣泛的商業(yè)活動。好處包括直接的金融回報和整體運營效率。例如,運輸和后勤組織使用移動應(yīng)用連接前臺辦公室,裝卸碼頭和司機。這不僅完善了組織內(nèi)的通訊,而且減少了被盜和丟失,從而降低成本,并改進了客戶服務(wù);在健康護理行業(yè),配有移動應(yīng)用的醫(yī)生可以減少花在行政管理上的時間,從而得到更快的診斷和更好的病人護理。
移動應(yīng)用也對公共安全產(chǎn)生很大影響。它們的信息共享能力可以更有效地部署醫(yī)療人員和法律實施,幫助加強社區(qū)安全。公用設(shè)備工人使用移動應(yīng)用來自動分配工作人手,電子訪問技術(shù)信息,跟蹤設(shè)備和供應(yīng)。
隨著我國移動行業(yè)應(yīng)用的服務(wù)范圍在日益擴大,應(yīng)用層次在不斷提高,隨著信息化的全面推進,行業(yè)集團用戶對高帶寬、高速率、低時延的3G移動通信網(wǎng)絡(luò)和業(yè)務(wù)應(yīng)用的日漸普及,網(wǎng)絡(luò)帶寬的大幅度擴展,使得基于Java應(yīng)用的業(yè)務(wù)更加豐富。除了快速的JSP頁面處理,移動支付、移動流媒體等業(yè)務(wù),也都將在Java應(yīng)用領(lǐng)域大顯身手。
由此可以看出,移動行業(yè)應(yīng)用將成為3G時代的重要應(yīng)用方向。3G網(wǎng)絡(luò)商用后,3G的高網(wǎng)絡(luò)帶寬和強大的多媒體業(yè)務(wù)支撐能力,將與各行業(yè)對移動行業(yè)應(yīng)用的實際需求實現(xiàn)“對接”,全面提升移動行業(yè)應(yīng)用的層次、質(zhì)量和水平。例如,對于交通行業(yè)而言,在3G時代,交通運輸部門和物流公司不僅可以對車輛運行狀況進行更及時、更準(zhǔn)確的定位,而且可以通過圖像監(jiān)控系統(tǒng)隨時觀察乘客和駕駛員的狀態(tài);對于政府部門而言,借助3G高速互聯(lián)網(wǎng)接入,政府工作人員可以隨時隨地登錄政務(wù)網(wǎng)絡(luò),及時處理公文,收發(fā)郵件和各種信息;對于銀行、證券和商業(yè)部門來說,依托3G網(wǎng)絡(luò),他們可以讓客戶享受到移動支付、手機炒股等各種更加快捷、安全的電子商務(wù)服務(wù)。
3G的到來,將極大地增強移動通信網(wǎng)絡(luò)服務(wù)行業(yè)信息化的能力,全面提升移動行業(yè)應(yīng)用的質(zhì)量,有效改善行業(yè)、大眾用戶對移動行業(yè)應(yīng)用的感受和體驗,從而加速移動行業(yè)應(yīng)用的普及和滲透步伐。
五、結(jié)束語
正是基于Java語言的諸多特點和3G網(wǎng)絡(luò)的應(yīng)用,企業(yè)正在通過移動應(yīng)用擴展關(guān)鍵的企業(yè)數(shù)據(jù),以實現(xiàn)眾多的好處,包括工作人員生產(chǎn)力,更好的客戶服務(wù),改進的操作以及成本的降低。Java的企業(yè)移動方案引入了一整套移動應(yīng)用,它們可以輕松、有效地開發(fā),以改進商業(yè)操作。隨著企業(yè)移動性的采用,公司可以在商業(yè)間共享信息,以改進服務(wù)水平,制定更多戰(zhàn)略決策,并改進生產(chǎn)力。
參考文獻
[1]Beginning Java Objects: From Concepts to Code (Java面向?qū)ο缶幊讨改? .J. Barker編著,韓柯等譯,電子工業(yè)出版社,2001
[2]Java程序設(shè)計實驗指導(dǎo),清華大學(xué)出版社,陳軼、姚曉昆編著,2006
[3]實用Java程序設(shè)計教程,機械工業(yè)出版社,宛延闿等編著,2006
[4]第3代移動通信系統(tǒng)設(shè)計原理與規(guī)劃,電子工業(yè)出版社,王衛(wèi)東/高鵬/張英海編著,2007
[5]移動業(yè)務(wù)應(yīng)用中手機地位的演進,人民郵電出版社,葉云/王慶編著,2008