ENAPP

HSLU ENAPP

HSLU ENAPP


A. S.
Diese Lernkarten bieten einen umfassenden Überblick über die Java EE-Architektur und deren Sicherheit auf Universitätsniveau. Sie konzentrieren sich auf zentrale Konzepte wie Java, Container, Servlets, Methoden und Services, wobei auch Themen wie Sicherheit, Clients und HTTP-Anfragen behandelt werden. Entwickler und IT-Spezialisten profitieren von diesen Karteikarten, da sie praxisnahe Einblicke in die Implementierung und Verwaltung von Java EE-Anwendungen bieten, insbesondere im Bereich der Sicherheitsarchitektur und der Nutzung von Beans.
Karten
75
Lernende
13
Sprache
Deutsch
Kategorie
Technik
Stufe
Universität
Erstellt / Aktualisiert
08.01.2015 / 21.01.2020

Lernkarten

Aus welchen Teilen besteht ein Java EE Server?

  • Web Container,

  • EJB Container,

  • Application Client Container,

  • (Applet Container)

Was ist ein Web Container?

Der Web Container ist die Schnittstelle zwischen Web  Komponenten und Web Server.

  • Eine Web Komponente kann ein Java Server Faces Faclet oder ein Servlet sein.

  • Der Container verwaltet den Lebenszyklus der Komponenten, versendet Anfragen an Applikationskomponenten und verwaltet die Schnittstellen zu Kontextdaten wie zB Informationen über die momentane Anfrage.

Was ist ein EJB Container?

Der EJB Container ist die Schnittstelle zwischen Enterprise Beans welche die Business Logik der EE Applikation darstellen und dem Java EE Server.

  • Der EJB Container läuft auf dem den Java EE Server und verwaltet die Ausführung der Enterprise Beans der Applikation.

Was ist ein Application Client Container?

  • Der Application Client Container ist die Schnittstelle zwischen Java EE Application Clients und den Java EE Server.

  • Java EE Clients sind spezielle Java SE Applikationen welche Java EE Server Komponenten verwenden  

  • Der Java Application Client laeuft auf der Client Maschine und ist der Gateway zwischen der Client Applikation und den Java EE Komponenten die der Client verwenden will

Beschreiben sie die Funktionalität der einzelnen Tiers in einer 3-Tier Architektur

Die Funktionalität einer Enterprise Applikation ist separiert in isolierte funktionelle Abschnitte (Tiers)

  • Der client Tier besteht aus einem Programm das Anfragen an den middle Tier macht.

  • Der middle Tier ist unterteilt in Web Tier und Business Tier.

  • Der middle Tier behandelt die client Anfragen und Applikationsdaten.

Der middle Tier speichert die Applikationsdaten permanent im data Tier (EIS, Enterprise Information System Tier)

Nennen sie ein paar Services die ihnen von einem JEE Container zur Verfügung gestellt werden.

  • Security Service

  • Transaction Service

  • Naming Service (Lookup Service)

  • Remoting (RMI)

  • Messaging Service

  • Persistence Service

  • Concurency Service

  • Instance Pooling

Wieso werden die Klassen in Java EE nicht einfach Klassen genannt?

Weil haben halt keinen Konstruktor

Klassen besitzen keinen Konstruktor mehr. Sie werden desshalb Beans genannt. Ihr Lebenszyklus wird vom Container verwaltet.

Was ist ein Domain Model?

  • System-Design Patterns

  • Objektmodell einer Domäne welche sowohl das Verhalten als auch die Datenhaltung beinhaltet.

Was gehört zu einer guten Architektur?

Konzeptionelle Integrität

  • Konsistente Anleitung für die Systementwicklung
  • Alle beteiligten verstehen was hier entwickelt wird
  • Verwendet ein Blue Print (Referenz Architektur)

Korrektheit und vollständigkeit

  • Architektur enthält alle high-level Entscheidungen
  • Wo die Qualität nicht eingehalten werden kann müssen die Entscheidungsgrundlagen offen gelegt werden

Machbarkeit

  • Die Architektur sollte einen Blue Print repräsentieren
  • Dieser sollte vom Team realisiert werden können
  • Sollte offen sein für Änderungen (in realisierbarer Zeit)

Wieso entspricht eine JSF oder Spring Applikation einem Model 2?

  • Die Ansicht ist im Präsentationslayer
  • Das modell ist die Businesslogik und die Daten
  • Der Controller ist der Teil vom Applikationscode der auf die User Events reagiert und integriert das Modell und die View

Weil Servelt Anfragen entgegennimmt und JSP Antwortet

 

Erklären sie Seperation of Conerns (SoC)?

SpringSoC = Aufteilung der Aufgaben (z.B. PL, BL, DAL oder MVC)

Welche Komponenten entsprechen dem Model, View und Controller?

Model:        JavaBean

View:            JSP / JSF

Controller:        Servlet

Was ist der Unterschied zwischen Inclusion und Transclusion (z.B. bei XHTML)?

  • Inclusion: wird in Code “eingeneriert”
  • Transclusion: im Code wird später nachgeladen (AJAX)

Welche Gültigkeit kennt JSF?

Managed Beans Scope:

Application: Verfügbar solange die Applikation laeuft. Muessen Thread-Save sein, denn sie werden von allen anderen Beans gerufen.

Session: Für alle Anfragen/Antworten innerhalb einer Session.

View: Sichtbar solange die View nicht wechselt.

Request: Default Scope. Sichtbarkeit von einer Anfrage bis zur Antwort

Flash: kurze Lebensdauer, für temporäre Objekte

None: Nicht sichtbar für andere ManagedBeans

 

Was sind die Voraussetzungen dass ein POJO zu einem “managed bean” wird?

  • @ManagedBean (ggf. auch andere Annotationen)

  • ParameFlashterloser Konstruktor

Zeigen Sie die Vorteile des Komponenten basierten entwickelns auf.

  • Vereinfacht das Entwickeln von grossen, verteilten Applikationen.
  • Parallele Entwicklung möglich
  • Austauschbare Komponenten
  • Standort-Transparenz

Welches sind die gängigsten Patterns von einer Web Applikation?

  • MVC (Model View Control)
  • Facade (Fassade)
  • IoC (Inversion of Control)
  • View Helper

Wieso verwendet man Servlets? Zählen Sie ein paar Vorteile, vielleicht auch Nachteile auf!

+

  • Request/Response erzeugung “dynamischer” ContentAPI

  • Portabilität: Da Servlets in Java geschrieben werden ist die Portabilität zwischen verschiedenen Plattformen / Betriebsystemen gewährleistet. Außerdem ist durch das Servlet API eine serverunabhängige Schnittstelle definiert, was Servlets portabel zwischen verschieden Servern macht.

  • Klasse wird vom Server verwaltet (lifecycle)

  • Clientanfragen entgegen nehmen und bearbeiten

  • Multithreading

  • Verteilbar

  • Ein Heer von Programmierern

-

  • Da jedes Servlet i.d.R. nur einmal Instanziiert wird (es existiert also genau ein Objekt von einem Servlet) und mehrere Threads des Servers gleichzeitig darauf zugreifen, muß man oft die Methoden des Servlets als synchronized deklarieren, um die Konsistenz von Member-Variablen (Klassenvariablen) zu gewährleisten. Dies wirkt sich negativ auf die Performance aus. Meistens kann man jedoch ohne Member-Variablen in den Servlets auskommen.
  • Es wird HTML wissen vorausgesetzt

  • Compile/Deploy Zyklus

Welche 2 Objekte werden sofort erzeugt wenn ein Servlet aufgerufen wird?h

  • HTTPServletRequest

  • HTTPServletResponse

Von welcher Klasse ist ihr selber geschriebenes Servlet abgeleitet?

  • HTTPServlet (javax.servlet.http)

Für welche HTTP Request Typen stellt das Servlet Methoden zu deren Verarbeitung zur Verfügung?

  • POST

  • GET

  • Head

  • Put

  • Delete

  • Options

  • Trace

Welche Methoden überschreiben Sie wenn Sie eine HTTP POST Anfrage speziell behandeln möchten?

HTTPServletResponse doPost(HTTPServletRequest request);

Welche Methoden überschreiben Sie wenn Sie eine HTTP POST Anfrage speziell behandeln möchten?

HTTPServletResponse doPost(HTTPServletRequest request);

Wo können Sie obige Methode auch implementieren, resp. von wo aus können Sie sie auch aufrufen?

  • aus der service() Methode

Zeichnen Sie den Lebenszyklus eines Servlets auf!

init -> [servlet] -> destroy

              O> Service

doGet, doPost, doHead, doOptions, doTrace...

In Service

Once a servlet is initialized, the servlet container invokes its service() method to handle client requests. This method is called once for each request. Generally, the servlet container handle concurrent request to the same servlet by running service() on different threads (unless SingleThreadModel interface is declared).

Wenn Sie bei den Antworten Ihres Servlet einen String entfernen möchten, welches Werkzeug bietet Ihnen der Servlet Standard?

Filterketten

Geben sie mir eine Definition “was ist ein Servlet?” ab

Als Servlets bezeichnet man Java-Klassen, deren Instanzen innerhalb eines Webservers Anfragen von Clients entgegennehmen und beantworten. Der Inhalt der Antworten kann dabei dynamisch, also im Moment der Anfrage, erstellt werden und muss nicht bereits statisch für den Webserver verfügbar sein.

Wie ist der ReST Standard definiert und welchem Komitee unterliegt er?

  • REST ist kein Standard

  • Es wird keinen W3C Standard über REST geben.

  • Es gibt aber REST Entwicklungs-Toolkits von IBM, Microsoft und Oracle/Sun Microsystems.

     

Welche Standards verwendet ReST?

REST beschreibt auch die Verwendung von Standards:

• HTTP

• URL

• XML/HTML/GIF/JPEG/etc .(Resource Representations)

• text/xml, text/html, image/gif, image/jpeg, etc. (ResourceTypes, MIME Types)

 

Was ist ReST genau?

REST ist nur ein Design Pattern Sie werden kein Pattern 1:1 aus der Dose einsetzen können.

Sie können aber das Design verstehen und ihre Web Services danach kreieren.

Welche 4 grundlegenden (web)Operationen liegen dem im ReST (HTTP API)

• retrieve Informationen (HTTP GET)

• replace or create Informationen (HTTP PUT) (objektname vorausgesetzt)

• create Informationen (HTTP POST) (blind)

• delete Informationen (HTTP DELETE)

Was muss in einem ReST konformen Design in der Antwort enthalten sein?

  • Für jeden Service wird eine Ressource erzeugt.

  • Identifiziere jede Ressource unter Verwendung einer URL.

  • Die Daten die von einem Web Service retourniert werden sollten Links zu anderen Daten enthalten.

  • Folgerung: Planen Sie ihre Daten als Netzwerk von Informationen.

  • Ganz im Gegensatz zum OO design, welches sagtKapsle die Informationen“.

Beschreiben sie genau den Aufbau vom ReST Design Pattern.

Zitat aus Folie: Das REST Design Pattern wird am Besten anhand eines Beispiels erklärt.

  1. Client sendet GET - anfrage an Url /books

  2. Client enthält response mit liste aller bücher

  3. Client baut clientseitig (oder http form) ein purchaseorder.xml oder po.xml

  4. Client sendet po.xml an /books/order/

Welche Sevices kennen Sie die auf Messages beruhen und wo liegen deren Vorteile?

  • JMS (Java Messaging Service),

  • Message Driven Beans,

    • Lose Koppelung (Asynchrone Aufrufe möglich)

    • Sie erlauben eine Transparente Aufgabenzustellung

    • hohe Integrationsfähigkeit

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

Welche Aufgabe fällt dem Message Broker zu?

Der Message Broker nimmt die Anforderung entgegen und stellt sicher, dass

diese zu einem späteren Zeitpunkt dem Empfänger (Interessenten) zugestellt wird.

Welche 2 Nachrichtenmodelle kennen Sie? JMS

Point-To-Point

Publisher/Subscriber

In der Spezifikation heisst es, dass Java Messages aus allen JEE5 Komponenten vesendet werden können. Wie werden im Gegensatz dazu Java Messages in einem JEE5 kompatiblen Application Server empfangen? Wie funktioniert dieser Vorgang?

Empfang: Message Driven Bean (Zeigt auf eine Queue und holt die Messages beim eintreffen ab.)

Senden: Mit einem MessageProducer der jeweilingen Queue.

Im Gegensatz zu JMS verwendet JAX-WS ein Protokoll das normiert ist und eigentlich auch von „nicht Java“ Beteiligten verstanden wird. Wie heisst dieses und wie ist es aufgebaut?

Es wird das SOAP Protokoll verwendet. Dieses Protokoll besteht aus einem Header und Body (Zusammen Envelope) Alles ist in XML geschrieben. (Definition des Service in WSDL)

Welche Dienste und welche Spezfikation sind für einen verteilten Web Service notwendig?

  • mind. 2 Webserver

Étudier