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

Post on 26-Mar-2015

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

runtime program

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

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

button leftbank rightbankapp action

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

button leftbank rightbankapp action timer

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

button leftbank rightbankapp action timer

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

button leftbank rightbankapp action timer

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

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

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

UML Komponentendiagramme

BankSystem

Account

Bank

bs1 :BankSystem bs2 :BankSystem

Struktur

Verhalten Daten

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

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

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

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

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

}

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());

}

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;

….

}

}

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

19

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

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

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

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

top related