Orientação sobre cliente servidor

Delphi

09/02/2013

Boa noite,

Tenho uma aplicação para desenvolver para um cliente onde ele possui um servidor e varios terminais espalhados pela loja dele. a duvida que surgiu antes de iniciar o projeto é a seguinte:

1 - Quem deve ser desenvolvido primeiro e servir de base para o outro, o CLIENTE ou SERVIDOR?
2 - O sistema em ambos são a mesma coisa, ou seja, o mesmo sistema que abrirei no servidor é o mesmo nos terminais, ja que o mesmo não é modular?
3 - Quando fizer manutenção deve ser feito no cliente ou no servidor, para depois ser atualizado?

4 - Posso desenvolver todos o sistema normalmente, como se fosse apenas para um computador e não uma rede, e depois de pronto instalar ele no servidor e em todos os terminais e por fim direcionar os terminais para acessar o banco no servidor?

Desculpe os varios questionamentos, mas é a primeira experiencia com cliente servidor e nesta circunstancia nao sei por onde começar, se os dois sistemas (cliente e servidor) são os mesmos, ou se são programas diferentes, e como disse não sei qual deverá ser desenvolvido primeiro?

Agradeço a ajuda de quem estiver disposto a contribuir com um pouco de seu conhecimento para acrescentar aos meus.

Obrigado.
Flavio Silva

Flavio Silva

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

09/02/2013

Olá, amigo. Tudo em paz?
Vou tentar responder na ordem.
1 - Os clientes geralmente precisam acessar o banco que fica no servidor, certo? Então o servidor deve estar pronto quando os clientes forem instalado para acessá-lo. Porém, em termos de aplicação, vai depender (veja a próxima resposta).

2 - Se tanto no cliente quanto no servidor será executada a mesma aplicação, então é um único projeto, beleza? Você pode colocar o executável no servidor e cada cliente acessar esse executável através de um atalho.

3 - Depende da arquitetura que você utilizar. Se fizer como no item anterior, onde o executável fica só no servidor, então basta atualizar este, assim todos os clientes já estarão apontando para ele automaticamente. Se cada computador possuir um executável, então obviamente precisa atualizar todos.

4 - Acho que isso já foi respondido nos itens anteriores.

Caso persistam as dúvidas ou surjam novas, é só avisar.

Um abraço e boa sorte.
GOSTEI 0
Flavio Silva

Flavio Silva

09/02/2013

Olá, amigo. Tudo em paz?
Vou tentar responder na ordem.
1 - Os clientes geralmente precisam acessar o banco que fica no servidor, certo? Então o servidor deve estar pronto quando os clientes forem instalado para acessá-lo. Porém, em termos de aplicação, vai depender (veja a próxima resposta).

2 - Se tanto no cliente quanto no servidor será executada a mesma aplicação, então é um único projeto, beleza? Você pode colocar o executável no servidor e cada cliente acessar esse executável através de um atalho.

3 - Depende da arquitetura que você utilizar. Se fizer como no item anterior, onde o executável fica só no servidor, então basta atualizar este, assim todos os clientes já estarão apontando para ele automaticamente. Se cada computador possuir um executável, então obviamente precisa atualizar todos.

4 - Acho que isso já foi respondido nos itens anteriores.

Caso persistam as dúvidas ou surjam novas, é só avisar.

Um abraço e boa sorte.


Com relação ao Item 2.
Se eu desenvolver neste moldes, colocando a aplicação no servidor e colocando um atalho nos terminais (no caso do contratante, são 4 terminais com a possibilidade e inclusao de mais 2) com todos os terminais trabalhando simultaneamente, não deixaria o sistema pesado ou lento?
A pretenção inicial seria usar BD Firebird ou SQL SERVER, mais propicio a usar no momento o FIREBIRD.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

09/02/2013

Aí é mais pessoal, considerando que uma máquina vai ser servidora, considera-se que ela deve possuir configurações de hardware razoáveis (claro, aqui também entra a questão da rede, pois muitas informações estarão trafegando). Mas essa é apenas uma forma de fazer. Você pode optar por manter um .EXE em cada máquina, como um programa instalado. E apenas acessar o banco no servidor.
Com relação ao banco, não sei o que vai pesar na sua decisão no momento, mas eu indicaria SQL Server, pois como todos sabemos, é mais robusto e possui melhor escalabilidade (aumento de máquinas clientes acessando), além disso, as ferramentas de gerenciamento são "bem" melhores (isso é pessoal).
Abraço.
GOSTEI 0
Marco Salles

Marco Salles

09/02/2013

Ja que o projeto esta se inicializando faça-o em DataSnap
GOSTEI 0
Flavio Silva

Flavio Silva

09/02/2013

Ja que o projeto esta se inicializando faça-o em DataSnap


Marcos Antonio / Joel,

Muitos interessante as dicas de voces. Porem, analisando as anotações que fiz quando estive reunido com o cliente na quinta, vi algo que havia passado despercebido quando resolvi escrever este post.A empresa deve é uma Oficina de Manutenção de Carro, a divisão dele é a seguinte: 1 maquina na recepção, 1 no Caixa, 1 no setor de Peças e outra na Administração. No entanto o computador que esta na ADM, é o "servidor da empresa", mas ao mesmo tempo é o computador usado pelo administrador da empresa para trabalhar no dia-a-dia. Acredito que o sistema que ele usa momentaneamente, esta instalando nele e cada maquina possui em .EXE que o acessa atraves da rede, como sugeriu JOEL. De acordo com a conversa do cliente, ele nao tem pretenção de deixa este PC como Servidor exclusivo.

Então, se Eu desenvolver com DATASNAP como sugeriu Marcos Antonio, como farei melhor uso dele? Dá para instalar o Servidor nesta maquina e tambem o cliente, ja que o Administrador usa a mesma maquina servidor como estação simultaneamente?

Ou seria interessante desenvolver uma aplicação normal com o Database junto da Aplicação e depois disponibilizar um .EXE em cada estação?

Este tipo de situação, muitas vezes atrapalha o desenvolvimento do nosso trabalho, mas emfim, faz parte da profissão fazer o quê nê!
GOSTEI 0
Marco Salles

Marco Salles

09/02/2013

Conceitualmente um arquitetura n-tier começa na divisão Lógica das Camadas e não Física . Vc pode ter um sistema DataSnap eum um computador Desktop (desde que as aja divisão Lógica das Camadas...)

Não vejo problema nenhum o Computador dele servir de servidor de Aplicação , Servidor de banco de Dados e ter um Aplicativo
Cliente

[]sds
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

09/02/2013

Também não vejo problemas em o servidor ser utilizado para outros fins, como executar uma aplicação.
GOSTEI 0
Flavio Silva

Flavio Silva

09/02/2013

Também não vejo problemas em o servidor ser utilizado para outros fins, como executar uma aplicação.


Joel / Marcos

O Servidor de Aplicação poderia ser criado com um menu para algumas funções como por exemplo: Realizar backup do Banco de dados, cadastrar usuarios que usarão o sistema, e definir niveis de permissão.
GOSTEI 0
Marco Salles

Marco Salles

09/02/2013

Sim ...
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

09/02/2013

Perfeitamente, pode sim. Mas aí acho que o sistema estaria dividido em módulos, não?
OU você faria o controle desses menus utilizando um controle de usuários.
GOSTEI 0
POSTAR