作者:許建志
2004 年 11 月
就像三國演義裡的「話說天下大勢分久必合,合久必分」,應用程式的架構也循此模式在集中與分散之間循序演進。在大型主機當道的時候,終端機介面是存取應用程式唯一的介面,透過 3270 等的終端機,呈現的只是應用程式處理所需要的資料,幾乎完全沒有使用到區域端的計算能力,所有的資料與計算能力,都處在後端的大型主機上。隨著個人電腦的計算能力增加與區域網路的頻寬快速發展,Client/Server 應用程式也蓬勃發展,甚至演進到所謂的三層式或多層式的主從架構。之後網際網路大幅起飛,應用程式的架構又演進到類似之前的集中式架構,將所有的運算能力與資料集中在 Web 伺服器上,而透過瀏覽器建構起所謂的 Web 應用程式。
根據 Gartner Group 統計,目前新應用程式的開發有大約 70% 便是採用 Web 應用程式架構。為何目前有這麼高的比例採用這種集中式的架構?答案是「成本」;雖然使用者期望的是使用者介面豐富、互動性又高的 Rich client(或者比較負面的說法,Fat client),開發者也可以擁有較高的生產力建構此類型的應用程式,但是透過Web應用程式,第一次將應用程式部署給使用者使用的成本卻可以是趨近於零,而可以服務比以往更多的使用者。隨著 Web services 與新一代軟體技術的興起,加上 Gartner Group、Giga Information Group 等研究機構的報告顯示,應用程式架構正再度往分散的方向演進,而演進出新一代的應用程式架構。Gartner Group 將之稱為 High fidelity client 或是 Smart client(Giga 稱之為 Return to Rich Client),同時預估在 2005 年光是 .NET 平台,Smart client 應用程式的比率就將高達 60%。
Smart client 的應用程式其實是利用新一代的技術,同時擷取 Fat client 與 Thin client 的優點並改進舊技術的缺點。傳統上,Fat client 擁有執行體積大、佈署不易與 DLL 版本衝突的問題,而 Thin client 也有開發方式複雜、必須擁有網路連結,與較差的使用者操作經驗等缺點。Smart client 則嘗試將 Fat client 與 Thin client 的優點整合,包括豐富的使用者操作介面、反應迅速,佈署與管理容易、執行體積小…等。一般來說,下面是 Smart client 應用程式架構的特色:
- 使用區域端的資源:這裡指的同時包含硬體與軟體的資源,可能是利用區域端的 CPU 計算能力、記憶體,將生產力軟體連接至企業營運系統,甚或所連接的裝置,包括 PDA、電話、RFID 接收器…等。
- 連接:Smart client 應用程式通常是大型分散式系統的一部分。例如應用程式可能跟一系列的 Web services 溝通,不僅可以維護程式,甚至也提供部署與更新服務。
- 離線的能力:由於可以善用區域資源,因此這類型的應用程式可以讓使用者在缺乏網路連線或是不穩定的狀況下仍然能運作。不論是出差需求或是移動工作者,透過桌上型電腦、筆記型電腦或是PDA等,皆能在離線時繼續運作,而在連線時智慧地自動擷取或是更新資料。
- 智慧型安裝與更新:這是跟傳統 Rich client 最大的差別。以 .NET framework 為例,系統管理者便可以透過檔案複製、下載,或是透過 HTTP 部署應用程式,而且可以保持自動更新版本的能力。
- 用戶端裝置的彈性:隨著數位裝置的蓬勃發展,不論是手機、PDA、遊戲機、車用電腦…等,新的技術平台也將提供其支援 Smart client 應用程式架構的能力。
依目前趨勢來看,Smart client 的發展還可以大致區分為分為「獨立型」與「依附型」兩類。獨立型指的是以新一代的技術所架構起的 Smart client,而可以同時支援連線與離線模式,技術平台包括 Microsoft .NET Windows Form、Sun J2SE\WebStart 與 Macromedia Central。依附型則是依附在瀏覽器上,而提供較豐富的使用者介面,但是不能提供離線的運作能力,包括有 Macromedia FlashMX、AltioLive Platform、Droplets User Interface Server 與 Curl 的 Surge,微軟也正將 Longhorn 的展示層技術 Avalon 透過 XAML 提供瀏覽器呈現豐富介面的類似能力。根據 Giga Information Group 的調查顯示,依附型 Smart client 將在 2005 年從 5% 微幅成長至 18%,而獨立型則會從 7% 大幅成長至 30%。除了前面幾期所提到已經具備 Smart client 特色的應用案例,下面是一些目前已經採用 Smart client 的應用範例。
那斯達克 Excel 投資助理系統
傳統上企業的財務報告都是以文件為基礎的,而股票投資者與分析師必須同時熟讀多家企業的報告,並將關心的數據或資訊輸入到電腦裡面以利後續的分析與比較。這種大量的手工、多步驟的流程是很耗費時間的,那斯達克 (NASDAQ) 收到了大量的抱怨而決定建構一套系統讓投資者與分析師可以簡易的擷取、分析甚至比較所關注的股票資料。
美國微軟、那斯達克與 PricewaterhouseCoopers 透過 Web services 技術與 Microsoft Office System 建構了一套以 Extensible Business Reporting Language (XBRL) 為基礎而透過 Excel 展現股票資料的投資助理系統。那斯達克將上市公司的財務資訊,包括平衡表、收入、現金流量、資產…等資訊轉換成 XBRL 格式而存入集中的資料庫系統,並透過 Web services 對外提供網頁、Excel 或是列印系統…等服務。

透過 Excel 操作的投資助理不僅可以充分運用其展示與分析能力,以往需要數小時的分析時間,現在分析師只需要數分鐘便可以取得所需要的報告;甚至由於上市公司的財務資訊已經透過 Web services 以 XBRL 格式被下載下來,因此投資者或分析師還可以離線操作這系統並進行交叉分析。
台灣的建國工程企業集團也是面對類似的商業需求。建國工程企業集團的跨兩岸經營模式,使得大陸各廠的營運資料匯整至台灣總部需費 5-10 天,導致決策判斷缺乏即時性的資訊支援。資訊傳達往往必須透過傳真與繁複的人工計算後,再用信件寄到上海地區總部,或是傳送到台北總部,所以無法即時掌握企業集團的營運目標進度或者決策所需的資料庫資訊。他們採用類似那斯達克投資助理的架構,前端使用 Excel 當展示介面而透過 Web services 彙整兩岸的資訊,不僅讓建國工程五個大陸廠高級主管立即從遠端蒐集資料並有效定期追蹤生產進度,進而隨時掌握各據點營運狀況,並針對問題提出解決方案。
雖然上述兩個例子是以 Excel 為展示介面,但是 Smart client 的概念是很廣泛的而可以推展到不同的應用程式架構,也許是 Office 延伸功能、行動裝置的應用程式、新一代的 Windows 應用程式,只要記住 Smart client 的特色需求,便可以符合多數系統使用者的期望。
意見與支援
您有任何問題、意見或建議嗎?您可以透過下列電子郵件與作者連絡:
jackyhsu@microsoft.com
更多資訊
想知道企業整合新天地 - Web services 專欄的其他文章嗎?請至此專欄所有列表