Ohjelmointirajapinta

Wikipediasta
(Ohjattu sivulta Rajapinta)
Siirry navigaatioon Siirry hakuun

Ohjelmointirajapinta (engl. Application programming interface, API) on määritelmä, jonka mukaan eri ohjelmat voivat tehdä pyyntöjä ja vaihtaa tietoja eli keskustella keskenään. Esimerkki rajapinnasta on käyttöjärjestelmän rajapinta, jolla ohjelmat voivat käyttää keskusmuistia sekä tiedostoja.

Kuvaus[muokkaa | muokkaa wikitekstiä]

Yksi ohjelmointirajapinnan päätarkoituksista on tarjota käyttömahdollisuus yleisimmille toiminnoille. Käyttöliittymä voi esimerkiksi tarjota ohjelmointirajapinnan ikkunoiden tai kuvakkeiden piirtoon, ja tietokanta taas rajapinnan kyselyiden läpiviemiseksi. Ohjelmointirajapinta liitetään hyvin usein osaksi SDK:ta (Software development kit).

Hyvä ohjelmointirajapinta sisältää kapseloinnin, jonka avulla ohjelmoijan ei tarvitse tietää rajapinnan alaisista menetelmistä. Tämän avulla rajapinta voidaan pitää "alaspäin yhteensopivana", eli ohjelmointirajapinnan toimintaa voidaan tehostaa ilman, että ohjelma, joka käyttää rajapintaa, häiriintyisi siitä.

Ohjelmointirajapintojen julkaisukäytännöistä erottuu kolme erilaista tapaa:

  1. Ohjelmointirajapintaa ei julkaista (yksityinen)
  2. Rajapinta julkaistaan tietyin rajoituksin (yhteistyökumppanit)
  3. Täysin tai lähestulkoon avoin ohjelmointirajapinnan julkaisu (julkinen)

POSIX on esimerkki standardoidusta rajapinnasta, jonka kuvaus on avoimesti saatavilla ja useiden valmistajien tukema. Useiden pelikonsolien ohjelmointirajapinnat ovat saatavilla vain lisensoiduille tahoille. Suljettuja rajapintoja on käytössä kaupallisissa ohjelmistoissa, joissa ne ovat vain kehittäjätahon tiedossa.

Käytännössä järjestelmä voi sisältää kaikkia kolmea, esimerkiksi kaupallisessa käyttöjärjestelmässä on vain kehittäjien tiedossa olevia rajapintoja, yhteistyökumppaneille avattuja rajapintoja sekä julkisia rajapintoja sovelluskehittäjille.

Kiistat[muokkaa | muokkaa wikitekstiä]

Rajapinnat ovat keskeisessä osassa kiistaa Oraclen ja Googlen välillä jälkimmäisen Java-toteutukseen liittyen.[1] Yhdysvaltain korkeimman oikeuden päätöksessä rajapintojen käyttö ei rikkonut tekijänoikeuslakia.[2] Päätöksessä todettiin, että jos Oracle saisi rajoittaa rajapintojensa käyttöä se olisi haitallista ja rajoittaisi uusien ohjelmistojen kehittämistä.[2] Vuonna 2021 ratkaistu kiista on ollut käynnissä vuodesta 2010 lähtien.[2]

Katso myös[muokkaa | muokkaa wikitekstiä]

  • ABI (Application binary interface)

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. The Supreme Court hears Oracle v. Google tomorrow—here’s what’s at stake arstechnica.com. 7.10.2020. Viitattu 7.10.2020. (englanniksi)
  2. a b c Andrew Chung: U.S. Supreme Court sides with Google in major copyright dispute with Oracle reuters.com. 5.4.2021. Viitattu 5.4.2021. (englanniksi) 

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]