{eval=Array;=+count(Array);}
API:應(yīng)用程序接口(API:Application Program Interface)應(yīng)用程序接口(API:application programming interface)是一組定義、程序及協(xié)議的集合,通過 API接口實(shí)現(xiàn)計(jì)算機(jī)軟件之間的相互通信。API 的一個(gè)主要功能是提供通用功能集。程序員通過使用 API函數(shù)開發(fā)應(yīng)用程序,從而可以避免編寫無用程序,以減輕編程任務(wù)。 API 同時(shí)也是一種中間件,為各種不同平臺(tái)提供數(shù)據(jù)共享。
根據(jù)單個(gè)或分布式平臺(tái)不同軟件應(yīng)用程序間的數(shù)據(jù)共享性能,可以將 API 分為四種類型:
遠(yuǎn)程過程調(diào)用(RPC):通過作用在共享數(shù)據(jù)緩存器上的過程(或任務(wù))實(shí)現(xiàn)程序間的通信。 標(biāo)準(zhǔn)查詢語(yǔ)言(SQL):是標(biāo)準(zhǔn)的訪問數(shù)據(jù)的查詢語(yǔ)言,通過通用數(shù)據(jù)庫(kù)實(shí)現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享。
文件傳輸:文件傳輸通過發(fā)送格式化文件實(shí)現(xiàn)應(yīng)用程序間數(shù)據(jù)共享。
信息交付:指松耦合或緊耦合應(yīng)用程序間的小型格式化信息,通過程序間的直接通信實(shí)現(xiàn)數(shù)據(jù)共享。
當(dāng)前應(yīng)用于 API 的標(biāo)準(zhǔn)包括 ANSI 標(biāo)準(zhǔn) SQL API。另外還有一些應(yīng)用于其它類型的標(biāo)準(zhǔn)尚在制定之中。API可以應(yīng)用于所有計(jì)算機(jī)平臺(tái)和操作系統(tǒng)。這些 API以不同的格式連接數(shù)據(jù)(如共享數(shù)據(jù)緩存器、數(shù)據(jù)庫(kù)結(jié)構(gòu)、文件框架)。每種數(shù)據(jù)格式要求以不同的數(shù)據(jù)命令和參數(shù)實(shí)現(xiàn)正確的數(shù)據(jù)通信,但同時(shí)也會(huì)產(chǎn)生不同類型的錯(cuò)誤。因此,除了具備執(zhí)行數(shù)據(jù)共享任務(wù)所需的知識(shí)以外,這些類型的 API還必須解決很多網(wǎng)絡(luò)參數(shù)問題和可能的差錯(cuò)條件,即每個(gè)應(yīng)用程序都必須清楚自身是否有強(qiáng)大的性能支持程序間通信。相反由于這種 API只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網(wǎng)絡(luò)參數(shù)以及差錯(cuò)條件子集。正因?yàn)槿绱?,交?API方式大大降低了系統(tǒng)復(fù)雜性,所以當(dāng)應(yīng)用程序需要通過多個(gè)平臺(tái)實(shí)現(xiàn)數(shù)據(jù)共享時(shí),采用信息交付 API 類型是比較理想的選擇。
API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:API 接口屬于一種操作系統(tǒng)或程序接口,而后兩者都屬于直接用戶接口。有時(shí)公司會(huì)將 API 作為其公共開放系統(tǒng)。也就是說,公司制定自己的系統(tǒng)接口標(biāo)準(zhǔn),當(dāng)需要執(zhí)行系統(tǒng)整合、自定義和程序應(yīng)用等操作時(shí),公司所有成員都可以通過該接口標(biāo)準(zhǔn)調(diào)用源代碼,該接口標(biāo)準(zhǔn)被稱之為開放式 API。
應(yīng)用層常見的接口:
應(yīng)用層的應(yīng)用程序接口有很多,并且發(fā)展很快,比較常見的如socket、FTP、HTTP以及telnet。這些接口從大類上可分為四類:
遠(yuǎn)程過程調(diào)用(RPC,Remote Procedure Call Protocol)
數(shù)據(jù)查詢接口
文件類接口
數(shù)據(jù)通信接口
例如FTP協(xié)議就是文件類接口,基于FTP,用戶可以實(shí)現(xiàn)文件在網(wǎng)絡(luò)間的共享和傳輸。而socket和HTTP可歸結(jié)為數(shù)據(jù)通信接口,基于這兩種接口,用戶可以開發(fā)網(wǎng)絡(luò)通信應(yīng)用程序,以及web頁(yè)面交互程序。當(dāng)然如果從編程開發(fā)角度看,無論是FTP、HTTP還是telnet,都是基于socket接口開發(fā)出來的應(yīng)用層協(xié)議,是對(duì)socket接口的進(jìn)一步封裝和抽象,從而為用戶提供更高一層的服務(wù)和接口。
socket有時(shí)稱之為“Berkeley Socket”,它是最早由伯克利開發(fā)的應(yīng)用程序接口。常用的socket類型有兩種:流式socket(SOCK_STREAM)和數(shù)據(jù)報(bào)式socket(SOCK_DGRAM)。
流式socket是一種面向連接的socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用。
數(shù)據(jù)報(bào)式socket是一種無連接的socket,對(duì)應(yīng)于無連接的UDP服務(wù)應(yīng)用。
從用戶接口意義上講,還有傳輸層的TLI接口,是由AT&T開發(fā)的,有時(shí)也稱作XTI。它是傳輸層為用戶提供的應(yīng)用程序接口,可以用來在傳輸層進(jìn)行應(yīng)用開發(fā)。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答5
回答0
回答9
回答