• 沒有找到結果。

豐富網際網路應用程序(RIA)

第二章 背景知識

2.1 豐富網際網路應用程序(RIA)

2.1.1 RIA 發展與定義

豐富網際網路應用程式(Rich Internet Application, RIA),源自於 2002 年 3 月 Macromedia 公司(已於 2005 為 Adobe 併購)的白皮書。RIA 一開 始只是 Macromedia 推動的網頁技術指南,其理念為一種具有近似於傳統桌 面應用軟體系統、使用者介面豐富、多媒體以及資料庫的結合,並以此來開 發出新一代的網站體驗。亦即是說,網頁(應用程式)不單能夠簡易的使用者 互動,還必須符合人類的直覺與經驗,並結合網際網路應用程式易於開發與 低成本的概念。RIA 企圖以可向量化的動態圖像的前端工具,結合後台各式 各樣應用程式來打造跨平台的網路應用程式。

圖 1、RIA 行為模組 [1]

傳統的網路應用程序將所有交互應用都集中客戶端的Browser/Server 架構上(圖 1 中的黑實線)。在這樣的系統中,所有處理操作均在伺服器端執 行,客戶端僅僅是用於顯示靜態的信息內容(如HTML)。這種系統最大的缺 陷是所有的交互操作都必須經由伺服器端進行,首先客戶端要將請求數據上 傳至伺服器端,然後伺服器端作出響應並傳回結果,最後客戶端在重新載入 顯示信息。RIA的架構則是在客戶端的使用者操作各項程序時,使用者可能 不會馬上就執行某些動作來要求資訊,可能會有思考以及終止放棄的行為,

而RIA應用程式則會在這些時間點上,預先和後端Server要求可能需要使用 到的資訊(圖 1 中的虛線),從而可以加快處理速度。[1]

隨著時間的遷移,網際網路標準正在逐漸地改變著,因此很難為豐富網 際網路應用程式劃定出一個明確的概念範圍。但是,所有的豐富網際網路應 用程序都有一個相同的特徵:它們在客戶端與伺服器端之間引入了被叫做

「客戶端引擎」(Client Engine)的中間層。這種客戶端引擎通常作為應用 初始化的一部分被下載,也可能隨著應用程式的運行在後續程式碼中作為補 丁(Patch)被下載並補充進來。客戶端引擎充當瀏覽器的一個擴展,而且通 常還會接管呈現用戶界面和與伺服器端進行通信的職責。透過客戶端引擎和 伺服器的通訊,客戶端引擎預先便會將所需的資訊載入,有別於傳統的輪詢 式架構,透過此種方式可減少客戶端和伺服器間的溝通,減少網路資源的浪 費,另一方面,通過使用在客戶端執行指令的技術,RIA 可以有效的避免延 遲,實現程序與用戶操作的同步。

圖 2、(左)傳統網頁程式通訊模型、(右)RIA程式通訊模型 [1]

2.1.2 RIA 優點

RIA 擁有許多的優點使得開發人員較願意使用其來開發運行在瀏覽器 中的應用程序,其安裝簡便的特性,使其在更新上相對於桌面程式或作業系

統來得容易,使用者只需連上網路,即可快速的下載更新到最新的版本,且 可以在多數的瀏覽器上執行、而許多的行動裝置,也皆有支援。

RIA 應用程式在使用上,其可以在客戶端運算執行許多的資訊,因此使 得伺服端不再像傳統的網頁應用程式一直處於需要運算許多要呈現在客戶 端的資料,如此一來可大幅度的減輕伺服端負載,達成 Client/Server 間負 載平衡。

透過 Client Engine,使用者不需要操作按鈕或連結,客戶端引擎便會 將未來可能需要的數據先行下載,透過自行和伺服端溝通交握,而使用者可 以趁此階段瀏覽其他頁面或操作其他行為,藉此來提升後續請求的回應速 度。在和伺服端交換何數據時,RIA 也因傳輸的數據量變少,相對而言可以 減輕網路的負載。

2.1.3 Flash 簡介

Adobe Flash (前稱為 Macromedia Flash),簡稱 Flash,前身為 Future Splash,既指 Adobe Flash Professional 多媒體創作程序,同時也指 Adobe Flash Player。自從 Macromedia 公司於 2005 年 12 月 3 日被 Adobe 公司收 購,Flash 也就成為了 Adobe 旗下的軟體。

Flash 運用向量圖形(Vector Graphics)技術開發,其檔案格式相對較 小,所以常被大量運用在網際網路頁面的開發上。Flash 從早期的開發便一 直不斷吸納各項語言的優勢,例如導入物件導向的概念,以及後續逐步整合 FLV 視訊,提供 Web service 和 XML 的預建資料連接等,搭配 Action Script,

設計人員可使用它來使得程式中的元件和使用者間互動,而大量的聲音、圖 像、動畫可使程式開發人員快速的建立起應用程式,而 Flash 亦支援大多數 的網頁瀏覽器,因此使得 Flash 的應用越來越廣泛和普及。圖 2 為 Flash 開 發過程中,各元件的關係流程圖。

圖 3、Flash 環境開發、運行流程[9]

2.2 .Net Framework

.Net Framework 是由 Microsoft 繼 Windows DNA 之後的新開發平台,提出 的分散式系統架構,以 Common Language Runtime(CLR)為基礎,支援多種語言 開發(C#、VB .NET、C++、Python 等) 的編碼平台。

.Net Framework 中主要有兩個重要的部份:Common Language Runtime (CLR) 以及.NET Framework 類別庫。當一般程式在執行的過程中,Common Language Runtime 像是一個管理這些程式的代理,其提供了類似像記憶體管理、執行緒管 理和遠端處理等核心服務,同時執行嚴格的型別安全 (Type Safety) 以及加強 安全性和強固性的其他形式的程式碼正確率。微軟為了要讓不同的程式碼間可以 互相的共享,提出了 CLS (Common Language Specification) 規範,依據.Net 架 構的精神,只要所使用的程式語言可以符合 CLS 規範,彼此就可以互相叫用,從 而做到跨語言的目的。

圖 4、.Net Framework 架構圖[14]

而為了達到 CLS 規範,會先將程式轉換成另外一種語言:MSIL (Microsoft InterMediate Language),其為一種中介的語言,但其還是需要一個執行的環 境,而這個執行的虛擬環境就稱為 Common Language Runtime。CLR 同時提供了 執行中的程式一些管理機制,例如垃圾回收(Garbage Collection)、一般型別系 統(Common Type System)、例外處理(Exception Handing)、執行緒(Thread)支 援…等。這些都是為了提供 MSIL 一個穩定的執行環境,讓程式可以順利執行。

而簡單的來說,凡是執行在 CLR 的程式,皆可稱為 Managed code,而不是 運行在這個環境上的程式,則是 Unmanaged code。而另外一種的說法,則是程

式運行在.Net Framework 中來判定,但其實這兩者所指都是同一件事情。目前 Run Time 環境下,其也支援 Managed code 和 Unmanaged code 程式碼間的互通 性,讓開發人員可以繼續使用必要的 COM 和 DLL。

.Net Framework 中另外一個重要的元件為類別庫,它是 Microsoft .NET Framework SDK 中所包含的類別、介面和實值型別 (Value Type) 程式庫。此程 式庫提供系統功能的存取,並設計來做為建置 .NET Framework 應用程式、元件 和控制項的基礎。其功能可加快程式開發過程和程式的最佳化,同時並提供對系 統功能的存取。而為了達到語言間互通性,.Net Framework 類別庫型別也都符 合 CLS 規範的標準。

.Net Framework 提供當豐富的介面,以及抽象和具體類別,其包含的面向 有字串管理、資料收集、資料庫連接、檔案存取、主控台應用程式、Windows Form 應用程式、ASP .Net 應用程式、XML 網路服務、Windows 服務…等。而使用者也 可以為了開發上的便利,自行衍生出自己的類別,透過使用這些類別庫,大幅降 低了開發上的難度以及開發時間。

相關文件