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