presentación niveles negocios ejemplos datos capas arquitectura aplicaciones delphi architecture delphi-7 3-tier

delphi - niveles - arquitectura de aplicaciones



Arquitectura para aplicaciones de 3 niveles con D7 (3)

Tengo experiencia con la tecnología COM + hasta el momento para crear aplicaciones de 3 niveles. Esta es una tecnología enorme y avanzada que admite muchos conceptos interesantes. Simplemente funciona como debería para las aplicaciones que operan en LAN.

Ahora planeo construir un sistema de 3 niveles, aún basado en D7. La diferencia es que debería funcionar en internet. Los clientes estarán dispersos por todo el mundo. De mi experiencia en tal situación, no confiaría en com +. Com + básicamente necesita una conexión estable, no es fácil configurar el servidor de firewall que tiene que abrir una amplia gama de puertos (incluso si lo reduce).

Entonces la pregunta es. ¿Qué arquitectura (servicios web, servicios u otra cosa) funciona para usted en producción? Creo que me gustaría tener el servicio que escucha en un puerto tcp. En el que podría guardar los parámetros del cliente de sesión disponibles para la sesión abierta. También algún tipo de encriptación integrada sería una ventaja.

¡Gracias por la ayuda!


Los WebServices SOAP o REST son ampliamente compatibles y (casi siempre, SOAP casi siempre, REST siempre) basados ​​en HTTP, por lo que son amigables con el firewall y podrían cifrarse mediante SSL. Delphi 7 hace SOAP, pero hacer tu propio REST no es tan difícil tampoco.

La otra opción sería una biblioteca de terceros, como Data Abstract, que podría tener una mejor compatibilidad inmediata para Multi-Tier, pero puede que se encerre más en una tecnología.

Dicho esto, no tengo mucha experiencia en producción.


Puede echar un vistazo a nuestro marco ORM, que implementa una arquitectura de servidor de n-Tier sobre varios protocolos, incluido HTTP / 1.1.

Por lo tanto, podría ayudarlo a crear aplicaciones Cliente-Servidor a través de Internet, utilizando un enfoque ORM y una arquitectura n-Tier / SOA.

La SOA (arquitectura orientada a servicios) se puede utilizar en un enfoque ORM cliente-servidor :

Eche un vistazo a la documentación, que se puede descargar como archivos pdf . Hay algunas páginas que destacan todos los aspectos de arquitectura, en la primera parte del documento SAD:

  • MVC y arquitectura Multi-Tier;
  • Por qué un ORM (con RTTI avanzado): por qué no es solo una capa sobre el DB;
  • Por qué un cliente / servidor ORM;
  • Escribir servicios RESTful en un enfoque SOA;
  • ORM y SQL (a través de tablas virtuales SQLite3, funciones personalizadas para acceder a BLOB).

Es de código abierto, que funciona desde Delphi 6 hasta XE, Unicode completo (incluso en Delphi 7, ya que utiliza internamente la codificación UTF-8, como JSON). Entonces, cuando actualice a una versión más nueva de Delphi, su código seguirá siendo válido. Podría ser útil.


Usamos RemObjects SDK para nuestros servicios, ¡y estamos muy contentos con la calidad! Puede usar mensajes binarios TCP + (para alta velocidad), con cifrado y compresión opcionales. Pero también es posible HTTP + SOAP (o XML o lo que sea), o TCP + SOAP, etc. ¡Es muy fácil de usar y vale la pena el precio (no es muy caro)!

Por cierto: Data Abstract está basado en el SDK, ambos son de RemObjects.com.