萬維網操作系統---基本原理

基本原理

 

由於web的弊端,基於web的應用沒有本地計算機程序的相應概念,如進程、線程、堆棧、地址等,造成用戶瀏覽器僅僅是呈現服務器數據及簡單把用戶數據發送工具,不能像本地程序一樣,有數據空間、進程空間來包容各種用戶數據。現在的腳本程序也可以在本地處理一些簡單數據,但對於複雜數據處理起來非常繁瑣,使用像ajax、xml等其他輔助技術來處理複雜數據。由於這些因素的存在,現在基於web應用對初學者來與學習本地編程語言不可比較。因此,本文嘗試用一種結合本地技術與遠程數據的技術,使得客戶端程序處理遠程數據時可像本地一樣方便。爲此,提出如下的基本解決方案。

1、      進程空間定義

Www協議的定義只是爲了呈現用戶文檔數據,完全沒有程序的概念,在web上建立應用時,就必須建立各種虛擬的數據空間,如cooke技術。任何人訪問統一網站時,瀏覽器就會偷偷建立cooke文件,以便識別用戶的訪問,這是一種非常不和諧的技術。如果像本地程序一樣,當用戶打開應用程序時,操作系統便建立了一個程序運行的內存空間---進程,除非程序設計需要原因以外,進程不會在本地上再建立多餘的文件,程序的運行只是對內存數據的處理,而web應用因爲沒有進程空間概念,瀏覽器也僅僅只是呈現數據樣式,沒有辦法再進一步處理。

爲了讓web應用像本地程序一樣,本文提出可以像本地進程一樣,定義一個進程空間。

爲方便,這裏簡單用xml來表示web進程的定義:

<進程 ID=“8888”程序名=“facebook”>

< … >

< … >

 </進程>

如上所示,當用戶訪問各種網站應用時,web服務器返回的只是該應用服務的進程數據給瀏覽器,用戶瀏覽器再根據進程數據位用戶在本地建立進程空間。

2、      函數空間定義

只有進程空間定義,web應用是沒有辦法運行起來的。操作系統出了會建立進程空間,爲了並行計算方便,他還會建立諸如線程、纖程、對象等概念的相對獨立的空間,這些空間的相對簡單,且都是平等的概念,每個線程空間都是分佈的進程空間線性範圍內,不會交叉在一起,因此,web應用模仿操作系統也定義相似的概念---函數空間。函數空間用來包含用戶數據,把用戶數據相對分割開來,並提供函數內安全保護。

簡單表示如下:

<進程 ID=“8888”程序名=“facebook”>

<好友>

<喬布斯ID=“1”/>

<…>

</好友>

<粉絲>

<…>

<…>

</粉絲>

</進程>

這種表示方法與XHTML非常相似,但是這是有本質區別的,本文是爲了web應用而定義的,而XHTML是爲文檔服務的。

上述的表示方法基本上與本地進程一樣,只是對空間進行簡單的線性分割,採取這樣的模型主要是爲web應用設計方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章