Ver Mensaje Individual
  #1  
Antiguo 17-10-2008
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 18
rolandoj Va por buen camino
Unhappy 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
Responder Con Cita