13. Einführung in die Architektur von Software-Werkzeugen. 13..1 Grobarchitektur von Werkzeugen. Obligatorische Literatur



Ähnliche Dokumente
14. Einführung in die Architektur von Software-Werkzeugen Grobarchitektur von Werkzeugen. Obligatorische Literatur

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Datenmanagement in Android-Apps. 16. Mai 2013

Übung: Verwendung von Java-Threads

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Whitepaper. Produkt: List & Label 16. List & Label 16 unter Linux/Wine. combit GmbH Untere Laube Konstanz

Verbinden von Workflows und fachlichen Prozessmodellen im Rahmen eines SharePoint Prozessportals Semtation GmbH (Henrik Strauß)

SharePoint Demonstration

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

12.4 Sicherheitsarchitektur

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R3: Administration

Kurzanleitung zur Verwendung von File Sharing (DC2FS)

Vorgehensweise bei der Installation Bob50SQL für einen unabhängigen PC.

KURZANLEITUNG CLOUD OBJECT STORAGE

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

Design Patterns 2. Model-View-Controller in der Praxis

Eine Anwendung mit InstantRails 1.7

Programmieren I. Kapitel 15. Ein und Ausgabe

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

Übungen zur Softwaretechnik

SAP NetWeaver Gateway. 2013

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Model Driven Architecture (MDA)

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

SWE5 Übungen zu Software-Engineering

WhiteStarUML Tutorial

Datenbanken. Prof. Dr. Bernhard Schiefer.

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Information-Design-Tool

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

SemTalk SemTalk Usermeeting. Agenda. Neue Features mit SemTalk 3.2. Stand SemTalk & Sharepoint. Neue Partner Lösungen

OP-LOG

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Workflow, Business Process Management, 4.Teil

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

Objektorientierte Programmierung. Kapitel 12: Interfaces

SAP SharePoint Integration. e1 Business Solutions GmbH

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

8 Design Patterns. Events

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

Darüber hinaus wird das Training dazu beitragen, das Verständnis für die neuen Möglichkeiten zu erlangen.

5.2 Neue Projekte erstellen

Große Übung Praktische Informatik 1

ADDISON tse:nit Hinweise zum Datenumzug im tse:nit Umfeld

Eigene Seiten erstellen

RL

OpenMAP WEBDrive Konfiguration. Oxinia GmbH , Version 1

Installation von NetBeans inkl. Glassfish Anwendungs-Server

HSR git und subversion HowTo

esms - sms senden & empfangen mit Outlook

5. Programmierschnittstellen für XML

Persistenzschicht in Collaborative Workspace

Komponentenbasierter Taschenrechner mit CORBA

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Installation der SAS Foundation Software auf Windows

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Übersicht über Datenbanken

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

5. Programmierschnittstellen für XML

Administrator Handbuch

Assoziation und Aggregation

Macher Solutions Produktinformation SAP Crystal Reports 2011

3 Anwendungsarchitektur und Entwicklungsumgebung

Verwenden von Adobe LiveCycle ES3 Connector für Microsoft SharePoint

Prüfung Software Engineering I (IB)

Der beste Plan für Office 365 Archivierung.

Jump Project. Softwarelösungen für professionelles Projektmanagement

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Metadaten bei der Digitalisierung von analogen archivalischen Quellen. Kathrin Mileta, Dr. Martina Wiech

IAWWeb PDFManager. - Kurzanleitung -

ORACLE Business Components for Java (BC4J) Marco Grawunder

11. Datenablage (Datenbasis, Repositorium) und Austauschformate Ziele und Aufgaben der Datenbasis (Repositoriums) Aufgaben des Repository

Java Einführung Packages

FAQ The FAQ/knowledge base. Version 2.1.1

Prozessarchitektur einer Oracle-Instanz

SQL (Structured Query Language) Schemata Datentypen

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Einführung. Informationssystem als Abbild der realen Welt

4D Server v12 64-bit Version BETA VERSION

Was ist Windows Azure? (Stand Juni 2012)

Transkript:

13. Einführung in die Architektur von Software-Werkzeugen 2 Obligatorische Literatur Netbeans Metadata repository (MDR) http://docs.huihoo.com/netbeans/netbeanstp.pdf D. Bäumer, D. Riehle, W. Silberski, M. Wulf. Role Object. Conf. On Pattern Languages of Programming (PLOP) 97. http://citeseer.ist.pst.edu/baumer97role.html 1 Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 12-1.1, 08.11.12 1) Grobarchitektur von Werkzeugen 2) Datenablage (Repositorium) 1) Metamodellsteuerung 3) Werkzeuge als s and s 4) Beispiele für Repositorien Steffen Staab, Tobias Walter, Gerd Gröner, and Fernando Silva Parreiras. Model driven engineering with ontology technologies. In Uwe Aßmann, Andreas Bartho, and Christian Wende, editors, Reasoning Web, volume 6325, Lecture Notes in Computer Science, pages 62-98. Springer, 2010. http://www.uni-koblenz.de/~staab/research/publications/2010/reasoningweb2010.pdf 1) Master Data Management Architektur eines repository-basierten Werkzeugs (aufrufbasiertes ) 13..1 Grobarchitektur von Werkzeugen 4 3 Schicht 3 Benutzungs-Schnittstelle Schicht 2 Werkzeug-Kern vgl. Architekturstile von Anwendungen aus der ST-II: Algebraische Anwendungen: aufrufbasiert Coalgebraische Anwendungen: strombasiert Schicht 1 Schicht 0 Lader Import Repositorium (Interne Datenbasis) Externe Datenbasis (externes Repositorium) (Datenbank Dateisystem Web) Schreiber Export -- Schnittstelle Systemschnittstelle

5 Architektur eines datenflussgesteuerten, strom-basierten Werkzeugs Arbeit wird stückweise erledigt; meist pro gelesenem Datenpaket. Eine DFD- oder Workflow- Sprache verknüpft (komponiert) die Werkzeuge durch ein DFD oder Workflow (Mashup) zu komplexeren Werkzeugen 13.2. Datenablage (Repositorium) 6 Schicht 3 Benutzungs-Schnittstelle Schicht 2 Schicht 1 Eingabestrom Import Werkzeug-Kern Repositorium (Interne Datenbasis) Export -- Schnittstelle Ausgabestrom Prinzipiell entsprechen Repositorien den Speichern im DFD. Allerdings spricht man nur dann von einem Repositorium, wenn mehrere Prozesse darauf lesen und schreiben. Ziele und Aufgaben des Zielstellungen für Repositories 7 Eine Eine Datenbasis (Datenablage, Repositorium, repository) ist ist die die Ablage Ablage aller aller Informationen eines eines Systems. In In einer einer SEU SEU enthält enthält es es alle alle passiven und und aktiven aktiven Komponenten zur zur Handhabung der der Basisinformationen der der Werkzeuge [12, [12, S. S. 121ff.]. 121ff.]. Komponenten- Suchmaschine Weitere Werkzeuge Retrieval- System Programmiersystem CASE- s Fenstersystem Ausgabesystem 8 Transparente persistente Dokumentspeicherung: Einfache Abbildung aller Datenobjekte (Artefakte) auf persistente Datenstrukturen im auch bei Änderung der Objekte (Systemausfall) Entkopplung von physischen Speicherformaten: Physische und logische Datenunabhängigkeit, d.h. Trennung der Programme (Werkzeuge) von logischer Struktur und physischer Repräsentation der Daten Unterstützung von Metamodellen (Schemata) beschrieben in DDL: Logisches Datenmodell: Anwendungsnahes Datenmodell, in ausdrucksstarker DDL Physische Datenmodell: Wie werden die Daten gespeichert? meist in Relational Schema Externe Schemata: Für Steuerung des Zugriffs, in dem zu unterschiedlichen Rollen verschiedene externe Schemata für ein Dokument defi nierbar sind Schema-Änderungen: Sollen bestehende Daten in der Datenbasis erhalten Typisierte Zugrifssschnittstellen: Programmierbare APIs (Anfragesprachen, prozedurale Pro-grammierschnittstellen), möglichst aus Metadaten generiert Refl ektive Zugriffsschnittstellen: Programmierbare APIs, die typunabhängig sind und unabhängig vom logischen oder physischen Schema arbeiten Administration: Verfügbarkeit allgemeiner Verwaltungsfunktionen und auch für die Erstellung administrativer Ausgaben (Statistiken, Metriken, Software-Leitstände) Quelle: nach Habermann, H.-J., Leymann, F.: - eine Einführung; Oldenbourg Verlag 1993 und Däberitz, D.: Der Bau von SEU mit NDBMS; Diss. Uni Siegen 1997

9 Zielstellungen für Repositories (2) Kooperation von Werkzeugen Synchronisation und Transaktionen: Dienen der Synchronisation von Metadaten und Objektdaten. Sie können dazu benutzt werden, um temporär inkonsistente Zwischenzustände von Dokumenten zu verwalten Konfi gurationsmanagement: Verwaltung unterschiedlicher, zu einem Projekt gehörender Entwicklungsstände von Dokumenten Effektive Arbeitsweise: Verteilung: Zugriff von verschiedenen Orten aus und Bereitstellung einheitlicher Basisfunktionen für die kooperierende Arbeit mehrerer Benutzer Leistungsfähigkeit: schneller, effi zienten Zugriff auf umfangreiche Dokumente, großer Durchsatz (Transaktionen pro Sekunde) Usability: Einfache Bedienung durch einheitliche ergonomische Benutzungsoberfl ächen Entwicklungsqualitäten: Adaptierbarkeit: Einbettung des in gewünschte Entwicklungsrichtung (kommerzielle oder technische Informationssysteme, Standardsoftware) Portabilität: Zukunftssicherheit - Standardkonformität Aufwärtskompatibilität 10 13.2.1 Metamodell-Steuerung von Datenablagen Quelle: nach Habermann, H.-J., Leymann, F.: - eine Einführung; Oldenbourg Verlag 1993 und Däberitz, D.: Der Bau von SEU mit NDBMS; Diss. Uni Siegen 1997 Metamodellgesteuerte Repositorien Grobarchitektur bei Datenteilung (Metamodellgesteuertes Repositorium) 11 Ein metamodellgesteuertes Repositorium erlaubt es, auch gleichzeitig, verschiedene Metamodelle zu laden Ist zugeschnitten auf eine Metasprache (oder geliftete DDL) 12 Layer 2 Speicherung von Metadaten möglich (metadata repository), aber auch Modellen (model repository) Vorteile: Ableitung von Strukturinformation für Modelle: Die strukturellen Eingeschaften der Modelle sind durch das Metamodell definiert und bekannt Sind die Collection der Attribute einer Klasse eine Menge, Liste, Bag? Was sind atomare Attribute? Referenzattribute? Mengenattribute? Was sind Knoten und Kantentypen? Kardinalitäten der Nachbarmengen? Aus diesen Informationen können für alle Klassen eines Modells Zugriffsschnittstellen generiert werden Layer 1 Query Engine Consistency Konsistenz checker prüfer interfaces (read/write/reflective/observing) Data manipulation interfaces Document/-modelrepository Loader Metadata- and metamodel repository Exporter <<generates>> <<generates>> Layer 0 External Data basis (File system, Web)

Generierung von typisierten Schnittstellen Generierung von Schnittstellen und Paketen in einem metamodellgesteuerten Repositorium 13 Aus den Metaklassen wird die Struktur der Typen der Zugriffsschnittstellen und vieler anderer Code-Pakete auf M1 abgeleitet (compartments): 14 Generierung von statisch typisierten Zugriffsschnittstellen zu den Modellen Lese- und Schreib-Schnittstellen, inkl. deren Implementierung mit Leser/Schreiber- Synchronisations- bzw. Transaktionsprotokollen Typisierung wird von dem Metamodell aus M2 geliefert (spezifziert in DDL) <<metaclass>> Class String name; Attribute[] attribs; M2 Object neighbors; Method[] methods; Class[] classes; Object[] extent; Class create( String name, Attribute[] attribs, Object neighbors, Method[] methods); void check( Class[] classes); visitclasses(visitor v); q Reflective access M1 Typed access Person Int salary; String name; Generated Supervisor boss; Person[] friends; Person marriedto; void laugh(); Int earnmoney(); M0 :Person salary =1900; name = Fred ; boss = &Walter; friends[] = [&John,&Mary] marriedto=&silvia; Strukturinformation (atomare Attribute, Strukturattribute, etc.) Queryschnittstellen zu den Modellen (statisch typisiert) Implementierung mit Query-Interpreters, der die DQL kennt und interpretiert Generierung von Konsistenzprüfern, um über die Struktur hinaus weitere Konsistenzbedingungen (Wohlgeformtheit, Integrität) zu prüfen (aus DCL-Teil des Metamodells) Generierung von Observer-Schnittstellen: Mit ihnen wird die Observation der Modelle möglich (durch Einhängen von Observern) (aus DDL) Generierung von Visitor-Paketen: Mit ihnen wird die Anwendung von verschiedenen Algorithmen auf die Modelle möglich (durch Visitor-Pattern) (aus DDL) Generierung von Navigatinos-Paketen: Zur Navigation auf den Objekten (depth-first, breadth-first, inside-out, outside-in, layer-wise, etc.) Generierung von Datenaustausch-Schnittstellen: Importern und Exportern, die in Austauschformate wandeln (aus Technikraumbrücken und Datenverbindungs-Abbildungen auf M2) Implementierungen von persistenten Objekten (activation, passivation) Bereitstellung von reflektiven Zugriffsschnittstellen zu den Modellen (schwache Typisierung) Zugriff auf die Knoten und Kanten als Graphknoten und Graphkanten (untypisiert) Zugriff auf Extent eines Modells: Zugriff auf alle Modelle eines Metamodells oder alle Objekte eines Modells aus der Metasprache oder gelifteter DDL abgeleitet (aus dem Graphschema) 15 13.3 Werkzeuge als -Objekte, die auf ien in der Datenablage zugreifen Objekt-orientierte Sicht auf Werkzeuge: Ein Werkzeug (tool) kann als ein Objekt gesehen werden, das einen externen Zustand über -Objekten in einem Repositorium verwaltet. Siehe Design Patterns and Frameworks, Kapitel s and s (TAM) 16 - Collaboration Pattern A tool-material collaboration (T&M role model, T&M access aspect) expresses the relation of a tool and the material The tool is active, has control; the material is passive and contains data Characterizes a tool in the context of the material, and the material in the context of a tool The tool's access of the material. The tool has a view on the material, several tools have different views The tool sees a role of the material, in collaboration with a tool Roles of a material define the necessary operations on a material for one specific task They reflect usability: how can a material be used? They express a tool's individual needs on a material

Controller Automaton, s and Their Views on Collaboration Layer in UML Component Diagram Notation 17 s are controlled by automata, DFD or workflows (TAM) 18 In UML, roles are represented by lollipops and plugs Collaboration layer Controller Automaton (specified by Automaton, Dataflow or Workflow) Client T-M Role Reader Readabl e <<invoke>> Client T-M Role Reader T-M Role Writable Client T-M Role Writer Implementing - Roles in the Collaboration Layer With Interfaces in Java or C# Implementing - Roles in the Collaboration Layer With Role 19 Roles can be realized by mixin inheritance or interface inheritance Then, roles of tools are integrated into tools 20 Roles can be realized by role objects (delegatees) Collaboration layer Collaboration layer <interface> View <<inherit>> :Leser Role <<has-role>> <interface> View <<inherit>> :Leser Role <interface> View :Schreiber Role <<has-role>> <interface> View Role

Extension of a Collaboration Layer Extension of the Object Net in the Collaboration Layer 21 If a set of tools and materials is extended, new relations in the collaboration layer can be created Here: Extension of the class net 22 Here: Extension of the object net Collaboration layer Leser Lesbar Collaboration Layer Instance : :Leser :Lesbar : Leser New Schreibbar New :New :Leser :Lesbar :New :Schreiber :Schreibbar Schreiber Lesbar 13.3.1 Schichtung der -Zugriffsrollen für Werkzeugobjekte (tool objects) 24 Überblick über die Zugriffsschichten des Repositories In der Sicht von TAM, greifen Werkzeugobjekte durch mehrere Schichten von Rollenobjekten hindurch auf die ien zu. Die Rollenobjekte sind für bestimmte Zwecke (Belange) zuständig Es entsteht eine Belang-objekt-Matrix 23 (synchronisiert)

Generierung der Schichten aus speziellen Sprachen des Technikraums, realisiert als Kern mit Delegationen 25 Die Implementierung der Schichten kann durch (verschiedene) Sprachen spezifiziert sein OCL-constraints können Constraints in der spezifizieren 26 Xquery kann als Anfragesprache in der verwendet werden Schreiboperationen können durch DTL wie Xcerpt realisiert werden Leserolle Schreibrolle DML (synchronisiert) Authentifikationsrolle DQL Verteilungsrolle DDL DDL - Kern Kollaboration von Werkzeugen auf dem Repositorium mit Rollenobjekten als Rollenobjekt-Muster 27 Ein gutes Entwurfsmuster für Repositorien und ihre Zugriffsschichten bietet das geschichtete Role Object Pattern von Bäumer et.al. (Siehe Kapitel in Design Patterns and Frameworks) im RO-Pattern regeln Dekorator-Ketten über Schichten den Zugriff auf ien im 28 Viele Schichten, vielen Rollen-Klassen können generiert sein Achtung: Schichtreihenfolge kann unterschiedlich sein, je nach Repositorium w1: w2: w3: Schreibrolle s:schreibrolle l:leserolle au:authentifikationsrolle l:queryrolle Authentifikationsrolle Schreibrolle Leserolle Leserolle Verteilungsrolle Authentifikationsrolle ver:verteilungsrolle Kern:Kern - Rolle * Verteilungsrolle - Kern - Rolle * - Kern

Werkzeug-Effekte auf ien und Ihre Prägung für Rollen Verfeinerte Schichten-Architektur: Weitere Effekte auf ien und Ihre Prägung für Rollen 29 CRUD-Schnittstelle von ien in Informationssystemen bietet die Funktionalitäten: Create 30 Read Update (Modification) Delete Allgemeine Schreibrolle CRUD wird im Folgenden leicht erweitert: Erweiterungs-Rolle (Extend) Schicht strukturelles Schreiben Strukturelle Schreibrolle Atormare Schreibrolle Schicht atomares Schreiben Erweitert den Zustand des Objektes, zerstört ihn aber nicht Atomare Erweiterung Erweitert den Zustand der atomaren Attribute des Objektes Schicht strukturelles Erweitern Schicht atomares Erweitern Erweiterungs rolle Strukturelle Erweiterung Erweitert die strukturellen Attribute des Objektes, d.h. Des Objektnetzes, ohne die atomaren Attribute zu modifizieren Modifikation (Update) Atomare Modifikation - Rolle * - Kern Leserolle Ändert den Zustand der atomaren Attribute des Objektes Strukturelle Modifikation Ändert den Zustand des Objektnetzes, ohne die atomaren Attribute zu modifizieren Allgemeine Modifikation Alle obigen Effekte. TAM für strombasierte Werkzeug-Architekturen 31 Ist ein Werkzeug in eine strombasierte Architektur eingebunden, besitzt es separate Lese- und en bzgl. der Input bzw. Output-Channels. 13.4 Beispiele für Datenablagen 32 Datenablagen können für verschieden Szenarien eingesetzt werden: (Import (Export) Channel Stream (Import (Export) Channel Stream Temporär für ein Werkzeug Persistent für ein Werkzeug More channels Persistent für mehrere Werkzeuge Persistent für ganze Firma

Historische Beispiele für Repositories Beispiele für firmenweite Repositories 33 Bezeichnung Kurzcharakteristik 34 Bezeichnung Kurzcharakteristik IBM Manager für AD/Cycle, offene Architektur für leichten Anschluss von s, teamorientiert WebSphere Database von IBM Administration-s zur Installation, Überwachung und Pfl ege von Datenquellen und Enterprise Applications PCTE Object Management System Pirol innerhalb einer PCTE-Umgebung Sichtenbasiertes der TU Berlin www.objectteams.org/publications/diplom_florian_hacker.pdf SAP R/3-System Eigentlich R/3-Data-Dictionary für Ablage von Metadaten auf Basis tabellarischer Datenstrukturen. DD-Tabellen ursächlich für Speicherung kommerzieller Daten aber auch für R/3-Entwicklungsumgebung SAP NetWeaver Master Data Management (MDM) Verteilte Stammdatenverwaltung zur Pfl ege, Konsolidierung und Harmonisierung integrierter Informationen über gültige Stammdatenattribute Quelle: Habermann, H.-J., Leymann, F.: - eine Einführung; Oldenbourg Verlag 1993 Beispiele für metadatengesteuerte Repositories Beispiele Dateisystem-basierter Datenablagen 35 Bezeichnung Kurzcharakteristik 36 Bezeichnung Kurzcharakteristik Hibernate Persistente einzelne Anwendungen mit object-relational mapper (ORM); Abbildung von Java-Objekten auf Relationen, analog zu ERD-Abbildung, Verwendung von verschiedenen SQL-Datenbanken Microsoft Sharepoint Webbasiertes, filesystem-basiertes Netbeans Metadata (MDR) Metasprache MOF; Laden von Metamodellen möglich; Generierung von Modell-Zugriffsschnittstellen; reflektiver Zugriff auf Modelle; Mapping auf Filesystem möglich WebDAV Webprotokoll zum verteilten Datenmanagement Eclipse EMF ModelBus Metasprache EMOF; ansonsten wie oben für MOF-basierte Modelle Subversion/CVS/git Versionsverwaltungssysteme auf File-Basis; Verwaltung von Versionen aller Files und Verzeichnisse; über spezielle Clients vom Browser aus bedienbar DropBox, GoogleDocs Cloud-basiertes Filesystem mit Rechteverwaltung Keine Metamodelle, sondern nur einfache Metadaten (markup tags)

Netbeans MDR Netbeans MDR 37 Ein metamodellgesteuertes, persistentes Repositorium für die Netbeans SEU http://www.netbeans.org, Metasprache MOF Kann firmenweit genutzt werden Speicherung von MOF-Metamodellen und -Metadaten möglich (metadata repository), aber auch Modellen (model repository) Vorteile: Generierung von Java-Zugriffsschnittstellen zu den Modellen (starke Typisierung), via JMI (MOF-Java- Mapping) Verwendung von reflektiven Zugriffsschnittstellen zu den Modellen (schwache Typisierung) Via Reflektion auf MOF-Konzepten (Klassen, Attributen, Assoziationen, Vererbung) Zugriff auf Extent Observation der Modelle möglich Zugriffsschnittstellen können observiert werden Transparente Speicherung im Hauptspeicher, Filesystem oder in einer Datenbank Austauschformat XMI (MOF-XML-Mapping) 38 Metamodel repository (MOF-based) <<load>> M3 M2 M1 M0 MOF MOF UML CWM MOF-Java MOF-Java <<generates>> UML-Java UML-Java CWM-Java CWM-Java Eclipse EMF (basierend auf EMOF) Persistenz auf Datei, Datenbank, etc. in verschiedenen Repräsentationen MOF-Java Database UML-Java XML Model Management Funktionen s im ModelBus - Verteiltes für Modelle CWM-Java File 39 M3 EMOF 40 Service Parameter Multiplizität Type Metamodel repository (EMOF-based) <<load>> M2 M1 M0 EMOF UML CWM EMOF-Java EMOF-Java <<generates>> UML-Java UML-Java CWM-Java CWM-Java UML- fi ndclass ClassName in [1..1] primitivetype (String) Class out [1..1] specifi cmodeltype (Foundation::Core::Class) fi nd Name in [1..1] primitivetype (String) out [1..1] specifi cmodeltype (Model_Management::) UML to transform sourcemodel in [1..*] specifi cmodeltype EJB (Model_Management::) targetmodel out [1..*] specifi cmodeltype (EJB:: EjbComponent) Code generatesingle EJBComponent in [1..1] specifi cmodeltype Generation Component (EJB:: EjbComponent) generate EJBComponent in [1..*] specifi cmodeltype Components (EJB:: EjbComponent) Persistenz auf Datei, Datenbank, etc. in verschiedenen Repräsentationen EMOF-Java Database UML-Java hibernated CWM-Java File Quelle: Blanc, X., Gervais, M.-P., Sriplakich, P.: Model Bus: Towards the Interoperability of Modelling s; in Aßmann, U. u.a.: Model Driven Architecture, Springer Verlag 2005 http://www.modelbus.org/modelbus/

MDM 13.4.2 Master Data Management (MDM) 42 Verwaltet alle Daten eines Unternehmens in einer Datenablage Föderierte verteilte Datenbank Nicht konsistent gehalten durch Transaktionen 41 Allerdings mit Werkzeugen zur Analyse, Query, Konsistenzprüfung, -erhaltung und -wiederherstellung, Normalisierung http://en.wikipedia.org/wiki/master_data_management Entsteht oft aus Firmenfusionen und muss danach entschlackt werden Bsp.: SAP NetWeaver MDM 43 Master Data Management (MDM) 44 MDM Data Manager Search and identify identical master data objects Merge identical objects centrally Provide relevant key mapping information MDM Server MDM Import Manager Import new objects Match and merge identical or duplicate objects centrally Provide relevant key mapping information SAP NetWeaver XI Converts data into XML format Quelle: URL: http://sdn.sap.com, Artikel von David, Klaus Legacy system SAP R/3 system http://searchsap.techtarget.com/resources/sap-mdm-software Non-SAP system http://searchsap.techtarget.com/generic/0,295582,sid21_gci1232140,00.htm l

13.5 Extension of Repositories by Metamodel Extension 46 Extension of Metamodel-Driven Repositories M3 EMOF 45 Metamodel repository <<load>> M2 Extension 1 Extension 2 ERD Xcerpt DFD <<generates>> M1 ERD-Java Xcerpt-Java Xcerpt queries DFD-Java DFD infrastructure M0 ERD-based ERD databased objects ERD hibernated ERD File Warum sind metamodellgesteuerte Repositorien wichtig für Werkzeugnutzung und -bau? 47 Erweiterung Erweiterung der der typisierten typisierten Zugriffsschnittstellen Zugriffsschnittstellen und und Codepakete Codepakete durch durch Erweiterung Erweiterung bzw. bzw. Komposition Komposition von von Metamodellen Metamodellen In a metamodel-driven repository, loading of new metamodels extends the access interfaces load the new metamodel generate new typed access interfaces (and code) for access, query, consistency, etc load new code by dynamic class loading run the new code, allocate new extended objects Für Für eine eine domänenspezifische domänenspezifische Sprache Sprache schafft schafft man man ein ein als als eine eine Erweiterung Erweiterung des des Repositories Repositories einer einer GPL GPL Für Für eine eine SEU SEU einer einer Methode Methode schafft schafft man man ein ein durch durch Komposition Komposition der der Repositorien Repositorien der der Basistechniken Basistechniken