體驗班報名
略過巡覽連結       

              EEP ASP .NET深入探討

 

 

Sam Yang 

‧前言‧

       隨著網路經濟的到來,有效運用網路技術來建構高效能、穩定Web應用系統以提升資訊利用及拓展商機,是現代企業追求的目標;拜科技之賜,從早期的靜態網頁到今日動態網頁,從單純資訊展示到現代互動系統,新的企業需求不斷被提出並逐步實現;儘管如此,受限於Web應用系統的低效能及高建置成本,企業應用仍多侷限在小型或局部的系統,並未真能全面且廣泛地運用。有鑑於此,微軟公司不惜投資大量人力及成本研究發表新一代的網路應用程式開發架構-ASP.NET,其不但延續ASP開發的簡易性,並結合MS .NET Framework共用底層架構優勢,改善詬病已久的效能問題。

       長期以來,訊光一直扮演企業系統開發者後盾的角色,提供客戶最佳且簡單應用的平台工具,使客戶在面臨技術的快速變遷中,除能保有大部分的開發流程及習慣外,同時享有新技術的效益。在這波.NET潮流中,訊光感受到使用者在追求Pure Web/Thin Client優勢的過程中,同時兼顧運作效能及原有開發習慣的強烈需求,因此,訊光將成熟多年的EEP技術融入於ASP.NET架構,提供一個更高效能的開發架構-EEP ASP.NET。  

ASP .NET前世今生

       微軟的ASP.NET並非一個全新的架構,而是累積多年Web應用系統開發經驗,從中擷取優勢部份,再整合新的技術概念,所衍生的開發架構,這也是為什麼在ASP.NET內,常可窺得一些過去熟悉的技術的原因。因此,藉由了解ASP.NET所蘊含過去幾代技術的緣起及其優缺點,除有助於瞭解ASP.NET的原始概念外,也可以從技術演進趨勢中,對於ASP.NET未來架構發展方向獲得些許啟示。

石器時代–HTML時代

       顧名思義,在這個時期,大多是直接就地取材,對於所使用工具本身的效率及重用性要求並不高,如果沒有合適,才會針對局部需求,自行敲擊製作簡單的工具來滿足;因此,在這個時期,百家齊鳴,專用於各種不同需求的各種標準及開發工具不斷的出現。

       這個階段大概開始於90 年代初,剛開始目的主要為了滿足遠端展示靜態資料之需,後來因應動態資料需求,伺服端採用協定的CGI (Common Gateway Interface)架構,提供簡易客戶端及伺服端雙向資料功能,以滿足簡易互動的功能。直到後期,為了豐富客戶端資料展現方式,擺除原有客戶端靜態資料刻版印象,許多新的搭配技術不斷發表應用,例如Javascript、ActiveX、DHTML (Dynamic HTML)、XML (Extensible Markup Language)、CSS (Cascading Style Sheet)…等,以強化Web應用客戶端使用者介面,使其直逼甚至超越傳統Window所能完成的功能。

       然而,隨著客戶端不斷加強改善,伺服端中一直原地踏步的CGI資料交換及資料處理架構,對於日漸繁複資料交換的需求,卻顯得有點老態龍鍾,加上伺服端的開發門檻較高,使得Web應用系統的開發未能如預期地蓬勃發展。

鐵器時代–ASP時代

       為改善前一代伺服端處理效率不彰問題以及開發門檻高等缺陷,微軟公司發表了ASP(Active Server Page)開發架構;該技術主要概念係於整個架構中結合已瑧成熟之ActiveX 技術,實踐元件IC分割重用的概念,在客戶端除繼承前一時期累積的優異技術外,伺服端CGI機制的重寫及元件化,非但提供物件介面功能,改善原始經由API呼叫開發方式,也降低系統開發門檻。

       由於ASP可以直接使用伺服端內的資源及其他工具元件廠商開發的物件,不須像之前必須全部由Web應用程式從頭實作,除直接節省開發成本並提昇執行效能外,對於企業邏輯的封裝分割、交易監測上也都有很大的幫助;例如,對於伺服端存取資料庫功能,過去開發方式,必須先了解非常多的細節,然後撰寫複雜的低階程式碼來完成,而現在只要藉由ADO物件的操作就能輕易達到。換言之,這個時期的開發,不再像前時期只能因陋就簡地遷就工具,反而可以依照自己需求,挑選別人已製作精細之工具,甚至也可以依自己的需求來訂做工具。

       整體而言,ASP算是一個蠻成功的開發架構,尤其它的簡易性,吸引了大批的程式設計師加入開發行列使用,即使至今,仍有穩定的開發群;然而,隨著外在條件的變遷以及企業需求的提升,當年的架構似乎出現改善的空間,其中比較明顯的是:

         (1) 程式邏輯與資料展現標籤混雜,開發及維護不易。

         (2) 有限的IDE工具,偵錯不易,且程式為直譯式,效率較差。

         (3) 沒有提供完善的安全機制。

         (4) 大量使用元件,致組態設定複雜,提升部署難度。

       儘管如此,實務上,如果平台異質性不高、中型規模且效能要求不高的話,都可以透過適當架構規劃來減低影響,以開發成本效益來看,ASP仍是不錯的選擇。 

機器時代–ASP.NET時代

       經過了五年,企業需求已跳脫系統開發的基本功能,而是須同時兼顧效能、開發及維護成本、分工合作及分發部署難度等多維度思考。因此,前一代ASP開發架構已經不能充分滿足企業的需求;有鑑於此,微軟公司發表新一代開發架構-ASP.NET試圖改善前一代ASP的不足,該技術除繼承前一代ASP運作概念及客戶端成熟技術外,並與傳統Window-based程式共用相同的.NET Framework底層架構(圖一),藉由使用豐富且高效率的物件庫,以減輕開發者的負擔。

 

圖一 MS.NET Framework架構圖

       ASP.NET開發架構改善前一代ASP架構的地方甚多,以開發者的角度來看,可以簡單整理成下面五點:

 

         (1) 企業邏輯與外觀展現分離。

         (2) 類別簡化程序之撰寫。      

         (3) 程式碼編譯快取提升速度。

         (4) 即時編譯機制,簡化部署。

         (5) 提供更佳整合性開發工具。

 

       整個ASP.NET架構由許多幕後優異技術所築造而成,其中最值得一提的是CodeBehind技術(圖二),因為它不但終止長久以來,程式邏輯撰寫與美工排版無法分工問題,其所蘊含動態自動編譯技術及快取技術,也大幅提升整體運作效率。

圖二 CodeBehind技術示意圖

 

EEP ASP .NET的架構 

 

       雖然ASP.NET已提供通用開發模式,可以滿足一般客戶簡易開發需求,但對於企業需求而言,使用ASP.NET開發,於下面幾個方面仍有改善空間:

 

(1)欠缺整合性權限機制及系統運作模型

以企業需求面來看,完整系統勢必包括多個不同應用程式組合而成,而因ASP.NET係採用單支應用程式開發的概念模式,沒有提供完整的權限整合機制,除了造成系統權限資料管理的複雜度提高,使用者在執行各子系統時,皆需重新登載權限資料,缺乏親和性及便利性。

 

(2)資料存取性能不佳

雖然提供ADO.NET機制已簡化資料存取難度,但當資料大量時,除非使用者自行撰寫分頁及快取機制,原始機制將會造成大量資源的佔用,影響伺服端的效能。

 

(3)繼承與樣板支援度不足

訊光公司EEP產品經過多年的洗鍊、客戶使用及回饋改進,不論於功能需求滿足、效能表現及系統架構上均已得到相當驗證及認可。因此,訊光針對上述ASP.NET不足處,擷取EEP優異伺服端功能融入ASP.NET開發架構下,提出一套改良的開發架構 - EEP ASP.NET (圖三 綠色部分)。該架構不但於客戶端保有ASP.NET Pure Web的優點,於伺服端更提供簡易介面直接享有EEP高效能的資料存取機制。

 

       

 

圖三 EEP ASP.NET架構示意圖

 

如圖三所示,EEP ASP.NET Module的架構主要由四個主要部份組成:

 

       通用開發模式,可以滿足一般客戶簡易開發需求,但對於企業需求而言,使用ASP.NET開發,於下面幾個方面仍有改善空間:

 

1. EEP Application Server與Win32 EEP使用相同的Application Server,負責自訂資料模組的掛載及執行。

 

2. EEPComBridge它主要負責不同資料格式的轉換、資料存取更新、權限管制及快取機制等任務,為此架構的核心部份。雖然它有提供基本的使用介面,但由於使用較複雜,一般還是建議使用者透過下面的EEPComProxy來操作而非直接使用。

 

3. EEPComProxy其主要目的為簡化使用者操作EEPComBridge流程的介面元件。這個元件主要提供了下面五類操作介面函式: 

 

 n      權限取得介面 (Login/LoginEx)

 n      權限釋放介面 (Logout)

 n      資料讀取介面 (SelectDataEx)

 n      資料更新介面 (UpdateDataEx)

 n      其他公用函式

 

 

 4. ASP.NET/Window.NET這部分主要是關於客戶端使用介面元件部份,由於原生ASP.NET提供的較為簡易,因此本部分係選擇Borland 公司DBWeb機制為框架進行繼承及改寫,並針對額外功能需求不足部分,自製元件來加強。

   

EEP ASP .NET的特色

 

EEP ASP.NET架構橫跨伺服端機制及客戶端元件,其特色大概有下面幾點:

 

1.精簡權限管控架構:

EEP ASP.NET系統提供內建Single Sign-On機制(圖四),讓使用者只要登入一次,而不需要每個子系統個別進行登入;此外,功能選單也會依照使用者的權限顯示對應項目(圖五)。此外並於系統切換時,提供異動資料保護提醒機制(圖六)。

圖四 Single Sign-On登入畫面

 

 

圖五 依照使用者權限顯示選單畫面

   

 

 

 

圖六 異動資料保護提醒機制

 

 

2.優異資料處理能力:

ADO.NET所提供資料撈取機制效率不佳,尤其當資料量大時,系統會一次將所有資料全部下載,造成系統負擔;而EEP ASP.NET則使用Load-OnDemand機制,智慧地下載所需資料,減輕系統負荷。此外,本架構亦提供批次處理能力,使用者可以進行多次資料操作後,一次更新資料到資料庫,減少伺服端與客戶端間的通訊。

 

3. 內建資料快取機制:

原生ASP.NET機制過程中所撈取的資料,使用者需自行撰寫程式碼進行保存及管理;而本架構於已內建快取機制,毋須另外撰寫程式。

 

4. 豐富樣板模型提供:

提供了單檔/多檔不同形式樣版供開發者選用,並結合EEP S/D Module快速建立應用程式。

 

5. 簡化資料存取介面:

提供簡易資料存取函式,毋須了解複雜細節,亦不須像使用ADO.NET存取需建立大量物件及屬性設定,即可輕易完成資料撈取及更新動作。

 

6. 親和易用操作元件:

使用介面部分,EEP ASP.NET提供資料瀏覽操作元件(圖七),包括:智慧型資料切頁、資料瀏覽移動介面、萬用查詢、快速瀏覽、資料同步等功能,並提供動態初始值設定、帶參考值功能等常用功能。

圖七 資料操作畫面

 

結語    

 

       企業M化已是現代提高自身競爭力的趨勢,而在企業M化過程中,企業Web化程度是其中重要指標之一;過去受限於軟硬體及開發技術,企業Web化是一件遙不可及的事,龐大的建置成本以及不佳的系統效能,讓許多企業望之怯步。ASP出現,吸引更多企業投入Web化,而今日ASP.NET開發架構的發佈,Web應用程式的開發門檻更大幅度地降低,也直接降低建置及維護成本;然而,稍嫌陽春的客戶端介面及資料伺服端資料存取能力,對於企業使用來說仍嫌不足,有鑑於此,訊光依據多年經驗,以彈性開發架構理念提出EEP ASP.NET開發架構,一方面在保有ASP.NET Pure Web/Thin Client的優勢下,改善客戶端元件親和性並提高實用性;在另一方面,則擷取EEP成熟伺服端機制,彌補原始ASP.NET對於企業使用的不足 ,以使開發架構能更符合企業Web化所需,幫助企業在激烈的市場競爭中提高整體競爭力。 (完)