標籤:常見應用程式介面
0、電腦語言
三種語言
1、機器語言
2、組合語言
3、進階語言
1、機器語言(01代碼):為了加快開發人員的開發,於是出現了微碼(組合語言)—>編譯器(組合語言是通過編譯器,可以讓微碼轉變成01代碼)
2、組合語言:儘管人類可以識別,但是組合語言跟晶片(CPU)的結合程度也是很高的,不僅開發有難度,而且還不好移植,所以組合語言也是低級語言,所以後面也就出現了進階語言(c,java,perl,python)
3、進階語言:這個寫出的程式,只需要和中間裝置區聯絡,不需要關心底層的CPU是intel的還是AMD,就不需要考慮移植性。
什麼是進階語言的中間裝置?
這個中間裝置就是我們理解的API(也就是庫),也可以理解為核心(有些是直接調用核心去擷取硬體資源,如蘋果系統IOS,是Unix核心的,直接調用Unix核心擷取硬體資源,而有一些是通過應用程式介面去調用硬體資源(當然這一種方式需要被核心監督和管理,如安卓系統,他是一個+Linux+JVM(java虛擬機器)+java程式構成,所以並不是直接調用硬體資源,而是通過JVM這個java虛擬機器實現調用Linux核心資源,所以效率上肯定沒有蘋果IOS這麼快))。
當然,很多組織都可以抽象出這些中間裝置的應用程式介面。
API:
簡稱API(Application Programming Interface),就是軟體系統不同組成部分銜接的約定。
在資料封裝時,網路分層中的每個層相互之間會用介面進行互動並提供服務,其中應用程式層與使用者之間的介面稱之為應用程式介面(API,Application Programming Interface)。API實際上是一種功能集合,也可說是定義、協議的集合,無論是哪種集合,它的實質都是通過抽象為使用者屏蔽實現上的細節和複雜性。
從使用者角度看應用程式介面,表現為一系列API函數,使用者可以使用這些函數進行網路應用程式開發。從網路角度看,應用程式介面給使用者提供了一組方法,使用者可以使用這組方法嚮應用層發送業務請求、資訊和資料,網路中的各層則依次響應,最終完成網路資料轉送。
常見應用程式介面
應用程式層的應用程式介面有很多,並且發展很快,比較常見的如socket、FTP、HTTP以及telnet。這些介面從大類上可分為四類:
遠端程序呼叫(RPC,Remote Procedure Call Protocol)
資料查詢介面
檔案類介面
資料通訊介面
例如FTP協議就是檔案類介面,基於FTP,使用者可以實現檔案在網路間的共用和傳輸。而socket和HTTP可歸結為資料通訊介面,基於這兩種介面,使用者可以開發網路通訊應用程式,以及web頁面互動程式。當然如果從編程開發角度看,無論是FTP、HTTP還是telnet,都是基於socket介面開發出來的應用程式層協議,是對socket介面的進一步封裝和抽象,從而為使用者提供更高一層的服務和介面。
socket有時稱之為“Berkeley Socket”,它是最早由伯克利開發的應用程式介面。
常用的socket類型有兩種:
流式socket(SOCK_STREAM)和資料報式socket(SOCK_DGRAM)。
流式socket是一種連線導向的socket,針對於連線導向的TCP服務應用。
資料報式socket是一種不需連線的socket,對應於不需連線的UDP服務應用。
從使用者介面意義上講,還有傳輸層的TLI介面,是由AT&T開發的,有時也稱作XTI。它是傳輸層為使用者提供的應用程式介面,可以用來在傳輸層進行應用開發。
0、電腦語言分類和應用程式介面(API)