Virtual Appliances como Meio de Controlar Licenças  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

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?

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

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.


http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
rafagil
JavaGuru
[Avatar]

Membro desde: 01/12/2006 01:05:30
Mensagens: 204
Localização: São Bernardo do Campo - SP
Offline

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.

Sun Certified Java Programmer 5.0

Soluções inteligentes em TI: http://www.elgitech.com.br
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team