全世界是台電腦(1/3)
撰文/David P. Anderson & John Kubiatowicz|譯者/鍾樹人
轉載自《科學人》2004年4月第26期
橫跨在網際網路上的作業系統,讓人親炙全球數百萬台個人電腦連結後的威力。
瑪莉下班回家打開電腦檢查電子郵件之前,那台個人電腦並非閒置的。它正在為某家生技公司工作,比對基因序列與蛋白質分子庫裡的資料。它的DSL連線也忙著下載無線電望遠鏡的資料以供稍後分析。硬碟裡除了瑪莉自己的檔案外,還包括了數千筆其他檔案的加密片段。偶爾,其中一個片段會被讀取並傳送出去;它是芬蘭的某個人正在看的電影的片段。瑪莉接著動一下滑鼠,電腦的這些動作隨即嘎然而止。現在,她的電腦及網路連線全歸她一個人獨享了。
這樣的資源分享並不只限於她的桌上型個人電腦。在她背包裡的筆記型電腦雖然關掉了,但硬碟裡仍裝載了其他人檔案的位元片段,這是分散式備份系統的一部份。瑪莉的重要檔案也以同樣的方式進行備份,儲存在世界各地數十台電腦的硬碟裡。
稍後,瑪莉利用按次計費系統,在她那台連上網際網路的數位電視上觀看一部獨立製片。電影各片段本來儲存在數百台像她這樣的人的電腦裡,這時會飛快傳來,然後組合成一部完整的電影。
瑪莉的電腦為其他人做兼差工作,但並不是無償奉獻。當她的電腦在工作時,一角一分就會慢慢掉進她的虛擬銀行帳戶裡。付款的人包括生技公司、電影系統與備份服務業者。與其購置昂貴的「伺服器機群」,這些公司選擇租賃時間與空間,而且不只是瑪莉的兩台電腦,還有數百萬台其他人的電腦。這是個雙贏的局面。比如,電影服務公司在硬體上省錢,就能夠提供冷門的電影給觀眾。瑪莉賺到了一些錢、檔案也能備份,還可以看到獨立製片。只要有一個網際網路規模的作業系統(Internet-scale operating system, ISOS),提供必要的「膠水」將數百萬台獨立電腦的處理與儲存能力連結起來,這些情況就能發生。
網際網路規模的應用程式
雖然瑪莉的世界是虛構的,網際網路規模的作業系統也還未誕生,但程式設計師已開發出好幾個網際網路規模(或稱「點對點」)的應用程式,嘗試要接通網際網路上大量尚未善加利用的電腦(參見下表)。這些應用程式能完成專用電腦難以完成、無法負擔,或根本不可能達到的目標。另外,今天的系統也只是個開端:我們可以輕易構思出足以信賴數百年的典藏服務,並且開發出智慧型搜尋引擎,以供未來的語意網使用(可參見)。
遺憾的是,要設計出網際網路規模的應用程式仍是艱鉅的挑戰。工程師必須從頭設計每個新的應用程式,而且大部份精力將花在與應用程式本身關係不大的技術層面上,像是維護使用者資料庫。如果網際網路規模的應用程式要成為主流,這些基礎架構必須一次根本解決。
為了避免重複的苦工,我們可以從Unix或是微軟視窗這類作業系統中汲取靈感。作業系統提供虛擬的運算環境,讓程式在運作時就像是獨佔這台電腦一般。這能讓程式設計師免於記憶體與磁碟配置、通訊協定、大量行程的排程、資料輸出入裝置界面等擾人的細節。作業系統能大量簡化新電腦程式的開發。同樣的,網際網路規模的作業系統能簡化新分散式應用程式的開發。
ISOS含有一層在每個「主機」電腦(像是瑪莉的電腦)上跑的軟體(ISOS代理人程式),以及一個能夠在單個或多個伺服器叢上執行的中央協同系統。這個作業系統只提供核心功能,像是為每項任務做資源的分配與排程、處理主機電腦之間的溝通,並決定每台機器所應得的報酬。這類型的作業系統稱為「微核心」(microkernel),它會將較高階的功能交給其他程式,這些程式會利用到作業系統,但不是作業系統的一部份。例如,瑪莉將檔案片段儲存在分散於網際網路的電腦上時,並不會直接用到ISOS,而是執行一項會使用到ISOS功能的備份應用程式。ISOS借用經濟學的原則,有效率而公平地分配運算資源給不同的使用者,並對提供資源的所有者給予適當的報酬。
兩大類型的應用程式可能從ISOS受益。第一類是分散式資料處理,像是物理模擬、無線電訊號分析、遺傳分析、電腦繪圖計算,以及金融模型。第二類是分散式線上服務,比如檔案儲存系統、資料庫、網站代管、串流媒體(如線上影像),以及高階網路搜尋引擎。(待續)
(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)