concurrent programming programmiermethodik ss2006 © 2005 albert zündorf, university of kassel 1

23
Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Upload: mary-hutchinson

Post on 26-Mar-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Concurrent Programming

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Page 2: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 2

Synchrone Methodenausführung

Page 3: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

runtime program

Page 4: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 4

UML Sequenzdiagramme

s1 :C1

1: m()

r1 :C2

beteiligte Objekte

Lebenslinie

Nachricht / Methodenaufruf vr1.m()

Zeitachse

s2 :C1

4.1: m3()

r2 :C2

4: m2()

x := "100"

4.1.1: lm()Aktivierungsbalken

Rücksprung

s3 :C1

4.1: «create»4: m4()

r3 :C2

4.2: m5()

4.3: «destroy»

Objekterzeugung

Objektlöschung

Page 5: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 5

button leftbank rightbankapp action

Page 6: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 6

button leftbank rightbankapp action timer

Page 7: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 7

button leftbank rightbankapp action timer

Page 8: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 8

button leftbank rightbankapp action timer

Page 9: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 9

Page 10: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 10

Page 11: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 11

UML Komponentendiagramme

BankSystem

Account

Bank

bs1 :BankSystem bs2 :BankSystem

Struktur

Verhalten Daten

Page 12: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 12

UML Deploymentdiagramme

Struktur

Verhalten Daten

Server

www.upb.de :Server

bs1 :BankSystem

ws1 :Webserver

daffy.kassel.de :Server

bs2 :BankSystem

Page 13: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 13

Page 14: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 14

Page 15: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 15

Page 16: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 16

Calling a remote method

class Bank {

public void remoteTransferToBank2(Account account1, String account2, double amount) {

XmlRpcClient xmlrpc = new XmlRpcClient ("http://www.bank2.de:8080/RPC2");

Vector params = new Vector ();

params.addElement ("account2");params.addElement (amount);

// this method returns a booleanBoolean result = (Boolean) xmlrpc.execute ("remoteTransferFromBank1", params);

}

Page 17: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 17

Server accepting remote calls

class Bank {

public static void main (String [] args) {WebServer webserver = new WebServer (8080); webserver.addHandler ("transfers", new TransferHandler());

}

Page 18: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 18

Server accepting remote calls

class TransferHandler implements XmlRpcHandler {…

Object execute(XmlRpcRequest pRequest) throws XmlRpcException {

switch (pRequest.getMethodName()) {

case "remoteTransferFromBank1":localTransferFromBank1 ((String) pRequest.getParameter(0),

(double) pRequest.getParameter(1));break;

….

}

}

Page 19: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

19

Page 20: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 20

Page 21: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 21

Page 22: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 22

Page 23: Concurrent Programming Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 23