Download - Prezentare Apd Java Spaces
![Page 1: Prezentare Apd Java Spaces](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062300/558749e3d8b42af36c8b461e/html5/thumbnails/12.jpg)
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare
13.04.23 JavaSpaces – Dumitrache Mihai - Marian 12
Întrebări ?