Orientação sobre cliente servidor

09/02/2013

1

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.
Responder

Posts

09/02/2013

Joel Rodrigues

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.
Responder

09/02/2013

Flavio Silva

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.
Responder

10/02/2013

Joel Rodrigues

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.
Responder

10/02/2013

Marco Salles

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

10/02/2013

Flavio Silva

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ê!
Responder

10/02/2013

Marco Salles

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
Responder

11/02/2013

Joel Rodrigues

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

11/02/2013

Flavio Silva

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.
Responder

12/02/2013

Marco Salles

Sim ...
Responder

13/02/2013

Joel Rodrigues

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.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira