ppls
ppls
ppls
-
- 1 / 58
-
Flashcards
Was weißt du zum Binding von Komponenten?
Vertical Binding: Verbindung von zwei Interfaces vom gleichen Typ
Horizontal Binding: Verbindung von Required und Provided Interface
First-Party: Verbindung durch Entwickler
Third-Party: wird vom Anwender verbunden
Differenziere Exogenous und Endogenous Composition
Exogenous
- explizite Verwendung von Konnektoren zur Interaktion zwischen Komponenten
Endogenous
- Binding ohne Konnektoren
- Binding, Interaktionsprotokolle und Fehlerhandling sind Bestandteil der Komponente
Welche Eigenschaften hat eine Laufzeitumgebung?
- Grundlegende Kommunikation zwischen Komponenten
- Konfiguration von einzelnen horizontalen Services (bspw. Datenbanken)
- Konfiguration von sicherheitstechnischen Einstellungen
- Konfiguration von Qualitätsanforderungen an die LZU
- Kontrolle des Lebenszyklus der eingesetzten Komponenten
Was macht die Management Schnittstelle einer LZU?
- Dynamisches Deployment
- Definition von Bindungen
- Testen von Komponenten
- Status-Anzeige von Komponenten
- Konfiguration der LZU
Welche Phasen gibt es bei der Entwicklung einer komponentenbasierten Applikation?
- Requirements Specification
- Component Analysis
- Requirements Modification
- System Design with Reuse
- Development and Integration
- System Validation
Erzähle etwas zu den einzelnen Phasen der Entwicklung einer komponentenbasierten Applikation
- Requirements Specification
- Component Analysis:
- Suche nach Komponenten, die (Teile) der Anforderungen erfüllen
- meistens kein exakter Match möglich
- Requirments Modificatoion: Überarbeitung der Anforderungen; Berücksichtigung der gefundenen Komponenten
- System Design with Reuse: Entwicklung Software-Architektur; Berücksichtigung der gefunden Komponenten; Auswahl Komponentenmodell und LZU
- Development and Integration: Integration der Software-Komponenten (mit Entwicklung)
Welche Variationen bei der Auswahl von Komponenten gibt es?
- In-House (Eigenentwicklung)
- Commercial off the shelf (vorgefertigt; kein Sourcecode)
- Open Source Components
- Outsource
Welche vier Sichten kennst du aus der Vorlesung?
- Kontextsicht
- Laufzeitsicht
- Bausteinsicht
- Verteilungssicht
Erzähle etwas zur Kontextsicht
- abstrakte Darstellung als Blackbox; logische Zusammenfassung von Systemen
- Schnittstellen werden nicht berücksichtigt, aber Abhängigkeiten
- Beim Datenfluss lediglich DTOs angeben (fachliche Sicht)
Umsetzung mit Paketdiagramm
Erzähle etwas zur Bausteinsicht
- zeigen Ekemente des Systems, Subsystem, Komponenten, Klassen und deren Schnittstellen
- Darstellung von Abhängigkeiten
Nimmt etwa 60% der Architekturmodellierung in Anspruch
Komponenten-, Kompositionsstruktur-, Klassen-
Erzähle etwas zur Verteilungssicht
- beschreibt Hardware-Komponenten (Server, Netzwerk, Firewall) mit beteiligten Protokollen
- Darstellung auch von LZU
Verteilungsdiagramm
Erzähle etwas zur Laufzeitsicht
- Welche Bestandteile des Systems zur Laufzeit existieren und wie diese zusammenwirken
- Modellierung von Boundary-Conditions: Systemstart, Shut-Down
Wie lässt sich eine Software Architektur dokumentieren?
- Modellbasierte Modellierung
- Architecture Description Language (ADL)
- Textuelle Architektur- Templates
Erzähle etwas zur modellbasierten Modellierung
- semi-formal (unpräzise, mehrdeutig)
- dient zur Kommunikation: Entwickler <-> Kunde
- UML
Erzähle etwas zur Architecture Description Language
- Textuell, formal
- weniger Kommunikation, eher Umsetzung / Analyse
- ACME, Darwin, C2, PeerCAT
Erzähle etwas zu textuellen Architektur Templates
- freisprachliche Beschreibung der Architekturelemente
- keine formale Vorgaben
- wenige Standards (arc42)
Was ist Arc42?
- Beschreibung wesentlicher Aspekte (gemäß 4-Sichten Modell)
- Architekturziele, Qualitätsanforderungen, Sichten, Entwurfsentscheidungen, Muster
Welche Muster können unterschieden werden?
- Erzeugende Muster
- Strukturierende Muster
- Verhaltensorientierte Muster
Was ist das Facade Pattern?
- einheitliche Schnitstelle, Delegation an die interne Komponente
- Zentraler, konsistenter Einstiegspunkt
- Realisierung: Front Controller, Session Facade
Was heißt ORM und was weißt du dazu?
Object-Relation Mapping
- Datenbank: relational, Programmierung: objektorientiert -> nicht kompatibel
- Abbildung ist eine Herausforderung
- Technologien: Hibernate, Java Persistence API (JPA)
Was weißt du über Database Access Layer?
- Persistenz Schicht, zwischen Applikation und relationaler Datenbank
- Notifizierungsmechanismus zum konsistenten Abgleich
- Anforderungen:
- CRUD Methoden
- Transaktionen (ACID)
- Lazy Loading (nur laden was benötigt wird)
- Cursor - Prinzip
Was ist die Idee von Lazy Loading?
- Lade (große) Objekte erst, wenn sie wirklich benötigt werden
- kann auch mit Virtual Proxy umgesetzt werden
Wie kann Dependency Injection umgesetzt werden?
- Umsetzung per Resource File, Java Annotations, Reflections, Methoden Signaturen
- Field Injection, Constructor Injection, Setter Injection
- Problem: Wie lang kann übergebende Referenz in Objekt bestehen? Unter welchen Bedingungen kann Referenz injiziert oder ausgetauscht werden?
Wie ist die Definition von MicroServices?
- eigene Laufzeitumgebung, unabhängig von anderen Microservices
- eigenes Domain Model
- Kommunikation mit anderen (REST, HTTP)
- flexibles Deployment (Docker)
- Nanoservice (wenige Zeilen Code)
- eigenes Datenbanksystem
Was heißt Bounded Context?
- kein universelles Datenmodell zwischen Microservices
- vertikale Aufteilung von Funktionen und Daten
Wie ist die Architektur von JEE?
- Web Browser kommuniziert mit Web Container (HTTP)
- Web Container besteht aus Servlet und Java Server Faces
- Web Containter kommuniziert mit EJB Container
- Java Application kommuniziert mit EJB Containter (RMI)
Was weißt du zu Enterprise Java Bean? Und welche Arten davon gibt es?
- serverseitiges Komponentenmodell zur Realisierung der Geschäftslogik
- realisieren
- skalierbare
- transaktionale
- sichere
- und wiederverwendbare Applikationen
- Entity (Bean) - persistentes, fachliches Object
- Session Bean
- Stateless Session Bean
- Stateful Session Bean
- Singleton Session Bean
- Message-driven Bean (asynchrone Kommunikation)
Wie ist das Packaging bei JEE?
- Enterprise Archive (ear) - enthält .war .jar .rar
- EJB-JAR (Enterprise Java Bean Archive, jar) - enthält EJBs
- Web Application Archive (war) - Web-basierten Komponenten
Erzähl was über Session Beans. Wie lauten die Annotationen?
- Session Bean implementiert Use Cases
- musste bis Version 2.x eine Reihe von Interfaces implementieren
- ab 3.0 durch POJO realisiert, Annotations werden verwendet
Entfernter Zugriff erfolgt mehr RMI (Remote Method Invocation).
Annotationen (Folie 28ff)
- @Stateless für Stateless Bean
- @Remote für das Interface welches Remote verwendet werden soll (die EJB implementiert dann das Interface)
- @Local für das Interface welches Lokal verwendet werden soll
- @EJB an eine Variable injiziert dann die lokale EJB in die Variable
Erzähle was über Stateless Session Beans.
Wie lauten die Zustände?
- beliebige Zuweisung aus Pool
- Instanzvariablen können, sollten aber besser nicht belegt werden
- Geschäftslogik sollte in einem Methodenaufruf erledigt werden
- Vorteile Pooling:
- kleine Anzahl Beans kann theoretisch größere Anzahl von Clients bedienen
- benötigen weniger Server Ressourcen
- Hohe Skalierbarkeit
- Auslastung des Application Server sinkt
Erzähle was über Singleton Seassion Bean
Sowie über die Zustände
- es existiert nur eine Session
- Einsparung von Ressourcen
- nicht thread-safe
- Methoden zur Unterbindung nicht performant
- gut für gleichzeitige Lesezugriffe mit wenigen Updates
Lösung (Folie 30)
- synchronized -> inperformant
- Alternativ `@ConcurrencyManagement?
- Vorteil: Read-Lock und Write-Lock
- Read-Lock beliebig viele, aber nicht wenn Write-Lock vorhanden
- Write-Lock nur genau einmal
Was bedeuted ACID?
- Atomicity; nicht zerlegbar; entweder ganz oder gar nicht
- Consistency; eine Transaktion hinterlässt einen konsistenten Datenbankzustand
- Isolation; nebenläufige Transaktionen beeinflussen sich nicht
- Durability; Wirkung einer erfolgreichen Transaktion bleibt dauert in der DB erhalten
Was weißt du über Transaktionen?
Nenne auch die Transaktionsattribute
- Problem: Aus einer Transaktion können weitere Methoden anderer Session Beans aufgerufen werden; Gültigkeitsbereich einer Transaktion?
- Abhängig von Transaktionsattributen
- REQUIRED (Default) - neue Transaktion in gleicher Transaktion
- REQUIRES_NEW - neue Transaktion in eigener Transaktion
- MANDATORY - neue Transaktion in eigener Transaktion; wenn keine Transaktion existiert -> FEHLER