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 Stateful Session Beans.

Erkläre die Zustände.

  • haben einen Client bezogenen Zustand
  • wird nicht persistent gehalten
  • kein Pooling möglich

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