ppls
ppls
ppls
Kartei Details
Karten | 58 |
---|---|
Sprache | Deutsch |
Kategorie | Chemie |
Stufe | Grundschule |
Erstellt / Aktualisiert | 31.03.2018 / 31.03.2018 |
Weblink |
https://card2brain.ch/box/20180331_ppls
|
Einbinden |
<iframe src="https://card2brain.ch/box/20180331_ppls/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
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