En este articulo intentare describir la forma mas fácil de crear un Web Services en DELPHI, obviamente se requieren conocimientos mínimos de programación y pasaremos por alto el tema de servidores Web. Es un enfoque meramente practico, siguiendo esta guia podremos construir y poner en funcionamiento un sencillo web services.
Para empezar, vamos al menú superior y seleccionamos FILE -> NEW -> OTHER, en el popup que aparece seleccionamos la solapa WebServices y dentro de dicha seccion seleccionamos la primer opción SOAP server application.

Aparece un nuevo popup, donde hay que elegir el tipo de Web service que vamos a crear.
Elegimos CGI Stand-alone executale.

Ni bien damos clic en OK, nos aparece un nuevo cuadro de dialogo que nos pregunta si queremos crearle una interface web a nuestro modulo. La interfaz web es la pagina html que va a aparecer cuando coloquemos el link en el navegador web. Si optamos por no crear la interfaz, si colocamos el link en el navegador no va a aparecer la pagina de descripcion del servicio o WSDL.

para este ejemplo en particular vamos a crear una interface, por lo tanto aceptamos la creación de la interface. Y en el nuevo popup agregamos el nombre al Web Service, nosotros lo llamaremos WsPrueba y hacemos clik en ok.

Con esta ultima opción terminamos el wizard de creación del WS.
Si hemos completado bien los pasos, tendremos cuatro unidades creadas, el proyecto, la unit1 que es la que contiene al modulo soap, y la unidad de interface y la de implementacion.
Tenemos creado ahora el web service sin ninguna funcionalidad.
Para agregarle la funcionalidad deseada, Bastara con agregar en el archivo terminado en xxxxImpl la función con el código y agregar solo el encabezado de esa misma función en el archivo terminado en xxxxxIntf en ambos casos despues de la funcion agregamos la convencion stdcall;
ejemplo:
En nuestro ejemplo el archivo de interface se llama: wspruebaImpl
type { TwsPrueba } TwsPrueba = class(TInvokableClass, IwsPrueba) public function getDate: string; stdcall; //nuestra llamada a funcion end;//La implementacionfunction TwsPrueba.getDate: string;begin result := DateToStr(now());end;y el archivo de interface: WspruebaIntf
type { Invokable interfaces must derive from IInvokable } IwsPrueba = interface(IInvokable) ['{07C0DF70-9C18-4975-8233-CF3FE73DBBB3}'] function getDate: string; stdcall; //la llamada que agregamos solamente esta linea { Methods of Invokable interface must not use the default } { calling convention; stdcall is recommended } end;Ya esta listo nuestro WebService. Compilamos el proyecto y nos genera un archivo generalmente .exe. dicho archivo hay que agregarlo en una carpeta en la parte de cgi-bin de nuestro servidor. Mas adelante voy a subir un breve resumen de como armar un servidor en 10 minutos pero no es ahora la intención. Si hicimos las cosas correctamente al colocar http://localhost/cgi-bin/micarpeta/wsprueba.exe en el navegador tendría que aparecer la interface del web service.

En el proximo articulo voy a crear el cliente. Tambien en delphi para comprobar el funcionamiento de nuestro web service.