• No results found

Den økonomiske dimensjon

In document forhold til Europa. (sider 156-0)

DEL 3 • ARBEID, VELFERD OG MILJØ

11.2 Den økonomiske dimensjon

A abstracção do espaço de tuplos, com a sua interface de alto nível, simplifica bastante a coordenação entre processos distribuídos, sendo uma das suas vantagens a indepen-

MODELOS DE COMUNICAÇÃO:GRUPOS,ESPAÇO PARTILHADO E EVENTOS

dência relativamente à linguagem de programação utilizada pelos clientes.

Diversos sistemas que suportam a implementação de espaço de tuplos têm vindo a ser desenvolvidos [Wel04], sendo alguns dos exemplos, os seguintes:

• JavaSpaces: implementação em Java desenvolvida pela Sun, incorporada na pla- taforma Jini [Edw01];

• TSpaces: sistema desenvolvido pela IBM [TSp];

• GigaSpaces: uma implementação comercial do sistema JavaSpaces, ao qual foi acrescentado um conjunto de funcionalidades e operações que lhe permitem ob- ter uma maior expressividade na utilização dos tuplos [gt06];

• Klava: sistema de nível middleware, especialmente vocacionado para o desenvol- vimento de aplicações distribuídas com mobilidade. Possui a noção de locali- dade (locality) que permite identificar de forma única um nó na rede. O sistema implementa o espaço de tuplos com base numa semântica cliente-servidor, em que cada nó pode ser servidor de um espaço de tuplos e, ao mesmo tempo, ser cliente de outros nós, ou espaços de tuplos [BNP02];

• ObjectSpace: implementado em C++, incorporou a noção de objecto ao modelo Linda standard. Nesta implementação qualquer objecto C++ pode ser um tuplo. O esquema de pesquisa de tuplos, neste caso, considera que encontrou um tuplo que satisfaça as condições, se o objecto do tuplo puder implementar o objecto do "template" que é passado para pesquisa.

O modelo JavaSpaces [FHA99,Jav06] assume uma aplicação distribuída como uma colecção de processos que cooperam entre si pela troca de objectos através de um ou mais espaços de partilha; possui mecanismos que garantem a integridade das tran- sacções e permitem lidar com falhas; oferece uma interface de programação simples através da qual é possível manipular os objectos nos espaços, sendo as suas funciona- lidades baseadas nas do modelo Linda:

• write(): escreve um novo objecto no espaço (semelhante a out em Linda); • take(): remove um objecto do espaço (semelhante a in em Linda);

• read: efectua um cópia de objecto num espaço (semelhante a rd em Linda); • noti f y: notifica um objecto específico, quando uma ou mais entradas que satisfa-

çam um dado "template" são escritas no espaço (implementações posteriores de Linda, também possuem uma operação semelhante).

Os objectos são passivos, ou seja não podem ser modificados directamente pelos processos, nem os seus métodos podem ser invocados directamente. Para alterar um

MODELOS DE COMUNICAÇÃO:GRUPOS,ESPAÇO PARTILHADO E EVENTOS

objecto, um processo deve proceder à sua leitura do espaço, modificá-lo e tornar a inseri-lo no espaço.

A plataforma TSpaces [WMLF98] desenvolvida sobre Java, constitui uma extensão considerável ao modelo Linda original, conjugando a existência de um espaço de par- tilha com outros mecanismos de interacção. Todas as interacções entre produtores e consumidores são mediadas pelo espaço de tuplos, possuindo um maior número de operações de escrita e leitura de múltiplos tuplos, do que o modelo Linda. Permite- se a sincronização e troca de dados directa entre dois processos, através de um novo operador (rhonda). Possui um mecanismo de eventos que lhe permite enviar uma no- tificação quando um dado tuplo é escrito ou lido/removido do espaço.

3.4

Modelos de comunicação baseados em eventos

Ao longo desta secção é feita uma breve descrição dos modelos de comunicação em sistemas distribuídos baseados em eventos.

O modelo de comunicação baseado em eventos corresponde a um paradigma de interacção assíncrona entre elementos, em ambientes distribuídos heterogéneos, em que um evento representa uma transição de estado que ocorre e em consequência da qual é emitida uma sinalização por parte de uma entidade a um conjunto de outras entidades [TR05].

Embora este modelo de comunicação já tenha surgido há diversos anos, tem vindo a ser "redescoberto" como uma forma de interacção entre elementos distribuídos di- nâmicos e móveis, devido as suas características e capacidade de lidar com o carácter não deterministico e altamente dinâmico das comunicações existentes nestes ambien- tes [MC05]. Os modelos de comunicação baseados em eventos pretendem resolver algumas das limitações do paradigma cliente/servidor tradicional, onde as interac- ções eram de natureza essencialmente síncrona e essencialmente direccionadas para comunicações de um para um.

A comunicação baseada em eventos revela-se especialmente útil em aplicações dis- tribuídas que necessitam de reagir a alterações que ocorram em qualquer componente, e de notificar desse facto os restantes componentes. Trata-se de um modelo de co- municação, especialmente bem adaptado para servir de suporte à cooperação entre comunidades de entidades distribuídas que pretendem estabelecer comunicações de forma dinâmica e não previsível ao longo do tempo [MC05].

Os sistemas de eventos têm na sua base um conjunto de elementos produtores de eventos e um conjunto de receptores de eventos e podem ser decompostos nas seguin- tes fases:

MODELOS DE COMUNICAÇÃO:GRUPOS,ESPAÇO PARTILHADO E EVENTOS

resultado de uma alteração de estado;

2. detecção de evento: detecção por parte dos "sensores", do sistema da ocorrência do evento;

3. transmissão de evento: transmissão para os receptores, da informação referente à ocorrência do evento;

4. recepção de evento: tratamento do lado receptor, do evento que foi transmitido. Nestes sistemas, um evento é uma representação de uma transição discreta de es- tado que ocorreu e que é sinalizada por uma entidade do sistema, para um conjunto de outras entidades [TR05]. A forma como os eventos são transmitidos depende das opções tomadas na definição do sistema e pode ter por base diferentes paradigmas de comunicação tais como: troca de mensagens, invocações remotas e memória partilhada distribuída. A troca de mensagens representa uma descrição de mais baixo nível em que o modelo de comunicação recorre ao simples envio e recepção de mensagens entre os intervenientes. No caso da invocação remota, a comunicação é efectuada através da chamada, por parte do emissor, de um procedimento ou método declarado nos re- ceptores [EFGK03]. Na memória partilhada distribuída, os vários produtores podem colocar informação, de forma assíncrona, no espaço comum, onde os consumidores a podem ir buscar de forma síncrona [Gel85].

No entanto, uma das formas mais interessantes de comunicação em sistemas de eventos, devido às características que exibem, tem por base o paradigma de publica- ção/subscrição.

In document forhold til Europa. (sider 156-0)