[RESOLVIDO] Ajuda no projeto desktop+web+mobile multiplataforma!

Galera estou precisando de ajuda para começar um projeto multiplataforma para empresa aonde trabalho! hoje eles tem sistema que funciona com php uma versão online e local, vamos montar nova versão multiplataforma em java estou com duvida como posso começar. vou explicar qual é funcionamento.

Então teremos clientes tanto web, mobile e desktop e precisamos comunicar versão web com desktop assim vai e também venderemos um pacote nuvem para os clientes que tem versão desktop poder comunicar com a versão web e poder sincronizar os dados.

fiz projetinho como teria que funcionar veja abaixo!

se aguem poder me ajudar como posso iniciar este projeto já agradeço desde já!

Por que quer mudar do PHP?
Eu optaria por utilizar apenas uma linguagem. Ou Java para tudo ou PHP para tudo.
Mobile, drsmachado? JQuery tem um plugin mobile excelente.
Web? JSF 2 ou Struts 2 ou algum outro framework.
E desktop? Esquece, faz tudo web. Todo computador/tablet/smartphone possui browser… Então, não perca tempo com desktop.

[quote=drsmachado]Por que quer mudar do PHP?
Eu optaria por utilizar apenas uma linguagem. Ou Java para tudo ou PHP para tudo.
Mobile, drsmachado? JQuery tem um plugin mobile excelente.
Web? JSF 2 ou Struts 2 ou algum outro framework.
E desktop? Esquece, faz tudo web. Todo computador/tablet/smartphone possui browser… Então, não perca tempo com desktop.[/quote]

Problema que empresa aonde trabalho tem cliente ainda que usa versão desktop porque não tem internet no computador, se não ja tinha feito so para versão web, mais patrão que manda eles querem aproveitar alguns cliente que tenha versão desktop força ele comprar pacote NUVEM(que é sincronização de dados com web + desktop + mobile virse e versa) com isto eles ganha grana com este pacote caso cliente não adquirir pacote nuvem ele só terá versão desktop entendeu!

na verdade so vamos ter uma versão desktop mais precisamos da sincronização com dados web + mobile se cliente tiver pacote NUVEM!

obrigado

Mantém apenas uma aplicação em PHP, com suporte a mobile. ( com JQuery como o drsmachado comentou ), isso facilitaria muito a manutenção.
Para o cliente, poderia ser vendido 3 serviços distintos, web interna, web externa e mobile;
Para web interna, poderiam ser analisados 2 possibilidades, acesso a um server externo em um range de ip já cadastrado, ou instalar em um server local uma cópia a aplicação.
Mas uma coisa que certamente vocês tem que fugir é a idéia de possuir vários do mesmo (versão web, versão desk, versão mobile).

[quote=alcionj]Mantém apenas uma aplicação em PHP, com suporte a mobile. ( com JQuery como o drsmachado comentou ), isso facilitaria muito a manutenção.
Para o cliente, poderia ser vendido 3 serviços distintos, web interna, web externa e mobile;
Para web interna, poderiam ser analisados 2 possibilidades, acesso a um server externo em um range de ip já cadastrado, ou instalar em um server local uma cópia a aplicação.
Mas uma coisa que certamente vocês tem que fugir é a idéia de possuir vários do mesmo (versão web, versão desk, versão mobile).[/quote]

Sim,
então hoje nosso sistema funciona desta forma que vocês estão falando temos uma versão web em php e outro local em php. problema que toda vez precisamos instalar no cliente local o apache e mysql isto fica complicado estamos querendo acabar com isto, ideia so ter uma versão desktop que sincroniza e rode tanto na web + mobile que mudamos somente as camadas.

obrigado!!

[quote=jow_w][quote=alcionj]Mantém apenas uma aplicação em PHP, com suporte a mobile. ( com JQuery como o drsmachado comentou ), isso facilitaria muito a manutenção.
Para o cliente, poderia ser vendido 3 serviços distintos, web interna, web externa e mobile;
Para web interna, poderiam ser analisados 2 possibilidades, acesso a um server externo em um range de ip já cadastrado, ou instalar em um server local uma cópia a aplicação.
Mas uma coisa que certamente vocês tem que fugir é a idéia de possuir vários do mesmo (versão web, versão desk, versão mobile).[/quote]

Sim,
então hoje nosso sistema funciona desta forma que vocês estão falando temos uma versão web em php e outro local em php. problema que toda vez precisamos instalar no cliente local o apache e mysql isto fica complicado estamos querendo acabar com isto, ideia so ter uma versão desktop que sincroniza e rode tanto na web + mobile que mudamos somente as camadas.

obrigado!![/quote]
Camarada, você está vendo as coisas por uma perspectiva pequena.
Se o sistema é PHP, faça 100% web. Deixe no cliente apenas o browser.
Já está querendo vender uma solução cloud, então por que complicar?

[quote=drsmachado][quote=jow_w][quote=alcionj]Mantém apenas uma aplicação em PHP, com suporte a mobile. ( com JQuery como o drsmachado comentou ), isso facilitaria muito a manutenção.
Para o cliente, poderia ser vendido 3 serviços distintos, web interna, web externa e mobile;
Para web interna, poderiam ser analisados 2 possibilidades, acesso a um server externo em um range de ip já cadastrado, ou instalar em um server local uma cópia a aplicação.
Mas uma coisa que certamente vocês tem que fugir é a idéia de possuir vários do mesmo (versão web, versão desk, versão mobile).[/quote]

Sim,
então hoje nosso sistema funciona desta forma que vocês estão falando temos uma versão web em php e outro local em php. problema que toda vez precisamos instalar no cliente local o apache e mysql isto fica complicado estamos querendo acabar com isto, ideia so ter uma versão desktop que sincroniza e rode tanto na web + mobile que mudamos somente as camadas.

obrigado!![/quote]
Camarada, você está vendo as coisas por uma perspectiva pequena.
Se o sistema é PHP, faça 100% web. Deixe no cliente apenas o browser.
Já está querendo vender uma solução cloud, então por que complicar?[/quote]

problema que nem todos os clientes usa internet tem hora que estão off-line, teria que ter uma versão instalada no servidor local deles(apache e mysql) e quando eles conectar internet teremos que sincronizar dados com versão web entendeu?

O problema, na verdade, é que você não deu as informações completas referentes ao cenário que possui.
Neste caso, não há muito o que fazer. Crie uma aplicação desktop com banco de dados portátil (SQLite ou H2) e, quando online, sincronize-a com a base remota.

[quote=drsmachado]O problema, na verdade, é que você não deu as informações completas referentes ao cenário que possui.
Neste caso, não há muito o que fazer. Crie uma aplicação desktop com banco de dados portátil (SQLite ou H2) e, quando online, sincronize-a com a base remota.[/quote]

drsmachado, Esta é nossa ideia desta forma que você citou!

duvida que tenho como posso usar java se compensa. qual framework posso usar. (porque não queremos usar mais php por causa que precisa ficar instalando apache e mysql no cliente local e também eles não rode no android etc…).

Cara, aqui onde eu trabalho usamos java web.
A logica é o seguinte, sendo o mesmo Banco de dados para compartilhar as informações, e sendo a mesma linguagem ex: java, todos os seus Manager beans estariam feitos já, aqui na empresa estamos com uma versão Java Web e agora estou pegando os mesmo beans e adaptando ele para a versão Mobile usando o PrimeFaces mobile. Então se você faz tudo em java os beans ja estão feitos e se usar o mesmo banco as informações ja estarão lá, e so adaptar e fazer a interface para o usuario, pelo menos é assim que eu to fazendo.

[quote=alextr]Cara, aqui onde eu trabalho usamos java web.
A logica é o seguinte, sendo o mesmo Banco de dados para compartilhar as informações, e sendo a mesma linguagem ex: java, todos os seus Manager beans estariam feitos já, aqui na empresa estamos com uma versão Java Web e agora estou pegando os mesmo beans e adaptando ele para a versão Mobile usando o PrimeFaces mobile. Então se você faz tudo em java os beans ja estão feitos e se usar o mesmo banco as informações ja estarão lá, e so adaptar e fazer a interface para o usuario, pelo menos é assim que eu to fazendo.[/quote]

vocês vão sincronizar os dados com versão web!

De que forma você fala de sincronizar dados?

vocês tem versão desktop também ou somente web e mobile?

Sim, mais não tem diferença, java web, java mobile, android, iphone, java desktop, não tem diferença se todos usarem os mesmo banco de dados, pois se uma alterar algo todos irem ver pois estão no mesmo banco de dado.

A menos que…
Na versão desktop você tenha somente um banco para aquele cliente, ai eu te sugiro 2 coisas, ou você faz a versão desktop se comunicar com o banco remotamente, ou e menos viável fazer uma comunicação entre bancos(acho besteira essa ultima opção), então é só ligar o java com a versão desktop remotamente no banco de dados(Vai precisar de internet do mesmo jeito).

[quote=alextr]Sim, mais não tem diferença, java web, java mobile, android, iphone, java desktop, não tem diferença se todos usarem os mesmo banco de dados, pois se uma alterar algo todos irem ver pois estão no mesmo banco de dado.

A menos que…
Na versão desktop você tenha somente um banco para aquele cliente, ai eu te sugiro 2 coisas, ou você faz a versão desktop se comunicar com o banco remotamente, ou e menos viável fazer uma comunicação entre bancos(acho besteira essa ultima opção), então é só ligar o java com a versão desktop remotamente no banco de dados(Vai precisar de internet do mesmo jeito).[/quote]

sim!

minha duvida é seguinte se eu fizer este sistema para desktop e depois criar versão web e mobile precisaria duplicar as classes ou só compilar para cada plataforma?

abraço!

Não, não, com minha experiência(não é muita) mais não é necessário criar todas as classes, os métodos de novo não, unica coisa que você vai ter que fazer é refazer as telas, pois de um para outro tem algumas coisas diferentes, e talvez você vai ter que adaptar alguns códigos igual eu agora, pois algumas versão talvez não aceite algumas partes de algum código.
Por exemplo eu com Spring, na versão mobile esta dando um pouco de dor de cabeça e não sei porque, mas… enfim acho que não é necessário refazer os códigos.

[quote=alextr]Não, não, com minha experiência(não é muita) mais não é necessário criar todas as classes, os métodos de novo não, unica coisa que você vai ter que fazer é refazer as telas, pois de um para outro tem algumas coisas diferentes, e talvez você vai ter que adaptar alguns códigos igual eu agora, pois algumas versão talvez não aceite algumas partes de algum código.
Por exemplo eu com Spring, na versão mobile esta dando um pouco de dor de cabeça e não sei porque, mas… enfim acho que não é necessário refazer os códigos.[/quote]

Blz alextr, deu para abrir as ideias aqui… kkk

você está usando algum famework para versão web e desktop?

o que você me aconselharia fazer continuar com php ou mudar nova versão do sistema para java. pensando que vou ter 3 camadas web+desktop+mobile!

abraço!

Então, estou usando o Hibernate com o glassfish aqui, agora PHP continua ou java, cara por mim depende muito.

Alguma perguntas que eu faria:

Qual o tamanho desse sistema? a complexidade dele?

[quote=alextr]Então, estou usando o Hibernate com o glassfish aqui, agora PHP continua ou java, cara por mim depende muito.

Alguma perguntas que eu faria:

Qual o tamanho desse sistema? a complexidade dele?

[/quote]

Então sistema bem grande para academia com avaliação, prescrição, administração financeira mais pra frente terei que criar modulo para fisioterapia.

hoje sistema ta funcionando com (php e mysql para versão web e local) e só tem os modulos avaliação, prescrição! vamos fazer nova versão com os outros novos modulos citado acima!

Estou acompanhando este tópico e verifiquei que falta um pouco de analise no contexto do problema, recomendo fazer uma reavaliação dos requisitos para o projeto, casos de uso e arquitetura de software;
Se está confuso para explicar o contexto do problema, imagine desenvolver e prestar manutenção no mesmo?
Para formalização da analise, recomendo o RUP;