sexta-feira, 12 de setembro de 2008

Espaço de Tuplas

Existem dois elementos básicos em um espaço de tuplas: As Tuplas e o próprio Espaço. Ao contrário de mensagens tradicionais, uma tupla é um objeto propriamente dito, composta de uma série de outros objetos.
O espaço funciona como um repositório de tuplas e nele podem ser executadas diferentes operações como, por exemplo, leitura e escrita de tuplas.
Tuplas são lidas de um espaço através da utilização de buscas associativas onde coringas podem ser utilizados. Por exemplo, a tupla ("mensagem" , "agente1" , "Olá!"), pode ser lida através de uma busca utilizando padrão ("mensagem" , "agente1" , String), onde o String representa um coringa para qualquer conjunto de caracteres.
Espaços de tuplas devem no mínimo implementar as operações básicas de leitura, escrita e retirada de tuplas, mas dependendo da implementação outras operações derivadas destas podem existir, como por exemplo, leitura de um conjunto de tuplas ou o bloqueio do agente que deseja ler uma tupla que ainda não se encontra espaço.
Ao contrário da troca de mensagens tradicional entre agentes, a utilização de espaços de tuplas oferece um estilo de programação desacoplado. Isto pode ser dito porque uma vez que um agente cria e escreve uma tupla em um espaço ele não precisa saber especificamente qual outro agente a lerá nem em que momento isto irá acontecer. Na verdade a existência de uma tupla em um espaço é independente do agente que a criou e dos agentes que possam vir a realizar alguma operação sobre ela.
Existem diversas implementações comerciais de espaços de tuplas. Dentre estas as duas mais conhecidas são IBM TSpaces [35] e Java Spaces [14]. Estas implementações oferecem suporte para as operações básicas de espaços de tuplas (leitura, escrita e retirada de tuplas), além de outras derivadas destas. Também é disponibilizado o controle de transações no acesso aos espaços, e a opção de manter espaços persistentes.
Os espaços utilizados nestas implementações também podem ser acessados a partir de clientes remotos.

Link : http://www2.dbd.puc-rio.br/pergamum/tesesabertas/0115636_02_cap_02.pdf

Nenhum comentário: