Schritt 5: Session Beans

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Schritt 5: Session Beans"

Transkript

1 Prof. Dr. Th. Letschert FB MNI JEE Schritt 5: Session Beans Session Beans Übersicht Session Beans dienen dazu serverseitige Geschäftsprozesse zu realisieren. Es gibt sie drei Zustands Varianten: Stateless Stateful Singleton Eine Stateless Session Bean ist nicht unbedingt zustandslos, sie hat keinen Client spezifischen Zustand. D.h. ruft ein Client eine Methode einer solchen Bean auf und verändert dabei deren Zustand, dann ist nicht garantiert, dass diese Veränderung in einem folgenden Aufruf durch den gleichen Client sichtbar ist. Bei einer Stateful Session Bean ist dagegen genau das garantiert. Modifikationen des Zustands einer Bean sind in Folgeaufrufen durch den gleichen Client sichtbar. Eine Singleton Session Bean hat die Eigenschaft, dass ihr keine Client spezifischen Zustände zugeordnet sind, sondern nur ein globaler Zustand, der für alle Clients sichtbar ist. Zustandsänderungen durch einen Client sind damit auch für andere Clients sichtbar. Session Beans können auf unterschiedliche Arten erstellt werden. Es gibt sie in den Deploymenmt Varianten völlig ohne Interface mit lokalem Interface mit entferntem Interface Session Beans mit ihren Interfaces Bean mit Remote Interface Session Beans sind Komponenten eines im Prinzip verteilten Systems. Sie können aus der Ferne, d.h. aus einem anderen Prozess heraus, angesprochen werden. Dazu ist prinzipiell ein nicht unbeträchtlicher technischer Aufwand notwendig. Ein Server Prozess muss laufen, er muss Verbindungen annehmen, eintreffende Anfragen dekodieren, die richtigen Methode des richtigen Objekts aufrufen, das Ergebnis kodieren und über die Verbindung zurück senden. All dies ist für den EJB Programmierer weitgehend transparent. Allerdings kann er die Mechanismen nicht völlig ignorieren. Er muss sich bewusst sein, dass auf Clientseite ein Proxy Objekt erzeugt wird das die Daten sendet und empfängt. Damit werden alle Daten per Wertübergabe transferiert: Eine Operation auf Referenzen ist nicht möglich. Das Proxy Objekt muss die gleiche Schnittstelle haben wie das Objekt, das es vertritt. Seine Implementierung ist natürlich eine radikal andere. Die Schnittstelle wird als Remote Interface definiert. Das Interface wird von der Bean Klasse und dem (automatisch erzeugten) Proxy Objekt implementiert.

2 Zu einer Session Bean gehört also eine implementierende Klasse und ein Remote Interface. In unserer Compute EJB hatten wir das Remote Interface: import public interface GlobalComputeBeanRemote { String compute(string operator, String operand1, String operand2); und als implementierende Klasse import javax.ejb.localbean; import javax.ejb.stateless; import javax.jws.webservice; * Session Bean implementation class public class GlobalComputeBean implements GlobalComputeBeanRemote { * Default constructor. public GlobalComputeBean() public String compute(string operator, String operand1, String operand2) { Die Annotation Stateless informiert den Container darüber, dass es sich um eine Stateless Session Bean handelt. Sie kann mit einem optionalen Parameter versehen werden, mit dem JNDI Name gesetzt wird und einer Beschreibung die vom Applikationsserver verwendet werden kann. description="die rechnende Bean") public class GlobalComputeBean implements GlobalComputeBeanRemote { Wird kein Name angegeben, dann ist der (voll qualifizierte) Name der Klasse der JNDI Name der Bean. Es ist sicher sinnvoll bei der Vergabe der Namen einem sinnvollen Schema zu folgen. Z.B.: import public interface ComputeBeanRemote { String compute(string operator, String operand1, String description="die rechnende Bean") public class ComputeBeanImpl implements ComputeBeanRemote { 2

3 Bean mit Local Interface Wird eine Bean nicht über Prozessgrenzen hinweg genutzt, also nur innerhalb der gleichen JVM Instanz, dann handelt es sich um einen lokalen Aufruf. Der Aufruf Mechanismus ist in dem Fall wesentlich einfacher. Ein Aufruf durch ein Servlet der gleichen Applikation ist beispielsweise immer ein lokaler Aufruf. Auch für einen lokalen Aufruf wird ein Interface benötigt. Die Definition ist äquivalent zur der eines entfernten Interfaces. Das Interface wird public interface ComputeBean { String compute(string operator, String operand1, String operand2); Die Implementierung implementiert public class ComputeBeanImpl implements ComputeBeanRemote { Invertierte Local / Remote Annotation Die Local und die Remote Annotationen können invertiert verwendet werden: Das Interface wird dann nicht versehen. Die implementierende Klasse holt dies nach. Beispielsweise wird das Interface definiert: public interface ComputeBean { String compute(string operator, String operand1, String operand2); In der Implementierung wird dann statt dessen die Interface public class ComputeBeanImpl implements ComputeBeanRemote { Mit der Remote Annotation kann genauso verfahren werden. Session Beans ohne Lokales Interface Eigentlich sollte eine Komponente immer ein definiertes Interface haben. Auf das lokale Interface kann aber trotzdem verzichtet werden. Mit der vor der Implementierungsklasse wird gesagt, dass es sich um eine Session Bean mit no-interface view handelt. Sie kann lokal über alle öffentlichen Methoden zugegriffen werden public class ComputeBeanImpl { Die Annotation ist unnötig, wenn die Bean Klasse kein Interface explizit implementiert. In dem Fall wird sie so behandelt, als sei sie mit annotiert. Die Methoden dürfen nicht final sein, denn der Container generiert via Ableitung eine Proxy Klasse über die der tatsächliche Zugriff abläuft. 3

4 Stateless Session Beans Kein Conversational State Stateless Session Beans sollten für alle Aufgaben verwendet werden, bei denen keinerlei Zustandsinformationen innerhalb der Bean verwaltet werden sollen. Typischerweise sind ist das bei einfachen Berechnungen der Fall. Der Zustand der Konversation mit bestimmten Clients kann natürlich extern gespeichert und verwaltet werden. Das ist aber normalerweise wenig sinnvoll. Es ist einer Stateless Session Bean auch erlaubt Objektvariablen zu verwenden. Modifikationen der Objektvariablen sind aber nicht unbedingt für nachfolgende Methodenaufrufe des gleichen Clients sichtbar. Stateless Session Beans werden vom Container nach eigenen Regeln erzeugt und in Pools verwaltet. Methodenaufrufe werden dann rein nach Effizienz Gesichtspunkte einer Bean zugeordnet. Damit kann keine conversational state in einer solchen Bean verwaltet werden. Wer weiß, welche Bean Instanze dem nächsten Methodenaufruf zugeordnet wird. Diese Art der Verwaltung macht Stateless Session Beans besonders effizient, so dass sie grundsätzlich für alle Aktivitäten verwendet werden sollen, die vom individuellen Client unabhängig sind. Life Cycle Wie es sich für eine Container Komponente gehört, hat jede Session Bean einen Lebenszyklus der vom Container gesteuert wird. Der Lebenszyklus einer Stateless Session Bean ist besonders einfach: does not exist method ready pool Die Bean wird vom Container erzeugt und in den method ready Pool eingefügt. Ab dann ist sie bereit Methoden auszuführen. Mit annotierten Methoden kann die Bean sich in die Zustandsübergänge public class GlobalComputeBean implements GlobalComputeBeanRemote public void initialize() { date = new Date(); // schreibt in die Log-Datei: System.out.println("GlobalComputeBean put into method ready pool at public void finalize() { Stateful Session Beans Life Cycle Eine Stateful Session Bean hat einen etwas komplexeren Lebenszyklus, als eine Stateless Session Bean. Da sie mit einem Client verbunden ist, muss sie eventuell sehr langlebig sein. Der Container muss eine Stateful Session Bean nicht während ihrer gesamten Lebenzeit im Hauptspeicher vorhalten. Der Container kann sie vorübergehend auslagern. Dieses Auslagern wird passivate genannt und das darauf folgende spätere Einlagern nennt sich activate. 4

5 Auf beide Ereignisse kann die Bean zusätzlichen Methoden public class MyBeanImpl implements MyBean public void initialize() public void finalize() public void getreadyforsleeping() public void getreadyforworkagain() { Conversational State Stateful Session Beans werden genau einem Client zugeordnet. Verwendet also ein Servlet eine Stateful Session Bean, dann wird dem Servlet exklusiv eine Stateful Session Bean zugeordnet, die dann einen Servlet spezifischen Conversational State verwaltet. Nehmen wir unser Standardbeispiel des zählenden Rechners: import javax.ejb.localbean; import javax.ejb.stateful; * Session Bean implementation class public class CountingBean { private int counter = 0; * Default constructor. public CountingBean() { public String compute(string operator, String operand1, String operand2) { String result = "?"; counter++; int v1 = Integer.parseInt(operand1); int v2 = Integer.parseInt(operand2); if ( operator.equals("add") ) result = " "+(v1 + v2); else if ( operator.equals("sub") ) result= "Value: "+(v1 - v2); else throw new IllegalArgumentException("Unexpected Operation: "+operator); result = result + " Counter: " + counter; catch (Exception e) { result = "ERROR: " + e; return result; 5

6 Das Servlet dazu: package servlets;. import compute.countingbean; * Servlet implementation class public class ComputeServlet extends HttpServlet { private static final long serialversionuid = private CountingBean computebean; HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); out.println("<html><body>"); String operand1 = request.getparameter("zahl1"); String operand2 = request.getparameter("zahl2"); String operator = request.getparameter("operation"); String result = computebean.compute(operator, operand1, operand2); out.println("ergebnis: " + result); catch (NumberFormatException e) { out.println("fehlerhafte Eingabe"); out.println("</body></html>"); Man darf dabei nicht die unterschiedlichen Konzepte einer Session vermischen. Die Web Anwendung verwaltet Benutzer Sessions. Dies haben aber nichts mit dem conversational state der Bean zu tun. Servlets werden wieder verwendet. Ein Servlet ist typischerweise in vielen Benutzer Sessions involviert. Der Partner der Bean ist ein Servlet. Es gibt eine Session zwischen Bean und Servlet. D.h. der Zähler wird mit jedem Zugriff erhöht und die (End ) Benutzer sehen die Erhöhung durch andere (End ) Benutzer. Wenn wir eine Stateful Session Bean haben wollen, deren conversational state an eine (End Benutzer Session gebunden ist, dann muss die Bean von einem Objekt angesprochen werden, dass spezifisch für eine End Benutzer Session ist. Beispielsweise ein HttpSession Objekt. Eine solche Bindung kann leider nicht über die ach so bequeme Dependency Injection erzeugt werden. Expliziter Zugriff auf eine Session Bean Wenn wir explizit, also ohne Dependency Injection auf eine Bean zugreifen wollen, dann muss sie Remote sein. Wir definieren darum die Bean zum zählenden Rechen neu mit einem Remote Interface: import public interface CountingBean { 6

7 public String compute(string operator, String operand1, String operand2); und der Implementierung: import javax.ejb.localbean; import javax.ejb.stateful; * Session Bean implementation class public class CountingBeanImpl implements CountingBean { private int counter = 0; * Default constructor. public CountingBeanImpl() { public String compute(string operator, String operand1, String operand2) { String result = "?"; counter++; int v1 = Integer.parseInt(operand1); int v2 = Integer.parseInt(operand2); if ( operator.equals("add") ) result = " "+(v1 + v2); else if ( operator.equals("sub") ) result= "Value: "+(v1 - v2); else throw new IllegalArgumentException("Unexpected Operation: "+operator); result = result + " Counter: " + counter; catch (Exception e) { result = "ERROR: " + e; return result; So jetzt kann das Servlet eine Session spezifische Bean erzeugen: package servlets; import java.io.ioexception; import java.io.printwriter; //import javax.ejb.ejb; import javax.naming.initialcontext; import javax.naming.namingexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; import compute.countingbean; * Servlet implementation class public class ComputeServlet extends HttpServlet { private static final long serialversionuid = 1L; 7

8 private CountingBean computebean; HttpServlet#HttpServlet() public ComputeServlet() { super(); HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { dopost(request, response); HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); HttpSession session = request.getsession(); if (session.isnew()) { InitialContext ctx = new InitialContext(); computebean = (CountingBean) ctx.lookup("compute.countingbean"); session.setattribute("compute_bean", computebean); else { computebean = (CountingBean) session.getattribute("compute_bean"); catch (NamingException e) { e.printstacktrace(); PrintWriter out = response.getwriter(); out.println("<html><body>"); String operand1 = request.getparameter("zahl1"); String operand2 = request.getparameter("zahl2"); String operator = request.getparameter("operation"); String result = computebean.compute(operator, operand1, operand2); out.println("ergebnis: " + result); catch (NumberFormatException e) { out.println("fehlerhafte Eingabe"); out.println("</body></html>"); So nun hat jede Benutzersession ihre eigene stateful Session Bean. Singleton Session Beans Von einer Singleton Session Bean erzeugt der Container nur eine Instanz. Die Definition erfolgt mit Hilfe der Wie alle anderen kann eine Singleton Bean lokal, remote oder Interface los sein. Sie unterstützt die gleichen Lifecycle Annotationen wie eine Stateless Bean. Gibt es mehrere Singleton Beans in einer Applikation, dann kann deren Start mit Annotation in eine (Halb ) Ordnung gebracht werden. Annotation erlaubt die Angabe einer Liste von Singleton Beans, die vor dieser zu aktivieren sind. Beispiel: 8

9 public class MySecondSingletonBeanImpl implements MySecondSingletonBean { Nebenläufigkeit und Session Beans Stateless und Statefull Beans Stateless Session Beans werden generell nicht nebenläufig genutzt, für jeden zugreifenden Thread wird eine eigene Instanz aus dem Pool verwendet. Falls keine weitere Instanz im Pool verfügbar ist, dann werden die Zugriffe serialisiert. In jedem Fall ist der Zugriff auf eine Instanz einer Stateless Bean niemals nebenläufig. Stateful Session Beans werden nicht in Pools verwaltet sondern haben eine feste Beziehung zu ihrem Kunden. Dieser Kunde kann nebenläufige Zugriffe auf eine Instanz einer Stateful Session Bean ausführen. Der Container muss diese dann serialisieren. Die Zeit die ein Kunde wartet bis er an der Reihe ist, kann mit Annotation konfiguriert werden. Da ein nebenläufiger Zugriff ausgeschlossen ist, sollte Stateful und Stateless Session Beans keine Synchronisationkonstrukte verwenden. Singleton Beans Instanzen einer Singleton Bean werden grundsätzlich nebenläufig genutzt. Zur Sysnchronisation kann man sich einer von zwei Methoden bedienen: 1. Container Managed 2. Bean Managed Bei einer Bean mit Container Managed Concurrency übernimmt der Conainer das Lock Management. Der Anwendungsentwickler muss lediglich bei jeder Methode angeben, welche Art von Lock verwendet werden soll. Möglich ist damit eine Leser/Schreiben Synchronisation die mit Annotationen Eine Methode ohne entsprechende Annotation wird so behandelt, als sei annotiert. Wird eine Stateless Bean mit ConcurrencyManagement(BEAN) annotiert, dann handelt es sich um eine Bean mit Bean Managed Concurrency. Der Anwendungsentwickler kann dann den gegenseitigen Ausschluss nach eigenem Ermessen realisieren. Asynchrone Methoden Bei einem synchronen Methoden Aufruf blockiert der Aufrufer bis die Methode endet. Bei einem asynchronen Aufruf wartet der Aufrufer nicht auf das Ende der Methode. Annotiert man eine Methode mit Asynchronous dann wird sie asynchron aufgerufen. Eine asynchrone Methode hat typischerweise kein Ergebnis, d.h. sie hat den Ergebnistyp void. Eine asynchrone Methode kann außer noch den Ergebnistyp Future<V> für irgendeinen Typ V haben. In dem Fall liefert der Aufruf sofort ein Objekt vom Typ Future<V>. Dieses Objekt repräsentiert die laufende Berechnung und kann später genutzt werden, um auf auf das Ergebnis vom Typ V der Berechnung zurück zu greifen. 9

10 Asynchrone Methoden sind also eine legale Art im EJB Container Threads zu erzeugen. Als Beispiel nehmen wir wieder die Bean von oben und modifizieren sie. Zunächst wird die Methode im Interface annotiert: import java.util.concurrent.future; import javax.ejb.asynchronous; import public interface CountingBean public Future<String> compute(string operator, String operand1, String operand2); Die Implementierung wird angepasst. Natürlich ist das hier wenig sinnvoll. Eine sinnvolle Anwendung müsste die Möglichkeiten nutzen, die die Arbeit Futures bieten. import java.util.concurrent.future; import javax.ejb.asyncresult; import javax.ejb.localbean; import javax.ejb.stateful; * Session Bean implementation class public class CountingBeanImpl implements CountingBean { private int counter = 0; * Default constructor. public CountingBeanImpl() { public Future<String> compute(string operator, String operand1, String operand2) { String result = "?"; counter++; int v1 = Integer.parseInt(operand1); int v2 = Integer.parseInt(operand2); if ( operator.equals("add") ) result = " "+(v1 + v2); else if ( operator.equals("sub") ) result= "Value: "+(v1 - v2); else throw new IllegalArgumentException("Unexpected Operation: "+operator); result = result + " Counter: " + counter; catch (Exception e) { result = "ERROR: " + e; // Future (aus bekanntem Wert) als Ergebnis: return new AsyncResult<String>(result); Das Servlet muss jetzt natürlich darauf vorbereitet sein, dass ein Future public class ComputeServlet extends HttpServlet { private static final long serialversionuid = 1L; 10

11 private CountingBean computebean; HttpServlet#HttpServlet() public ComputeServlet() { super(); HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { dopost(request, response); HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); HttpSession session = request.getsession(); if (session.isnew()) { InitialContext ctx = new InitialContext(); computebean = (CountingBean) ctx.lookup("compute.countingbean"); session.setattribute("compute_bean", computebean); else { computebean = (CountingBean) session.getattribute("compute_bean"); catch (NamingException e) { e.printstacktrace(); PrintWriter out = response.getwriter(); out.println("<html><body>"); String operand1 = request.getparameter("zahl1"); String operand2 = request.getparameter("zahl2"); String operator = request.getparameter("operation"); // Future erzeugen (Berechnung anstossen) Future<String> futureresult = computebean.compute(operator, operand1, operand2); // Ergebnis aus Future abholen: out.println("ergebnis (aus Future): " + futureresult.get()); catch (NumberFormatException e) { out.println("fehlerhafte Eingabe"); catch (InterruptedException e) { e.printstacktrace(); catch (ExecutionException e) { e.printstacktrace(); out.println("</body></html>"); 11

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Geschäftskomponenten mit EJB 3.1

Geschäftskomponenten mit EJB 3.1 Geschäftskomponenten mit EJB 3.1 Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Kurt Fastner Sommersemester 2012 Inhalt Was ist EJB Die verschiedenen EJB-Typen/Komponenten Applikationsserver,

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung Client/Server-Programmierung WS2007/08 EJB/JSP: Schritt-für-Schritt Anleitung Version 1.1, 26.09.07 Eingesetzte Software: - Apache Tomcat 5.5.9 bzw. 5.5.12 (http://tomcat.apache.org/download-55.cgi#5.5.12)

Mehr

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany Enterprise JavaBeans Einführung Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Inhalt Allgemeines Motivation Rollen Aufbau einer EJB Arten von Beans Enterprise JavaBeans

Mehr

5. Übung zu Software Engineering

5. Übung zu Software Engineering 5. Übung zu Software Engineering WS 2009/2010 Henning Heitkötter Desktop-Anwendung AUFGABE 13 1 Schichtenarchitektur Strukturierung komplexer Anwendungen Anforderungen: Flexibilität, Robustheit, Wartbarkeit,

Mehr

Application Frameworks

Application Frameworks Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen Elementare Web-Programmierung Prof. Dr. Bernhard Schiefer HTTP Web-Browser Web-Browser GET http://www.zw.fh-kl.de/beispiel.htm beispiel

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Schritt 1: Java im Web

Schritt 1: Java im Web Prof. Dr. Th. Letschert FB MNI JEE Schritt 1: Java im Web Voraussetzungen In diesem Kurs geht es um serverseitige Java Technologien. Eine wichtige, wenn auch nicht die einzige Aufgabe eines Servers ist

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9b: Datenbankapplikationen Statische Web-Seiten Nutzung von HTML Beispiel:

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

Geschäftskomponenten mit EJBs

Geschäftskomponenten mit EJBs Geschäftskomponenten mit EJBs FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components.

A Java EE component is a self-contained functional software unit that is assembled into a Java EE. communicates with other components. Begriffsdefinitionen Java EE A Java EE component is a self-contained functional software unit that is assembled into a Java EE application with its related classes and files and that communicates with

Mehr

Auszug aus JAX-WS Folien

Auszug aus JAX-WS Folien Auszug aus JAXWS Folien Dieses Dokument ist ein Auszug aus unserem Skript zur Java Web Services Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS Universität zu Lübeck 28.05.2003 Nullwerte und Primitive Typen Wenn parent==null, was wird in der Datenbank gespeichert? Wenn man aus der DB liest, wie kann

Mehr

Hivemind Ein leichtgewichteter Container

Hivemind Ein leichtgewichteter Container Hivemind Ein leichtgewichteter Container Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Container sind Laufzeitumgebungen für Objekte. Der mächtigste Container im Java-Umfeld der EJB Container

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen Java Beans Enterprise Java Beans Eine kurze Einführung in die Welt der Bohnen Java Beans Einführung Stefan Sauer Was ist ein Java Bean? Beans sind Komponenten. Einmal schreiben Überall wiederverwerten

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP 1 5. Web-Services Kommunikation zwischen Client und Server über XML-Format SOAP Client SOAP Server Beschreibung von Webservices in WSDL (Web Services Description Language) Web Service Protokollstapel Suche

Mehr

EJB3.0 Unit-Testing Reloaded

EJB3.0 Unit-Testing Reloaded EJB3.0 Unit-Testing Reloaded Werner Eberling werner.eberling@mathema.de www.mathema.de Werner Eberling, MATHEMA Software GmbH - EJB3.0 - Unit-Testing Reloaded (G4 - Folie 1) Java Forum Stuttgart 2007 Automatisiertes

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

Contexts and Dependency Injection. W3L AG info@w3l.de

Contexts and Dependency Injection. W3L AG info@w3l.de 1 Contexts and Dependency Injection W3L AG info@w3l.de 2015 2 Inhaltsverzeichnis Teil 1: Motivation Teil 2: Inversion of Control Teil 3: Contexts and Dependency Injection Teil 4: Beispiel zurück 3 Motivation

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

e-commerce Running Tomcat

e-commerce Running Tomcat e-commerce Running Tomcat Servlets im Tomcat Web-Container deployen Prof. Dr. Nikolaus Wulff Das BookStore Servlet Prof. Dr. Nikolaus Wulff ecommerce 2 HTTP und HTML Das HyperText TransferProtokoll (HTTP)

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

Java Server Pages (JSP)

Java Server Pages (JSP) Überblick über Internet-Technologien Server-Technologien Datenbankkopplung Servlets JSP PHP CGI XML+XSL Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver HTML+Javascript HTML+Applets

Mehr

COPPER Best Practices

COPPER Best Practices COPPER Best Practices Version 1.0.1 Wann sollte man überhaupt COPPER verwenden? Allgemein genau dann, wenn man von der COPPER Notation oder den COPPER-Features profitieren kann. Ein wesentliches Feature

Mehr

Ein einfacher Server. .NET Remoting. Klassentypen

Ein einfacher Server. .NET Remoting. Klassentypen Einführung - eine Klienten-Applikation kann mit einer Komponente interagieren die hinter einer Grenze liegt - Remoting ermöglicht eine Kommunikation von Komponenten Kontext-, Applikationsdomänen- (leichtgewichtiger

Mehr

Java Beans (22.02.2001)

Java Beans (22.02.2001) Component Based Software Development Java Beans (22.02.2001) Stefan Jäger Robert Kalcklösch Veranstalter: M. Bittner W. Koch Inhalt Einführung in Java Die Java Beans Einsatz und Entwicklung von Beans Enterprise

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS Aktuelle Technologien zur Entwicklung verteilter Anwendungen Überblick, Grundlagen und Entwicklung mit Java Gliederung A. I. Web Services II. RESTful Web Services III. Java API for RESTful Web Services

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Webprogrammierung Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 22 Inhalt Vorlesungsüberblick

Mehr

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java

Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java Auslieferungsmethoden im Performancevergleich Zieleinlauf mit Java Dominik Gruntz & Hans-Peter Oser Fachhochschule Aargau/Nordwestschweiz d.gruntz@fh-aargau.ch & h.oser@fh-aargau.ch Im ix 3/2005 wurde

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Software-Architektur Design Patterns

Software-Architektur Design Patterns Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:

Mehr

Clustering von Application Servern am Beispiel von JBoss 3.2

Clustering von Application Servern am Beispiel von JBoss 3.2 Clustering von Application Servern am Beispiel von JBoss 3.2 Cluster Workshop iternum GmbH Alexanderstraße 7 60489 Frankfurt/Main www.iternum.com Agenda Clustertechnik allgemein Was ist Clustering? Gründe

Mehr

EJB3 Zugriff auf DB2. Teil 2. Entwicklung einer EJB3 Anwendung für WebSphere 6.1 mit RAD 7.5. Einführung

EJB3 Zugriff auf DB2. Teil 2. Entwicklung einer EJB3 Anwendung für WebSphere 6.1 mit RAD 7.5. Einführung EJB3 Zugriff auf DB2 Teil 2 Entwicklung einer EJB3 Anwendung für WebSphere 6.1 mit RAD 7.5 Einführung Dieses Tutorial zeigt, wie eine einfache EJB 3 Anwendung mit Rational Application Developver 7.5 (kurz

Mehr

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Benutzerauthentifizierung und Zugriffsschutz mit JAAS Benutzerauthentifizierung und Zugriffsschutz mit JAAS Werner Eberling werner.eberling@mathema.de www.mathema.de Übersicht Altbekanntes kurz erwähnt Java Security Des Kaisers neue Kleider JAAS Zu Ihren

Mehr

Java EE 6 Ein Überblick

Java EE 6 Ein Überblick Java EE 6 Ein Überblick Bernd Müller Fakultät Informatik Ostfalia Hochschule Braunschweig/Wolfenbüttel GI-Regionalgruppe Braunschweig, 16.2.2012 Bernd Müller, Fakultät Informatik, Ostfalia, 16.2.2012 1/31

Mehr

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 23 2 / 23 Wie kommen Daten von einem Webserver? In der Praxis existieren verschiedene Wege, wie ein Server einem Client zu

Mehr

LeJOS: Mindstorms in Java programmieren

LeJOS: Mindstorms in Java programmieren LeJOS: Mindstorms in Java programmieren Alexander Koller Softwareprojekt "Sprechende Roboter" 30. April 2004 Überblick Warum Java? Was ist LeJOS? Motoren steuern Auf Sensoreingaben reagieren Wie geht's

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann Sitzungszustand Gruppierung von Anfragen zu Sitzungen (Sessions) Klasse HttpServletRequest Methode HttpSession getsession (bool create) liefert aktuelle Sitzungsobjekt Zustand lokal zur Anwendung (ServletContext)

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Die hohe Kunst der aromatischen Bohnenmischung oder Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß Motivation Bean = Komponente Datenbank Zielgruppe Kommerzielle Anwendungen

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP

5. Web-Services. Kommunikation zwischen Client und Server über XML-Format SOAP 1 5. Web-Services Kommunikation zwischen Client und Server über XML-Format SOAP Client SOAP Server Beschreibung von Webservices in WSDL (Web Services Description Language) Web Service Protokollstapel Suche

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

WebService in Java SE und EE

WebService in Java SE und EE Schlüsselworte Java, JAX-WS, JAX-RS, JAXB, XML. Einleitung WebService in Java SE und EE Wolfgang Nast MT AG Ratingen Es werden die Mölichkeiten von WebServices in Java SE und EE, mit SOAP und REST gezeigt.

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr