softwaretechnik

Werbung
SOFTWARETECHNIK
Kapitel 5 – Wiederverwendung
Vorlesung im Wintersemester 2012/13
FG System- und Software-Engineering
Prof. Dr.-Ing. Armin Zimmermann
Inhalt
 Einführung
 Entwurfsmuster
 Klassenbibliotheken
 Frameworks
 Komponenten
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 2
Einführung
 Warum Wiederverwendung?



Geringerer Aufwand
Das Rad nicht noch einmal neu erfinden
Verwenden üblicher, aus Erfahrung gewachsener
Strukturen
 .. und warum nicht?



Aufwand für Anpassung kann hoch sein!
Einarbeiten in teilweise komplexe Schnittstellen
Abhängigkeit von externen Komponenten,
Zwang zu späterer Portierung
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 3
Einführung
 Beispiele für Wiederverwendung






Architekturmuster
Entwurfsmuster (Patterns)
Modellebene
Frameworks
Komponenten
Klassenbibliotheken
Module
Codeebene
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 4
Inhalt
 Einführung
 Entwurfsmuster
 Klassenbibliotheken
 Frameworks
 Komponenten
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 5
Entwurfsmuster
 Was ist ein Entwurfsmuster ?
 Eine schematische Lösung für
eine Klasse verwandter Probleme

Höhere Ebene: Architekturmuster
 Feinentwurf:
Entwurfsmuster (design pattern)

Beschreibung von interagierenden Objekten und Klassen,
die ein grundsätzliches Entwurfsproblem in einem
bestimmten Kontext lösen
[GoF: Gamma, Helm, Johnson, Vlissides, “Design Patterns
– Elements of Reusable Object-Oriented Software” 1994]
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 6
Entwurfsmuster
 Analogie außerhalb der Informatik

Each pattern
.. describes a problem which occurs over and over again
in our environment, and then
.. describes the core of the solution to that problem,
in such a way that you can use this solution a million
times over,
.. without ever doing it the same way twice.
(Alexander, Ishikawa, Silverstein et al: “A Pattern
Language: Towns/Buildings/Construction” 1977)
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 7
Entwurfsmuster
 Wie helfen Muster im Entwurf?




Identifizieren von Klassen
(Anwendungs- und Lösungsdomäne)
Regeln sind abstrakt oder an realen Objekten orientiert
Muster: Arten von Rollen bzw. Lösungshinweise
für typische Strukturierungsaufgaben
Änderbarkeit und Lesbarkeit des Entwurfs verbessern
 Arten von Entwurfsmustern



Erzeugungsmuster
Strukturmuster
Verhaltensmuster
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 8
Entwurfsmuster
 Übersicht
Quelle: Polze
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 9
Entwurfsmuster
 Beschreibung von Entwurfsmustern


Name
Problem


Lösung






Motivation, Anwendungsbereich, Bedingungen
Struktur (Klassendiagramm)
Bestandteile (meist Klassen-, Assoziations- und
Operationsnamen)
Rollennamen: Platzhalter für Bestandteile der Anwendung
feste Bestandteile der Implementierung
Objektinteraktion (Abläufe, evtl. Sequenzdiagramm)
Diskussion


Vor- und Nachteile, Abhängigkeiten, Einschränkungen
Bekannte Verwendung, Spezialfälle
Nach Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 10
Entwurfsmuster
 Erzeugungsmuster

Factory Method, Fabrikmethode


Abstract Factory, Abstrakte Fabrik


Trennung von Erzeugung und Repräsentation komplexer
Objekte, für Erzeugung unterschiedlicher Repräsentationen
Prototype, Prototyp


Schnittstelle zur Erzeugung von Familien verwandter Objekte
Builder, Erbauer


Implementierungsvarianten;
Erzeugung von Objekten wird an Unterklassen delegiert
Objekterzeugung durch Vorlage und Kopie
Singleton

Sicherstellung, dass nur ein Objekt einer Klasse erzeugt wird,
die einen globalen Zugriff bietet
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 11
Entwurfsmuster
 Beispiel Erzeugungsmuster: Fabrik


Varianten von Objekten sollen erzeugt werden, ohne dass
sich der Auslöser um die Entscheidung kümmern muss
Erzeugen von Objekten, deren genauer Typ (Klasse)
zur Laufzeit (datenabhängig) entschieden wird
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 12
Entwurfsmuster
 Beispiel für Fabrikmuster
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 13
Entwurfsmuster
 Strukturmuster I

Adapter


Bridge, Brücke


Abstraktion von Implementierung entkoppeln, um beide
unabhängig ändern zu können
Decorator, Dekorierer


Anpassung der (inkompatiblen) Schnittstelle einer Klasse
oder eines Objekts an eine erwartete Schnittstelle
Objekt dynamisch um Zuständigkeiten erweitern
(Alternative zur Bildung von Unterklassen)
Facade, Fassade

Einheitliche Schnittstelle zu einer Schnittstellenmenge,
vereinfacht Zugriff
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 14
Entwurfsmuster
 Strukturmuster II

Flyweight, Fliegengewicht


Composite, Verbund, Kompositum


Gemeinsame Nutzung kleiner Objekte zur effizienten
Verwendung großer Mengen davon (Speicheraufwand)
Zusammenfügen verschiedener Objekte zur Repräsentation
von Teil-Ganzes-Beziehungen; Objekte und Kompositionen
können einheitlich behandelt werden
Proxy, Stellvertreter


Kontrollierter Zugriff auf Objekt durch vorgeschaltetes
Stellvertreterobjekt
Gründe: Schutz, entfernter Zugriff (remote proxy),
smart pointer, Erzeugung on demand
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 15
Entwurfsmuster
 Beispiel Strukturmuster: Adapter


Alternativer Name: Wrapper
Problem: Anpassung der Schnittstelle eines vorgegebenen
Objekts (adaptee) an eine Schnittstelle (target)
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 16
Entwurfsmuster
 Adapter

Beispielproblem
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 17
Entwurfsmuster
 Adapter

Beteiligte Rollen des Musters für das Beispielproblem
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 18
Entwurfsmuster
 Adapter

Lösung des Beispielproblems
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 19
Entwurfsmuster
 Adapter

Beispielhafte Notation in UML
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 20
Entwurfsmuster
 Verhaltensmuster I

Command, Befehl


Observer, Beobachter


1-zu-n-Beziehung zwischen Objekten, so dass die Änderung
des zentralen Objekts zu einer Benachrichtigung und
Aktualisierung der n (abhängigen) Zustände führt
Visitor, Besucher


Befehl / Operation als Objekt kapseln (Parameterübergabe,
Operations-Warteschlangen, logging, Rückgängig machen)
Beschreibung und Kapselung einer zu definierenden
Operation, die auf einer Objektmenge ausgeführt wird
Interpreter

Repräsentation der Grammatik einer Sprache sowie
Interpreter zur Analyse von Sätzen der Sprache
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 21
Entwurfsmuster
 Verhaltensmuster II

Iterator


Memento


Internen Zustand eines Objekts erfassen und speichern,
um Objektzustand wiederherstellen zu können
Template Method, Schablonenmethode


Sequentieller Zugriff auf die Elemente einer Sammlung
ohne Kenntnis der Implementierung der Sammlung
Beschreibung des Skeletts eines Algorithmus mit Delegation
der Einzelschritte an Unterklassen; Teilschritte können von
Unterklassen geändert werden
Strategy, Strategie

Ermöglicht Austausch verschiedener Implementierungen einer
Aufgabe ohne Beeinflussung der sie benutzenden Objekte
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 22
Entwurfsmuster
 Verhaltensmuster III

Mediator, Vermittler


State, Zustand


Objekt, das das Zusammenspiel einer lose gekoppelten
Objektmenge in sich kapselt. Vermeidet direkten Bezug der
Objekte untereinander und ermöglicht unabhängige
Änderung des Zusammenspiels
Ermöglicht Objekt, sein Verhalten abhängig von seinem
inneren Zustand zu ändern, als ob es die Klasse wechselt
Chain of Responsibility, Zuständigkeitskette

Vermeidet direkte Kopplung von Auslöser und Empfänger
einer Anfrage bzw. Operation. Mehrere Objekte werden
nacheinander benachrichtigt, bis die Anfrage erledigt ist
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 23
Entwurfsmuster
 Beispiel Verhaltensmuster: Iterator





Problem:
Häufiges Durchlaufen von Sammlungen von Objekten
zur Anwendung einer Operation (Zählen, Ändern, ..)
Sammlung intern implementiert z.B. als Liste, Menge,
hash table oder Baum
Durchlaufen: unabhängig von interner Repräsentation!
Mehrere Durchläufe (Sichten) gleichzeitig möglich?
Lösung: Interface oder Abstrakte Klasse für
Zugriffsschnittstelle
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 24
Entwurfsmuster
 Beispiel Verhaltensmuster: Iterator

Prinzip des Musters
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 25
Entwurfsmuster
 Anwendung Iterator
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 26
Entwurfsmuster
class DirectoryIterator implements Iterator
{ private Object[] collection;
private int current;
public DirectoryIterator(Object[] init)
{
collection = init; current = 0;
}
public boolean hasNext()
{
return current < collection.length;
}
public Object next()
{
return collection[current++];
}
}
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 27
Entwurfsmuster
Object[] myDirectory = new Object[]
{ new File(..),
new File(..),
.. };
DirectoryIterator iterator =
new DirectoryIterator(myDirectory);
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 28
Entwurfsmuster
 Auswahl von Entwurfsmustern

Überlege, wie Entwurfsprobleme durch Muster
gelöst werden






Beachten der Problembeschreibung der Muster
Untersuche Zusammenspiel der Muster
Finde ähnliche Strukturen



Finde passende Objekte
Lege Granularität (Abstraktionsgrad) fest
Spezifiziere Schnittstellen der Objekte
Jeweils für Mustertypen (Erzeugung, Struktur, Verhalten)
Überlege, welche Gründe zu Entwurfsänderungen
führen können
Welche Teile des Entwurfs sollten daher variabel sein?
Welche Aspekte sollten getrennt werden?
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 29
Entwurfsmuster
 Anwendung von Entwurfsmustern




Untersuche Anwendbarkeit und Konsequenzen
Analysiere Struktur, Teilnehmer und Kollaborationen
Wähle aus dem Anwendungskontext Namen für
Teilnehmer
Spezifiziere die teilnehmenden Klassen




Deklariere Schnittstellen, Vererbung und Variablen
Identifiziere existierende Entwurfsklassen, die durch das
Muster beeinflusst werden
Wähle anwendungsspezifische Namen für Operationen
Implementiere Operationen entsprechend den
Verantwortlichkeiten und Kollaborationen des Musters
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 30
Entwurfsmuster
 Beziehungen zwischen Mustern
Quelle: Polze
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 31
Inhalt
 Einführung
 Entwurfsmuster
 Klassenbibliotheken
 Frameworks
 Komponenten
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 32
Klassenbibliotheken
 Wiederverwendung von Code –
Voraussetzungen






Klar definierte Schnittstelle
Dokumentation
Pflege und Wartung der verwendeten Software
Softwareentwurf für Wiederverwendung
Einfachster Fall, alte Idee im Entwurf: Modul
Ein Modul ist ein Teil eines Softwaresystems,
das bestimmte Dienste bereitstellt,
aber kein eigenständiges System ist.
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 33
Klassenbibliotheken
 Klassenbibliotheken


Zusammenfassung von Modulen, Klassen, etc.
Mit einem bestimmten (abstrakten) Zweck





Abstrakte Datenverwaltung, Templates
Grundlegende System-Aufgaben
Untere Kapselungs-Schicht des Laufzeitsystems
oder der Programmierumgebung
Numerische Routinen, Simulation, …
Wird in Anwendung eingebunden (importiert), API

Objekte instanziieren oder Klassen ableiten

Meist passiv: Kontrollfluss wird von Anwendung gesteuert

Beispiele

stdclib, MFC, GNU scientific library, Java 3D
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 34
Klassenbibliotheken
 Beispiel: Boost




Boost provides free peer-reviewed portable C++ source
libraries that may become part of future standard C++
Available for Unix, Linux, Windows, …
Math, Containers, File system, additional types, IPC, MPI,
smart pointers, Regex, Statecharts, …
www.boost.org
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 35
Klassenbibliotheken
include <boost/numeric/conversion/cast.hpp>
using boost::numeric_cast;
using boost::numeric::positive_overflow;
…
try
{
int i=42;
short s = numeric_cast<short>(i);
}
catch(negative_overflow& e) {
std::cout << e.what();
}
catch(positive_overflow& e) {
std::cout << e.what();
}
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 36
Inhalt
 Einführung
 Entwurfsmuster
 Klassenbibliotheken
 Frameworks
 Komponenten
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 37
Frameworks
 Was ist ein Framework?


A framework is a set of prefabricated software building
blocks that programmers can use, extend, or customize
for specific computing solutions [Taligent]
Ein framework (Rahmenwerk, Anwendungsgerüst) ist eine
Menge von zusammengehörigen Klassen, die einen
abstrakten Entwurf für eine Problemfamilie darstellen
[nach Pomberger/Blaschek]
 Ziele


Wiederverwendung von Code, Architektur,
Entwurfsprinzipien und Verhaltensschema
Ähnliche Benutzungsschnittstelle
SSE Zimmermann
Softwaretechnik
Nach Rumpe
Wiederverwendung – 38
Frameworks
 Klassifikation I

Anwendungs-Framework (application framework)



Bereichsspezifisches Framework (domain framework)




Gibt Systemarchitektur für typische Anwendungsstruktur vor
GUI-Framework: Motif, Qt, Swing, …
Expertenwissen für Anwendungsbereich
für typische Anwendungen u.a. in den Bereichen
Luftfahrt, Produktion, Finanzwesen, Automotive, …
Beispiel: AUTOSAR
Infrastrukturgerüst (support framework)


Gerätetreiber, Anpassung an Hardware
Middleware: DCOM, Java RMI, CORBA, WebSphere, …
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 39
Frameworks
 Klassifikation II

Offene Programmgerüste



Erweiterbarkeit durch Vererbung und dynamische Bindung
Funktionen konkretisieren durch Ableitung von Basisklassen
des Programmgerüsts und Überschreiben vordefinierter
Methoden
Geschlossene Programmgerüste


Erweiterbarkeit durch Definition von Schnittstellen für
Module, die für eine konkrete Anwendung in das Gerüst
eingesetzt werden können
Wiederverwendung durch Komponenten, die sich an
Schnittstellen halten; Aufruf über Delegation
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 40
Frameworks
 Vergleich Klassenbibliothek / Framework
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 41
Frameworks
 Beispiel GUI-Framework: Java Swing



Plattformunabhängige Grafikbibliothek
look-and-feel anpassbar mit Skins
UIManager.setLookAndFeel(
new MetalLookAndFeel());
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 42
Frameworks
import java.awt.event.*; import javax.swing.*;
class MyFrame extends JFrame {
public MyFrame() {
setTitle("My Closeable Frame");
setSize(300,200); setLocation(10,200);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{ System.exit(0); } } );
}
Public static void main(String[] args) {
JFrame f = new MyFrame();
f.show();
}
}
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 43
Frameworks
 Einordnung in Softwarearchitektur

Beispielhafte Schichtenstruktur
GUI-Framework
Anwendungslogik
Datenhaltung
Klassenbibliothek
AbstraktionsSchicht
Laufzeitsystem
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 44
Frameworks
 Vorteile





Weitergabe von Expertenwissen
Durchdachtes Design: langfristige Aufwandsersparnis
Wartungsaufwand reduziert, systematische Tests möglich
Prinzipiell sehr hohe Produktivität möglich
Erleichtert Integration und Konsistenz verwandter
Anforderungen
 Nachteile




Erstellung und Einarbeitung aufwändig
Zusätzlicher Dokumentations- und Wartungsaufwand
Fehlersuche erschwert durch Overhead des Frameworks
Kombination verschiedener Frameworks sehr schwierig
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 45
Inhalt
 Einführung
 Entwurfsmuster
 Klassenbibliotheken
 Frameworks
 Komponenten
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 46
Komponenten
 Bausteinorientierte Programmierung
(component-ware)


Softwareentwicklung: Konstruktion aus vorgegebenen
Bausteinen (siehe Kapitel Entwurf und Architektur!)
Entsprechung für Wiederverwendung:
Generische Bausteine (components)




Anpassbar, zusammensetzbar
Werkzeuggestützte bzw. grafische
Kompositionsmechanismen
Beispiele: Java Beans, Enterprise Java Beans (EJBs),
Microsoft COM+
Komponenten-Entwicklung oft auch projektspezifisch
nach: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 47
Komponenten
 Definition Komponente

A component is an independently deliverable unit of
software that encapsulates its design and implementation
and offers interfaces to the out-side, by which it may be
composed with other components to form a larger whole.
[Nierstrasz]

A software component is a unit of composition with
contractually specified interfaces and explicit context
dependencies only. A software component can be
deployed independently and is subject to composition by
third parties. [Szyperski]
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 48
Komponenten
 Warum Komponenten?





Monolithische, proprietäre Software führt zunehmend zu
Problemen
Zunehmend verteilte Anwendungen mit offener Struktur
und Internet-Anbindung
Zusammensetzen der Funktionalität aus standardisierten
Elementen, die über offene Schnittstellen kommunizieren
Komponenten sollen Flexibilität bei sich ändernden
Anforderungen erhöhen
Weg aus der „Software-Krise“?
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 49
Komponenten
 Eigenschaften

Müssen von ihrer Umgebung und anderen Komponenten
unabhängig und getrennt sein






Kontextabhängigkeiten: benötigte Komponenten-Infrastruktur
und Systemressourcen
Kapseln ihre angebotenen Funktionen
Werden immer als ganze Einheit eingesetzt;
alle Bestandteile sind enthalten (Archiv-Datei)
Sind nicht von Kopien ihrer selbst unterscheidbar
Klare Spezifikation der Schnittstelle nötig; explizit
definierte Interaktionen mit Komponenten und Umgebung
Komposition durch Dritte: Endbenutzer,
Komponenten-Hersteller und Komponenten-Integrator;
meist nur kompilierter Code verfügbar
nach: Polze, Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 50
Komponenten
 JavaBeans



Komponentenmodell von Java
Definition: Eine Bean (Bohne) ist eine Sammlung von
Java-Klassen und anderen Ressourcen, bei der die
Klassen bestimmten Konventionen genügen
Beans exportieren



Eigenschaften (properties): Bestandteile des lokalen
Zustands, auf die über get- und set-Methoden zugegriffen
werden kann
Ereignisse (events): Ereignisklassen und "EventListener"Klassen entsprechend dem Ereignismodell von Java/AWT
Methoden (methods): öffentlich bekannte Methoden des
Objekts
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 51
Komponenten
 JavaBeans




Wann ist eine Java-Klasse eine JavaBean?
Nicht durch Schnittstellen-Implementierung!
Durch Einhaltung bestimmter Namens-Konventionen
Konventionen für Eigenschaften (Properties)



public setPropertyName (PropertyType p);
public PropertyType getPropertyName();
Persistenz: Zustand muss serialisierbar sein
für eine Abspeicherung auf Speichermedium



Implementiert java.io.Serializable oder java.io.Externalizable
Wiederherstellung über Deserialisierung
Austausch von Beans über Systemgrenzen hinweg möglich
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 52
Komponenten
public class SimpleBean
extends Canvas implements Serializable
{
private Color color = Color.green;
public Color getColor(){
return color; }
public void setColor(Color newColor){
color = newColor; repaint(); }
public void paint(Graphics g) {
g.setColor(color);
g.fillRect(20, 5, 20, 30); }
public SimpleBean(){
setSize(60,40); setBackground(Color.red);}
}
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 53
Komponenten
 Komposition von Komponenten



Grafische Werkzeuge zum Zusammenstellen
„plumbing instead of programming“
Interaktion durch Verbindung von Ereigniserzeugung und
-verarbeitung (event source, register event listeners)
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 55
Komponenten
 Kompositionsprobleme

Widerspruch zum Ansatz: Verschiedene inkompatible
Technologien für Komponenten existieren




OMG’s CORBA, Microsoft’s COM+, Sun’s JavaBeans (EJB).
Interoperabilität: Problem mit unterschiedlichen
Umgebungen und Plattformen
Spezielle Integrations-Werkzeuge, z.B.
COM and CORBA Interworking Spec (OMG)
Kontextabhängigkeiten


Im Gegensatz zu angebotenen Schnittstellen sind die
benötigten Komponenten oft unklar
Nichtfunktionale Abhängigkeiten werden nicht betrachtet
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 56
Komponenten
 Komponenten für
Client/Server-Architekturen

Wichtige Aspekte





Transaktionen
Sicherheit
Ressourcenverwaltung
Persistenz
Komponentenkonzept für Server-Komponenten



meist unsichtbare Komponenten
standardisierte Realisierung der wichtigen Eigenschaften für
Client/Server-Anwendungen
Realisierung: Enterprise Java Beans (EJBs) innerhalb eines
Java Enterprise Edition Servers
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 57
Komponenten
 Architektur von Enterprise JavaBeans
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Wiederverwendung – 58
Komponenten
 Arten von Enterprise JavaBeans
 Entity Bean



Repräsentiert persistente Information aus einer Datenbank
Typischerweise mit mehreren Transaktionen assoziiert
Mehrbenutzerzugriff möglich
 Session Bean



EJB-Instanz, die mit einem einzelnen Client assoziiert ist
Typischerweise nicht persistent
Beispiele:


Benutzersitzung innerhalb einer Webseite, Buchungsvorgang
Stateful / Stateless Session Bean

Dialogzustände innerhalb der Session oder nicht
SSE Zimmermann
Softwaretechnik
Quelle: Rumpe
Wiederverwendung – 60
Herunterladen