Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Redes
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero yo no entiendo como funciona esto de un servidor de aplicaciones en entornos web. ¿Cómo se ejecuta una aplicación delphi desde un entorno web?

// Saludos
Responder Con Cita
  #2  
Antiguo 06-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Supongo que en casos como delphi se ejecutarán mediante aplicaciones cgi.
Aunque el servidor de aplicaciones, "formalmente", se le llama a un servidor web. No conozco bien la denominación, pero supongo que en un modelo MVC (modelo, vista, controlador), el servidor de aplicaciones será el 'controlador', y el servidor web, propiamente dicho, será el 'vista'.

De todas formas no me hagan mucho caso, no estoy informado sobre estos asuntos, y lo que yo llamo un servidor de aplicaciones es lo que he comentado antes, un equipo a donde se conectan los demás usuarios, y que hace de servidor de los programas que usan en la red. En lugar de tener el programa en cada uno de los equipos clientes.
Responder Con Cita
  #3  
Antiguo 06-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por lo que alcanzo a ver en el artículo, creo que el término se usa más en relación a Java, y claro, ahí tiene más sentido hablar de acceso por web. En el caso que inició este hilo me parece que hablamos más bien de una red local de windows con una aplicación instalada en una pc central a la que se accede mediante una carpeta compartida.

// Saludos
Responder Con Cita
  #4  
Antiguo 06-08-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 15
MartinS Va por buen camino
Cita:
Empezado por roman Ver Mensaje
... En el caso que inició este hilo me parece que hablamos más bien de una red local de windows con una aplicación instalada en una pc central a la que se accede mediante una carpeta compartida.

// Saludos
Si Román, es así, aunque también como dice Casimiro solo comparto la carpeta en la que se encuentra el ejecutable en tanto en la carpeta donde se encuentra la base de datos lo hace a través del 3050 (no se comparte por lo menos "visualmente").-

Saludos
Responder Con Cita
  #5  
Antiguo 06-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Por lo que alcanzo a ver en el artículo, creo que el término se usa más en relación a Java, y claro, ahí tiene más sentido hablar de acceso por web. En el caso que inició este hilo me parece que hablamos más bien de una red local de windows con una aplicación instalada en una pc central a la que se accede mediante una carpeta compartida.
// Saludos
Pues sí, realmente no tiene mucho que ver una cosa con otra.
Responder Con Cita
  #6  
Antiguo 06-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Pero yo no entiendo como funciona esto de un servidor de aplicaciones en entornos web. ¿Cómo se ejecuta una aplicación delphi desde un entorno web?

// Saludos
Esto era algo que tampoco yo entendía. De por si la denominación es confusa. Pero un servidor de aplicaciones no es más que un servidor de datos que implementa la lógica de negocios. Puede estar basado en varias arquitecturas, pero los nuevos están hechos exclusivamente sobre HTTP (No es lo mismo que Web).

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í:
Código Delphi [-]
begin
  // este codigo implementa la conexión a la DB
  // y al mismo tiempo, implementa la lógica de negocios.


  // 1. INICIAR CONECCION A LA DB
  // 2. INICIAR UNA NUEVA TRANSACCIÓN

  // Luego...
  // Insertar el nuevo contacto
  with ContactosQuery do
  begin
    SQL.Text :=
      'insert into contactos (cliente, nombre, telefono) ' +
      'values (:client, :name, :telephone)';
    Params['client'] := cliente_seleccionado_en_dbgrid;
    Params['name'] := NombreEdit.Text;
    Params['telephoe'] := TelefonoEdit.Text;

    ExecSQL;
  end;


  // Increamentar el contador de contactos
  contador := ClientesDataset.FieldByName('contactos').Value;
  contador := contador + 1;
  ClientesDataset.Edit;
  ClientesDataset.FieldByName('contactos').Value := Contador;
  ClientesDataset.Post;

  // Transaction.Commit ...
end;

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í:
Código Delphi [-]
begin
  RequestData := '?cliente=%s&nombre=%s&telefono=%s';
  RequestData := Format(RequestData,
    [HTTPEncode(cliente_seleccionado_en_dbgrid),
     HTTPEncode(NombreEdit.Text),
     HTTPEncode(TelefonoEdit.Text)]);

  idHTTP.Get('http://servidor_aplicacion/contactos/agregar' + RequestData);
end;

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.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 06-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.
Responder Con Cita
  #8  
Antiguo 06-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Realmente tiene sus ventajas hacerlo así. Este fue sólo un ejemplo sencillo. Pero que tal, que por ejemplo: Luego de registrar un contacto también tengas que enviarle un correo-e con archivos PDF generados dinámicamente?

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)?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #9  
Antiguo 06-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #10  
Antiguo 06-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por roman Ver Mensaje
No, a mi se me hace que hay algo que no nos estás contando

// Saludos


Que he soñado con poder hacer un TDataset para REST. Pero mis limitados conocimientos no me lo han permitido
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #11  
Antiguo 07-08-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.
Responder Con Cita
  #12  
Antiguo 23-08-2012
CSIE CSIE is offline
Miembro
 
Registrado: feb 2008
Ubicación: Universo paralelo
Posts: 69
Poder: 19
CSIE Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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.
...
Saludos a todos,

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.
Responder Con Cita
  #13  
Antiguo 06-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y del lado del servidor, ¿qué hay? En este esquema, ¿cómo se realiza un transacción?

// Saludos
Responder Con Cita
  #14  
Antiguo 06-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Y del lado del servidor, ¿qué hay? En este esquema, ¿cómo se realiza un transacción?
Hay código script (Python, PHP, etc). Estos scripts implementan lo que se llama controladores. Son los controladores los que implementarán la lógica de negocios. Los controladores implementan las transacciones, envío de correos-e, generación de PDFs, y claro, el registro del nuevo contacto.

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.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

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


La franja horaria es GMT +2. Ahora son las 18:15:33.


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