Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Como pasar de TidHTTP con TWebModule a Web Service con XML ? (https://www.clubdelphi.com/foros/showthread.php?t=60886)

rolandoj 17-10-2008 05:16:21

Como pasar de TidHTTP con TWebModule a Web Service con XML ?
 
Hola,

Tengo un sistema en el cual un ejecutable cliente envía peticiones al servidor usando http mediante el componente TidHTTP de Indy. El servidor es una DLL ISAPI que recibe las peticiones mediante un TWebModule. El sistema funciona perfectamente; pero, me están pidiendo que la comunicación pase a ser mediante un Web Service con XML. Mi pregunta es : Puede hacerse facilmente ?. Si es así, como se haría ?

El tema de Web Service con XML es nuevo para mi. Apenas estoy empezando a investigar; pero, de lo que he averiguado, mucho me temo que tendría que reescribir buena parte de la aplicación, lo que considero inaceptable. Lo que quiero por tanto es que me confirmen si estoy en lo cierto o si existe alguna manera facil de hacer el cambio.

Como referencia, según lo que he indagado, les explico como creo que está la situación

Con la técnica de XML, un programa cliente llama a un método que está en el servidor y lo que le envía es un archivo xml con la descripción y los valores de los parámetros, basado en un xml asociado al método que fué generado automátiacmente por el lenguaje de programación; por su parte, el método del servidor devuelve, análogamente, otro xml con los parámetros resultantes. La técnica que yo estoy usando no está invocando directamente métodos del servidor, sino que son llamadas http, por lo que creo que no se puede aplicar directamente lo de XML.

Tal como lo pienso, tendría dos opciones :

1. Reescribir tanto en el cliente como en el servidor la forma como hago las llamadas para reemplazarlas por métodos del servidor

2. Crear mis propias versiones de las clases TidHTTP y TWebModule para que los método Get y Put de TidHTTP pasaran a ser métodos del servidor implementados en mi propio TWebModule, el cual los implementaría simulando toda la lógica del TWebModule original para poder llamar las acciones que he definido en esel TWebModule original, de la misma forma como lo hago ahora.

En ambos casos, sería un trabajo larguísimo.

Espero me puedan confirmar mi análisis, o indicarme una solución alternativa

De antemano, muchas gracias por cualquier ayuda

rolandoj 20-10-2008 18:45:48

Con un paso intermedio ?
 
Hola,

Puedo ver por las pocas visitas que casi nadie sabe y/o se interesa por este tema; pero, no pierdo la esperanza de que alguno pueda sugerir una idea.

Por mientras, les comento la posible solución que estoy considerando:

He pensado en un programa intermedio ubicado en el servidor que implemente como Web Service con XML los métodos Get y Put de TidHTTP y luego llame a mi DLL ISAPI original usando como dominio LocalHost. De esta forma se evitaría que mis programas clientes se conectaran directamente al servidor usando http que es lo que en últimas no quieren quienes me han pedido usar lo de Web Service

Esta solución obviamente no es algo en lo que yo mismo esté de acuerdo; pero, permitiría hacer el cambio rápidamente. La mayor preocupación que tengo es el efecto sobre el sistema, ya que necesariamente lo vuelve más lento.

De antemano gracias por su atención


La franja horaria es GMT +2. Ahora son las 16:29:55.

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