Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Question Empezando con DataSnap: dudas

Estoy empezando a echar un vistazo a DataSnap y tengo algunas dudas. El escenario es el siguiente: Servidor con base de datos Firebird 1.5 RC6 y clientes remotos (en otra ciudad).

Después de mirar bien la version de prueba de los componentes IBObjects los he dejado y ahora estoy probando con FIBPlus, que son más sencillos. Y aqui van las preguntas:

--¿Hasta dónde me puede ayudar el desarrollo de aplicaciones en tres capas, es decir, que ventajas ofrece, me darán un aumento en el rendimiento, velocidad o en otros aspectos sobre la aruitectura clásica cliente/servidor en dos capas?

--Me gusta manejar explícitamente las transacciones, ya se que en Ib/Fb no hay tanto problema en dejar transacciones abiertas durante cierto tiempo debido a su arquitectura MGA pero aún así prefiero ir abriendo y cerrando inmediantamente yo las transacciones, mo me fío del manejo implícito de los componentes. Ahora echando un vistazo a DataSnap me encuentro un poco perdido, ya que son muchos clientes interactuando con un solo programa servidor de aplicaciones. ¿Cómo funciona este tema? ¿seguiré pudiendo manejar yo todas las transaciones? ¿las transacciones se quedan abiertas con este sistema?

-- Por otra parte quisiera saber si para la utilización de DataSnap, debido a su arquitectura, es más conveniente utilizar dbexpress que, por ejemplo FIBPlus.

Se que son muchas preguntas, pero son las dudas que ahora mismo rondan sobre mi.

Muchas gracias de antemano.
__________________
Emilio J. Curbelo
Responder Con Cita
  #2  
Antiguo 02-10-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
um, ¿nadie tiene nada que decir sobre el rendimiento de DataSnap (TDataSetProvider, TClientDataSet, ...)?
__________________
Emilio J. Curbelo
Responder Con Cita
  #3  
Antiguo 02-10-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

Aunque no uso datamodules remotos, si que uso dbExpress que utiliza también intensivamente los clientdatasets, así que intentaré dar respuesta a alguna de tus preguntas :

El desarrollo en tres capas, te ayuda sobretodo en que puedes ubicar gran parte de la lógica del programa (las llamadas reglas de negocio) en la capa intermedia. Un ejemplo : supón que cuando haces una venta tienes que rebajar stocks en los productos relacionados, esto lo puedes programar en la capa intermedia. Si las reglas de negocio cambian en el futuro, es decir además de rebajar los stocks, quieres mantener en una tabla un registro de las salidas de stock, solo tienes que tocar la capa intermedia, no tienes que modificar la aplicación de usuario.

La programación en 3 capas permite que la aplicación de usuario sea más ligera : gran parte de la codificación está en la capa intermedia, no tiene que acceder a la base de datos, solo tiene que acceder a la capa intermedia (te ahorras instalar el cliente de la base de datos, y configurar el motor de acceso si lo usabas : BDE, ADO, ...), de esta forma puedes conseguir que la aplicación del cliente funcione solamente con el ejecutable (sin ninguna librería ni instalación).

Sobre las transacciones, DataSnap creará transacciones implícitas si ve que no hay ninguna transacción abierta (si hay una transacción abierta la usará). Por eso puedes manejar personalmente las transacciones y abrirlas y cerrarlas cuando te interese. Desconozco que ocurrirá con los usuarios simultaneos al econtrar abierta una transacción por otro usuario.

Por defecto en DataSnap nunca quedan abiertas transacciones. Cada vez que se realiza una operación (abrir una consulta, aplicar los cambios de un clientdataset, ...) se abre automaticamente una transacción y se cierra immediatamente después (aunque el usuario tenga en pantalla los datos de la consulta abiertos, cuando quiera aplicar cambios se generará otra transacción). Unicamente tendrás transacciones abiertas cuando lo hagas manualmente.

NOTA : Esto es así en conexiones con ClientDataSets de forma local, en conexiones remotas no conozco el comportamiento de las transacciones abiertas manualmente.

Sobre utilizar dbExpress o FibPlus, es totalmente indiferente. Vas a desaprovechar la mayoría de las características de FibPlus al aplicarlo sobre un ClientDataSet (no se usarán los cursores modificables, bidireccionales, cached updates, eventos, ...), pero puedes hacerlo perfectamente, y funcionará igual de bien que con dbExpress (el cual solamente proporciona las características imprescindibles que necesita el clientdataset).

NOTA : Si vas a usar dbExpress con Firebird 1.5 es aconsejable hacerlo con el driver de www.upscene.com puesto que es específico para Firebird (en cambio con el de Borland tarde o temprano acabarás encontrando incompatibilidades).

El mejor libro que conozco que trata este tema es el La Cara Oculta de Delphi 6 de Ian Marteens (no hay versión para Delphi 7 porqué el autor considera que los cambios en la nueva versión són mínimos). www.marteens.com Allí podrás encontrar mucha má información sobre los problemas que aparecerán por la concurrencia de usuarios.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 02-10-2003 a las 22:35:25.
Responder Con Cita
  #4  
Antiguo 02-10-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Muchas gracias por tu respuesta Marc, haré algunas pruebas de desarrollo en tres capas en red (VPN) a ver qué tal va.

Si dices que DataSnap abre y cierra siempre las transacciones, sin dejarlas abiertas, entonces creo que será mejor no meter mano personalmente en eso, se lo dejaremos a los componentes solitos.
__________________
Emilio J. Curbelo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:56:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi