Verteilte Systeme Sommer Vorteile Entwicklungs- und Testmethoden für Anwendungen auf Server übertragbar Erweiterbarkeit, Austauschbarkeit

Größe: px
Ab Seite anzeigen:

Download "Verteilte Systeme Sommer Vorteile Entwicklungs- und Testmethoden für Anwendungen auf Server übertragbar Erweiterbarkeit, Austauschbarkeit"

Transkript

1 Verteilte Systeme 3. RPC und / / auf einem Rechner Verbreitete Systemarchitektur Verlagerung von Kernfunktionen in - Prozesse Mikrokern im User- Modus Vorteile Entwicklungs- und Testmethoden für Anwendungen auf übertragbar Erweiterbarkeit, Austauschbarkeit Nachteile Zusätzliche Kontextwechsel Weitergabe von Hardware- Ereignissen (Interrupts) Zugriff auf Geräteregister Hardware (c) 2013, Peter Sturm, Universität Trier 1

2 /- Architektur Betriebssystem Betriebssystem Rechner 1 Rechner 2 Lokale Dateisystem Ein- und Ausgabedienste (Graphik, Kommunikation,...) Prozeßverwaltung, Paging,... Entfernte Netzwerkdateisystem, z.b. NFS Verteiltes Dateisystem Rlogin, Telnet,... WWW- (httpd) Uhrensynchronisation (ntp) Realisierungsvarianten C S C S KS KS Kommunikationsserver Vorteile Erweiterbarkeit Einfacher Kern Nachteile Zusätzliche Kontextwechsel Höhere Nachrichtenlaufzeit Kernkommunikation Vorteile Minimale Verzögerungen Schnelle Übertragung Nachteile Kernänderung bei Erweiterungen Komplexer Kern Routing,... (c) 2013, Peter Sturm, Universität Trier 2

3 /- Architekturen SRSI sehr schöne Abstraktion send und receive nicht explizit sichtbar Kapselung der Dienste in eine Art Prozeduraufruf Remote Procedure Call (RPC) Der SRSI- Vertreter Idee: RPC = Lokaler Prozeduraufruf Birrell und Nelson, 1984 Grundlage für /- Systeme : Passiv, bietet Dienste an : Aktiv, ruft Dienste auf send() receive() Sender Alternative: Asynchroner entfernter Dienstaufruf Empfänger receive() reply() RPC- Architektur Lokaler Prozeduraufruf: Anwendung r := f(p); f r := rp(p); 1 3 rp 6 - Stub rp - Stub rp 4 Betriebssystem send/receive Betriebssystem Rechner 2 Rechner 5 Netzwerk (c) 2013, Peter Sturm, Universität Trier 3

4 Marshalling Encoding of basic data types may differ Little endian vs. big endian Define a generic network standard Sender converts data from local representation to network standard Receiver converts data from network standard to local representation Examples External data representation (xdr) ASN.1 XML (SOAP) JSON Defines a set of remote procedures Service or interface description Define signature for each method Type and sequence of arguments Name of procedure Return type Interface definition language (IDL) IDL compiler automates most functionality to call a remote procedure stubs stubs Additional server functionality RPC Compiler.c Stub Interface Description.c.c Compiler (e.g. C++) IDL Compiler Stub.c (c) 2013, Peter Sturm, Universität Trier 4

5 ONCRPC (SUN MICROSYSTEMS) Beispiel: ONCRPC RPC- Compiler (rpcgen) erzeugt Datenkonvertierungsroutinen (xdr) - Stub - Stub schleife optional Skelette für und Unterstützt UDP- und TCP- Kommunikation Rollenwechsel umständlich aber möglich Schutz realisierbar (c) 2013, Peter Sturm, Universität Trier 5

6 Entfernte Addition RPC- Schnittstellenbeschreibung: struct i_result { int x; ; struct i_param { int a1; int a2; ; program MY_RPC_SERVER { version MY_VERSION_1 { i_result ADD ( i_param ) = 1; = 1; = ; #include <rpc/rpc.h> Generierter Header struct i_result { int x; ; extern "C" bool_t xdr_i_result(xdr *, i_result*); struct i_param { int a1; int a2; ; extern "C" bool_t xdr_i_param(xdr *, i_param*); #define MY_RPC_SERVER ((u_long) ) #define MY_VERSION_1 ((u_long)1) #define ADD ((u_long)1) extern "C" i_result * add_1(i_param *, CLIENT *); extern "C" i_result * add_1_svc(i_param *, struct svc_req *); Leicht gekürzt (c) 2013, Peter Sturm, Universität Trier 6

7 - Stub #include <memory.h> /* for memset */ #include "remote_add.h" /* Default timeout can be changed using clnt_control() */ static struct timeval TIMEOUT = { 25, 0 ; i_result * add_1(i_param *argp, CLIENT *clnt) { static i_result clnt_res; memset((char *)&clnt_res, 0, sizeof(clnt_res)); if (clnt_call(clnt, ADD, (xdrproc_t) xdr_i_param, argp, (xdrproc_t) xdr_i_result, &clnt_res, TIMEOUT)!= RPC_SUCCESS) { return (NULL); return (&clnt_res); Die - Stub (Eine für alle) static void my_rpc_server_1(struct svc_req *rqstp, register SVCXPRT *transp) { union { i_param add_1_arg; argument; char *result; xdrproc_t xdr_argument, xdr_result; char *(*local)(char *, struct svc_req *); switch (rqstp- >rq_proc) {... case ADD: xdr_argument = (xdrproc_t) xdr_i_param; xdr_result = (xdrproc_t) xdr_i_result; local = (char *(*)(char *, struct svc_req *)) add_1_svc; break;... (void) memset((char *)&argument, 0, sizeof (argument)); svc_getargs(transp, xdr_argument, (caddr_t) &argument)); result = (*local)((char *)&argument, rqstp); svc_sendreply(transp, xdr_result, result)); svc_freeargs(transp, xdr_argument, (caddr_t) &argument)); Fehlerbehandlung entfernt (c) 2013, Peter Sturm, Universität Trier 7

8 int main(int argc, char **argv) { register SVCXPRT *transp; Die - Schleife (void) pmap_unset(my_rpc_server, MY_VERSION_1); transp = svcudp_create(rpc_anysock); svc_register(transp, MY_RPC_SERVER, MY_VERSION_1, my_rpc_server_1, IPPROTO_UDP)); transp = svctcp_create(rpc_anysock, 0, 0); svc_register(transp, MY_RPC_SERVER, MY_VERSION_1, my_rpc_server_1, IPPROTO_TCP)); svc_run(); Fehlerbehandlung entfernt Remote Procedure #include <rpc/rpc.h> #include header.h i_result *add_1_svc ( i_param *p, struct svc_req *sr ) { static i_result result; result.x = p- >a1 + p- >a2; return &result; (c) 2013, Peter Sturm, Universität Trier 8

9 #include header.h" Ein Beispiel- void my_rpc_server_1( char* host ) { CLIENT *clnt; i_result *result_1; i_param add_1_arg; clnt = clnt_create(host, MY_RPC_SERVER, MY_VERSION_1, "udp"); add_1_arg.a1 = 12; add_1_arg.a2 = 17; result_1 = add_1(&add_1_arg, clnt); printf( Die Summe ist %d\n,result_1- >x); clnt_destroy( clnt ); main( int argc, char* argv[] ) { char *host; if(argc < 2) { printf("usage: %s server_host\n", argv[0]); exit(1); host = argv[1]; my_rpc_server_1( host ); - Lokalisierung Angabe von IP- Adresse des - Hosts RPC- Service Version des RPC- Service Port 1 Portmapper liefert UDP- oder TCP- Port des gewünschten s 2 4 Port 111 Portmapper Port 3 Registrierte RPC- (c) 2013, Peter Sturm, Universität Trier 9

10 Interaktive Abfrage des Portmappers rpcinfo - p balvenie.uni- trier.de program vers proto port tcp 111 portmapper udp 111 portmapper udp 789 ypserv udp 789 ypserv tcp 792 ypserv udp 790 yppasswdd udp 792 ypbind tcp 794 ypbind udp 2049 nfs tcp 2049 nfs udp 829 mountd udp 829 mountd tcp 832 mountd tcp 832 mountd OO- RPC (c) 2013, Peter Sturm, Universität Trier 10

11 Hinzunahme eines Objektbezugs Feinere Granularität Integration in OO- Sprache Keine eigenständige IDL Interfacebeschreibung Attribute (z.b..net) Annotationen (z.b. Java) Stub- Generierung Reflektive Programmierung Objektorientierter RPC JAVA RMI (c) 2013, Peter Sturm, Universität Trier 11

12 Java RMI Remote Method Invocation Java- basierte OO- Variante eines RPC Objekte inkl. Code können ausgetauscht werden Vorteil einer homogenen Sprachumgebung Sicherheitsproblematik Function Shipping Direkte Unterstützung im JDK Aktuelle Version des JDK nutzt Reflection für die Generierung der Proxies Architektur RMI RMI RMI RMI rmiregistry RMI URL Protocol Web URL Protocol Web (c) 2013, Peter Sturm, Universität Trier 12

13 ... ein Interface Am Anfang war... package syssoft.rmi_example; import java.rmi.remote; import java.rmi.remoteexception; public interface Compute extends Remote { int Add ( int x, int y ) throws RemoteException; int Sub ( int x, int y ) throws RemoteException; Ableitung von Marker- Interface Remote (leer) Erkennen RMI- zugänglicher Interfaces über Reflection Remote- Methoden werfen RemoteException Zugeständnis an mögliche Fehlerfälle in verteilten Systemen package syssoft.rmi_example.server; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; import java.rmi.server.unicastremoteobject; import syssoft.rmi_example.*; public class implements Compute { public () { super(); public int Add ( int x, int y ) { return x+y; public static void main(string[] args) { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); try { String name = "SyssoftCompute"; Compute engine = new (); Compute stub = (Compute) UnicastRemoteObject.exportObject(engine,0); Registry registry = LocateRegistry.getRegistry(); registry.rebind(name, stub); System.out.println("ComputeEngine bound"); catch (Exception e) { System.err.println("ComputeEngine exception:"); e.printstacktrace(); (c) 2013, Peter Sturm, Universität Trier 13

14 package syssoft.rmi_example.client; import java.rmi.registry.locateregistry; import java.rmi.registry.registry; import syssoft.rmi_example.*; public class { public static void main(string[] args) { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); try { String name = "SyssoftCompute"; Registry registry = LocateRegistry.getRegistry(args[0]); Compute comp = (Compute) registry.lookup(name); int result = comp.add(21, 21); System.out.println(result); catch (Exception e) { System.err.println("SyssoftCompute exception:"); e.printstacktrace(); # Compiling, packaging, and distributing the interface javac syssoft/rmi_example/compute.java jar cvf run/compute.jar syssoft/rmi_example/compute.class cp run/compute.jar ~peter/sites 42 # Preparing the server javac - cp run/compute.jar syssoft/rmi_example/server/.java # Preparing the client javac - cp run/compute.jar syssoft/rmi_example/client/.java # Starting RMI registry # rmiregistry & # Running server java - cp.:run/compute.jar - Djava.rmi.server.codebase= Compute.jar - Djava.rmi.server.hostname=localhost - Djava.security.policy=run/server.policy syssoft.rmi_example.server. & sleep 10 # Running client java - cp.:run/compute.jar - Djava.rmi.server.codebase= - Djava.security.policy=run/client.policy syssoft.rmi_example.client. localhost (c) 2013, Peter Sturm, Universität Trier 14

15 .NET Remoting Interface (c) 2013, Peter Sturm, Universität Trier 15

16 Implementierung (c) 2013, Peter Sturm, Universität Trier 16

17 KRITIK RPC (c) 2013, Peter Sturm, Universität Trier 17

18 Eine Kritik A.S. Tanenbaum, R. van Renesse, A Critique of the Remote Procedure Call Paradigm, in: Research into Networks and Distributed Applications R. Speth (Hrsg.), Elsevier Science Publishers, pp , pdf A Critique of the Remote Procedure Call Paradigm Andrew S. Tanenbaum Robbert van Renesse Dept. of Mathematics and Computer Science Vrije Universiteit Postbus MC Amsterdam, The Netherlands The remote procedure call paradigm is widely used in distributed operating systems. It is conceptually simple to use and straightforward to implement. Nevertheless, experience has shown that it also has some subtle, but less pleasant aspects. In this paper we discuss problems with RPC in the areas of conceptual problems with the model itself, technical problems with implementing it, problems caused by client and server crashes, problems caused by heterogeneous systems, and performance problems. The paper concludes with a discussion and analysis of the problems and proposed solutions. Probleme Ideal: RPC = LPC LPC- Semantik wird nur unvollständig errreicht Konzeptionelle Probleme Verletzung der Transparenz Behandlung von Ausfällen Performance- Probleme (c) 2013, Peter Sturm, Universität Trier 18

19 RPC- Probleme (1) Fileserver Who is Who? sind passiv, s aktiv! Beispiel: Datei- : p1 < f1 p2 p3 > f2 Wechsel in der /- Rolle hat z.b. wichtige Information, aber erwartet keine Nachricht vom Anzahl und Typen der Parameter Nur bei typstrengen Sprachen problemlos Beispiel printf() Parameterübergabe Call- by- Value Call- by- Reference? Call- by- Copy/Restore p1 p2 p3 RPC- Probleme (2) Abstürze und Nachrichtenverluste gibt es bei LPC nicht Exceptionmechanismus (Transparenzverletzung) Aufrufsemantik (Exactly- Once ideal, geht aber nicht) Zustandsverluste bei / Waisenkinder (Orphans) Zustandsmüll abgestürzter s beim Einschränkungen in der Parallelität ASRI komplexer Kein Streaming möglich LPC ist Strukturierungsmittel Nicht jede lokale Prozedur würde man als Remote Procedure realisieren Conceptual Mismatch (c) 2013, Peter Sturm, Universität Trier 19

20 Semantiken Ideale Semantik: Exactly- Once- Semantik Entfernter Dienstaufruf findet genau einmal statt Realität: Fehlerfälle Verlust von Nachrichten - Abstürze Realisierbare Semantiken At- Least- Once- Semantik Dienstaufruf findet mindestens einmal statt Aufträge können mehrfach ausgeführt werden At- Most- Once- Semantik Dienstaufruf findet höchstens einmal statt Aufträge dürfen nicht wiederholt werden Umsetzung At- Least- Once Einfacher while (1) { receive(job) from client; // Auftrag ausführen send(reply) to client; Mehrfachausführung in vielen Fällen unkritisch Uhrzeit abfragen Datei lesen? At- Most- Once Komplexer while (1) { receive(job) from client; if (neuer Auftrag) { // Auftrag ausführen send(reply) to client; Wie erkennt man neuen Auftrag? Zustand Idempotenz wünschenswert (c) 2013, Peter Sturm, Universität Trier 20

21 Fehlerfälle im Detail Nachrichtenzuordnung erkennen sendet Auftrag k und erhält kein Reply Situation beim Timeout Auftragsnachricht ging verloren Reply- Nachricht ging verloren Reply unterwegs vor Auftragsbearbeitung abgestürzt während der Auftragsbearbeitung abgestürzt bearbeitet noch Auftrag... Nachrichtenwiederholung Auftrag ΔT - Abstürze Schnellstmöglicher Ersatz des ausgefallenen s Elektion unter den Ersatzservern Neustart eines Ersatzservers Zustandsverluste Partieller oder vollständiger Gedächtnisverlust Amnesia Failures At- Least- Once Unkritisch At- Most- Once Ersatzserver: Wurde der Auftrag schon ausgeführt? Unter Umständen aufwendiges Loggen (c) 2013, Peter Sturm, Universität Trier 21

22 Zustandsbehafteter Relevanter zustand Zustand für korrekte Diensterbringung notwendig Zustand der verbindung Information über kausal abhängige Auftragsfolgen Liste der ausgeführten Aufträge (At- Most- Once) Nicht gemeint sind lokale Variablen u.ä. Dateien eines Dateiservers Primär leistungssteigernde Maßnahme c State c Umgehen der Zustandsproblematik Zustandslose Verlagerung des relevanten Zustands in den speichert Zustandsinformation Notwendige Zustandsinformation ist Teil des Auftrags Reply aktualisiert auch client- seitigen Zustand Nachteile Größere Nachrichten State c State c State c (c) 2013, Peter Sturm, Universität Trier 22

23 Idempotente Aufträge Wiederholung desselben Auftrags liefert dasselbe Ergebnis Viele Aufträge inhärent idempotent Lösung bei nicht- idempotenten Aufträgen Aufträge enthalten alle notwendige Zustandsinformation Zustandsloser Rätselecke: Gibt es inhärent nicht- idempotente Aufträge? Wie werden diese trotzdem idempotent? Speicherung fertiggestellter Aufträge Bei Wiederholungsauftrag gespeichertes Reply erneut zurücksenden Wann kann man gespeicherte Replies löschen? Dilemma Zustandsbehafteter unumgänglich ΔT Lösung Auftrag Reply Reply speichern Auftrag wdh Reply (c) 2013, Peter Sturm, Universität Trier 23

24 Realisierungsaspekte - Realisierungen Iterativer Maximal ein Auftrag in Bearbeitung Vorteile Einfache Realisierung Nachteile Unter Umständen lange Antwortzeiten Reihenfolge der Bearbeitung liegt fest Konkurrenter Mehrere Aufträge gleichzeitig in Bearbeitung Vorteile Leistungssteigerung (Multiprozessor, Auftragsreihenfolge, Blockadezeiten) Nachteile Komplexere Realisierung Synchronisation (c) 2013, Peter Sturm, Universität Trier 24

25 Realisierungsvarianten Multiplex- unterteilt größere Aufträge selbst in kleinere Einheiten Explizite Verwaltung der Bearbeitungszustände Problematik: Blockierende Systemaufrufe Asynchrone Lösungen Multithreaded Leichtgewichtige Threads in einem Adreßraum Kommunikation über gemeinsamen Speicher Speicherbasierte Synchronisation Multi- Process Mehrere Prozesse Typische Organisationsform: Manager und Worker- Pool Kommunikation über Nachrichten Verteilte Synchronisationsverfahren Beispiel: Der Schlafserver Auswirkungen der varianten untersuchen Kommunikationskosten nicht meßrelevant Einfache TCP- Realisierung schläft für die angegebene Zeit Vergleichbar einer E/A- Blockade Block lesen und schreiben Netzkommunikation (Auftrag an weiteren ) Synchronisation Done Sleep 200 (c) 2013, Peter Sturm, Universität Trier 25

26 int main ( int ac, char ** av ) { TCP_Socket sock; _Address saddr; Der Schlafclient host = av[1]; port = av[2]; loops = av[3]; delay = av[4]; saddr = _Address(host,port); sock.connect(saddr); watch.start(); for (int i=0;i<loops;i++) { sprintf(buf, sleep %d,delay); sock.send(buf,strlen(buf)); sock.receive(buf,sizeof buf); assert(strcmp(buf, done ) == 0); watch.stop(); average_delay = watch.msecs() / loops; 1. Iterativer (Single- Haushalt) int main ( int ac, char **av ) { TCP_Socket asock; TCP_Socket *csock; asock.bind(); printf( Sleeping at port %d\n,asock.port()); while (1) { csock = asock.accept(); csock- >receive(buf,sizeof buf); sscanf(buf, sleep %d,&delay); if (delay>0) sleep(delay); sprintf(buf, done ); csock- >send(buf,strlen(buf)); delete csock; (c) 2013, Peter Sturm, Universität Trier 26

27 3. Multi- Process (Hotel) int main ( int ac, char **av ) { TCP_Socket asock; TCP_Socket *csock; asock.bind(); printf( Sleeping at port %d\n,asock.port()); while (1) { csock = asock.accept(); if (fork() == 0) { csock- >receive(buf,sizeof buf); sscanf(buf, sleep %d,&delay); if (delay>0) sleep(delay); sprintf(buf, done ); csock- >send(buf,strlen(buf)); exit(); delete csock; 2. Multithreaded (WG) (c) 2013, Peter Sturm, Universität Trier 27

28 Neuerzeugen oder Wiederverwenden Betrifft Worker in einem konkurrenten Neuerzeugung eines Workers Vorteile Gute Ressourcenbelegung Einfache Implementierung Nachteile Höhere Latenz Wiederverwendung der beendeten Worker- Hülsen Vorteile Geringere Latenz Nachteile Belegung von Systemressourcen Komplexe Implementierung (c) 2013, Peter Sturm, Universität Trier 28

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-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

5A Kooperation: Lösungen

5A Kooperation: Lösungen 5A Kooperation: Lösungen 5A.1 Wissens- und Verständnisfragen 1.a.) dass nicht auf jedem Computer alle Programme und Daten vorgehalten werden müssen / dass damit auch Geräte auf anderen Rechnerknoten angesprochen

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

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

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

7.4 Verteilungsabstraktion in heterogener Umgebung

7.4 Verteilungsabstraktion in heterogener Umgebung 7.4 Verteilungsabstraktion in heterogener Umgebung Szenario: reiner Maschinencode (native code) bei unterschiedlichen Rechnerarchitekturen, unterschiedlichen Betriebssystemen, unterschiedlichen Übersetzern,

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

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

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

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

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

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

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

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

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

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 Adressauflösung IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 IP Adresse Physikalische Adresse 128.96.34.15??? 128.96.34.16 85:48:A4:28:AA:18 128.96.34.15

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Angewandte IT-Sicherheit

Angewandte IT-Sicherheit Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:

Mehr

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

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

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

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

Ü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

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

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2)

Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Netzprogrammierung: Java RMI - Remote Method Invocation (Teil 2) Robert Tolksdorf und Peter Löhr Überblick 1. Auffinden von.class-dateien 2. Serializable Parameter 3. Sicherheit 4. Code laden übers Web

Mehr

Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme,

Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme, 9 Middleware vs9 1 Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme, bietet Standarddienste (Transaktionen, Sicherheit,...),

Mehr

RMI Server und Client

RMI Server und Client RMI Server und Client RMI Server Remote Objekt(e) bereitstellen Wurzel Objekt in Verzeichnisdienst anmelden RMI Client Wurzel Objekt in entfernter JVM mittels Verzeichnisdienst finden Methoden von Remote

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

8.1.5 Java RMI Remote Method Invocation

8.1.5 Java RMI Remote Method Invocation 8.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi ) (http://java.sun.com/j2se/1.5/docs/guide/rmi ) (http://java.sun.com/docs/books/tutorial/rmi ) (http://java.sun.com/developer/onlinetraining/rmi/rmi.html

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

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

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Hier soll ein Überblick 1 über die RMI-Technologie der Java 2 Plattform gegeben werden. Inhaltsverzeichnis 1.Überblick...3 2.RMI Architektur...6 2.1.Überblick...6 2.2.RMI

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

4. Informatiktag NRW 14.3.05. Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen

4. Informatiktag NRW 14.3.05. Projekt online Shop. Barbara Leipholz Schumacher Euregio Kolleg, Würselen 1/51 Projekt online Shop 4. Informatiktag NRW 14.3.05 Barbara Leipholz Schumacher Euregio Kolleg, Würselen 2/51 Die Firma Sprachen Lernen möchte ihr Angebot auf online Bestellungen ausweiten. Sprache Art

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

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

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

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

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

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

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

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

10.1 Remote Method Invocation (RMI)

10.1 Remote Method Invocation (RMI) 10.1 Remote Method Invocation (RMI) Verteilte Java Anwendungen Methodenaufrufe auf Fremdobjekten (remote objects) Object Serialization Typen bleiben erhalten Package java.rmi (und andere) Vorläufige Version

Mehr

RAP vs. GWT vs. GAE/J + jquery. Web Technologien im Verlgeich

RAP vs. GWT vs. GAE/J + jquery. Web Technologien im Verlgeich RAP vs. GWT vs. GAE/J + jquery Web Technologien im Verlgeich RAP vs GWT vs jquery Dominik Wißkirchen 30. Oktober 2010 Abkürzungen RAP AJAX RWT Rich AJAX Platform Asynchronous JavaScript and XML RAP Widget

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis Webservices Grundlagen, Beispiel, Tomcat, Apache Axis Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Was ist ein WebService Eine oder mehrere Methoden die über das Netzwerk aufgerufen werden

Mehr

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de XML-RPC, SOAP und Web Services Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Was ist RPC? Was hat XML mit RPC zu tun? Was sind XML-RPC und SOAP? Was sind Web Services? Wird das die Welt retten?

Mehr

Software Reuse Sommer 2004

Software Reuse Sommer 2004 8. Web Services Peter Sturm Universität Trier Ausgangspunkt Client/Server-Systeme Traditioneller RPC OO-Pendant RMI (CORBA) Probleme Installationbedarf auf Clientseite Aufwendige Installation auf Serverseite

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

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Block Verteilte Systeme und Middleware 1. Beschreiben Sie die Entwicklung verteilter Systeme von einer Zentralisierung bis zu Peer-to-Peer. Nicht

Mehr

H.2 Distributed Events

H.2 Distributed Events H Überblick über die 7. Übung H Überblick über die 7. Übung 1 RemoteEvent Remote Events ServiceEvents Basisklasse aller Jini Events package net.jini.core.event; import java.rmi.marshalledobject; Security-Policies

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

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

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

Beispiel Time Client/Server

Beispiel Time Client/Server Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle

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

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 16 RMI, DCOM, Webservices cs 1100 ww6 sch 05-97 Remote Method Invocation (RMI) JVM JVM Client Server Stub Java Remote Skeleton Method

Mehr

Übung zur Vorlesung Echtzeitsysteme

Übung zur Vorlesung Echtzeitsysteme Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik VI Übung zur Vorlesung Echtzeitsysteme Aufgabe 3 Nadine Keddis keddis@fortiss.org Stephan Sommer sommerst@in.tum.de

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

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

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

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel VS4 Slide 1 Verteilte Systeme Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part II) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

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

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

multimess Bedienungsanleitung Funktionserweiterung 4F144-1-LED-ESMSMT-... 4F144-2-LED-ESMSMT-... Dreiphasiges Netzmessinstrument

multimess Bedienungsanleitung Funktionserweiterung 4F144-1-LED-ESMSMT-... 4F144-2-LED-ESMSMT-... Dreiphasiges Netzmessinstrument Bedienungsanleitung Funktionserweiterung Dreiphasiges Netzmessinstrument multimess 4F144-1-LED-ESMSMT-... 4F144-2-LED-ESMSMT-... Ihr Partner in Sachen Netzanalyse Inhaltsverzeichnis 1 multimess 4F144-1-LED-ESMSMT-...

Mehr

Lösung Verteilte Systeme WS 2011/12 Teil 1

Lösung Verteilte Systeme WS 2011/12 Teil 1 Seite 1 von 5 Lösung Verteilte Systeme WS 2011/12 Teil 1 2.02.2012 1. Aufgabe (5) Sie fahren in Ihrem Privatfahrzeug auf einer Autobahn und hinter Ihnen fährt ein Polizeifahrzeug. 1.1 Nennen Sie ein Szenario,

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

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

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich? KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen

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

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfer: Prof. Dr. Haake Semester der Prüfung: WS 10/11 Datum der Prüfung: 02.05.2011 Dauer: ca. 25 min Note: 2.0 Hier

Mehr

H Mcast Future Internet made in Hamburg?

H Mcast Future Internet made in Hamburg? H Mcast Future Internet made in Hamburg? Thomas Schmidt (HAW Hamburg) schmidt@informatik.haw-hamburg.de Forschungsschwerpunkt: IMS Interagierende Multimediale Systeme 1 Prof. Dr. Thomas Schmidt http://www.haw-hamburg.de/inet

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

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