ENAPP
HSLU ENAPP
HSLU ENAPP
-
- 1 / 75
-
Flashcards
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.
-
Client sendet GET - anfrage an Url /books
-
Client enthält response mit liste aller bücher
-
Client baut clientseitig (oder http form) ein purchaseorder.xml oder po.xml
- 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