Ver Mensaje Individual
  #23  
Antiguo 06-08-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 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