javaspaces şi modelul replicated workers

11
 Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare 16.01.2012 Protocoale de comunicaţie Prezentări Laborator  1 JavaSpaces şi modelul Replicated Workers Iulius Curt 334CA [email protected]

Upload: ileana-aluizei

Post on 14-Jul-2015

60 views

Category:

Documents


0 download

TRANSCRIPT

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 1/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   1

JavaSpacesşi modelul Replicated Workers 

Iulius Curt

334CA

[email protected]

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 2/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   2

• Dezvoltat la Yale University (implementat şi un limbaj pentru asusţine conceptul: Linda) 

• Obiectele din spaţiu sunt pasive 

• Mutex asigurat în mod inerent

Object Space

Spaţiu de Obiecte Client 1

Client 2

Client 3

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 3/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   3

JavaSpaces

• Implementarea în Java a conceptului. Permite unul sau maimulte spaţii. 

• Face parte din Jini, arhitectură orientată pe serviciu, introdusă

de Sun in ‘98. A fost reîncarnată de Apache ca River. 

• Documentaţie... 

 S  e p ar  e c  ă  t   o a t   el  i  nk  ur i  l   e d  el   a

 S  un /   Or  a c l   e c  ă  t  r  e J i  ni   s  un t   c  ă z  u t   e.

 

  

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 4/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   4

JavaSpaces API

• Elemente:

 –  Spaţii 

 –  Entităţi (Obiecte) 

• API minimalist dar puternic

• Operatii:

 –  write

 –  read

 –  take

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 5/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu

• Un exemplu simplu de workflow:

 –  Se instanţiază un obiect Spaţiu 

 –  Se instanţiază un obiect Entitate (implementează Entity) 

 –  Se apelează `write` pe obiectul Entitate, in Spaţiu. 

 –  Un proces apelează `read` şi obţine o copie 

 –  Un alt proces apelează `take` şi obiectul îi este oferit odată cu

ştergerea lui din spaţiu 

 –  Dupa procesare, apelează `write` şi repune obiectul în spaţiulpartajat

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   5

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 6/11

 

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   6

Alte caracteristici

• Spaţiile sunt partajate (in reţea) 

• Spaţiile sunt persistente (se poate specifica un timp de viaţă) 

• Spaţiile asigură atomicitatea tranzacţiilor  

• Identificarea obiectelor in spaţii se face după şabloane, nu

după un identificator  

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 7/11

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   7

... şi nu în ultimul rând 

• Spaţiile permit schimbul de conţinut executabil. 

• Proprietate esenţială pentru perspectiva implementării

modelului Replicated Workers.

public class Job implements Entry {public String content;

public void actionMethod() { // cod executabil

}}

 

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 8/11

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   8

Replicated Workers pe scurt

• Pattern în care un număr de procese joacă rol de “worker” 

• Workerii primesc joburi, le rezolva, întorc rezultatele

• Necesită o entitate care produce joburi şi centralizează

rezultatele

 

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 9/11

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   9

Replicated Workers în JSpaces

• Un proces central creeaza obiecte- job şi le plasează intr -unspaţiu 

• Procesele worker iau câte un obiect (take ) şi îl prelucrează. 

• Sincronizarea este asigurată implicit de paradigma

JavaSpaces.

 

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 10/11

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   10

(Dez)Avantajele folosirii JSpaces

• Avantaje:

 –  Sincronizarea vine natural

 –  Coada de joburi e emulata inerent de spaţiul de obiecte 

 –  Spaţiul e persistent 

• Dezavantaje:

 –  Un worker ia obiectul din spaţiu, deci, daca pică în timpul

procesării, obiectul se pierde 

 

5/12/2018 JavaSpaces şi modelul Replicated Workers - slidepdf.com

http://slidepdf.com/reader/full/javaspaces-si-modelul-replicated-workers 11/11

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

16.01.2012 Protocoale de comunicaţie – Prezentări Laborator   11

 Întrebări?