ENAPP HS16

Diese Karteikarten ergänzen jene von Adrian Stern mit den neusten oder fehlenden Fragen aus dem HS16

Diese Karteikarten ergänzen jene von Adrian Stern mit den neusten oder fehlenden Fragen aus dem HS16


Set of flashcards Details

Flashcards 17
Language Deutsch
Category Computer Science
Level University
Created / Updated 22.01.2017 / 21.01.2020
Weblink
https://card2brain.ch/box/20170122_enapp_hs16
Embed
<iframe src="https://card2brain.ch/box/20170122_enapp_hs16/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Versuchen sie die Begriffe Tiers und Layers zu erklären

Siehe Folie: Tier to Layer Mapping

Die Schichtenarchitektur ist ein Strukturierungsprinzip für die Architektur von Softwaresystemen. Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer Schicht zugeordnet. Die erlaubten Abhängigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur dahingehend eingeschränkt, dass Aspekte einer „höheren“ Schicht nur solche „tieferer“ Schichten verwenden dürfen.

Durch eine Schichtenarchitektur wird die Komplexität der Abhängigkeiten innerhalb des Systems reduziert und somit eine geringere Kopplung bei gleichzeitig höherer Kohäsion der einzelnen Schichten erreicht.

Ein wichtiger Unterschied zwischen Tiers und Layers ist: Ein Layer ein logischer Strukturmechanismus für die Elemente der SW Lösung, währendem ein Tier ein physikalischer Strukturmechanismus für die Systeminfrastruktur ist.

Welche Möglichkeiten haben sie für das Session Management?

Session Cookies

  • Sehr effektiv
  • ungeeignet bei grossen Session Data
  • am besten nicht über ein paar hundert Bytes

Session ID

  • Best Practice
  • grosse Session Data Volumen möglich
  • Cookies werden „nur“ noch für Session ID, etc. verwendet
  • Unterliegen dem EE Session Management 

Welche Scopes bietet JSF an?

  • Application (javax.enterprise.context.ApplicationScoped): gültig über alle User Aktionen mit der Web Applikation.
  • Session (javax.enterprise.context.SessionScoped): gültig über mehrere HTTP Anfragen in einer Web Applikation.
  • Flow (javax.faces.flows.FlowScoped): Gültig während User Interaktionen mit einem spezifischen „Ablauf“ einer Web Applikation. (JEE7)
  • Request (javax.enterprise.context.RequestScoped): Gültig während einer einzigen HTTP Anfrage in einer Web Applikation.
  • Dependent (javax.enterprise.context.Dependent): Kennzeichnet eine Abhängigkeit von einem anderen Bean.

Auf welchem Design Pattern basiert CDI?

  • Dependency Injection
  • Service Locator

Nennen Sie eine Anwendung von CDI

  • entkoppelt einen Task von seiner Implementation
  • fokussiert ein Modul zur Aufgabe exakt wozu es entworfen wurde.
  • Befreit Module von Annahmen (zB wie andere Systeme machen was sie machen sollten...) und bezieht sich stattdessen auf Verträge* .
  • Verhindert Seiteneffekte wenn Klassen ersetzt werden müssen. 

Zeichnen sie das IoC Design Pattern

Wie wird in der CDI Spezifikation ein „Bean“ definiert?

  • Ein Objekt das an einen Life Cycle Kontext gebunden ist wird Bean genannt.
  • CDI beinhaltet Support für folgende Beans:
    • managed Beans
    • EJB Session Beans
  • managed und session Beans können andere Beans injizieren.
  • Andere Objekte die keine Beans sind können auch Beans via CDI injiziert bekommen. 

Was bedeutet folgender Ausdruck im Zusammenhang mit CDI?
Der Ausdruck CDI bedeutet loose Kopplung und strong Typing

  • Ein Bean definiert nur den Typ und die Semantik von anderen Beans von denen es Abhängigkeiten besitzt.
  • Es muss keine Kenntnisse haben vom Lebenszyklus, konkreter Implementation, threading Modell oder anderen Clients.
  • Die konkrete Implementation, Lebenszyklus, Threading Modell kann je nach Deployment Szenario variieren ohne den Client zu beeinflussen
  • ...das ist echtes „loose coupling“... 

Definieren sie die Anatomie eines Beans

  • ein (nicht leeres) Set von Bean Typen
  • ein (nicht leeres) Set von Qualifiers
  • ein Scoope
  • Optional, ein Beam EL Name
  • Ein Set von Interceptor Bindings
  • Eine Bean Implementaion
  • kann eine Alternative (@Alternative) sein 

Wie wird ein Bean typ definiert?

  • Ein Bean Typ, zusammen mit:
  • einem Set von Qualifiers

Ein Bean Typ ist eine user definierte Klasse; einem Typ der clientvisible ist.

Welchen Scope koennen Beans haben?

Der Scope definiert Lebenszyklus und Sichtbarkeit einer Bean Instanz.

  • @RequestScoped
  • @SessionScoped
  • @ApplicationScoped
  • @ConversationScoped 

CDI erlaubt eigene Scopes zu definieren: @ScopeType

Was macht die Verwendung von Java CDI um einiges einfacher?

Definiert den Lebenszyklus und die Sichtbarkeit

Nennen sie ein paar solcher Annotationen und deren Verwendung!

  • @Named (Die Notation macht es nun aber möglich das Bean aus der EL zu referenzieren (meistens aus einer JSF View)
  • @Alternative (Sind Beans bei welchen die Implementation Client Modul- oder Deployment spezifisch ist.)
  • @Qualifier (Benutzer definierte Annotation)

Welche HTTP Operationen sind idempotent und welche nicht?

Die BookID von Alice im Wunderland ist 15608. Die URL ist: http://www.kaufen.ch/books/getBook?id=15608 Wie könnte die URL ReST konform aussehen?

http://www.kaufen.ch/books/15608

Wieso war Fielding so darauf bedacht, alle Ressourcen im Web mit in sein Design einzubeziehen?

Erinnern wir uns, dass die Entscheidungen der Web Komponenten (Firewalls, Routers, Caches) auf Informationen vom HTTP Header machen. Konsequenterweise muss die Destination-URL aus Effizienz Gründen im HTTP Header platziert werden.

Welche Message Typen kennt JMS?

  • StreamMessage: Ein Stream von primitiven Java Werten, aufgefüllt und gelesen sequentiell.
  • TextMessage: Ein java.lang.String Objekt
  • ObjectMessage: ein serialisierbares Java Objekt
  • ByteMessage: ein Stream von un-interpretierten Bytes oder binären Daten
  • MapMessage: Ein Set von Werte-Paaren, z.B: Hash Table