Web正改變著我們生活的方方面面,但任何領(lǐng)域都沒有象商務(wù)運(yùn)作方式那樣經(jīng)歷著一場快速而巨大的變革。眾多商家正在準(zhǔn)備或已經(jīng)走向轉(zhuǎn)變到電子商務(wù)的道路,即使用Internet技術(shù)轉(zhuǎn)變關(guān)鍵的商務(wù)過程。本章介紹電子商務(wù)理念及有關(guān)技術(shù)基礎(chǔ),包括Internet、Web和Java。
1.1 電子商務(wù)理念
從20世紀(jì)70年代以來,很多機(jī)構(gòu)依靠電子數(shù)據(jù)交換(EDI、Electronic Data Interchange)實(shí)現(xiàn)業(yè)務(wù)處理的自動(dòng)化。EDI著重于商業(yè)伙伴之間的事務(wù)處理標(biāo)準(zhǔn)化,但是EDI標(biāo)準(zhǔn)缺乏靈活性和可擴(kuò)展性。進(jìn)入20世紀(jì)90年代,隨著Web技術(shù)的發(fā)展,尤其是在1995年Java出現(xiàn)以后,許多機(jī)構(gòu)開始采用Web應(yīng)用系統(tǒng)來支持電子商務(wù)。電子商務(wù)(e-business)是指借助Internet及相關(guān)技術(shù)進(jìn)行商務(wù)活動(dòng),而一個(gè)電子商務(wù)(an e-business)是這樣的一個(gè)機(jī)構(gòu),它通過內(nèi)部網(wǎng)、外部網(wǎng)和Web將關(guān)鍵業(yè)務(wù)系統(tǒng)直接連接到客戶、員工、供應(yīng)商和業(yè)務(wù)伙伴。一個(gè)機(jī)構(gòu)要轉(zhuǎn)型為一個(gè)電子商務(wù),就要使用Internet技術(shù)轉(zhuǎn)變關(guān)鍵的業(yè)務(wù)過程,如客戶關(guān)系管理、電子商貿(mào)、供應(yīng)鏈管理、企業(yè)內(nèi)部管理。這個(gè)轉(zhuǎn)變過程也是一個(gè)綜合使用Internet技術(shù)、信息技術(shù)、商務(wù)技術(shù)轉(zhuǎn)變業(yè)務(wù)方式的過程。
然而,電子商務(wù)不僅僅是技術(shù)更新。轉(zhuǎn)變到電子商務(wù)必須對需要做什么有一個(gè)明確的藍(lán)圖,以及對實(shí)現(xiàn)這個(gè)藍(lán)圖有一個(gè)清晰的發(fā)展指南。電子商務(wù)周期模型正是為企業(yè)開展電子商務(wù)提供了一個(gè)模型。電子商務(wù)周期(參見圖1-1)由四個(gè)組成階段,包括轉(zhuǎn)變、構(gòu)造、運(yùn)行和利用。想要轉(zhuǎn)變到電子商務(wù)的機(jī)構(gòu)無論何時(shí)均可以從任何一個(gè)階段開始。這也是一個(gè)重復(fù)的過程。
圖1-1:電子商務(wù)周期模型
1) 轉(zhuǎn)變階段是關(guān)于轉(zhuǎn)變核心的商務(wù)過程,也就是要將現(xiàn)有的商務(wù)模型擴(kuò)展到網(wǎng)絡(luò)世界以創(chuàng)造一個(gè)電子商務(wù)模型。應(yīng)用Internet技術(shù)為商務(wù)創(chuàng)造最大限度的價(jià)值,電子商務(wù)改變著客戶關(guān)系管理、供應(yīng)鏈和電子商貿(mào)的傳統(tǒng)準(zhǔn)則。在轉(zhuǎn)變商務(wù)過程時(shí),每一個(gè)商務(wù)過程應(yīng)該放在整體環(huán)境中加以考慮。否則,充其量只是離散的各個(gè)更好的商務(wù)過程,無法帶來期望的改善客戶服務(wù)和提高電子商務(wù)價(jià)值的效果。
2) 構(gòu)造階段是關(guān)于構(gòu)造新的應(yīng)用系統(tǒng)。轉(zhuǎn)變核心的商務(wù)過程需要新一代的應(yīng)用系統(tǒng)。構(gòu)造階段也包括使用一個(gè)基于開放標(biāo)準(zhǔn)的途徑將已有應(yīng)用系統(tǒng)遷移到Web上。要求電子商務(wù)應(yīng)用系統(tǒng)是基于標(biāo)準(zhǔn)的、以服務(wù)器為中心的、可伸縮的、可快速部署、易用和易管理的。
3) 運(yùn)行階段涉及一個(gè)可伸縮的、可用的、安全的運(yùn)行環(huán)境。圍繞著商務(wù)和應(yīng)用系統(tǒng)通常有一個(gè)基礎(chǔ)設(shè)施。基礎(chǔ)設(shè)施提供的服務(wù)要求是可用的、可伸縮的、易管理的和安全的。
4) 利用階段是關(guān)于知識(shí)和信息的利用。這里的焦點(diǎn)是知識(shí)管理,也就是說利用我們知道的東西。與信息管理不同,知識(shí)管理包括對顯式知識(shí)和隱式知識(shí)的管理。傳統(tǒng)的IT系統(tǒng)處理的是顯式知識(shí),即能寫下來并能編程處理的。而隱式知識(shí)是人們知道的但沒有被寫下來的東西,它基于直覺、經(jīng)驗(yàn)和洞察力。
從簡單的開始,快速地增長。從現(xiàn)有的基礎(chǔ)上構(gòu)造電子商務(wù)應(yīng)用系統(tǒng),逐步將核心業(yè)務(wù)擴(kuò)展到Internet上,最終實(shí)現(xiàn)電子商務(wù)帶來的巨大的投資回報(bào)。然而,電子商務(wù)的技術(shù)基礎(chǔ)主要包括Internet、Web和Java,本章以下各節(jié)介紹這些技術(shù)的基礎(chǔ)知識(shí)。
1.2 Internet基礎(chǔ)知識(shí)
Internet已經(jīng)成為企業(yè)、政府和研究機(jī)構(gòu)共享信息的基礎(chǔ)設(shè)施,同時(shí)也是開展電子商務(wù)的基礎(chǔ)。Internet 的先驅(qū)是ARPANET。美國國防高級研究計(jì)劃局 (Defense Advanced Research Project Agency、簡稱DARPA)于20 世紀(jì) 60 年代后期資助開發(fā)了一種叫做 ARPANET的實(shí)驗(yàn)性通訊系統(tǒng)。起初,它僅用于連接美國軍事機(jī)構(gòu)的計(jì)算機(jī)網(wǎng)絡(luò),但隨后不久,這個(gè)網(wǎng)絡(luò)很快擴(kuò)展到與國防有關(guān)的公司和研究機(jī)構(gòu)。從此,面向特定應(yīng)用需求的不同網(wǎng)絡(luò)協(xié)議及網(wǎng)絡(luò)技術(shù)相繼出現(xiàn),同時(shí)也帶來了網(wǎng)絡(luò)互連的問題。如果兩個(gè)網(wǎng)絡(luò)使用不同的協(xié)議,即使采用某種網(wǎng)絡(luò)技術(shù)將它們在物理上互相連接起來,應(yīng)用系統(tǒng)(如郵件系統(tǒng))之間也無法相互溝通。為此,很多組織,如CCITT(Consultative Committee on International Telephony and Telegraphy,現(xiàn)在成為 ITU-T,即International Telecommunications Union - Telecommunication Standardization Sector)和ISO(國際標(biāo)準(zhǔn)化組織),開始考慮定義一套分層協(xié)議族,使得應(yīng)用系統(tǒng)之間能相互通信,即使這些應(yīng)用系統(tǒng)運(yùn)行在不同的網(wǎng)絡(luò)環(huán)境中(如不同的操作系統(tǒng)和不同的網(wǎng)絡(luò)技術(shù))。DARPA從1970年左右開始研究一套稱之為TCP/IP的分層協(xié)議族,于1978年左右基本定形。ARPANET于1980年左右開始采用TCP/IP協(xié)議族,并于1983年全面實(shí)現(xiàn)。與此同時(shí),TCP/IP協(xié)議族在 UNIX操作系統(tǒng)中也得到了實(shí)現(xiàn)(由加利福尼亞大學(xué)伯克利分校完成),并免費(fèi)分發(fā)。從此,TCP/IP在大學(xué)和研究機(jī)構(gòu)中迅速傳播,并成為連接UNIX系統(tǒng)的標(biāo)準(zhǔn)協(xié)議。這些互相連接的網(wǎng)絡(luò)廣泛深入到大學(xué)和其它組織(一開始主要是非贏利組織)。由于個(gè)人計(jì)算機(jī)的迅速普及,該網(wǎng)絡(luò)擴(kuò)展到全球大部分地方,并且開始吸引成千上萬的個(gè)人以及贏利組織加入,由此逐漸形成了所謂的 Internet(因特網(wǎng))。Internet指的是全球性互連網(wǎng)絡(luò)。它由下列網(wǎng)絡(luò)群構(gòu)成:
1) 主干網(wǎng):通常為大規(guī)模網(wǎng)絡(luò),這些網(wǎng)絡(luò)主要用來與其它網(wǎng)絡(luò)互連,如美國的NSFNET(NSF是指美國國家自然科學(xué)基金會(huì))、歐洲的EBONE、大型的商用主干網(wǎng)。
2) 區(qū)域網(wǎng):如連接大專院校的區(qū)域網(wǎng)。
3) 商用網(wǎng)絡(luò):為客戶提供連接骨干網(wǎng)的服務(wù)的網(wǎng)絡(luò),或只供公司內(nèi)部使用且連接到Internet的網(wǎng)絡(luò)。
4) 局域網(wǎng):如校園網(wǎng)。
90年代,Internet發(fā)展十分迅猛,這與1991年HTML的問世和Gopher的免費(fèi)發(fā)放有關(guān),也與1993年Mosaic的問世有關(guān),Internet的商用也加速了Internet的擴(kuò)張。到20世紀(jì)末,Internet已經(jīng)成為一種通過服務(wù)器將小型網(wǎng)絡(luò)連接起來的錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。大部分情況下,服務(wù)器通過專門進(jìn)行 Internet 通訊的線路來傳送數(shù)據(jù)。個(gè)人計(jì)算機(jī)則通過直接線路,或者通過電話線和調(diào)制解調(diào)器連接到這些服務(wù)器上。直接線路一般是高速的電訊線路,專門用于在建筑物之間或組織之間傳送數(shù)據(jù)。而標(biāo)準(zhǔn)的電話線路,現(xiàn)在主要是綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)的線路,則通常用于連接個(gè)人計(jì)算機(jī)。
1.3 Web基本知識(shí)
Web(World Wide Web、萬維網(wǎng))技術(shù)是電子商務(wù)的核心技術(shù)。Web的思想可追溯到Tim Berners-Lee于1989年3月在CERN (Centre European pour la Recherche Nucleaire,或稱European Laboratory for Particle Physics、歐洲粒子物理實(shí)驗(yàn)室)寫的一個(gè)關(guān)于信息管理的項(xiàng)目建議書(Information Management: A Proposal)。該建議書提出了分布式超文本系統(tǒng)的設(shè)想,旨在將CERN已有的幾個(gè)信息服務(wù)器一體化,并提供一個(gè)簡單的用戶界面來存取各種形式的信息。1990年Web瀏覽器和Web服務(wù)器使用面向?qū)ο蠹夹g(shù)相繼在CERN實(shí)現(xiàn)。Berners-Lee 和他的合作伙伴成功引入了構(gòu)成Web體系結(jié)構(gòu)的基本元素:Web服務(wù)器、Web瀏覽器、瀏覽器與服務(wù)器之間的通信協(xié)議HTTP(Hypertext Transfer Protocol 、超文本傳輸協(xié)議)、寫Web文檔的語言HTML(Hypertext Markup Language、超文本標(biāo)記語言)、以及用來標(biāo)識(shí)Web上資源的URL(Universal Resource Locator 、統(tǒng)一資源定位器)。1993年,美國伊利諾斯大學(xué)國家超級計(jì)算應(yīng)用中心NCSA (National Center for Supercomputing Applications)的Marc Andreesen及其合作者發(fā)布了稱為Mosaic的瀏覽器,這是第一個(gè)較健壯的易用的瀏覽器,它具有友善的圖形用戶界面。從此,Web迅速成長為全球范圍內(nèi)的信息寶庫。1994 年,W3 聯(lián)盟在Tim Berners-Lee的領(lǐng)導(dǎo)下成立,該組織通過制定技術(shù)規(guī)范與提供參考軟件來發(fā)展Web的技術(shù)標(biāo)準(zhǔn)并促進(jìn)Web產(chǎn)品之間的互操作性。
URL(Universal Resource Locator 、統(tǒng)一資源定位器)用來唯一標(biāo)識(shí)Web上的資源,包括Web 頁面、圖象文件(如gif 格式文件和jpeg格式文件)、音頻文件(如au格式)、視頻文件 (如mpeg格式文件)。URL的格式為:協(xié)議://主機(jī)名<:端口號(hào)>/標(biāo)識(shí)符(例如 http://www.seu.edu.cn:80/index.aspl )。協(xié)議可以是HTTP、HTTPS(安全的超文本傳輸協(xié)議)、FTP;主機(jī)名用來標(biāo)識(shí)被請求的服務(wù)器;端口通常為不同協(xié)議保留,例如FTP和HTTP守護(hù)進(jìn)程偵聽不同的端口,F(xiàn)TP缺省的端口號(hào)為21,HTTP缺省的端口號(hào)為80;標(biāo)識(shí)符說明被請求的是什么,可以是文件名(含路徑)或一個(gè)應(yīng)用關(guān)鍵字 (如/cgi-bin/和/servlet/)加上一些信息(如一個(gè)腳本的名字和servlet的名字)。例如,用戶鍵入U(xiǎn)RL格式的地址(例如http://www.seu.edu.cn:80/index.aspl);瀏覽器請求主機(jī)www.seu.edu.cn 在80端口提供的HTTP服務(wù),并要求取得該服務(wù)器上的index.aspl文件;服務(wù)器接受請求,取得該文件;服務(wù)器把文件返回瀏覽器,并告訴瀏覽器這是一個(gè)HTML文件;瀏覽器在顯示器上顯示這個(gè)頁面。在瀏覽器和web服務(wù)器之間使用的協(xié)議是HTTP。
HTTP(Hyper Text Transfer Protocol、超文本傳輸協(xié)議)是用來在互連網(wǎng)上傳輸文檔的協(xié)議,它是Web上最常用也是最重要的協(xié)議,也是Web服務(wù)器和Web客戶(如瀏覽器)之間傳輸Web頁面的基礎(chǔ)。HTTP是建立在TCP/IP之上的應(yīng)用協(xié)議,但并不是面向連接的,而是一種請求/應(yīng)答(Request/Response)式協(xié)議。瀏覽器通常通過HTTP向Web服務(wù)器發(fā)送一個(gè)HTTP請求,其中包括一個(gè)方法、可能的幾個(gè)頭、一個(gè)體。常用的方法類型包括:GET(請求一個(gè)網(wǎng)頁)、POST(傳送一個(gè)表單中的信息)、PUT(存入這個(gè)信息、類似于FTP中的PUT)和DELETE(刪除這個(gè)信息)。Web服務(wù)器接受到HTTP請求之后,執(zhí)行客戶所請求的服務(wù),生成一個(gè)HTTP應(yīng)答返回給客戶。HTTP應(yīng)答有一個(gè)狀態(tài)行、可能的幾個(gè)頭、一個(gè)體。在頭中可以定義返回文檔的內(nèi)容類型(MIME類型)、Cache控制、失效時(shí)間。MIME類型包括:“text/html”(HTML文本)、“image/jpeg”(JPEG圖)、“audio/ra”(RealAudio文件)。HTTP本身也在不斷完善和發(fā)展,目前,常用的是HTTP1.1,它更好地利用TCP的特性,對HTTP1.0作了改進(jìn)。
HTML (Hypertext Markup Language、超文本標(biāo)記語言)是Web誕生與發(fā)展的要素之一,它旨在使得Web頁面能顯示在任何HTML使能的瀏覽器中,而與連網(wǎng)的機(jī)器平臺(tái)無關(guān)。HTML并不是一個(gè)程序設(shè)計(jì)語言,而是一個(gè)標(biāo)記語言,它所提供的標(biāo)記是由SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)的通用標(biāo)記語言)定義的。SGML是ISO(國際標(biāo)準(zhǔn)化組織)在1986年推出的一個(gè)用來創(chuàng)建標(biāo)記語言的語言標(biāo)準(zhǔn),它源自IBM早在1969年開發(fā)的GML(Generalized Markup Language),該語言的名稱也正好包含了三位創(chuàng)始人姓字的第一個(gè)字母,他們分別是Charles F. Goldfarb, Edward Mosher,Raymond Lorie。SGML是一種元語言,即用來定義標(biāo)記語言的語言,它提供了一種將數(shù)據(jù)內(nèi)容與顯示分離開來的數(shù)據(jù)表示方法,使得數(shù)據(jù)獨(dú)立于機(jī)器平臺(tái)和處理程序。這些特性促使Tim Berners-Lee 采用SGML來創(chuàng)建稱之為HTML的標(biāo)記語言。1993年形成HTML 1.0,以后不斷完善,HTML 4.0發(fā)表于1997年。特別需要指出的是HTML提供的鏈接機(jī)制是Web的本質(zhì)特性之一。但是,HTML更多的關(guān)注Web瀏覽器如何在頁面上安排文本、圖象和按鈕等,過多地考慮外觀使其缺乏對結(jié)構(gòu)化數(shù)據(jù)的表示能力。另外,HTML中有限的標(biāo)記不能滿足很多Web應(yīng)用的需要,如基于Web的大型出版系統(tǒng)和新一代的電子商務(wù),而為各種應(yīng)用需要不斷地往HTML中增加標(biāo)記顯然不是最終的解決方法,究其原因是HTML缺乏可擴(kuò)展性。解決方案應(yīng)該是簡化SGML使之能應(yīng)用到Web上。為此,從1996年開始,W3C(World Wide Web Consortium) 的一個(gè)工作組在Jon Bosak的領(lǐng)導(dǎo)下致力于設(shè)計(jì)一個(gè)超越HTML能力范圍的新語言,這個(gè)語言后來被命名為XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)。1998年2月,W3C發(fā)布了XML 1.0作為其推薦標(biāo)準(zhǔn)?,F(xiàn)在,W3C已經(jīng)用XML設(shè)計(jì)出一個(gè)與HTML4.01功能等價(jià)的語言,稱為XHTML1.0 (Extensible HyperText Markup Language)。
Web客戶通常指的是Web瀏覽器,如Netscape Navigator和Microsoft Internet Explorer。這種瀏覽器能理解多種協(xié)議,如HTTP、HTTPS、FTP;也能理解多種文檔格式,如text、HTML、JPEG(一種圖象文件格式)、XML(有的尚未支持);也具備根據(jù)對象類型調(diào)用外部應(yīng)用的功能。需要指出的是HTML文檔中的鏈接在Web瀏覽器中通常以帶下劃線的方式顯示,用戶點(diǎn)擊某個(gè)鏈接就能瀏覽到所鏈接的Web資源,這也是Web的魅力所在。
Web服務(wù)器(或稱HTTP服務(wù)器)提供HTTP服務(wù)。本來Web服務(wù)器只提供“靜態(tài)”內(nèi)容,即返回在URL里指定的文件的內(nèi)容,一般具備將URL名映射到文件名的功能,并能實(shí)施某種安全策略。現(xiàn)在,可采用CGI(通用網(wǎng)關(guān)接口)技術(shù)或Java Servlet技術(shù)從一個(gè)運(yùn)行的程序里得出“動(dòng)態(tài)”內(nèi)容,可以采用應(yīng)用關(guān)鍵字(如/cgi-bin/和/servlet/)來組織腳本文件和Servlet文件,而且現(xiàn)在的Web服務(wù)器通常還具備連接數(shù)據(jù)庫的功能,這些形成了Web應(yīng)用的出現(xiàn)。通常,一個(gè)Web服務(wù)器還提供其它服務(wù),如FTP服務(wù)。有的還可作為代理服務(wù)器。一個(gè)代理服務(wù)器是一個(gè)可以從別的服務(wù)器上為它的客戶取文件的服務(wù)器。代理服務(wù)器可以通過緩存應(yīng)答(頁面)使得響應(yīng)時(shí)間更快,也可以降低網(wǎng)絡(luò)流量,對外能隱藏內(nèi)部網(wǎng)信息。
總之,URL、HTTP、HTML(以及XML)、Web服務(wù)器和Web瀏覽器是構(gòu)成Web的五大要素。Web的本質(zhì)內(nèi)涵是一個(gè)建立在Internet基礎(chǔ)上的網(wǎng)絡(luò)化超文本信息傳遞系統(tǒng),而Web的外延是不斷擴(kuò)展的信息空間。Web的基本技術(shù)在于對Web資源的標(biāo)識(shí)機(jī)制(如URL)、應(yīng)用協(xié)議(如HTTP和HTTPS)、數(shù)據(jù)格式(如HTML和XML)。這些技術(shù)的發(fā)展日新月異,同時(shí)新的技術(shù)不斷涌現(xiàn),因此Web的發(fā)展前景不可限量。
1.4 Java 簡介
現(xiàn)代技術(shù)的發(fā)展,尤其是網(wǎng)絡(luò)技術(shù),給現(xiàn)代企業(yè)帶來了許多新的機(jī)遇和挑戰(zhàn),如改善客戶服務(wù)、全球化和信息檢索等,這些在技術(shù)上反映為信息的獲取、系統(tǒng)管理、系統(tǒng)集成、新技術(shù)的開發(fā)、Internet、Intranet等等與商業(yè)的結(jié)合。而這些要求一個(gè)隨處可用的開放的結(jié)構(gòu)和在不同的平臺(tái)之間低成本的信息傳遞方式,Java正好滿足這些要求。
Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言(以下簡稱Java語言)和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)感的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。另一方面,Java技術(shù)也不斷更新。
Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行?,F(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口已經(jīng)從1.1.x版發(fā)展到1.2版。目前常用的Java平臺(tái)基于Java1.2。
Java語言是一個(gè)支持網(wǎng)絡(luò)計(jì)算的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。Java語言吸收了Smalltalk語言和C++語言的優(yōu)點(diǎn),并增加了其它特性,如支持并發(fā)程序設(shè)計(jì)、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。主要特性如下:
1) Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。
2) Java語言是一個(gè)面向?qū)ο蟮摹ava語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語言全面支持動(dòng)態(tài)綁定,而C++ 語言只對虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。
3) Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
4) Java語言是健壯的。Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。
5) Java語言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。
6) Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。
7) Java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。
8) Java語言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。
9) Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。
10) Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來控制。 Java語言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。
11) Java語言是動(dòng)態(tài)的。Java語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類能動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。
Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對對象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。
1) JDBC(Java Database Connectivity)提供連接各種關(guān)系數(shù)據(jù)庫的統(tǒng)一接口。
2) EJB(Enterprise JavaBeans)使得開發(fā)者方便地創(chuàng)建、部署和管理跨平臺(tái)的基于組件的企業(yè)應(yīng)用。
3) Java RMI(Java Remote Method Invocation)用來開發(fā)分布式Java應(yīng)用程序。一個(gè)Java對象的方法能被遠(yuǎn)程Java虛擬機(jī)調(diào)用。這樣,遠(yuǎn)程方法激活可以發(fā)生在對等的兩端,也可以發(fā)生在客戶端和服務(wù)器之間,只要雙方的應(yīng)用程序都是用Java寫的。
4) Java IDL(Java Interface Definition Language) 提供與CORBA(Common Object Request Broker Architecture)的無逢的互操作性。這使得Java能集成異構(gòu)的商務(wù)信息資源。
5) JNDI(Java Naming and Directory Interface)提供從Java平臺(tái)到的統(tǒng)一的無逢的連接。這個(gè)接口屏蔽了企業(yè)網(wǎng)絡(luò)所使用的各種命名和目錄服務(wù)。
6) JMAPI(Java Management API)為異構(gòu)網(wǎng)絡(luò)上系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理的開發(fā)提供一整套豐富的對象和方法。
7) JMS(Java Message Service)提供企業(yè)消息服務(wù),如可靠的消息隊(duì)列、發(fā)布和訂閱通信、以及有關(guān)推拉(Push/Pull)技術(shù)的各個(gè)方面。
8) JTS(Java transaction Service)提供存取事務(wù)處理資源的開放標(biāo)準(zhǔn),這些事務(wù)處理資源包括事務(wù)處理應(yīng)用程序、事務(wù)處理管理及監(jiān)控。
在Java技術(shù)中,值得關(guān)注的還有JavaBeans,它是一個(gè)開放的標(biāo)準(zhǔn)的組件體系結(jié)構(gòu),它獨(dú)立于平臺(tái),但使用Java語言。一個(gè)JavaBean是一個(gè)滿足JavaBeans規(guī)范的Java類,通常定義了一個(gè)現(xiàn)實(shí)世界的事物或概念。一個(gè)JavaBean的主要特征包括屬性、方法和事件。通常,在一個(gè)支持JavaBeans規(guī)范的開發(fā)環(huán)境(如Sun Java Studio 和IBM VisualAge for Java)中,可以可視地操作JavaBean,也可以使用JavaBean構(gòu)造出新的JavaBean。JavaBean的優(yōu)勢還在于Java帶來的可移植性?,F(xiàn)在,EJB (Enterprise JavaBeans) 將JavaBean概念擴(kuò)展到Java服務(wù)端組件體系結(jié)構(gòu),這個(gè)模型支持多層的分布式對象應(yīng)用。除了JavaBeans,典型的組件體系結(jié)構(gòu)還有DCOM和CORBA,關(guān)于這些組件體系結(jié)構(gòu)的深入討論超出了本書的范圍。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

