Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Programmierschnittstelle

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

EineProgrammierschnittstelle (auchAnwendungsschnittstelle, genauerSchnittstelle zurProgrammierung vonAnwendungen), häufig nur kurzAPI genannt (vonenglischapplication programming interface, wörtlich ‚Anwendungs­programmier­schnittstelle‘), ist ein Programmteil, der von einemSoftwaresystem anderenProgrammen zur Anbindung an das System zur Verfügung gestellt wird. Im Gegensatz zu einerBinärschnittstelle (ABI) definiert eine Programmierschnittstelle nur die Programmanbindung aufQuelltext-Ebene. Die Bereitstellung einer solchen Schnittstelle beinhaltet in der Regel eine detaillierte Dokumentation der Schnittstellenfunktionen mit ihren Parametern auf Papier oder alselektronisches Dokument.

Neben dem Zugriff aufDatenbanken oderHardware wieFestplatte oderGrafikkarte kann eine Programmierschnittstelle auch die Erstellung von Komponenten dergrafischen Benutzeroberfläche ermöglichen oder vereinfachen. Beispielsweise ermöglicht die ProgrammierschnittstelleWindows Application Programming Interface des BetriebssystemsWindows externen Firmen die Entwicklung von Software für dieses Betriebssystem.

Heutzutage stellen auch vieleOnline-Dienste Programmierschnittstellen zur Verfügung; diese heißen dannWebservice.Im weiteren Sinne wird die Schnittstelle jederBibliothek (englischlibrary) als Programmierschnittstelle bezeichnet. Zu unterscheiden ist diese Art funktionalerProgrammierschnittstellen von den vielen anderen Schnittstellen, die in der Programmierung angewendet werden – zum Beispiel dieParameter, die beim Aufruf vonUnterprogrammen vereinbart und übergeben werden.

Einteilung nach Typklassen

[Bearbeiten |Quelltext bearbeiten]

Programmierschnittstellen lassen sich in folgende Typklassen einteilen:

Funktionsorientierte Programmierschnittstellen

[Bearbeiten |Quelltext bearbeiten]

Funktionsorientierte Programmierschnittstellen kennen nur Funktionen mit oder ohne Rückgabewert als Mittel der Kommunikation. Dabei wird fast immer das Konzept derHandles 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

[Bearbeiten |Quelltext bearbeiten]

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

Objektorientierte Programmierschnittstellen

[Bearbeiten |Quelltext bearbeiten]

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

Protokollorientierte Programmierschnittstellen

[Bearbeiten |Quelltext bearbeiten]

Protokollorientierte Programmierschnittstellen sind unabhängig vomBetriebssystem und derHardware. Allerdings muss dasProtokoll 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

[Bearbeiten |Quelltext bearbeiten]

Bei Programmierschnittstellen fürAnwendungssoftware wird darüber hinaus auch nachEntwicklungsstufe 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 dieselbeBedeutung 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). AlsRefactoring wird die Fortentwicklung einer Programmierschnittstelle bezeichnet, die keine Änderungen in den Anwenderprogrammen nach sich zieht.[1]

Bedeutung

[Bearbeiten |Quelltext bearbeiten]

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 freiberuflicheProgrammierer 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, einerSpielkonsole oder einerSmartphone-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 eineEintrittsbarriere 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

[Bearbeiten |Quelltext bearbeiten]

Die EntwicklungsumgebungXcode, mit der auf die API des Smartphone-BetriebssystemsApple iOS zugegriffen werden kann, steht zwar als kostenloser Download bereit, aber nur fürMac-Computer vonApple. Zudem müssen Entwickler einGeheimhaltungsabkommen 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 desAndroid-Betriebssystems mit starker Konkurrenz konfrontiert ist.[2]

Für die Betriebssystem-FamilieUnix existiert der von derIEEE festgelegtePOSIX-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 zurSingle UNIX Specification derOpen Group zu verzeichnen. Diese Standards sind offen, imInternet frei verfügbar und alle können Vorschläge dazu einreichen.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Literatur

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Danny Dig, R. Johnson:How do APIs evolve? A story of refactoring. InJournal 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. 
Normdaten (Sachbegriff):GND:4430243-5 (GND Explorer,lobid,OGND,AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Programmierschnittstelle&oldid=253687342
Kategorie:
Versteckte Kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp