prezentare apd java spaces

12
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare 13.06.22 JavaSpaces – Dumitrache Mihai - Marian 1 Alternativa pentru implementarea modelului “replicated workers” în sisteme distribuite: JavaSpaces Dumitrache Mihai – Marian Grupa 332CC [email protected]

Upload: mmdumi

Post on 22-Jun-2015

611 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 1

Alternativa pentru implementarea modelului “replicated workers” în

sisteme distribuite: JavaSpaces

Dumitrache Mihai – Marian

Grupa [email protected]

Page 2: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 2

Voi vorbi despre ...

1. Ce este JavaSpaces

2. “Replicated workers” folosind JavaSpaces

Page 3: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 3

1. JavaSpaces este ...

Page 4: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 4

• un model de programare distribuită

• usor de folosit

• expresiv

• puternic prin complexitatea redusă codului

Page 5: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 5

• se folosesc obiecte şi memorii comune

• API-ul JavaSpaces conţine o serie de funcţii utile aplicaţiilor

Page 6: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 6

Metode utile aplicaţiilor

• write – se copiază obiectul în memoria comună

• read – se citeşte un obiect

• take – se copiază local un obiect dar se şterge din memoria comună

Page 7: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 7

Memoriile comune în JavaSpaces

• sunt persistente (obiecte păstrate la infinit ... )• şi asociative – obiectele sunt identificate prin

căutare asociativă şi nu prin identificatori sau locaţii de memorie

Pentru identificare se folosesc obiecte template.

Page 8: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 8

Reguli pentru obiectele JavaSpaces

import net.jini.core.entry.Entry;

public class Message implements Entry {

public String content;public Message(){}

}

• să implementeze interfaţa Entry• să aibă un constructor fără nici un argument• variabilele clasei să fie publice• variabilele clasei să nu fie de tipul primitivă:

Ex: “Integer a;” înlocuieşte “int a;”

Page 9: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 9

2. “Replicated workers” folosind JavaSpaces

Page 10: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 10

• Fiecare memorie comună reprezintă un Work Pool• Se introduc taskuri iniţiale in work pool• Procesele executa operaţia take pentru a prelua un task• Daca se genereaza taskuri noi se introduc in work pool

folosind operaţia write

Page 11: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 11

Exemplu de program folosind JavaSpaces

Jini frameworkhttp://www.jini.org/wiki/Main_Page

import net.jini.space.JavaSpace;

public class SpaceReader {public static void main(String argv[]){

MessageEntry msg = new MessageEntry();Lookup finder = new Lookup(JavaSpace.class);JavaSpace space = (JavaSpace) finder.getService();

MessageEntry template = new MessageEntry();MessageEntry result = space.read(template, null, Long.MAX_VALUE);System.out.println("The message is: "+result.content);

} }

Writer: MessageEntry msg = new MessageEntry();

msg.content = "Hello reader"; Lookup finder = new Lookup(JavaSpace.class); JavaSpace space = (JavaSpace) finder.getService(); space.write(msg, null, 60*60*1000);

Page 12: Prezentare Apd Java Spaces

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

13.04.23 JavaSpaces – Dumitrache Mihai - Marian 12

Întrebări ?