-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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.
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.
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
- 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.
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.