Download Dissertation - Eldorado

Transcript
2 Grundlagen
[W3C04d]. Trotzdem sind Registrys immer noch wichtig, wenn auch oft
nur innerhalb eines Produktes oder innerhalb eines Unternehmens. In
Kapitel 3 wird für die untersuchten Service-Sammlungen genau dargelegt, ob und wie eine Registry jeweils umgesetzt wurde.
2.3 Application Programming Interfaces
(APIs)
In Abschnitt 2.2 wurde erläutert, was Services sind und was eine SOA
ist. Services treten dabei selten allein auf, sondern sind meist Teil ganzer
Service-Sammlungen. Die Schnittstellenbeschreibungen dieser ServiceSammlungen heißen APIs („Application Programming Interfaces“) und
erreichen (gerade bei Enterprise-Systemen) oft einen erheblichen Umfang. Der API-Begriff ist dabei natürlich älter als das SOA-Thema. Eine API existiert immer dann, wenn Schnittstellenbeschreibungen vorliegen, so dass verschiedene Softwarekomponenten miteinander interagieren
können. Genau in diese Richtung geht eine Definition aus einem Paper
von de Souza et al.[SRC+ 04], bei der sie sich auf Aussagen aus einer
Präsentation von des Rivieres [Riv04] beziehen:
„An API is a well-defined interface, usually supported by the
underlying programming language, that allows one software
component to access programmatically another component.“
De Souza et al. setzen dem die etwas formalere Definition des CarnegieMellon-Software-Engineering-Institute entgegen [Car03]:
„Application Programming Interface (API) is an older technology that facilitates exchanging messages or data between
two or more different software applications. API is the virtual
interface between two interworking software functions such as
a word processor and a spreadsheet. (...) An API is the software that is used to support system-level integration of multiple
commercial-off-the-shelf (COTS) software products or newlydeveloped software into existing or new applications.“
Hier wird betont, dass eine API die Schnittstelle zwischen zwei (oder
mehr) Software-Systemen darstellt. De Souza et al. fügen letztlich noch
eine eigene, pragmatische Definition hinzu:
„(...) any well defined interface that defines the service that
one component, module or application provides to other software elements.“
20