한국   대만   중국   일본 
Rakendusliides ? Vikipeedia Mine sisu juurde

Rakendusliides

Allikas: Vikipeedia

Rakendusliides ehk programmiliides ehk rakendustarkvara liides ehk API ( inglise keeles application programming interface ) on arvutiprogrammides alamprogrammi maaratluste, protokollide ja tooriistade komplekt rakendustarkvara ehitamiseks. Uldiselt on tegemist eri tarkvarakomponentide vahelise selgelt maaratletud sidevahendite kogumiga. Rakendusliidese ulesanne on lihtsustada tarkvara arendamist, andes ette programmiplokid, mida programmeerijad kasutavad lopliku arvutiprogrammi koostamisel. Rakendusliides voib olla veebipohine susteem, operatsioonisusteem , andmebaasi susteem, arvuti riistvara voi tarkvara kogum. Rakendusliidese spetsifikatsiooni voib esitleda mitmesugusel kujul, kuid tihti sisaldab see rutiinide, andmestruktuuride , objektiklasside , muutujate voi protseduuri kutsumise kirjeldusi. Naiteid rakendusliidestest: POSIX , Microsoft Windows API , C++ Standard Template Library ja Java API'id. Tavaparaselt kaib rakendusliidestega kaasa dokumentatsioon, et holbustada nende kasutamist.

Otstarve [ muuda | muuda lahteteksti ]

Samamoodi, nagu lihtsustab graafiline kasutajaliides arvutiprogrammide kasutamist, lihtsustab rakendusliides programmeerijatel programmide kirjutamist. Rakendusliides lihtsustab programmeerimist , eemaldades alusimplementatsiooni ja jattes alles ainult objektid ja toimingud, mida programmeerijal vaja laheb. Kui graafiline kasutajaliides loob kasutajale naiteks nupu, mida vajutades sorteeritakse e-kirjad vanuse jargi, siis rakendusliides pakub programmeerijale funktsiooni , mis sorteerib failid teatud omaduse jargi, ilma et ta peaks teadma ja aru saama sellest, kuidas failisusteem need failid ara sorteerib. [1]

Kasutusalad [ muuda | muuda lahteteksti ]

Teegid ja tarkvararaamistikud [ muuda | muuda lahteteksti ]

Rakendusliides on tavaliselt seotud tarkvara teekidega . Rakendusliides kirjeldab ja maarab reeglikogumi eeldatava kaitumise, kuid teek on reeglikogumi implementatsioon. Uhel rakendusliidesel saab olla mitu (voi mitte uhtegi) implementatsiooni eri teekide naol, mis kasutavad sama rakendusliidest. Rakendusliidese eraldamine tema implementatsioonidest voimaldab uhes keeles kirjutatud programmidel kasutada teises keeles kirjutatud teeke. Naiteks, kuna Scala ja Java kompileeruvad uhilduvaks baitkoodiks , siis Scala programmeerijad saavad kasutada ukskoik millist Java API'i. [2]

Rakendusliidese kasutus varieerub programmeerimiskeelte vahel. Rakendusliides protseduurilise programmeerimiskeele jaoks nagu Lua koosneb pohiliselt algrutiinidest, et kaivitada kood, muuta andmeid voi kasitleda vigu. Kuid rakendusliides objektorienteeritud programmeerimiskeele jaoks nagu Java, rakendab klasside kirjeldused ja nende meetodid. [3] [4]

Programmeerimiskeelte vahelised seosed on samuti rakendusliidesed. Sidudes uhe programmeerimiskeele funktsioonid ja voimalused teises keeles koostatud teegiga, voimaldavad programmeerimiskeelte vahelised seosed kasutada uhes keeles kirjutatud teeki voi teenust, teises programmeerimiskeeles programmeerides. Liidesegeneraatorid nagu SWIG ja F2PY holbustavad selliste teekide loomist. [5]

Rakendusliides voib olla ka seotud tarkvararaamistikuga ? tarkvararaamistik voib koosneda mitmest teegist, mis implementeerivad mitut rakendusliidest, kuid erinevalt rakendusliidese tavaparasest kasutusest on tarkvararaamistiku funktsionaalsed voimalused laiendatud tarkvararaamistikku endasse, uute klasside lisamisega. Lisaks voib uldine programmipohine juhtimisvoog olla valjaspool kutsuja kontrolli ja olla hoopis tarkvararaamistiku juhtimise all. Kokkuvotvalt koosneb tarkvararaamistik mitmest eri teegist ja nende teekide kasutus on tarkvararaamistikku endasse sisse ehitatud. Samuti kontrollib tarkvararaamistik ise, kuidas ta neid teeke kasutab. [6] [7]

Operatsioonisusteemid [ muuda | muuda lahteteksti ]

Rakendusliides saab maarata rakenduse ja operatsioonisusteemi vahelise liidese . POSIX naiteks maarab levinud rakendusliideste kogu, mille komponendid voimaldavad rakendusel, kirjutatud uhe POSIX vastava operatsioonisusteemi jaoks, kompileeruda teisel POSIX vastaval operatsioonisusteemil. [8]

Microsoft peab tahtsaks tagurpidi uhilduvate rakendusliideste loomist, et vanemaid rakendusi saaks kaivitada uuemal Windowsi versioonil. Naiteks Microsofti Windows API (Win32) teek. [9]

Rakendusliides erineb rakenduse binaarliidesest selle poolest, et rakendusliides on algkoodil baseeruv, kuid binaarliides on kahendfailil baseeruv. Naiteks POSIX pakub rakendusliideseid, kuid Linux Standard Base pakub binaarliideseid. [10]

Kauguhenduse rakendusliidesed [ muuda | muuda lahteteksti ]

Kauguhenduse rakendusliidesed voimaldavad tarkvaraarendajatel muuta ressursse protokollide kaudu. Naiteks Java Database Connectivity rakendusliides lubab arendajatel saata eri andmebaasidesse paringuid. Java Remote Method Invocation rakendusliides kasutab Java Remote Method protokolli , et lubada paringute kaugsaatmine. See teeb andmebaaside halduse palju kergemaks. [11] Kauguhenduse rakendusliidesed on kasulikud objektorienteeritud programmeerimises objektidega tootamisel. [12]

Veebipohised rakendusliidesed [ muuda | muuda lahteteksti ]

Veebipohised rakendusliidesed on liidesed, mille kaudu kaib suhtlus ettevotte ja selle ressursse kasutava rakenduse vahel. Rakendusliides pakub programmeeritavaid teeke rakenduste hulgale, mis teenindavad eri kasutajaid. Veeblehekulgede arendamisel on veebipohised rakendusliidesed defineeritud Huperteksti edastusprotokolli (HTTP) paringute ja vastavate vastustega, mis on tavaliselt XML voi JSON formaadis. Naiteks on veebipoe lehekuljele lisatud rakendusliides, mis koostab statistikat ostetud kauba kattesaamisaegade kohta, ilma et poe andmebaasi oleks vaja koostada vastav tabel andmetega.

Kuigi veebipohilised rakendusliidesed on olnud sunonuumiks veebiteenuste jaoks, on viimane trend (nii-oelda Veebis 2.0 ) liikunud eemale SOA protokollide ja teenusele orienteeritud arhitektuurist (SOA). Pigem kasutatakse rohkem REST -stiilis veebiressursse ja ressursile orienteeritud arhitektuuri (ROA). Suur roll selles on ressursi kirjelduse tarkvararaamistikul (RDF). Veebipohised rakendusliidesed lubavad eri liideste kombineerimist. Sotsiaalmeedia veebilehekulgede rakendusliidesed lubavad andmevahetust eri rakenduste vahel. Sellisel juhul ilmuvad postitatud andmed uhes kohas automaatselt ka teises kohas. See lubab ka automaatset andmete uuendamist ule mitme rakenduse. Naiteks kui lisada uus pilt Instagrami , siis teine veebileht, mis kasutab Instagrami andmeid, saab otsese ligipaasu lisatud pildile. Voi kui uhendada moni teine rakendus voi veebiteenus oma Google 'i kasutajaga, siis Google'i kasutaja andmete muutmisel muutuvad ka andmed koikides teistes rakendustes ja veebiteenustes , mis olid Google'i kasutajaga seotud. [13]

Naiteid rakendusliidestest [ muuda | muuda lahteteksti ]

Vaata ka [ muuda | muuda lahteteksti ]

Viited [ muuda | muuda lahteteksti ]

  1. Steven Clarke (01.05.2004). "Measuring API Usability" . Vaadatud 30.11.2017 .
  2. Martin Odersky, Lex Spoon, Bill Venners (10.12.2008). "Combining Scala and Java" . Vaadatud 30.11.2017 . {{ netiviide }} : CS1 hooldus: mitu nime: autorite loend ( link )
  3. Luiz Henrique De Figueiredo, Roberto Lerusalimschy, Waldemar Celes (november 1994). "The Design and Implementation of a Language for Extending Applications" . Vaadatud 30.11.2017 . {{ netiviide }} : CS1 hooldus: mitu nime: autorite loend ( link )
  4. Tony Sintes (13.7.2001). "Just what is the Java API anyway?" . Vaadatud 30.11.2017 .
  5. "F2PY.org" . Vaadatud 30.11.2017 .
  6. Mohamed Fayad, Douglas C. Schmidt (oktoober 1997). "Object-Oriented Application Frameworks" . Vaadatud 30.11.2017 .
  7. Martin Fowler (26.6.2005). "Inversion of Control" . Vaadatud 30.11.2017 .
  8. Joel West, Jason Dedrick (2001). "Open source standardization: the rise of Linux in the network era" (PDF) . Vaadatud 30.11.2017 .
  9. "Run Older Programs on Windows XP" . 15.10.2001. Originaali arhiivikoopia seisuga 26. september 2009 . Vaadatud 30.11.2017 .
  10. "LSB Introdcution" . Vaadatud 30.11.2017 .
  11. M. Jeff Wilson (10.11.2000). "Get smart with proxies and RMI" . Originaali arhiivikoopia seisuga 13.12.2017 . Vaadatud 30.11.2017 .
  12. Kevin Bierhoff (23.4.2009). "API Protocol Compliance in Object-Oriented Software" (PDF) . Vaadatud 30.11.2017 .
  13. Ben Parr (21.5.2009). "The Evolution of the Social Media API" . Vaadatud 30.11.2017 .