[WDC] 在桌面及 Web 執行應用程式

隨著 Web 應用程式愈來愈紅,許多原本在桌面環境的應用程式紛紛出現在 Web 的世界裡,如歷史悠久的 Webmail 程式,透過它可以收發信件、整理連絡人等等功能,而且有了 Webmail ,不再需要記住惱人的 POP3/SMTP 設定,也不必害怕電腦重灌信件不見(當然,像 GMail 這樣的 Webmail 系統,幾乎不必因為顧慮磁碟剩餘空間,而煩惱該如何刪除信件)了,更方便的是,不論你身在何處,只要能夠打開瀏覽器,連上 Internet 就能夠使用它來完成工作,這就是 Web 應用程式最主要的魅力!

過去,在桌面上執行應用程式,簡單地說,就是透過作業系統,把躺在磁碟機上的軟體「叫起來」執行,接著,這個桌面應用程式就待命著,等待我們透過鍵盤、滑鼠的操作製造事件(event)的發生,然後應用程式根據事件來做出相對應的動作,接著再將結果顯示在介面上,以達到我們叫應用程式幫我們作事的目的,所以整件事看起來就像這樣:

Flow on Desktop Application
圖 1 - 執行桌面應用程式的流程圖

其實這樣的模式在 Web 應用程式上也是差不多的,看看下面這個圖表跟上面的有何差別:

Flow on Web Application
圖 2 - 執行 Web 應用程式的流程圖

一個使用者,在這裡被看作是「客戶(Client)端」,透過程式(最常也最多使用的是瀏覽器,如:IE、Firefox 等)對伺服器(Server)端的 Web 應用程式進行操作,這裡的操作就會被視為是一個 Request,Web 應用程式建立一個 Session 來處理來自 Client 的 Request,再交由程式邏輯來處理相關的動作,必要時會存取資料庫,最後再將結果呈現在網頁上或是某種 Client 端程式可以接受的格式。

而 Web 發展很久了,但為什麼最近幾年才變得這麼火熱呢?我認為主要是因為三個原因:

  1. 路頻寬變大了,使用者可以在合理的時間(這很主觀)內送出及收到含有較多資訊的 request / response。
  2. AJAX 的技術發揚光大,使用者送出 request 或收 response 不再需要 reload 整個網頁,而能夠很即時地得到伺服器運算完的結果,讓使用者很輕鬆就把網頁看作是一個應用程式的介面。
  3. 目前幾個主流的平台上都有 Firefox 或是 Mozilla-based 的瀏覽器可用,寫出來的應用程式不再需要緊緊綁著作業系統,只要能夠連接上 Internet,打開瀏覽器就是一個執行環境, 應用程式的開發者終於可以不必煩惱平台移植的問題(雖然這種感覺很像是把瀏覽器看作是一個 Virtual Machine,如:JVM),瀏覽器技術的成熟也帶動了 Web 應用程式有無限多種可能。

當然,諸如像是 Web 應用程式較桌面應用程式容易進行廣告、行銷等等,這又是另外的故事了。總之,這個趨勢就是愈來愈多的開發者想投入力氣在 Web 應用程式的開發上面,看看 Google 如此眾多的網路服務應該也會有點感覺吧?

下一篇文章將會介紹常見的開發 Web 應用程式環境,再來談談關於 Web / Application Server、Server-side Scripting 以及網頁呈現等等議題。

  • 圖一跟我無聊時畫的WebApp架構一樣耶XD 連字都一樣

    不過這些webapp, 以我來說我會擔心service provider的reliability, 哪天東西都不見,service突然shut就很糟 (沒有影射任何公司XD).

    所以我到現在很多service都還是習慣自己架..還順便可以練習:P

  • Pingback: -TMA-1- » links for 2007-04-18()