• 沒有找到結果。

第二章 文獻探討

第三節 網路技術的演進

壹、由靜態網頁發展至動態網頁

嚴格來說,HTML(Hyper Text Markup Language)是屬於撰寫網頁的一種語言,

但並不能算是「程式語言」,因為依據其語法所撰寫出的一連串敘述指令,其功 能侷限在表現文字或圖片,以及其拿手的超連結功能。相對的,所謂的「程式語 言」,是指其所撰寫出來的一連串指令,經由邏輯規劃後,可以用來驅使作業系 統或應用程式與其合作,共同執行某些工作。

由於HTML並非程式語言,且經由HTML所建構的HTML敘述命令,並不能使網頁 內容因應用戶端不同需求而產生變化,因此單純由HTML所建構的網頁稱之為「靜 態」網頁;相對於此,經由上述可知,要使網頁具有能因應用戶端不同需求而產 生不同變化的功能,即所謂的「動態」網頁,就必須要撰寫「程式」。

貳、網頁撰寫語言之概述與演進

近年來全球資訊網追求的重點---分散式計算,是指將許多需要大量運算的 資料,分割成許多部分,並分散給許多的電腦來幫助運算,最後再將結果集合起 來。在現今各種研究領域中,舉凡物理、航太、大氣、影像處理等等,甚至現在 炙手可熱的生物科技領域方面,常常需要進行大量而且複雜的運算。目前,有很 多的研究學者利用在平行虛擬機器(PVM)上建構平行分散式計算環境,來滿足他 們的電腦運算需求(陳鴻龍,民92)。而這種分散式運算的概念,也將運用在現在 的Web動態網頁設計。傳統Web動態網頁的執行過程,是將Client端的要求送至 Server端,經由Server端計算完成的結果送回Client端顯示,於是所有的重責大 任都將落在Server端。這樣的作法並不符合經濟和效率,試想若全球的個人電腦 用戶都向其區域的Server送出要求,再加上隨著時代的進步,個人電腦的用戶個 數每年極速增加,而且所需的計算愈趨複雜,任憑Server再怎樣擴充,也將應付 不暇。如此一來,用戶的上網速度勢必受到嚴重的影響,而依據分算式作業的做

法,便是將部分的工作分擔給發出要求的使用者,也就是用戶端電腦來幫助執

Web Browser是瀏覽網頁不可缺乏的工具,而目前瀏覽器市場佔有率最高 的應屬Interner Explorer和Netscape Communicator,而其所支援的用戶端 Script各有所異同,如表2.1:

表2.1 Internet Explorer與Netscape Communicator之比較

動態網頁語言 動態網頁語言 動態網頁語言

動態網頁語言 Internet ExplorerInternet ExplorerInternet ExplorerInternet Explorer 是否支援 Netscape Communicator

是否支援

VB ScriptVB Script

VB Script 是 否 執行。用戶端Script語言包括了由Netscape公司所開發的JavaScript和由 Microsoft公司所開發的VBScript等等,分述如下:

(一)、JAVAScript與JAVA Applet

一般常將JAVAScript與JAVA程式語言關聯在一起,但JAVAScript並不

可單純被視為JAVA的子集或片段,JAVA的特性是一般用途、多工、物件導 向式、與作業台無關,它的語法頗似C++,但它涵蓋了現有各種物件導向程 式語言的特性,JAVAScript亦具備上述的特點,但兩者不完全相同。其比 較如表2.2:

表2.2 JAVA與JAVAScript之比較

JAVAScript的出現乃在適時反映當時Web用戶對於更具互動性、更多樣 化的網頁需求,而JAVAScript的確能令傳統的HTML網頁更具互動性及計算 能力,它的成功之處在於未變更HTML網頁的格式,而是延伸它,這使得未 支援JAVAScript的舊有瀏覽器仍可瀏覽內含JAVAScript的網頁,其差別僅 在無法獲得JAVAScript所提供的服務。單純的JAVAScript僅可操作HTML網 頁,其功能有限,但它的最大威力乃是在於與JAVA Applet結合之時,Applet 之意為〝小〞的應用程式,是由JAVA語言開發的應用軟體,它被鑲嵌於HTML

Web方面的應用 程式碼以Script標籤含括 於HTML文件之內

於HTML文件內需以APPLET標籤 引入JAVA Applet程式碼

對外顯現某些屬性供文件中的JAVAScript存取,透過與JAVAScript的聯 繫,文件中的多個Applet即可互通、分工合作,構成真正的跨平台、文件 導向式(document oriented)應用。

傳統的JAVAScript與JAVA Applet的另一特點是皆在瀏覽器端執行,故 如前面所述,如此的作法將可大幅減輕Web伺服器的負擔,具備分散式計 算的精神。

因為本研究所用之前端語言為VBScript,所以對於JAVAScript與 JAVA Applet只是做概括性的介紹。

(二)、VBScript

VBScript和JAVAScript這兩種語言極為相似,無論是在技巧、功能、

或目的上,它們都是ActiveX腳本程式語言的選擇,且可於同一頁面內混合 使用、互相支援,VBScript可令WWW網頁具計算能力,它可用在用戶端網頁,

提供用戶端計算服務及友善的圖形操作介面,也可用在伺服端頁面,提供 類似CGI程式的服務,而這些設計的用意皆是在造就更具互動性的網頁服 務。

VBScript並未捨棄傳統的HTML網頁技術,它延續傳統網頁技術並將之 發揚光大,因此傳統HTML的輸入表(FORM)、JAVA Applet等,在VBScript

的環境下仍是適用的,而伴隨VBScript引入的新技術則是ActiveX元件。

在瀏覽端頁面,VBScript僅可在它所在的網頁內工作,並無任何與瀏 覽端作業系統有關的權限,但ActiveX控制元件則擁有當時用戶在作業系統 的所有權限,這使得ActiveX技術的實用性大增。

在Active伺服端頁面,VBScript可聯繫許多ActiveX伺服元件,以整合 出類似傳統CGI程式的服務,其代表性應用即是ASP,在瀏覽端則可聯繫多

個ActiveX控制元件,以提供用戶便利的圖形介面及客戶端計算服務,將伺 服端的負載分攤部分至瀏覽端。

二、伺服器端Script語言

(一)、CGI簡介

端的瀏覽器。CGI精確的定義為:「一個共通閘道介面(Common Gateway Interface),負責當成Web Server與應用軟體(Web程式或資料庫)之間相互

Database Server 傳

盤輸入指令,然後由Shell解譯此一此令並且啟動對應的程式,對CGI而言,

指令來自於瀏覽器,以CGI介面傳送到Server之後,再由Server解譯然後啟 動Server之中相對應的程式。對Shell指令而言,可能帶有參數,當成是被 Shell 啟動之後,它可以透過Shell所提供的介面讀取指令的參數。對

Server端的程式而言,當它被啟動之後,則可以透過CGI所提供的介面來讀 取指令的參數。而CGI的缺點大約有以下三點:

1.同樣的作業系統,若Web Server不同,則CGI介面程式並不相同,譬如 Web Server由以前的WebSite換成現在的IIS之後,原來的CGI程式就無 法使用了,原因實在是因為不同Web Server所提供的CGI介面程式不同 所致。

2.對提供虛擬主機的ISP而言,通常不允許使用者選擇自己熟悉的語言來 撰寫CGI程式,因為如果使用者寫的程式出了問題,對ISP而言是很麻 煩的事情,因此限制很多,國內的ISP多以UNIX系統為主,而允許使用 者用來撰寫CGI程式的語言通常只有Perl。

3.存取資料庫的程式撰寫不易,大部分程式語言所定義的範圍只涵蓋檔案 的功能,至於資料庫的程式庫,則必須另外找尋。

(二)、 ASP簡介

ASP,全名為Active Server Pages(伺服端動態網頁),既然名為「伺 服端」動態網頁,顧名思義,ASP是能在Web Server(如IIS,Internet Information Server)端整合Scripting語言至HTML網頁的環境,然後利用 HTML網頁內含的Scripting程式碼取代舊有CGI的程式,以便執行原有CGI

的功能。

ASP程式可以說是CGI程式的改良版,跟CGI一樣是在Web Server端執行,其 運作模式如圖2.2:

圖2.2 ASP的運作模式

由於ASP跟CGI一樣也是放置在Web伺服器上,它在解譯使用者藉由表 單(Form)傳送過來的資料後,接著透過適當的邏輯產生標準的HTML文件,

然後傳回給Client端,使用者看到的是一般正常、符合HTML格式的文件內 容。因為ASP是在IIS或Personal Web Server上執行,所以無論使用者操作 哪一種平台下的瀏覽器,皆能觀看由ASP產生的網頁內容。

(三)、ASP.NET簡介

隨著時代的進步,Microsoft發表新一代的ASP語言,稱之為ASP.NET 語言,最主要的原因乃再於ASP語言雖然易學易用,但是它存再著一些潛在 性的問題,而ASP.NET則相對的將其缺點改進,其優點列舉如下:

1.程式碼結構性高

以往以ASP來設計網頁時,雖然所使用的VBScript或JavaScript非常 容易學習,但是ASP撰寫出來的程式結構相當鬆散,HTML語言與網頁程式 碼經常穿插在一起,也增加了維護的困難。相對的,ASP.NET程式碼可以 分為HTML語法與網頁程式碼兩個部份,讓使用者不再混淆不清,並增加 程式碼的可看性、結構性和維護性。

2.彈性高

ASP只接受VBScript及JavaScript兩種語言,但是對於ASP.NET來說,

凡是可以編譯成MSIL的程式語言,都是ASP.NET可以接受的程式語言。

3.執行效率高

Client端瀏覽器 Web Server

ASP DataBase

ASP.NET與ASP最大的不同點,就是它可以將程式碼編譯成「中介語 言(Intermedicate Language,IL)」,因此只有在第一次執行時需要編譯 外,第 二次以後就可以直接使用第一次所編譯完成的「組件」來執行,

因此程式執行的效率有所提升,程式的執行過程如圖2.3:

圖2.3 ASP.NET程式執行過程圖

資料來源:ASP.NET與SQL應用實務(1-19頁),李春雄,民92,臺北市:全華。

4.更優異的特性

ASP.NET不但支援物件導向的程式設計,使得程式設計更適合於團 隊開發,而且除了本身是屬於典型的主從式架構(Client-Server module)之外,更是所謂的「事件驅動架構」,在這種架構下,伺服器 會等待用戶端發生動作,一但偵測到用戶端發生某些動作,就會去執行 相關的回應。

(四)、.NET Framework平台的相關概念

現在的ASP.NET網頁程式將與.NET Framework完全整合,所造成的優勢 是不同語言所撰寫的應用程式都可以被使用,有關ASP.NET的系統架構圖如 圖2.4:

IL 中介語言 第一次

執行時 ASP.NET 網頁程式

機器碼

編譯 執行

編譯

第二次執行時

圖2.4 ASP.NET系統架構圖

資料來源:ASP.NET與SQL應用實務(1-18頁),李春雄,民92,

臺北市:全華。

在.NET的環境下,ASP.NET之所以能夠相容於各種語言,包括C++、JAVA、

VB等等,其幕後最大的功臣即是.NET Framework,圖2.5即為微軟.NET Framework的系統架構圖:

ASP.NET網頁(.aspx)

ASP.NET應用程式

其他語言所撰 寫的應用程式

.NET Framework

支援.Net的作業系統及IIS伺服器軟體