Tema_7_C/S_ServiciosWeb Flashcards
¿Qué es Cliente/Servidor?
Es un modelo de Software distribuido.
Sus componentes SW y HW, están en ordenadores en red, que se coordinan mediante paso de mensajes.
Ejemplos: E-mail, WWW, Servidor de impresión.
Características de C/S
- Compartición de recursos
- Concurrencia
- Arquitectura abierta
- Escalabilidad
- Tolerancia a fallos
- Transparencia
Tipos de escalabilidad.
Horizontal → Meter más máquinas físicas.
Vertical → Aumentar la RAM, CPU’S, etc..
¿Que es arquitectura abierta?
Es estandarizar. No usar tecnologías propietarias.
¿Qué es Middleware?
El middleware es una capa o nivel de software situada entre la red y las aplicaciones, que ofrece un interface de programación de aplicaciones (API) común para el intercambio de mensajes entre diversas secciones de aplicaciones de proceso distribuido.
Traduce el mensaje del origen, para que el destino lo entienda.
Di nombres de Middleware:
- RPC
- ORB
- RMI
- CORBA
- XML-RPC
- SOAP
¿Qué es WSDL?
- Web Service Description Language.
- En XML.
- Describe la funcionalidad que ofrece nuestra web.
- Última versión 2.0
- Se genera automáticamente a partir del código.
¿Que es UDDI?
Son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration.
Estandarizado por OASIS.
El registro en el catálogo se hace en XML.
El registro de un negocio en UDDI tiene tres partes:
* Páginas blancas - dirección, contacto y otros identificadores conocidos.
* Páginas amarillas - Donde están los servicios publicados..
* Páginas verdes - información técnica sobre acceso al servicio.
¿Qué es SOAP?
Simple Object Access Protocol
- Es un documento en XML que sirve para realizar las peticiones y recibir las respuestas.
- Es propiamente, la herramienta para invocar los servicios web que se describen en WSDL y UDDI
- Tiene que ir siempre por POST
- Está estandarizado por la W3C, igual que XML.
- Es una evolución de XML-RPC
- Protocolo usado en servicios web.
- Basado en XML. Va sobre HTTP.
- Si hay un fallo, las respuestas pueden ser 200 o 500(fault).
- Especificación para el intercambio de información estructurada en servicios web, a través de redes de ordenadores
¿En WSDL, 2.0, como se llama la etiqueta donde se agrupan las operaciones?
Interfaz WSDL
¿Que es PortType?
Lo mismo que Interfaz. Es donde se agrupan las operaciones.
¿Qué son los MESSAGE?
Son los datos de entrada y de salida que recibe y envía la operación.
¿Qué es Binding?
Describe el protocolo que se podría usar en vez de HTTP para acceder a los servicios web. Normalmente los servicios web están vinculados a HTTP.
La sintaxis sería: “http://schemas.xmlsoap.org/soap/ http” Si usamos http, pero si usamos otro, como por ejemplo smtp, pues se pone en vez de http.
¿Quién estandariza, WSDL, UDDI y SOAP?
- WSDL y SOAP La W3C
- UDDI lo estandariza OASIS.
¿Un servicio WEB es para una persona?
No. Es para comunicación entre dos aplicaciones.
Estructura de WSDL 1.1
- TYPES → Tipos de datos usados en los mensajes = xsd
- MESSAGE → Entradas y salidas de las operaciones
- PORTTYPE → Asocia los mensajes con las operaciones que los generan.
- BINDING → Para especificar si el protocolo que vamos a usar es diferente a HTTP. Sería así: “http://schemas.smlsoap.org/soap/http (Si usamos http) o cualquier otro”
- SERVICE → Especifica el Endpoint, es decir,los puertos y la dirección por donde lo publicas.
Diferencias entre WSDL1.1 y 2.0.
¿Elementos de seguridad en servicios web?
¿Qué se puede hacer con WS-SECURITY?
- Se puede FIRMAR (XML signature)
- Se puede ENCRIPTAR (XML encryption)
- Se puede AUTENTICAR UsernameToken, BinarySecurityToken(X.509 certificate, SAML Token, Kerberos Ticket)
Todo en la cabecera SOAP
REST usa los métodos de HTTP, para operar con las URI’s.
- GET /**** → Solo para hacer consultas
- DELETE /****→ Para eliminar recursos.
- PUT /**** → Para editar un registro existente.
- POST /**** → Para crear un nuevo registro.
- PATCH /****→ Para editar partes concretas de un recurso.
- HEAD /****→ Para obtener información sobre un recurso.
¿Que es HATEOAS?
Hypermedia as the Engine of Application State
Es una restricción de REST. Con HATEOAS, un cliente interactua con una aplicación web, que proporciona información de forma dinámica a través de hipermedia.
Al hacer una consulta, nos devuelve solo los datos que hemos pedido y si queremos ver más datos relacionados con este recurso, se especifican en un nodo llamado “ links ”.
En REST, ¿Donde se refleja la documentación de nuestra aplicación?
Se crearon diferentes lenguajes:
*. WADL
*. RAML
Pero los que se han quedado son:
SWAGGER / OPENAPI, en formato JSON o YAML y WSDL 2.0.
¿Qué es REST?
Es HTTP + JSON O XML
Significa Representational State Transfer o transferencia de representación de estado.
- Orientado a recursos
- Arquitectura Hipermedia (HaTEOAS)
- Sin Estado
- Varios EndPoints (URI’s)
- Verbos HTTP, mapeados con funcionalidades.
- POST, para crear
- PUT, para actualizar
- PATcH, actualización parcial.
- API de JAVA para servicios, JAX-RS
- Proveedores serían, RestEasy, Jersey, Restlet
REST es un tipo de arquitectura de desarrollo web que se apoya totalmente en HTTP, por lo que REST NO TIENE ESTADO, lo que significa que no recuerda lo que le hemos pasado hace unos minutos.
Nace de una tesis doctoral.
¿Principios fundamentales de REST?
- Protocolo cliente - servidor, sin estado. HTTP
- Operaciones bien definidas → VERBOS HTTP + RECURSOS
- Sintaxis para identificar recursos → URI
- Navegación hipermedia → HATEOAS
¿Como está implementada la seguridad en REST?
- OAuth2 → Se solicita autentificación a una web tercera. Authorization : Bearer 1azB475 (TOKEN). El número que devuelve OAUTH, es solo un número largo, que se guarda en el servidor, para autenticarte.
- JWT → (Json Web Token ) También por terceros → Se envía en un encabezado HTTP con el nombre “Authorization: Bearer” → En base 64 y la estructura del JWT es Header, Payload, Signature. Se genera en el servidor y nos lo entrega firmado. Son tres partes separadas por puntos.
- OpenID
¿Cual es la API de JAVA, para REST?
JAX-RS
¿Qué es GRAPH QL?
Es una tecnología de Facebook.
Nos devuelve, en tiempo de uso, solo los datos que especifica el cliente.
¿Qué tipo de separación tienen el cliente y el servidor?
Lógica.
¿Qué es un recurso en C/S?
Cualquier elemento.
¿Quién gestiona los recursos dentro de la arquitectura C/S?
El gestor de recursos.
¿Que funciones realiza el gestor de recursos?
- Nombre de recursos
- Mapeo de nombre a direcciones de comunicación.
- Coordinación de accesos concurrentes sobre recursos.
¿Qué protocolo nos ayuda a sincronizar la concurrencia?
NTP
Network Time Protocol
Usa UDP como capa de transporte.
Puerto 123
Concurrencia VS Paralelismo
CONCURRENCIA es la SOLICITUD de recursos de forma simultanea.
PARALELISMO es la ENTREGA de recursos de forma simultanea.
¿Existe algún sistema completamente estandarizado de C/S?
Si, DCE.
Distributed Computing Environment