Verwendung der Gruppenkommunikation JGroups

Größe: px
Ab Seite anzeigen:

Download "Verwendung der Gruppenkommunikation JGroups"

Transkript

1 Entwickelt von Bela Ban als flexibel konfigurierbare Gruppenkommunikation in Java Information und Sourcen Webseite: Manual und Tutorial CIP: /local/jgroups/ Verwendung jgroups-all.jar die eigentliche Bibliothek commons-logging.jar Unterstützung für Logging

2 JChannel Verbindung zur Gruppe Verschiedene Konstruktoren: JChannel() es wird die Standardkonfiguration verwendet JChannel(org.w3c.dom.Element properties) Konfiguration als XML Element JChannel(java.io.File properties) XML-Datei JChannel(java.lang.String properties) Verschiedene Quellen oder direkt als Zeichenkette im alten Format Verbinden des Channel: public void connect(string clustername) throws ChannelClosed; public void connect(string cluster name, address target, string state id, long timeout) throws channelexception;

3 JChannel Informationen public Address getlocaladdress(); public String getclustername(); public View getview(); Versenden von Nachrichten: public void send(message msg) throws ChannelNotConnected, ChannelClosed; Beispiel: Address r e c e i v e r ; Message msg ; H a s h t a b l e data ; t r y { r e c e i v e r=c h a n n e l. getview ( ). getmembers ( ). f i r s t ( ) ; c h a n n e l. send ( r e c e i v e r, n u l l, data ) ; } catch ( E x c e p t i o n ex ) { // h a n d l e e r r o r s }

4 JChannel Empfangen von Nachrichten public Object receive(long timeout) throws ChannelNotConnected, ChannelClosed, Timeout; Beispiel: Object o b j ; Message msg ; View v ; o b j=c h a n n e l. r e c e i v e ( 0 ) ; // w a i t f o r e v e r i f ( o b j instanceof Message ) msg=(message ) o b j ; s=( S t r i n g ) msg. g e t O b j e c t ( ) ; e l s e i f ( o b j instanceof View ) v=(view ) o b j ; e l s e ; // don t h a n d l e s u s p i c i o n s or b l o c k s

5 MessageListener Empfang von Nachrichten und dem Zustand p u b l i c i n t e r f a c e M e s s a g e L i s t e n e r { p u b l i c void r e c e i v e ( Message msg ) ; byte [ ] g e t S t a t e ( ) ; void s e t S t a t e ( byte [ ] s t a t e ) ; } MembershipListener Benachrichtigung über Änderung der Gruppe p u b l i c i n t e r f a c e M e m b e r s h i p L i s t e n e r { p u b l i c void viewaccepted ( View new view ) ; p u b l i c void s u s p e c t ( Object s u s p e c t e d m b r ) ; p u b l i c void b l o c k ( ) ; }

6 Receiver Alles was man braucht: p u b l i c i n t e r f a c e R e c e i v e r extends M e s s a g e L i s t e n e r, M e m b e r s h i p L i s t e n e r {} Verwendung der Receiver Schnittstelle: JChannel ch = new JChannel ( ) ; ch. s e t R e c e i v e r (new E x t e n d e d R e c e i v e r A d a p t e r ( ) { p u b l i c void r e c e i v e ( Message msg ) { System. out. p r i n t l n ( r e c e i v e d message + msg ) ; } p u b l i c void viewaccepted ( View new view ) { System. out. p r i n t l n ( r e c e i v e d view + new view ) ; }... } ) ; ch. connect ( b l a ) ;

7 c crüdiger h a n nkapitza e l=new JChannel (.. WS. ) 07/08 ; MW Receiver: Anforderung von Zustand c l a s s MyReceiver extends R e c e i v e r A d a p t e r { f i n a l Map m=new HashMap ( ) ; byte [ ] g e t S t a t e ( ) { synchronized (m) { byte [ ] s t a t e=u t i l. o b j e c t T o B y t e B u f f e r (m) ; return s t a t e ; } } p u b l i c void s e t S t a t e ( byte [ ] s t a t e ) { synchronized (m) { Map new m=(map) U t i l. o b j e c t F r o m B y t e B u f f e r ( s t a t e ) ; m. c l e a r ( ) ; m. a d d A l l ( new m ) ; }}}

8 View Enthält alle aktiven Mitglieder der Gruppe Wichtige Methode: java.util.vector<address> getmembers() Beispiel: Nachricht an das erste Mitglied View myview = c h a n n e l. getview ( ) ; Address f i r s t = myview. getmembers ( ). f i r s t ( ) ; Message msg = new Message ( f i r s t, n u l l, H e l l o world ) ; c h a n n e l. send ( msg ) ;

9 Message Zieladresse - wenn null dann an alle Urspungsadresse - null wird durch die Gruppenkommunikation ausgefüllt Flags werden nicht verwendet Payload die eigentlichen Nutzdaten Headers normalerweise für Protokollinformationen verwendet Beispiel: Nachricht an alle Message msg = new Message ( n u l l, n u l l, H e l l o. g e t B y t e s ( ) ) ; c h a n n e l. send ( msg ) ;

10 org.jgroups.util.util Serialisierung eines Objektes mit objecttobytebuffer() Deserialisierung eines Objektes mit objectfrombytebuffer() Ausgabe der aktuell aktiven Mitglieder printmembers()

11 Konfiguration der Gruppenkommunikation Beispielkonfiguration als XML-Datei oder Zeichenkette <c o n f i g> <TCP s t a r t p o r t= 7800 l o o p b a c k= t r u e s e n d b u f s i z e= r e c v b u f s i z e= down thread= f a l s e u p t h r e a d= f a l s e /> <TCPPING t i m e o u t= 3000 i n i t i a l h o s t s = XXXX[ ] p o r t r a n g e= 1 n u m i n i t i a l m e m b e r s= 1 down thread= f a l s e u p t h r e a d= f a l s e />... <pbcast.nakack max xmit size= 8192 use mcast xmit= true retransmit timeout= 200,400,800 down thread= f a l s e up thread= f a l s e />... <TOTAL down thread= f a l s e u p t h r e a d= f a l s e /> <QUEUE down thread= f a l s e u p t h r e a d= f a l s e /> <STATE TRANSFER down thread= f a l s e u p t h r e a d= f a l s e /> </ c o n f i g> o d e r TCP( s t a r t p o r t =8015) : TCPPING( i n i t i a l h o s t s = [ ] ; p o r t r a n g e =2; n u m i n i t i a l m e m b e r s =1) : FD( timeout =10000; max tries =2; shun=true ) :FD SOCK:VERIFY SUSPECT ( timeout =1500) : pbcast.nakack( gc lag =100; retransmit timeout =3000) : p b c a s t.gms( j o i n t i m e o u t =5000; shun=t r u e ; p r i n t l o c a l a d d r=t r u e ) : pbcast. STATE TRANSFER Achtung: Im Rahmen der Aufgabe muss initial hosts angepasst werden durch die aktiven Mitglieder der Gruppe

12 Ergänzungen zu FORMI Information und Sourcen /local/formi Verwendung Bei der Verwendung am eignen Rechner: ant.properties anpassen java tools = /local/java-1.5/lib/tools.jar Es gibt einen eigenen RMI-Compiler: java -jar /local/formi/lib/compiler.jar -classpath../classes/ -keep example.audiosample.radio Zur einfachen Verwaltung von mehreren Shells hilft screen

13 Ergänzungen zu FORMI Erzeugen einer remote Reference bzw. eines initial Fragments FragImpl Fragmentimplementierung Factory zum erzeugen eines neuen Fragments comm par Kommunikationsparater addfactoryargs optionale Parameter für die Factory addfragargs optionale Parameter für die Fragmentimplementierung Beispiel: Fragment frag = ( Fragment ) FragmentedObjectFactory. c r e a t e O b j e c t (<FragImpl >. class, DefaultFragImplFactory. class, comm par, addfactoryargs, addfragargs ) ; bzw. Fragment frag = ( Fragment ) FragmentedObjectFactory. c r e a t e O b j e c t ( Messenger. class, D e f a u l t F r a g I m p l F a c t o r y. class, ( Object [ ] ) new SIpAddress [ ] {new SIpAddress ( InetAddress. getlocalhost ( ). g e t H o s t A d d r e s s ( ), ) }, n u l l, n u l l ) ;

Replikation. Überblick. Referenzierung von Diensten. Aktive Replikation von Diensten. Varianten Aktive Replikation ( Replikation

Replikation. Überblick. Referenzierung von Diensten. Aktive Replikation von Diensten. Varianten Aktive Replikation ( Replikation Überblick Grundlagen der JGroups Varianten Aktive ( Hot Standby ) Alle Replikate bearbeiten alle Anfragen Vorteil: Schnelles Tolerieren von Ausfällen möglich Nachteil: Vergleichsweise hoher Ressourcenverbrauch

Mehr

Replikation. Überblick. Referenzierung von Diensten. Aktive Replikation von Diensten. Varianten Aktive Replikation (

Replikation. Überblick. Referenzierung von Diensten. Aktive Replikation von Diensten. Varianten Aktive Replikation ( Überblick Grundlagen der JGroups Varianten Aktive ( Hot Standby ) Alle Replikate bearbeiten alle Anfragen Vorteil: Schnelles Tolerieren von Ausfällen möglich Nachteil: Vergleichsweise hoher Ressourcenverbrauch

Mehr

Überblick. Replikation Grundlagen der Replikation JGroups Übungsaufgabe 5. VS-Übung (SS17) Replikation 6 1

Überblick. Replikation Grundlagen der Replikation JGroups Übungsaufgabe 5. VS-Übung (SS17) Replikation 6 1 Überblick Replikation Grundlagen der Replikation JGroups Übungsaufgabe 5 VS-Übung (SS17) Replikation 6 1 Replikation Varianten Aktive Replikation Alle Replikate bearbeiten alle Anfragen Vorteil: Schnelles

Mehr

AVO Übung 4. AspectIX. 18. Januar 2005 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik

AVO Übung 4. AspectIX. 18. Januar 2005 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik Universität Ulm Fakultät für Informatik Abteilung Verteilte Systeme Projektgruppe AspectIX AVO Übung 4 AspectIX 18. Januar 2005 (WS 2004) Andreas I. Schmied (schmied@inf...) Quellcodes zur Übersichtlichkeit

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc. 7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung

Mehr

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI 1 Motivation Motivation ierte Objektmodel Standard Middleware für objektorientierte Anwendungen CORBA,.NET-Remoting Java Remote Method Invocation (RMI) Java RMI ierte Objekte undjava RMI Zusammenfassung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

TCP und UDP Sockets in Java

TCP und UDP Sockets in Java TCP und UDP Sockets in Java Grundlegende Mechanismen Server reserviert Port: Klient: - Server: bind Server nimmt Verbindungswünsche an Klient: - Server: listen Klient möchte sich verbinden Klient: connect;

Mehr

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2 Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten

Mehr

Java und Netzwerkkommunikation

Java und Netzwerkkommunikation Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender

Mehr

Inhalt. Bukkit/Spigot & Bungee Plugin Channel

Inhalt. Bukkit/Spigot & Bungee Plugin Channel Bukkit/Spigot & Bungee Plugin Channel Bitte beachte, dass dieser Thread nur für die Kommunikation zwischen Bukkit/SpigotBungee ist (bzw. Bukkit/SpigotBukkit/Spigot). Inhalt Was ist eine Plugin Message?

Mehr

Zusammenschlüsse in verteilten Systemen. Überblick. Virtual Synchrony. Gruppenkommunikation

Zusammenschlüsse in verteilten Systemen. Überblick. Virtual Synchrony. Gruppenkommunikation Überblick Zusammenschlüsse in verteilten Systemen Gruppe Zusammenschluss von Knoten in einem verteilten System, die in der Anzahl begrenzt sind, zumeist miteinander gleichberechtigt kommunizieren und gemeinsamen

Mehr

Javaforum Stuttgart Dr. Ralph Guderlei exxcellent Solutions GmbH

Javaforum Stuttgart Dr. Ralph Guderlei exxcellent Solutions GmbH A P A C H E K A F K A A L S I O T - D A T E N - P L A T T F O R M Javaforum Stuttgart 05.07.2018 Dr. Ralph Guderlei exxcellent Solutions GmbH Agenda Wie alles begann Grundlagen Apache Kafka Kafka Connect

Mehr

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Überblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen

Überblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://download.oracle.com/javase/tutorial/reflect/index.html

Mehr

Überblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method

Überblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html

Mehr

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1 Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7 Inhaltsverzeichnis RMI Projekt gettime 1 Schritt 1: Interface Klasse definieren 1 Schritt 2: Implementation Class definieren 2 Schritt 3: RMI Compiler erstellen

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

AvO-Übung 2 Remote Method Invocation

AvO-Übung 2 Remote Method Invocation AvO-Übung 2 Remote Method Invocation Jörg Domaschka und Andreas I. Schmied Institut für Verteilte Systeme 30. Oktober 2007 Übersicht 1 Besprechung der letzten Aufgaben 2 Aufruf-Semantiken 3 Netzwerkkommunikation

Mehr

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub 39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object

Mehr

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl.

Vorbereitungen Download. AVO-Übung 6. Beispiel. Slice. Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation ICE-Binaries (inkl. Vorbereitungen Download AVO-Übung ICE Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS005 Varianten u.a. für Linux, Windows, OS X ICE-Dokumentation

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Klausur: Java (Liste P)

Klausur: Java (Liste P) Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.

Mehr

Überblick. Zuverlässige Gruppenkommunikation Grundlagen Zustellungsgarantien bei Multicast JGroups Übungsaufgabe 5

Überblick. Zuverlässige Gruppenkommunikation Grundlagen Zustellungsgarantien bei Multicast JGroups Übungsaufgabe 5 Überblick Zuverlässige Gruppenkommunikation Grundlagen Zustellungsgarantien bei Multicast JGroups Übungsaufgabe 5 VS-Übung (SS15) Zuverlässige Gruppenkommunikation 8 1 Motivation,,Das Ganze ist mehr als

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Verteilte Systeme Übung

Verteilte Systeme Übung Verteilte Systeme Übung Tobias Distler, Klaus Stengel, Timo Hönig, Christopher Eibel, Tobias Klaus Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Meta Programming and Reflection in Java

Meta Programming and Reflection in Java Meta Programming and Reflection in Java Overview instanceof operator Java Annotations Java Reflection instanceof operator vergleicht ein Objekt mit einem bestimmten Typ testet ob ein Objekt ist eine Instanz

Mehr

JMS Java Message Service

JMS Java Message Service JMS Java Message Service TK3 WS02/03 Dipl.-Ing. Erwin Aitenbichler Abt. Telekooperation TU Darmstadt 1 JMS: Java Message Service Messaging Lose gekoppelte verteilte Kommunikation RMI: Eng gekoppelt Sender

Mehr

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen

Mehr

Netty Tutorial #3. Netty Tutorial #3 - Fehlerbehandlung

Netty Tutorial #3. Netty Tutorial #3 - Fehlerbehandlung Netty Tutorial #3 - Fehlerbehandlung Netty Tutorial #3 Einleitung Wann treten Fehler auf? Netty-Pipeline und Exceptions Verbindungen (sauber) schließen Schlusswort 1 Einleitung Dieses Tutorial ist weniger

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

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

39 Object Request Brokers

39 Object Request Brokers 39 Object Request Brokers invoke methods at remote objects (objects that run in another JVM) example ORBs: RMI, JavaIDL OODS 1997-2000 Michael Golm Object Request Brokers 39.312 40 Components of an ORB

Mehr

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2.

Hochschule Bonn-Rhein-Sieg. Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Modul 5: IPv6. Netze, BCS, 2. Modul 5: IPv6 Folie 1 IPv6 Motivation: Adressknappheit durch starkes Abwachsen des Internet (abgemildert durch verschiedene kurzfristige Lösungsansätze) in wesentlichen Teilen seit 1998 standardisiert

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

39 Object Request Brokers

39 Object Request Brokers 39 Object Request Brokers invoke methods at remote objects (objects that run in another JVM) example ORBs: RMI, JavaIDL OODS 1997-2000 Michael Golm Object Request Brokers 39.312 40 Components of an ORB

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

Objektserialisierung

Objektserialisierung Objektserialisierung SEP 170 Serialisierung von Objekten Umwandlung des Objektzustandes in einen Strom von Bytes, aus dem eine Kopie des Objekts zurückgelesen werden kann. Serialisierung in Java einfacher

Mehr

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

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

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

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

Plugins mit ADITO AID 004 DE

Plugins mit ADITO AID 004 DE Plugins mit ADITO AID 004 DE 2016 ADITO Software GmbH Diese Unterlagen wurden mit größtmöglicher Sorgfalt hergestellt. Dennoch kann für Fehler in den Beschreibungen und Erklärungen keine Haftung übernommen

Mehr

PLC-5- und SLC-Prozessoren im DH+ Verbund (SLC 5/04 -Prozessoren)

PLC-5- und SLC-Prozessoren im DH+ Verbund (SLC 5/04 -Prozessoren) Schnellinformation PLC-5- und SLC-Prozessoren im DH+ Verbund (SLC 5/04 -Prozessoren) In dieser Publikation sind Informationen aus verfügbaren PLC - und SLC -Dokumentationen zusammengestellt, um die Kommunikation

Mehr

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr 3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 13 14.06.2017 Heute: Anonyme Objekte Lokale Klassen Anonyme Klassen Anonyme Funktionen "Anonym"

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 11 F. Forster,

Mehr

Lösungen der Testfragen

Lösungen der Testfragen Lösungen der Testfragen Die Fragen lassen sich grob in zwei Kategorien einteilen, Wissensfragen und Fragen zu kleinen Code-Fragmenten. Wissensfragen sollten mit Hilfe der Regeln und Erklärungen im Kapitel

Mehr

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung

Mehr

Übungsblatt 2: Kommunikation und XSS

Übungsblatt 2: Kommunikation und XSS Wintersemester 2016/2017 Verteilte Systeme Universität Paderborn Fachgebiet Rechnernetze Übungsblatt 2: Kommunikation und XSS 13.01.2017 1 Synchron vs. Asynchron Ausgehend vom Zeitpunkt 0 rechne ein Client

Mehr

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler

Mehr

Höhere Programmierkonzepte Praktikum V Verteilte Programmierung

Höhere Programmierkonzepte Praktikum V Verteilte Programmierung Höhere Programmierkonzepte Praktikum V Verteilte Programmierung Prof. Dr. Nikolaus Wulff 08. 17. Jan 2019 Abbildung 1: Test des REST Integration Service per HTML Browser. 1 1 REST Service mit HTTP Web

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

Architekturen für verteilte Objekte

Architekturen für verteilte Objekte 1 Wiederholung Architekturen für verteilte Objekte Wintersemester 2006/2007 Übung 5: Aspectix & Co. Aspectix ist CORBA-Compliant Aspectix-IORs in reinem CORBA-ORB nutzbar ORB-Klasse durch eigene ersetzt

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

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications Motivation The ed-object Approach Java RMI ed Objects in Java RMI Conclusions Universität Erlangen-Nürnberg Informatik 4, 2007 H-Formi-.fm 2007-12-14 13.11 H.1 1 Motivation Distributed object-oriented

Mehr

Inhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator

Inhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator Inhalt Gute OOP-Programmierung ist schwer Objekte Objekte, wird aber so vermittelt (siehe jede Einführung in OOP) Ansprüche an gutes Design diametral welche Ansprüche haben wir überhaupt? Fehler im Design

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

Mehr

Beispiel E-Mail senden

Beispiel E-Mail senden Beispiel E-Mail senden E-Mail senden erfolgt nach dem SMTP-Protokoll auf Port 25 Das SMTP-Protokoll hat folgendes Format (RFC 821, RFC 2821) HELO Sendender Host MAIL FROM:

Mehr

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

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

Interface. So werden Interfaces gemacht

Interface. So werden Interfaces gemacht Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.

Mehr

Network Communication. Dr. Jürgen Eckerle WS 06/07

Network Communication. Dr. Jürgen Eckerle WS 06/07 Network Communication Dr. Jürgen Eckerle WS 06/07 1 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der

Mehr

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006 Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren

Mehr

Programmiermethodik. Übung 10

Programmiermethodik. Übung 10 Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering andreas.koch@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II Bioinformatics Resource Facility Center for Biotechnology Vorlesung Sommer 2011 Was heißt generic? In Java: Abstraktion über Typen Pons Wörterbuch - www.pons.de Einsatz

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2014/15 Aufgabenblatt 11 19.01.2015

Mehr

Mails in Python senden

Mails in Python senden Mails in Python senden Felix Döring, Felix Wittwer 14. November 2016 Python-Kurs Gliederung 1. Grundlagen: Mails senden Das Modul smtplib 2. Komplexere Mails senden Das Modul email 1 Die folgenden Folien

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

ALP II Dynamische Datenmengen Datenabstraktion ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Selbststudium Programmieren & Algorithmen OOP1 FS13 Hochschule Luzern Technik & Architektur

Selbststudium Programmieren & Algorithmen OOP1 FS13 Hochschule Luzern Technik & Architektur Selbststudium OOP1 Kapitel 1.2 Creating Objects 1. zu bearbeitende Aufgabe: 1.1 2. Wie kann dem Objekt ein eigener Name gegeben werden? Beim Erstellen (Instanz) von einem Objekt kann resp. muss der Name

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.

Mehr

2 Verbindungslose Kommunikation mit UDP

2 Verbindungslose Kommunikation mit UDP 2 Verbindungslose Kommunikation mit UDP Das User Datagram Protocol (UDP) stellt grundlegende Funktionen zur Verfügung, um mit geringem Aufwand Daten zwischen kommunizierenden Prozessen austauschen zu können.

Mehr