Java Beans. Seminar Komponentenprogrammierung Freie Universität Berlin, WS 2004/2005 Ivo Köhler, 08. November 2004

Ähnliche Dokumente
JavaBeans Property-Editoren und Customizer

Java Beans von Christian Beck-Wörner. Inhalt. Was ist ein Bean Konzept von Beans Entwicklung eines Beans Eigenschaften von Beans Testumgebung: BDK

JavaBeans. Marc Monecke

Java Beans.

JavaBeans Josef Templ. 14. Oktober 2002

Application Frameworks and Componentware Wintersemester 2002/03. Komponentenbasierte Programmierung in Java

Java Beans. Übersicht, Eigenschaftstypen, Heutiger Stand.

Enterprise JavaBeans Überblick

Einführung: Verteilte Systeme - Remote Method Invocation -

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

Zwischenbericht Großer Beleg

Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile

Java Beans ( )

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Das Model View Controller (MVC) Konzept

11. Komponenten Grundlagen der Programmierung 1 (Java)

Architekturen für verteilte Internetdienste

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

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Schnittstellen und. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Empfehlenswerte Literatur

Handbuch für die Erweiterbarkeit

Model-View-Controller

Beschreibung des Angebotes. Java Programmierung. LernenimInternet. Ansprechpartner. Angebot-Nr Angebot-Nr Weiterbildung.

Modernisierung von Forms durch neues Look&Feel

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Application Server Application Server: Motivation Application Server: Begriff

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

Verteidigung Großer Beleg. Enterprise JavaBeans und JavaBeans Sean Eikenberg

Den Hintergrund komponentenbasierter Softwareentwicklung kennen. Den Unterschied zwischen Klassen und Komponenten erklären können

Einführung in C# Teil 1. Matthias Nübling

3-Tier-Architecture und J2EE

Integration von UIS-Webdiensten

Komponenten-Orientierte Softwareentwicklung mit JavaBeans. Birngruber Dietrich

Hintergrund und Motivation

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Client/Server-Programmierung

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components

Probeklausur: Programmierung WS04/05

Software Design basierend auf dem Plug-In Konzept

Entwurfsmuster (Design Patterns)

Session Beans & Servlet Integration. Ralf Gitzel

Das Einsteigerseminar Objektorientierte Programmierung in Java

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Programmierprojekt: So0ware Tests. Anne6e Bieniusa Sommersemester 2017

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Objektorientierte Programmierung II

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Programmieren mit Java

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

Spring und Eclipse Equinox kombiniert. Martin Lippert (it-agile GmbH) Gerd Wütherich (comdirect bank AG)

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

Begriffe 1 (Wiederholung)

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Software Komponenten. Software Komponenten. Software Komponenten. Software Komponenten

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Eclipse in der Java-Entwicklung

Multimedia im Netz Wintersemester 2012/13

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007

Projektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik

Projekt objektorientiertes programmieren in Java SS08. Event-Handling. Nils Heinrich

1.1 Für wen dieses Buch gedacht ist Einleitung Danksagung... 2

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

GRAFISCHE BENUTZERSCHNITTSTELLEN

Android GUI Entwicklung

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

Java Reflection. Andreas Lochbihler. 15. Mai Lehrstuhl Programmierparadigmen Universität Karlsruhe

BIF/SWE - Übungsbeispiel

Java Beans Grundlagen

Erweiterte Diagrammdarstellungen im BI Publisher

Whitepaper. Produkt: List & Label. Thema: Eine Übersicht der Einbindungsmöglichkeiten. combit GmbH Untere Laube Konstanz

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

ObjectBridge Java Edition

Properties und Proxies

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einstieg in die Informatik mit Java

JB 6 just beans but great solutionsmore

Transkript:

Java Beans Seminar Komponentenprogrammierung Freie Universität Berlin, WS 2004/2005 Ivo Köhler, 08. November 2004 1

Agenda Was sind Java Beans? Wie funktionieren Java Beans? Objekte vs. Komponenten Mechanismen von Java Beans Methoden Properties Introspection Persistence Events Packaging Vor- und Nachteile Tools - Beispiele Quellen 2

Was sind Java Beans? A Java Bean is a reusable software component that can be manipulated visually in a builder tool. Komponenten die über Zugriffsklassen verfügen Bestimmte Namenskonventionen einhalten Über Dialogboxen manipulierbar sind Unterstützen neue visuelle Programmiermethoden [sun97] Können durch IDE visuell in Programm eingebunden werden Im Idealfall ohne eine Zeile Code zu schreiben 3

Was sind Java Beans? (..) Meist kleine lightweight Komponenten Sichtbare GUI-Elemente (Buttons, Checkboxen, ) Nicht sichtbare Elemente (Datenbankzugriffe, Datenübertragungsprozesse) Aber auch komplexerer Beans denkbar (ganze Applikationen) Zusammenfassung vieler Beans zu Compound Documents Sollen kompakt, leicht zu erstellen und zu benutzen sein Sollen völlige Portabilität gewährleisten (im Gegensatz zum Komponentenmodell von Microsoft: ActiveX) 4

Wie funktionieren Java Beans? Java Beans basieren ausschließlich auf Java Beans bieten ihre Funktionalität (Methoden, Properties, Events) an Builder-Tools können sie so visuell für die Verwendung einbinden (z.b. in einer Tool-Box) Dies geschieht über Entwurfsmuster (patterns) und Namenskonventionen 5

Objekte vs. Komponenten Objektorientierte Sicht: Wiederverwendung wird durch Vererbungen realisiert Entwickler muss den fremden Code verstehen und Schnittstellen kennen, um Objekte wieder zu verwenden White-Box-Reuse Objekt-Code muss zugänglich sein 6

Objekte vs. Komponenten (..) Komponentenorientierte Sicht: Wiederverwendung durch Black-Box-Reuse Zugriff erfolgt nur über Schnittstellen Implementierung der Komponente ist unwichtig Black-Box-Reuse Objekt-Code muss nicht zugänglich sein 7

Agenda Was sind Java Beans? Wie funktionieren Java Beans? Objekte vs. Komponenten Mechanismen von Java Beans Methoden Properties Introspection Persistence Events Packaging Vor- und Nachteile Tools Quellen 8

Mechanismen von Java Beans Methoden Teile des Programmcodes Können durch Methodennamen aufgerufen werden Properties Sind die Statusvariablen (Attribute) der Beans Beeinflussen das Erscheinungsbild und das Verhalten der Komponente Können über Zugriffsmethoden verändert werden Primitive aber auch komplexe Datentypen 9

Mechanismen (..) Properties (..) Die Standart Signaturen der Zugriffsmethoden: public void set<propertyname>(<propertytype> value); public <PropertyType> get<propertyname>(); Indexed properties Indizierte Eigenschaften ermöglichen mehrere Attribute gleichzeitig zu manipulieren public void set<propertyname>(<propertytype>[] value); public <PropertyType>[] get<propertyname>(); public void set<propertyname>(int index, <PropertyType> value); public <PropertyType> get<propertyname>(int index); 10

Mechanismen (..) Bound properties Durch gebundene Eigenschaften können bei einer Manipulation andere Komponenten informiert werden Interessierte Komponenten müssen sich dazu vorher durch das Java-Listener-Konzept registrieren public void addpropertychangelistener(propertychangelistener p); public void removepropertychangelistener(propertychangelistener p); 11

Mechanismen (..) Constrained properties Nicht nur die Bean kann eine Attributänderung validieren, sondern es können auch registrierte Zuhörer um Einwände (Veto s) befragt werden public <PropertyType> get<propertyname>(); public void set<propertyname>(<propertytype> value) throws java.beans.propertyvetoexception; Objekte die an der Gültigkeitsprüfung mitwirken wollen: public void addvetoablechangelistener(vetoablechangelistener p); public void removevetoablechangelistener(vetoablechangelistener p); 12

Mechanismen (..) Introspection Ermöglicht das Erkunden von: Methoden, Properties und Events einer Bean Klassen- oder Methodenbeschreibungen können so oft vermieden werden Introspection erfolgt durch: Die Reflection API (Methoden und Properties erfragen) BeanInfo-Klassen Oder eine Kombination daraus Builder Tools können so selbständig Beans untersuchen und dem Entwickler zur Verfügung stellen 13

Mechanismen (..) Reflection Wird vom Entwickler die Namensgebung eingehalten, kann die Bean erkundet werden package java.lang.reflect Will dies der Entwickler nicht, oder ist die Bean zu komplex kommt die BeanInfo-Schnittstelle zum Einsatz BeanInfo-Schnittstelle Zusätzliche Klasse, in der alle Informationen stehen Name der beschreibenden Klasse <MyBean>BeanInfo In dieser Klasse werden alle Leistungsmerkmale der Bean in einem FeatureDescriptor beschrieben 14

Mechanismen (..) BeanInfo-Schnittstelle (..) <<interface>> BeanInfo +geticon(iconkind:int): Image +getbeandescriptor(): BeanDescriptor +getpropertydescriptor(): PropertyDescriptor[] +getmethoddescriptor(): MethodDescriptor[] +geteventsetdescriptor(): EventSetDescriptor[] BeanDescriptor SimpleBeanInfo PropertyDescriptor Object FeatureDescriptor EventSetDescriptor MethodDescriptor ParameterDescriptor 15

Mechanismen (..) Persistence Abspeichern und Wiederherstellen eines Zustandes einer Komponente über die Laufzeit hinweg Dies kann durch Serialisierungsmechanismen geschehen, wenn die Schnittstelle java.io.serialization implementiert wurde Es entstehen hierbei neue Probleme: Versionierung Kompatibilität mit älteren Versionen der Bean 16

Mechanismen (..) Events Java-Eventmodell vollständig implementiert Events der Java Beans beruhen auf Callback-Mechanismus Objekte die an Events interessiert sind, müssen sich bei der entsprechenden Bean anmelden (als Listener) Wird Event aufgerufen, werden alle registrierten Listener informiert Event source Event object Event listener Event listener Event listener 17

Mechanismen (..) Events (..) Typischer Anwendungsfall: Bound properties Registrierung Callback 18

Mechanismen (..) Packaging Verpacken von Java Beans zu einem kompakten Format Typischerweise in ein.jar Archiv Zusätzlich eine Manifest-Datei (.mf) die den Inhalt näher beschreibt Manifest-Version: 1.0 Name: <MyFolder>/<MySubfolder>/MyBean Java-Bean: True Digest-Algorithms: MD5 MD5-Digest: UQGuRXuyzDi0KVg4PqKP7w== Name: <MyFolder>/<MySubfolder2>/picture.gif Name: <MyFolder>/<MySubfolder2>/picture2.gif jar cfm MyBean.jar MyBean.mf MyBean.class 19

Vor- und Nachteile von JB PRO Zeitsparende effiziente Erstellung von Software, durch visuelle Wiederverwendung alter Beans Einfaches grafisches Verbinden von Komponenten Einfach zu programmieren, basiert 100% auf Java Sprachunabhängig durch eine existierende Brücke zu anderen Technologien (z.b. ActiveX von Microsoft) CONTRA Performance, da Java eine interpretierte Sprache ist Wenige Brücken von anderen Technologien in Richtung Java Beans (z.b. Microsoft) Nur für einfache Anwendungen so schön möglich Nicht für Verteilte Systeme ( EJB) 20

Tools BeanBox v1.0 Im Beans Development Kit (BDK) bereits enthalten Sehr guter leichter Container zum Testen kleinerer Beans 21

Tools BeanBuilder v1.0beta Neue verbesserte Version der BeanBox Höhere Funktionalität Bildet die Grundlage des Java Studios, einer visuellen Entwicklungsumgebung von SUN 22

Beispiel Taschenrechner im Java Beans Komponentenmodell Entwickelt in der Vorlesung Komponentenprogrammierung und Middleware am Hasso-Plattner-Institut, Potsdam Anforderungen: Funktionsfähiger Taschenrechner mit GUI Modularität leichte Erweiterbarkeit zur Laufzeit Benutzer soll Komponenten laden und sofort verwenden können leichtes Entwickeln weiterer Beans ein Grundgerüst sollte vorhanden sein 23

Quellen Java Beans Specification, SUN Microsystems http://java.sun.com/beans [sun97] Java tutorial for Java Beans http://java.sun.com/docs/books/tutorial/javabeans/ Quinn, A. 2000 Developing Java Beans, O'Reilly & Associates, Inc. Englander, R. 1997 Java in a Nutshell, O'Reilly & Associates, Inc. Flanagan, D. 1997 24

ENDE 25