IT-Infrastruktur – geduldetes Übel in der Welt der Services

Werbung
Bernd Rintelmann (Oracle Deutschland GmbH)
IT-Infrastruktur – geduldetes Übel in der Welt der Services?
Jede funktionierende Organisation ist nur so gut, wie ihre Abläufe und Prozesse.
Zum einen sind dafür genau definierte Anforderungen der Fachbereiche notwendig;
zum anderen benötigt es einer IT, die Prozesse nicht nur unterstützt und abbildet,
sondern auch eine reaktionsfähige Infrastruktur bereitstellt, die sich an der
Transformation von Geschäftsprozessen ausrichtet.
Hohe IT Investitionen der Unternehmen in den Zeiten des „Client/Server- “ und
„Internet- Booms“ haben in den vergangenen Jahren zu einer schnell gewachsenen
Systemlandschaft geführt, die auf Grund ihrer „Silo“ Eigenschaften einen großen Teil
des IT-Budgets in Form von Wartung, Pflege und Entwicklung von Schnittstellen
verschlingt und nicht beweglich genug ist, sich auf veränderte Rahmenbedingungen
des jeweiligen Geschäfts einzustellen.
Soll hier Abhilfe geschaffen werden, so müssen in der IT- Infrastruktur Prinzipien wie
„Virtualisierung“, „Integration“ und „Automatisierung“ Einzug halten.
Notwendigkeit von Services beim Zugriff auf die DatenInfrastruktur
Während Virtualisierungstechnologien für eine Entkopplung von Anwendungen und
Datenhaltungssystemen von der darunter liegenden Hardware sorgen, ermöglichen
Technologien wie XML und der daruf aufbauenden Web Services eine standardisierte
Integration auf Software- und Infrastrukturebene.
Prinzipiell ist Virtualisierung lediglich die Abstraktion von den physischen
Gegebenheiten in der Darstellung. Im Server-Bereich (Partitionierung, Cluster,
Blades) oder im CPU Bereich (VMWare) ist sie bereits selbstverständlich. Bei den
Datenbanken sorgen Hersteller wie Oracle mit dem „Real Application Cluster“ (RAC)
und automatischem "Storage Management“ (ASM) dafür, dass sich mehrere
Datenbank- Server als virtuelle Einheit darstellen.
Betrachtet man aber den Service- Begriff nicht nur auf der Ebene der DB- Server,
sondern granularer, stellt sich zwangsläufig die Frage, wie die von den Servern
verwalteten Daten als Service bereitgestellt werden können, bzw. wie man überhaupt
zu Daten- Services kommt, mit denen die verschiedenen Aspekte der InformationsIntegration innerhalb eines Service- orientierten Ansatzes gehandhabt werden können.
Im folgenden die kurze Beschreibung zweier möglicher Technologien zur
Bereitstellung von Daten
EJB 3.0 und JPA 1.0/2.0
Aus Sicht einer technischen Architektur kann die Geschäftslogik, die z.B. in einem
Komponentenmodell wie dem Enterprise Java Beans Standard definiert ist, für das
Aggregieren von Daten aus strukturierten Datenquellen (relationalen Datenbanken)
verantwortlich sein. In der Vergangenheit haben objekt-relationale "Mapping
Frameworks" (Oracle TopLink, Hibernate) als auch Standards wie die EJB 2.x CMP
Spezifikation versucht, dem Entwickler die Herausforderungen der Datenpersistenz zu
vereinfachen – leider nicht immer mit Erfolg. Es gab keinen einheitlichen PersistenzStandard innerhalb der Java Plattform, der sowohl für die Enterprise als auch die
Standard Edition galt. Abhilfe verspricht hier das neue Java Persistenz API (JPA), das
erstmals innerhalb des EJB 3.0 Standards Einzug in die Java- Welt gehalten hat. Mit
dem Erscheinen von JEE6 wurde vie Version 2 des Jaba Persistence APIs
freigegeben.
Vereinfacht ausgedrückt wird ein einheitliches POJO Persistenz Programmier Modell
beschrieben - inkl. eines standardisierten Objekt-relationalen Mapping MetadatenModells und einer „Java Persistence Query Language“, so dass es auch ausserhalb
eines J2EE Containers verwendet werden kann.
Web Services
Datenbank-basierte Web Services stellen eine weitere (technische) Möglichkeit dar,
bestehende Investitionen zu sichern: Sie ermöglichen den Anwendungen einerseits
auf Daten mittels Web Services zuzugreifen, andererseits erlauben sie aber z.B. den
DB- Servern auch, als „Service-Konsument“ aufzutreten, d.h., dass z.B. eine SQLAbfrage oder eine DB-Prozedur einen externen Web Service nutzen kann. Hersteller
wie Microsoft, IBM oder Oracle bieten Zugriff auf ihre Datenbanken mittels der
klassischen Web Service Technologien wie SOAP, WSDL, UDDI und nutzen dafür
ihre eigenen Middleware- Frameworks. Agiert die Datenbank als Service Provider
können eine Vielzahl vorhandener Datenbank APIs für die Implementierung genutzt
werden, z.B.:
- SQL Abfragen und DML Statements
- XML APIs (Anwendungen können damit via Web Services direkt XML
Dokumente aus der DB lesen, lokal ändern und wieder zurückschreiben)
- Gespeicherte Prozeduren und benutzer-definierte Funktionen
- Datenbank- Queuing u. -Messaging APIs
Aber auch hier stellen sich die für Web Services üblichen Probleme, bzw.
Fragestellungen, wie das „Mapping von Datentypen“, Sicherheit,
Transaktionsunterstützung unf Interoperabilität.
Federated Services
Leider (aus Sicht der RDBMS- Hersteller) liegen aber nicht alle Informationen eines
Unternehmens in relationalen Datenbanken, sondern oftmals findet man eine Vielzahl
von Quellen wie Directory- Verzeichnisse, File- Systeme, VSAM- Dateien etc.
Unterschiedliche Dateistrukturen (Binär, XML, CVS) tragen ein übriges zur
Erhöhung der Komplexität bei. Zudem ist Java und das entsprechende Komponenten
Modell zwar mittlerweile ein akzeptierter und weit verbreiteter Standard aber nicht
die einzige Möglichkeit, um Services in einer SOA zu entwickeln.
Anstatt in jedem Business Service einen Zugriff auf die benötigten Daten zu
implementieren – und dabei die unterschiedlichsten APIs für das „Databinding“ zu
verwenden (JDBC, JDO, JAXB, ADO.NET,ODBC,etc.) kann es angebracht sein, eine
zentrale „Daten-Service Schicht“ zu erstellen, die den Datenzugriff für alle
Services/Applikationen zentralisiert und eine einheitliche Sicht auf die heterogenen
Datenquellen liefert.
Das jeweilige Geschäftsobjekt ruft dabei kein dezidiertes Service- Interface explizit
auf, sondern delegiert den Datenzugriff an ein System, das die Verantwortung für die
Datenintegration hat.
Der Zugriff aus dieser Daten-Service Schicht muss sowohl auf Daten möglich sein,
die stark typisiert sind und eine statische Strukturdefinition aufweisen (z.B. EJB oder
JDBC Zugriff auf eine relationale Datenquelle) als auch auf schwach typisierte Daten
deren Struktur erst zur Laufzeit ermittelt werden kann (z.B. Web Services). Der
Entwicklung von Business Services wird also von den verschiedenen Notwendigkeiten des Datenzugriffs abstrahiert.
Aus technischer Sicht kann dieser Schicht eine Architektur zugrunde liegen, wie sie in
der „Service Data Object“ Spezifikation beschrieben wird. Sie definiert einen
einheitlichen Datenzugriffs-Layer für heterogene Datenquellen und existiert in der
ersten Version bereits seit 2003 (JSR 235), erfährt aber erst durch die SOA Diskussion verstärkte Beachtung, und liegt momentan als Spezifikation in der Verantwortung von OASIS (nach den von der „Open Service Oriented Architecture
Collaboration“ (www.osoa.org) initierten Anfängen)
.
Die wichtigsten Konzepte der SDO Architektur sind:
- Data Objects (generische Repräsentation eines Geschäfts-Objektes;
unabhängig von einem bestimmten Speicher- Mechanismus)
- Data Graphs (zusammenhängende Datenobjekte, die einem Service zur
Bearbeitung übergeben werden; die Bearbeitung erfolgt entkoppelt von der
jeweiligen Datenquelle („disconnect programming model“))
- Data Access Service (ist als sog. Mediator für die Verbindung mit den
Datenquellen verantwortlich;
- Metadaten API (bietet Zugriff auf die Metadaten eines Data Objects)
SDO versucht also die Nachteile der herkömmlichen Datenzugriffsmethoden zu
vermeiden und bietet u.a. folgende Vorteile:
- SOA Abstraktions- Schicht
- Reduzierter Datenbank- Overhead, d.h. das „Data Object“ speichert seine
Änderungs- Historie, die vom „Data Access Service“ genutzt wird, falls es
Kollisionen beim Zurückschreiben in die Datenquelle gibt („optimistic
concurrency“ oder „offline locking“)
- SDO lieferte ein einheitliches APIs für heterogene Datenquellen
(verfügbar in C++, Java, PHP)
Diese Vorteile in einer SOA führen zu verstärktem Support durch Hersteller wie
Oracle, die in ihrer Fusion Middleware eine SDO Fassade oberhalb der EJB 3.0 und
JPA Schicht implementiert haben. SDO und EJB 3.0 werden also eher als ergänzende
Technologien gesehen. Während SDO eine Architektur ist, die einen einheitlichen
Zugang zu heterogenen Datenquellen beschreibt, so beschränkt sich EJB3/JPA
weiterhin darauf eine Persistenz- Technologie zu sein, die unterhalb des „Binding
Layers“ von SDO liegt und von dem o.a. „Mediator Service“ genutzt wird.
Ausblick
Als Fazit bleibt die Schlussfolgerung, dass die Bereitstellung von Daten- Services
durch Technologien wie SDO erst in einer Service Orientierten Architektur einen
wirklichen Mehrwert gegenüber bestehenden APIs liefert. Service Data Objects bietet
somit eine ideale Ergänzung zu einem zum SOA Komponentenmodell, dass als
„Service Component Architecture“ (SCA) ebenfalls von OASIS als Spezifikation
„verwaltet“ wird.
Neben der Spezifikation von Standards ist die Akzeptanz durch die Hersteller
unabdingbar. So liefert Oracle für das aktuelle Release ihrer Fusion Middleware eine
service-neutrale und plattform-unabhängige Laufzeitumgebung an („SOA Suite
11g“), die beliebige Services, die mittels des SCA Komponentemodells erstellt
worden sind, miteinander integriert. Unterstützt von einem Databinding- Modell, dass
u.a. duch die „Service Data Objects“ eine flexible service-oreintierte Einbindung von
Daten in eine SOA Architektur ermöglicht.
Da auch Analysten wie Gartner sich der SDO und SCA Spezifikationen angenommen
haben, kann man davon ausgehen, dass dieses Thema die Software- Hersteller – und
damit auch ihre Kunden – weiterhin beschäftigen wird.
Herunterladen