應(yīng)用程序接口概論_第1頁(yè)
應(yīng)用程序接口概論_第2頁(yè)
應(yīng)用程序接口概論_第3頁(yè)
應(yīng)用程序接口概論_第4頁(yè)
應(yīng)用程序接口概論_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

應(yīng)用程序接口概論

任亞飛羅桂林張勇Summary:在實(shí)際生產(chǎn)生活中,用戶使用兩個(gè)或多個(gè)軟件共同協(xié)作以滿足業(yè)務(wù)需求,而不同軟件數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)交互方式等不盡相同。應(yīng)用程序接口是實(shí)現(xiàn)不同軟件之間數(shù)據(jù)交流共享的橋梁。目前,應(yīng)用程序接口技術(shù)日趨成熟,迫切需要對(duì)接口技術(shù)進(jìn)行全面系統(tǒng)的總結(jié)。因此,本文主要從定義、設(shè)計(jì)原則、實(shí)現(xiàn)方式三個(gè)方面對(duì)應(yīng)用程序接口進(jìn)行概述,有助于初學(xué)者快速了解應(yīng)用程序接口技術(shù)。Key:軟件;接口;數(shù)據(jù)交流共享:TP311.11

:A

:1007-9416(2020)04-0000-000引言現(xiàn)今,軟件的應(yīng)用已經(jīng)滲透到了社會(huì)的各行各業(yè),開發(fā)商更是加強(qiáng)開發(fā)力度,研發(fā)出各種軟件來(lái)提高市場(chǎng)競(jìng)爭(zhēng)力。但是,不同開發(fā)商都是基于自身的情況開發(fā)軟件,導(dǎo)致不同軟件之間的數(shù)據(jù)結(jié)構(gòu)差異較大,大大提高了軟件間交互的難度。接口技術(shù)應(yīng)運(yùn)而生,通過(guò)接口可以實(shí)現(xiàn)不同軟件之間數(shù)據(jù)的交流共享,接口成為了不同軟件溝通的橋梁,在整個(gè)軟件系統(tǒng)中起著極為重要的作用。1應(yīng)用程序接口概述應(yīng)用程序接口是軟件系統(tǒng)不同功能模塊之間銜接的約定,是不同軟件之間數(shù)據(jù)交流共享的關(guān)鍵[1],在整個(gè)系統(tǒng)中占據(jù)著至關(guān)重要的位置。一個(gè)高質(zhì)量的接口軟件,不僅僅要滿足不同結(jié)構(gòu)的數(shù)據(jù)之間的交流共享,更要注重用戶的體驗(yàn)流暢度與滿意度。因此,接口軟件應(yīng)具備可靠性高、靈活性高、安全性高、耦合性低等諸多特性,以實(shí)現(xiàn)軟件綜合應(yīng)用的目標(biāo)。一個(gè)高質(zhì)量的接口軟件離不開科學(xué)的設(shè)計(jì)方案和復(fù)雜詳細(xì)的實(shí)現(xiàn)方法。2應(yīng)用程序接口設(shè)計(jì)原則接口成為了軟件市場(chǎng)不可或缺的重要組成部分,接口軟件質(zhì)量的好壞直接影響到其他軟件的運(yùn)行成效。因此,為保障開發(fā)出高質(zhì)量的接口軟件,接口要遵循一定的設(shè)計(jì)原則,包括面向?qū)ο笤瓌t、可擴(kuò)展性原則、高健壯性和高容錯(cuò)性原則、滿足不同用戶的需求原則、遵守行業(yè)規(guī)范原則[1]等。2.1面向?qū)ο笤瓌t應(yīng)用程序接口設(shè)計(jì)首先要保證科學(xué)、有章可循。接口作為軟件間通信的橋梁,面向?qū)ο蟮脑O(shè)計(jì)原則,使得接口設(shè)計(jì)功能明確、思路清晰、針對(duì)性強(qiáng),極大地提高了開發(fā)效率,并且,復(fù)雜詳細(xì)的接口程序能夠降低軟件間的耦合性。2.2可擴(kuò)展性原則接口的服務(wù)對(duì)象是實(shí)際使用中的軟件,要滿足軟件的實(shí)際需要。用戶在使用軟件的過(guò)程中,會(huì)不斷提出新的需求,軟件系統(tǒng)會(huì)根據(jù)用戶的需求進(jìn)行升級(jí),故而,接口也應(yīng)該進(jìn)行相應(yīng)的升級(jí)才可滿足軟件的要求。由于接口是雙方通信的橋梁,接口的升級(jí)直接影響到雙方系統(tǒng)的正常運(yùn)行,升級(jí)過(guò)程中會(huì)遇到一些不可預(yù)知的風(fēng)險(xiǎn)??蓴U(kuò)展性原則,能夠很好地解決這類問(wèn)題,該原則使得接口在設(shè)計(jì)過(guò)程中就考慮到將來(lái)可能出現(xiàn)的升級(jí)情況,具備一定的擴(kuò)展性,完成接口一定時(shí)期的自主升級(jí),降低了使用過(guò)程中升級(jí)的風(fēng)險(xiǎn),減少開發(fā)成本。2.3高健壯性和高容錯(cuò)性原則接口軟件應(yīng)用在生產(chǎn)生活中的各個(gè)領(lǐng)域,實(shí)際的生產(chǎn)生活環(huán)境復(fù)雜多變,接口運(yùn)行環(huán)境不單一。高健壯性原則,使得接口軟件能夠適應(yīng)復(fù)雜多變的環(huán)境,當(dāng)實(shí)際環(huán)境發(fā)生突變時(shí),接口軟件能夠迅速做出反應(yīng),不影響正常的系統(tǒng)運(yùn)行。例如,接口運(yùn)行環(huán)境出現(xiàn)突發(fā)的卡死、斷電、斷網(wǎng)等情況,當(dāng)環(huán)境恢復(fù)后,接口軟件能夠自我恢復(fù)運(yùn)行,保證系統(tǒng)的正常運(yùn)作。除此之外,應(yīng)用程序接口主要是對(duì)數(shù)據(jù)的接收與處理,海量的數(shù)據(jù)不能保證只有正確的、真實(shí)的數(shù)據(jù),可能會(huì)摻雜錯(cuò)誤的數(shù)據(jù),這時(shí),接口軟件應(yīng)該具備處理這些錯(cuò)誤數(shù)據(jù)的能力,即高容錯(cuò)性。所以,高健壯性和高容錯(cuò)性原則是接口設(shè)計(jì)中最為重要的原則,它不僅使得接口軟件在高效處理正確、真實(shí)數(shù)據(jù)的同時(shí),也能準(zhǔn)確判別出錯(cuò)誤數(shù)據(jù)并做出相應(yīng)處理,更使得接口軟件具備一定抵抗未知風(fēng)險(xiǎn)的能力。2.4滿足不同用戶的需求原則接口軟件作為服務(wù)提供方,其存在的價(jià)值就是滿足用戶的需求,為用戶提供其所需要的信息交互服務(wù)。因此,滿足不同用戶的需求原則,要求接口軟件在設(shè)計(jì)過(guò)程中從實(shí)際出發(fā),根據(jù)不同的用戶,設(shè)計(jì)出相應(yīng)的接口程序。例如,對(duì)于機(jī)場(chǎng)安檢系統(tǒng)而言,需要設(shè)計(jì)出與離港系統(tǒng)、信息管理系統(tǒng)、行李處理系統(tǒng)等多個(gè)外部系統(tǒng)用戶接口,完成旅客信息、行李信息、行李安檢信息[2]等數(shù)據(jù)的交互,以此來(lái)滿足機(jī)場(chǎng)用戶的需求。2.5遵守行業(yè)規(guī)范原則軟件開發(fā)商一般都會(huì)基于自身的情況選用編程語(yǔ)言、開發(fā)平臺(tái)等進(jìn)行開發(fā),進(jìn)而規(guī)定自己的接口標(biāo)準(zhǔn),從而導(dǎo)致不同的廠商使用不同的接口標(biāo)準(zhǔn),使得軟件之間數(shù)據(jù)交流共享更加困難,增加開發(fā)成本,降低用戶體驗(yàn)流暢度和滿意度。因此,應(yīng)用程序接口開發(fā)必須考慮標(biāo)準(zhǔn)因素,基于自身實(shí)際情況,按照國(guó)家提出的統(tǒng)一接口標(biāo)準(zhǔn)進(jìn)行開發(fā)[3],既可以凈化市場(chǎng)上雜亂無(wú)章的接口標(biāo)準(zhǔn),又可以提高開發(fā)效率,降低開發(fā)成本,增強(qiáng)用戶體驗(yàn)流暢度和滿意度。3應(yīng)用程序接口實(shí)現(xiàn)方式應(yīng)用程序接口實(shí)現(xiàn)方式多種多樣,每一種都有其優(yōu)點(diǎn)及缺點(diǎn)。本節(jié)介紹幾種常見(jiàn)的接口方式,并對(duì)其各自的優(yōu)劣勢(shì)進(jìn)行分析。3.1Socket方式Socket是最為常見(jiàn)的接口實(shí)現(xiàn)方式之一,實(shí)現(xiàn)快速的端到端通信。通信雙方分別為客戶端與服務(wù)端,建立連接后進(jìn)行端到端的通信,實(shí)現(xiàn)數(shù)據(jù)的交互共享。Socket通信又包括基于TCP協(xié)議和UDP協(xié)議兩種模式?;赥CP協(xié)議是面向連接的Socket方式,雙方確認(rèn)建立連接后再進(jìn)行通信,數(shù)據(jù)傳輸安全可靠;基于UDP協(xié)議是無(wú)連接的Socket方式,雙方無(wú)需確認(rèn)連接狀態(tài),盡最大努力傳輸數(shù)據(jù),傳輸速率快。Socket方式模型如圖4.1所示。3.2API方式使用API來(lái)實(shí)現(xiàn)軟件數(shù)據(jù)的共享是目前在軟件領(lǐng)域較為常見(jiàn)的接口實(shí)現(xiàn)方式。API使用簡(jiǎn)單、便利,但由于API是實(shí)現(xiàn)固定數(shù)據(jù)操作的功能,且調(diào)用者不可更改其操作功能,故而限制了其靈活性。軟件市場(chǎng)上使用最廣泛地API包括傳統(tǒng)API、WebService和RESTful。API方式模型如圖4.2所示。傳統(tǒng)API模式,開發(fā)商預(yù)先對(duì)數(shù)據(jù)所需操作進(jìn)行函數(shù)封裝,且不向他人透漏具體操作過(guò)程。使用者引用開發(fā)商提供的DLL,調(diào)用相關(guān)方法即可。WebService模式,WebService是一個(gè)可以通過(guò)Web調(diào)用的API,是一個(gè)面向服務(wù)編程的架構(gòu),它對(duì)編程語(yǔ)言、開發(fā)平臺(tái)沒(méi)有任何限制,可以實(shí)現(xiàn)不同編程語(yǔ)言之間通過(guò)Internet進(jìn)行基于http協(xié)議的網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)交互,故而,交互雙方無(wú)需借助任何第三方工具,使得數(shù)據(jù)共享更加便利、高效。RESTful模式,REST是一種架構(gòu)風(fēng)格,相對(duì)于WebService的面向服務(wù),REST的核心是面向資源。REST模式有三條設(shè)計(jì)準(zhǔn)則:(1)網(wǎng)絡(luò)上所有事務(wù)都可以抽象為資源;(2)每一個(gè)資源都有唯一的資源標(biāo)識(shí),對(duì)資源的操作不會(huì)改變這些標(biāo)識(shí);(3)所有的操作都是無(wú)狀態(tài)的[4]。由此可見(jiàn),REST可以實(shí)現(xiàn)簡(jiǎn)化開發(fā)。對(duì)資源的操作只需要進(jìn)行簡(jiǎn)單的創(chuàng)建、獲取、更新和刪除即可,無(wú)需進(jìn)行任何的事務(wù)處理。操作的無(wú)狀態(tài)說(shuō)明REST不需要考慮上下文的約束,提高了系統(tǒng)的伸縮性。3.3文件交互方式文件交互方式,是軟件開發(fā)雙方協(xié)定好數(shù)據(jù)文件格式,利用固定的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)文件[5],達(dá)到數(shù)據(jù)共享的目的,數(shù)據(jù)的結(jié)構(gòu)可以是多種多樣的。如常見(jiàn)的JSON格式、XML格式、TXT格式等等。數(shù)據(jù)的共享方式也不是唯一的,日前,軟件市場(chǎng)應(yīng)用最多的方式包括共享文件夾方式、FTP方式、SFTP方式等。文件交互方式模型如圖4.3所示。共享文件夾方式,雙方協(xié)定,將某一個(gè)特定的文件夾設(shè)置為共享文件夾,雙方都可訪問(wèn)該文件夾,即可以對(duì)該文件夾進(jìn)行新建、刪除、修改等一系列操作,然后將需要交互的協(xié)定好數(shù)據(jù)格式的數(shù)據(jù)文件放置該文件夾中,雙方從中獲取想要的特定文件即可,以達(dá)到數(shù)據(jù)共享的目的。FTP(FileTransferProtocol)方式,雙方協(xié)定,由某一方提供FTP服務(wù),另一方通過(guò)使用該FTP服務(wù),訪問(wèn)提供FTP服務(wù)的文件夾,同樣可以對(duì)該文件夾進(jìn)行創(chuàng)建、刪除、修改等一系列操作,以達(dá)到數(shù)據(jù)的交互共享的目的。SFTP(SecretFileTransferProtocol)方式是安全的FTP方式,在FTP的基礎(chǔ)上對(duì)數(shù)據(jù)的傳輸進(jìn)行加密,使得雙方在向指定文件夾傳輸數(shù)據(jù)時(shí)更加安全。但是,由于SFTP采用了加密/解密的技術(shù),故而,相對(duì)FTP的傳輸效率要有所降低。軟件廠商多種多樣,要求也不盡相同,SFTP不一定適合所有廠商的要求,因此,也可以在使用FTP方式的同時(shí),運(yùn)用第三方軟件來(lái)輔助提高數(shù)據(jù)傳輸?shù)陌踩?。文件交互模式使得軟件開發(fā)雙方無(wú)需考慮編程語(yǔ)言的種類、運(yùn)行平臺(tái)的限制等因素,能夠設(shè)計(jì)開發(fā)出更高質(zhì)量的軟件。3.4中間件方式中間件方式,需要采用第三方軟件作為中間件來(lái)完成雙方的數(shù)據(jù)交互共享,以到達(dá)松耦合的目的。但是,由于依賴于第三方軟件,所以,在使用過(guò)程會(huì)遇到一些不可控因素導(dǎo)致的故障等,不便于開發(fā)人員維護(hù)。中間件方式模型如圖4.4所示。中間數(shù)據(jù)庫(kù)模式是一種重要的中間件模式。軟件開發(fā)商協(xié)定,由任意一方提供可以訪問(wèn)的公用的數(shù)據(jù)庫(kù),雙方商議可以訪問(wèn)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)規(guī)則權(quán)限等。這種模式下,雙方都直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,開發(fā)比較靈活簡(jiǎn)單,有利于開發(fā)過(guò)程中對(duì)數(shù)據(jù)的操作。中間數(shù)據(jù)庫(kù)就類似數(shù)據(jù)的中轉(zhuǎn)站,雙方通過(guò)它實(shí)現(xiàn)了數(shù)據(jù)的共享。但是,該模式具有局限性,只能對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,若雙方需要交互共享數(shù)據(jù)庫(kù)以外的數(shù)據(jù),就比較困難[6]。故而,中間數(shù)據(jù)庫(kù)模式不被廣泛應(yīng)用在軟件開發(fā)中。消息隊(duì)列模式也是一種常見(jiàn)的中間件模式,該模式能夠很好地解決耦合性問(wèn)題。一方作為生產(chǎn)方,只需按照規(guī)則將需要交互的數(shù)據(jù)放置消息隊(duì)列中即可,另一方作為消費(fèi)方,按照規(guī)則前往消息隊(duì)列中獲取自己想要的數(shù)據(jù)即可,以達(dá)到雙方數(shù)據(jù)共享的目的。期間,雙方?jīng)]有直接接觸,對(duì)編程語(yǔ)言、運(yùn)行平臺(tái)沒(méi)有任何限制,使得開發(fā)更加靈活便利。但是,也可能會(huì)因?yàn)橄㈥?duì)列自身的因素,導(dǎo)致雙方無(wú)法正常的進(jìn)行數(shù)據(jù)交互,給開發(fā)人員帶來(lái)不可預(yù)知的困難。目前應(yīng)用最為廣泛的消息隊(duì)列為IBMMQ,也有一些開源的消息隊(duì)列,如RocketMQ、RabbitMQ、Kafka等,可供用戶選擇。4總結(jié)本文較為詳細(xì)介紹了應(yīng)用程序接口的含義、設(shè)計(jì)原則及實(shí)現(xiàn)方式。應(yīng)用程序接口是不同數(shù)據(jù)結(jié)構(gòu)軟件間溝通的橋梁,能夠高效的將軟件結(jié)合起來(lái),促進(jìn)軟件系統(tǒng)的大規(guī)模使用。讀者可參照本文介紹的接口設(shè)計(jì)原則及實(shí)現(xiàn)方式,依據(jù)各自行業(yè)軟件的實(shí)際應(yīng)用場(chǎng)景、針對(duì)實(shí)際操作需求、數(shù)據(jù)特點(diǎn)等編制科學(xué)的接口[1]設(shè)計(jì)方案,選取合理的實(shí)現(xiàn)方式,提高接口的可靠性、靈活性、安全性等特性,提高行業(yè)市場(chǎng)競(jìng)爭(zhēng)力。應(yīng)用程序接口的應(yīng)用對(duì)軟件行業(yè)發(fā)展具有深遠(yuǎn)意義。Reference[1]馮艷麗.論計(jì)算機(jī)軟件的數(shù)據(jù)接口[J].黑龍江科技信息,2013(21):140-140.[2]羅桂林,李偉,張勇.基于MEF的機(jī)場(chǎng)安檢系統(tǒng)外部接口平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2017(10):

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論