Management von Management von
Schnittstellen-Schnittstellen-Informationen Informationen
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Agenda
Einführung
XML Metadata Interchange Format
Vom Code zur Information
Integrationszentrum Metadaten
Zusammenfassung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Wo sind IT Informationen ?
In Fachkonzepten,
Datenbankmodellen,
Repositories,
Programmcode,
UML-Modellen
und in den Köpfen der Mitarbeiter !
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en Wie liegen die Informationen
vor ?
Fachkonzepte :textuell, auf Papier.
Datenbankmodelle :elektronisch, standardisiert.
Repositories :elektronisch, proprietär.
Programmcode :praktisch kaum zu nutzen.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
UML-Modelle
Elektronisch.Dateizentriert.
Proprietär.Schwer auswertbar.
oder
im XMI Format !
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Agenda
Einführung
XML Metadata Interchange Format
Vom Code zur Information
Integrationszentrum Metadaten
Zusammenfassung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XMI Scope
Konsequenter Metadaten-Ansatz.
Selbstbeschreibung der Metainformation.
Herstellerunabhängiges Format.
XML-basiert.
UML-Daten sind nur ein möglicher Einsatzbereich.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Das XMI Metamodell
Ebene 0 : Auftrag ‘4711’
Ebene 1 : Objekt ‘Auftrag’
Ebene 2 : UML
Ebene 3 : MOF
Ebene 3++ : MOF !
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
UML DTD
Abbildung der bekannten Diagrammtypen :
Klassendiagramme,
Use-Case-Diagramme,
Sequenzdiagramme,
Aktivitätsdiagramme,
...
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en XMI und seine Mit- / Gegen-
Spieler
WSDLWeb Service Description Language
UDDIUniversal Description, Discovery and Integration
WfMC XPDLXML Process Definition Language
*.MDLRational Roses proprietäres Format
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Tools ( kleine Auswahl )
Rational Rose
TogetherJ
ArgoUML
MagicDraw
Repositories
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Agenda
Einführung
XML Metadata Interchange Format
Vom Code zur Information
Integrationszentrum Metadaten
Zusammenfassung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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 ) throw ( SystemException);};
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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 ) throw ( SystemException);};
Informationsgehalt von ‘Code’ (2)
Implementierung.
Attribute.
Vererbungs-Beziehungen.
Nutzungs-Beziehungen.
Methodensignaturen.
Exceptions.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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 ) throw ( SystemException);};
Informationsgehalt von ‘Code’ (3)
Implementierung.
Attribute.
Vererbungs-Beziehungen.
Nutzungs-Beziehungen.
Methodensignaturen.
Exceptions.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en Separation von
Interface / Implementation
Trennung von internen Implementierungsdetails und allgemein verbindlicher Schnittstelle
Trennung von konkreter Lösung und unveränderlichen Anforderungen
Trennung nach Sichtbarkeitsbereichen
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XMI-UML-ModellPackage ‚Foundation.Core‘, View ‚Backbone‘
Element
GeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
Interf ace Class
isActiv e : Boolean DataType
Namespace
Model
name : Namev isibility : Visibility Kind
0..1
*
+namespace
0..1
+ownedElement
*
Constraint
body : BooleanExpression
1..*
*
+constrainedElement1..*
+constraint
*
Method
body : ProcedureExpression
Operation
specif ication : UninterpretedisPoly morphic : Booleanconcurrency : CallConcurrency Kind *1..1
+method
*
+specif ication
1..1
Behav ioralFeature
isQuery : Boolean
Feature
ownerScope : ScopeKindParameter
def aultValue : Expressionkind : ParameterDirectionKind
0..1
*
+behav ioralFeature
0..1
+parameter*
StructuralFeature
multiplicity : Multiplicitychangeable : ChangeableKindtargetScope : ScopeKind
Classif ier1..1
*
+owner
1..1
+f eature*
1..1
*
+ty pe
1..1
+parameter
*
1..1 *
+ty pe
1..1
+structuralFeature
*
*
*
+specif ication
*
+realization
*
Attribut
initialValue : Expression
Element
GeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
Interf ace Class
isActiv e : Boolean DataType
Namespace
Model
name : Namev isibility : Visibility Kind
0..1
*
+namespace
0..1
+ownedElement
*
Constraint
body : BooleanExpression
1..*
*
+constrainedElement1..*
+constraint
*
Method
body : ProcedureExpression
Operation
specif ication : UninterpretedisPoly morphic : Booleanconcurrency : CallConcurrency Kind *1..1
+method
*
+specif ication
1..1
Behav ioralFeature
isQuery : Boolean
Feature
ownerScope : ScopeKindParameter
def aultValue : Expressionkind : ParameterDirectionKind
0..1
*
+behav ioralFeature
0..1
+parameter*
StructuralFeature
multiplicity : Multiplicitychangeable : ChangeableKindtargetScope : ScopeKind
Classif ier1..1
*
+owner
1..1
+f eature*
1..1
*
+ty pe
1..1
+parameter
*
1..1 *
+ty pe
1..1
+structuralFeature
*
*
*
+specif ication
*
+realization
*
Attribut
initialValue : Expression
Element
GeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
Interf ace Class
isActiv e : Boolean DataType
Namespace
Model
name : Namev isibility : Visibility Kind
0..1
*
+namespace
0..1
+ownedElement
*
Constraint
body : BooleanExpression
1..*
*
+constrainedElement1..*
+constraint
*
Method
body : ProcedureExpression
Operation
specif ication : UninterpretedisPoly morphic : Booleanconcurrency : CallConcurrency Kind *1..1
+method
*
+specif ication
1..1
Behav ioralFeature
isQuery : Boolean
Feature
ownerScope : ScopeKindParameter
def aultValue : Expressionkind : ParameterDirectionKind
0..1
*
+behav ioralFeature
0..1
+parameter*
StructuralFeature
multiplicity : Multiplicitychangeable : ChangeableKindtargetScope : ScopeKind
Classif ier1..1
*
+owner
1..1
+f eature*
1..1
*
+ty pe
1..1
+parameter
*
1..1 *
+ty pe
1..1
+structuralFeature
*
*
*
+specif ication
*
+realization
*
Attribut
initialValue : Expression
Element
GeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
Interf ace Class
isActiv e : Boolean DataType
Namespace
Model
name : Namev isibility : Visibility Kind
0..1
*
+namespace
0..1
+ownedElement
*
Constraint
body : BooleanExpression
1..*
*
+constrainedElement1..*
+constraint
*
Method
body : ProcedureExpression
Operation
specif ication : UninterpretedisPoly morphic : Booleanconcurrency : CallConcurrency Kind *1..1
+method
*
+specif ication
1..1
Behav ioralFeature
isQuery : Boolean
Feature
ownerScope : ScopeKindParameter
def aultValue : Expressionkind : ParameterDirectionKind
0..1
*
+behav ioralFeature
0..1
+parameter*
StructuralFeature
multiplicity : Multiplicitychangeable : ChangeableKindtargetScope : ScopeKind
Classif ier1..1
*
+owner
1..1
+f eature*
1..1
*
+ty pe
1..1
+parameter
*
1..1 *
+ty pe
1..1
+structuralFeature
*
*
*
+specif ication
*
+realization
*
Attribut
initialValue : Expression
Element
GeneralizableElement
isRoot : BooleanisLeaf : BooleanisAbstract : Boolean
Interf ace Class
isActiv e : Boolean DataType
Namespace
Model
name : Namev isibility : Visibility Kind
0..1
*
+namespace
0..1
+ownedElement
*
Constraint
body : BooleanExpression
1..*
*
+constrainedElement1..*
+constraint
*
Method
body : ProcedureExpression
Operation
specif ication : UninterpretedisPoly morphic : Booleanconcurrency : CallConcurrency Kind *1..1
+method
*
+specif ication
1..1
Behav ioralFeature
isQuery : Boolean
Feature
ownerScope : ScopeKindParameter
def aultValue : Expressionkind : ParameterDirectionKind
0..1
*
+behav ioralFeature
0..1
+parameter*
StructuralFeature
multiplicity : Multiplicitychangeable : ChangeableKindtargetScope : ScopeKind
Classif ier1..1
*
+owner
1..1
+f eature*
1..1
*
+ty pe
1..1
+parameter
*
1..1 *
+ty pe
1..1
+structuralFeature
*
*
*
+specif ication
*
+realization
*
Attribut
initialValue : Expression
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Ein einfaches Modell
Fahrzeug
laenge : Long
Rad
radius : Long
Auto
fhrgstNr : Long
holeGeschwindigkeit()setzeFhrgstNr() 0..*1 0..*1
Simple.mdl
Simple.mdl xmiToolkit Simple.xmi
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XMI Beispiel
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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> </xsl:template>
Selektion der Klassen
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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:when> <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
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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 ) << endl;
Erzeugter Code
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Agenda
Einführung
XML Metadata Interchange Format
Vom Code zur Information
Integrationszentrum Metadaten
Zusammenfassung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Komplexe Strukturen ...
Down-loadfile
Down-loadfile
Down-loadfile
Screenscrape
Screenscrape
Screenscrape
Screenscrape
Trans-action
file
Trans-action
file
Trans-action
file
Trans-action
file
Messagequeue
Messagequeue
Messagequeue
Sockets
Sockets
ORB
Message
RPC
Message RPC
CICS gateway
APPC
APPC
CICS gateway
ORB
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
... vereinfachen
Integrations-Infrastruktur
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Hub’n’Spoke
Nabe
Technische Anpassung Ort Betriebssystem Programmiersprache
Inhaltliche Anpassung Semantik Format Abstraktion /
Spezialisierung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en 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+ ).Nabe
1
2
3
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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.
Nabe
1
2
3
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Transformation
Einsatz von XSLT Umsetzung von Inhalten:
‘Wahr’ -> ‘true’
Umbenennung von Knoten und Attributen:‘Versicherter’ -> ‘Kunde’
Umstrukturierung von Dokumenten: ‘Adresse’ -> ‘Lieferanschrift’ und ‘Rechnungsanschrift’
Nabe
1
2
3
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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.
Nabe
1
2
3
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Schnittstellen verwalten
Informations-Infrastruktur
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Informations-Marktplatz
Schnittstellen-TeamAltsysteme
Business Partner
Standards
SW-Entwicklung
Data Warehouse
Qualitätssicherung
XMI (UML )
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Nutzen
Anzahl der Schnittstellen
Potential
Ohne durchgängigeIntegrationslösung
Vorteile / Vorsprung aufgrund von konsequenten Schnittstellen-Management
LostOpportunity
Effizienzder IT
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en XML = Flüssige
Informationen
Standardisiert durch W3C.
Flexibles Format.
Validierbar.
Standards zum Selektieren und Transformieren.
XML-Datenbanken.
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XSLT Transformationen
XMI (UML )
WSDLDDLCode
Doku
IDL
WfMC
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XMI Flow
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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>. . .
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
XMI FlowJavaControl:
http://sourceforge.net/projects/javacontrol
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Agenda
Einführung
XML Metadata Interchange Format
Vom Code zur Information
Integrationszentrum Metadaten
Zusammenfassung
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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 !
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
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
MagicDrawhttp://www.magicdraw.com
KLuPhttp://www.klup.de
Man
ag
em
en
t von
Sch
nit
tste
llen
-In
form
ati
on
en
Fragen ...
... jetzt ...
...später :