Lernkarten

Karten 58 Karten
Lernende 2 Lernende
Sprache Deutsch
Stufe Grundschule
Erstellt / Aktualisiert 31.03.2018 / 31.03.2018
Lizenzierung Keine Angabe
Weblink
Einbinden
0 Exakte Antworten 58 Text Antworten 0 Multiple Choice Antworten

1/58

Fenster schliessen

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)
Fenster schliessen

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
Fenster schliessen

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
Fenster schliessen

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?
Fenster schliessen

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
Fenster schliessen

Was heißt Bounded Context?

  • kein universelles Datenmodell zwischen Microservices
  • vertikale Aufteilung von Funktionen und Daten
Fenster schliessen

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)
Fenster schliessen

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)
Fenster schliessen

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
Fenster schliessen

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
Fenster schliessen

Erzähle was über Stateless Session Beans.

Wie lauten die Zustände?

Lizenzierung: Keine Angabe
  • 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

 

Fenster schliessen

Erzähle was über Stateful Session Beans.

Erkläre die Zustände.

Lizenzierung: Keine Angabe
  • haben einen Client bezogenen Zustand
  • wird nicht persistent gehalten
  • kein Pooling möglich
Fenster schliessen

Erzähle was über Singleton Seassion Bean

Sowie über die Zustände

Lizenzierung: Keine Angabe
  • 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
Fenster schliessen

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
Fenster schliessen

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
Fenster schliessen

Was versteht man unter Architekturstile und -muster

  • beschreibt Dekomposition eines einzelnen Software-Sytems
  • Definieren Richtlinien und Vorgaben
Fenster schliessen

Was sind klassische Architekturstile?

  • Layer
  • Peer-To-Peer
  • Pipes-And-Filter
  • Shared Data
  • Client-Server
Fenster schliessen

Architektur Elemente

  • Elemente können hierarchisch angeordnet sein
  • Zugriff auf Funktionen erfolgt über Interfaces
Fenster schliessen

Wie können Interaktionen stattfinden?

  • lokal
  • Verteilt
  • durch Mittlerkomponente
Fenster schliessen

Was sind Direktiven?

Sind zusätzliche Eigenschaften, Richtlinien und Einschränken welche sich nicht unmittelbar aus der Dekomposition ergeben.

Oft durch: Qualitätsanforderungen, technische Anforderungen, grundlegenden Architekturstil, organisatorische Rahmenbedingungen

Fenster schliessen

Was sind technische Schulden?

  • Qualitätseinbußen, (un)bewusst falsche oder suboptimale technische Entscheidungen
  • Implementationsschulden (Code-Smells), Architekturschulden, Testschulden, Dokumentationsschulden
Fenster schliessen

Was ist die Idee und das Ziel der Komponentenorientierung?

  • Idee: Erstellung von Software durch Komposition von vorgefertigten, unabhängigen Software Komponenten
  • (Zusammenbau von Systemen aus einzelnen Teilen)
  • Ziel: Reduktion von Kosten und Zeit
Fenster schliessen

Wie wird eine Komponente implementiert?

  • wird implementiert durch ein Objekt
  • kann mehrere Interfaces besitzen
  • weißt Abhängigkeiten aus
Fenster schliessen

Was zeichnet einen Microservice aus?

  • besitzt eine Implementierung
  • kann ein UI besitzen
  • kann mehrere REST-Interfaces besitzen
  • besitzt einen Datenhaushalt
  • hat eine Laufzeitumgebung
Fenster schliessen

Welche Rollen gibt es bei der Entwicklung von Komponenten?

  • -Entwickler
  • -Zusammensteller (zum Teil Endanwender)
    • Entwickelt Applikation durch (Wieder)verwendung von Komponenten
  • System-Architekt
    • Setzt LFU für Komponenten auf
    • Einhaltung von Qualitätsanforderungen
Fenster schliessen

Welche Eigenschaften hat eine Komponente?

Deployment ist wichtigste Eigenschaft einer Komponente!

Standardisiert Müssen standardisierten Komponentenmodell entsprechen; Vorgabe von Schnittstellen, Metadaten, Dokumentation, Zusammenstellungsart, Bereitstellung

Unabhängig Sollte ohne Abhängigkeiten auskommen; falls benötigt sollte die Abhängigkeit spezifiziert sein

Einsetzbar (deployable)Kann in LZU eingesetzt werden; liegen in Binärform vor; LZU baut auf OS auf

Dokumentiert Vollständig dokumentiert, damit Benutzer entscheiden können ob Ansprüche erfüllt sind; Beschreibung Syntax und Semantik

Zusammenstellbar Kann mit (mehreren) anderen zu höherwertigen Komposition zusammengestellt werden; Interaktion über öffentliche Schnittstellen

Fenster schliessen

Was sind die Grundparadigmen der Objektorientierung?

  • Kapselung des Zustands
  • Abstraktion
  • Generalisierung und Spezialisierung
  • Polymorphie
Fenster schliessen

Unterscheide Klasse und Komponente

  • Komponenten legen keine Datentypen fest
  • Implementierung von Komponenten sind verschlossen
  • Komponenten sind sprachunabhängig
  • Komponenten sind standardisiert

Komponente:

  • Binärform
  • Wird in LZU deployed
  • kann aus LZU entfernt werden
  • Deployment während der Laufzeit

Objekt:

  • Source Code
  • Java: nur Kompolierung der Klasse, dann flexibles Einsetzen in Classpath möglich, keine Verlinkung
Fenster schliessen

Wofür stehts COTS und was zeichnet es aus?

Commerciall Off-the-Shelf

  • seriengefertigte Komponenten, gleichartig aufgebaut
  • geringe bis gar keine Konfiguration
  • vollständige Software-Lösung
Fenster schliessen

Was zeichnet ein Framework aus?

  • Rahmenwerk
  • Definiert Software-Architektur
  • Enthält Klassen, Bibliotheken und LZU
  • nicht unmittelbar ausführbar, hohe Anpassung notwendig