Rückblick auf Fernaufrufe/Verteilte und Anwendungskopplung/Enterprise Application Integration (EAI) in der Vergangenheit (RPC, RFC, DCOM, RMI, .NET Remoting etc.)
Grundprinzipien der Serviceorientierung/Serviceorientierten Architekturen (SOA)
SOA-Vorteile versus SOA-Nachteile/Risiken
Ausblick auf moderne SOA-Varianten: REST-HTTP-Dienste/WebAPIs, Microservices
Die philosophische Seite von SOA (technikunabhängig)
- Dienste als Funktionsbausteine
- Dienste bereitstellen (Application Hosting) statt Softwarekomponenten verteilen Anwendungskopplung
- Lose Kopplung / einfach Austauschbarkeit / neu zusammensetzbar (wesentlicher Unterschied zu bisherigen Middleware-Ansätzen)
- Verbergen der Implementierung / Verhüllen von Altsystemen
- SOA ist Instrument für Restrukturierung!
Die technische Seite von SOA
- Plattformunabhängige Kommunikation / Interoperabilität
- Nachrichtenbasierte Kommunikation
- Kommunikation auf Vertragsbasis Contract First
- Trennung von Daten und Operationen
- Dynamische Auffindbarkeit von Diensten (Repository/Registry oder Add-Hoc)
- Zustandslosigkeit
- Interoperabilität
- SOA-Basis-Standards (XML SOAP, WSDL, UDDI, WS-I Basic Profile, WS-I Basic Security Profile)
- Weitere SOA-Standards (WS-Addressing, WS-Policy, WS Security, WS-Trust, WS-Federation, WS-Routing, WS-Eventing, WS-ReliableMessaging, WS-Coordination, WS-Transaction, WS-BPEL)
- XML, SOAP, WS-*-Standards
Was ist ein Dienst?
- Definition
- Identifikation von Diensten
- Microservices
Representational State Transfer (REST) / Microservices
- Konzept von REST
- SOAP vs. REST
- Standards für REST
- Open API Specification (OAS)/Swagger
- GraphQL
- Open Data Protocol (ODATA)
- gRPC
Eigenschaften eines SOA-Projekts
SOA-Erfolgsfaktoren
Architektur und Design von SOA-Lösungen
Optional: Implementierung von SOA mit einer Programmiersprache und Framework nach Wahl des Kunden (z.B. .NET, Java, Go, Rust, PHP, C++, JavaScript/TypeScript)