Fórum Questôes sobre Multi-Camada, não acho de jeito nenhum... #294051

01/09/2005

0

Olá amigos, tenhos algumas dúvidas, que até o momento não consegui achar as respostas, seguem elas:

1- Qual o melhor jeito de desenvolver o servidor, DLL ou Aplicativo? Qual é o melhor?

2- Existe alguma atualização nos componentes? No scktsrvr.exe ?

3- Realmente é um bom negócio desenvovler em 3 camadas? Existiria outra maneira de conexao rapida (rede local, e interne) que nao fosse DataSnap?


Desde já agradeço a todos


[]s


Titanius

Titanius

Responder

Posts

01/09/2005

Ipc$

1- Qual o melhor jeito de desenvolver o servidor, DLL ou Aplicativo? Qual é o melhor?
Bom, normalmente um servidor de Banco de Dados é um .exe
2- Existe alguma atualização nos componentes? No scktsrvr.exe ?
Não sei te responder pq utilizo TServerSocket e TClientSocket
3- Realmente é um bom negócio desenvovler em 3 camadas? Existiria outra maneira de conexao rapida (rede local, e interne) que nao fosse DataSnap?
Em tres camadas vc elimina de vez os problemas de conexão via internet. Quanto ao DataSnap, eu não conheço pq utilizo Sockets nos Clients e Server.


Responder

Gostei + 0

01/09/2005

Titanius

Amigo IPC, como você utiliza o Socket? Pois eu soh sei utilizando o SocketConnection, com ScktSrvR.exe como servidor... fora o servidor do banco de dados...


[]s


Responder

Gostei + 0

01/09/2005

Massuda

Faz algum tempo que lidei com isso, mas achei bons exemplos no [url=http://distribucon.com/midas.html]site do Dan Miser[/url] (em inglês).

Quanto ao scktsrvr, no CodeCentral da Borland tem uma [url=http://codecentral.borland.com/Item.aspx?id=18265]versão não oficial[/url] do programa, mas parece que ela resolve um problema em máquinas com mais de um processador (para baixar o arquivo talvez você tenha que fazer login ou registrar-se gratuitamente no site da Borland).


Responder

Gostei + 0

01/09/2005

Ipc$

Amigo IPC, como você utiliza o Socket? Pois eu soh sei utilizando o SocketConnection, com ScktSrvR.exe como servidor... fora o servidor do banco de dados...
Nesse caso como ficaria? Suponha que vc tenha 3 máquinas acessando o sistema, quantas conexões o Banco de Dados abre?


Responder

Gostei + 0

02/09/2005

Titanius

Bem, ele , pelo que eu sei, tem apenas uma conexao com o banco de dados... nao tenho certeza... irei ver os sites indicados pelo amigo massuda pra ver se consigo esclarecer minhs duvidas....

minha opiniao:

Se esta eh uma tecnologia boa, que dizem pro futuro, e já vem sendo desenvolvida deste o Delphi 5, porque nao encontramos nada dela? nem livro direito tem... será que vale a pena desenvolver um sistema em n-camadas?



[]s


Responder

Gostei + 0

02/09/2005

Ipc$

Se esta eh uma tecnologia boa, que dizem pro futuro, e já vem sendo desenvolvida deste o Delphi 5, porque nao encontramos nada dela? nem livro direito tem... será que vale a pena desenvolver um sistema em n-camadas?
Bom, não conheço a tecnologia a qual vc se refere, mas pelo que escrevo em 3 camadas, a aplicação Client fica livre dos componentes SQL e não tem mais nada a ver com o Banco de Dados, ficando isso por conta da aplicação servidora.
Nesse tipo de desenvolvimento existem muitas restrições para quem desenvolve em Client/Server pq muito dificilmente vc converte um Client/Server para 3 camadas sem ter que reprogramá-lo. Sou meio radical nesse ponto, ou vc fica com Client/Server, ou começa a desenvolver em 3 camadas a partir do zero. Quanto a valer a pena, a única desvantagem é para quem desenvolve, pq para quem usa só tem vantagens.


Responder

Gostei + 0

02/09/2005

Titanius

justamente isso... os meus tbm sao assim, o acesso ao banco fica no servidor, e nao no cliente.. tudo feito em n-camadas usando SocketConnection..


a questão é, que se fala muito em 3-camadas, que ela é o futuro e tals.. mas não se acha nada a respeito dela, soemnte poucos artigos, pouquissimos livros... aí eu me pergunto, será que realmente vale a pena desenvolver um sistema em 3 camadas?


Responder

Gostei + 0

02/09/2005

Ipc$

Bom, escrevendo o sistema desde o início no final vale a pena pq vc tem a aplicação Client enxuta, livre dos componentes SQL e a aplicação servirdora se encarrega somente disso; ou seja; cada macaco no seu galho, o Client faz o que tem que fazer e o Server também. As coisas funcionam distintamente e o código muito mais limpo; já se vc converte um Client/Server para 3 camadas(nunca fiz), o código deve ficar uma salada.
Me diga uma coisa: nesse SocketConnection quando vc tem um cadastro com + 10.000 registros e o Client solicita um desfile num ListView por ex, como ele faz? Manda os 10.000 de uma vez ou parametriza?


Responder

Gostei + 0

02/09/2005

Titanius

Isso mesmo amigo, no caso eu estou criando um project do zero, partindo do zero mermo... no meu caso eu uso parametros pra trazer os dados do server, ou seja

select * from cliente
where cod_cliente = :PCod

ou seja soh traz um dados de uma vez... agora jah com o master/detail, eu trago do mesmo jeito, mas no caso ele tem mais registros.. mas eu sempre uso parametros...

No caso, o que voce usa no servidor? O aplicativo scktsrvr.exe da propria microsoft ou voce criou o seu?

digo, nao o servidor que tem o acesso ao banco de dados, mais sim o servidor que recebe a conexao Socket..


[]s


Responder

Gostei + 0

03/09/2005

Ipc$

Acho que entendí, vc parametriza por comando SQL. No meu caso não; a aplicação Client pode solicitar a tabela inteira num grid porém é definido uma quantidade de registros limite para combos, grdis e relatórios; ou seja; o servidor só manda aquela qtde de registros e o Client possui botões de próximos, anteriores, início e fim.
Quanto ao servidor, utilizo Sockets para os Clients se conectarem e enviarem comandos. Basicamente o Server abre uma thread para cada cliente conectado, recebe o comando, processa e envia o resultado. O processamento é feito nas threads para evitar que um Client fique esperando o processamento do outro.


Responder

Gostei + 0

03/09/2005

Titanius

Certo amigo, mas no caso, o servidor do socket, vc desenvolveu um? ou usou o do proprio delphi?


Responder

Gostei + 0

05/09/2005

Ipc$

Escreví utilizando TServerSocket no servidor e TClientSocket na aplicação cliente. Quase sempre o servidor fica na mesma máquina do Banco de Dados, é por isso que se elimina de vez os problemas de conexão intranet e internet.


Responder

Gostei + 0

05/09/2005

Titanius

a sakei, intaum vc desenvolveu um servidor de socket, pois eu utilizo o SrvSocktR.Exe da propria borland, porem estou tendo um problema com ela, quando uma conexao fica agarrada, aih o servidor meio que trava....

vc poderia me dar um exemplo como vc construiu o seu servidor de socket? Por acaso eh onde vc tbm tem as conexoes com o Banco de Dados, ou seja, eh onde vc tem as Querys e tals?


[]s


Responder

Gostei + 0

05/09/2005

Ipc$

É, o programa servidor possui um TServerSocket que fica aberto numa determinada porta; quando um TClientSocket se conecta a ele, no evento onAccept, o servidor abre uma Thread para aquele cliente conectado e no método Execute desta Thread, fica na espera de comandos para serem processados. O servidor é responsável também pela conexão ao Banco de Dados e da criação de objetos TQuery, TSQLQuery, TIBQuery ou TIBClientDataSet, dependendo do modo de acesso, BDE, DBExpress ou IBX. O Client envia o comando, o servidor processa e retorna o resultado
na Thread responsável por aquele Client. Para isso vc tem que ter uma classe de manipulação e transporte de dados para comunicação entre clientes e servidor que sempre é feita através de Sockets.
No começo testei um pouco Corba, mas achei complicado e DCom só dava pau, então optei por escrever um servidor utilizando Sockets.


Responder

Gostei + 0

06/09/2005

Titanius

cara, chegamos aonde está meu problema.. :d

O meu sistema está sendo feito sobre a camada DCOM, por isso dá muito pau, vixi maria, mas eu nunca vi nada parecido sobre o Sockets, e acho q meu delphi não tem este componente, a não ser que ele não seja visual :D, pois procurei nas paletas e naão achei...

Mas você não teria nenhum site, artigo ou algo parecido que me explique o básico pra se criar um servidor socket pra n-camadas?

[]s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar