Servidor central com BD

The0nePT

Power Member
Quero fazer uma aplicação que é um servidor central, que no fundo a unica coisa que faz é receber pedidos, ir à base de dados buscar esses pedidos e retornar esses pedidos.

Estava a pensar fazer um servidor no qual as pessoas se ligavam e depois o servidor é que ia buscar os dados à BD, mas entretanto foi-me dito que podia ter apenas a BD sem nenhum programa intermedio entre o cliente e a BD.

Ora a minha questão é:

Pode se fazer isso? deixar o cliente se ligar directamente à BD? é aconselhavel?

eu estava a pensar usar ligaçoes UDP para tornar as ligaçoes mais rapidas e depois implementava um sistema de reenvio no caso de haver perda de pacotes, é possivel fazer isso directamente na BD?

Que aconselham?

BD <==> servidor central <==> clientes ou BD <==> clientes??
 
Sinceramente, é para isso que serve o MS SQL Server, ou o MySQL, ou o POSTGRESQL, etc etc.
São servidores, recebem pedidos, e enviam dados.

Acho que te simplificava bastante o trabalho se só usasses o servidor de BD, a não ser, claro, que queiras mesmo ter alguma funcionalidade específica. Mesmo assim, os servidores são todos mt completos, acho que dá para te desenrascares só com eles :)

Isto é mais usado em redes locais, mas pela internet (ou alguma VPN) também deve funcionar...

Já agora, em que linguagem estás a trabalhar?
Assim de repente, estou-me a lembrar o HSQLDB, um motor de BD feito em java, que é muito bom (é usado no OpenOffice Base). Levezinho, rápido, etc. Claro que não testei tudo, mas o que usei, gostei :)

Boa sorte, espero que tenha contribuído de alguma maneira constructiva :sad:
 
Obrigado pela resposta, estou a trabalhar com a plataforma .NET

A razão pela qual eu estou a pensar na introduçao de uma aplicação no meio entre o cliente e a BD é para poder usar um sistema tipo de cache onde guardo na memória ram as informações mais requesitadas da BD.

Também para poder usar ligaçoes UDP, juntamente com a implementação de um sistema de confirmação de recepção, e reenvio no caso de nao receber confirmaçao de recepçao.

Nao sei se isso é possivel em BD...sou um bocado noob em relação a BD.
 
Eu também não sou grande perito...
Bem sei que com .NET o melhor que se tem a usar é o SQL Server da MS, mas... aquele HSQLDB que falei, acho-o mesmo muito bom. Suporta bases de dados e/ou tabelas exclusivamente na memória, o que aumenta brutalmente a sua performance.
Sinceramente, não estou minimamente impressionado com a performance do SQL Server, que já vi como se porta no software Primavera...

Hás-de dar uma expreitadela: http://www.hsqldb.org/

Em termos de motor "independente", comporta-se como os outros, mas é de fácil integração em aplicações feitas em java (como eu adoro java :D).
Talvez alguém mais experiente te seja capaz de dar uma opinião mais útil. Eu só vou apontando o dedo lol :D
 
A razão pela qual eu estou a pensar na introduçao de uma aplicação no meio entre o cliente e a BD é para poder usar um sistema tipo de cache onde guardo na memória ram as informações mais requesitadas da BD.

isto só te vai criar mais overhead.
se pretendes fazer cache dos pedidos mais requisitados, podes faze-lo recorrendo ao filesystem, e em cada cliente.


Também para poder usar ligaçoes UDP, juntamente com a implementação de um sistema de confirmação de recepção, e reenvio no caso de nao receber confirmaçao de recepçao.
Nao sei se isso é possivel em BD...sou um bocado noob em relação a BD.

Não podes usar UDP para confirmação/recepção de dados, já que é um protocolo não orientado á conexão. Isto quer dizer que não existem garantias que um pacote udp te chegue ao destino. Tens que usar TCP.

além disso, meter um servidor no meio da COM<-> de uma arquitectura Server/Client (BD->Cliente) é algo extremamente complexo. Na minha opinião, não penses nisso...

Os servidores de BD'S (oracle, Sql server, Mysql, etc) já possuem estratégias automaticas de fazer cache sobre tabelas mais requesitadas. Possuem também API'S (em SQL) para extender essas mesmas estratégias.

Implementações de caches no cliente (Filesystem) tmb funcionam bem, desde que saibas o que estás a fazer.


/ing
 
quando eu falo ter um sistema de confirmação de recepção e de reenvio no caso de nao receber a confirmação é fazer isso à mão pk quero mesmo ter as ligações em UDP para evitar o controlo de congestionamento e de fluxo...para alem do tempo perdido a estabelecer a ligação TCP.
 
Se estas a usar a plataforma .Net usa realmente o SQL SERVER. Até tens a versao Express que é free e segundo uma análise que fiz á relativamente pouco tempo tem tudo aquilo que realmente necessitas para uma utilização normal.

A interacção entre Cliente e o SQL Server é também ele muito simples com o .NET por isso... ;)
Bem, e na realidade o que tu dizes que queres fazer parece-me muito um webservice que por si só já te proporciona o acesso "remoto" a bd... :)
Cumps...
 
Back
Topo