前序
在多個os平台上開發和移植網路應用程式時,將面臨錯綜複雜的挑戰。這些複雜性的表現形式各異:網路協議不相容,在不同軟、硬體平台上具有不同的api和語義的元件庫,os本身的程序間通訊(ipc)機制和併發機制的侷限性造成的「偶發複雜性」。
直接針對os api程式設計會導致以下兩個問題:
1. 容易出錯。因為用c寫成的、os本身的具有的api一般都缺乏安全、可移植、可重入、可擴充的系統函式介面和函式庫。
2. 助長「不恰當」的設計技術的運用。因為很多用os api寫成的網路應用程式都是基於「演算法」設計,而不是「物件導向」設計。
固有複雜性:是由所在領域存在的主要難題造成。
偶發複雜性:開發網路應用軟體時使用的工具和技術存在的侷限性。
網路應用的設計空間:
l通訊空間:網路應用進行互動的規則、形式和抽象層次。
l併發空間:它指的是一些策略和機制,用來控制如何正確使用程序和執行緒,以表達多個服務例項,以及每個服務例項如何在內部使用多執行緒。
l服務空間:它反映網路應用服務的主要性質,如每個服務例項的持續時間和結構。
l配置空間:它反映如何識別網路服務,以及在何時將網路服務繫結在一起,以構成完整的應用。
ace工具包概覽
adaptive通訊環境(ace)是一種廣泛使用的主機基礎設施中介軟體。ace庫包含約240000行c++**、約500個類。
ace支援的os平台:
ace可執行於廣泛的作業系統之上,包括:
lpc:例如,windows(32/64位版本),wince,redhat,debian和suse linux,以及macintosh os x。
l大多數unix版本。例如,sunos4.x和solaris,unixware….
l實時作業系統。例如,vxworks,os/9….
l大型企業系統。例如,open vms,mvs openedition…
python網路程式設計學習筆記(1)
學習用書 python 網路程式設計基礎 作者john goerzen 第一部分底層網路學習 python提供了訪問底層作業系統socket介面的全部方法,需要的時候這些介面可以提供靈活而強有力的功能。1 基本客戶端操作 在 python 網路程式設計基礎 一書中,作者列出了乙個簡單的python客...
網路程式設計學習筆記1 TCP IP
tcp ip協議棧是一系列網路協議的總和,是構成網路通訊的核心骨架,它定義了電子裝置如何連入網際網路,以及資料如何在它們之間進行傳輸。tcp ip協議採用4層結構,分別是應用層 傳輸層 網路層和鏈路層,每一層都呼叫它的下一層所提供的協議來完成自己的需求。tcp ip協議基本框架 當通過http發起乙...
c 網路程式設計學習筆記 4
chapter 3.併發設計空間 一 迴圈 併發及反應式伺服器 迴圈伺服器在處理後續請求之前,會完整地處理每乙個客戶請求。因此,在處理乙個請求時,迴圈伺服器要麼將其他請求排成佇列,要麼忽略它們。迴圈伺服器適合以下兩種服務 l短期服務 l不經常執行的服務 在內部,迴圈伺服器常常在 單程序 位址空間中執...