¿Qué es un Web Service?

¿Qué es una Web Service?

 

Web Service o Servicio Web es una tecnología (software) que utiliza un conjunto de protocolos y estándares que facilita la comunicación de máquina a máquina y por tanto el intercambio datos entre aplicaciones o sistemas es una red. Estos servicios se pueden utilizar aunque haya diferencias entre lenguajes de programación en el que fueron desarrolladas y puedan ser ejecutadas en cualquier plataforma.

Por tanto, el web service tiene dos características principales:

  • Multiplataforma: Para realizar la comunicación, cliente y servidor no tienen por qué tener la misma configuración ya que el servicio web se encarga de hacerlo posible.
  • Distribuida: Un servicio web no está disponible para un único cliente, sino que diferentes clientes pueden acceder a dicho servicio a través de Internet.
Cristina Fernández Sánchez
Cristina Fernández SánchezAnalista y programadora en SAP
En el día a día utilizamos continuamente este tipo de tecnología, por ejemplo, cuando se utiliza Google para el inicio de sesión.


Componentes de el Web Service

Los componentes fundamentales de el Web Service son:

  • XML (Extensible Markup Language): Es un formato estándar mediante el cual se almacenan los datos que se vayan a intercambiar de forma legible.
  • SOAP (Simple Object Access Protocol): Es un protocolo de comunicación estándar que define cómo los mensajes se deben estructurar y procesar en la comunicación entre aplicaciones. Se utiliza para garantizar la seguridad y la estructura de los datos transmitidos. El intercambio de datos se hace mediante XML.
  • WSDL (Web Services Description Language): Es un lenguaje utilizado para describir la interfaz de un servicio web. Proporciona información sobre los métodos disponibles, los tipos de datos utilizados y cómo acceder a los servicios. Por tanto, indica a un cliente cómo componer una solicitud de servicio.
  • UDDI (Universal Description, Discovery and Integration): Es un protocolo que se usa para publicar servicios web disponibles en la red.

¿Cómo funciona un Web Service?

Servicio web 1

  1. El proveedor del servicio (Service Provider) genera el WSDL en el cual se describe el servicio (Web Service) de forma detallada. Registra el WSDL en el directorio UDDI o Service Registry. Con esta información, el cliente puede comprender qué funciones puede ejecutar en el servidor a través del servicio web.
  2. El cliente o solicitante del servicio (Service Requestor) requiere un Web Service y se pone en contacto con el UDDI para localizar el Web Service.
  3. El cliente, basándose en la descripción descrita por el WSDL, envía una petición (request) SOAP en forma de mensaje HTTP al servidor
  4. El Web Service analiza el mensaje SOAP de la petición e invoca una operación particular en la aplicación para procesar la petición. El resultado se escribe de nuevo en SOAP y HTTP en forma de respuesta y se envía al cliente.
  5. El cliente analiza el mensaje de respuesta SOAP y lo interpreta o genera un error si ha habido alguno.

Tipos de Web Service

Los principales tipos de Web Service son:

  • SOAP: Es un protocolo de servicio web basado en XML para intercambiar datos y documentos a través de HTTP o SMTP (protocolo simple de transferencia de correo). Permite que los procesos independientes que operan en sistemas dispares se comuniquen mediante XML
  • RESTFUL (Representational State Transfer): Es uno de los tipos de web service que proporciona comunicación y conectividad entre dispositivos e Internet para tareas basadas en API. La mayoría de los servicios RESTful utilizan HTTP como protocolo de soporte.

Ventajas y desventajas de los Servicios Web

Ventajas

  • Intercambio masivo de información: Este servicio proporciona una puerta de entrada o salida de información a la empresa que los implementa.
  • Interoperabilidad: Pueden conectarse aplicaciones en diferentes plataformas y tecnologías, por lo que el cliente y el servidor apenas han de presentar rasgos en común para poder comunicarse
  • Accesibilidad global: Están disponibles en cualquier parte del mundo con acceso a Internet.

Desventajas

  • Seguridad: Puede haber vulnerabilidades de seguridad si no se protegen bien con medidas de ciberseguridad.
  • Latencia: XML es un formato más bien voluminoso que genera grandes paquetes de datos, lo que puede crear problemas en las conexiones de red lentas lo que afecta al rendimiento.
  • Complejidad: La configuración y el mantenimiento de los servicios web pueden ser complejos.

Los Web Services en SAP

Para SAP resulta interesante y útil poder extender sus soluciones empresariales mediante la publicación de servicios web SAP (Web Service). Así mismo igual de útil le resulta poder consumir web service externas para tener acceso a datos y soluciones externas a SAP.
Tanto estos servicios como los consumidores utilizan protocolo HTTP, el protocolo SOAP y el lenguaje de programación XML.
A continuación, se explica cómo generar un servicio y un consumidor en SAP.

Web Service (Servicios)

Creación de Web Service
El primer paso es, desde la transacción SE37, crear la función que se quiere utilizar como servicio, teniendo presente que debe ser definida como función RFC (marcar esta como “Módulo de acceso remoto” en la pestaña de atributos en la transacción SE37). Se puede crear un servicio para un módulo de función o para un grupo de funciones.

Servicio web 2

Ahora hay que publicar el servicio web SAP con el asistente desde el menú Utilidades, eligiendo la opción “Generar servicio Web” e indicando si se desea incluir en el servicio web el módulo de funciones concreto o todo el grupo de funciones.

servicio web 3

A través del asistente podemos establecer las siguientes opciones de publicación del web service SAP:

  • Nombre del servicio web y descripciónservicio web 4
  • Funciones a incluir (si se incluido un grupo de funciones)
  • Tipo de autenticación requerido, nivel de seguridad y ubicación donde guardar el servicio web SAP. Esto se puede modificar con posterioridad a la creación.
    servicio web 5

Se puede elegir entre cuatro perfiles de autenticación y seguridad:

  • Alta: Autenticación con certificado y garantía de transporte (HTTPS)
  • Media: Autenticación con usuario y contraseña y garantía de transporte (HTTPS)
  • Baja: Autenticación con usuario y contraseña sin garantía de transporte (HTTP)
  • Ninguna: Sin autenticación ni garantía de transporte

Una vez establecidos todos los parámetros del servicio web SAP, ya estaría creado el Web Service y aparecerá un resumen con la descripción del mismo: propiedades, visión interna, visión externa, tipos de datos, configuración e incluso el WSDL del servicio web SAP publicado.

servicio web

Vinculante

Para que el servicio web pueda ser llamado, hay que enlazarlo a un puerto de la máquina, lo cual se realiza a través de un EndPoint o Binding. Mediante esto se definirá el formato del mensaje (SOAP) así como la localización del servicio web SAP completo.
Este paso se efectúa desde la transacción SOAMANAGER:

servicio web 7

Se busca el servicio web SAP creado a través nombre especificado durante su creación utilizando el apartado “Web Service Configuration”, seleccionando en la pantalla que se muestra la categoría de búsqueda ‘Service Definition (publicar servicio web SAP)’.
Una vez seleccionado el servicio web a publicar se pulsa el botón “Apply Selection” con lo que aparecerá un nuevo grupo de pestañas en la parte inferior.

servicio web 8

El siguiente paso es crear un EndPoint y configurarlo según las opciones de seguridad y autenticación determinadas en cada caso. Para ello, en la pestaña “Configurations” se crea una nueva configuración pulsando el botón “Create Endpoint”. Se solicitará el nombre del servicio web, su descripción y el nombre del binding a crear, así como otros detalles de la nueva Configuración (Perfil de autenticación y seguridad, mensajes… )

servicio web 9

servicio web 10

Al pulsar ‘SAVE’ se grabará el EndPoint y se activará, siendo accesible a partir de ese momento el servicio desde las máquinas externas. Ya estará disponible el WSDL completo del servicio web SAP creado.
En el WSDL entre otros aspectos importantes se podrán obtener las rutas de las acciones (funciones SAP publicadas como servicio web SAP) y la localización del propio servicio web SAP.
Para ver el WSDL de un servicio se accede al SOAMANGER, marcando el servicio deseado, en la pestaña Overview, la última opción ‘Display selected Binding’s or Service’s WSDL URL’ da acceso a la URL del WSDL.

servicio web 11

Web Service (Consumidores)

Creación de la clase proxy
La forma más fácil de crear un cliente para ‘consumir’ un Web Service es mediante una clase proxy, que maneja la conexión al servidor y crear el mensaje SOAP de intercambio.
Lo primero a hacer es lanzar el asistente de creación de servicios (Enterprise Service), desde el navegador de objetos (SE80): Desde el Repository Browser->Crear->Enterprise Service.

servicio web 12

Esto nos abre el asistente, donde se debe seleccionar: “Service Consumer”.

servicio web 13

A continuación, hay que indicar qué fuente se van a utilizar para generar el proxy. Lo normal es conectar con un sistema externo el cual ha proporcionado la definición del Web Service a través de un fichero XML o con una dirección URL. En ambos casos, se elige ‘external WDSL’.

servicio web 14

Se escoge el lugar en el que se tiene el WSDL, si es un fichero ‘Local File’ si es URL se escoge ‘URL’.

servicio web 15

En el siguiente paso se especificará la ruta al fichero local o a la URL.

servicio web 16

Y el último paso será especificar el paquete en el que incluir la nueva Clase Proxy y la orden (o local). También se puede especificar un Prefijo, que será parte del nombre con el que se compongan los objetos asociados del diccionario.

servicio web 17

La Clase Proxy (la parte complicada de encapsular el mensaje SOAP y definición de estructuras de intercambio será transparente con la clase proxy) así como las estructuras necesarias para la gestión del servicio ya estarán creadas.

Creación puerta lógica

Hay que crear y habilitar un puerto para poder utilizar el Web Service, Para ello se utiliza la transacción SOAMANAGER.
Al igual que con el servicio web se busca el proxy utilizando el apartado “Web Service Configuration” seleccionando en la pantalla que se muestra la categoría de búsqueda ‘Consumer Proxy’. Una vez seleccionado se pulsa el botón “Apply Selection”.

servicio web 19

A continuación, se pulsa ‘Create EndPoint’ para definir las opciones de configuración del EndPoint. Se da un nombre y la descripción del puerto a crear, se marca ‘WSDL Based Configuration’ y dependiendo de si es un fichero o una ruta, se marca el valor correspondiente informando de dicho valor.

servicio web 20
servicio web 21

El puerto se crea con la URL de acceso y las condiciones de seguridad y encriptación definidas en el WSDL (o configuradas manualmente). Pulsar ‘SAVE’ para guardar los cambios. El puerto estará correctamente configurado cuando su estado sea ‘Activo’.

Consumir el Servicio Web desde SAP

Para incluir una llamada a un método del Web Service a través de la clase proxy, lo más sencillo es arrastrar el Service Consumer a un editor ABAP. De esta manera se crea la plantilla con el modelo para crear el objeto de la clase proxy y para cada método u operación que pueda realizar, la definición de las estructuras de intercambio y la llamada al método. Sólo hay que dar nombre a las variables y objetos y gestionar correctamente el control de errores y las excepciones.

Ejemplo:

servicio web 22

Conclusión

Con todo lo expuesto podemos concluir diciendo que los servicios web ofrecen una solución eficiente y flexible para la conectividad entre diferentes sistemas impulsando los procesos empresariales y siendo una pieza clave para la innovación en los sistemas y las comunicaciones online. Por tanto, en un nuevo entorno digital en constante evolución las Web Service son una HERRAMIENTA INDISPENSABLE para las empresas para mantenerse competitivas e innovadoras desarrollando soluciones web modernas y de vanguardia.

Otros artículos relacionados

2025-02-05T11:18:12+01:005 febrero, 2025|

¡Compártelo en tus redes sociales!

Ir a Arriba