HBRS: SOA

Service Oriented Architectures

Service Oriented Architectures


S. S.
Diese Lernkarten behandeln auf Universitätsniveau die Grundlagen und fortgeschrittene Konzepte der serviceorientierten Architektur (SOA) in der Informatik. Sie konzentrieren sich auf die Architektur von Services, Workflows und Komponenten, wobei Themen wie SOAP, WSDL, BPEL und Enterprise Service Bus (ESB) behandelt werden. Die Karteikarten eignen sich für Studierende und Entwickler, die SOA-Architekturen verstehen und implementieren möchten, um skalierbare und anpassbare Softwarelösungen zu schaffen.
Flashcards
33
Students
2
Language
German
Category
Computer Science
Level
University
Created / Updated
29.06.2014 / 11.08.2022

Flashcards

Was ist eine Software-Architektur?

Beschreibt Dekomposition einer Software die einem Architekturstil entspricht. Beschrieben wird unter anderem:

  • die grundlegenden Architektur-Elemente und Schnittstellen (Klassen und Subsysteme)

  • die Interaktionsbeziehung zwischen den Architektur-Elementen (z.b. Proxies/Mittler)

  • die Architektur-Direktive (z.B. Qualitätsanforderungen, Entwurfsentscheidungen, nicht funktionale anforderungen)

  • charakterisierende Kennzahlen ( SLA’s / KPI’s)

Was ist eine Service-Orientierte Architektur?

SOA ist ein Architekturstil der den Aufbau einer Anwendungslandschaft aus einzelnen fachlichen Komponenten beschreibt. Diese sind lose gekoppelt, indem sie einander Funktionalität in Form von fachlichen Services anbieten (nach Hess)

Was ist der Unterschied zwischen einem Geschäftsprozess und einem Workflow?

Ein Workflow ist ist ein IT-gestützter (Sub-Prozess) eines Geschäftsprozesses.

Geschäftsprozess: Menge logisch verknüpfter Einzeltätigkeiten, um ein betriebliches Ziel zu erreichen.

Was ist eine fachliche Komponente?

Was ein fachlicher Service?

Service wird von Komponente angeboten.

fachlicher Service: lose Kopplung, (geringe) Abhänigkeiten.

fachliche Komponente: direkte Abhängigkeiten

Diskutieren sie die Referenzarchitektur!

Was sind Vorteile, Herausforderungen?

Wo und wann finden Ausnahmebehandlungen statt?

Elemente:

  • Interaktionskomponenten
  • Prozesskomponenten
  • Funktionskomponenten
  • Bestandskomponenten

Vorteile:

  • Sinnvolle Strukturierung
  • Fördert wiederverwendbarkeit
  • Fördert lose Kopplung
  • Fördert einheitlichkeit der Schnittstellen (funktionale Services nur funktionale Operationen)

Herausforderungen:

  • Schwierig Services in bestimmten Layer einzuordnen

Ausnahmebehandlung:

  • Direkter Zugriff der Interaktionskomponente auf Anzeigedaten der Bestandskomponenten

Kann es in einem Workflow auch Benutzerinteraktionen geben?

Wie kann man einen Workflow implementieren?

- Direkte Programmierung des Prozesses in einer Programmiersprache (z.B. in Java, AXIS/JAX-WS)

- Implementierung als Service mithilfe einer Modelierungssprache (z.B. BPEL/BPMN)

Wie ist ein BPEL-Workflow aufgebaut?

Tags

  • import: als Verweis auf Web-Services (WSDL)
  • parnerLinks: Referenz auf PortType der Web Services
  • variables: Verwaltung eines internen Zustands
  • sequence: (strukturierte) Aktivitäten
    • invoke, recieve, reply
    • flow (parallel), if, while, scope, compensate

Wie kann man einen BPEL-Workflow aufrufen?

  1. Der BPEL-Workflow wird in einer speziellen Laufzeitumgebung deployed.
  2. Der Anstoß des Workflows wird über eine Nachricht durchgeführt.
  3. Jeder BPEL-Workflow beginnt mit einem Receive, er wartet also auf eine erste eintreffende Nachricht um zu starten.

Wie ist ein BPMN-Workflow aufgebaut?

Unterschiede zu BPEL?

Was versteht man unter der (Ausführungs-)Semantik?

BPMN-Workflow Aufbau:

  • Aktivitäten
    • Unterprozesse
    • Tasks
  • Ereignisse (keine Bearbeitungszeit in Anspruch, nur Zeitpunkte definieren)

Unterschiede BPEL:

  • BPMN hat graphische Modellierungsnotation
  • BPEL hat nur Workflows
  • BPEL hat keine manuellen Tasks

Ausführungssementik für BPMN:

  • eine Abbildung auf BPEL
  • explizite Ausführungssemantik von BPMN 2.0
  • proprietäre Semantiken - versuchen sich an Standard zu halten

Wie werden in BPEL Transaktionen behandelt?

  • mit Compensation Handlern - Transaktionsstrategie: Kompensation
  • Kompensation des gesamten Scopes über das <compensation> Tag
  • die Kompensation wird von extern angestoßen ("sich selber kompensieren geht nicht")

Was ist AXIS2?

Wie ist AXIS2 aufgebaut?

Laufzeitumgebung für Web Services, basierend auf SOAP und WSDL, sowie WS-* Erweiterungen. Wird auch als Servlet-Container angeboten.

Aufbau:

  • Handlern: agieren wie eine filter chain vor dem “Eingang” sowie “Ausgang”
  • Modulen die den Server Erweiterbar machen

Welche Formen der Service-Interaktion kennt AXIS2?

Welche asynchronen?

AXIS2 ermöglich synchrone als auch Asynchrone Kommunikationen.

Asynchron ist eine Kommunikation mithilfe von offen gehaltenen oder getrennten HTTP-Requests möglich.

Wie entwickeln sie eine SOA? Bottom-Up vs. Top-Down erläutern!

Bottom-Up: Komposition - Zusammenfassung von bestehenden Schnittstellen zu Services (bestehende IST Situation)

Top-Down: Zerlegen von Prozessen in fachliche Services

Meet in The Middle:

  1. Ableiten von Use-Cases

  2. Services identifizieren/modellieren (Welche bestehenden Systeme unterstützen diese?)

  3. Architektur-Entwicklung (4 Sichten + Umsetzung)

Was ist ein Web Service?

Technologie-Framework für die Entwicklung und Integration von verteilten Systemen basierend auf der Meta-Sprache XML

besitzt

  • URI
  • Schnittstellenbeschreibung als XML-Artefakt

Wie wird ein Web Service umgesetzt? Contract-First vs....

Contract-First: Zunächst Definition der Schnittstelle und anschließend ableiten von Client-Stubs und Service-Skeleton

Code-First: Entwickeln des Service als erstes und anschließend Generierung von WSDL und Client-Stubs.

  1. Was ist SOAP?
  2. Aufbau?
  3. Welche Protokolle bindet SOAP?
  4. Ist SOAP ein Protokoll...?

  1. SOAP ist einer der wichtigsten Web Services Standards. Es ist ein XML-basiertes Nachrichtenformat.

  2. Aufbau: Bild “Dreieck” SOAP, WSDL, UDDI

  3. HTTP (POST), SMTP, TCP, IP

  4. Nein, ein Nachrichtenaustauschformat

  1. Was ist WSDL?
  2. Wozu braucht man eine Schnittstellensprache?

  1. Web Service Description Language ist eine Schnittstellensprache: ein XML-Format zur Schnittstellenbeschreibung
  2. Eine abstrakte Schnittstellenbeschreibung wird benötigt, um die lose Kopplung unter den Services zu gewährleisten.
    1. Korrektheit durch eindeutige Beschreibung
    2. automatisches Testen
    3. automatisches aufrufen der Schnittstelle

Was versteht man unter einer losen Kopplung innerhalb einer Architektur?

  • Keine Abhänigkeiten
  • Einfache gemeinsame Datenmodelle
  • Schwache Platformspezifika
  • Der Grad der Kopplung kann z.B. als fachliche Entfernung angeben werden (Wieviele Domänen liegen zwischen den Services).
  • geringes Vertrauen / wenig Wissen

Was ist ein Enterprise Service Bus?

Welche Aufgaben hat er?

Der ESB ist eine Mittlerkomponente zwischen Service-Consumern und Providern.

Übernimmt verschiedenste Aufgaben wie z.B.:

  • Datentransformation (Mediation)

  • Service Registry

  • Enthält Adapter zur überbrückung technischer Unterschiede

  • Enthält Integrationsdienste (Routing, SSO, BAM…)

Wie modelliert man eine service-orientierte Architektur?

  • 4-Sichten Modell von Starke
    • Kontextsichten
    • Laufzeitsichten
    • Bausteinsichten
    • Verteilungssichten
  • SoaML

Modell nach Libhart???

  • Requirement-Analayse => Use-Cases

  • Komponenten aus Use-Cases identifizieren

  • Services und Service-Operationen von Komponenten ableiten

  • Analyse von Bestandsystemen (Kann etwas wiederverwendet werden?)

  • Interaktionskomponenten aus Use-Cases identifizieren

  • Zuordnen der Komponenten zu spez. Domänen.

Was versteht man unter dem Service-Schnitt? (6 Eigenschaften...)

Nach Humm&Hess (Komponentenschnitt)

  • R1: Komponenten sollen nach fachlichen Kriterien gebildet werden
  • R2: Alle Operation (der Komponente) sollen von genau einer Kategorie sein (Bestand, Funktion, Prozess, Interaktion)
  • R3: Komponenten unterschiedlicher Service-Kategorien sollen ausschließlich Abhängigkeiten laut der Referenzarchitektur haben
  • R4: Keine Zyklischen Abhängigkeiten
  • R5: intern engen Zusammenhalt --- untereinander gering gekoppelt
  • R6: Bestandskomponenten haben Datenhoheit

Wie kann man eine SOA anpassbar entwickeln?

  • Durch hohen Einsatz von Loser Kopplung
  • Entwurf nach Humm und Hess

Was sind die wirtschaftlichen Vorteile bei der Einsetzung einer SOA?

  • Neuen Geschäftsprozesse sehr schnell und kostensparend durch
    • Wiedervewendung von Services
    • Neu-Orchestrierung
  • Cooperate Design --> geringe Schulungskosten
  • Geringere Fehlerquoten (z.B. durch erhöhte Automatisierung)

Wie kann man eine Software-Architektur skalierbar machen?

Diskutieren sie den Begriff Skalierbarkeit: wie kann man eine Architektur skalierbar entwickeln?

  • Skalierbarkeit ist die Fähgikeit einer Software-Architektur flexibel an Nutzungsraten angepasst zu werden. Etwas skaliert gut, wenn höhere Nutzungsraten durch einen steigenden Ressourcenbedarf bedient werden können.
  • Horizontale vs. Vertikale Skallierung
  • Skallierbarkeit kann durch verschiedene Dinge erreicht werden z.B.:
    • Klonen von Services (Loadbalancing)
    • Fachliche Teilung eines Services
    • Aufrufer in Kategorieren aufteilen
    • Statless Service (oder States auslagern)
    • Lokalisierung und Caching
  • (Skallierbarkeit steht auch in verbindung mit Loser Kopplung)

Wem gehört eine SOA?

Niemand! Einzelne Services/Komponenten können unterschiedlichen Personen gehören.

Stichwort: legacy system/ALT-System

Ist SOA ein Allheilmittel für die Entwicklung von Software-Architekturen?

Nein. Einführung kann sehr Aufwendig sein, politisch schwierig und auch nicht immer sinnvoll (Evtl. z.B. wenn niedrige Latenz wichtig ist).

Wann rentiert sich der Einsatz einer SOA?

Der Einsatz einer SOA rentiert sich, wenn es wirtschaftlich ist, also der Nutzen (die Einsparung, der Gewinn) höher ist als die entstehenden Kosten.

Meist bei großen. heterogenen Systemen um große Anwendungslandschaft zu vereinheitlichen.

Was für eine Aufgabe und Relevanz hat eine Business Rule Engine?

Die BRE ermöglicht die zentrale Definition von flexiblen fachlichen Regeln (Business Rules). Die BRE ist sehr wichtig, da sich Geschäftsprozesse häufer und schneller Ändern können als die Entwicklung der Software (unterschiedliche Zyklen). Die BRE ermöglicht eine Anpassung auch zwischen verschiedenen SW-Realses.

Sichtwort: Flexibilität

Was für eine Aufgabe und Relevanz hat eine BAM-Komponente?

Durch eine Business Activity Monitoring Komponente können Daten über das Laufzeitsystem und fachlichen Prozesse (zB. KPIs) gesammelt werden und Minutenaktuell überwacht werden.

ODER

Die Aufgabe ist die Überwachung von Geschäftsprozessen oder unternehmenskritischer Ressourcen. Eine BAM ermöglicht die Überwachung von KPI’s und kann Probleme im Betrieb der SOA aufdecken (z.B. überlaufene oder kaum genutzte Services).

Wie verarbeitet ein Application Server einen SOAP-Request?

  • Eine SOAP-Nachricht kann über mehrer Zwischenknoten (Intermediaries) geleitet werden
  • Intermediaries können in den Verarbeitungsprozess einer SOAP-Nachricht eingreifen
  • Intermediaries sollten nur auf SOAP-Header zugreifen

Welche Message Exchange Patterns bietet WSDL an?

One-way

Request-Response

Solicit-Request

Notification

Wozu dient die WS-Erweiterung WS-Addressing?

WS-Addressing ermöglicht eine Detailiertere Addressierung von SOAP Nachrichten.

Metainformationen über die Nachrichten: Bezug zu früheren Nachrichten

Study