Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Elfi Karre Geändert vor über 11 Jahren
1
Anwendungen aus Modellen Michael Löwe Forschungskolloquium der FHDW,Hannover Hannover, 21. Februar 2005
2
21. Februar 2005FHDW-MDA2 Inhalt Modell basierte Anwendungsentwicklung (MbA) Die Standardarchitektur (Persistenzgenerator) – Die Datenbank – Der Applikationsserver – Der View Das Modell – Einfache, Mengen-wertige, indizierte und transiente Attribute – Server und Connections – Observer – Active Objects – Singletons – Exceptions – Visitoren Entwicklungsmöglichkeiten
3
21. Februar 2005FHDW-MDA3 MbA Ein zentrales fachliches Modell Ableitung der Architektur aus dem Modell Konsistente Umsetzung des Modells – in alle beteiligten Komponenten – über alle beteiligte Schnittstellen Aber: Details in den speziellen Komponenten und Sprachen – Adäquate Benutzeroberflächen – Nutzung vorhandener Entwicklungswerkzeuge – Performanzverbesserung in der Datenbank Kein Round-Trip aber ein iterativer Wasserfall
4
21. Februar 2005FHDW-MDA4 Die Standardarchitektur Klient Anwendungs- Server Datenbank Relationale Datenbank: Oracle Single-User-Anwendung: Java Multi-User-Anwendung: Java Offene Schnittstelle: XML-RPC Geschlossene Schnittstelle: JDBC
5
21. Februar 2005FHDW-MDA5 Die Datenbank Eine Tabelle pro Vererbungshierarchie Meta-Tabellen für Klassen und Vererbung Prozedurale Schnittstelle für jede Klasse (PL/SQL) } Konsistenz der Tabelleninhalte zum Modell
6
21. Februar 2005FHDW-MDA6 Der Anwendungsserver Java-Anwendung JDBC-Facaden Web-Server (XML-RPC) Oracle-Thin-Client Derzeit eine Verbindung Mehrbenutzerfähigkeit durch Multi-Threading Objekt-weises Nachladen aus der Datenbank nach Bedarf Cache Management Zweifache Indirektion
7
21. Februar 2005FHDW-MDA7 Der View Standardoberfläche (Swing, SWT, etc.) Server Stubs ohne Cache Server Connections (Refresh Threads) Objekt-weises Nachladen vom Server nach Bedarf Dynamische Verbindung (Garbage Collector beim Server)
8
21. Februar 2005FHDW-MDA8 Das Modell Klassen, abstrakte Klassen und Interfaces Spezielle Server- und Exception-Klassen Einfach-Vererbung und Mehrfach-Implementierung Basistypen: Integer und String Einfache, mengen-wertige, indizierte und transiente Attribute (Abstrakte) Operationen mit – Deklaration von Exceptions – Einfachen und Mengen-wertigen Rückgabetypen
9
21. Februar 2005FHDW-MDA9 Klassen und Attribute model model1 { class MyClass { Integer integer; String string; indexed Integer iIndex; indexed String sIndex; transient Integer tInteger; MyClass myClass; MyClass ** myClasses; } } Attribute zu Basistypen. Indizierte Attribute nur zu Basistypen. Erzeugt statische Suchfunktionen Transiente Attribute. Werden nicht in Datenbank abgelegt Mengen-wertige Attribute. In speziellen Collections verwaltet: add, iterator und remove über Iterator Bzgl. Spezialisierung maximale Klasse. Erzeugt statische Suche nach Objektidentität Konkrete Klasse. Erzeugt statische Factory- Methode mit allen Basisattributen
10
21. Februar 2005FHDW-MDA10 Server und Connections model model1 { class MyClass { Integer integer;..... model model1 { server MyClass { Integer integer;..... model model1 { server Server {...} server MyClass { Integer integer;..... Server Klasse. Alle Objekte dieser Klassen können mit ihren Operationen Schnittstellen- objekte zum Klient sein. Erhalten zwei Methoden hasChanged für das Refresh des Klienten und initialize zur Initialisierung nach der Erzeugung. Server Klasse Server. Die Objekte sind mit ihren Operationen die primäre Schnittstelle zum Anwendungsserver. Erhalten implizit die Attribute user und password.
11
21. Februar 2005FHDW-MDA11 Observer class Observer { observe Observee observee; } Class Observee { Integer contents; } SubjInterface register(ObsInterface obs) deregister(ObsInterface obs) update() ObsInterface update() Subj * ObserverObserverObservee Observee observee_update() Automatische Registrierung durch setter bzw. add und remove bei **
12
21. Februar 2005FHDW-MDA12 Active Objects model model4 { server Server{ MyClass myClass; } active interface MyInter{ void myOp1(); void myOp2(); } class MyClass implements MyInter{ } } MyInter myOp1() myOp1(Invoker invoker) myOp2() myOp2(Invoker invoker) MyOp1CMD execute() CMD MyClassMyInterCMD MyOp2CMD * Server Invoker handleResult(CMD cmd) handleException(CMD cmd, Exception exc) receiver asynchron
13
21. Februar 2005FHDW-MDA13 Singletons model model5 { server Server{ MyClass myClass; } active interface MyInter{ void myOp1(); void myOp2(); } singleton class MyClass implements MyInter{ } } Singleton Klasse MyClass. Keine Suche nach Objektidentität mehr. Keine Factory-Methode mehr. Dafür: Beschaffung des Singleton-Objekts mit Aufruf einer Initialisierungsoperation bei der Instantiierung.
14
21. Februar 2005FHDW-MDA14 Exceptions Operationen können beliebige Exceptions schmeißen (ggf. Kennzeichnung mit extern). Operationen in Servern können nur interne Exceptions schmeißen. Interne Exceptions werden in der Datenbank abgelegt. Interne Exceptions werden zum View übertragen. Syntax: exception myException {...} statt class myException {...}
15
21. Februar 2005FHDW-MDA15 Visitoren model model7 { server Server{} class MyClass1{} class MyClass2 extends MyClass1 {} class MyClass3 extends MyClass1 {} class MyClass4 extends MyClass2 {} class MyClass5 extends MyClass2 {} interface MyInt1{} interface MyInt2 extends MyInt1{} class MyClass6 implements MyInt1 {} class MyClass7 implements MyInt2 {} class MyClass8 implements MyInt2 {} } MyClass2Visitor (3 x handle) MyClass1Visitor (3 x handle) MyInt2Visitor (2 x handle) MyInt1Visitor (1 x handle) Standard-accept-Methoden
16
21. Februar 2005FHDW-MDA16 Entwicklungsmöglichkeiten Anschluss von Stored-Procedures – Generierung der Java-Methoden und Oracle-Pakete – Paketrümpfe mit geschütztem Bereich – Behandlung von Seiteneffekten aufwändig (zweifache Indirektion über Proxis) Mehrere Datenbankverbindungen Mehrere Modelle Mehrere Server
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.