• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Modelo de negócio para uma aplicação PHP comercial modular

23 mensagens neste tópico

No meu pseudo-CMS que ando a fazer desde há uns meses (verdade seja dita, já não pego nele há bastantes) a ideia é ser uma aplicação modular. Ou seja, tenho a base da aplicação que será gratuita, open-source (provavelmente GPL) mas que não será nada de especial. No fundo é uma base que estou mais a desenvolver para mim, para os meus projectos e para os trabalhos que me pedem. Assim, tenho uma base para os backofficese não tenho de estar sempre a programar a mesma coisa, over and over...

Adiante porque isto é irrelevante...

A ideia do ser modular é que facilita muita coisa. Nomeadamente o desenvolvimento e cada cliente pode escolher aquilo que quer ter no seu backoffice. A minha dúvida é, qual será o melhor modelo de negócio para uma coisa deste género. A ideia seria vender separadamente cada módulo, obviamente. Mas a questão não está propriamente ai...

O que faço ao código dos módulos? Faço deles código proprietário? Como? Ofusco? Ou faço deles open-source? Mas o que impede aos clientes de irem ao meu site, sacar os módulos e usa-los sem me "encomendar" a mim o negócio? Vender suporte como muitos fazem por ai? Não me parece que isso renda alguma coisa para um simples projecto e para uma pessoa como eu...

É que o facto de o PHP ser interpretado e no fundo qualquer cliente que compre módulo X ou Y, vai ter acesso ao código. Qual a melhor forma de licenciar o código (e será que o devo fazer?) de tal forma que o cliente esteja a infringir uma lei se disponibilizar o código a terceiros ou até mesmo modifica-lo? Note-se que a ideia não é "proibir" todo o tipo de modificações. Só quero é salvaguardar a existência de problemas se o cliente modificar o código e estragar alguma coisa que não me diz respeito, visto o código funcionar antes de ser modificado. Ou seja, se há problemas, eu devo ser contacto e estes não podem modificar o código. Se conseguirem resolve-los óptimo, mas eu não me responsabilizo por modificações alheias. Percebem onde quero chegar com isto tudo? Porque este ponto da discussão pode ser bastante extenso...

O que têm a dizer sobre isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Apesar de eu ser pessoalmente contra software proprietário, dado o meio em que estás acho que não tens outra hipotese. A credibilidade das novas tecnologias em portugal é muito baixa pelo que o pessoal não arrisca pagar o que seja. Se usares uma licensa proprietária até ficam logo todos impressionados a pensar que é de qualidade superior e tal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para saberes se o código no cliente é alterado ou não, calculas um MD5 em cima da instalação (só os ficheiros que não mudem com o funcionamento normal da aplicação, claro) a guarda-lo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se usares uma licensa proprietária até ficam logo todos impressionados a pensar que é de qualidade superior e tal.

Mas essa é que é questão... Quais os procedimentos para fazer algo do género? E será que basta uma simples licença e deixo o código "à mostra"? Como é que se torna legal um contrato para este tipo de coisas? Porque tipo, não é por vender um pedaço de software que vou dar suporte ao mesmo para o resto da vida, como é que se define um contrato destes, explicitando ao cliente aquilo por que ele está a pagar, etc...

Para saberes se o código no cliente é alterado ou não, calculas um MD5 em cima da instalação (só os ficheiros que não mudem com o funcionamento normal da aplicação, claro) a guarda-lo.

Mas o que é que impede alguém de mudar também essa parte do código e remover esse check? O PHP hoje em dia está tão acessível a qualquer pessoa que não precisa de se ser um mestre para mudar umas coisas. Ainda por cima a código meu que eu tento fazer tudo o mais explicito possível comentando, quase, cada linha... Por isso é que falei na ofuscação...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas essa é que é questão... Quais os procedimentos para fazer algo do género? E será que basta uma simples licença e deixo o código "à mostra"? Como é que se torna legal um contrato para este tipo de coisas? Porque tipo, não é por vender um pedaço de software que vou dar suporte ao mesmo para o resto da vida, como é que se define um contrato destes, explicitando ao cliente aquilo por que ele está a pagar, etc...

Mas o que é que impede alguém de mudar também essa parte do código e remover esse check? O PHP hoje em dia está tão acessível a qualquer pessoa que não precisa de se ser um mestre para mudar umas coisas. Ainda por cima a código meu que eu tento fazer tudo o mais explicito possível comentando, quase, cada linha... Por isso é que falei na ofuscação...

Penso que sim, é só incluires a licensa. Só tens que ter o cuidado para que a licensa não contenha nada que não esteja dentro da lei. Podes pegar numa licensa de outro software que conheças e adapta-la. Já tenho visto licensas tipo de uma página.

Já a legalidade do negócio é outra discussão que não tem directamente a ver com a licensa. Tipo, se é um negócio que deve estar sujeito a impostos etc. Mas a lei do nosso país contempla negócios informais entre particulares em situações ocasionais, pelo que não precisas de andar com complicações nenhumas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu só queria salvaguardar certos problemas que possam advir de vender um produto... Imagina que eu vendo um tal módulo e defino que quem os compra tem direito a actualizações grátis ata à próxima versão maior não inclusive (1.x < 2.0, por exemplo). E uma certa funcionalidade eu decidi implementar apenas na versão 2.0 mas um determinado cliente pensava que ainda ia aparecer na versão 1.0, podendo então usufruir dela... Basta eu escrever no meu site e/ou licença isso das actualizações grátis até à versão 1.x e pronto? Não tenho que me preocupar com mais nada? Isto é só um exemplo de algo que me lembrei...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nazgulled, pensa bem antes de avançares com o teu CMS, já há imensos CMSs open source por ai, e até bastante bons, por isso tens de ver a real mais valia que o teu tem em relação a outros versus o tempo/custo que isso acarreta para ti em termos de desenvolvimento e manutenção da plataforma. A minha opinião é que, a menos que tenhas um conjunto de "features" que os outros CMSs não têm, não vale a pena o esforço... Fica o "alerta".

Quanto ao teu "modelo de negocio", a coisa é bastante simples: ou vendes os módulos e/ou serviços.

Quem ganha a vida com open source costuma ganhá-la à conta dos serviços, que passam por instalação, manutenção, costumização e suporte de aplicações e módulos open source.

Se prentendes vender os módulos, então porque há-de alguém escolher a tua plataforma CMS quando há por ai outras que têm imensos módulos open source? De novo a resposta está nas "features" que possas ter e que os outros não oferecem. Nesta solução, é bom notar que podes fazer isso com módulos de outros CMSs, como há muita gente que faz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O MD5 guarda-lo tu. Se fores chamado a intervir, começas por calcular um MD5 do código actual e comparar com o que guardaste; se não coincidirem, temos pena do cliente.

Não me pronunciei aceca do modelo de negócio em si porque tu sabes perfeitamente, e como já aqui disseram, que existem alguns CMS Open Source, e se decidiste ir para módulos proprietários é porque lá terás as tuas razões.

Mas a lei do nosso país contempla negócios informais entre particulares em situações ocasionais, pelo que não precisas de andar com complicações nenhumas.

O que queres dizer com isso exactamente? Que ficam isentos de impostos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nazgulled, pensa bem antes de avançares com o teu CMS, já há imensos CMSs open source por ai, e até bastante bons, por isso tens de ver a real mais valia que o teu tem em relação a outros versus o tempo/custo que isso acarreta para ti em termos de desenvolvimento e manutenção da plataforma. A minha opinião é que, a menos que tenhas um conjunto de "features" que os outros CMSs não têm, não vale a pena o esforço... Fica o "alerta".

O meu "CMS" é mais um "pseudo-CMS" que não pretende fazer concorrência a qualquer um dos que existe actualmente. E se algum dia tiver intenções de o fazer, vai para o fundo da lista de prioridades. Por outras palavras, a principal razão de desenvolvimento deste "CMS" não é, nem lá perto, para fazer concorrência a algum outro. E como Njay disse, eu tenho as minhas razões para o ter como proprietário.

Mas talvez a palavra "proprietária" não seja a mais indicada aqui (acho eu). Eu só quero vender um produto... E não importa minimamente se já existem outros open-source ou não. Isso é irrelevante para a minha questão.

O MD5 guarda-lo tu. Se fores chamado a intervir, começas por calcular um MD5 do código actual e comparar com o que guardaste; se não coincidirem, temos pena do cliente.

Já estou a perceber, é uma ideia interessante.  :)

Mas continuo com dúvidas na questão de proteger o código PHP. Não a parte do suporte porque a ideia do Njay parece boa e possivelmente infalível mas na parte que nada impede, a quem comprar os módulos, de redistribuir o código e terceiros usarem-no sem permissão

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estes bacanos, http://www.instinct.co.nz/, usam uma espécie de chave num servidor deles, para a versão "gold" do plug-in de e-commerce deles (100% PHP). Nunca fui ver como funciona, mas podes sempre tu dar uma olhada e depois explicar-me :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se eles guardam no servidor deles eu pressuponho que o script quando entra em execução, vá verificar ao servidor se o script está válido. Mas isso, como qualquer outra verificação, não está livre de alterações no código...

Tipo, vejamos o vBulletin ou IP.Board. São dois scripts para fóruns que servem bem como exemplo. Ambos são comerciais e com muitos clientes por ai fora. Como é que eles fazem? Ao certo não sei, mas sei que têm algum tipo de check. Isto porque existem versões crackados do programa em que se reparares o nome diz "nulled", o que significa que o tal check foi removido. Pudera, é PHP, todo comentado, não custa nada perder um tempinho a crackar.

Agora, este tipo de empresas, quer detectem uma versão crackada ou não crackada mas ilegal, têm posses para agir contra quem está a usar a aplicação ilegalmente. Mas o que é que um individuo como eu vai fazer a respeito disso? Vou meter processos judiciais contra outros indivíduos? Onde é que eu tenho posses para tal coisa?

Isso é que me deixa sem saber exactamente o que fazer para proteger... Mas entendo que milagres também não existem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É por isso que se calhar te safas melhor com Open Source e a vender serviços :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vender suporte? Instalações? Configurações? Sim, isso também faria parte da venda do produto (ou não, dependeria do cliente), mas... vender só esse tipo de serviços e deixar o software open-source? Neste momento, ponho essa hipótese completamente de parte.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes sempre usar o bcompiler.

IX. Compilador de PHP bytecode

Introdução

Atenção

Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.

Bcompiler foi escrito por várias razões: Para codificar script em uma aplicação PHP proprietária

Para codificar algumas classes e/ou funções em uma aplicação PHP proprietária

Para disponibilizar a produção de aplicações php-gtk que poderiam ser usadas em clientes desktops, sem precisa do php.exe. 

Para estudar a possibilidade de fazer um conversor de PHP para C

O primeiro desses objetivos é alcançado usando as funções bcompiler_write_header(), bcompiler_write_file() e bcompiler_write_footer() Os arquivos bytecode podem ser escritos ou como não-compactados ou planos. Para usar o bytecode gerado, você pode simplesmente incluí-lo com instruções include ou require.

O segundo desses objetivos é alcançado usando as funções bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), e bcompiler_load(). Os arquivos bytecode podem ser escritos ou como não-compactados ou planos. O bcompiler_load() lê um arquivo compactador bzip que contem bytecodes, o que tende a ser 1/3 do tamanho original do arquivo.

Para criar arquivos do tipo EXE, bcompiler tem que ser usado com um arquivo de SAPI modificado ou uma versão do PHP que tenha sido compilada como uma biblioteca compartilhada. Nesse cenário, bcompiler ler o bytecode compactador do fim do arquivo executável.

bcompiler pode aumentar performance em volta de 30% quando usado com bytecodes não-compactados apenas. Mas lembre-se que bytecode não-compactado pode ser até 5 vezes maior que o código-fonte original. Usar compactação de bytecode pode evitar gasto de espaço, mas descompactar requer muito mais tempo do que avaliar um fonte. bcompiler também não faz nenhuma otimização de bytecode, isso pode ser acrescentado no futuro...

Em termos de proteção de código, é seguro dizer que é seria impossível recriar o código-fonte exato do qual ele foi criado, e sem os comentários acompanhando o código-font. Seria efetivamente inútil usar o bcompiler para recriar ou modificar uma classe. No entanto, é possível recuperar dados de um arquivo bytecode compactado - então não ponha suas senhas pessoais ou coisa do tipo nele.

O único problema é que o servidor teria de ter a extenção instalada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E isso é um problema grave por isso fica fora de questão uma solução dessas.

Ontem mostraram-me um que faz algo parecido e que não precisa de extensões instaladas, era usado através de FastCGI. Mas isso também é uma extensão não é? Pode já vir com o PHP mas não deve vir activa por omissão se calhar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É isto:

http://www.roadsend.com/home/index.php?pageID=compiler

A ideia parece interessante mas eu vejo dois problemas:

1) A que já mencionei... Correm em FastCGI e eu não se isso vem instalado e activo por omissão em todas as instalações do PHP. Se não vier, o problema é tão grande como usar outro "compilador" qualquer. Pois sem a extensão activa, não serve de nada...

2) No fórum deles têm um guia que explica como "compilar" o phpBB (v2) com o software deles e dizem ainda que funciona também com o phpMyAdmin. Ora, se funciona com duas aplicações como estas, deve funcionar com a minha... Isto é o que nós pensamos mas um dos passos para usar o Roadsend PHP com o phpBB é que tens de executar a instalação do phpBB antes de o compilares. Para quê? Para que as tabelas na base de dados e o ficheiro "settings.php" sejam criados. Se este tipo de coisas não funciona com este "compilador", deve haver outras que também não funcionam e não sei se será uma boa opção...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nazgulled, se a ideia é ter um sistema proprietário, talvez devesses optar por outra tecnologia onde alguns desses problemas deixassem de ser problemas.

Por exemplo, se recorreres a um servidor aplicacional Java deixas de ter esse tipo de problemas, mesmo com um java decompiler (os bons são bastante caros) podes sempre passar por um "java ofuscator", o trabalho que dá para crackar vai fazer com que optem por outra solução mais fácil, por exemplo escrita em PHP...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não Nazgulled, FastCGI é uma funcionalidade do httpd (o essencial que precisas de saber é que o Apache traz isso activo por pré-definição). O PHP pode ser usado no Apache de duas maneiras: como módulo do Apache ou através da FastCGI. Não estou muito dentro do assunto, mas diz-se que executar o PHP através da FastCGI é mais seguro.

http://www.fastcgi.com/drupal/

http://www.fastcgi.com/drupal/node/6?q=node/15

http://arthurfurlan.org/blog/2007/12/11/configurando-php5-sobre-fastcgi-no-apache/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nazgulled, se a ideia é ter um sistema proprietário, talvez devesses optar por outra tecnologia onde alguns desses problemas deixassem de ser problemas.

Por exemplo, se recorreres a um servidor aplicacional Java deixas de ter esse tipo de problemas, mesmo com um java decompiler (os bons são bastante caros) podes sempre passar por um "java ofuscator", o trabalho que dá para crackar vai fazer com que optem por outra solução mais fácil, por exemplo escrita em PHP...

Pois, mas eu não quero evitar os problemas mudando de linguagem. Quero resolve-los... Além do mais, odeio Java :D. E não estou para aprender outra linguagem. Gosto de PHP, sempre gostei, não vejo nada de errado com a linguagem, não há razão para mudar. :D

Não Nazgulled, FastCGI é uma funcionalidade do httpd (o essencial que precisas de saber é que o Apache traz isso activo por pré-definição). O PHP pode ser usado no Apache de duas maneiras: como módulo do Apache ou através da FastCGI. Não estou muito dentro do assunto, mas diz-se que executar o PHP através da FastCGI é mais seguro.

Acho que o problema mantém-se...

Se o módulo não estiver activo no Apache (por exemplo, é o mais comum) como é? Não vai funcionar... Não sei se por norma todos o trazem activo por omissão ou não, talvez seja algo a investigar e fazer tipo uma sondagem assim pelos hosts Portugueses para já. De qualquer forma, o outro problema que falei no Roadsend PHP acho que é algo que se deve ter em conta. Claro que isto foi só o que eu li relativamente ao PHP, quem o quiser usar, convém saber pormenores por quê que se tem de fazer isso e se existem outro tipo de incompatibilidades do género. Acho que é algo importante visto a nossa aplicação não correr 100% em condições como correria na forma tradicional.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que estás a criar problemas onde não existem em relação ao FastCGI. Isto é, a forma mais usada de usar PHP no Apache é através da API do Apache e não da FastCGI, mas podes mudar isso com o htaccess salvo erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que o FastCGI não vem predefinido no Apache, quando estive a investigar o CGI li qualquer coisa em relação a isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que estás a criar problemas onde não existem em relação ao FastCGI.

Gostava de saber a onde...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora