国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2020-06-22 13:23任亞飛羅桂林張勇
關(guān)鍵詞:接口軟件

任亞飛 羅桂林 張勇

摘要:在實(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ù)。

關(guān)鍵詞:軟件;接口;數(shù)據(jù)交流共享

中圖分類號(hào):TP311.11? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1007-9416(2020)04-0000-00

0 引言

現(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.1 Socket方式

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.2 API方式

使用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、Web Service和RESTful。API方式模型如圖4.2所示。

傳統(tǒng)API模式,開發(fā)商預(yù)先對(duì)數(shù)據(jù)所需操作進(jìn)行函數(shù)封裝,且不向他人透漏具體操作過(guò)程。使用者引用開發(fā)商提供的DLL,調(diào)用相關(guān)方法即可。

Web Service模式,Web Service是一個(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ì)于Web Service的面向服務(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(File Transfer Protocol)方式,雙方協(xié)定,由某一方提供FTP服務(wù),另一方通過(guò)使用該FTP服務(wù),訪問(wèn)提供FTP服務(wù)的文件夾,同樣可以對(duì)該文件夾進(jìn)行創(chuàng)建、刪除、修改等一系列操作,以達(dá)到數(shù)據(jù)的交互共享的目的。

SFTP(Secret File Transfer Protocol)方式是安全的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ù)陌踩浴?/p>

文件交互模式使得軟件開發(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ì)列為IBM MQ,也有一些開源的消息隊(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)意義。

參考文獻(xiàn)

[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):138-140+142.

[3]楊霞.基于計(jì)算機(jī)軟件數(shù)據(jù)接口的幾種實(shí)現(xiàn)思路和應(yīng)用分析[J].數(shù)字技術(shù)與應(yīng)用,2015(10):68-69.

[4]張志,胡志勇.RESTful架構(gòu)在Web Service中的應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2018,37(10):33-37.

[5]李玉榮.計(jì)算機(jī)軟件數(shù)據(jù)接口的應(yīng)用策略研究[J].科技展望,2015(19):9-9.

[6]王俊海.計(jì)算機(jī)軟件數(shù)據(jù)接口的應(yīng)用研究[J].通訊世界,2018(7):24-25.

收稿日期:2020-03-17

作者簡(jiǎn)介:任亞飛(1991—),男,北京人,碩士,助理工程師,研究方向:安全檢查系統(tǒng)設(shè)計(jì)。

Introduction of Application Programming Interface

REN Ya-fei, LUO Gui-lin, ZHANG Yong

(The First Research Institute of the Ministry of Public Security, Beijing? 102200)

Abstract: In actual production and real life, users use two or more software to work together to meet business needs, data structures and data interaction methods are different between software. The application program interface is a bridge for data exchange and sharing between different software. At present, the application program interface technology is becoming more and more mature, and a comprehensive and systematic summary of the interface technology is urgently needed. Therefore, this paper mainly summarizes the application program interface from the three aspects of definition, design principles, and implementation methods, which helps beginners quickly understand the application program interface technology.

Key words: software;interface;data exchange and sharing

猜你喜歡
接口軟件
禪宗軟件
軟件對(duì)對(duì)碰
巧用立創(chuàng)EDA軟件和Altium Designer軟件設(shè)計(jì)電路
某電站工程設(shè)計(jì)管理與施工、質(zhì)量控制接口關(guān)系研究
談軟件的破解與保護(hù)