Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter
Management von Schnittstellen-Informationen Consultants Schwerpunkt CORBA Hobby OTS Webservices natuerlich interessant
Agenda Einführung XML Metadata Interchange Format Vom Code zur Information Integrationszentrum Metadaten Zusammenfassung Einführung : Kurze Motivation webservices kennt jeder, deshalb nur kurz TA-Grundlagen
Wo sind IT Informationen ? In Fachkonzepten, Datenbankmodellen, Repositories, Programmcode, UML-Modellen und in den Köpfen der Mitarbeiter ! Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
Wie liegen die Informationen vor ? Fachkonzepte : textuell, auf Papier. Datenbankmodelle : elektronisch, standardisiert. Repositories : elektronisch, proprietär. Programmcode : praktisch kaum zu nutzen. Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
UML-Modelle Elektronisch. Dateizentriert. Proprietär. Schwer auswertbar. oder im XMI Format ! Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
Agenda Einführung XML Metadata Interchange Format Vom Code zur Information Integrationszentrum Metadaten Zusammenfassung Einführung : Kurze Motivation webservices kennt jeder, deshalb nur kurz TA-Grundlagen
XML Metadata Interchange Format Erster Vorschlag wurde am 6. Juli 1998 von DSTC, IBM, Oracle, Platinum und Unisys eingereicht. Implementierung des IBM XMI-Toolkits seit dem 30. Juli 1999. Version 1.1 ist seit dem 03. Februar 2000 offiziell von der OMG verabschiedet. Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
XMI Scope Konsequenter Metadaten-Ansatz. Selbstbeschreibung der Metainformation. Herstellerunabhängiges Format. XML-basiert. UML-Daten sind nur ein möglicher Einsatzbereich. Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
Das XMI Metamodell Ebene 0 : Auftrag ‘4711’ Ebene 1 : Objekt ‘Auftrag’ Ebene 2 : UML Ebene 3 : MOF Ebene 3++ : MOF ! Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
UML DTD Abbildung der bekannten Diagrammtypen : Klassendiagramme, Use-Case-Diagramme, Sequenzdiagramme, Aktivitätsdiagramme, ...
XMI und seine Mit- / Gegen-Spieler WSDL Web Service Description Language UDDI Universal Description, Discovery and Integration WfMC XPDL XML Process Definition Language *.MDL Rational Roses proprietäres Format Begeisterungsmaximum Gartner < und > RPC gibt’s seit Jahrzehnten das Bewaehrte uebernehmen starre Kopplung wird gelockert UDDI vs. Naming / Trading
Tools ( kleine Auswahl ) Rational Rose TogetherJ ArgoUML MagicDraw Repositories
Agenda Einführung XML Metadata Interchange Format Vom Code zur Information Integrationszentrum Metadaten Zusammenfassung Einführung : Kurze Motivation webservices kennt jeder, deshalb nur kurz TA-Grundlagen
Informationsgehalt von ‘Code’ (1) class Account : public virtual POA_simple1::Account { String_var m_id; Double m_oldamount; Double m_amount; simple1::Customer_var m_customer; public: virtual Double balance ( ) throw ( SystemException ); virtual Boolean transfer ( Double amount, simple1::Account_ptr other ) throw ( SystemException); virtual Boolean change ( Double amount ) };
Informationsgehalt von ‘Code’ (2) class Account : public virtual POA_simple1::Account { String_var m_id; Double m_oldamount; Double m_amount; simple1::Customer_var m_customer; public: virtual Double balance ( ) throw ( SystemException ); virtual Boolean transfer ( Double amount, simple1::Account_ptr other ) throw ( SystemException); virtual Boolean change ( Double amount ) }; Implementierung. Attribute. Vererbungs-Beziehungen. Nutzungs-Beziehungen. Methodensignaturen. Exceptions.
Informationsgehalt von ‘Code’ (3) class Account : public virtual POA_simple1::Account { String_var m_id; Double m_oldamount; Double m_amount; simple1::Customer_var m_customer; public: virtual Double balance ( ) throw ( SystemException ); virtual Boolean transfer ( Double amount, simple1::Account_ptr other ) throw ( SystemException); virtual Boolean change ( Double amount ) }; Implementierung. Attribute. Vererbungs-Beziehungen. Nutzungs-Beziehungen. Methodensignaturen. Exceptions. Schnittstelle
Separation von Interface / Implementation Trennung von internen Implementierungsdetails und allgemein verbindlicher Schnittstelle Trennung von konkreter Lösung und unveränderlichen Anforderungen Trennung nach Sichtbarkeitsbereichen
XMI-UML-Modell Package ‚Foundation.Core‘, View ‚Backbone‘
Ein einfaches Modell Simple.mdl Simple.mdl xmiToolkit Simple.xmi
XMI Beispiel
Transformation ‚XMI zu Code‘ (1) <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/XSL/Transform/1.0'> <xsl:output method="text" media-type="text/plain"/> <xsl:template match="/"> // Test-Methoden <xsl:apply-templates select="//Foundation.Core.Class [@xmi.id]"/> </xsl:template> <xsl:template match="Foundation.Core.Class"> <xsl:variable name="className" select="Foundation.Core.ModelElement.name" /> <xsl:apply-templates select=".//Foundation.Core.Operation [@xmi.id ]"> <xsl:with-param name="className" select="$className" /> </xsl:apply-templates> Selektion der Klassen
Transformation ‚XMI zu Code‘ (2) <xsl:template match="Foundation.Core.Operation"> <xsl:param name="className" /> <xsl:variable name="methodName"><xsl:value-of select="$className" />::<xsl:value-of select="Foundation.Core.ModelElement.name" /></xsl:variable> /* * Test fuer Methode : '<xsl:value-of select="$methodName" />' */ cout << "<xsl:value-of select="$methodName" />() = " << <xsl:value-of select="$methodName" />( <xsl:for-each select=".//Foundation.Core.Parameter [@xmi.id and ./Foundation.Core.Parameter.kind/@xmi.value!='return']"> <xsl:variable name="idref" select="./Foundation.Core.Parameter.type/Foundation.Data_Types.Primitive/@xmi.idref"/> <xsl:variable name="type" select="//Foundation.Data_Types.Primitive [@xmi.id=$idref]/Foundation.Core.ModelElement.name"/> <xsl:choose> <xsl:when test='$type="String"'> "TEST" </xsl:when> <xsl:when test='$type="Long"'> 123 <xsl:otherwise> // Fehler, Unerwarteter Typ eines Parameter </xsl:otherwise> </xsl:choose> <xsl:if test="position() != last()">, </xsl:if> </xsl:for-each>) << endl; </xsl:template> </xsl:stylesheet> Selektion der Methoden und Parameter
Transformation ‚XMI zu Code‘ (3) // Test-Methoden /* * Test fuer Methode : 'Auto::holeGeschwindigkeit' */ cout << "Auto::holeGeschwindigkeit() = " << Auto::holeGeschwindigkeit( ) << endl; * Test fuer Methode : 'Auto::setzeFhrgstNr' cout << "Auto::setzeFhrgstNr() = " << Auto::setzeFhrgstNr( 123 Erzeugter Code
Agenda Einführung XML Metadata Interchange Format Vom Code zur Information Integrationszentrum Metadaten Zusammenfassung Einführung : Kurze Motivation webservices kennt jeder, deshalb nur kurz TA-Grundlagen
Komplexe Strukturen ... Sockets Screen Down- scrape load file ORB Trans- action Message queue Sockets ORB RPC CICS gateway APPC
... vereinfachen Integrations- Infrastruktur
Hub’n’Spoke Technische Anpassung Ort Betriebssystem Programmiersprache Inhaltliche Anpassung Semantik Format Abstraktion / Spezialisierung Nabe
Realisierung einer ‘Speiche’ 1. Umsetzung der Daten in ein Document. 2. Transformation mittels XSLT. 3. Transport der serialisierten, transformierten Daten ( z.B. mit CORBA, RMI, COM+ ). 1 2 3 Nabe
Datenbeschaffung Abbilden einer Struktur in ein Baum ‘per Hand’ . Generierung des Adapters aus vorhandenen Modellen. Zugriff auf Daten aus einer JDBC-DB mittels XLE. Extraktion von Daten aus beliebigen Textquellen ( z.B. HTML ) mit JEDI. Zugriff auf die vorhandenen Metadaten. 1 2 3 Nabe
Transformation Einsatz von XSLT Umsetzung von Inhalten: ‘Wahr’ -> ‘true’ Umbenennung von Knoten und Attributen: ‘Versicherter’ -> ‘Kunde’ Umstrukturierung von Dokumenten: ‘Adresse’ -> ‘Lieferanschrift’ und ‘Rechnungsanschrift’ 1 2 3 Nabe
Transport Transport durch Standard-Middleware ( z.B. CORBA ) Sprach- und Betriebssystemunabhängigkeit. Transparenter Transportmechanismus. Höherwertige Dienste stehen bereit ( z.B. Security-Service ). Transaktionssicherheit bei Einsatz eines OTS. 1 2 3 Nabe
Schnittstellen verwalten Informations- Infrastruktur
Informations-Marktplatz SW-Entwicklung Schnittstellen- Team Altsysteme XMI (UML ) Data Warehouse Standards Business Partner Qualitätssicherung
Anzahl der Schnittstellen Nutzen Effizienz der IT Potential Vorteile / Vorsprung aufgrund von konsequenten Schnittstellen-Management Lost Opportunity Ohne durchgängige Integrationslösung Anzahl der Schnittstellen
XML = Flüssige Informationen Standardisiert durch W3C. Flexibles Format. Validierbar. Standards zum Selektieren und Transformieren. XML-Datenbanken.
XSLT Transformationen Doku XMI (UML ) IDL WfMC Code DDL WSDL
XMI Flow
XMI Flow . <Behavioral_Elements.State_Machines.StateVertex.outgoing > <Behavioral_Elements.State_Machines.Transition xmi.idref = 'ID0000000000bc' /> </Behavioral_Elements.State_Machines.StateVertex.outgoing> <Behavioral_Elements.State_Machines.StateVertex.incoming > <Behavioral_Elements.State_Machines.Transition xmi.idref = 'ID0000000000bd' /> </Behavioral_Elements.State_Machines.StateVertex.incoming>
XMI Flow JavaControl: http://sourceforge.net/projects/javacontrol
Agenda Einführung XML Metadata Interchange Format Vom Code zur Information Integrationszentrum Metadaten Zusammenfassung Einführung : Kurze Motivation webservices kennt jeder, deshalb nur kurz TA-Grundlagen
Zusammenfassung XMI ist anerkannter OMG-Standard für Metadaten. Breite Tool-Unterstützung ( von OpenSource bis Kommerziell ). Zukunftssicheres Metamodell. XML bietet eine große Basis an Werkzeugen zur Verarbeitung der Informationen. Integrationsmedium für eine große Anzahl von Informationsquellen. Basis für eine umfassende Meta-Informationsbasis ! end Q4 2001 (HP), Q2 2002 (others).
Resourcen XML Metadata Interchange (XMI) version 1.1 : http://www.omg.org/technology/documents/formal/xmi.htm XML Cover Pages (XMI) : http://www.oasis-open.org/cover/xmi.html Mario Jeckle : http://www.jeckle.de/xmi.htm Transforming XMI to HTML : http://www.objectsbydesign.com/projects/xmi_to_html.html MagicDraw http://www.magicdraw.com KLuP http://www.klup.de
Fragen ... ... jetzt ... ...später : kuehne@klup.de