Programmierschnittstelle

Standardisierte Programmier­schnittstellen (APIs) über unterschiedliche Betriebssysteme sorgen für Quelltextkompatibilität, d. h. Quelltext kann ohne Anpassungen für die jeweiligen Systeme erfolgreich kompiliert werden.

Eine Programmierschnittstelle (auch Anwendungsschnittstelle, genauer Schnittstelle zur Programmierung von Anwendungen), häufig nur kurz API genannt (von englisch application programming interface, wörtlich ‚Anwendungs­programmier­schnittstelle‘), ist ein Programmteil, der von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird. Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine Programmierschnittstelle nur die Programmanbindung auf Quelltext-Ebene. Die Bereitstellung einer solchen Schnittstelle beinhaltet in der Regel eine detaillierte Dokumentation der Schnittstellenfunktionen mit ihren Parametern auf Papier oder als elektronisches Dokument.

Neben dem Zugriff auf Datenbanken oder Hardware wie Festplatte oder Grafikkarte kann eine Programmierschnittstelle auch die Erstellung von Komponenten der grafischen Benutzeroberfläche ermöglichen oder vereinfachen. Beispielsweise ermöglicht die Programmierschnittstelle Windows Application Programming Interface des Betriebssystems Windows externen Firmen die Entwicklung von Software für dieses Betriebssystem.

Heutzutage stellen auch viele Online-Dienste Programmierschnittstellen zur Verfügung; diese heißen dann Webservice. Im weiteren Sinne wird die Schnittstelle jeder Bibliothek (englisch library) als Programmierschnittstelle bezeichnet. Zu unterscheiden ist diese Art funktionaler Programmierschnittstellen von den vielen anderen Schnittstellen, die in der Programmierung angewendet werden – zum Beispiel die Parameter, die beim Aufruf von Unterprogrammen vereinbart und übergeben werden.

Einteilung nach Typklassen

Programmierschnittstellen lassen sich in folgende Typklassen einteilen:

Funktionsorientierte Programmierschnittstellen

Funktionsorientierte Programmierschnittstellen kennen nur Funktionen mit oder ohne Rückgabewert als Mittel der Kommunikation. Dabei wird fast immer das Konzept der Handles verwendet. Man ruft eine Funktion auf und bekommt ein Handle zurück. Mit diesem Handle lassen sich weitere Funktionen aufrufen, bis abschließend das Handle wieder geschlossen werden muss.

Dateiorientierte Programmierschnittstellen

Dateiorientierte Programmierschnittstellen werden über die normalen Dateisystemaufrufe open, read, write und close angesprochen. Sollen Daten an ein Objekt gesendet werden, werden diese mit write geschrieben, sollen welche empfangen werden, werden sie mit read gelesen. Unter UNIX ist dieses Prinzip bei der Ansteuerung von Gerätetreibern weit verbreitet.

Objektorientierte Programmierschnittstellen

Objektorientierte Programmierschnittstellen verwenden Schnittstellenzeiger und sind damit deutlich flexibler als die funktionsorientierten Programmierschnittstellen. Häufig wird eine Typbibliothek mitgegeben.

Protokollorientierte Programmierschnittstellen

Protokollorientierte Programmierschnittstellen sind unabhängig vom Betriebssystem und der Hardware. Allerdings muss das Protokoll stets neu implementiert werden. Um diesen Aufwand zu minimieren, wird die protokollorientierte Schnittstelle durch eine funktions- oder interfaceorientierte Schnittstelle gekapselt. Man kann hier weiterhin zwischen allgemeinen (z. B. SOAP) und anwendungsspezifischen (z. B. SMTP)-Protokollen unterscheiden.

Einteilung nach Entwicklungsstufen

Bei Programmierschnittstellen für Anwendungssoftware wird darüber hinaus auch nach Entwicklungsstufe unterschieden. Ausgangspunkt dieser Unterscheidung ist die Beobachtung, dass sich Operationen der Programmierschnittstelle oft erst im Laufe der Zeit herausentwickeln. Von großer Wichtigkeit ist dabei, ob in früheren Versionen der Programmierschnittstelle verfügbare Operationen auch in allen Folgeversionen noch vorhanden sind und auch dieselbe Bedeutung haben. Bei einer stabilen Schnittstelle braucht die Anwendung nicht mehr geändert zu werden. Unterschieden wird zwischen sich entwickelnden (engl. evolving) und stabilen Programmierschnittstellen (engl. stable API). Als Refactoring wird die Fortentwicklung einer Programmierschnittstelle bezeichnet, die keine Änderungen in den Anwenderprogrammen nach sich zieht.[1]

Bedeutung

Das Vorhandensein einer gut dokumentierten Programmierschnittstelle (API) kann ein erheblicher Wettbewerbsvorteil für ein Software- oder ein die Software enthaltendes Hardware-Produkt sein – da auf diese Weise andere Softwarefirmen oder freiberufliche Programmierer in die Lage versetzt werden, zusätzliche Software für dieses System zu erstellen. Mit dem Angebot zusätzlicher Programme von Drittanbietern steigt wiederum die Attraktivität des Ausgangssystems, etwa eines Computer-Betriebssystems, einer Spielkonsole oder einer Smartphone-Familie. Die Geschäftspolitik bezüglich dieser Schnittstelle kann damit über den kommerziellen Erfolg einer Software und gegebenenfalls auch der zugehörigen Hardware entscheiden. So verlangen manche Software-Anbieter erhebliche Geldbeträge für die zugehörige, notwendige Dokumentation, was eine Eintrittsbarriere für interessierte Programmierer darstellt. Auch kann vorgesehen sein, dass auf die API nur mit einem teuer zu erwerbenden Software-Entwicklungssystem zugegriffen werden kann.

Ein weiterer Erfolgsfaktor kann die bereits erwähnte Langzeitstabilität der API sein, denn bei häufigen Änderungen ist auch der Programmierer einer Zusatzanwendung gezwungen, seine Software jedes Mal anzupassen, damit sie weiterhin funktioniert. Dies kann erheblichen Aufwand und damit Kosten verursachen, was die Entwicklung kommerziell unattraktiv macht.

Beispiele

Die Entwicklungsumgebung Xcode, mit der auf die API des Smartphone-Betriebssystems Apple iOS zugegriffen werden kann, steht zwar als kostenloser Download bereit, aber nur für Mac-Computer von Apple. Zudem müssen Entwickler ein Geheimhaltungsabkommen unterzeichnen und einen Mitgliedsbeitrag entrichten, was als Hemmnis bewertet wird – zumal Apple auf dem Markt für Smartphones bzw. Mobile Apps durch den großen Erfolg des Android-Betriebssystems mit starker Konkurrenz konfrontiert ist.[2]

Für die Betriebssystem-Familie Unix existiert der von der IEEE festgelegte POSIX-Standard. Die Preise für die Dokumentation dieser API sind sehr hoch, und die Veröffentlichung ist durch Urheberrecht untersagt. In neuerer Zeit ist deshalb eine Tendenz zur Single UNIX Specification der Open Group zu verzeichnen. Diese Standards sind offen, im Internet frei verfügbar und alle können Vorschläge dazu einreichen.

Siehe auch

Literatur

Einzelnachweise

  1. Danny Dig, R. Johnson: How do APIs evolve? A story of refactoring. In Journal of Software Maintenance and Evolution. Research and Practice. Wiley, Chichester, New York 2006. S. 1–26.
  2. All Your Apps Are Belong to Apple: The iPhone Developer Program License Agreement. Electronic Frontier Foundation, 9. März 2010, abgerufen am 17. April 2010.

Read other articles:

Djatmikanto Danumartono Anggota Dewan Perwakilan RakyatMasa jabatan30 April 1992 – 1 Februari 1999PresidenSoehartoB.J. Habibie PendahuluD.P. SoenardiPenggantiPetahanaGrup parlemenF-ABRIWali Kota YogyakartaMasa jabatan13 Mei 1986 – 17 September 1991GubernurHamengkubuwono IXPaku Alam VIII PendahuluSoegiartoPenggantiR. Widagdo Informasi pribadiLahir5 Juni 1944 (umur 79)Semarang, Hindia Belanda JepangKarier militerPihak IndonesiaDinas/cabang TNI Angkatan DaratMasa…

ProDG (pronounced “prodigy”) by SN Systems is a suite of development tools produced for PlayStation 3, PlayStation 2, PSP, Nintendo DS, GameCube, and Game Boy Advance. The phrase PRO-DG was originally registered as a UK trademark,[1] but the hyphen was never used for a released version and the suite has subsequently been known as ProDG. The suite consisted of console hardware-specific assemblers, a C/C++ compiler, ELF/DLL linkers, and a source-level debugger. The build tools could be…

Hsaing Waing melatarbelakangi para penyanyi Artikel ini mengandung aksara Burma. Tanpa dukungan perenderan yang baik, Anda mungkin akan melihat tanda tanya, kotak, atau simbol lain, bukan aksara Burma. Hsaing waing (Burma: ဆိုင်းဝိုင်းcode: my is deprecated , diucapkan [sʰáiɴ wáiɴ]; juga dieja saing waing) merupakan sebuah musik ansambel tradisional sekaligus penanda identitas budaya Myanmar yang cukup menonjol.[1] Musik ansambel tradisional ini meng…

Julia GarnerGarner 2020Lahir1 Februari 1994 (umur 30)New York City, ASPekerjaanAktrisTahun aktif2010–sekarangSuami/istriMark Foster ​(m. 2019)​ Julia Garner (lahir 1 Februari 1994)[1] adalah seorang aktris Amerika Serikat. Garner tampil dalam film-film Martha Marcy May Marlene (2011), The Perks of Being a Wallflower (2012), Sin City: A Dame to Kill For (2014), Electrick Children (2012), We Are What We Are (2013), Grandma (2015), Tomato Red (2017),…

Danau Nahuel HuapiDanau Nahuel HuapiLetakDepartemen Los Lagos, Provinsi Neuquén / Departemen Bariloche, Provinsi Río Negro, Argentina, di PatagoniaKoordinat41°05′25″S 71°20′08″W / 41.09028°S 71.33556°W / -41.09028; -71.33556Koordinat: 41°05′25″S 71°20′08″W / 41.09028°S 71.33556°W / -41.09028; -71.33556Jenis perairanDanau glasialAliran masuk utamaHuemul riverCorrentoso riverBonito riverMachete riverAliran keluar utamaSungai…

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Afan Gaffar – berita · surat kabar · buku · cendekiawan · JSTOR Afan Gaffar (21 Juni 1947 – 8 Januari 2003) adalah professor Ilmu Sosial dan Ilmu Politik dan politikus Indonesia. Latar belak…

Process for design and development of learning resources Instructional design (ID), also known as instructional systems design and originally known as instructional systems development (ISD), is the practice of systematically designing, developing and delivering instructional materials and experiences, both digital and physical, in a consistent and reliable fashion toward an efficient, effective, appealing, engaging and inspiring acquisition of knowledge.[1][2] The process consis…

Artikel ini perlu diterjemahkan dari bahasa Inggris ke bahasa Indonesia. Artikel ini ditulis atau diterjemahkan secara buruk dari Wikipedia bahasa Inggris. Jika halaman ini ditujukan untuk komunitas bahasa Inggris, halaman itu harus dikontribusikan ke Wikipedia bahasa Inggris. Lihat daftar bahasa Wikipedia. Artikel yang tidak diterjemahkan dapat dihapus secara cepat sesuai kriteria A2. Jika Anda ingin memeriksa artikel ini, Anda boleh menggunakan mesin penerjemah. Namun ingat, mohon tidak menyal…

Protected wilderness area in California, United States Yolla Bolly–Middle Eel WildernessIUCN category Ib (wilderness area)Map of the United StatesLocationYolla Bolly Range of the Klamath Mountains andInner Northern California Coast Ranges, both of which are constituent regions of the greater Northern U.S. Coast Ranges;Tehama / Trinity / Mendocino Counties, California, United StatesNearest cityCovelo, CaliforniaCoordinates40°03′45″N 123°13′19″W / 40.06250°N 123.2…

Topik artikel ini mungkin tidak memenuhi kriteria kelayakan umum. Harap penuhi kelayakan artikel dengan: menyertakan sumber-sumber tepercaya yang independen terhadap subjek dan sebaiknya hindari sumber-sumber trivial. Jika tidak dipenuhi, artikel ini harus digabungkan, dialihkan ke cakupan yang lebih luas, atau dihapus oleh Pengurus.Cari sumber: NET. On Top – berita · surat kabar · buku · cendekiawan · JSTOR (Februari 2024) (Pelajari cara dan kapan saatny…

IBM PC graphic adapter and display standard This article is about computer architecture. For other uses, see CGA. Color Graphics AdapterIBM CGA graphics cardRelease date1981; 43 years ago (1981)ArchitectureMotorola 6845, ATI CW16800CardsEntry-levelIBM Color Graphics Adapter, ATi Graphics Solution Rev 3, ATi Color Emulation Card, Tseng Labs ColorPAK,Mid-rangeATi Graphics Solution plus, ATi Graphics Solution Plus SP, ATi Graphics Solution SR, Number Nine Graphics SystemHigh-endAT…

Heathcote Botanical Gardens Heathcote Botanical Gardens is a five-acre subtropical botanical garden located at 210 Savannah Road, Fort Pierce, Florida, United States. This magnificent formal upright Ficus greets visitors entering the main gate to the James J. Smith Bonsai Collection. It is more than four feet across. Heathcote is a non-profit, 501 (C)3 educational foundation that bills itself as the Green Heart of the Treasure Coast. It began in 1960 as the commercial nursery of landscape archit…

AcoustiquePartie de PhysiquePratiqué par Acousticien ou acousticienne (d)Objet Sonmodifier - modifier le code - modifier Wikidata L’acoustique est la science du son. La discipline a étendu son domaine à l'étude de toute onde mécanique dans tout fluide, où un ébranlement se propage presque exclusivement en onde longitudinale ; le calcul de ces ondes selon les caractéristiques du milieu s'applique aussi bien pour l'air aux fréquences audibles que pour tout milieu fluide homogène e…

Gedung Robert Hooke di Kampus Universitas Terbuka Inggris di Milton Keynes Universitas terbuka adalah universitas dengan kebijakan akademik pintu terbuka, dengan persyaratan masuk minimal atau tanpa persyaratan masuk.[1] Universitas terbuka mungkin menerapkan metode pengajaran tertentu, seperti pembelajaran terbuka atau pendidikan jarak jauh. Namun, tidak semua universitas terbuka berfokus pada pendidikan jarak jauh, dan universitas pendidikan jarak jauh juga tidak selalu memiliki kebija…

Warna merah bit berasal dari pigmen betalain. Betalain adalah pigmen tumbuhan yang memberi warna kuning, jingga, merah, dan ungu pada bagian daun dan buah.[1] Salah satu contohnya adalah betasianin yaitu pigmen merah bit yang termasuk kelompok pigmen betalain merah dan kuning yang sejak lama dianggap berkaitan dengan antosianin, walaupun betalain mengandung nitrogen tidak seperti antosianin.[1] Baik betasianin merah maupun pigmen betalain lainnya, yaitu betaxantin kuning, rumus b…

German composer, musician, and producer (born 1968) Marcus SchmicklerBackground informationBirth nameMarcus SchmicklerAlso known asPluramonBornNovember 15, 1968Cologne, GermanyOriginCologne, GermanyGenresContemporary classical music, Computer music, Postmodernism, New Complexity, New SimplicityOccupation(s)composer, producerLabelsA-Musik, Mille Plateaux, Editions MegoWebsitewww.piethopraxis.orgMusical artist Marcus Schmickler (born November 15, 1968, in Cologne) is a German composer, musician, a…

Rem parkir (atau dalam bahasa umum yakni Rem Tangan) adalah sebuah sistem pengereman pada Kendaraan bermotor, khususnya kendaraan roda empat maupun lebih. Rem Parkir umumnya berfungsi untuk menahan mobil bergerak dalam posisi kemiringan jalan yang miring, terutama dalam keadaan menanjak maupun menurun. Fungsi rem parkir ini dapat digunakan sebagai pengganti rem utama jika mobil dalam kondisi berhenti yang cukup lama, semisal dalam kondisi kemacetan atau saat parkir. Setiap mobil, truk, maupun bu…

2019 European Parliament election in Poland ← 2014 26 May 2019 (26 May 2019) 2024 → ← outgoing memberselected members →All 52 Polish seats to the European ParliamentTurnout45.68% 21.85   First party Second party Third party   Leader Jacek Saryusz-Wolski Włodzimierz Cimoszewicz Robert Biedroń Party PiS KE Spring Alliance ECR EPP/S&D/G-EFA/ALDE S&D Last election 38.92%, 19 seats[b] 48.69%, 28 seats[a] New par…

Artikel ini bukan mengenai Dave Harbour atau Dave Barbour. David HarbourHarbour di San Diego Comic-Con 2019LahirDavid Kenneth Harbour[1]10 April 1975 (umur 49)White Plains, New York, USATempat tinggalNew York, USAAlmamaterDartmouth CollegePekerjaanPemeranTahun aktif1999–sekarangTinggi190 cm (6 ft 3 in) David Kenneth Harbour (lahir 10 April 1975) adalah seorang pemeran Amerika Serikat. Ia memulai karier filmnya pada 2004, dan memainkan peran-peran pendukung dala…

Questa voce sull'argomento calciatori italiani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Gian Battista Magaraggia Gian Battista Magaraggia con la maglia del Monza (1967) Nazionalità  Italia Altezza 174 cm Peso 63 kg Calcio Ruolo Difensore Carriera Squadre di club1 1960-1966 Marzotto Valdagno139 (?)1966-1970 Monza104 (1) 1 I due numeri indicano le presenze e le reti segnate, per le sol…

Kembali kehalaman sebelumnya