Skip to content
Bruno Silvestre edited this page Aug 27, 2014 · 2 revisions

ALua: Programação Paralela e Distribuída em Lua

O projeto ALua implementa um mecanismo para programação paralela e distribuída na linguagem Lua, elaborado com o objetivo de avaliar a flexibilidade obtida pela combinação do paradigma de orientação a eventos com uma linguagem de programação interpretada. Uma aplicação ALua é composta por um conjunto de processos que trocam mensagens entre si. A cada processo é associado um identificador único, e as mensagens são códigos Lua a serem executados pelo processo receptor.

Esta capacidade de se mover código de um processo até outro implementa a idéia de weak code mobility, um conceito cuja importância tem aumentado nos últimos anos na área de sistemas distribuídos. Ao possibilitar que uma aplicação seja capaz de redefinir a si mesma enquanto mantém um esqueleto estático, este conceito agrega flexibilidade à programação paralela e distribuída, trazendo várias possibilidades de adaptação e reconfiguração dinâmica de aplicações. Um bom exemplo são estruturas de controle, tais como balanceamento de carga, detecção de término e algoritmos de roteamento, ou até estratégias de pesquisa em problemas de otimização, que então teriam a capacidade de serem dinamicamente adaptadas de acordo com resultados parciais ou condições do ambiente de execução.

Um importante diferencial é o fato de aplicações ALua poderem ser compostas por partes escritas em mais de uma linguagem, como por exemplo C e Lua. O uso de ALua como uma linguagem de configuração associada a um núcleo estático de processamento permitiu obter resultados bastante satisfatórios. O que se pôde perceber através dos casos estudados é que nos contextos onde ALua encontra suas aplicações, a diferença de desempenho devida ao uso de uma linguagem interpretada é superada pela flexibilidade ganha.

Licença

ALua é software livre, e pode ser utilizado tanto para fins acadêmicos quanto comerciais sem absolutamente custo algum, uma vez respeitadas as restrições de sua licença.

Documentação

A documentação existente se encontra dividida por tópicos. Segue a listagem dos mesmos, com ponteiros para as respectivas áreas.

  • Uma breve introdução
    • O sistema ALua
    • Modos de comunicação entre processos
    • Canais de comunicação
    • Temporizadores
  • Como instalar o ALua 6.0
  • A API do ALua 6.0
  • A API para canais TCP

Referências

  • Alésio Leoni Pfeifer, Cristina Ururahy, Noemi Rodriguez, Roberto Ierusalimschy. Event-Driven Programming for Distributed Multimedia Applications. Simpósio Brasileiro de Redes de Computadores (SBRC'02). Buzios, Rio de Janeiro, Brasil, Maio 2002.
  • Cristina Ururahy, Noemi Rodriguez, Roberto Ierusalimschy. ALua: Flexibility for Parallel Programming. Computer Languages Journal, Elsevier Science. December 2002.
  • Cristina Ururahy, Noemi Rodriguez. ALua: An Event-Driven Communication Mechanism for Parallel and Distributed Programming. Proc. ISCA 12th International Conference on Parallel and Distributed Computing Systems (PDCS'99). Fort Lauderdale, USA, August 1999.
  • Cristina Ururahy. Agentes Lua: Um Mecanismo de Comunicação em Lua. Dissertação de Mestrado, PUC-Rio, Rio de Janeiro, Brasil, Setembro 1998.

Contato

Os desenvolvedores do ALua podem ser contactados através do e-mail alua at inf.puc-rio.br. Caso sua dúvida não se encontre respondida, não hesite em entrar em contato. Sugestões, questões, e comentários em geral são bem-vindos.