全世界是台電腦(3/3)

全世界是台電腦(3/3)

撰文/David P. Anderson & John Kubiatowicz|譯者/鍾樹人
轉載自《科學人》2004年4月第26期

基本架構

關於ISOS的設計,我們提倡兩個基本原則:最小的作業系統核心,以及由中央伺服器發號司令。只提供核心功能的電腦作業系統稱為微核心。較高階的功能則以使用者程式的型式建立在微核心之上,這樣一來,能讓除錯與置換的工作更容易進行。這個方式首見於學術研究系統,並影響了某些商業系統,像是視窗NT。不過,最有名的作業系統都不是微核心。

ISOS具備的核心功能包括資源分配(主機處理能力與儲存空間的長期安排)、排程(透過系統與個別主機將工作放進序列)、資源使用狀況的統計,以及分發和執行應用程式等基本機制。ISOS應該和主機上執行的個別作業系統,扮演不同的角色。

ISOS提供者所操作的伺服器負責協調系統的所有動作,這些提供者有可能是政府贊助的組織,或是買賣資源的主要公司所組成的協會(雖然可以有多家ISOS提供者進行競爭,不過為了簡化起見,我們假設只有一家提供者)。集中式不利於某些點對點系統中盛行的平等主義,不過我們需要中央伺服器來確保某些敏感資料的私密性,像是會計資料以及其他關於資源主機的資訊。表面上,集中式需要的控制系統,會因為連結ISOS主機的數目增加而變得過於龐大笨拙,而且隨時會面臨因無法聯繫而系統阻塞的瓶頸。不過這樣的憂慮是毫無事實根據的:具備合理數目的伺服器,就能輕易儲存所有連網主機的相關資訊,並定期與這些主機溝通。舉例來說,Napster只用了一台中央伺服器,就能處理高達6000萬個用戶。伺服器叢可隨時擴充,而且即使伺服器短暫失去聯絡,大部份的ISOS線上服務仍能持續運作。

ISOS伺服器叢會維護存有資源描述、使用政策以及任務性質的資料庫。舉例而言,資源描述包括:主機的作業系統、處理器款式與速度、所有與可用的磁碟空間、記憶體容量、網路連線的性能統計,以及開機與連線時間的統計數據。使用政策則詳加說明了所有者指定的資源使用規則。任務性質則包括指派給線上服務的資源,以及資料處理任務的工作順序。
要讓電腦能為網路所用,資源賣方需聯絡伺服器叢(例如,透過網站),下載並安裝ISOS代理人程式,將資源連上ISOS帳戶,並進行相關的後續動作。ISOS代理人負責管理主機資源的使用狀況,並且不定期從ISOS伺服器叢取得要執行的任務清單。

資源買方則送給伺服器任務需求,以及(在主機上執行的)應用程式代理人程式。線上服務提供者可以向ISOS要求一組可執行任務的主機,指定其資源需求(例如,分散式備份服務可使用只偶爾連線的資源主機,像是瑪莉的筆記型電腦,這會比持續連線的主機花費更低)。ISOS則負責提供指定主機的位址與性質,並讓應用程式代理人程式能在執行的主機間直接溝通。當某些主機無法使用時,服務可以要求新的主機。ISOS並不會規定用戶要如何使用線上服務、服務該如何回應,或者服務怎麼向用戶收費(資源使用者付給主機所有者的款項並不是由ISOS所控制)。

應用程式工具套件

原則上,以ISOS的基本功能(像是資源分配、排程與通訊),要建立各式各樣的應用程式已綽綽有餘。然而,大部份的應用程式都有重要的共通次元件。因此,有個軟體工具套件就大有助益,可進一步協助軟體工程師設計新的應用程式。這些套件的程式碼可整合進資源主機上的應用程式裡。以下提供一些工具套件的例子:

獨立位置路由:配合ISOS的應用程式會在幾百萬個資源主機之間散播資訊副本與運算實體,它們必須能再次存取這些資訊。為了達成這個目標,應用程式會在權限之內利用全域唯一識別碼(Globally Unique Identifiers, GUIDs)為物件命名。這些名稱能讓應用程式在不知道物件位置的情況下,向物件提出查詢,也就是所謂的「獨立位置路由」。做到獨立位置路由的簡單方法,就是指定一台機器專門處理GUIDs的資料庫,但系統並無法處理來自數百萬台主機的查詢。所以ISOS工具套件採取相反的作法,將GUIDs的資料庫分散到各個資源主機。目前有研究計畫在開發這樣的分散式系統,像是美國加州大學柏克萊分校的「海量倉庫」永久資料儲存計畫。

永久資料儲存:ISOS所儲存的資訊必須能通過各式各樣的考驗。永久資料儲存工具有資料編碼、重組與修復機制,有助於完成此項任務。為求最大的存活能力,資料會以 “m-of-n” 碼的方式進行編碼。原則上,m-of-n碼類似全像術,只要一小片就足以重建整個影像。編碼的方式是將資訊分成n個片段(放到n個資源主機上),而其中的m個就足以重建資料。例如,永久資料儲存工具可能會將文件編碼成64個片段,其中的16個就足以重建這份文件。連續修復也相當重要。如果有片段失效了,修復工具能再重製。如果設計完善,永久資料儲存工具套件能保存資訊達數百年。

安全更新:當應用程式需要更新本來儲存的資訊時,會產生新的問題。例如,所有的資訊副本都必須更新,而物件的GUID必須指向最新的副本。存取控制機制必須防止未經授權的人更新資訊。安全更新工具仰賴拜占庭通訊協定(Byzantine agreement protocols),這樣一來,即使有1/3的資源主機想要偏離正軌,整群主機仍能作出正確的決定。

其他工具:工具套件的協助還包括提供額外的工具,像是格式轉換(以處理性質各異的主機),以及程式庫同步化(以幫助主機間的協同合作)。

ISOS面臨熟悉的矛盾情況,延緩了許多新技術的採用:在客戶群未達一定規模之前,合理可行的應用程式寥寥無幾。反之,應用程式的數目無法增加,客戶群就將維持小眾。不過,只要說服足夠多的程式開發人員與用戶了解ISOS本身的價值,讓客戶群能達到關鍵規模,系統就會快速發展。

網際網路仍是廣大無垠但尚未開發的資源。全球資訊網的使用人口雖然有爆炸性的成長,但並未改變這項事實,反而只是讓這個資源庫更加龐大。網際網路規模的作業系統能讓程式設計師自由揮灑,設計出在全球電腦上執行的應用程式,但不用擔心基礎的硬體設備。天知道會有什麼樣的結果?瑪莉和她的電腦所要做的事,是我們無法想像的。(完)

(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)

views