3.1. Web Services: breve introducción
El SAP Web Application Server es también una plataforma de desarrollo para Web Services. Un Web Service es un servicio, el cual es accesible vía protocolos de Internet y, como regla, puede ser operado mediante un navegador de Internet.
Los Web Services son la base técnica para que funciones individuales de una aplicación estén directamente disponibles. Aquí, la función existente de una aplicación puede ser direccionada a través de protocolos estándares de acceso y el contenido, o sea, los datos intercambiados en una forma estructurada. De esta manera, las funciones cross-application, pueden ser desarrolladas de forma flexible.
La combinación de varios servicios granulares, en el sentido de escenarios de negocios auto-contenidos, es conocido como un Servicio Empresarial (Enterprise Service). En el SAP Web Application Server los siguientes estándares básicos para Web Services están implementados:
- eXtensible Markup Language (XML)
- Simple Object Acces Protocol (SOAP)
SOAP describe un protocolo, el cual puede usarse para llamar Web Services en un landscape de sistemas distribuidos. SOAP utiliza http como protocolo de transporte. Un mensaje SOAP tiene una cabecera (header) con información adicional y un cuerpo (body) con el mensaje real, o sea los datos de aplicación.
- Web Service Description Language (WSDL)
WSDL es un meta lenguaje, el cual se utiliza para describir la función de un Web Service. Las funciones, parámetros y códigos de retorno en particular son descriptos en una forma legible para la máquina.
WSDL es un estándar desarrollado por el World Wide Consortium (W3C).
- Universal Description, Discovery and Integration (UDDI) es un directorio de servicios para Web Services dinámicos. Un directorio de Web Services es provisto vía una interface SOAP. Podemos pensar en UDDI como las páginas amarillas de un directorio telefónico, pero para los Web Services.
Allí es donde se puede obtener la información necesaria para poder ubicar y llamar a un Web Service especifico. Esta información es provista por el WSDL que se obtiene desde UDDI.
SAP tiene su propio servidor UDDI en SDN SAP, en donde los Web Services pueden ser registrados y buscados.
3.2. Web Services y el SAP Web Application Server
Los Web Services pueden ser desarrollados en el sistema SAP desde la versión 6.20 del Web Application Server de SAP, de todas formas, las herramientas de desarrollo han sido mejoradas considerablemente a partir de la versión 6.40.
Por lo tanto, un módulo de función habilitado para acceso remoto (remote-enabled) puede ser transformado desde el Function Builder (transacción SE37) en un Web Service.
Un Web Service es un módulo que puede ser utilizado de manera flexible en diferentes aplicaciones. El creador publica el Servicio en un directorio UDDI. El consumidor de la función, que puede ser una aplicación que necesite utilizar ese Web Service, puede buscar directamente este Web Service en el directorio UDDI.
Técnicamente, una vez que se definió el Web Service puede ser llamado de diferentes maneras, por ejemplo, desde un programa ABAP o desde un Business Server Page.
Lo siguiente muestra como un Web Service es creado a partir un módulo de función habilitado para acceso remoto (RFC-enabled)
- El Proveedor de Servicio, por ejemplo, genera el Web Service desde un módulo de función. Adicionalmente, una URL y el archivo WSDL son generados.
- El Solicitante de Servicio crea un objeto proxy, el cual hace referencia a la URL del Web Service. Luego, una clase ABAP es generada, la cual coincide con el objeto proxy y un puerto lógico es asignado.
- El objeto proxy se escribe y es integrado en un programa ejecutable, por ejemplo, en ABAP, y es llamado desde ahí.