Sunteți pe pagina 1din 18

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Alternativa pentru implementarea modelului replicated workers n sisteme distribuite: JavaSpaces

VSII Cosmin-Radu 331CC

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Voi vorbi despre ...

1. Ce este JavaSpaces 2. Replicated workers folosind JavaSpaces

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Limbajul de programare Java este, fr ndoial, limbajul de programare cel mai popular - niciodat nainte un limbaj nu a atins att de repede utilizarea pe scar larg n rndul profesionitilor de calcul, studenilor i pasionailor din ntreaga lume.
Limbajul de programare Java i datoreaz succesul n mare parte datorit sintaxei sale curate, naturii orientate pe obiecte, dar, de asemenea, si poziiei sale unice ca prim limbaj de programare general, conceput pentru a funciona n mod expres peste reele, n special la internet.

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Ca rezultat, muli programatori sunt acum expui programrii in retea pentru prima dat. ntr-adevr, cu industria de calculatoare ce se deplaseaz spre sisteme de reea din ce n ce mai complexe, toolbox-ul unui programator nu va fi complet fr mijloacele i know-how-ul pentru a proiecta i construi sisteme distribuite.

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

1. JavaSpaces este ...

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

un nou model de programare distribuit usor de folosit prin oferirea unui mecanism de coordonare de nivel inalt

expresiv
puternic prin complexitatea redus codului

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

JavaSpaces este n primul rnd conceput pentru a fi simplu i necesit nvarea a unui numr redus de operaii
pornete de la instrumente convenionale ale sistemelor distribuite, care se bazeaz pe transmiterea mesajelor ntre procese sau pe invocarea unor metode pe obiecte aflate la distan. tehnologia JavaSpaces ofer un model de programare fundamental diferit, care privete o aplicaie ca pe o colecie de procese cooperante prin intermediul fluxului obiectelor n i dintr-unul sau mai multe spaii. Acest model pe baz de spaiu de calcul distribuit i are rdcinile n limbajul de coordonare Linda dezvoltat de Dr. David Gelernter de la Universitatea Yale

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

se folosesc obiecte i memorii comune, un spaiu fiind un depozit partajat, accesibil in reea pentru obiecte
API-ul JavaSpaces conine o serie de funcii utile aplicaiilor

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Metode utile aplicaiilor

write se copiaz obiectul n memoria comun

read se citete un obiect


take se copiaz local un obiect dar se terge din memoria comun

12.04.2012

JavaSpaces VSII Cosmin-Radu

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Memoriile comune n JavaSpaces

sunt persistente (obiecte pstrate la infinit ... ) i asociative obiectele sunt identificate prin cutare asociativ i nu prin identificatori sau locaii de memorie Pentru identificare se folosesc obiecte template.

12.04.2012

JavaSpaces VSII Cosmin-Radu

10

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Reguli pentru obiectele JavaSpaces


s implementeze interfaa Entry s aib un constructor fr nici un argument variabilele clasei s fie publice variabilele clasei s nu fie de tipul primitiv: Ex: Integer a; nlocuiete int a;
import net.jini.core.entry.Entry; public class Message implements Entry { public String content; public Message() { } }

12.04.2012

JavaSpaces VSII Cosmin-Radu

11

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

2. Replicated workers folosind JavaSpaces

12.04.2012

JavaSpaces VSII Cosmin-Radu

12

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Fiecare memorie comun reprezint un Work Pool Se introduc taskuri iniiale in work pool Procesele executa operaia take pentru a prelua un task Daca se genereaza taskuri noi se introduc in work pool folosind operaia write

12.04.2012

JavaSpaces VSII Cosmin-Radu

13

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Jini framework http://www.jini.org/wiki/Main_Page


Exemplu de program folosind JavaSpaces
un spaiu sau o memorie comuna contine intrri. O intrare este o colecie de obiecte care implementeaza interfata ENTRY. Aici este un exemplu de "mesaj" de intrare, care conine un cmp - coninutul mesajului: public class Message implements Entry { public String content;

public Message() { }
} Message msg = new Message();

msg.content = "Hello World";


12.04.2012

JavaSpaces VSII Cosmin-Radu

14

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Jini framework http://www.jini.org/wiki/Main_Page


obinem un obiect in spaiu(memorie comun) i apoi invocm metoda sa de a scrie pentru a plasa o copie n spaiul respectiv: JavaSpace space = SpaceAccessor.getSpace(); space.write(msg, null, Lease.FOREVER); crem un template

Message template = new Message();

12.04.2012

JavaSpaces VSII Cosmin-Radu

15

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Jini framework http://www.jini.org/wiki/Main_Page


aplicm metoda write in memoria comun JavaSpace space = SpaceAccessor.getSpace(); space.write(msg, null, Lease.FOREVER); System.out.println(result.content); se obine: Hello World Metoda take este asemntoare celei read, cu excepia c extrage din memoria comun Message result = (Message)space.take( template, null, Long.MAX_VALUE);

12.04.2012

JavaSpaces VSII Cosmin-Radu

16

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Jini framework http://www.jini.org/wiki/Main_Page


public class HelloWorld { public static void main(String[] args) {
try { Message msg = new Message(); msg.content = "Hello World";

JavaSpace space = SpaceAccessor.getSpace();


space.write( msg, null, Lease.FOREVER); Message template = new Message(); Message result = (Message)space.read(template, null, Long.MAX_VALUE); System.out.println(result.content); } catch (Exception e) { e.printStackTrace(); }

}
}
12.04.2012

JavaSpaces VSII Cosmin-Radu

17

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

ntrebri ?

12.04.2012

JavaSpaces VSII Cosmin-Radu

18

S-ar putea să vă placă și