Web存儲格式語言的發展
很難想象,僅僅經過短短十年的發展,world wide web就已經走入了千家萬戶,便利了信息的共享和交流、改變了商業運作模式、影響著每個人的生活方式。十年前,當html初次面世時,它還只是一些歐洲物理學家們為了便于交換學術資料而定義的一種文檔標記語言。當第一個html圖文瀏覽器mosaic由一個二十出頭的年輕人開發出來并向外界開放時,全世界為之耳目一新,從此開始了web技術的迅速普及發展,成為一股不可逆轉的潮流,開辟了全新的視野,創造了新的市場和新的機遇,鼓舞著敢于創新的人們樹立出一個又一個的成功典范。十年來,web存儲格式語言,從html發展到dhtml,再到最新的xml,發展的每一步,都是為了適應web應用發展的需求。本文簡要介紹這幾種基于文本的web存儲格式語言的特征,以及各自的優缺點,最后引入一種全新的基于結構的存儲格式。
1.html 作為web最初也是最重要基礎的html(hypetext markup language)來源于sgml(standard generalized markup language)。sgml是用于定義電子文檔內容和結構描述的國際化標準。盡管從字面意思上sgml是一種語言,但實際上sgml自身并不是一種語言,而是用于根據它的一般規則定義其它標記語言,因而可以稱之為元語言。sgml通過指定組成標記語言的元素和屬性的語法來定義一種標記語言。sgml確立的是一套嚴格一致的、獨立于平臺之間表達信息的格式,以避免不同的私有信息格式帶來的信息交換的障礙。盡管sgml是現有所有標記語言的前身,但它本身并沒有得到普及推廣,其中最重要的原因就是sgml格式過于復雜,難以作為一種通用的、大眾型的信息存儲表達格式。 今天,以html為基礎的網絡瀏覽器成為人們日常上網的主要工具,大多數的web應用都是基于html,所有這些都證明了html是一種成功的信息存儲、表達、交流的語言。html以一組固定的、簡單的標簽集為任何公司、政府機構、個人表達各自的信息提供了極大的便利。html是信息出版語言,它通過特定的標簽來顯示不同形式的內容,比如‘’這一組標簽指定顯示文字的字體,通過眾多這樣的標簽,使用html,就可以排版出豐富多彩的頁面。html同時也是信息存儲語言,現有internet上的信息絕大部分是以html表示的頁面文件。可以說html的產生是internet普及繁榮的真正開端。 2.dhtml html從本質上來說是一種靜態的信息表達語言,隨著web技術的發展,對動態的的信息表達的需求日益迫切,dhtml(dynamic hypetext markup language)就應運而生。 dhtml使用標準html標記來顯示和操縱頁面內容,但它對html進行了創新性的補充,它允許頁面作者和開發人員動態地改變html頁面的任何一個元素的風格和屬性,并且在頁面已經裝載之后還可以插入、刪除、修改頁面元素和文本。 dhtml基于world wide web consortium(w3c)制定的文檔對象模型,為頁面開發人員提供一種創建動態web頁面的方法。在一個dhtml頁面內,頁面的結構、風格、內容等都可以在瀏覽器裝載該頁面以后改變,而不需要從服務器重新請求一個新的頁面。通過dhtml,你可以創建一個頁面,同用戶交互,而不需額外的控制并且也不需要通過與服務器之間的多次往復來更新頁面。 在web技術普及發展的同時,另一項軟件技術也得到了廣泛的應用,這就是面向對象技術。dhtml的最重要的特征就是它將對象技術引入進來,指定了一種文檔對象模型(dom),通過這種文檔對象模型,頁面上的每一個元素都視為一個對象,從而可以通過調用方法和設置屬性來操縱這些對象。用另外的話來說,當你在瀏覽器內瀏覽一個頁面時,你所看到的每樣都是一個可以被通過書寫腳本來操縱的對象。對文檔對象模型的支持帶來好處有: l 動態內容[br]文本或圖形可以動態地添加、刪除和修改。例如web頁面可以顯示一個更新過的標題,而不需要刷新頁面,標題周圍的文本會自動重新排列。 l 動態風格[br]css(cascading style sheets)的任何屬性,包括顏色和字體,都可以即時更新,而不需要有對web服務器的請求過程。例如,當鼠標指針經過文本時,文本的顏色和大小可以同時變化以表示一個動態效果。多媒體過濾和轉換效果可以簡單地通過添加css屬性應用到html頁面元素上。 l 絕對定位[br]頁面元素的位置可以隨時更改以產生動畫效果,這一動態改變過程不需要重新裝載頁面。 dhtml的一個很關鍵的特征是數據綁定,通過數據綁定,數據驅動的應用程序前端可以在客戶端顯示、操縱、更新數據,而不需要與服務器的多次往復。 dhtml的另一個關鍵特征是腳本件。腳本件是一個用dhtml制作的web頁面,它可以被當作組件使用在web應用程序中。有了腳本件,內容提供者可以只制作一次內容,然后就可以很容易地使用在web頁面或應用程序中。腳本件是組件技術在web上的一個應用。 dhtml的出現,使得web頁面變得生動起來,用戶界面也變得更為友好,交互性有了很大的提高。豐富多彩、生動有趣的網站吸引更多的人上網,網上生活因此逐漸成為人們日常生活的一部分。 盡管dhtml有眾多的優點,它也有很大的缺陷:它使頁面源文件內容變得紛繁復雜,使得頁面的維護和閱讀變得更加困難。 3.xml 互聯網協議(ip),超文本標記語言(html),和超文本傳輸協議(http)已經給信息的發布、顯示、搜索方式帶來了革命性的變革,使我們能夠在任何地方同任何人交流信息、表達思想,但是過去幾年,internet在很大程度上還只是文本和圖片信息的載體。internet不應該只是定義信息存取和顯示的標準,還應該定義一種信息理解標準,一種通用的數據顯示方法以使得軟件能更好地搜索、移動、顯示、操縱那些隱含在上下文中的信息。html不能做到這一點,因為它只描述一個web頁面應該如何顯示,它不能用來表示數據;dhtml也不能做到這一點,因為它除了是頁面生動起來之外,與html并沒有太多的不同。一種好的數據表示標準將能象html擴展internet顯示一樣擴展internet。這樣的數據標準將會是交易處理、自動協作、數據庫共享等的有力工具。這種數據標準就是xml和xml擴展。 xml(extensible markup language)是一種元標記語言,它提供描述結構化數據的格式。它有利于內容的更精確的描述,以及跨多平臺的更有意義的搜索。xml是world wide web consortium(w3c)專為web作優化的sgml的子集,它被設計來通過web傳遞sgml類型的信息,它使結構化的數據統一并且獨立于應用程序或開發商。xml具有sgml的大部分功能,但卻比sgml簡單得多,因此避開了sgml普及的障礙。對xml來說,很關鍵的一點是信息保存在xml文檔內,而顯示指令卻在別處。相比html,xml是web上的數據交換語言,而html是web上的信息顯示語言。xml的最重要的目標是使web應用具有統一的數據交換格式,它將開啟新一代的web電子商務應用。 xsl(extensible stylesheet language)是一種用來將基于xml的數據轉換成html或其它顯示格式,從而在web瀏覽器中將數據信息顯示出來的xml的輔助語言。將xml轉換成html這樣的格式是通過描述性方法,因此比通過腳本方法更為簡單和可理解。此外,xsl采用xml作為其語法,因此xml開發人員就不必再學習另一種新的標記語言。相比css這樣一種用格式化屬性將xml“裝飾”起來的方法,xsl將xml樹轉換成一種新的樹,允許重排順序,生成文本,并且加以計算,而不會改變xml源。xml源可以保持內容的純凈,并且可以同時不同的通道和目標接收者,只需簡單地切換風格表單。 xll(extensible linking language)為xml提供類似html中的超鏈接方式,但具有更多的功能。除了提供基于url的超鏈接和錨點,xll還支持鏈接到文檔的任意位置以及多方向鏈接。xll的這些特征使它適合許多新的應用包括許多用純html難以做到的應用,這些應用包括:交叉索引、腳注、尾注、數據環接。在xml文檔中,鏈接可以在對象這一級別進行,而不僅僅在頁面級別。 xml名字空間(name space)讓開發人員按一種公認的方式限定元素的名稱以避免不同元素具有相同的名稱。名字空間確保元素名稱不沖突,并且闡明它們的來源,但并不定義如何處理這些元素。解析器必須知道元素的意義以及如何處理它們。 xml的良好的數據存儲格式、可擴展性、高度結構化、便于網絡傳輸等特性為基于web的應用程序帶來了更強的功能和更多的靈活性,此外,它還為開發人員和用戶提供更多引人注目的好處: [color=#000000]l [/color][color=#000000]靈活的[/color][color=#000000]web應用程序開發[br]通過xml,數據可以傳送給其它應用程序、對象、中間層服務器以進行更進一步的處理,或者也可以傳送到桌面瀏覽器顯示出來。xml,連同用于顯示的html,用于邏輯處理的腳本,以及用于在數據和顯示之間相互操作的一般對象模型,為靈活的三層web應用程序開發提供必要的技術支撐。[/color] l 來自不同源的數據集成[br]對多重的、互不兼容的數據庫進行搜索在以前事實上是不可能的。xml使來自不同源的結構化數據能很容易地組合在一起。軟件代理可以用來在中間層服務器上將來自后臺數據庫的數據和其它應用程序結合起來。這些數據可以傳送到客戶端或者其它服務器以進行進一步的集成、處理、和分發。 l 本地計算和處理[br]以xml格式表示的數據在傳送到客戶端以后,可以在本地解析、編輯、處理、計算。用戶可以以多種方式操縱數據,而不僅僅是顯示數據。xml文檔對象模型允許通過腳本或其它編程語言操縱數據。數據計算可以直接進行而不必要再通過服務器。 l 數據的多重查看方式[br]一旦數據被傳送到桌面,就可以以多種不同的方式查看。通過以簡單、開放、強壯、和可擴展的方式描述結構化數據,xml是html這樣的用戶界面描述語言的補充。html描述數據的外部顯示,而xml描述數據自身。因為顯示和數據內容分開, xml定義的數據可以指定不同的查看方式,從而使數據能以適當的方式顯示出來。本地數據可以動態地按客戶端配置、用戶偏愛、或者其它規則來顯示。 l 分塊更新[br]使用xml,數據可以分塊更新,當小部分數據改動時,不需要重新發送整個結構化數據。只有改動過的元素才需要從服務器端重新傳送到客戶端,改動過的數據可以在不重新刷新整個用戶界面的情況下顯示出來。良好的web應用遵循這樣一條基本原則:盡量避免不必要的數據來回在服務器和客戶端之間傳送。xml的分塊更新正是遵循這條原則。 4.基于結構的存儲方式 xml的所有這些優點,將使它成為未來幾年的web技術的明星,但是,無論是html,dhtml,還是xml,它們都是基于文本格式的語言,都是通過標簽來區分語言的成份和內容,在處理過程中首先都必須讀入文本文件,然后掃描每一個文本字符,找出其中的標簽,最后通過這些標簽來區分頁面內容。最初設計html語言時假定的使用對象除了計算機軟件以外,主要還是要便于人工編寫與閱讀。當html發展之后,為了適應應用的發展,除了引入dhtml,還引入了各種腳本語言,人工編寫和閱讀html文件變得越來越困難,因此出現了許多網頁制作工具,從而使網頁制作人員編輯排版時不必直接面向html源文件,但是為了編寫復雜的應用,比如訪問數據庫,在html源文件中編寫腳本語言又是不可避免的,因此web應用開發效率遠遠比不上利用象visual basic、delphi這樣的第四代語言開發工具的應用開發效率。在開發復雜的web應用時,人工直接編寫和閱讀存儲格式語言是不必要的,同時也是不現實的?,F實的情況應該是由軟件工具來操縱存儲格式語言,開發人員只需關心應用程序本身,而不必去了解應用程序的存儲形式。最初采用標簽的主要原因就是為了能使存儲內容可閱讀,現在既然存儲內容用軟件工具來管理,那么基于文本標簽的存儲方式就應該讓位于更好的基于結構的存儲方式。下面介紹一種基于結構的存儲方式:kcom space 的hkb存儲方式。 kcom space是一種web快速應用開發平臺,它采用了一種很獨到的hkb存儲方式,它管理kcom組件的存儲空間。 hkb存儲將連續的存儲介質管理成可分配、可回收的存儲空間,它不限定存儲介質的類型,內存空間、磁盤文件等等都可以是hkb存儲介質。組件在hkb中表現為一段地址空間,組件之間的圈套組合關系由8字節長的指針來指明。通過地址指針,就可以在hkb空間中建立復雜的結構以真實地反映組件以及組件之間的相互關系。 與html一樣,hkb也是一種存儲格式,相比之下,hkb格式有眾多的優越性。 html是web頁面的基礎,它為internet上的信息出版立下了汗馬功勞,但是它有許多缺陷使它不能適應動態和交互的需求,而hkb文件格式正是表達動態和交互的組件頁面的最佳格式。 html的局限性明顯地體現在:[br] l 它有一個復雜的標簽集,但這個集合是固定的,不能用自己的特定應用標簽來擴展它。 l 它是一種界面顯示技術,它把數據和數據的表現形式混在了一起,這使得分開兩者變得相當的困難。 l 它是平面型的文本結構,不能指定數據的層次結構來表現數據間諸如從屬關系、鏈接關系、重要性等細節。 l 它不能把數據傳送給客戶端讓客戶端自行進行進一步的處理。事實上,html總是在服務器端產生,客戶端只是一個顯示機器,這樣的方式使得服務器端要處理的數據量過大,網絡速度降低,效率不高。 l 它對特定數據只能提供一種顯示方式。如果想提供不同的顯示方式,就不得不在服務器端重新產生這些數據和完整的html頁,重新通過網絡傳送到客戶端,然后才能在客戶端顯示出來。如果數據和顯示形式是分離的話,那就可以把數據下載到客戶端,之后根據需要隨意產成數據的不同的顯示方式。 l 它的可讀性不強,無論是人讀還是計算機讀都是一樣。html也不是很嚴謹,有些標簽需要匹配開始符和結束符,但是也有一些只有開始符沒有結束符。html解釋器,當然包括人眼,不得不處理這些有點隨機的格式。 相比之下,hkb格式有許多明顯的優點: l 它不需要用標簽來標明數據,每個組件的屬性在組件的地址空間范圍內的位置是固定的。帶來的好處就是節省了標簽所占用的空間。 l 它是結構型的,通過地址指針,在hkb存儲空間內可以建立復雜的結構,比如鏈表結構、樹形結構、網狀結構等,以表示復雜的組件關系。 l hkb文件是壓縮存儲的,它對組件數據進行壓縮,同時又保持了主要的組件結構。在組件數據壓縮之前又對關鍵數據進行加密處理。應用于internet環境,壓縮存儲的hkb文件在很大程度上減少了數據傳輸量,為應用程序的快速運行打下基礎。 l hkb文件放在服務器端,瀏覽運行時根據需要將hkb內相應的數據代碼下載的客戶端顯示運行,客戶端不僅僅是顯示機器,它還負責處理交互性操作的運算邏輯。 l 顯示內容是在客戶端運算之后決定的,可以是原有的內容,也可以是處理后的內容。 l hkb文件對人眼來說是不可讀的,因為它經過了壓縮和加密處理,但是對hkb解析器來說卻是具有良好的可讀性的,因為hkb存儲的是結構化的數據,可以不經解釋而直接調入計算機內存。 [p]從html,到dhtml,再到最新的xml,作為web基礎的存儲格式語言不斷地發展以適應新的應用需求。web存儲格式語言的發展很大程度上又重復了一次計算機語言半個世紀的發展過程。此外,web存儲格式語言在短短十年能有這么快速的發展,這么高的普及率,還得益于一個常被忽視的因素:以web存儲格式語言表示的web頁面可以很容易復制。所有主要網絡瀏覽器都有‘查看源文件’這一功能,通過這一功能,任何人都可以學習、借鑒別人的web頁面制作技巧,這為html的普及起了催化作用。[br][br]新技術造就新市場,市場不斷變化的需求又反過來促進技術的發展。讓我們來期待著更新、更多、更好的技術的出現,讓我們來共同創造、發展新技術、新思想,投身到internet軟件技術的發展浪潮之中。[/p] 該文章在 2010/5/12 23:48:46 編輯過 |
關鍵字查詢
相關文章
正在查詢... |