Reza Noroozi. Modellgetriebene Entwicklung aller SOA-Schichten

Größe: px
Ab Seite anzeigen:

Download "Reza Noroozi. Modellgetriebene Entwicklung aller SOA-Schichten"

Transkript

1 Reza Noroozi Modellgetriebene Entwicklung aller SOA-Schichten Diplomarbeit eingereicht im Rahmen der Diplomprüfung im Studiengang Angewandte Informatik am Department Informatik der Fakultät Technik und Informatik der Hochschule für Angewandte Wissenschaften Hamburg Betreuender Prüfer : Prof. Dr. rer. nat. Jörg Raasch Zweitgutachter : Prof. Dr. Olaf Zukunft Abgegeben am 04. Januar 2008

2 Reza Noroozi Thema der Diplomarbeit Modellgetriebene Entwicklung aller SOA Schichten Stichworte Modelgetriebene Softwareentwicklung, modellgetriebene Architektur, Modellierung, serviceorientierte Architektur, Webservice Kurzzusammenfassung Diese Diplomarbeit beschreibt einen Ansatz, Schichten einer SOA mit Hilfe von Methoden der modellgetriebene Softwareentwicklung zu realisieren. Dabei wird definiert welche der Schichten sich modellgetrieben entwickeln lassen. Hierzu werden die Opensource Werkzeuge AndroMDA und openarchitectureware, die der Unterstützung von modellgetriebener Softwareentwicklung dienen, auf ihre Praxistauglichkeit evaluiert. Als Ergebnis der Untersuchung soll beurteilt werden, welches Werkzeug für die Umsetzung des im Rahmen dieser Arbeit zu entwickelnden Konzepts am zweckmäßigsten ist. Dieses Werkzeug wird schließlich verwendet um einen Prototypen zu realisieren. Reza Noroozi Title of the paper Model driven development of all SOA Layers Keywords Model driven software development, model driven architecture, modelling, service-oriented architecture, web service Abstract This thesis describes a concept of how to develop layers of a Service Orientated Software Architecture with the help of methods of model driven Software Development. In this context it will be defined which of these layers can be developed in a model driven way. Therefore, it will be evaluated how practically useful the tools AndroMDA and openarchitectureware are, which are for the support of model driven architecture. The result of the evaluation will be, to choose the tool that is most efficient in the frame of the concept that is to be developed in this paper. Finally, this tool will be used to realise a prototype.

3 Inhaltsverzeichnis Inhaltsverzeichnis... I Abbildungsverzeichnis... IV Tabellenverzeichnis... VI Abkürzungsverzeichnis...VII 1 Einleitung Motivation Ziel der Arbeit Kapitelbeschreibung Grundlagen der MDA/MDSD Einführung Motivation und Ziele der MDA Modellierung Metamodelle UML Profile Modelle der MDA Computation Independent Model Platform Independent Model Platform Model Platform Specific Model Platform Specific Implementation Transformation Transformationsarten Re-Enginering Templatebasierte Transformation Serviceorientierte Architektur Einführung Kernidee einer SOA Geschäftsprozesse Drei Rollen einer SOA SOA Schichten Präsentationsschicht Orchestrierungsschicht...33

4 II Serviceschicht Integration Architecture-Schicht Applikationsschicht Web Service SOAP WSDL UDDI Fazit Vergleichbare Arbeiten Ansätze aus der Literatur Softwaretechnische Lösungen MDSD Werkzeuge Überblick Anforderungsanalyse Modellierungskriterien Transformationskriterien IDE Integrationskriterien Dokumentation Übersicht der Anforderungen openarchitectureware Einführung Architektur Modellierung Modeltransformation IDE Integration Dokumentation AndroMDA Einführung Architektur Modellierung Modelltransformation IDE Integration Dokumentation Evaluierung Analyse Technische Voraussetzung Realisierungsmöglichkeit einer SOA Feststellung des Umfangs für den Prototypen Zielplattform...63

5 III Zielplattform Benötigte Tools...66 Eclipse und oaw...66 Modellierungswerkzeug...66 Applikationsserver...67 Apache Axis Fallstudie Bildjournalismus Servicemodellierung SuchService Orchestrierungsschicht Clientanwendung Anwendungsfälle Metamodell der Anwendung Businessobjektmodell Präsentationsschicht Serviceschicht Codeanalyse Übersicht Fazit Zusammenfassung der Ergebnisse Ausblick...86 Anhang I: Metriken...88 Literaturverzeichnis...92

6 IV Abbildungsverzeichnis Abbildung 2-1 Entwicklung der Programmiersprachen...16 Abbildung 2-2 offizielle Grafik der MDA...16 Abbildung 2-3 Meta-Ebenen der OMG...17 Abbildung 2-4 Tagged-Value Notation...18 Abbildung 2-5 Generierungsinfrastruktur nach MDA...19 Abbildung 2-6 Formalisierungsbeispiel...20 Abbildung 2-7 CIM Beispiel...21 Abbildung 2-8 PIM Beispiel...21 Abbildung 2-9 Schematische Darstellung einer MDA-Transformation...22 Abbildung 2-10 Beispiel PSM...22 Abbildung 2-11 generiertes PSI (SQL)...23 Abbildung 2-12 generiertes PSI (Java)...23 Abbildung 2-13 Transformationsvarianten M2M und M2T...24 Abbildung 2-14 Transformationsarten...25 Abbildung 2-15 xpand der openarchitectureware...27 Abbildung 2-16 Ausgabeartefakt...27 Abbildung 3-1 Die drei Rollen der Webservices...31 Abbildung 3-2 Die Bestandteile des SOA-Modells nach [LIEBHART 2007]...32 Abbildung 5-1 Generator Frameworks der oaw...47 Abbildung 5-2 xpand mit Code-Highlithing- und Vervollständigungsmechanismus...49 Abbildung 5-3 AndroMDA Architektur...51 Abbildung 5-4 Screenshot Android...55 Abbildung 5-5 Architekturentwurf auf Basis der AndroMDA Cartridges...58 Abbildung 5-6 Architekturentwurf auf Basis der oaw Cartridge (EJB)...58 Abbildung 6-1 Mögliche SOA Realisierung auf Basis von Opensource Produkten...62 Abbildung 6-2 Zielarchitektur des Prototyps...64 Abbildung 6-3 JSF Komponentebaum...66 Abbildung 7-1 SOA des Fallstudie...70 Abbildung 7-2 Klassendiagram SuchService...71 Abbildung 7-3 Ausgabeartefakt...72

7 V Abbildung 7-4 Anwendungsdiagram des Akteurs Redakteure...73 Abbildung 7-5 UML Profile für die Domäne...74 Abbildung 7-6 Geschäftsobjektmodell des Bildergaleriesystems...76 Abbildung 7-7 Dialogverlauf des Bildergaleriesystems...78 Abbildung 7-8 Verwendung von JSF UI Komponenten in einer JSP (login.jsp)...79 Abbildung 7-9 Beispiel JSF Navigationsregel Datei (faces-config.xml)...79 Abbildung 7-10 Session Facade...81 Abbildung 7-11 Ausgabeartefakt...82

8 VI Tabellenverzeichnis Tabelle 5-1 Übersicht der Bewertungskriterien Modellierung...45 Tabelle 5-2 Übersicht der Bewertungskriterien Transformation...46 Tabelle 5-3 Übersicht der Bewertungskriterien IDE Integration...46 Tabelle 5-4 professionelle Support sowie gute Dokumentation...46 Tabelle 5-5 mitgelieferte Cartridges der AndroMDA...52 Tabelle 5-6 Cartridges...52 Tabelle 5-7 Punktvergabe...56 Tabelle 5-8 Modell- und Modellierungskriterien...57 Tabelle 5-9 Transformationskriterien...57 Tabelle 5-10 IDE Integrationskriterien...57 Tabelle 5-11 Dokumentation und Support...57 Tabelle 7-1 Ressourcen für den Webservice...83

9 VII Abkürzungsverzeichnis CASE CIM DAO DSL EMF GoF HQL J2EE JSF JSP M2C M2M MDA MDD MDR MDSD MOF MVC oaw OMG OO OOA OOD OOP PIM PM PSI PSM RUP SOA Computer Aided Software-Engineering Computation Independent Model Data Access Object Domain Specific Language Eclipse Modeling Framework Gang of Four (Autoren des Buches Design Pattern) Hibernate Query Language Java 2 Plattform Enterprise Edition Java Server Face Java Server Page Model-To-Code Model-To-Model Model Driven Architecture Model Driven Development Meta Date Repository Model Driven Software Development Meta Object Facility Model View Controller openarchitecturware Object Management Group Objektorienietrung Objektorientierte Analyse Objektorientiertes Design Objektorientierte Analyse Platform Independent Model Platform Model Platform Specific Implementation Platform Specific Model Rational Uniffied Process Serviceorientierte Architektur

10 VIII SOAP UML WS WSDL XMI XML XUML Simple Object Access Protokol Unified Modeling Language Web-Service Web Service Definition Language XML Metadata Interchange extensible Markup Language Executable UML

11 1 Einleitung Mit der Überschrift How Systeme will be build beschreibt die Object Management Group (OMG) aus ihrer Sicht, wie sie sich die Systementwicklung künftig mit Hilfe ihrer Initiative zur modellgetrieben Softwareentwicklung, Model Driven Architecture (MDA), vorstellt. Im Mittelpunkt der Entwicklung stehen Modelle, welche ohnehin eine wichtige Rolle bei dem Softwareentwicklungsprozess spielten. Jedoch dienten sie zuvor ausschließlich Dokumentations- und Kommunikationszwecken zwischen den beteiligten Personen in Softwareprojekten. Mit Hilfe des MDA-Ansatzes sollen Modelle nun die zentrale Rolle in den Entwicklungsprozessen übernehmen, indem aus den Modellen Code generiert wird. Dabei soll die Transformation aus Modellen bis zur Code-Ebene mehrstufig geschehen. Hierzu führt die OMG im Kontext von MDA die Begriffe plattformunabhängiges und plattformspezifisches Modell ein. Es handelt sich hierbei um die Trennung der Zugehörigkeit von Fachlichkeit und softwaretechnischer Technologie. Die Isolation der Fachlichkeit von der Technologie soll an erste Stelle dafür sorgen, agile Systeme zu schaffen, die flexibel an den ständigen Technologiewandel anpassbar sind. Die Notwendigkeit einer Lösung zu dieser Thematik erklärt sich durch den asynchronen Lebenszyklus der Fachlichkeit und der Technologie eines Systems. Die Anpassung an neue Technologien verlangt monetäre und zeitliche Ressourcen, die bei der Softwareherstellung nicht unbegrenzt zur Verfügung stehen. Somit kann die MDA bei der Modernisierung eines Systems dafür sorgen, dass nicht alle Teile eines Systems neu entwickelt werden müssen. Dies wird durch die Trennung der Fachlichkeit von der technologischen Spezifikation ermöglicht. In den letzten Jahren wurde die MDA von vielen Kritikern als nicht praxistauglich bezeichnet. Microsoft kritisiert die OMG s MDA auf Grund der Modellierungssprache Unified Modeling Language (UML), welche ebenfalls ein Standard der OMG ist und führt seinen Beitrag zur modelgetriebene Softwareentwicklung unter dem Namen Software- Factories (SF) [GREENFIELD und SHORT 2004] ein. Das SF Projekt wird von Jack

12 Einleitung 10 Greenfield und Keith Short geleitet, beide waren beim Aufsetzen einiger Spezifikationen bei der OMG beteiligt (vgl. [GRUHN et. al. 2006]). Als Kontra-Argument wird die schlechte Beschreibungsmöglichkeit der Domänen mit UML genannt. Als Lösung definieren sie, dass die Modelle domänenspezifisch, d.h ganz an der konkreten Domäne angepasst sein müssen. Doch die UML wurde in den letzten Jahren weiter entwickelt und bietet seit der MOF2 und UML2 eine Reihe von Erweiterungsmöglichkeiten der Modellierungssprache, der UML, wie etwa Stereotypen und Tagged-Values, die speziell für den MDA-Ansatz konzipiert worden. Nach dem Stand der Entwicklung und Erfahrungen, die mit den MDA-Ansatz in den letzten Jahren gemacht wurden, kann heute davon gesprochen werden, dass die modellgetriebene Softwareentwicklung nicht mehr nur ein Forschungsthema ist, sondern eine mögliche Art und Weise darstellt, wie Software entwickelt werden kann, ganz nach OMG s Vorstellung. Auch in der Praxis hat sich die modellgetriebene Softwareentwicklung bewährt. Hierzu führt die OMG eine Liste [OMG 2007a] von Erfolgsgeschichten von Unternehmen auf, die bereits den MDA-Ansatz in Projekten erfolgreich umgesetzt haben, darunter auch DaimlerChrysler AG. Doch wie reagiert die modellgetriebene Softwareentwicklung gegenwärtig auf aktuelle Herausforderungen in der IT-Branche? Diese Frage bezieht sich auf die heutige IT Globalisierung und das Vermeiden von monolithischen Systemen. Die Serviceorientierte Architektur (SOA) verspricht diese Lücke zu schließen, indem Services zur Verfügung gestellt werden, die betriebsintern und bei Bedarf betriebsübergreifend verwendet werden können und bei einem Technologiewechsel weiterhin bestehen bleiben. Ein Service im Kontext von SOA sollte die Fachlichkeit unterstreichen und keinerlei technologische Informationen beinhalten. Diese können betriebsintern sowie von Geschäftspartnern verwendet werden, auch wenn sie unterschiedliche Plattformen verwenden. Bis Dato gibt es Versuche, die MDA für die Serviceorientierung zu verwenden, wie etwa der Standard der OMG zur Modernisierung von bestehenden Applikationen unter dem Namen Architecture Driven Modernization (ADM). Hier sollen durch den modellgetriebene Ansatz MDA Legacy-System e1 modernisiert werden. Diese Arbeit beschäftig sich mit der Möglichkeit eine SOA bzw. die Schichten einer SOA (Präsentations-, Orchestrierungs-, Serviceschicht und die Entitäten) modellgetrieben zu entwickeln. 1.1 Motivation Es werden bereits Methoden der modellgetriebene Softwareentwicklung verwendet, um Schichten einer SOA zu realisieren. Dabei handelt es sich um die 1 dt.: Altsysteme

13 Einleitung 11 Orchestrierungsschicht, hier werden die Services im Sinne von SOA mit einander zu einem Geschäftsprozess kombiniert. Die Realisierung dieser Schicht wird mit einem Ablaufdiagramm modelliert. Hieraus wird ein textuelles Artefakt generiert, welches mit Hilfe von Workflow-Engines ausgeführt werden kann. Auch bei der Realisierung von Services gibt es Generierungstechniken, die dem Entwickler lästige Routinearbeiten abnehmen. Es besteht, zum Beispiel, mit Apache extensible Interaction System 2 (Axis2) die Möglichkeit, aus einer (Service-) Schnittstellenbeschreibungsdatei (WSDL) Java Code zu generieren (WSDL2Java) oder umgekehrt aus Java WSDL (Java2WSDL) zu generieren. Hier ist das Potential groß, diese modellgetrieben zu entwickeln. Des Weiteren können die modellgetriebenen Softwareentwicklungsmethoden genutzt werden, um den Infrastrukturcode zwischen den Schichten zu generieren. So kann dadurch Entwicklungszeit verkürzt sowie die Qualität einer Anwendung verbessert werden. Die Vorteile der MDA/MDSD können angesichts der eben genannten Fällen helfen, Anwendungen auf Basis einer SOA zu entwickeln. Daher ist es erstrebenswert, hierzu eine Untersuchung zu starten, um herauszufinden, in wie weit sich die Entwicklung einer SOA durch Methoden der modellgetriebene Softwareentwicklung realisieren lässt. 1.2 Ziel der Arbeit Das Ziel dieser Arbeit ist es, ein Konzept zu entwickeln, welches beschreibt, wie mit Hilfe der Methoden der modellgetriebene Softwareentwicklung die Realisierung einer SOA möglich ist. Im Folgenden wird eine Liste der Ziele aufgeführt, die im Rahmen dieser Arbeit angestrebt werden: Grundlagen: Erklärung der grundlegenden Konzepte von modellgetriebener Softwareentwicklung nach OMG s Vorgaben und verwandten Ansätzen. Zudem sollen Grundbegriffe sowie die Kernidee einer SOA geklärt werden. Des Weiteren sollen die SOA Schichten festgelegt und beschrieben werden. Marktanalyse: Vergleich und Bewertung von bestehenden Werkzeugen für modellgetriebene Softwareentwicklung, die sich bereits auf dem Softwaremarkt etabliert haben. Zur Bewertung der Werkzeuge werden einige Anforderungen definiert, an Hand derer das Werkzeug ausgewählt wird, welches für die Umsetzung des Konzepts im Rahmen dieser Arbeit am vorteilhaftesten ist.

14 Einleitung 12 Konzeption und Realisierung: Bei der Konzeption geht es darum, für die einzelnen SOA-Schichten entsprechende Modelle zu entwerfen. An Hand der entwickelten Modelle soll eine Beispielanwendung modellgetrieben entwickelt werden. Codeanalyse: Eine Codeanalyse dient dazu, mit Hilfe von Code-Metriken zu prüfen, in wie weit die Entwicklung des Prototyps modellgetrieben realisiert wurde und an welchen Stellen eine manuelle Code-Ergänzung stattfand. 1.3 Kapitelbeschreibung Die vorliegende Diplomarbeit gliedert sich wie folgt: Kapitel 2 (Grundlagen der modellgetriebene Softwareentwicklung) gibt einen Überblick über die Motivation und Ziele der MDA sowie über verwandte Ansätze. Kapitel 3 (Serviceorientierte Architektur) beschreibt die Kernidee einer SOA und ihre einzelnen Schichten. Kapitel 4 (Vergleichbare Arbeiten) Hier werden vorhandene Lösungen für modellgetriebene Entwicklung der serviceorientierten Architektur betrachtet und eine methodische Abstraktion dazu definiert. Kapitel 5 (MDSD-Werkzeuge) stellt zwei Werkzeuge zur Unterstützung von Methoden der modellgetriebene Softwareentwicklung vor und evaluiert sie auf ihre Praxistauglichkeit. Kapitel 6 (Analyse) klärt die softwaretechnische Voraussetzung für die Realisierung eines MDA-Projektes. Des Weiteren werden hier Zielplattform und Umfang des Prototyps festgelegt. Kapitel 7 (Fallstudie) In diesem Kapitel werden an Hand eines Beispielszenarios aus dem Bereich Bildjournalismus die erstellten Modelle aus dem vorigen Kapitel verwendet, um eine Applikation auf Basis einer SOA zu erstellten. Ein weiterer Bestandteil dieses Kapitels ist es an Hand von einfachen Softwaremetriken den Anteil des generierten Codes und des manuell entstandenen Code zu untersuchen.

15 Einleitung 13 Kapitel 8 (Fazit) fasst die Resultate und Erkenntnisse zusammen, die im Rahmen dieser Arbeit erbracht worden sind und gibt eine Szenerie auf die Erweiterungsmöglichkeiten.

16 2 Grundlagen der MDA/MDSD Der Mensch, das Augenwesen, braucht das Bild - Leonardo da Vinci 2.1 Einführung Die OMG ist ein IT-Konsortium, welches im Jahre 1989 aus elf Mitgliedern gegründet wurde und heute laut [OMG] aus hunderten von Mitgliedern besteht, darunter IBM und Apple, aber auch Endanwender. Sie beschäftigt sich mit der Entwicklung von Standards zur Wiederverwendbarkeit, Portabilität und Interoperabilität von objektorientierten Anwendungen in verteilten und heterogenen Umgebungen. Auch bei der MDA werden diese Ziele verfolgt. Bei dem MDA-Ansatz baut die OMG auf ihren restlichen Standards auf wie bei der Wahl der Modellierungssprache, der UML. Bei der Gewährleistung der Portabilität und Interoperabilität baut die OMG auf die Common Object Request Broker Architecture (CORBA) auf. Die Kernidee dieses Ansatzes ist es Applikationen auf Basis von plattformneutralen Modellen automatisiert zu entwickeln. Um aus ihnen plattformspezifische Modelle oder gar plattformspezifische Implementierung zu erzeugen, dienen Transformatoren, auch Generatoren genannt. Auf diese Weise lassen sich aus einem plattformunabhängigen Modell unterschiedliche plattformspezifische Artefakte erzeugen. Neben dem von OMG vorgeschlagenen Standard (MDA) gibt es im Kontext der modellgetriebene Entwicklung von Software die Model Driven Software Development 1 (MDSD). In [STAHL et. al 2007] wird MDSD als ein 1 dt.: modelgetriebene Softwareentwicklung

17 Grundlagen der MDA/MDSD 15 Oberbegriff für Techniken bezeichnet, die aus formalen Modellen automatisiert, lauffähige Software erzeugen. MDA ist dem zu Folge eine Standardisierungsinitiative der OMG zum Thema MDSD. Bevor die Motivation und Ziele der MDA beschrieben werden, folgt eine Definition der MDA nach [MDA 2007c]: The MDA is a new way of developing applications and writing specifications, based on a platform-independent model (PIM) of the application or specification's business functionality and behavior. A complete MDA specification consists of a definitive platform-independent base model, plus one or more platform-specific models (PSM) and sets of interface definitions, each describing how the base model is implemented on a different middleware platform. A complete MDA application consists of a definitive PIM, plus one or more PSMs and complete implementations, one on each platform that the application developer decides to support [ ] 2.2 Motivation und Ziele der MDA Mit dem Erkennen der Software-Krise in den 60ern stieg der Bedarf an ingenieurmäßiger Softwareentwicklung. Seither werden ständig Techniken und Methoden entwickelt um der Krise entgegen zu wirken. Unter Softwarekrise ist an erster Stelle die termingerechte Zeiteinhaltung der Softwarelieferung an den Kunden gemeint [RAASCH 1993]. Neben der Termineinhaltung beinhaltet die Krise auch die Missverständnisse zwischen den Fachleuten und den Entwicklern. Dies hat zur Folge, dass das Produkt den Anforderungen des Kunden nicht in allen Punkten entspricht. Laut einer Studie der Standish Group [STANDISHGROUP] über die Erfolgsstatistik von IT- Projekten (Chaos Report) ist seit 1994 die Zahl der gescheiterten Projekte gegenüber dem heutigen Stand deutlich verbessert. [PETRASCH und MEIMBERG 2006] schreibt, dass heute noch lange nicht das Ende der Krise in Sicht ist, da heute noch viele Software- Projekte nicht mit dem zur Verfügung stehenden Budget auskommen. Die historische Betrachtung der Software-Industrie zeigt ein gewisses sich wiederholendes Entwicklungsschema zur Bewältigung der Komplexität auf. Sie wurden immer abstrakter, d.h. sie entwickelte sich immer mehr weg von dem Maschinen Code (vgl. [PETRASCH und MEIMBERG 2006], [GRUHN et. al. 2006]). Die Abbildung 2-1 illustriert die Entwicklung der Programmiersprachen. Zwar wurde durch den Entwicklungsgang der Programmiersprachen die Softwareherstellung leistungsfähiger [PETRASCH und MEIMBERG 2006], die Komplexität der Anwendungen aber stiegen weiterhin. Nach [PETRASCH und MEIMBERG 2006] stehen die Modellierungssprachen, wie etwa MDA, als letzte Stufe in den Abstraktionsleveln.

18 Grundlagen der MDA/MDSD 16 Abbildung 2-1 Entwicklung der Programmiersprachen Das Ziel, welches die OMG mit der MDA verfolgt, lässt sich aus der offizielle Grafik (siehe Abbildung. 2-2) der MDA erkennen: Im Mittelpunkt der MDA stehen die Spezifikationen der OMG Common warehouse metamodel (CWM), MetaObject Facility (MOF) und die UML. Eine Schicht höher, welche im Bild blau dargestellt ist, stehen Technologien wie CORBA, Web-Services, Java,.NET und XML, welche aus Modellen entstehen. Die äußerste Schicht nennt einige in diesem Kontext wichtige Konzepte des Software-Engineering. Die Pfeile aus dem Kreis heraus stellen die Domänen dar, die modellgetrieben entwickelt werden. Abbildung 2-2 offizielle Grafik der MDA Durch den MDA Ansatz soll die Portabilität, Interoperabilität und Wiederverwendbarkeit gewährleistet bzw. erhöht werden.

19 Grundlagen der MDA/MDSD Modellierung Metamodelle Ein Modell nach [IEEE1471] 1 beschreibt oder spezifiziert ein System zu genau einem bestimmten Zweck. Ein Metamodell stellt die Beschreibungsmittel zur Verfügung, um ein Modell beschreiben zu können. Dieses Modell hat nur die Grammatik des Metamodells zur Verfügung. Das Metamodell wiederum ist ebenfalls eine Instanz eines weitern Modells, welches als Metametamodell bezeichnetet wird. Die OMG definiert hierzu die Metaebenen [MOF], welche auch als Meta-Architektur 2 bezeichnet wird. Die Abbildung 2-3 zeigt die einzelnen Ebenen und in welchem Verhältnis sie zu einander stehen. Jede Ebene (M#), mit Ausnahme von M3, ist eine Instanz der oberen Ebene (M#+1) und hat die Beschreibungsmittel, die ihr von oberer Ebene zur Verfügung gestellt werden. Die M3 kann durch ihre eigenen Beschreibungsmittel beschrieben werden. beschreibt instanceof M3 <<MOF-Element>> Class Metametamodell beschreibt instanceof Metamodell M2 <<UML-Metaelement>> Class beschreibt instanceof Modell M1 Person beschreibt instanceof Instanz M0 Reza Noroozi Abbildung 2-3 Meta-Ebenen der OMG 1 Übernommen aus [GRUHN et. al 2006] 2 Zu der Bezeichnung Meta-Architektur äußern sich [PETRASCH und MEIMBERG 2006] wie folgt: [ ] wobei der Begriff Architektur recht überstrapaziert ist hier ist keine Software-Architektur gemeint, sondern die Schichtung der Metaebenen.

20 Grundlagen der MDA/MDSD UML Profile Mit dem Konzept des UML-Profiles wird ein Standardmechanismus zur Erweiterung des Sprachumfangs vom Metamodel (M2) angeboten. Es gibt bereits einige UML Profiles [OMG 2007b], die von OMG erstellt worden sind und bei Bedarf verwendet werden können. Mit Hilfe eines UML Profiles lässt sich eine Domäne konkreter beschreiben. Die Mechanismen, die bei dem Konzept der UML Erweiterungen eine zentrale Rolle einnehmen sind: Stereotypen, Constraints 1 und TaggedValues 2. Diese werden auch als lightweight Extensions 3 bezeichnet. Ein UML-Profile fasst die lightweight Extensions zusammen, um eine Domäne exakter beschreiben zu können. Bei einem Stereotyp handelt es sich um eine Metamodellklasse, welche beschreibt, wie sie durch andere (Metamodell-)Klassen erweitert werden kann. Nicht nur Klassen können mit Stereotypen versehen werden, sondern auch die Attribute, Operationen sowie Beziehungen. Stereotypen werden in doppelten spitzen Klammern dargestellt. Der Name des Stereotypen fängt mit einem Kleinbuchstabe an. Der Zeit gibt es eine Reihe von Standard Stereotypen (Notation: «stereotypen»). Constraints werden benutzt, um die Semantik eines UML Modellelements präzise zu beschreiben (Notation: laenge: double{<12.0}). Mit Hilfe von Tagged-Values kann die Semantik eines einzelnen Modellelements erweitert werden. Die Abbildung 2-4 zeigt wie ein Tagged-Value in einem Klassendiagramm verwendet wird. Ein Tagged-Value besteht aus einen Namen (Tag) und seinem Wert (Value). Bei der Abbildung 2-4 handelt es sich um ein persitentes Fachobjekt, welches einen Tagged-Value besitzt, um den Namen der Tabelle für die Datenbanktabelle festzustellen. Hier wir der Klassenname gleichzeitig als Tabellenname festgelegt. <<persistent>> Student {namedertabelle = "Student" } Abbildung 2-4 Tagged-Value Notation Im Kapitel 6 (Fallstudie) werden diese Mechanismen an Hand eines praktischen Einsatzes genauer betrachtet. 1 dt.: Bedingung 2 dt.: markierte Werte 3 dt.: leichtgewichtige Erweiterung

21 Grundlagen der MDA/MDSD Modelle der MDA Um die Plattformunabhängigkeit zu gewährleisten, wird bei dem MDA-Ansatz die Generierungsinfrastruktur in Abstraktionsebenen aufgeteilt. Aus einem plattformneutralen Modell soll nach [MDA 2003a] durch eine Transformation ein plattformspezifisches Modell automatisiert generiert werden, welches für die untere Ebene und somit für den jeweiligen Generator als Quelleartefakt dient. Daraus wird schließlich das plattformspezifische Modell oder gar die plattformspezifische Implementierung generiert. Die Abbildung 2-5 zeigt die Abstraktionsebenen einer MDA. Die Rechtecke im Bild illustrieren die Modelle der UML und die unterste Ebene die sprachspezifischen Implementierungen (.NET oder Java), welche durch eine Transformation entstanden sind. Die Pfeile in der Grafik stellen die Transformatoren dar. CIM (Fachliche Spezifikation) PIM (Fachliche Spezifikation) T.Net (PSM) J2EE (PSM) T Code/.Net (PSI) Code/Java (PSI) Abbildung 2-5 Generierungsinfrastruktur nach MDA Die Voraussetzung für die Codegenerierung aus Modellen ist die formale Beschreibung des Modells. Die formalisierte Darstellung soll so beschrieben sein, dass der Transformator sie zur weiteren Verarbeitung verwenden kann. Die formale Darstellung des Modells wird im MDA/MDSD Umfeld als textuelles Artefakt dargestellt. Hierfür bietet sich die XML als formales Beschreibungsdokument an, das trotz der einfachen Beschreibungsweise sehr flexibel ist. Die Abbildung 2-6 zeigt exemplarisch eine Darstellungsmöglichkeit eines UML Modells (hier Klassendiagram) durch ein XML Dokument. Das XML Dokument dient schließlich dem Transformator als Eingangsartefakt. Das Resultat der Transformation ist Code in der Programmiersprache Java.

22 Grundlagen der MDA/MDSD 20 -name Person +getname() : String +setname( name : String ) Transformation <?xml version="1.0" encoding="utf-8"?> <class name="person"> <fieldlist> <field name="name" type="string" visbility="private"/> </fieldlist> <oplist> <operation name="getname" visbility="public" returntype="string"/> <operation name="setname" paramenter="name:string" returntype="void" visbility="public"/> </oplist> </class> XML Transformation public class Person { private String name; public String getname() { return name; } } public void setname(string name) { this.name = name; } Java Abbildung 2-6 Formalisierungsbeispiel Das Formalisierungsbeispiel (siehe Abbildung 2-6) kann gleichzeitig dafür verwendet werden, zur klären, wie aus demselben Modell Programme in unterschiedlichen Sprachen generiert werden können. Die UML Darstellung ist sehr abstrakt dargestellt und beinhaltet Informationen, welche ganz unabhängig von einer bestimmten Programmiersprache sind. Bei der Transformation können plattformspezifische Informationen verwendet werden, um die gewünschte Zielsprache zu generieren. Diese Technik wird im nächsten Abschnitt genauer betrachtet Computation Independent Model Bei dem Computation Independent Model (CIM) 1 handelt es sich um ein Modell, welches ein System ohne irgendwelche Details bezüglich der Hard- und Software beschreibt. Die Abbildung 2-7 illustriert ein CIM, welches ein Teil eines Bibliothek-Systems darstellt. Sie zeigt, dass ein Buch aus Kapiteln besteht. Das beinhaltet keinerlei Information über eine konkrete Plattform. Trotzdem sind die für das Verständnis relevanten Informationen hierin enthalten. 1 dt.: Berechnungsunabhängiges Modell

23 Grundlagen der MDA/MDSD 21 -titel -isbn -autor Buch +gettitel()... bestehaus 1..* -titel Kapitel +gettitle()... Abbildung 2-7 CIM Beispiel Platform Independent Model Die plattformunabhängige Modellierung der Fachdomäne wird als Platform Independent Model (PIM) 1 bezeichnet. Bei diesem Modell werden nur die fachlichen Aspekte berücksichtigt und dementsprechend modelliert. Nach der MDA Spezifikation (vgl. [MDA 2003a]) sollte ein PIM technologie- und herstellerneutral sein. Das o.g. CIM wird in diesem Abschnitt spezifiziert. Die Abbildung 2-8 zeigt das Modell detaillierter als die CIM-Darstellung. Die Attribute vom Buch und Kapitel werden mit zusätzlichen Informationen dargestellt: der Typ eines Attributs. Eine weiterer Informationsgehalt, welcher im CIM verborgen blieb und hier dargestellt ist, ist die Assoziation zwischen Buch und Kapitel als Komposition und deren Kardialitäten (1:N). <<entity>> Buch -isbn : String -titel : String -autor : String 1..* <<entity>> Kapitel -titel : String Abbildung 2-8 PIM Beispiel Platform Model Das Platform Model (PM) beschreibt die Spezifikation einer konkreten Plattform (J2EE,.Net), daher ist auch der synonyme Name Plattformdeskriptor oder Platform Description Model (PDM) 2 geläufig. Einfach ausgedrückt ist das PM ein Modell, welches zur Transformation als Quellartefakt neben dem PIM benötig wird, um ein plattformspezifisches Modell zu generieren. Die Abbildung 2-9, angelehnt an [PETRASCH und MEIMBERG 2006], illustriert die MDA Transformation mit PIM und PM als Quellartefakte und dem PSI als Zielartefakt. Nach [PETRASCH und MEIMBERG 2006] 1 dt.: plattformunabhängiges Modell 2 dt.: plattformbeschreibungs Modell

24 Grundlagen der MDA/MDSD 22 sollen für PM zur Beschreibung der Zielplattform eines Systems Metamodelle oder UML Profile eingesetzt werden. Abbildung 2-9 Schematische Darstellung einer MDA-Transformation Platform Specific Model Die ideale Realisierung des MDA Ansatzes nach OMG ist ein Platform Specific Model (PSM) 1, ein aus einem PIM transformiertes Modell. Dieses Modell konkretisiert ein PIM mit weiteren Spezifikationen bezüglich einer bestimmten Plattform/Sprache wie etwa J2EE,.Net oder SQL. Die Abbildung 2-9 illustriert ein PSM, welches aus dem PIM (siehe Abbildung 2-10) transformiert wurde. Die Transformation eines Modells in ein anderes wird als Model-To-Model (M2M) Transformation bezeichnet und die Transformation aus einem Modell nach Code wird als Model-To-Code (M2C) oder Model- To-Text Transformation bezeichnet. Hierzu folgt im nächsten Abschnitt eine genaure Beschreibung. Abbildung 2-10 Beispiel PSM 1 dt.: plattformspezifisches Modell

25 Grundlagen der MDA/MDSD Platform Specific Implementation Der generierte Code aus einem PIM oder PSM wird als Platform Specific Implementation 1 (PSI) bezeichnet, jedoch wird diese Bezeichnung in der MDA Literatur selten verwendet, gebräuchlicher ist die einfache Bezeichnung Code. Die Autoren von [PETRASCH und MEIMBERG 2006] verwenden diese Bezeichnung. Im Rahmen dieser Arbeit werden beide Bezeichnungen verwendet. Im idealen Falle, so schlägt es auch die OMG vor, wird eine PSI aus einem PSM und nicht direkt aus einem PIM generiert. Die Abbildung 2-11 stellt eine PSI dar, welche auf Basis des PSMs aus der Abbildung 2-10 generiert werden könnte create table Buch{ isbn VARCHAR(255), title VARCHAR(255), autor VARCHAR(255), primary key (isbn) } Abbildung 2-11 generiertes PSI (SQL) Das Ursprungsmodell (PIM, siehe Abbildung 2-8) kann ganz nach der MDA Paradigma dafür verwendet werden, um eine andere PSI zu generieren, wie Java oder C#. Die Abbildung 2-12 zeigt exemplarisch einen in Java generierten Code public class Buch { public String isbn; public String title; public String autor; } Abbildung 2-12 generiertes PSI (Java) 2.5 Transformation Die Überführung eines Modells, wie etwa PIM, in ein anderes Modell, wie PSM oder PSI, wird als Transformation bezeichnet. Auch die PSI wird als Modell gesehen, auch wenn es sich dabei um ein textuelles Artefakt handelt (vgl. [GRUHN et. al. 2006]). Softwaretechnisch betrachtet handelt es sich bei einen Transformator (auch Generator genannt) um ein Softwarestück, welches in der Lage ist, aus einem importierten Artefakt (Quellartefakt) durch Weiterverarbeitung ein Zielartefakt zu generiert. Bei dem 1 dt.: plattformspezifische Implementierung

26 Grundlagen der MDA/MDSD 24 generierten Artefakt kann es sich um ein Modell oder Code/Text handeln. Daher wird in [PETRASCH, MEIMBERG 2006] darauf aufmerksam gemacht, dass eine Transformation nicht identisch mit der Code-Generierung ist, da im Kontext der MDA zwischen Model- To-Model 1 (M2M) und Model-To-Code 1 (M2C) unterschieden wird. Bei M2C handelt es sich somit um Code-Generierung. In diesem Abschnitt werden Transformationsarten und Transformationstechnologien vorgestellt Transformationsarten Die Abbildung 2-13 stellt die Transformationsvarianten der MDA dar, welche auch als MDA-Pattern in [MDA 2003a] dokumentiert sind. Bei den Rechtecken handelt es sich um Modelle, welche durch Transformation im Bild als breite Pfeile dargestellt in ein anderes Modell überführt werden. Die mit etwas rundlichen Ecken dargestellten Rechtecke mit der Aufschrift Transformation Spezifikation sind Informationen, die der Generator für das Transformieren des Zielartefaktes benötigt (PM). Die MDA schreibt die Anzahl der Abstraktionsebenen nicht vor, daher ist es durchaus denkbar, eine Generierungsinfrastruktur nach dem MDA-Ansatz zu realisieren, die die Transformation nicht nur von PIM PSM PSI macht, sondern auch von PIM PSM PSM PSI. Modell M2M Transformation Specification Modell M2T Transformation Specification public class Student { public String getname(){ return "Reza"; } } Abbildung 2-13 Transformationsvarianten M2M und M2T 1 dt.: Modell-zu-Modell

27 Grundlagen der MDA/MDSD Re-Enginering Zur Synchronisation von Modellen und Code im Kontext von MDSD wird zwischen drei Arten unterschieden: Forward-, Reverse- und Roundtrip-Engineering. Die einseitige Transformation von Modell zu Code wird als Forward-Engineering bezeichnet und umgekehrt wird somit die Transformation von Code nach Modell als Reverse- Engineering definiert. Als Roundtrip Engineering wird die Möglichkeit bezeichnet, dass nach einer Änderung im Code synchron dazu das Modell angepasst wird und ebenso nach einer Änderung im Modell synchron dazu der Code angepasst wird. Die Abbildung 2-14 illustriert alle drei möglichen Ansätze grafisch. Abbildung 2-14 Transformationsarten Die OMG beschreibt in [MDA 2003a] nur die einseitige Transformation (siehe Abbildung 2-8, MDA Muster). Die Rückgenerierung ist in der Praxis nicht trivial (vlg. [PETRASCH und MEIMBERG 2006], [GRUHN et. al. 2006]). Nach [PETRASCH und MEIMBERG 2006] ist Re-Engineering nur bei Zielartefakten mit manuellen Anteilen ein Problem, das gelöst werden muss. Da in der Praxis die 100%ige Code-Generierung selten ist und da die manuelle Ergänzung betätigt werden muss, besteht bei einem erneuten Generatorlauf das Problem der Überschreibung der manuell implementierten Teile. Zur diesem Problem gibt es zwei Lösungssätze, zum Einen einen Protected Regions 2 im Code, welche bei einer erneuten Generierung nicht überschrieben werden, zum Anderen besteht die Möglichkeit, den manuellen und generierten Code durch separate Dateien zu trennen. Die genannten Lösungskonzepte bezüglich des Re-Engineering 1 dt.: Modell-zu-Code eine allgemeiner Begriff für Code und anderen textuelle Artefakte ist die Bezeichnung Modellzu-Text (M2T) 2 dt.: Geschützte Bereiche

28 Grundlagen der MDA/MDSD 26 werden an dieser Stelle nicht weiter vertieft, jedoch wird auf die Literaturquellen ([PETRASCH und MEIMBERG 2006] und [GRUHN et. al. 2006]) hingewiesen, welche das Thema etwas ausführlicher behandeln Templatebasierte Transformation Bei Templates auch Boilderplates genannt [GRUHN et. al. 2006] handelt es sich um schablonenartige Text-Dokumente, welche aus zwei wesentlichen Teilen bestehen. Zum Einen aus einem Teil, der im Template Dokument fest geschrieben ist und im Zielartefakt ebenso bestehen bleibt, zum Anderen aus einem Teil, der eine Art Platzhalter darstellt. Diese Stellen werden bei einer Transformation durch Informationen ersetzt. Als Ausgangsartefakt dieser Transformation entsteht ein neues Dokument. Die Abbildung 2-15 zeigt solch ein Template-Dokument. Hierbei handelt es sich um ein Template-Engine xpand aus der Sprachfamilie der openarchitectureware (oaw) 1. Dabei kann die Trennung der Platzhalter («...») von dem fest geschriebenen Teilen erkannt werden. Mit Hilfe des Templates (siehe Abbildung 2-15) wird eine Java Klasse inklusive ihrer Getter und Setter-Methoden generiert. An dieser Stelle werden weder Syntax noch die Sprachelemente der xpand vorgestellt. Diese werden im Kapitel genauer beschrieben «IMPORT metamodel» «EXTENSION template::generatorextensions» «DEFINE main FOR Model» «EXPAND javaclass FOREACH entities()» «ENDDEFINE» «DEFINE javaclass FOR Entity» «FILE name+".java"» { /** * Diplomarbeit-Listing 2-1 R.Noroozi **/ } «ENDFILE» «ENDDEFINE» public class «name» { «FOREACH features AS f» private «f.type.name» «f.name»; public void «f.setter()»(«f.type.name» «f.name») } this.«f.name» = «f.name»; public «f.type.name» «f.getter()»() { return «f.name»; } «ENDFOREACH» 1 oaw ist ein MDA/MDSD-Framework und wird in späteren Kapiteln genauer vorgestellt.

29 Grundlagen der MDA/MDSD 27 Abbildung 2-15 xpand der openarchitectureware Ein mögliches Zielartefakt, welches mit Hilfe des Templates aus Abbildung 2-16 generiert wurde, könnte so aussehen wie in Abbildung /** * Diplomarbeit-Listing 2-1 R.Noroozi **/ public class Person { } private String name; public void setname(string name) { this.name = name; } public String getname() { return name; } Abbildung 2-16 Ausgabeartefakt

30 3 Serviceorientierte Architektur Once you go SOA, everything becomes interoperable - Thomas Erl 1 Dieses Kapitel beschäftigt sich mit den Konzepten der serviceorientierten Architektur. Zunächst wird erörtert, was unter eine SOA zu verstehen ist und welche Rolle Geschäftsprozesse und Services in einer SOA einnehmen. Des Weiteren werden die Schichten einer SOA definiert. 3.1 Einführung Mit Serviceorientierung in Unternehmen wird das Ziel verfolgt, einzelne Anwendungskomponenten mit Schnittstellen zu versehen, die den Dienst sprach- und plattformneutral beschreiben. Dies hat den Vorteil, dass Services betriebsintern sowie bei Bedarf von Geschäftspartnern, somit betriebsübergreifend, verwendet werden können, ganz unabhängig, auf welcher Technologie bzw. Plattform ihr System basiert. So lassen sich durch Realisierung von Services aus Enterprise-Applikationen, die sich weder geografisch noch technisch gleichen, neue dienstorientierte Anwendungen bauen. Dem zu Folge kann es durchaus Fälle geben, bei denen sich einzelne Aktivitäten eines 1 [ERL 2005, S. 59]

31 Serviceorientierte Architektur 29 Geschäftsprozesses (siehe Abschnitt 2.3.1) aus Services von unterschiedlichen Betriebsanwendungen zusammensetzen. Ein passendes Beispiel 1 für eine SOA ist die Buchung einer Reise inklusive Unterkunft und Miete eines Autos. Hierbei handelt es sich um vier Firmen mit vier unterschiedlichen Anwendungen 2, die wiederum in unterschiedliche Programmiersprachen implementiert sein können oder auch auf unterschiedlichen Betriebssystemen laufen. Hier kann der Reisende trotzdem im Reisebüro die Buchung seines Fluges sowie die Bestellung eines Hotelzimmers vornehmen und gleichzeitig ein Auto mieten. Angelehnt an dieses Beispiel folgt eine Definition der SOA nach [HESS et. al. 2006]: "SOA ist ein Architekturmuster, das den Aufbau einer Anwendungslandschaft aus einzelnen fachlichen, das heißt geschäftsbezogenen Komponenten beschreibt. Diese sind lose gekoppelt, indem sie einander ihre Funktionalität in Form von Services anbieten [ ]" Der Begriff Anwendungslandschaft bezeichnet [HESS et. al. 2006] die Gesamtheit der IT-Anwendungen eines Betriebes mit ihren Vernetzungen und Schnittstellen. In [BIEN 2006] wird erklärt, dass die Idee der SOA nichts Neues, sondern eher das Bestreben einer perfekten Anwendungslandschaft ist, welche bei jedem Projekt angestrebt werden sollte. Dabei unterstreicht er die Fachlichkeit und nicht die Technologie. Das Reisebürobeispiel verdeutlicht ebenso, dass die Geschäftsprozesse der jeweiligen Firma im Vordergrund standen. Ein weiterer Bereich, in dem die Serviceorientierung ihren Einsatz findet, ist die Modernisierung von bestehenden Systemen (Legacy-Systeme) 3. So wird die Neuentwicklung dieser, welche mit Kosten verbunden ist, vermieden. Die Idee hierbei ist es, aus dem Legacy-System Services zur Verfügung zu stellen, die weiterhin in neuer Umgebung verwendet werden können. 3.2 Kernidee einer SOA Geschäftsprozesse Ein Prozess, welcher dazu beiträgt, ein Unternehmensziel zu erreichen, wird als Geschäftsprozess bezeichnet. Sein Hauptziel ist Wertschöpfung aus wirtschaftlicher Sicht. Er ist in einzelne Aktivitäten zerlegt. Eine Aktivität wiederum kann aus einem oder mehreren Arbeitschritten bestehen. Ein GP hat einen definierten Anfang 1 [RAASCH 2006] 2 Die Anwendungen der beteiligten Unternehmen (Reisebüro, Autovermietung, Fluggesellschaft und Hotel) ist hier gemeint 3 dt.: Altsysteme (bestehende Applikationen)

32 Serviceorientierte Architektur 30 (Anfangszustand) und ein definiertes Ende (Endzustand). Er befindet sich im Verlauf der Ausführung immer in einem bestimmten Zustand. Ein Zustandswechsel kommt durch ein Ereignis zustande. Die Beendigung einer Aktivität führt zu einem Zustandswechsel. Ein Beispiel für einen Geschäftsprozess wäre die Buchungen einer Flugreise. Die Durchführung eines Geschäftsprozesses muss nicht an einem Stück passieren. In einem bestimmten Zustand kann der Prozess vorerst abgebrochen und später weitergeführt werden. In diesem Zustand kann es sein, dass bestimmte Ressourcen benötigt werden, um den Geschäftsprozess weiterzuführen bzw. abzuschließen. Bei einer Kreditvergabe, wird zum Beispiel immer geprüft, ob der Kunde keinen Schufaeintrag hat. Solange noch keine Antwort da ist, wird der Prozess nicht fortgesetzt. Dieses Beispiel verdeutlicht darüber hinaus, dass es in einem Prozess Unterprozesse geben kann. Bei dem Geschäftsprozess Kreditantrag, wäre z.b. deieschufaprüfung ein Unterprozess. Natürlich kann ein Unterprozess in einem anderen Kontext als eigenständiger Prozess dienen. In einer SOA haben Geschäftsprozesse einen hohen Stellenwert. Die Kombination aus Services kann zu einen Geschäftsprozess führen, wie bei dem Beispiel: Flug- und Hotelzimmerbuchung in ein Reisebüro. Diese Services lassen sich unterschiedlich kombinieren. Im Kontext von SOA wird hier von Orchestrierung gesprochen, welche im Abschnitt genauer vorgestellt wird Drei Rollen einer SOA Die SOA basiert auf der Interaktion zwischen drei Rollen, Service Provider 1, Service Consumer 2 und Service Broker 3. Der Service Provider ist für die Implementierung und Veröffentlichung der Services verantwortlich, ganz unabhängig, ob es sich um Java- Routine oder eine andere Programmiersprache handelt. Wichtig ist hierbei, dass der Dienst eine klar definierte Schnittstelle hat. Darüber hinaus sollte der Dienst im Netz eine eigene eindeutige Adresse besitzen, um vom Außen zugreifbar zu sein. Ein Service Nutzer kann einen bestehenden Service verwenden. Wenn ihm die benötigen Informationen (Schnittstelle und Adresse) bekannt sind, kann er den Dienst direkt nutzen, ist dies nicht der Fall, so muss es über den Service Broker geschehen. Sobald die Informationen vom Broker angekommen sind, kann der Service Nutzer durch einen Request den Nutzungsprozess fortsetzen. Bei einem Service Broker handelt es sich um einen Vermittler zwischen dem Service Anbieter und Nutzer. Er hat zwei Aufgaben, 1 dt.: Service Anbieter 2 dt.: Service Nutzer 3 dt.: Service Vermittler

33 Serviceorientierte Architektur 31 zum Einen Services, die von Service Provider publiziert werden, entgegenzunehmen und in einen Repository abzulegen, zum Anderen über Suchfunktionen Service Nutzern die Möglichkeit zu geben, ihre gewünschten Services zu finden. Die Nutzung eines Service Brokers ist nur dann wichtig, wenn sich die anderen zwei Rollen nicht kennen. Daher ist ein Service Broker nicht unbedingt notwendig. Die Abbildung 3-1 illustriert die Kommunikation zwischen den einzelnen Webservice Rollen. Dieses Paradigma wird als find, bind and execute bezeichnet [WANG et. al. 2004]. Find Publish Abbildung 3-1 Die drei Rollen der Webservices Das Ziel einer SOA ist es, Services bereit zu stellen, welche von vielen Interessenten benutzt werden können, ganz unabhängig, welche Technologie dahinter steckt. Somit spielt die Interoperabiliät bei einer SOA eine wichtige Rolle. Um diese zu gewährleisten, sind bestimmte Voraussetzungen, wie beispielsweise Standardisierung, zu erfüllen. Diese Voraussetzungen werden im nächsten Abschnitt beschrieben. 3.3 SOA Schichten In diesem Abschnitt werden die Schichten eines SOA-Modells beschrieben. Die Abbildung 3-2 illustriert die SOA Schichten. Hierbei handelt sich um eine verteilte IT- Anwendunglandschaft, welche durch bestimmte Technologien und Standardisierung ihre Dienste in einem heterogenen Umfeld zur Verfügung stellt, ganz im Sinne einer SOA. Die unterste Ebene stellt Hardware, Systeme und Netzwerk dar, auf denen sich die Anwendungen befinden. Die zweite Ebene von unten, als Applications gekennzeichnet, illustrieren die Anwendungen, welche sich an unterschiedlichen Orten

34 Serviceorientierte Architektur 32 befinden können und auf unterschiedlichen Plattformen (J2EE/.Net) basieren können. In der Service Ebene befinden sich die Services und alles was zu deren Verwaltung benötig wird. Die Orchestrierungsschicht stellt das Zusammenspiel der Services dar, die oberste Ebene schließlich die Präsentationsschicht. Abbildung 3-2 Die Bestandteile des SOA-Modells nach [LIEBHART 2007] In Folge werden die einzelnen Sichten der SOA beschrieben. Die Beschreibungen sind zum Teil an [LIEBHART 2007] angelehnt. Der Autor beschreibt die einzelnen Schichten einer SOA und stellt einige Open-Source Produkte vor mit dessen Hilfe die einzelnen SOA Schichten realisiert werden können Präsentationsschicht Die Benutzerschnittstellen einer Anwendung auf Basis von SOA unterscheiden sich nicht von einer gewöhnlichen Applikation. Dabei kann es sich um Client Applikationen (webbasierte und Rich Client) oder Office Applikationen handeln. Jedoch sehen die SOA Blueprints der meisten Hersteller Portlets als User Interface vor [LIEBHART 2007]. Hierzu gibt es den Standard Web Service for Remote Portlets (WSRP). WSRP erweitert den WSDL, um den Service mit Hilfe von Portels darstellen zu können.

35 Serviceorientierte Architektur Orchestrierungsschicht Als Orchestrierung wird die Kombination einzelner Services bezeichnet, die zusammen die Geschäftsprozesse darstellen. So kann beispielsweise ein orchestrierter Geschäftsprozess aus mehreren Services bestehen und selber als ein Service verwendet werden. Bei der Realisierung einer Orchestrierungsschicht spielt die Modellierung eine wichtige Rolle, hier wird der Prozess mit Hilfe eines Ablaufdiagrames modelliert. Für die Modellierung gibt es spezielle Standards wie Business Process Execution Langauage (BPEL) und entsprechende Werkzeuge. So lassen sich beispielsweise mit Hilfe eines BPEL Tools Geschäftsprozesse modellieren und als BPEL-Datei ablegen. Diese kann dann in eine BPEL Engie geladen und ausgeführt werden [LIEBHART 2007]. Auf diese Weise lassen sich aus modellierten Prozessen Workflows generieren, die dann auf jeder BPEL-fähigen Workflow-Engine ausführbar sind. In [LIEBHART 2007] ist dokumentiert, dass bei einer SOA ausführbare Prozesse (Workflows) und ausführbare Geschäftsregeln neben den standardisierten Services die wichtigste Grundlage bilden Serviceschicht Bereits in den vorigen Abschnitten wurde erwähnt, dass die Kernidee einer SOA die Bereitstellung von Services ist und dass diese die Fachlichkeit unterstreichen und plattformneutral sein sollen. Die Idee dabei ist, Dienste einer Anwendung bzw. von Anwendungskomponenten durch standardisierte Schnittstellenbeschreibung, wie etwa WSDL, für Webservices zu publizieren. Die eigentliche Implementierung bleibt somit nach Außen verborgen und ist nur über diese Schnittstellebeschreibung, welche sprachneutral dargestellt ist, ansprechbar. Dieses Paradigma ist in der Informatik bereits ohne SOA unter dem Begriff Information-Hiding verbreitet, wobei dabei nicht die Sprachneutralität im Vordergrund stand, sondern die saubere Art und Weise modulare Anwendungen zu entwickeln. Die Serviceschicht beinhaltet neben den Serviceschnittstellen noch die Specialized Services Integration Architecture-Schicht Bei dieser Ebene handelt es sich um eine Integrationsinfrastruktur zu Verknüpfung von Diensten, die von Anwendungen zur Verfügung gestellt werden. 1 dt.: spzeialisierte Dienste/Services: Die Specialized Services sind im Kontext dieser Arbeit nicht relevant, daher werden diese nicht behandelt, allerdings kann an diese Stelle auf die Literaturquellen [LIEBHART 2007, S ] hingewiesen werden.

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

Model Driven Architecture Praxisbeispiel

Model Driven Architecture Praxisbeispiel 1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012 Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Model Driven Architecture

Model Driven Architecture Roland Petrasch Oliver Meimberg Model Driven Architecture Eine praxisorientierte Einführung in die MDA Mit Gastbeiträgen von Florian Fieber und Karsten Thoms dpunkt.verlag Inhaltsverzeichnis Vorwort 1

Mehr

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

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

Produktskizze. 28. November 2005 Projektgruppe Syspect

Produktskizze. 28. November 2005 Projektgruppe Syspect 28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

UML-DSLs effizient eingesetzt. Insight 07, 13.11.2007 Klaus Weber

UML-DSLs effizient eingesetzt. Insight 07, 13.11.2007 Klaus Weber UML-DSLs effizient eingesetzt Insight 07, 13.11.2007 Klaus Weber Einladung Domänenspezifische Sprachen (DSLs) sind notwendige Voraussetzung für den Erfolg einer MDA-Strategie. MID favorisiert statt der

Mehr

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011 Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen OOP München, 26.01.2011 I N H A L T 1. SOA das erste Projekt 2. Prozesse Ergebnisse aus dem Fachbereich 3. Der Business Analyst und BPMN

Mehr

Geschäftsprozessimplementierung mit BPMN, ADF und WebCenter

Geschäftsprozessimplementierung mit BPMN, ADF und WebCenter Geschäftsprozessimplementierung mit BPMN, ADF und WebCenter Johannes Michler PROMATIS software GmbH Ettlingen Schlüsselworte Geschäftsprozess, Horus, SOA, BPMN, ADF, WebCenter Einleitung Die Umsetzung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Modellgetriebene Service-Entwicklung

Modellgetriebene Service-Entwicklung Modellgetriebene Service-Entwicklung Service-orientierte Architekturen (SOA), Prof. Dr. M. Jäger Johannes Tietje 24. Juni 2010 1 / 13 Motivation konkrete Teile eines Dienstes Rahmenimplementierung der

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Software Entwicklung II (SS12)

Software Entwicklung II (SS12) Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Systemdenken und Gestaltungsmethodik System-Modellierung

Systemdenken und Gestaltungsmethodik System-Modellierung Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1 Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services Themen Web Services und SOA Wer kennt den Begriff Web Services? Was verstehen Sie unter Web Services? Die Idee von Web Services Ausgangspunkt ist eine (evtl. schon bestehende) Software Anwendung oder Anwendungskomponente

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Sind Prozessmanagement-Systeme auch für eingebettete Systeme einsetzbar?

Sind Prozessmanagement-Systeme auch für eingebettete Systeme einsetzbar? Sind Prozessmanagement-Systeme auch eingebettete Systeme einsetzbar? 12. Symposium Maritime Elektrotechnik, Elektronik und Informationstechnik, 8.-12. Oktober 2007 Rostock, Deutschland Rostock, Deutschland

Mehr

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.» «PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.» www.pse-solutions.ch ANTOINE DE SAINT-EXUPÉRY 1 PROJECT SYSTEM ENGINEERING

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

INNOVATOR im Entwicklungsprozess

INNOVATOR im Entwicklungsprozess Erfahrungsbericht INNOVATOR im Entwicklungsprozess Basis für Host- und Java-Anwendungen Dr. Carl-Werner Oehlrich, Principal Consultant MID GmbH Das Modellierungswerkzeug INNOVATOR Geschäftsprozess-Modellierung

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Synchronisations- Assistent

Synchronisations- Assistent TimePunch Synchronisations- Assistent Benutzerhandbuch Gerhard Stephan Softwareentwicklung -und Vertrieb 25.08.2011 Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH 01 INDIVIDUELLE SOFTWARELÖSUNGEN 02 05 02 GUMMERSBACH MEHRWERT DURCH KOMPETENZ ERIC BARTELS Softwarearchitekt/ Anwendungsentwickler M_+49 (0) 173-30 54 146 F _+49 (0) 22 61-96 96 91 E _eric.bartels@customsoft.de

Mehr

Ein mobiler Electronic Program Guide

Ein mobiler Electronic Program Guide Whitepaper Telekommunikation Ein mobiler Electronic Program Guide Ein iphone Prototyp auf Basis von Web-Technologien 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller

Mehr

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de www.isento.de

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de www.isento.de Beispielhaft MDSD in der Praxis Dr. Shota Okujava shota.okujava@isento.de www.isento.de Agenda Einführung Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Demo Entwicklung der Metamodelle

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

Mehr

Was macht Layer2 eigentlich? Erfahren Sie hier ein wenig mehr über uns.

Was macht Layer2 eigentlich? Erfahren Sie hier ein wenig mehr über uns. Was macht Layer2 eigentlich? Erfahren Sie hier ein wenig mehr über uns. Seit über 24 Jahren... unterstützen und beraten wir unsere Kunden und Partner erfolgreich bei ihren IT-Projekten. Unsere Kernkompetenz

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes Dozent: G.Döben-Henisch (Version vom 16.April 2005) PPmP VL2 VL2: Softwareprojekt - Anforderungsanalyse Inhalt 1. Struktur eines Softwareprojektes 2. Anforderungsanalyse 1. Struktur eines Softwareprojektes

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

Mehr

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung Software Factories 3 Modellgetriebene Softwareentwicklung Prof. Dr. Dirk Müller Übersicht Einordnung im Lebenszyklus Ziele Hebung des Abstraktionsniveaus Model Driven Architecture (MDA) Domänenspezifische

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization Themen 2 28.04.2010 MODELLGETRIEBENE SOFTWARE-ENTWICKLUNG Grundlagen 3 28.04.2010 Meta-Modell: Lego Meta-Modell Bauvorschriften Building Block * connected with Modell Lego Reale Welt Haus Bilder: (c) designritter

Mehr

Webalizer HOWTO. Stand: 18.06.2012

Webalizer HOWTO. Stand: 18.06.2012 Webalizer HOWTO Stand: 18.06.2012 Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene Warenzeichen sein, ohne

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Jochen Bauer 08.01.2010

Jochen Bauer 08.01.2010 08.01.2010 Um was geht s und wie läuft s ab? Eclipse-EMP-MDT: Standards unter einem Dach! Gliederung 1. der Model (MDT) 2. Model-Driven- (MDD) und MDT 3. Interne Domain-Specific-Languages (DSL) 4. 5. 6.,

Mehr

IBM Software Demos Rational Software Delivery Platform - Anforderungsanalyse

IBM Software Demos Rational Software Delivery Platform - Anforderungsanalyse In dieser Demo führt unser Analyst Alex eine Anforderungsanalyse für die Integration einer Sofort kaufen-option durch. Dadurch werden alle von der Änderung betroffenen Elemente der Auktionsanwendung, auch

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress BPM im Kontext von Unternehmensarchitekturen Konstantin Gress Agenda 1 Worum geht s BPM, EA und SOA im Überblick 2 Link zwischen EA und BPM 3 Link zwischen SOA und BPM 4 Wie spielt das zusammen? 5 Q&A

Mehr

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa

Mehr

WIRTSCHAFTSINFORMATIK

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster A platform for professional model-driven software development. Präsentation im Rahmen des Seminars Software Engineering WS 08/09 Jan Schürmeier Jan.Schuermeier@gmx.de

Mehr

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS, 20.03.2014

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS, 20.03.2014 Neues aus dem 52 North WPS Projekt Benjamin Proß, FOSSGIS, 20.03.2014 Überblick Aktuelle Entwicklungen im WPS Testing WPS 2.0 Neues aus dem 52 North WPS Projekt 2 Der 52 North WPS Version 3.2.0 Unterstützt

Mehr

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig? Pädagogik Melanie Schewtschenko Eingewöhnung und Übergang in die Kinderkrippe Warum ist die Beteiligung der Eltern so wichtig? Studienarbeit Inhaltsverzeichnis 1. Einleitung.2 2. Warum ist Eingewöhnung

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013 Softwarequalität: Zusammenfassung und Ausblick 17. Juli 2013 Überblick Rückblick: Qualitätskriterien Qualitätsmanagement Qualitätssicherungsmaßnahmen Thesen zur Softwarequalität Ausblick: Lehrveranstaltungen

Mehr

Jürgen Schwab, debis Systemhaus

Jürgen Schwab, debis Systemhaus Jürgen Schwab, debis Systemhaus 1 Komponenten - Markt VAA - Referenzmodell: eine komponentenorientierte Anwendungsarchitektur März 99 99 2 Die Voraussetzungen für einen Komponentenmarkt sind so gut wie

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6 Inhalt 1. Einführung 2 2. Erstellung einer Teillieferung 2 3. Erstellung einer Teilrechnung 6 4. Erstellung einer Sammellieferung/ Mehrere Aufträge zu einem Lieferschein zusammenfassen 11 5. Besonderheiten

Mehr

WLAN Konfiguration. Michael Bukreus 2014. Seite 1

WLAN Konfiguration. Michael Bukreus 2014. Seite 1 WLAN Konfiguration Michael Bukreus 2014 Seite 1 Inhalt Begriffe...3 Was braucht man für PureContest...4 Netzwerkkonfiguration...5 Sicherheit...6 Beispielkonfiguration...7 Screenshots Master Accesspoint...8

Mehr

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten Naked-FHIR Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. HL7 Jahrestagung 2015 18. März 2015 Einführung HL7 FHIR stellt eine Reihe an Basis-Ressourcen zur Verfügung Über Zweite Conformance

Mehr

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen vorgestellt am 29.09.2008 in der PASS Regionalgruppe Karlsruhe Michael Riedmüller inovex GmbH Project

Mehr

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank Turning visions into business Oktober 2010 Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank David Croome Warum Assessments? Ein strategisches Ziel des IT-Bereichs der Großbank

Mehr

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0) Erstellung von und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0) In der ArtemiS SUITE steht eine neue, sehr flexible Reporting-Funktion zur Verfügung, die mit der Version 5.0 noch einmal verbessert

Mehr

Einleitung. Für wen ist dieses Buch

Einleitung. Für wen ist dieses Buch i Willkommen! Dieses Buch aus der Reihe Schritt für Schritt wurde so konzipiert, dass Sie mit dem Buch leicht und einfach die wesentlichen Aspekte beim Einsatz von vier der Microsoft Office 2016- Apps

Mehr

Tipps und Tricks zu den Updates

Tipps und Tricks zu den Updates Tipps und Tricks zu den Updates Grundsätzlich können Sie Updates immer auf 2 Wegen herunterladen, zum einen direkt über unsere Internetseite, zum anderen aus unserer email zu einem aktuellen Update. Wenn

Mehr

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009

Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme Fakultät Informatik Institut f ür Angewandte Inf ormatik, Prof essur TIS Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme Hauptseminar Technische Informationssysteme

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

Alle Informationen zu Windows Server 2003 Übersicht der Produkte

Alle Informationen zu Windows Server 2003 Übersicht der Produkte Alle Informationen zu Windows Server 2003 Übersicht der Produkte Downgrade-Rechte für Microsoft Windows Server 2003 Was sind Downgrade-Rechte? Gründe für Downgrades Wichtige EULA-Anforderungen für Downgrades

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

8 Design Patterns. Events

8 Design Patterns. Events 8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante ISO 9001:2015 Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante Prozesse. Die ISO 9001 wurde grundlegend überarbeitet und modernisiert. Die neue Fassung ist seit dem

Mehr

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

Mehr