Das JWAM-Framework und Komponenten

Ähnliche Dokumente
11. Komponenten Grundlagen der Programmierung 1 (Java)

Komponentenbasierte Softwareentwicklung

Modul Software Komponenten 01 Komponenten

Heinz Züllighoven: Schritt 0: Die Anfänge im Kleinen

Enterprise JavaBeans Überblick

17 Komponentenbasiertes Software-Engineering

Behutsame Modernisierung

Softwareentwicklung mit Komponenten

Modul Software Komponenten 10 Komponentenarchitektur

DB-Aspekte des E-Commerce Schwerpunkt: Techniken. Servlets und JavaServer Pages

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Vorlesung Software aus Komponenten

3-Tier-Architecture und J2EE

Programmierprojekt: So0ware Tests. Anne6e Bieniusa Sommersemester 2017

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Das Rollenmuster. Rollenmuster

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Sotograph im Einsatz bei der FIDUCIA IT AG. Harald Doderer, Technische Architektur

Ziele und Tätigkeiten von Architekten

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

Modularisierung und Inversion of Control mit Spring done right

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen

BIF/SWE - Übungsbeispiel

Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen

Verteilte Web-Anwendungen mit Ruby. Ruben Schempp Anwendungen

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Das Kommunikations-Problem Architekten, Entwickler und die Code-Basis Zusammenfassung

Introduction to JSF technology and Rapid Application Development Roland Zänger

CSS Frameworks. Seminar Weiterführende Themen zu Internet- und WWW-Technologien. 9. Mai Johannes Schirrmeister

Unternehmensdokumente mit dem XML Publisher erzeugen

windream SDK Einfache System-Erweiterungen und Software-Integrationen mit windream

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur

Komponentenbasierte Software-Entwicklung

Integration im Enterprise Umfeld

Corporate IT Monitoring

ANGEWANDTE LINGUISTISCHE DATENVERARBEITUNG PROF. DR. JÜRGEN ROLSHOVEN UTE WINKELMANN

Scrum Embedded. Scrum Embedded. Besonderheiten agiler Entwicklung von Embedded-Systemen. MicroConsult - Microelectronics Consulting & Training GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Architekturdokumentation leicht gemacht

J2EE ohne EJB?! Leichtgewichtige Komponentenframeworks in der J2EE

Verbesserung der Architektur und Dokumentation der DPP-Software Saros. Slawa Belousow Institut für Informatik FU Berlin

Workflows ganz einfach Einführung in die Process Cloud

Ein neues Leitbild der Softwareentwicklung Der Werkzeug & Material Ansatz

Webservices für eingebettete Systeme

Greenfoot Getting Started With Programming

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

Software Design basierend auf dem Plug-In Konzept

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Vgl. Oestereich Kap 2.4 Seiten

Informatik II Übung 6 Gruppe 7

Telefonie mit Asterisk:

Softwareentwicklung mit Enterprise JAVA Beans

7. Komponenten Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

REAL SMART HOME CREATE SOMETHING SOFTWARE DEVELOPMENT KIT FÜR DAS APPMODULE

Erläuterungen zu Darstellung des DLQ-Datenportals

Literatur I. Komponenten WS 2014/15 Teil 1/Komponenten

Von der objektorientierten Steuerungssoftware zum OPC UA Interface mit CoDeSys

XML Publisher die universelle Lösung für Geschäftsdokumente

Rahmenwerkbasierte Werkzeugkomponenten am Beispiel des JWAM-Rahmenwerks

Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test

7. Zusammenfassung (1)

PRG 5 Komponentenorientierte Software-Entwicklung

Entwurfsmuster. Marc Monecke

JSP vs. PHP. Ein persönlicher Vergleich. EQUIcon Software GmbH Jena, Jörg Spilling Frankfurter Treffen Agenda

Entwicklung von Web-Anwendungen auf JAVA EE Basis

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Mobil Orientiert

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

SE2-10-Entwurfsmuster-2 15

Rapid Java wie mit Forms

IT S ALL ABOUT THE DOMAIN, HONEY!

Gemeinsam mehr erreichen.

Multimedia im Netz Wintersemester 2012/13

Informatik II Übung 7 Gruppe 7

Mit dem Google-Web-Toolkit moderne Web-Anwendungen entwickeln

Janeva:.NET meets J2EE

Komponentenorientierter Entwurf von PIMs und CIMs mit der KobrA-Methode

Reporting Lösungen für APEX wähle Deine Waffen weise

Multi-Tool Testlandschaft mit DDS

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

Jürgen Schwab, debis Systemhaus

SOLID für.net und JavaScript

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Programmieren 2 C++ Überblick

SAP SharePoint Integration. e1 Business Solutions GmbH

Framework-basierte Anwendungsentwicklung oder Was ist das Problem?

1. Team / Aufgabenstellung

DevOps. Alexander Pacnik, Head of DevOps Engineering

Johannes Hentrich DITA. Der neue Standard für Technische Dokumentation VERLAG

Inhalt. TEIL I Grundlagen. Einleitung 15

Entwurfsvarianten in der Software-Konstruktion

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

Eclipse User Interface Guidelines

Konzeption und Implementierung von SOA Composed Services in der Praxis

Techniker Krankenkasse, Hamburg: 10 Jahre produktives Java Enterprise

JSP und Servlet Programmierung

Transkript:

Das JWAM-Framework und Komponenten Eine konzeptionelle Bestandsaufnahme Kontext Der Begriff Komponente Aktuelle Bedeutung Komponenten und Frameworks Komponenten in JWAM Ausstattungskomponenten Einschubkomponenten Ausblick

Kontext Wunschvorstellungen 1 Die Hoffnung: Komponentensoftware kann analog zu Hardware aus individuell verfügbaren Komponenten (Software-ICs) komponiert werden. Komponenten können additiv hinzugefügt werden. Je nach Bedarf können einfache Komponenten durch komplexe ersetzt werden. Weiterentwicklung und Verbesserungen finden auf Ebene von Komponenten statt.

Kontext Wunschvorstellungen 2 Flexibilität Anzahl der gekauften Komponenten [Quelle: Clemens Szyperski, Component Software] Kosteneffizienz Das Maß, in dem gekaufte Komponenten eingesetzt werden können, ist frei wählbar gekaufte Komponenten lassen sich problemlos mit eigenen Programmstrukturen kombinieren Eigenentwicklungen können problemlos zu Komponenten gemacht und auf dem Komponentenmarkt angeboten werden

Kontext Wunschvorstellungen 3 Geschulte Anwender sollen Standardkomponenten auswählen und in speziellen Editoren graphisch zu fertigen Systemen zusammen

Der Begriff Komponente Grundeigenschaften A A component is is a unit unit of of composition with with contractually specified interfaces and and explicit context dependencies only. only. Components can can be be deployed independently and and are are subject to to composition by by third third parties. Workshop on on Component-Oriented Programming, ECOOP 1996 1996 macht explizit: für Wiederverwendung explizite Schnittstelle(n) darüber was sie anbieten und was sie benötigen schließt damit aus: alltagssprachliche Komponenten im Sinne von Bestandteil Dokumentation

Der Begriff Komponente Spezialisierungen Entwurfskomponenten Liegen im Quelltext vor Komponenten sind sind in in Binärform vorliegende Lösungen softwaretechnischer Probleme, die die so so zusammengefügt werden können, dass dass sie sie ein ein lauffähiges Softwaresystem bilden. Sie Sie können unabhängig voneinander hergestellt, erworben und und eingesetzt werden. Dazu besitzen Komponenten eine eine feste feste Schnittstelle und und enthalten potentiell auch auch eigene Ressourcen, auf auf die die sie sie bei bei der der Ausführung zurückgreifen. Implementationskomponenten liegen in Binärform vor werden statisch ins Kompilat eingebunden Laufzeitkomponenten ebenfalls binär werden zur Laufzeit eingebunden Clemens Szyperski, 1998

Aktuelle Bedeutung Kleinkomponenten Implementatiationskomponenten für GUI- Bausteine erfolgreich werden in graphischer Umgebung zusammengestellt rein technische Verdrahtung wird für große Systeme unübersichtlich (statt dessen besser Glue Code) JavaBeans VBX, OCX, ActiveX

Aktuelle Bedeutung Einsatzmöglichkeiten Laufzeitkomponenten für Auslieferung von ERP- Systemen erfolgreich Ziel ist nicht Markt, sondern plattformunabhängige Auslieferung und / oder Verteilung fachlich komplett bis auf GUI (JSP, Servlets) Enterprise JavaBeans SAP R/3, Datenbanken

Aktuelle Bedeutung Probleme Mittelgroße, fachliche Komponenten haben fachliche Schnittstellen, die sowohl von Groß- als auch Kleinkomponenten ausgespart bleiben auf einheitlichem Softwarebus geht fachliche Semantik verloren, wenn Komponenten separat entwickelt werden (viel Glue Code) Komplexe Abhängigkeitsgeflechte zwischen Komponenten zahlreiche unterschiedliche Konventionen (z.b. Sprache, Verantwortlichkeit für Objektverwaltung, Referenzsemantik, etc.) Artikelstamm Artikel Fakturierung Artikel Glue Integer, String, Boolean, Float...

Aktuelle Bedeutung Probleme Erfolgreich sind sehr große und sehr kleine Komponenten kontextunabhängig rein technische Verdrahtung ERP-Systeme vs. Oberflächenelemente wie Knöpfe, Listen etc. Problematisch sind mittelgroße Komponenten erfordern fachliche, kontextabhängige Kommunikation setzt fachliche Einbettung voraus, die nicht ad hoc hergestellt werden kann, sondern von vorneherein geplant werden Mittel: Component Frameworks Szyperski fordert sie, stellt selbst aber nur sehr technische Beispiele vor (OpenDoc und BlackBox) K1 K2 K3 Component Framework

Frameworks und Komponenten Komponenten Wiederverwendung von Teillösungen Zusätzlicher Glue Code zur Verbindung Probleme durch mangelnde Kommunikation Frameworks Wiederverwendung von Architektur Framework ist der Glue Code, der dessen Teile zusammenhält fatware-problematik Gemeinsamkeiten Wiederverwendung über Vererbung (White Box) oder Komposition (Black Box) Kombi-Ansatz Framework als fachliche Grundlage für Komponenten Komponenten als Lösung gegen fatware bei Frameworks

JWAM Konzepte Methodische Basis ist der Werkzeug- und Material-Ansatz (WAM) In Java implementiert und in zahlreichen Projekten in unterschiedlichen Anwendungsgebieten eingesetzt Weiterentwicklungen und Erkenntnisse aus Projekten fließen in JWAM ein und bestimmen pragmatisch dessen Entwicklungsrichtung JWAM gibt als Framework generelle Schnittstelle für Komponenten vor, damit Erweiterbarkeit gewährleistet ist stellt die Systembasis dar, deren Funktionalität von allen Komponenten implizit genutzt werden darf Fachl. Behälter Materialkonstr. Nachrichtenvermittler Werkzeugkonstr. Konfiguration Techn. Umgebung Utilities Arbeitsumgebung Fachwerte Testen Vertragsmodell GUI- Events Komponentenmodell MOP Anbindung Atomizer Requests

JWAM Struktur Einsatzkontextschicht Beraterarbeitsplatz Wertpapierspezialist Schalter Home Banking Kredit Sicherheiten Kreditnehmer Kreditkonto Kreditprotokoll Wertpapier Depot Chartanalyse Wertpapierinhaber...... Person Kunde Produktbereichsschicht Konto Produkt Formularwesen Gegenstandsbereichsschicht fachl. Werte fachl. Behälter Datenbank Werkzeug- Bau Wert und Objekt elektr. Schreibtisch Handhabungsund Präsentationsschicht Hostkommunikation Technologieschicht MOP Collectionklassen Kommunikation GUI... Systembasisschicht

Komponenten in JWAM Ausstattungskomponenten JWAM-Kern soll schlank gehalten werden nicht in jedem Projekt benötigte Funktionalität ist in Ausstattungskomponenten angesiedelt Ausstattungskomponenten kapseln fachlich motivierte Funktionalität (Desktop, Formularwesen, etc.) sind Entwurfskomponenten werden als White Boxes von Entwicklern verwendet kommunizieren nur über den Kern miteinander machen explizit, von welchen anderen Ausstattungskomponenten sie abhängen

Komponenten in JWAM Ausstattungskomponenten OODBMS RDBMS Materialkonstr. Werkzeugkonstr. Desktop GUI- Anbindung Registratur Formulare IAF-PF Fachl. Behälter Formularwerkzeuge Handhabung und Präsentation Nachrichtenvermittler Host-Anbindung Technologie Konfiguration Techn. Umgebung Utilities Systembasis Fachwerte Testen Spracherweiterungen Komponentenmodell Vertragsmodell MOP

Komponenten in JWAM Einschubkomponenten Ausstattungskomponenten sollen nicht auf eine bestimmte Technologie festgelegt sein (Persistenzmechanismus, Nachrichtenübermittlung, etc.) Technologiespezifische Teile der Ausstattungskomponente sind in einer Einschubkomponenten gekapselt Einschubkomponenten sind Laufzeitkomponenten werden als Black Boxes von Anwendern oder Entwicklern verwendet kommunizieren nur mit Ausstattungskomponente und werden nicht von anderen Systemteilen her angesprochen unterstützen Skalierbarkeit über den Entwicklungszyklus

Komponenten in JWAM Einschubkomponenten Anwendung Ausstattungskomponente Einschubkomponente

Fazit OODBMS RDBMS Materialkonstr. Werkzeugkonstr. Desktop GUI- Anbindung Registratur IAF-PF Fachl. Behälter Formularwerkzeuge Handh. + Präs. Formulare Nachrichtenvermittler Host-Anbindung Technologie Konfiguration Techn. Umgebung Utilities Systembasis Fachwerte Testen Spracherweiterungen Komponentenmodell Vertragsmodell MOP

Fazit JWAM-Komponenten-Konzept nicht top-down spezifiziert, sondern pragmatisch gewachsen Kombination von Framework- und Komponenten-Ansätzen (FW: Infrastruktur und K: Vermeidung von fatware) Vorteile schlanker und besser verständlicher Framework-Kern fachlich höhere Schnittstellen auf Grundlage des Kerns flexible Skalierung mit alternativen Ausbaumöglichkeiten, da Komponenten nur über Konzepte des Kerns verbunden sind Trennung fachlicher und technologischer Dimensionen