第二章 文獻探討
第三節 評量診斷的網路技術
由於網路的發展迅速,以致於許多的服務皆可經由網路來加以完成,為了增 加使用者的便利,程式設計者的負擔在相形之下也就越顯得沈重,為此,能夠提 供穩定、快速、便利開發的平台架構也就更加的重要。本節將針對本系統所應用 的網路技術分成三層式架構、.NET Framework的基本架構、ASP與ASP.NET之比較 等相關文獻加以說明。
壹、三層式架構
以下先就兩層式架構、三層式架構分別說明如下:
一、兩層式(2-Tier)架構
在傳統的兩層式(2-Tier)架構當中,為主從式(Client/Server)架構,
包括用戶端的使用者介面層(Presentation Tier),和伺服器端的資料服務層
(Data Services Tier)。用戶端的使用者介面層(Presentation Tier),負 責接收使用者的資料輸入,和將結果顯示出來,譬如用戶端應用程式。一般會包 括商業邏輯(Business Logic)的工作,包括計算、輸入核對、用戶端電腦管理、
與伺服器溝通等工作。伺服器端的資料服務層(Data Services Tier),負責伺 服器的工作,包括資料庫的資料處理和網站伺服器(Web Server),有時也會有 一些商業邏輯(Business Logic)的工作。傳統兩層式(2-Tier)架構最大的缺 點,為隨著功能的增加,用戶端的應用程式會愈來愈複雜,不但維護不易,用戶 端電腦的負荷也愈來愈大(周世雄,1998)。
二、三層式(3-Tier)架構
三層式(3-Tier)架構與傳統兩層式架構最大的差異處,為將業務邏輯
(Business Logic)單獨分離出來,以減輕放置於用戶端或伺服器端電腦的負
和將結果顯示出來,譬如瀏覽器或其他用戶端應用程式。業務邏輯層(Business Logic Tier),作為使用者介面與資料庫的橋樑,負責業務法則(Business Rules)、與業務有關的資料處理、網站伺服器(Web Server)等工作,譬如使 用 IIS 的 網 站 伺 服 器 , 採 得 ASP 撰 寫 程 式 , 並 透 過 DCOM 與 MTS ( Microsoft Transaction Server)的元件相溝通,再透過ODBC與各種支援ODBC的資料庫相連 接。資料服務層(Data Services Tier),負責資料庫或訊息的處理,譬如使用 SQL Server資料庫的儲存的程序(Stored Procedures),或使用MSMQ做訊息的 處理等(周世雄,1998)。
貳、微軟.NET Framework 的基本架構
.NET Framework 是一個安全、高效能、延展性佳的語言環境,是作為.NET的平台,
它支援了VB、C#、C++等程式語言。其組成大致可分為三個部分,分別為Common Language Runtime(簡稱CLR)、類別庫(Class Library)和ASP.NET。
圖2-1 .NET Framework系統架構
一、Common Language Runtime
Windows 作業系統 .NET Framework
Class Library 類別庫
ASP.NET、C#、VB.NET...
Common Language Runtime 共通語言執行環境
Common Language Runtime(簡稱CLR)是.NET Framework應用程式的執行引 擎,提供的核心服務包括編譯器、記憶體管理、保密機制、載入器等。
為了使程式碼可以在不同作業平台上執行,CLR編譯器會將程式碼(Visual Basic.NET、C#.NET、C++.NET、J#.NET等語言所撰寫的程式)編譯為中介語 言(Microsoft Intermediate Language,簡稱MSIL)乃是指介於程式碼與機器 碼之間的語言,包含物件載入、方法呼叫、流程控制、邏輯運算等多項基本指令
(李春雄,2003)。當需要執行MSIL時,才使用CLR的JIT(Just In Time)編譯 程式,轉換為不同作業平台上執行的機器碼,過程如下:
Visual Basic.NET程式
C#.NET程式 C++.NET程式
CLR編譯器
MSIL 中介語言
JIT編譯程式
Windows 98 Windows Me Windows 2000 Windows XP
類別庫(Class Library)是.NET Framework的另一個主要元件,它是範圍 廣泛、物件導向、可重複使用型別的集合;是Microsoft .NET Framework SDK 中所包含類別、介面和數值型別(Value Type)的程式庫。它提供了龐大的類別 函式庫,凡是支援.NET Framework的程式語言,包括Visual Basic.NET、C#.NET、
C++.NET等都可以直接使用共用物件類別庫的類別和方法。
過去不同程式的程式設計師使用不同的類別庫,然而現在都可以使用.NET Framework的類別庫,這不僅使得.NET Framework型別易於使用,更可減少學 習.NET Framework新功能所花費的時間。
三、ASP.NET物件
Active Server Page(ASP)是一種伺服器端的網頁技術,美國微軟公司將ASP 1.0納入IIS(Internet Information Services)3.0版,使ASP正式納入微軟的 網站開發平台。
ASP.NET是ASP的最新版本,它是架構在CLR環境下的Web應用程式執行平台。
在ASP.NET環境可使用任何與.NET相容的語言(包括Visual Basic.NET、C+
+.NET、C#.NET和J#.NET)來撰寫應用程式。ASP.NET提供了一個物件導向式 架構,每一個物件都有屬於自己的屬性、方法和事件,讓開發網路應用程式更容 易、更具彈性。(吳權威、王緒溢,2003)
參、ASP與ASP.NET之比較
一、ASP的潛在性問題
ASP雖然易學易用,但仍存在一些潛在性的問題,條列如下:
(一)、程式碼不夠結構化(程式碼與HTML語言混和使用)
(二)、程式碼不夠嚴謹(沒有資料型態)
(三)、沒有真實的元件模組(不是真正的物件導向語言)
(四)、只能支援VB與JAVA Script語言
(五)、沒有好的偵錯程式
(六)、ADO無法直接與DataGrid元件結合 二、ASP.NET的特色
ASP.NET是新一代微軟所開發的Web技術,他不但繼承了ASP易學易用的特色 也結合微軟公司最新的.NET技術平台,因此大幅提昇ASP.NET語言的處理能力,
其特色條列如下:
(一)、程式語言可跨平台使用
(二)、程式碼結構性高
(三)、執行效能高
(四)、豐富的物件支援
(五)、彈性高
三、ASP與ASP.NET架構圖比較
以往ASP網頁程式必須透過ASP.DLL動態連結檔來支援ASP的運作,而現今 ASP.NET網頁程式與.NET Framework完全整合,其他語言所撰寫的應用程式也可 使用,兩者的過程如下所示:(李春雄,2003)
圖2-3 ASP系統架構圖 ASP網頁(.asp)
ASP.DLL
Windows 98+PWS 或 Windows 2000/NT+IIS伺服器軟體
圖2-4 ASP.NET系統架構圖
肆、結語
為了減輕伺服器端(Server)的負荷,並加快程式執行的速度,伺服器端應該 只負責存取資料庫的工作,至於試卷試題、診斷結果的呈現等工作,則交由客戶 端程式來執行,這樣的設計不但可以保有主從式架構的優點,也使得資料的維護 更有彈性,程式的撰寫更加容易。因此,本系統建構在MS Windows 2003與IIS6.0
(Internet Information Server 6.0)的平台之上,採用ASP.NET的技術來設計 系統程式,並結合Java Script及VB Script,以製作出具有互動功能的系統,並 能滿足多人同時上線測驗,同時維持一定的效率水準。本系統根據前述說明而採 用三層式架構以提昇網路效能、減輕用戶端或伺服器端電腦的負擔。
ASP.NET網頁(.aspx)
.NET Framework ASP.NET應用程式
其他語言所撰寫的應用 程式
支援.NET的作業系統及IIS伺服器軟體