- 作者/ 布萊恩‧柯尼罕( Brian W. Kernighan)
- 譯者/ 李芳齡
網路的普及
回想第六章中敘述的電腦運算使用模式,你有一台或好幾台個人電腦,你讓個別應用程式執行不同的工作,例如用 Word 製作文件,用 Quicken 或 Excel 做你的個人財務,用 iPhoto 管理你的相片。這些程式雖可能連結網際網路以取得一些服務,但它們在你的電腦上運轉,你可以不時地去下載一個修補了漏洞的新版本應用程式,偶爾可能得購買一個升級版以取得新功能。
這個模式的本質是,程式和資料都在你自己的電腦上。若你在一台電腦上修改了一個檔案,然後在另一台電腦上需要這檔案,你必須自己做轉移。若你在辦公室或外出旅行途中需要一個儲存於你家中一台電腦上的檔案,那就麻煩了。若你需要在一台視窗個人電腦和一台麥金塔電腦(Mac)上都有 Excel 或 PowerPoint,你必須為兩台電腦各買一個程式。上面說的這些情況,還沒把你的手機包含在內哦。
另一種不同的模式是愈來愈普及:使用瀏覽器或手機去存取及操作儲存於網際網路伺服器上的資訊。Gmail 或 Outlook 之類的郵件服務是最普遍的例子,你可以從任何一台電腦或手機存取你的電子郵件,可以上傳一封在本機上撰寫的郵件訊息,或是下載郵件訊息至本機檔案系統,但多數時候,你把資訊留在提供服務的伺服器上。
你不需要做什麼軟體更新,但不時會有新功能出現。你通常是在臉書上跟朋友保持聯繫或觀看他們的照片,但交談及照片儲存在臉書,不是儲存在你自己的電腦上,這些服務是免費的,唯一可見的「成本」是當你閱讀你的郵件或查看你的朋友在做什麼時,你可能會看到廣告。
科技未來趨勢——雲端運算
這種模式通常被稱為「雲端運算」(cloud computing),因為網際網路被比喻為「雲」,沒有特定的實體位置,資訊被儲存於「雲端」的某處。
電子郵件和社交網路是最常見的雲端服務,但還有很多其他的雲端服務,例如多寶箱(Dropbox)、推特、領英、YouTube、線上行事曆等等。資料不是儲存於本機,而是儲存於雲端,亦即雲端服務供應商的伺服器上:你的電子郵件及行事曆儲存於谷歌的伺服器,你的相片儲存於多寶箱(Dropbox)或臉書的伺服器,你的履歷表儲存於領英的伺服器等等。
雲端運算的問世,得力於多個因素的匯聚。個人電腦變得愈來愈強大的同時,瀏覽器也是,瀏覽器現在能夠有效率地執行顯示要求很高的大程式,儘管使用的程式語言是直譯式的 JavaScript。對多數人而言,現在的頻寬及用戶端與伺服器端之間的延遲(等候時間)遠優於十年前,這使得資料的傳送與接收更快,甚至在你輸入搜尋詞時,當即反應你的鍵擊,在你還未輸入完之前,就列出一些建議的搜尋詞。結果是,以往需要一個單獨的程式去處理的絕大多數使用者介面操作,用瀏覽器就能搞定,在此同時,使用一台伺服器去承載大量資料,執行任何複雜運算。這種組織方式也在手機上運作得很好:不需要再下載一款行動應用程式。
以瀏覽器為基礎(browser-based)的系統的反應速度可以媲美以個別電腦為基礎(desktop-based)的系統,並且讓你可以從任何地方存取資料。
以來自谷歌的雲端「office」工具為例,它提供文書處理器、試算表、以及簡報程式,讓多使用者可以同時存取使用及更新。(譯註:以瀏覽器為基礎的系統又稱為 web-based,或稱「brower-server model」,簡稱 B/S 模式,指的是透過瀏覽器去使用網路上的軟體來執行各種工作;以個別電腦為基礎的系統又稱為 client-based,或稱為「client-server model」,簡稱 C/S 模式,指的是必須在每台電腦上安裝各種軟體來執行各種工作。)
雲端工具的快速崛起
一個受到關心的議題是,這些雲端工具會不會最終運轉得夠好而完全取代以個別電腦為基礎的版本。你大概可以想像得到,微軟非常關心這個,因為 Office 軟體佔該公司營收的相當比重,而 Office 主要在視窗作業系統上執行,微軟的其餘營收大多來自視窗作業系統。以瀏覽器為基礎的文書處理及試算表不需要來自微軟的任何軟體,因此將威脅到微軟的 Offic 及視窗作業系統這兩大核心業務。
目前,谷歌文件(Google Docs)及其他類似的系統還不具備 Word、Excel、及 PowerPoint 的所有功能,但科技進步史中充滿這樣的例子――明顯較差的系統問市,搶走認為此系統已經夠好的新使用者,漸漸侵蝕在位者的市場佔有率,並且持續改進本身的功能。微軟顯然很清楚這問題,實際上,為因應此問題,該公司已經推出雲端版本的 Office 365。
以網路為基礎(web-based,亦即以瀏覽器為基礎)的服務其實對微軟及其他供應商具有吸引力,因為易於採用訂閱收費模式,用戶必須持續付費以取得服務。但是,消費者可能偏好一次性購買軟體,必要時再付費升級。我目前仍然在我的較舊的麥金塔電腦上使用 2008 年版本的 Microsoft Office,它運作得很好(在此應該稱讚微軟),而且,它仍然偶爾獲得安全性更新,因此,我並不急於升級。
雲端運算仰賴用戶端的快速處理及大量記憶體,以及伺服器端的高頻寬。用戶端的程式是用 JavaScript 語言撰寫的,通常錯綜複雜。JavaScript 程式重度要求瀏覽器更新及快速顯示圖形資料,敏捷反應使用者的動作(例如拖曳)及伺服器的動作(例如更新的內容),這已經是夠難了,難上加難的是,瀏覽器版本與 JavaScript 版本之間的不相容性,需要雲端服務供應商找出傳送程式給用戶端的最佳方法。不過,伴隨電腦運算速度愈來愈快,以及更加遵從標準,這些都在進步中。
雲端運算可以在「於何處執行運算」和「處理過程中把資訊寄存於何處」這兩者之間作出取捨,例如,使 JavaScript 程式與特定瀏覽器脫鉤的方法之一是,在程式本身裡頭包含測試,譬如:「若瀏覽器是 Firefox 75 版,就執行這個;若瀏覽器是 Safari 12 版,就執行那個;若為其他瀏覽器版本,執行別的。」這樣的程式比較大,意味的是,需要更多頻寬來把 JavaScript 程式傳送至用戶端,而且,程式中增加的測試可能使瀏覽器運轉得較慢。另一種方法是,伺服器可以詢問用戶使用的是哪種瀏覽器,然後傳送針對這款瀏覽器撰寫的程式,這程式可能更簡潔,執行得更快,不過,對於原本就小的程式,差異可能不大。
網頁內容可以用不壓縮形式傳送,這樣,用戶端及伺服器端需要的處理工作較少,但需要較多的頻寬來傳輸;或者,用壓縮形式來傳送網頁內容,傳輸時需要的頻寬較少,但兩端需要增加處理工作。有時候,只有一端做壓縮處理,大型 JavaScript 程式經常被壓縮,移除所有不必要的空白,讓變數及函式使用一或兩個字母的名稱,壓縮後的程式是人類看不懂的,但用戶端電腦不在意。
儘管有技術性挑戰,若你總是能連上網際網路的話,雲端運算的優點很多。它們供應的軟體總是最新的,資訊儲存於專業管理的、有大容量的伺服器上,客戶資料隨時都有備份,幾乎沒有遺失的可能。一份文件只有一種版本,不會發生同一份文件在不同的電腦上可能有不一致版本的情形,而且,很容易即時共享文件及通力合作。雲端服務的價格很便宜,個人消費者往往可以免費取得,但企業客戶可能得付費。
——本文摘自《普林斯頓最熱門的電腦通識課》,2022 年 2 月,商業周刊。