Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Implementación de Servicios SOAP

y REST en Aplicaciones Web

ACTIVIDAD SEMANA 6

Implementación de los servicios SOAP y REST para una aplicación web

INTRODUCCION

Introducción

Los servicios web desempeñan un papel fundamental en las aplicaciones modernas, ya que permiten la comunicación y la interoperabilidad entre diferentes sistemas y plataformas a través de Internet. Estos servicios proporcionan una forma estandarizada de intercambiar datos y funcionalidades, lo que resulta esencial en un mundo cada vez más conectado y orientado a la digitalización.

dos tipos enfoques populares SOAP

SOAP, que significa "Simple Object Access Protocol" (Protocolo Simple de Acceso a Objetos), es un protocolo de comunicación ampliamente utilizado en el desarrollo de servicios web. Aquí mencionaré dos enfoques populares relacionados con SOAP:

1) Enfoque de Servicios Web Basados en SOAP: En este enfoque, se utilizan servicios web que se comunican a través del protocolo SOAP. Los servicios web son componentes de software que ofrecen funcionalidades específicas a través de Internet o una red. SOAP se utiliza para definir la estructura de los mensajes que se envían entre las aplicaciones y los servicios web. Estos mensajes suelen estar codificados en formato XML y contienen información sobre la solicitud o respuesta de una operación. El enfoque de servicios web basados en SOAP es conocido por su énfasis en la interoperabilidad, ya que puede ser utilizado por diferentes plataformas y lenguajes de programación.

ENFOQUE SOAP 1

segundo enfoque SOAP

ENFOQUE SOAP 2

2) Enfoque de Desarrollo Orientado a Servicios (SOA) con SOAP: El enfoque SOA se basa en la idea de descomponer las aplicaciones en servicios independientes y reutilizables que pueden ser invocados a través de protocolos como SOAP. En este enfoque, las organizaciones diseñan sus sistemas de software como un conjunto de servicios interconectados. Cada servicio se encarga de una función específica y se comunica con otros servicios a través de mensajes SOAP. Este enfoque permite una arquitectura más flexible y modular, lo que facilita la adaptación a los cambios comerciales y la reutilización de componentes de software en toda la organización.

Dos tipos enfoques populares REST

1) Enfoque de Servicios Web RESTful: En este enfoque, los servicios web se crean siguiendo los principios y restricciones de REST. Los servicios RESTful utilizan los métodos HTTP estándar (GET, POST, PUT, DELETE, etc.) para realizar operaciones en recursos que están representados como URLs. Cada recurso se representa en un formato específico, generalmente JSON o XML, y se accede a través de una URL única. Los servicios web RESTful son conocidos por ser simples, fáciles de entender y utilizar, y por su capacidad para escalar eficientemente. Este enfoque es especialmente popular en el desarrollo de aplicaciones web y móviles

ENFOQUE REST 1

segundo enfoque REST

ENFOQUE REST 1

2) Enfoque de Arquitectura de Microservicios con REST: La arquitectura de microservicios es un enfoque de diseño de software en el que las aplicaciones se dividen en pequeños servicios independientes que se ejecutan de forma autónoma. REST se utiliza comúnmente para la comunicación entre estos microservicios. Cada microservicio expone una interfaz RESTful a través de la cual otros microservicios o aplicaciones pueden interactuar con él. Esto permite una arquitectura más modular y escalable, donde cada microservicio se encarga de una funcionalidad específica. La combinación de REST y microservicios ha ganado popularidad debido a su capacidad para facilitar el despliegue y la escalabilidad de aplicaciones empresariales complejas.

¿Qué es REST?

REST (Representational State Transfer)

REST (Representational State Transfer) es un estilo arquitectónico de diseño para sistemas de comunicación en red. A diferencia de SOAP, que es un protocolo de mensajería, REST es un enfoque más amplio que se centra en los principios fundamentales de cómo deben interactuar los sistemas distribuidos en la web. Fue desarrollado por Roy Fielding en su tesis doctoral en 2000 y se ha convertido en un enfoque ampliamente utilizado para la construcción de servicios web y APIs en la World Wide Web

Explicación de REST como un estilo de arquitectura

REST (Representational State Transfer) es un estilo de arquitectura de software para diseñar sistemas distribuidos que se centra en la simplicidad, la escalabilidad, la independencia de estado y la interoperabilidad. En lugar de ser un protocolo o una tecnología específica, REST es un conjunto de principios y restricciones que guían la forma en que las aplicaciones web deben comunicarse y organizarse.

Explicación de REST como un estilo de arquitectura

Principios clave de REST

Los principios clave de REST (Representational State Transfer) son fundamentales para comprender cómo funciona esta arquitectura de estilo en sistemas de comunicación en red.

Recursos: En REST, todo es un recurso. Un recurso es una abstracción de cualquier entidad o información que puede ser identificada y accesible a través de una URL (Uniform Resource Locator). Estos recursos pueden ser objetos de datos, como productos, usuarios, publicaciones de blog, imágenes, etc. Cada recurso tiene su propia URL única para acceder a él.

URI (Uniform Resource Identifier): Las URIs (Uniform Resource Identifiers) se utilizan para identificar y localizar recursos en la web. Las URIs son la base para identificar recursos en REST y se utilizan para acceder y manipularlos.

Principios clave de REST

SOAP (Simple Object Access Protocol)

¿Qué es SOAP?

SOAP es un acrónimo que significa "Simple Object Access Protocol" en inglés, que se traduce como "Protocolo Simple de Acceso a Objetos". Es un protocolo de comunicación que se utiliza para intercambiar información estructurada en la implementación de servicios web en una red, como Internet. SOAP se basa en XML (Extensible Markup Language) y se utiliza para definir la estructura de los mensajes que se envían entre aplicaciones o sistemas distribuidos.

SOAP (Simple Object Access Protocol)

Explicación de SOAP como un protocolo de mensajería

SOAP (Simple Object Access Protocol) es un protocolo de mensajería utilizado en el ámbito de la comunicación entre sistemas y aplicaciones distribuidas. Funciona como un estándar para el intercambio de mensajes estructurados en entornos informáticos y se utiliza principalmente en el contexto de servicios web y aplicaciones empresariales

SOAP COMO MESAJERIA

ENCABEZADO

Encabezado (Header):

El encabezado es una sección opcional en un mensaje SOAP. Esto significa que un mensaje SOAP puede contener un encabezado o no, dependiendo de las necesidades de la aplicación.

Si se incluye, el encabezado se coloca antes del cuerpo del mensaje y está delimitado por las etiquetas <SOAP-ENV:Header> y </SOAP-ENV:Header>.

El encabezado puede contener información adicional relacionada con la transacción o el procesamiento del mensaje. Esto podría incluir detalles de seguridad, como tokens de autenticación, detalles de enrutamiento o cualquier otra información relevante para la aplicación o el servicio que utiliza el mensaje SOAP.

Los elementos en el encabezado pueden ser definidos por el estándar SOAP o pueden ser personalizados según las necesidades de la aplicación. Los elementos personalizados permiten a las aplicaciones agregar información específica de dominio al encabezado.

Estructura de un mensaje SOAP ENCABEZADO

Cuerpo (Body)

El cuerpo es la parte principal de un mensaje SOAP y es obligatorio en todos los mensajes.

Contiene la información principal que se va a transmitir entre el remitente y el destinatario del mensaje. Esta información puede estar en forma de datos, instrucciones o cualquier otra cosa que sea relevante para la aplicación.

El cuerpo está delimitado por las etiquetas <SOAP-ENV:Body> y </SOAP-ENV:Body>.

La estructura y el contenido del cuerpo están determinados por la definición del servicio web o la operación específica que se está utilizando. Esto se describe en el contrato del servicio web, que generalmente se define utilizando WSDL (Web Services Description Language).

Estructura de un mensaje SOAP CUERPO

Enfatizar la estructura rígida de SOAP y la definición de contratos

Enfatizar la estructura rígida de SOAP

La estructura rígida de SOAP y la definición de contratos son dos características esenciales que definen la fortaleza y confiabilidad de este protocolo de mensajería en el ámbito de la comunicación entre sistemas distribuidos y servicios web. A pesar de lo que algunos podrían considerar una limitación, esta rigidez y definición son, en realidad, las fortalezas fundamentales de SOAP.

En primer lugar, la estructura rígida de SOAP se basa en un formato estándar y consistente que utiliza XML para representar los mensajes. Cada mensaje SOAP sigue una estructura predefinida con etiquetas y atributos específicos para organizar y describir los datos transmitidos. Esta uniformidad garantiza que los mensajes sean comprensibles tanto para las aplicaciones como para los desarrolladores, lo que simplifica enormemente la depuración, el seguimiento y la interpretación de la información transmitida.

Enfatizar la definición de contratos

Enfatizar la la definición de contratos

La definición de contratos es otra característica esencial de SOAP, generalmente facilitada a través de lenguajes como WSDL (Web Services Description Language). Estos contratos especifican cómo deben estructurarse los mensajes SOAP para interactuar con un servicio web específico. Esto proporciona una guía clara tanto para el cliente como para el servidor, lo que simplifica enormemente el desarrollo, la implementación y la integración de servicios web.

Los contratos fomentan la consistencia y la coherencia en el desarrollo de aplicaciones. Siguiendo un contrato definido, los desarrolladores pueden estar seguros de que están utilizando los mensajes SOAP correctamente y que los datos se intercambian de acuerdo con las especificaciones. Esto reduce en gran medida los errores y los problemas de comunicación que podrían surgir en un entorno menos estructurado.

1. Creación del WSDL (Web Services Description Language)

Implementación de Servicios SOAP 1

La creación de un archivo WSDL (Web Services Description Language) es un paso fundamental en el desarrollo de servicios web basados en SOAP. WSDL es un lenguaje de marcado XML que se utiliza para describir los detalles técnicos de un servicio web, como los métodos disponibles, los tipos de datos utilizados y la forma en que se deben estructurar los mensajes SOAP para interactuar con el servicio.

Introducción al WSDL como un documento de descripción del servicio.

El lenguaje de descripción de servicios web, conocido como WSDL (Web Services Description Language), desempeña un papel fundamental en el mundo de la comunicación entre sistemas y en el desarrollo de servicios web. En esencia, WSDL actúa como un documento que describe y expone los detalles técnicos de un servicio web específico. Es la hoja de ruta que permite a desarrolladores, aplicaciones y sistemas entender cómo interactuar con ese servicio de manera precisa y eficiente.

Introducción al WSDL

Uso de herramientas como Apache Axis o Microsoft WCF para generar WSDL a partir de código.

Apache Axis y Microsoft WCF (Windows Communication Foundation) son dos herramientas populares que permiten generar documentos WSDL a partir de código en el contexto del desarrollo de servicios web. Cada una de estas herramientas está diseñada para un entorno específico y ofrece características y ventajas únicas.

Uso de herramientas como Apache Axis o Microsoft WCF

Demostración de un ejemplo sencillo de WSDL

<?xml version="1.0"?>

<definitions name="HelloWorld"

targetNamespace="http://example.com/helloworld.wsdl"

xmlns:tns="http://example.com/helloworld.wsdl"

xmlns:xsd1="http://example.com/helloworld.xsd"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>

<schema targetNamespace="http://example.com/helloworld.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema">

<element name="HelloWordElement">

<complexType>

<all>

<element name="worldRequest" type="string"/>

</all>

</complexType>

</element>

</schema>

</types>

<message name = "HelloWorldRequest">

<part name = "name" type = "xsd:string"/>

</message>

<message name = "HelloWorldResponse">

<part name = "greeting" type = "xsd:string"/>

</message>

<interface name = "HelloWorld_Interface">

<operation name = "sayHelloWorld">

<input message = "tns:HelloWorldRequest"/>

<output message = "tns:HelloWorldResponse"/>

</operation>

</interface>

<binding name = "HelloWorld_Binding" type = "tns:HelloWorld_Interface">

<soap:binding style = "rpc"

transport = "http://schemas.xmlsoap.org/soap/http"/>

<operation name = "sayHelloWorld">

<soap:operation soapAction = "sayHelloWorld"/>

<input>

<soap:body

encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"

namespace = "urn:examples:helloworld"

use = "encoded"/>

</input>

<output>

<soap:body

encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"

namespace = "urn:examples:helloworld"

use = "encoded"/>

</output>

</operation>

</binding>

<service name = "Hello_World">

<documentation>WSDL File for HelloWorld</documentation>

<endpoint binding = "tns:HelloWorld_Binding" name = "HelloWorld_Endpoint">

<soap:address

location = "http://www.example.com/HelloWorld/" />

</endpoint>

</service>

</definitions

2. Implementación del Servicio

Implementación de Servicios SOAP 2

Creación de clases y métodos que representan el servicio

La creación de clases y métodos que representan un servicio SOAP implica desarrollar el código que define las operaciones del servicio, los tipos de datos que se utilizan en esas operaciones y la lógica para procesar las solicitudes y generar respuestas SOAP.

Anotaciones o decoradores para definir operaciones, tipos de datos y enlaces.

Anotaciones o decoradores para definir operaciones

En el contexto de la creación de servicios web SOAP, las anotaciones o decoradores pueden variar según la tecnología y el lenguaje de programación que estés utilizando.

las anotaciones y decoradores específicos pueden variar según el framework o la biblioteca que estés utilizando en tu lenguaje de programación. La idea principal es que estas anotaciones o decoradores ayudan a definir operaciones, tipos de datos y enlaces SOAP para que el servicio web SOAP sea accesible y funcione correctamente. La forma exacta de hacerlo dependerá de la tecnología específica que elijas para implementar tus servicios web SOAP.

3. Implementación del Cliente SOAP

Implementación de Servicios SOAP 3

La implementación de un cliente SOAP implica crear un programa o una aplicación que pueda enviar solicitudes SOAP a un servicio web SOAP remoto y procesar las respuestas recibidas

Uso del WSDL para generar un cliente

El uso del archivo WSDL (Web Services Description Language) para generar un cliente SOAP es una práctica común y eficiente, ya que el WSDL proporciona una descripción detallada de la estructura y las operaciones del servicio web SOAP. Puedes utilizar herramientas y bibliotecas que generen automáticamente el código del cliente a partir del archivo WSDL

Uso del WSDL para generar un cliente

Llamadas al servicio SOAP utilizando el cliente generado.

Una vez que hayas generado el cliente SOAP a partir del archivo WSDL y configurado correctamente tu entorno, puedes realizar llamadas al servicio SOAP utilizando las clases y métodos generados.

Llamadas al servicio SOAP utilizando el cliente generado.

Manejo de errores y excepciones del cliente

El manejo de errores y excepciones es fundamental al trabajar con clientes SOAP, ya que las llamadas a servicios web pueden generar situaciones inesperadas. Es importante capturar y manejar adecuadamente estas excepciones para garantizar un comportamiento robusto y confiable en tu cliente SOAP

Manejo de errores y excepciones

Implementación de Servicios REST

Implementación de Servicios REST 1

La implementación de servicios REST implica la creación de API (Interfaz de Programación de Aplicaciones) que siguen los principios de REST para permitir la comunicación y el intercambio de datos entre diferentes sistemas a través de HTTP.

1. Diseño de Recursos

El diseño de recursos REST es una parte fundamental al crear servicios web RESTful. Los recursos son entidades o conceptos que se exponen a través de tu API REST y se identifican mediante URLs únicas.

1. Diseño de Recursos

Identificación de recursos y sus URIs

La identificación de recursos y la asignación de URIs (Uniform Resource Identifiers) a esos recursos son aspectos fundamentales en la arquitectura REST.

EJE:

Recurso: Producto

URI de la colección de productos: /productos

URI de un producto específico por ID: /productos/123

Recurso: Usuario

URI de la colección de usuarios: /usuarios

URI de un usuario específico por nombre de usuario: /usuarios/johndoe

Recurso: Publicación de Blog

URI de la colección de publicaciones: /publicaciones

URI de una publicación de blog específica por ID: /publicaciones/456

Identificación de recursos y sus URIs

Definición de operaciones CRUD

En REST, las operaciones CRUD se refieren a un conjunto de operaciones estándar que se realizan en recursos (objetos de datos) a través de una API REST. Estas operaciones CRUD son fundamentales para cualquier sistema que implemente un servicio web RESTful y se basan en las acciones básicas de Crear, Leer, Actualizar y Eliminar.

Definición de operaciones CRUD

Uso de estándares de nomenclatura de URIs.

El uso de estándares de nomenclatura de URIs (Uniform Resource Identifiers) en REST es importante para asegurar que las URIs sean coherentes, significativas y fáciles de entender tanto para los desarrolladores como para los usuarios finales de una API. Aunque no existe un estándar único para la nomenclatura de URIs en REST, hay algunas buenas prácticas y convenciones ampliamente aceptadas que puedes seguir

Uso de estándares de nomenclatura de URIs.

2. Implementación de Endpoints

Implementación de Servicios REST 2

La implementación de endpoints en una API REST implica definir y desarrollar las rutas (URIs) a las que los clientes pueden acceder para interactuar con los recursos y realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar).

Creación de controladores o rutas que gestionan las solicitudes HTTP.

La creación de controladores o rutas que gestionan las solicitudes HTTP en una API REST es una parte fundamental del desarrollo de la aplicación.

Creación de controladores o rutas que gestionan las solicitudes HTTP.

Uso de verbos HTTP

El uso de verbos HTTP en REST es fundamental para definir la operación que se realizará en un recurso específico. Cada verbo HTTP representa una acción diferente que se ejecuta en el recurso identificado por una URI.

EJEMPLO:

GET (Obtener):

Uso: Utilizado para recuperar información de un recurso o una colección de recursos.

Ejemplo: GET /productos recupera una lista de todos los productos disponibles.

Respuesta: Retorna los datos del recurso solicitado en la respuesta.

Uso de verbos HTTP

3. Formato de Datos

Implementación de Servicios REST 3

En una API REST, el formato de datos es fundamental para la comunicación entre el cliente y el servidor. Los dos formatos de datos más comunes utilizados en las respuestas de una API REST son JSON (JavaScript Object Notation) y XML (eXtensible Markup Language). Ambos formatos tienen sus ventajas y desventajas, y la elección entre ellos generalmente depende de las preferencias y necesidades específicas del proyecto.

Elección de formatos de intercambio de datos

La elección de formatos de intercambio de datos en REST es un aspecto importante al diseñar una API. Los dos formatos más comunes para intercambiar datos en una API REST son JSON (JavaScript Object Notation) y XML (eXtensible Markup Language).

Elección de formatos de intercambio de datos

Codificación y decodificación de datos en el servidor y el cliente

La codificación y decodificación adecuadas de datos en formato JSON o XML son fundamentales para garantizar una comunicación eficiente y precisa entre el servidor y el cliente en una API REST. Los ejemplos anteriores ilustran cómo realizar estas operaciones en JavaScript y Node.js, pero los principios son similares en otros lenguajes de programación y entornos de desarrollo.

Codificación y decodificación de datos en el servidor y el cliente

Validación y transformación de datos

Validación y transformación de datos

La validación y transformación de datos en una API REST son aspectos críticos para garantizar la integridad de los datos y su coherencia antes de ser almacenados o procesados. Estos procesos ayudan a prevenir errores y aseguran que los datos cumplan con las expectativas del servidor y del cliente.

la validación y transformación de datos son prácticas esenciales en una API REST para garantizar la calidad y la integridad de los datos que se transmiten y almacenan. Estos procesos deben ser parte integral de la lógica de tu API y deben implementarse de manera coherente en todas las operaciones CRUD y en las respuestas a las solicitudes de los clientes.

CONCLUSION

CONCLUSION

En conclusión, SOAP (Simple Object Access Protocol) y REST (Representational State Transfer) son dos enfoques populares para el diseño de servicios web en arquitecturas distribuidas, cada uno con sus propias ventajas y desventajas. La elección entre SOAP y REST depende en gran medida de las necesidades y requisitos específicos del proyecto, así como de las consideraciones de diseño y las limitaciones tecnológicas.

ACTIVIDAD SEMANA 6

PRESENTACION

ESPECIALIZACION EN DESARROLLO DE SOFTWARE

TRABAJO PRESENTADO POR:

HAROLD LUIS RODRIGUEZ RIVERA

CORPORACION UNIVERSITARIA MINUTO DE DIOS

PRESENTADO AL PROFESOR :

RICARDO ANDRES FOSECA PERDOMO

Learn more about creating dynamic, engaging presentations with Prezi