Virtual Appliances como Meio de Controlar Licenças

2 respostas
pcalcado

Aproveitando que este tópico foi desenterrado das cinzas, queria levantar umas idéias aqui. Estava discutindo com o peleteiro sobre modelos de ofuscação como os do Mingle para linguagens interpretadas/facilmente descompilaveis (Ruby, Java, C#, Lisp, Python…) e na conversa surgiu a idéia de termos algo como uma imagem de VMWare ou outro esquema de virtualização que dificultasse o acess ao fonte. Pode ser que a VM não tenha modo interativo, shell e coisas do tipo, por exemplo. Assim quem quiser manter código fechado teria um cadim mais de confiança e você ainda poderia disponibilizar seu produto via download.

Não tenho idéia de como isso seria feito num SO mas acho que pode dar certo, o que vocês acham?

2 Respostas

louds

Deixa ver se eu entendi. A idéia é basicamente ter um binário em C que embute uma máquina virtual que simplesmente disponibiliza um par ip:porta para os usuários finais.

É uma solução interessante, porem:

-Tua aplicação vai passar a usar uns 100 megas de ram a mais a troco de quase nada.
-O binário ficaria zilhões de vezes maior para download via internet - em vez de 1 WAR, vai ser 1 SO inteiro + máquina virtual.
-Troubleshooting vai ser muito mais complicado já que a aplicação vai ser muito menos acessível.
-Espaço em disco não vai ser uma coisa simples de resolver. Mesmo usando LVM você teria que disponibilizar alguma ferramenta administrativa para adicionar novos discos a imagem.
-Existem drivers linux que montam imagens de VMWare ou Xen.
-Recovery não é simples já que é uma caixa preta.

Porém tem a vantagem de ser um sistema completamente isolado. Então toneladas de problemas devido ao ambiente do usuário e ambiente não existiriam.

Sinceramente acho que uma solução de AOT é o melhor. Distribuir binários com código x86 que são infinitamente mais difícil de descompilar. A performance, principalmente para Java, seria pior, mas resolveria o problema de uma vez por todas.

Isso é um recurso que a comunidade Java deseja desesperadamente a quase uma década. Minha sugestão é contruir uma prova de conceito com o OpenJDK e depois pressionar pela padronização através de uma jsr.

rafagil

Também sou a favor de uma Solução de AOT. Mesmo porque, “burlar” uma maquina virtual não seria uma tarefa muito difícil.

Criado 16 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 2
Participantes 3