SOA und Web-Services

Solide Architekturen mit JBoss und JEE

Mit serviceorientierten Architekturen können verteilte Funktionalitäten unterschiedlicher Nutzer besser strukturiert und genutzt werden. S&N Invent verfügt über umfassende Erfahrung in der Konzeption und Umsetzung mit JBoss und JEE. So können das Risiko und die Umsetzungsdauer von Änderungen deutlich minimiert und es kann schneller auf die Entwicklungen des Marktes reagiert werden.

 

 

Grundlage für eine zukunftsorientierte SOA sind klar definierte Services:

  • Ein Service Repository, das alle Services katalogisiert, es umfasst neben der eigentlichen Servicebeschreibung und dem Interface auch organisatorische Daten über Verantwortlichkeiten für den Service, die Abhängigkeiten der Services untereinander und zu den Servicekonsumenten, Service-Level-Agreements (SLA) über Verfügbarkeiten und Antwortzeiten, Berechtigungen für den Service-Aufruf u. s. w.
  • Eine Service Registry, die zur Laufzeit das Auffinden von Instanzen eines Service erlaubt
  • Ein Service-Activity-Monitoring, das die fachlichen Prozesse überwacht
  • Ein Systemmanagement zur proaktiven Überwachung und Steuerung
  • Eine Laufzeitumgebung, die einfache Services zu komplexeren Services für Businessfunktionen orchestriert. Dabei helfen ein Enterprise Service Bus (ESB), eine Business Process Engine mit optionaler Business Rules Engine oder eine Kombination aus beidem
  • Eine Entwicklungsumgebung, die den Entwickler bei der Definition und Nutzung der Services unterstützt

Beispiel:
Red Hat JBoss in einer SOA-Strategie

  • Service-Lifecycle-Management:
    Für die koordinierte und schnelle Umsetzung von Services. Neuerungen und Änderungen werden anderen Services bekanntgemacht und das Einhalten von Policys wird sichergestellt.
  • Business-Transaction-Monitoring
    Für ein schnelleres und reaktionsfreudigeres System. Die wichtigsten Systeme und kritischen Engpässe innerhalb einer SOA werden identifiziert. Mit diesen Erkenntnissen lässt sich genau dort eingreifen, wo es nötig ist.
  • Service-Orchestration:
    Die kleinsten Einheiten werden mithilfe von BPEL, Regeln, Enterprise Integration Pattern oder BPMN zu Services verbunden, die eine komplexere Funktion für Clients bereitstellt. Bereits orchestrierte Services können zu weiteren noch komplexeren Services orchestriert werden, die durch den Ansatz „teile und herrsche“ weiterhin verständlich und wartungsfähig bleiben.
  • Rules Processing:
    Viele Services und ihre Orchestrierung müssen komplexen fachlichen Regeln entsprechen. Mit Business Rules Engines werden die von Businessanalysten oder Fachbereichen deklarativ beschriebene Regeln ausgeführt und die Services orchestriert.
  • Enterprise Integration Pattern Based Development:
    Enterprise Integration Pattern (EIP) ist ein Katalog von Best Practices und wiederkehrenden Pattern, die sich in den letzten Jahrzenten bewährt haben. Statt diese immer wieder neu zu implementieren, können sie über einen visuellen Editor oder eine bereitgestellte DSL zur Orchestrierung von Services benutzt werden.
  • High Performance Messaging:
    Diese Art der Orchestrierung von Services ermöglicht synchrone und asynchrone Kommunikation durch Nachrichten zwischen den Services und bietet einen schnellen und großen Durchsatz.
  • Webservices und REST-Implementierungen:
    Werden Services als Webservices implementiert, spielen die beiden Stile SOAP und REST-Services die Hauptrollen. Diese können durch die bereitgestellten Technologien einfach und schnell konsumiert und für andere Services bereitgestellt werden.
  • Lightweight Structured Service Development:
    Durch den Einsatz von Enterprise Integration Patterns, die einfache Verarbeitung von SOAP- und REST-basierten Services sowie High Performance Messaging lassen sich leichtgewichtige Services implementieren, bei denen sich die Entwickler hauptsächlich um die Businessfunktionalität und nicht um Technologiedetails kümmern müssen.
  • Cloud-Ready-Architektur:
    Für den Betrieb in der Cloud. Hierbei übernimmt größtenteils das Framework den Wechsel von einer lokalen Stand-Alone-Umgebung beim Entwickler in eine produktionsreife Cloud-Umgebung.