FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Ok.
Me ha costado (estoy algo espeso) pero creo que he pillado el concepto, aunque instales el programa en otro servidor la ip para conectarse a la base de datos tiene que ser la del equipo que alberga la misma, ¿correcto?. Saludos
__________________
Be water my friend. |
#22
|
||||
|
||||
Claro, el programa conectará (hará peticiones y recogerá las respuestas) a la BD mediante la IP del servidor donde está la BD.
El cliente de la BD hace la petición al servidor que está en esa IP, por el puerto determinado, y recibirá la respuesta (si la hay) también por ese puerto. Pero no es necesario tener ningún otro tipo de acceso a ese servidor. Porque realmente no es el usuario/cliente el que hace la consulta/petición, sino que le hace la consulta/petición al servidor, y es él quien se encarga de recoger/entregar los datos a la BD y contestar al cliente. Hay un simil muy claro para entenderlo, el típico ejemplo del restaurante: Los usuarios son los clientes que hacen pedidos al servidor/camarero y es el servidor/camarero/servicio/demonio el que hace el pedido a la cocina/BD. Allí preparan la respuesta que suele ser un plato preparado con las condiciones del cliente. Una vez preparada la respuesta/plato entonces se la entrega al camarero/servidor para que le responda/entregue al cliente/usuario. Típico cliente/servidor. El cliente no sabe dónde está la cocina, ni cómo preparan los platos, ni siquiera tiene acceso a la cocina (prohibido el paso), pero gracias al servidor/camarero podemos obtener la respuesta/plato que hemos pedido.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 06-08-2012 a las 19:29:52. |
#23
|
||||
|
||||
Cita:
Para darnos una idea, imaginemos el siguiente escenario: Una aplicación necesita registrar un nuevo contacto. Luego del registro, necesita aumentar el contador de contactos del cliente padre del nuevo contacto. Implementando lo anterior en Delphi y usando Firebird lo harías así:
El código anterior implementa la lógica de negocios y además posee código específico y dependiente de un Motor de Base de Datos. Pero con un servidor de aplicaciones el código Delphi sería algo así:
Con el anterior código sólo realizamos una petición HTTP al servidor de aplicaciones. Éste tomará los datos pasados por nuestra aplicación Delphi y los insertará en un nuevo contacto y también aumentará el contador de contactos. Además es el servidor de aplicaciones el que se encargará de gestionar la conexión a la DB. La arquitectura anterior es un moderno y verdadero servidor de aplicaciones. Existen otro tipo de Servidor de aplicaciones, los de Java. Pero esos son un ActiveX en términos prácticos. |
#24
|
||||
|
||||
Ahora si que me he quedado "a cuadros": o no me he enterado... o no le veo la utilidad.
Más que nada porque así visto parece una "encapsulación" de las llamadas a la BD. Y teniendo un stored procedure en la BD sólo hay que pasarle los datos y la misma se encarga de dar de alta al contacto y mediante un trigger se actualizaría el contador. Todo sencillo, rápido, limpio y sin necesidad de todo eso. |
#25
|
||||
|
||||
Y del lado del servidor, ¿qué hay? En este esquema, ¿cómo se realiza un transacción?
// Saludos |
#26
|
||||
|
||||
Cita:
Aparte de lo anterior, usar HTTP y no un motor DB en específico te da libertad y agilidad en el desarrollo. Por ejemplo, si cierto día deseas cambiar desde Firebird a PostgreSQL por ejemplo. O si te toca escribir un cliente para Android. Dónde consigues bibliotecas para establecer conexiones con Firebird usando Android? Aparte de eso, tendrías que volver a implementar para Android el envío del correo-e y la generación del PDF. Y si luego decides hacer una versión para iOS (iPad)? |
#27
|
||||
|
||||
Cita:
El código de la implementación de las transacciones ya depende del motor de DB o si usas o no un framework tipo Django o Symfony. |
#28
|
||||
|
||||
Pero para eso, mejor hacemos una aplicación de tres capas que virtualmente puede hacerse independiente del gestor de datos. Además, con esto del HTTP decimos adios a todos los controles dbaware.
No, a mi se me hace que hay algo que no nos estás contando // Saludos |
#30
|
||||
|
||||
Tengo la sensación de que la programación web está todavía en pañales, debe de llegar una 'revolución' que lo cambie todo, actualmente parecen parches, apaños, remiendos, cada uno hace las 'mezclas' como mejor sabe o le parece, hay una infinidad tremenda de 'cosas' distintas que se solapan unas a otras, etc. Me parece como si todo fuese una gran chapuza, a la espera de algo definitivo.
No sé, es la sensación que me da. |
#31
|
||||
|
||||
Cita:
|
#32
|
||||
|
||||
Cita:
// Saludos |
#33
|
||||
|
||||
Cita:
Debería de existir (o habrá que inventarlo) entornos de programación para la web, ya sea en php, python, etc. pero que fuesen herramientas/entornos/IDEs únicas y completas, al igual que ahora se usa IDEs para el escritorio. Aunque quizás la compleja y variada que es la web en sí misma, lo haga imposible, de momento. Puede que todo lo que ocurra es que simplemente me estoy haciendo mayor |
#34
|
||||
|
||||
Pues ahi está el Delphi for PHP o cómo se llame ahora. Pero pienso que más que pensar que es una dolencia de la programación web, es, por el contrario, bueno que haya mucha diversidad de herramientas, entornos, tecnologías. Hacer un ambiente que abarque todo significaría cerrarse sólo a un conjunto limitado de herramientas.
// Saludos |
#35
|
|||
|
|||
Cita:
Yo creo que de lo que estáis hablando siempre es un desarrollo tres capas: Cliente, Servidor de Apps y BD. Normalmente el en servidor de aplicaciones deben correr todos los servicios (de la tecnología que sea HTTP, SOAP, Custom): reglas de negocio, manejo de mensajería, etc... y nuestro cliente accederá a esos servicios a través de su puerto correspondiente y jamás accederá directamente a la BD. Tal como yo lo veo, la ventaja principal es la escalabilidad y la encapsulación de tareas. La utopía es que el cliente se simplifique al máximo y el peso de las tareas recaiga en el servidor de aplicaciones. Tal como se hace con un explorador web, con esto no quiero decir que haya que utilizar aplicaciones WEB , yo sigo siendo partidario de las aplicaciones de escritorio para entornos empresariales. |
#36
|
||||
|
||||
EXE en RED LAN y BD en Servidor de Aplicaciones
Solo para agregar a hilo, comentarles que desarrolle una aplicacion para la empresa donde trabajo (Delphi6 y Firebird 1.5) y aqui se instalo en una unidad de la RED (LAN) el ejecutable (de 6 Gb.) y las carpetas que el ejecutable buscara en base a la ubicación de este, es decir usando componentes IBx, en especifico el TIBDatabase, en el cual dentro de la programacion hice esto:
Desde el formulario de conexion el usuario indica el NOMBRE DE LA PC o bien LA IP DE ESTA.....solo que aqui existe el problema de que el usuario, si tiene conocimientos en informatica sabra la ubicacion de nuestra base de datos.....se puede arreglar agregando mejor la ruta en el archivo .INI de tal manera que sea transparente para el usuario, como el que hizo nuestro compañero que inicio este hilo..... En lo particular tenemos el ejecutable en la RED y la base de datos en un SERVIDOR DE APLICACIONES. En cada máquina cliente se tiene un acceso directo al archivo EXE de la aplicacion (ej. i:\SisApp\myApp.exe) y este mostrara la pantalla de conexion la cual solo tiene 3 parametros.....usuario, passw y nombre del servidor.... La ventaja q tengo es que son pocos los usuarios que se conectan....no llegan a 10. Ademas de tener el EXE en una unidad de la red, pues es mas comodo a la hora de las actualizaciones. El servidor de la base de datos esta en Win XP Profesional y en otro estado de la rep. mex. la base de datos esta en un Win Server 2008. Saludos.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! Última edición por mRoman fecha: 24-09-2012 a las 20:56:14. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como hacer un ejecutable unico para cada ordenador? | negrokau | Varios | 1 | 14-10-2011 14:21:39 |
solo copio el ejecutable? | Patricio | Varios | 3 | 16-05-2008 23:00:44 |
Usar un TDataModule compartido entre un ejecutable y una dll | Luzma | Conexión con bases de datos | 1 | 18-07-2007 01:37:25 |
Seleccionar impresora predeterminada en cada cliente | david duarte | Impresión | 6 | 26-04-2006 16:04:24 |
mostrar SOLO cliente de los que tengo un sólo registro | Giniromero | SQL | 15 | 11-06-2004 12:33:19 |
|