Please enable JavaScript.
Coggle requires JavaScript to display documents.
Tercer módulo de Sistemas Distribuidos - Coggle Diagram
Tercer módulo de Sistemas Distribuidos
Servicios web
Definición
Aplicaciones y tecnologías con capacidad de interaoperar en la web.
W3C: "Un sistema de software diseñado para soportar interoperabilidad de interacción máquina a máquina sobre una red."
Función
Ofrecer servicios especializados mediante el intercambio de datos.
Integrar soluciones y aplicaciones actuales en una empresa.
Tecnologías utilizadas
SOAP
Es un formato de datos basados en XML
Empaqueta la información entre proveedor y cliente
Utiliza protocolos como HTTP, SMTP o FTP
XML
Lenguaje adaptable
Permite enviar y recibir información
Formato similar a HTML
WDSL
Documento en formato XML
Describe las interfaces, parámetros, tipos de datos, puertos, enlaces y protocolos específicos del servicio
UDDI
Repositorio basado en servicios
Categoriza según funcionalidad o giro de negocio
Beneficios
Soportan gran demanda de solicitudes
Actualmente son considerados tendencia en el desarrollo web.
Son increíblemente beneficiosos en el desarrollo con tecnologías integradas.
Desventajas
No hay un estándar fijo
No es necesariamente muy seguro.
Rendimiento bajo en comparación a RMI o DCOM.
Estilos de uso
Remote Procedures Calls (RPC)
Protocolo que permite ejecutar una subrutina en otra computadora sin que el programador tenga que especificarlo.
ServiceOriented Architecture (SOA)
Representa un acoplamiento más débil en relación a RPC
Representational State Transfer (REST)
Impone un conjunto de operaciones estándares (GET, PUT, DELETE) y se enfoca en interactuar con estados de recursos.
REST
CARACTERÍSTICAS
Los objetos se manipulan a partir de la URI
Interfaz uniforme
Se configura como protocolo Cliente-Servidor
Especificaciones HTTP / Verbos
GET
PUT
POST
DELETE
PATCH
Datos que pueden almacenarse en caché para eliminar
API de REST es más flexibles y se pueden configurar con mayor facilidad
VENTAJAS
Independencia de tecnologías / lenguajes
Fiabilidad, escalabilidad, flexibilidad
Separación entre Cliente y Servidor
Independiente de tipo de plataformas o lenguajes
Requiere menos recursos del servidor
Proporcionar códigos de estado específicos
Incluir información adicional en los organismos de respuesta
Presenta una Interfaz para conectar varios sistemas basados en el protocolo HTTP
-XML: Es un lenguaje que nos ayuda en los servicios web a poder dar una respuesta o si se obtiene alguna petición.
-JSON: Es otro lenguaje que tiene la facilidad de intercambiar datos entre los servicios web, entre un cliente y servidor.
Permite a los proveedores de API entregar datos en múltiples formatos, como texto sin formato, HTML, XML, YAML y JSON
Definicion
Se utiliza API REST para diversos servicios web ya que realiza diferentes operaciones en una interfaz uniforme que aplica especificaciones en HTTP de (POST, GET, PUT y DELETE)..
SOAP
¿Qué es?
Es un protocolo de comunicación basado en XML para el intercambio de información entre aplicaciones en un entorno distribuido.
¿Qué es XML?
Es un metalenguaje de 2da generación, ya que es un subconjunto del Lenguaje de Anotaciones Generales (SGML), que lo describe como un lenguaje de marcas que pueden ser interpretadas por software, y ser integradas en otros lenguajes de marcas, tales como HTML
Podemos caracterizarlo como un lenguaje flexible, escalable y sobre todo adaptable
Permite enviar y recibir información, datos estructurados en la web o entre aplicativos entre sí, y de esta manera eliminar las diferentes restricciones que teníamos en el lenguaje HTML
VENTAJAS SOAP
Soporta varios Protocolos y tecnologías como WSDL, SOAP, XSD.
El SOAP requiere menos código de plumbing code de servicios web con, las transacciones, la seguridad, la coordinación, direccionamiento, la confianza, etc.
Si no se cuenta con las herramientas correctas, la interpretación puede tornarse demasiado compleja y difícil.
Debido a la detallada en formato XML, SOAP puede ser considerablemente más lento.
VULNERABILIDADES SOAP
SOAP está basado en XML por ello es vulnerable a diferentes ataques que se presenten dentro del protocolo de la capa de aplicación y con mayor frecuencia.
VULNERABILIDADES ESTRUCTURALES
Derivan de la intervención de las líneas de comunicación.
Intercambian mensajes SOAP
Dan lugar ataques como: Interceptación de mensajes, Spoofing, denegación de servicio, etc.
VULNERABILIDADES SEMÁNTICAS
Derivan de las debilidades de la codificación.
Proporciona modo abierto para la comunicación a través de la Web mediante mensajes.
Dan lugar ataques como: Acceso invalido, manejo de errores, Contenido malicioso, etc.
Las más comunes son:
Inyección SQL
Inyección de comando
Inyección XML
Secuencias de comandos entre sitios web
Falsificación de solicitudes
SEGURIDAD
SOAP no tiene un tipo de seguridad propia, sino que depende de los otros métodos que le ayudan a funcionar para que esta exista, tal como vendría a ser con HTTPS, proporcionando una seguridad entre dos puntos, cosa que también se conseguiría con SSL y TLS.