Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Servidor web (https://www.clubdelphi.com/foros/showthread.php?t=32112)

Ñuño Martínez 16-04-2007 12:08:16

Cita:

Empezado por ASAPLTDA
Espero que mis colegas no consideren esto una irrespeto por aprovecharme de su tiempo :D lo que realmente pretendo es que los delphianos contemos con una herramienta que nos permita desarrollar software que pueda competir con las aplicaciones hechas en PHP,,,etc . y tener manuales que nos ayuden a tener a delphi como una herramienta competitiva porque encontgramos ejemplos reales y practicos para desarollar aplicaciones y no un ejemplo que no se aplicacable como hola mundo, donde en la vida practica no nos sirve:rolleyes:

Bueno, con los componentes Indy y la capacidad de Delphi para crear módulos para el servidor web Apache, pues no recuerdo yo que fuera tan difícil. Más bien al contrario...

Por otro lado, cada cosa para lo que es. Por mucho que nos empeñemos, con Delphi no se puede hacer lo mismo que con PHP... y vicecontra. Son dos herramientas diferentes con objetivos distintos y capacidades diferenciadas. Y para aprender a diseñar programas de red con Delphi tanto este foro como otros sitios de Internet incluyen numerosísima información útil. Sólo tienes que preguntar. :)

frank_ 06-11-2007 19:59:53

TIdHTTPWebBrokerBridge
 
Cita:

Empezado por PatrickM (Mensaje 140246)
Muy muy currado, me suena a mis dias de universidad con las prácticas de CASO.

Te comento que con el Indy 9 o 10, se puede hacer rapidamente un Servidor Web en pocas lineas de código, o relativamente pocas. Esta claro que lo que has hecho tu es mucho mas pedagógico, pero que ahí tienes los código fuente del Indy por si lo quieres mirar. Ademas ahora supongo que lo querras ampliar para que soporte mas cosas.

En concreto desarrolle un Servidor Web en Indy para la empresa, que daba soporte para WebServices/SOAP, ISAPI i CGI, ademas de servicio de acceso a una Base de Datos aprovechando el tema de SOAP i el DataSnap de Borland.

Las classes principales eran:

TIdHTTPWebBrokerBridge: esta clase viene con el Indy pero no esta en la paleta. Hereda de un TCustomHTTPServer, es decir un Servidor HTTP comun como el que implementas, y lo modifica para ponerle todo el tema Web bien estructurado.

A partir de este le puedes añadir modulos Web del mismo Delphi TWebModule, aprovechando todo el potencial del WebSnap, como por ejemplo el tema de WebServices/SOAP. Después yo encontre por ahi dos classes que funcionan con el TWebModule.

TCGIRunner: Para ejecutar un CGI dentro de un WebModule (da algun problema que otro)

TISAPIRunner: Para ejecutar una libreria dinamica DLL siguiendo el protocolo de Microsoft. Este funciona mejor que el anterior.


Con todo esto consigues un Web Server bastante completito y totalmente propio, con el permiso de Indy Project y demas, claro esta.

No os puedo poner el código porque es propiedad de la empresa, pero creo que con lo que he dado y el Google se puede hacer sin problemas. De hecho la idea la saque de una página de Borland y algun foro.

saludos y enhorabuena por tu Web Server.


Hola que tal, de ante mano aclaro que soy nuevo en el tema, tengo una pregunta:

Me he creado varios ISAPI's desde builder6:)
Tambien tengo un servidor http usando la clase TIdHTTPWebBrokerBridge siempre en builder6:)
mi duda es, claro si es que se puede ¿como hacer que mi servidor cargue los ISAPI's (dll's) para que proporcione los servicios que contienen las dll's?:confused: ya que cada ISAPI tiene su propio WebModule y la clase TIdHTTPWebBrokerBridge solo permite cargar uno a la vez:cool:

fide 07-11-2007 00:43:48

Servidor web de seoane!
 
A la verdad que esta cool ese servidor web, y lista los archivos de una forma muy interesante, parecido a los ftps de linux...

PatrickM 07-11-2007 11:50:36

Cita:

Empezado por frank_ (Mensaje 243924)
Hola que tal, de ante mano aclaro que soy nuevo en el tema, tengo una pregunta:

Me he creado varios ISAPI's desde builder6:)
Tambien tengo un servidor http usando la clase TIdHTTPWebBrokerBridge siempre en builder6:)
mi duda es, claro si es que se puede ¿como hacer que mi servidor cargue los ISAPI's (dll's) para que proporcione los servicios que contienen las dll's?:confused: ya que cada ISAPI tiene su propio WebModule y la clase TIdHTTPWebBrokerBridge solo permite cargar uno a la vez

Hola frank,

Yo uso una clase que encontre llamada TISAPIRunner. Tienes que filtrar tu URL para detectar solo aquellas llamadas que hagan referencia a DLL. Despues haces la llamada al ISAPIRunner de esta manera desde el WebModule de tu Servidor Web:

Código Delphi [-]

ISAPIRunner.Server:=Programa.ConexionWeb.WebBrokerBridge;
ISAPIRunner.ServerAdmin:='';
ISAPIRunner.Execute(Fichero, TidHTTPappRequest(Request).FThread, TidHTTPAppRequest(Request).FRequestInfo,
                    TIdHTTPAppResponse(Response).FResponseInfo, ExtractFileDir(ParamStr(0)) + '\Cgi', 
                    True, PathCGI);

Tube que modificar la clase TidHTTPappRequest y TidHTTPResponse, para hacer publicos las variables privadas FThread, FRequestInfo y FResponseInfo.

PathCGI son los parametros de la URL.

frank_ 07-11-2007 16:38:30

idhttpWebBrokerBridge
 
Gracias por tu sugerencia PatrickM, ya habia visto esa clase:idISAPIRunner
pero estoy tratrando de cargar los servicios que tengo en las dll's, sin tener que usar esa clase. De todos modos voy a checarlo nuevamente para ver si obtengo alguna idea de como resolver mi problema.

JXJ 19-12-2008 20:58:44

Cita:

Empezado por mamcx (Mensaje 180171)
Eso es una muy buena idea. En estos dias me arme un servidor web especial para sincronizar unas pocket pc con varios sistemas contables y de erp.

Lo hice usando http://www.realthinclient.eu/index.htm que me lo gane haciendole unas pruebas al creador descargando turboexplorer ;)

Me parecio mas comprensible que Indy.

Lo que mas me gusto es que le integre http://mmm-experts.com/Products.aspx?ProductId=3

La parte pesada la hago con Delphi (y el diseño visual) y el codigo de integracion con python (porque como cosa rara a cada cliente maneja un esquema de base de datos diferente!)

De pronto me animo y hago un articulo de eso.

Lo importante es despertar como ha hecho soane, la idea de lo viable que es Delphi como herramienta para cosas interesantes!

mamcx.

¿integrarle python for delphi como le hiciste.?


La franja horaria es GMT +2. Ahora son las 18:40:28.

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