Übungsblatt 2: Kommunikation und XSS
|
|
- Richard Blau
- vor 5 Jahren
- Abrufe
Transkript
1 Wintersemester 2016/2017 Verteilte Systeme Universität Paderborn Fachgebiet Rechnernetze Übungsblatt 2: Kommunikation und XSS Synchron vs. Asynchron Ausgehend vom Zeitpunkt 0 rechne ein Client 100 ms bevor er die Daten für eine Server-Anfrage ermittelt hat. Es sei angenommen, dass der Server 500 ms an der Anfrage rechnet bevor er die Antwort zurück sendet. Die Übertragung vom Client zum Server bzw. vom Server zum Client dauere jeweils 50 ms. Nachdem der Prozess auf dem Client insgesamt 500 ms gerechnet hat, werden die vom Server erhaltenen Daten gebraucht. Die Verarbeitung der Daten dauere weitere 100 ms. Zu welchem Zeitpunkt ist der Client frühestens mit der vollständigen Abarbeitung der erhaltenen Serverdaten fertig, wenn die folgenden Anfragemodi vorausgesetzt sind. Skizzieren Sie die Abarbeitung auch in Form eines Zeitdiagramms. (a) Synchrone Anfrage. (b) Asynchrone Anfrage. (a) Synchron: msc Synchron Client Server 100ms 50ms 500ms 50ms 400ms 100ms Result: 1200ms Verteilte Systeme WS 2016/17 Übungsblatt 2 1
2 (b) Asychron: msc Asynchron Client Server 100ms 400ms 50ms 500ms 50ms 100ms Result: 800ms 2 Gruppenkommunikation In der Vorlesung wurden die folgenden Begriffe eingeführt: Reliable Multicast, FIFO Multicast, Causal Multicast, Atomic Multicast und Total Multicast. (a) Erklären Sie die Semantik dieser Begriffe. (b) Geben Sie zu den in Abb. 1 abgebildeten Beispielen jeweils die passende Multicast-Semantik an. (c) Geben Sie jeweils ein Beispiel an, wo ein Atomic Multicast bzw. ein Causal Multicast Sinn macht. A B C A B C A B C A B C Beispiel 1 Beispiel 2 Beispiel 3 Beispiel 4 Abbildung 1: Multicast Beispiele. Bestimmen Sie hierzu die passende Semantik. (a) Siehe Vorlesungsfolien Verteilte Systeme WS 2016/17 Übungsblatt 2 2
3 (b) Lösung FIFO atomic causal Beispiel 1 No No No reliable Beispiel 2 No Yes No atomic Beispiel 3 Yes No Yes causal Beispiel 4 Yes No No FIFO (c) Atomic Multicast: Bankkonto, Befehle add 100 und multiply 1.01 (Zinsen), dürfen nicht vertauscht werden. Causal Multicast: Forum, Antwort auf eine Frage sollte nicht vor der Frage sichtbar werden. 3 Socket Programmierung mit ZeroMQ ZeroMQ ist eine leichtgewichtige Bibliothek, welche verschiedenste Kommunikations-Funktionen anbietet und für eine Vielzahl von Programmiersprachen zur verfügung steht. Informationen zur Installation von ZeroMQ und die zugehörige API Dokumentation finden Sie auf: (a) Machen Sie sich mit den grundlegenden Konzepten von ZeroMQ vertraut. Welche Art von ZeroMQ- Sockets bietet sich für die Implementation eines Client-Server Systems an? REQ-REP (b) Implementieren Sie nun einen Server, welcher mittels eines ZeroMQ-Sockets auf den TCP-Port 5678 horcht und eine Nachricht mit dem Inhalt Ping! erwartet. Immer, wenn Ihr Server eine solche Nachricht empfängt, wird die Nachricht ausgegeben und als Antwort eine Nachricht mit dem Inhalt Pong! zurückgeschickt. Sie können für diese, wie auch die folgenden Teilaufgaben, eine Programmiersprache Ihrer Wahl nutzen. import zmq d ef main ( ) : # c r e a t e ZMQ c o n t e x t c t x = zmq. C o n t e x t ( ) # our s e r v e r w i l l use a REPLY s o c k e t s o c k e t = c t x. s o c k e t ( zmq. REP ) # l e t s o c k e t l i s t e n t o a l l i n t e r f a c e s on TCP 5678 s o c k e t. bind ( " t c p : / / :5678 " ) # some i n f o p r i n t " S t a r t i n g ZMQ s e r v e r. P r e s s CTRL C t o e x i t. " # i n f i n i t e loop t o s e r v e r r e q u e s t s while True : # w a i t f o r message t o be r e c e i v e d msg = s o c k e t. r e c v ( ) p r i n t " Received : %s " % s t r ( msg ) # check i f we ve r e c e i v e d a Ping! message i f s t r ( msg ) == " Ping! " : # send r e p l y Verteilte Systeme WS 2016/17 Übungsblatt 2 3
4 s o c k e t. send ( " Pong! " ) i f name == main : main ( ) (c) Implementieren Sie nun den passenden Client zu Ihrem Server. Der Client soll die vom Server erhaltene Antwort ebenfalls ausgeben. import zmq d ef main ( ) : # c r e a t e ZMQ c o n t e x t c t x = zmq. C o n t e x t ( ) # we w i l l use a REQUEST s o c k e t f o r our c l i e n t s o c k e t = c t x. s o c k e t ( zmq.req) # c o n n e c t t o t h e s e r v e r s o c k e t. c o n n e c t ( " t c p : / / : " ) # send a r e q u e s t r e q = " Ping! " p r i n t s o c k e t. send ( r e q ) # g e t t h e r e p l y. " Sending : %s " % r e q msg = s o c k e t. r e c v ( ) p r i n t " Received : %s " % msg i f name == main : main ( ) (d) Erweitern sie Ihren Client und Server nun dahingehend, dass der Client zwei ganzzahlige Kommandozeilenparameter entgegennimmt und diese, anstatt der Ping! Nachricht, an den Server sendet. Der Server soll die beiden empfangenen Zahlen addieren das Ergebnis an den Client zurückschicken. # S e r v e r import zmq import j s o n d ef main ( ) : # c r e a t e ZMQ c o n t e x t c t x = zmq. C o n t e x t ( ) # our s e r v e r w i l l use a REPLY s o c k e t s o c k e t = c t x. s o c k e t ( zmq. REP) # l e t s o c k e t l i s t e n t o a l l i n t e r f a c e s on TCP 5678 s o c k e t. bind ( " t c p : / / :5678 " ) # some i n f o p r i n t " S t a r t i n g ZMQ s e r v e r. P r e s s CTRL C t o e x i t. " # i n f i n i t e loop t o s e r v e r r e q u e s t s while True : # w a i t f o r message t o be r e c e i v e d msg = s o c k e t. r e c v ( ) Verteilte Systeme WS 2016/17 Übungsblatt 2 4
5 p r i n t " Received : %s " % msg # c o n v e r t from JSON t o Python l i s t t e r m s = j s o n. l o a d s ( msg ) # send sum r e s u l t s o c k e t. send ( s t r ( sum ( t e r m s ) ) ) i f name == main : main ( ) # C l i e n t import zmq import s y s import j s o n d ef main ( ) : # check and c o n v e r t i n p u t s t r y : t e r m s = [ i n t ( a ) f o r a in s y s. argv [ 1 : ] ] except : p r i n t " I n v a l i d i n p u t s. Stop. " e x i t ( 1 ) # c r e a t e ZMQ c o n t e x t c t x = zmq. C o n t e x t ( ) # we w i l l use a REQUEST s o c k e t f o r our c l i e n t s o c k e t = c t x. s o c k e t ( zmq.req) # c o n n e c t t o t h e s e r v e r s o c k e t. c o n n e c t ( " t c p : / / : " ) # send a r e q u e s t ( c o n v e r t Python l i s t t o JSON ( s e r i a l i z a t i o n ) ) p r i n t " Sending : %s " % s t r ( t e r m s ) s o c k e t. send ( j s o n. dumps ( t e r m s ) ) # g e t t h e r e p l y. msg = s o c k e t. r e c v ( ) p r i n t " Received : %s " % msg i f name == main : main ( ) (e) (Optional) Erweitern Sie die Lösung aus der vorhergingen Teilaufgabe dahingehend, dass eine beliebige Anzahl von ganzzahligen Parametern übergeben und addiert werden kann. 4 Java RMI Siehe Lösung der vorherigen Teilaufgabe (dort schon integriert). Betrachten Sie im Folgenden einen Server, welcher eine Funktion zur Addition zweier Zahlen bereitstellt. Ein Client rufe die Server-Funktion durch Übergabe zweier Parameter auf und erhalte nach erfolgreicher Berechnung das Ergebnis zurück. (a) Implementieren Sie Client und Server mithilfe des Java RMI-Konzepts. (b) Skizzieren Sie den Ablauf ihres RMI-Programms. Berücksichtigen Sie hierbei auch die Erstellung von Stubs und die versteckte Kommunikation zwischen Client und Server. Verteilte Systeme WS 2016/17 Übungsblatt 2 5
6 (a) SimpleRemoteMessage: p u b l i c i n t e r f a c e SimpleRemoteMessage extends j a v a. rmi. Remote { i n t add ( i n t a, i n t b ) throws j a v a. rmi. RemoteException ; Server import import import j a v a. rmi. ; j a v a. rmi. r e g i s t r y. ; j a v a. rmi. s e r v e r. ; p u b l i c c l a s s S i m p l e S e r v e r extends j a v a. rmi. s e r v e r. U n i c a s t R e m o t e O b j e c t implements SimpleRemoteMessage { / r e g i s t r y h o l d i n g t h e remote o b j e c t s / p r i v a t e j a v a. rmi. r e g i s t r y. R e g i s t r y o b j e c t R e g i s t r y ; p r o t e c t e d S i m p l e S e r v e r ( i n t p o r t ) throws j a v a. rmi. RemoteException { t r y { / / c o n n e c t t o t h e RMI r e g i s t r y o b j e c t R e g i s t r y = j a v a. rmi. r e g i s t r y. L o c a t e R e g i s t r y. c r e a t e R e g i s t r y ( p o r t ) ; / / a s s i g n t h i s c l a s s as " example " o b j e c t R e g i s t r y. bind ( " example ", t h i s ) ; System. o u t. p r i n t l n ( " S e r v e r r e a d y on p o r t " + j a v a. rmi. r e g i s t r y. R e g i s t r y. REGISTRY_PORT ) ; catch ( j a v a. rmi. RemoteException e ) { / / s e t t i n g up t h e r e g i s t r y f a i l e d throw e ; catch ( j a v a. rmi. AlreadyBoundException e ) { / / a l r e a d y bound ( s h o u l d n o t happen ) throw new RuntimeException ( e ) p u b l i c i n t add ( i n t a, i n t b ) { System. o u t. p r i n t l n ( " add ( ) g o t c a l l e d r e m o t e l y! " ) ; return a + b ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { t r y { new S i m p l e S e r v e r ( ) ; catch ( RemoteException e ) { System. e r r. p r i n t l n ( " F a i l u r e i n t h e RMI s e r v e r : " + e ) ; Verteilte Systeme WS 2016/17 Übungsblatt 2 6
7 Client import j a v a. rmi. NotBoundException ; import j a v a. rmi. RemoteException ; p u b l i c c l a s s S i m p l e C l i e n t { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { SimpleRemoteMessage myserver ; j a v a. rmi. r e g i s t r y. R e g i s t r y s e r v e r R e g i s t r y ; S t r i n g s e r v e r A d d r e s s = " " ; / / args [ 0 ] ; S t r i n g s e r v e r P o r t = " 7620 " ; / / args [ 1 ] ; i n t p o r t = I n t e g e r. valueof ( s e r v e r P o r t ) ; t r y { / / a t t a c h t o t h e remote r e g i s t r y s e r v e r R e g i s t r y = j a v a. rmi. r e g i s t r y. L o c a t e R e g i s t r y. g e t R e g i s t r y ( s e r v e r A d d r e s s, p o r t ) ; / / f e t c h t h e s e r v e r o b j e c t myserver = ( SimpleRemoteMessage ) s e r v e r R e g i s t r y. lookup ( " example " ) ; / / perform t h e a c t u a l RMI c a l l System. o u t. p r i n t l n ( " = " + myserver. add ( 4 2, 5 8 ) ) ; catch ( RemoteException e ) { System. e r r. p r i n t l n ( " Got an remote e x c e p t i o n : " + e. getmessage ( ) ) ; e. p r i n t S t a c k T r a c e ( ) ; catch ( NotBoundException e ) { System. e r r. p r i n t l n ( " Remote r e g i s t r y doesn t know example. " ) ; e. p r i n t S t a c k T r a c e ( ) ; (b) Message Sequence Chart: Verteilte Systeme WS 2016/17 Übungsblatt 2 7
8 msc Ablauf Server Object Server RMI Client RMI Client Object bind(...) lookup(...) connect OK create Stub return Stub looks like local Forward add(...) Forward add(...) sum Forward Forward sum 5 Cross Site Scripting (XSS) XSS bezeichnet das Einschleusen von HTML Code auf fremden Internetseiten. Dieser HTML Code wird dazu verwendet, um einen Angriff auf einen Client, der die Internetseite besucht, durchzuführen. Für diese Übung benötigen Sie ein Linux System (z.b. Ubuntu LTS), mit einem installierten Apache 2 Webserver mit aktiviertem PHP. Sie können eine Virtualisierungslösung, wie z.b. das frei erhältliche VirtualBox, verwenden um eine frische Linux Installation auf Ihrem Computer aufzusetzen ohne Ihr Produktivsystem verändern zu müssen. 1. Laden Sie die Datei xss.html von unser Internetseite (bzw. PAUL) und speichern Sie diese in Ihrer virtuellen Maschine unter /var/www/xss.php (Bitte beachten Sie hierbei die Dateiendung!). Führen Sie den Befehl chown -R www-data:www-data /var/www aus, um der Datei die benötigten Rechte zuzuweisen. 2. Suchen Sie Sicherheitslücken in dem php Script und zeigen Sie, wie Sie diese ausnutzen können, um einen XSS Angriff auf einen anderen Client zu starten. (Hinweis: Es reicht aus, sich den von dem php Script erzeugten HTML Code anzuschauen.) 3. Moderne Browser (wie z.b. Google Chrome 39.x) erkennen das Einschleusen von JavaScript Code über Parameter in der URL. Erläutern Sie, wie Sie die XSS Abwehrmaßnahmen moderner Browser umgangen haben. Verteilte Systeme WS 2016/17 Übungsblatt 2 8
9 4. Nutzen Sie XSS um das Passwort eines Benutzers abzugreifen. 5. Sie wollen die erbeuteten Zugangsdaten nun automatisch durch das eingeschleuste Java-Script an einen weiteren Server senden, damit dieser die Daten speichert. Dies soll geschehen, ohne, dass der Benutzer dies bemerkt. Welche Methoden können hierbei zum Einsatz kommen? Entscheiden Sie sich für eine Methode und setzen Sie diese um. 6. Die Links, die bei dem reflexiven XSS eingesetzt werden, sind sehr auffällig. Diskutieren Sie Methoden, um den Inhalt dieser Links zu verschleiern. Verteilte Systeme WS 2016/17 Übungsblatt 2 9
Übungsblatt 2: Kommunikation und XSS
Wintersemester 2012/2013 Verteilte Systeme Universität Paderborn Fachgebiet Rechnernetze Übungsblatt 2: Kommunikation und XSS 13.12.2012 1 Synchron vs. Asynchron Ausgehend vom Zeitpunkt 0 rechne ein 100
MehrSystemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007
Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung
MehrRemote 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
Mehr7.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
MehrRemote 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
MehrKonzepte von Betriebssystem-Komponenten Middleware RMI
Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
RMI, Zusammenfassung und Lehrevaluation PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 8. Juli 2013 Übersicht
MehrKomponententechnologien 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
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrJava-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
MehrKlausur 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
MehrGrundlagen Internet-Technologien INF3171
Grundlagen Internet-Technologien INF3171 ekaay AJAX Version 1.0 01.07.2013 aktuelles 2 Ajax: zunächst Abkürzung für Asynchronous JavaScript And XML Jesse J. Garrett (AdaptivePath) http://www.adaptivepath.com/publications/essays/archives/
MehrKurzanleitung 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
MehrPyro - Python Remote Objects
Pyro - Python Remote Objects Eine Bibliothek zum Erstellen verteilter Anwendungen unter Python Oliver Burger DHBW Stuttgart - Campus Horb Zusammenfassung. In der hier vorliegenden Arbeit werden die Grundzüge
MehrWebsockets. Verbindungskanal zwischen Client-Anwendung (JavaScript in Browser) und Server.
Websockets Websocket: Verbindungskanal zwischen Client-Anwendung (JavaScript in Browser) und Server. Vergleichbar mit TCP/IP-Socket, aber durch Client-Skript direkt nutzbar Mit eingebauter Nachrichten-Fragmentierung.
MehrPyro - Python Remote Objects
13. Mai 2012 Pyro - Python Remote Objects 1 Pyro - Python Remote Objects Oliver Burger DHBW Stuttgart - Campus Horb 13. Mai 2012 Was ist Pyro? 13. Mai 2012 Pyro - Python Remote Objects 2 13. Mai 2012 Pyro
MehrÜbungen zum Bioinformatik-Tutorium. Blatt 3
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World
MehrGrundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018
Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018 Übungsblatt 11 2. Juli 6. Juli 2018 Hinweis: Mit * gekennzeichnete Teilaufgaben sind ohne Lösung vorhergehender Teilaufgaben lösbar. Aufgabe
MehrVerwendung der Gruppenkommunikation JGroups
Entwickelt von Bela Ban als flexibel konfigurierbare Gruppenkommunikation in Java Information und Sourcen Webseite: http://www.jgroups.org/javagroupsnew/docs/index.html Manual und Tutorial CIP: /local/jgroups/
MehrMIT3 Serverseitige Programmierung. Claudius Coenen
MIT3 Serverseitige Programmierung Claudius Coenen Organisatorisch Vorlesungsfolien & Weiterführendes www.claudiuscoenen.de/hda (mein Name, am Stück) (wo ihr studiert) (3-Tier-Reprise) Client Applikations-Server
MehrHö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
MehrNode.js Einführung Manuel Hart
Node.js Einführung Manuel Hart Seite 1 Inhalt 1. Node.js - Grundlagen 2. Serverseitiges JavaScript 3. Express.js 4. Websockets 5. Kleines Projekt Seite 2 1. Node.js Grundlagen Node.js is a JavaScript runtime
MehrLösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
MehrKlausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006
Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren Namen
MehrProgrammierung für Mathematik HS10
Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS0 Übung Aufgabe: Calculator Fortsetzung. Lernziele. Probleme mit Integer-Rechnung kennenlernen und Lösungen
MehrAnleitung. 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
MehrMobile 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
MehrJava 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
MehrWebentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo
Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components
MehrSoftware Engineering I (IB) Node.js. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Software Engineering I (IB) Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 15.11.2018 08:01 Inhaltsverzeichnis JavaScript auf dem Server!?............................ 1 Hello
MehrPHP-5-Zertifizierung. Block 12 Security.
PHP-5-Zertifizierung Block 12 Security Allgemeine Regeln Alle Eingaben (von außen) sind (potenziell) böse Eingaben filtern/validieren Ausgaben escapen Trauen Sie nichts von außen! GET-/POST-Daten Cookies
Mehr01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion
01 Einführung in PHP Einführung in PHP 1/13 PHP in Aktion PHP ist eine Programmiersprache, die ganz verschiedene Dinge tun kann: von einem Browser gesendete Formularinhalte auswerten, angepasste Webinhalte
MehrInstitut für Betriebssysteme und Rechnerverbund Übungslösungen zur Vorlesung Verteilte Systeme, WS 02/03 http:www.ibr.cs.tu-bs.de/lehre/ws0203/vs/ Dozent: Prof. Dr. Stefan Fischer
MehrLiteratur und Links. Webtechnologien WS 2017/18 Teil 1/Entwicklung
Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html http://sourceforge.net/projects/xampp/files/ [1-3] http://aktuell.de.selfhtml.org/extras/download.shtml
Mehr9. 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
MehrWebtechnologien Teil 1: Entwicklungsumgebung(en)
Webtechnologien Teil 1: Entwicklungsumgebung(en) 05.04.17 1 Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html
MehrRemote 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
MehrJava Remote Method Invocation (RMI)
Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von
MehrB 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)
MehrInstallationsanleitung
1. C Installationsanleitung C-Programmierung mit Hilfe von Eclipse unter Windows XP mit dem GNU C-Compiler (GCC) 2. Inhaltsverzeichnis 1. Einleitung... 3 2. Cygwin... 3 2.1 Cygwin-Installation... 3 2.2
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrMedien und Webtechnologie
Medien und Webtechnologie Herstellerkatalog als Webanwendung Wintersemester 2005/06 18. Januar 2006 M. Wintermeier, C. Brottka, S. Keitsch Unser Ziel Beim Ausführen einer Funktion soll keine neue HTML-Seite
MehrLiteratur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung
Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html http://sourceforge.net/projects/xampp/files/ [1-3] http://aktuell.de.selfhtml.org/extras/download.shtml
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
MehrMusterlö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
MehrMiddleware. im Schweinsgalopp
Middleware im Schweinsgalopp 1 Szenario Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web- Schnittstelle Daten im ERP
MehrMusterlösung zu Übungsserie 09
Musterlösung zu Übungsserie 09 Prof. Dr. H. Schweppe I. Dageförde M. Waldvogel Aufgabe 9.1 Für diese Aufgabe gibt es nicht genau eine beste Lösung. Zunächst sei bemerkt, dass eine rekursive Lösung möglich
MehrGrundlagen verteilter Systeme
Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 2 20.11.07 Grundlagen verteilter Systeme Lösungsvorschlag
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 12. Januar 2018 Betriebssysteme / verteilte
MehrAPEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH
APEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH APEX Connect 2018 Call for Papers bis 08.11.2017!! Agenda About APEX Office Print Lizenz / Architektur /
MehrWeb-basierte Anwendungssysteme PHP-Einführung
Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann
Mehr9. Ausnahmebehandlung
9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler
MehrEinstieg 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
MehrDatenschutztag. Eine Präsentation von Mateusz Gwara, Philipp Leder, Paul Panser und Patrick Wilke
Datenschutztag Eine Präsentation von Mateusz Gwara, Philipp Leder, Paul Panser und Patrick Wilke 1. Website Security Gliederung 2. Viren, Trojaner & Antivirensoftware 3. Phishing & Gefahren des World Wide
MehrAnleitung unter Windows
20.01.2019 16:58 1/10 Anleitung unter Windows Anleitung unter Windows Um einen VPN-Zugang auf Ihrem Windows-Gerät herzustellen, folgen Sie bitte dieser Anleitung. Konfiguration Die Nutzung des VPN kann
MehrLinux-Camp: Linux als Server am Beispiel LAMP
Linux-Camp: Linux als Server am Beispiel LAMP Linux, Apache, MySQL, PHP mit Ubuntu Version 8.04 Inhalt LAMP-Komponenten LAMP-Komponenten installieren, konfigurieren und prüfen Apache Webserver PHP5 MySQL
MehrMul$media im Netz Wintersemester 2012/13. Übung 06
Mul$media im Netz Wintersemester 2012/13 Übung 06 Ludwig- Maximilians- Universität München Mul6media im Netz WS 2012/13 - Übung 6-1 Lösung zu Übungsbla5 04 Ludwig- Maximilians- Universität München Mul6media
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrAusnahmen (Exceptions)
Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)
MehrThemen. 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
MehrFormulare. Definition. Definition & Beispiele P-IT. Fach: Klasse: TD1. Datum: (Freitag) Agenda zu HTML und PHP
1 2 Fach: Klasse: Datum: P-IT TD1 08.02.2019 (Freitag) Agenda zu HTML und PHP Formulare - Definition & Beispiele PHP - Definition XAMPP - PHP-Quelltext ausführen mit XAMPP 3 4 Formulare Definition & Beispiele
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Übungsblatt 1 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,
MehrWarum 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-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(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
MehrOWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes
OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes 1 XSS: Cross-Site Scripting 1.) Es gelangen Daten in den Web-Browser, die Steuerungsinformationen
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrHandbuch 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
MehrMöge das Abenteuer beginnen!
xvi Einleitung Stück Programmcode macht. Schließlich wirst du wieder nur im Buch öfter dieses Zeichen am Ende von Programmzeilen sehen: 8. Es sagt nur aus, dass die laufende Zeile an dieser Stelle aus
MehrGrundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11
Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11 31.5.2010 1 aktuelles twitter: Mikroblogging seit 2006 typischer Dienst für Web 2.0 eigene twitter-api Nutzung in Massenmedien,
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrÜ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
MehrFormulare mit HTML. Beispiele. Beispiele & Nutzen. Web. Fach: Klasse: BW2. Datum: (Freitag) Agenda zu HTML und PHP
1 2 Fach: Klasse: Datum: Web BW2 01.03.2019 (Freitag) Agenda zu HTML und PHP Formulare mit HTML Beispiele & Nutzen PHP - Definition XAMPP - PHP-Quelltext ausführen mit XAMPP 3 4 Formulare mit HTML Beispiele
MehrDatenbanken und Netzanbindung
Datenbanken und Netzanbindung Zusammenfassung von Michael Reiher zum Vortrag Webserver und Sicherheit. Meine Ausarbeitung befasst sicht sich mit Möglichkeiten eines Angriffs auf einen Webserver. Seite
MehrLösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 8: Software-Entwicklung 1 (WS 2017/18)
MehrProgrammieren 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Übung Programmierung WS 2007/08 - Blatt 6
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
MehrLeistungskurs C++ Einführung
Leistungskurs C++ Einführung Martin Knopp, Stefan Röhrl, Martin Gottwald 17.10.2017 Folie 1/18 LK C++: Einführung Martin Knopp, Stefan Röhrl, Martin Gottwald 17.10.2017 Das Team Martin Knopp Martin.Knopp@tum.de
MehrUNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP
UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,
Mehr3. Übung zur Vorlesung Verteilte Betriebssysteme
UNIVERSITÄT ULM Fakultät für Informatik Verteilte Systeme Prof. Dr. Peter Schulthess Markus Fakler 3. Übung zur Vorlesung Verteilte Betriebssysteme 21.11.2007 Aufgabe 1: Verteilte Algorithmen (3 + 1 +
MehrLösungen. Programmiermethodik. Sommersemester 2013 Übungstest Dauer: 60 Minuten
Programmiermethodik LV-Nr.: 703017- Sommersemester 2013 Übungstest 3.6.2013 Dauer: 60 Minuten Name: Matrikelnummer: Lösungen Dieser Test enthält 10 Seiten (inklusive Deckblatt) und 4 Probleme. Bitte überprüfen
MehrVerteilte Systeme - Java Networking (Sockets) 2 -
Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:
MehrServlet-zentrierte Architektur von Web-Anwendungen mit Java Servlets, Java Server Pages (JSPs) und Java Beans
Projekt Entwicklung verteilter Softwaresysteme mit Web Services SoSe 2008 - Java Server Pages und Servlets - 7. April 2008 Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität
MehrKompaktes Hardware-Wissen rund um die Micro-Prozessor-Technik
Auszug aus unserem Bestseller Kapitel: Micro-Prozessor-Technik Autor: Rainer Egewardt Copyright by PCT-Solutions 1. Auflage 600 Seiten 2. Auflage 1200 Seiten Kompaktes Hardware-Wissen rund um die Micro-Prozessor-Technik
Mehr2. WWW-Protokolle und -Formate
2. WWW-Protokolle und -Formate Inhalt: HTTP, allgemeiner syntaktischer Aufbau Wichtige Methoden des HTTP-Protokolls Aufbau von Web-Applikationen unter Nutzung von HTTP, HTML, DOM XML, XML-DTD und XML-Schema
MehrDatenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung
Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape 6. Übung Aufgabe 1: In dieser Übung sollen Sie eine kleine Java-Anwendung schreiben, die auf die Oracle-Datenbank
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
MehrLeistungskurs C++ Einführung
Leistungskurs C++ Einführung Martin Knopp, Johannes Feldmaier, Stefan Röhrl 18.10.2016 Folie 1/18 LK C++: Einführung Martin Knopp, Johannes Feldmaier, Stefan Röhrl 18.10.2016 Das Team Martin Knopp Martin.Knopp@tum.de
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 2 1 Aufgabe: Calculator Fortsetzung 1.1 Lernziele 1. Probleme bei der Benutzung von Operatoren erkennen und verstehen. 2.
MehrWegleitung Installation, Einstellung und Nutzung der Trader Workstation und dem NinjaTrader für PC
Wegleitung Installation, Einstellung und Nutzung der Trader Workstation und dem NinjaTrader für PC Überprüfung Ihrer Java Version Bitte prüfen Sie als Erstes, welche Java Version auf Ihrem Rechner installiert
MehrPython zur Lösung von AvA Übung 1 VON MORITZ FEY
Python zur Lösung von AvA Übung 1 VON MORITZ FEY Übersicht 2 Einführung Socket-Schnittstellen Datei-Zugriff Aufbau der Nachrichten und Serialisierung Besonderheiten von Python Realisierung des Programms
MehrÜbungsstunde 9. Einführung in die Programmierung I
Übungsstunde 9 Einführung in die Programmierung I Probleme bei Übung 8 [TODO Assistent] Nachbesprechung Übung 9 Aufgabe 1 Spieler Spieler[] spieler = { new ZufallsWortSpieler(), new ZufallsWortSpielerMitGedaechtnis(),
MehrIUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only
IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES 2016 Software AG. All rights reserved. For internal use only DIGITAL BUSINESS APPLICATIONS DRIVE THE DIGITAL BUSINESS Partner Lieferanten Kunden SaaS
MehrProgrammieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3
Übung zur Vorlesung Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Allgemeines Aufgabenblatt 3 Abgabe: 10.12.2013, vor der Vorlesung (14:15 Uhr, AM 1) Max.
MehrVorbereitungen 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
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
Mehr