Um espaço de tuplas tem como função criar uma abstração de memória compartilhada sobre um sistema distribuído. Por propiciar modelos de programação muito simples e com baixo acoplamento entre os elementos do sistema, espaços de tuplas têm sido empregados na construção de sistemas distribuídos complexos. O espaço de tuplas JavaSpaces é um dos mais populares espaços de tuplas para a linguagem Java. Ele tem como características relevantes a conformidade a objetos, a persistência e o emprego de transações. As atuais implementações de JavaSpaces apresentam restrições como: complexidade de configuração, limitação de alcance e não serem abertas. Por “complexidade de configuração” entende-se ter que usar boa parte da infra-estrutura Jini (feita para facilitar o desenvolvimento e administração de sistemas distribuídos) e o Remote Method Invocation (mecanismo de chamadas remotas padrão no ambiente Java), mesmo quando eles seriam dispensáveis. Por “limitação de alcance”, entende-se não poder usar as implementações sobre redes amplas, como a Internet. Por “não ser aberto” entende-se que: ou o código fonte não está disponível ou o código fonte e o aplicativo são distribuídos por licenças de software proprietárias ou o uso do software requer algum componente proprietário.
O primeiro espaço de tuplas recebeu o nome de Linda [Gelernter, 1985]. Ele trabalha em associação com diversas linguagens de programação, em especial, com as linguagens C e Fortran, as mais usadas em análise numérica e computação paralela. Não tardou, surgiram outros espaços de tuplas, quase sempre acrescentando alguma variante ao modelo básico implementado em Linda.
Lime (Linda in a Mobile Environment) [Picco et al, 1998] é um espaço de tuplas voltado para agentes e computação móvel. Esse é um nicho de aplicação propício para os espaços de tuplas. Lime mostra como o conceito básico de espaço de tuplas pode ser adaptado criativamente para aplicações com demandas específicas. Em Lime, cada agente possui espaços de tuplas próprios, que ele leva consigo a tiracolo, chamados ITS (interface tuple
space). Quando o agente se fixa em um host, seus ITSs são fundidos a um espaço de tuplas local e as tuplas passam a ficar visíveis para os demais agentes acoplados ao host. Ao deixar o host, o agente leva consigo os ITSs com as tuplas.
Ruple [Rogue Wave, 2001] é um espaço de tuplas voltado para a troca de documentos pela Internet. A grande inovação de Ruple é a definição de tupla, que não possui campos como uma tupla de Linda. As tuplas de Ruple são documentos em XML. No entanto, a recuperação das tuplas permanece sendo feita por conteúdo, usando consultas expressas na linguagem XQL. Outras características interessantes são: o protocolo SOAP para comunicação por rede, o uso de leasing para automanutenção e certificação X.509 para segurança.
Em resumo, o modelo de espaço de tuplas é um mecanismo com semântica de memória compartilhada que pode ser acessado concorrentemente por processos espalhados em um sistema distribuído. O modelo implementa um esquema de memória associativa. Duas propriedades do modelo de espaço de tuplas destacam-se: a simplicidade e o baixo acoplamento entre os processos. Juntas, elas dão ao modelo uma vantagem em termos de facilidade de desenvolvimento e manutenção das aplicações.
O primeiro espaço de tuplas recebeu o nome de Linda [Gelernter, 1985]. Ele trabalha em associação com diversas linguagens de programação, em especial, com as linguagens C e Fortran, as mais usadas em análise numérica e computação paralela. Não tardou, surgiram outros espaços de tuplas, quase sempre acrescentando alguma variante ao modelo básico implementado em Linda.
Lime (Linda in a Mobile Environment) [Picco et al, 1998] é um espaço de tuplas voltado para agentes e computação móvel. Esse é um nicho de aplicação propício para os espaços de tuplas. Lime mostra como o conceito básico de espaço de tuplas pode ser adaptado criativamente para aplicações com demandas específicas. Em Lime, cada agente possui espaços de tuplas próprios, que ele leva consigo a tiracolo, chamados ITS (interface tuple
space). Quando o agente se fixa em um host, seus ITSs são fundidos a um espaço de tuplas local e as tuplas passam a ficar visíveis para os demais agentes acoplados ao host. Ao deixar o host, o agente leva consigo os ITSs com as tuplas.
Ruple [Rogue Wave, 2001] é um espaço de tuplas voltado para a troca de documentos pela Internet. A grande inovação de Ruple é a definição de tupla, que não possui campos como uma tupla de Linda. As tuplas de Ruple são documentos em XML. No entanto, a recuperação das tuplas permanece sendo feita por conteúdo, usando consultas expressas na linguagem XQL. Outras características interessantes são: o protocolo SOAP para comunicação por rede, o uso de leasing para automanutenção e certificação X.509 para segurança.
Em resumo, o modelo de espaço de tuplas é um mecanismo com semântica de memória compartilhada que pode ser acessado concorrentemente por processos espalhados em um sistema distribuído. O modelo implementa um esquema de memória associativa. Duas propriedades do modelo de espaço de tuplas destacam-se: a simplicidade e o baixo acoplamento entre os processos. Juntas, elas dão ao modelo uma vantagem em termos de facilidade de desenvolvimento e manutenção das aplicações.
Nenhum comentário:
Postar um comentário