Início > Desenvolvimento > Apresentando: HaavokIPC

Apresentando: HaavokIPC

Então você pega um projeto de sistema feito em PHP 4 (um dos ~7% de sites que ainda usam essa versão) e precisa usar algum componente que só funciona no PHP 5. Você pensou em um web service local em uma segunda instância do Apache rodando PHP 5, mas dadas as características do ambiente onde a aplicação roda e da dificuldade de fazer o deploy do segundo servidor, você foi proibido pelo chefe de fazer isso. Você pode também executar código entre diferentes versões de PHP ou mesmo na mesma versão, mantendo uma parte da sua aplicação em uma sandbox.

Para isso há várias soluções, dependendo dos requisitos. O HaavokIPC dá conta destes: chamadas síncronas a funções ou métodos de objetos/classes; uso dos dados retornados através de callbacks; uso em parte da aplicação que não exige alta performance. Ele não usa servidores ou conexões, ele executa o binário do PHP e se comunica com ele através de um arquivo serializado ou persistência. Os objetos responsáveis pela persistência e serialização são plugáveis e novos objetos podem ser desenvolvidos sem perda de tempo, apenas respeitando a interface. Por enquanto estão disponíveis os seguintes objetos de persistência, chamados de Drivers: File, Memcache e Shm, que usam, respectivamente, um arquivo, um servidor do memcache ou shared memory de ambientes *nix. Para a serialização, estão disponívels os Serializers Default, que usa as funções serialize e unserialize nativas do PHP e Msgpack, que usa a extensão msgpack.

Ele foi desenvolvido para ser compatível com boa parte das versões de PHP entre 4 e 5.

A documentação ainda não está madura e há muito a se fazer no código em termos de performance e arquitetura, como todo bom projeto experimental.

O código está disponível no GitHub -> HaavokIPC/PHP

Update 25/11/2011
Estou portando o HaavokIPC para Ruby e isso me obrigou a fazer mudanças na arquitetura, a fim de tornar a configuração e a conversa entre front end e back end mais fácil, seja de PHP para PHP, PHP para Ruby ou de Ruby para PHP. Criei um novo repositório para este port, disponível em HaavokIPC/Ruby. Mais pra frente espero portá-lo para outras linguagens.

Update 30/11/2011
O desenvolvimento do HaavokIPC em Ruby está congelado enquanto trabalho no refactoring da versão em PHP, com alterações mais profundas do que simplesmente tornar sua configuração mais flexível.

Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: