b3t7 - Servicios web y Cliente Servidor Flashcards
Qué diferencia hay entre los siguientes tipos de escalabilidad?
- Vertical
- Horizontal
- Scale up
- Scale out
- Vertical: Cambiar el tipo de servidor por otro con más recursos
- Horizontal: Aumentar el nº de servidores
- Scale up: Aumentar recursos hw
- Scale out: Distribuir la carga
Qué es y para qué se utiliza RPC?
Remote Procedure Call: Es una forma de programación distribuida que permite invocar desde rutinas de una máquina a rutinas de otra máquina a través de la red y de forma transparente
Qué importante protocolo de ficheros distribuidos usa por debajo RPC para invocar a las system calls del kernel de Linux para acceder a ficheros y directorios
NFS (Network File Sistem)
Qué es la OSF DCE?
Distributed Computing Enviroment: Es una arquitectura de computación distribuida
Estándar de facto promovido por fabricantes de sistemas distribuidos que permite independizarse del SO y de las redes
La última versión es la OSF DCE 1.2.2 también llamada Free DCE por el tipo de licencia LGPL que tiene
¿Qué es el middleware? Algunos ejemplos
Elemento que facilita la interoperabilidad del sistema a través de la red ocultando la complejidad al desarrollador y al usuario final.
RPC, , CORBA, ORB (Object Request Broker), como Java RMI), XML-RPC, SOAP, …,
Qué es el IDL en estándares tipo RPC?
Es la Interface Definition Language: Para definir el catálogo de funciones remotas que se pueden invocar y cómo. De esta forma las arquitecturas tipo RPC son compatibles con cualquier tecnología de desarrollo por la parte llamante y llamada
Qué diferencia hay entre concurrencia y paralelismo en la arquitectura C/S?
- Concurrencia implica que se solicitan recursos de forma simultánea
- Paralelismo implica que se sirven recursos de forma simultánea
Qué protocolo se usa para gestionar la sincronización de la concurrencia y el paralelismo?
NTP Network Time Protocol
Qué estándar define la Transparencia en arquitecturas C/S, como la tranparencia de acceso, de ubicación, de concurrencia, de réplicas, ante fallos, migración, etc…?
Modelo ISO/IEC RMODP (Reference Model for Open Distributed Processing)
Qué diferencia hay en las arquitecturas C/S entre capa y nivel?
- Capa: visión lógica → SW
- Nivel: visión física → HW
Qué es CORBA y quién lo ha desarrollado?
Arquitectura Cómun de ORB. Una forma de estandarizar los ORBs y que sean compatibles entre sí a pesar del lenguaje.
La ha desarrollado el OMG (Object Management Group)
Que 3 estándares definen la w3c y OASIS relativos a los primeros web services?
- WSDL Web Services Description Language : descripción del servicio
- UDDI Universal Description, Discovery and Integration: Registro de servicios (como unas páginas amarillas) (Universal Description, Discovery and Integration)
- SOAP Simple Object Access Protocol: invocación de los servicios
Cómo se llama el estándar que sacó la WS-I (web service Interoperability Organization) sacó un estándar que reunía los 3 protocolos iniciales publicadosp por la w3c de WSDL, UDDI y SOAP?
WS-I Basic Profile
Cómo se llama la ampliación que sacó la WS-I (web service Interoperability) para estandarizar la seguridad en los servicios web?
WS-I Security Profile
Dentro de las partes de un WSDL, explica las siguientes:
- types
- message
- portType / interface
- binding
- service
- types → tipos usados en los mensajes (xsd)
- message → entradas y salidas de las operaciones
- portType / interface → Indica las operacines y las asocia con los mensajes. En la versión 2.0 de w3c se llama interface
- binding → protocolos de comunicación (siempre ha sido http)
- service → conjunto depuertos y dirección de acceso (endpoint)
Que versión de la w3c de webservices da soporte para REST?
La 2.0
Cómo se llama el API de Java para crear e invocar servicios web?
JAX-WS
Qué método http usan siempre las llamadas a servicios SOAP?
POST siempre
Cómo se llama el standar que define la seguridad en SOAP?
WS-Security. Se incluye en el head del servicio (etiquetas
Permite firmar, cifrar y autenticar
Qué dos etiquetas usa la librería Java JAX-WS para indicar que algo es un servicio y algo un método?
@WebService
@WebMethod
Cuál es la etiqueta de respuesta para devolver errores en SOAP?
fault
Qué verbos se usan para las siguientes operaciones en REST?
- Consultar
- Borrar
- Añadir
- Actualizar
- GET
- DELETE
- POST
- PUT
Qué es el concepto HATEOAS en REST?
Hypermedia As The Engine of Application State
El servicio te devuelve un json con la entidad pedida, pero no con las entidades relacionadas, sino que se puede devolver un array “links” con los endpoints de las entidades relacionadas en campo href
Qué estándares ha habido para generar la documentación de servicios REST y cuál se ha quedado?
- WADL
- WSDL 2.0
- RAML
- Swagger → OpenAPI
Cómo se llama el formato de fichero que genera OpenAPI para definir un servicio?
YAML
Cuáles son los principios fundamentales de REST?
Protocolo cliente-servidor SIN ESTADO
Sintaxis para identificar recursos (URI)
Operaciones bien definidas (verbos html + recursos)
Navegación hipermedia (HATEOAS)
Qué partes componen un token JWT
Tiene 3 partes codificadas en base64, separadas por puntos
- header → json con tipo = JWT y algoritmo de cifrado usado en la firma
- payload → json con los metadatos del usuario autenticado
- firma → (header + . + payload, secret) encriptados
Qué api de java se usa para generar e invocar servicios REST?
JAX-RS
- Principales anotaciones de JAX-RS
◦ @Pathespecifica la ruta de acceso relativa para una clase recurso o método.
◦ @GET,@PUT,@POST,@DELETEy@HEADespecifican el tipo de petición HTTP de un recurso.
◦ @Producesespecifica los tipos de mediosMIMEde respuesta.
◦ @Consumesespecifica los tipos de medios de petición aceptados.
En la securización de REST mediante OAuth o JWT, qué se manda en la cabecera de la request?
Authorization: Bearer (token)
Qué empresa creó GraphQL?
Qué es?
Lenguaje que permite hacer querys sobre APIs, y que no te devuelva todo lo que devolvería el endpoint, sino más acotado y se puede dar altas, modificaciones y borrados tras las búsquedas con MUTATION
Qué son las MUTATION en GraphQL?
Permite crear, actualizar y borrar tras una búsqueda
Los objetos QUERY son para búsqueda
Nombra una librería Javascript para generar código GraphQL en la parte cliente
Nombra otra de PHP de la parte servidor
Js → Apollo Client
PHP → Lighthouse
Qué tipo de producto se solía usar para abstraer a los consumidores y proveedores de servicios en una arquitectura SOA y que ya está en desuso?
ESB, Enterprise Service Bus
Qué código http hay que devolver en un servicio SOAP cuando devuelve un error por fault?
Un 500, pero hay polémica porque podría ser 200 porque es un error controlado. Si aparecen las dos en el examen, a lo mejor no contestar.
Hablando de REST, ¿que ventajas nos aporta graph-ql en lugar de los clasicos servicios REST?
La capacidad para “seleccionar” solo aquella información que nos interesa en el cliente. Tambien dispone de funcionalidades de actualización llamadas “mutations”
Qué es gRPC de Google?
Tecnología que es algo como RPC sobre HTML/2, más o menos nueva
Usa Proctol Buffer para generar clases en el lenguaje que sea para acceder a los campos de las estructuras que se interacambian entre el proceso llamante y el llamado
Se envía en binario, en lugar un xml o un json
Necesita stubs (como clases cliente) en la parte cliente y un gRPC Server en la parte servidora
Usa para definir las operaciones el lenguaje IDL, como los antiguos RPC
Productos que son implementaciones de JAX-WS para la creación de servicios web?
AXIS2
CFX
JBossWS
Metro (Glassflish)
Productos que son implementaciones de JAX-RS para la creación de servicios web?
CFX
Jersey
RestEasy
Restlet
Qué es MTOM en el contexto de SOAP?
Para envío de binarios (por ejemplo archivos pdf) en ws, pero no embebido en un campo del xml soap, sino por fuera.
Hay que indicar el tipo mime
A un estandar de la W3C para enviar ficheros adjuntos usando las capacidades MIME (dentro del mensaje HTTP)
Cómo se expresa el hipermedia según HATEOAS en los servicios REST?
Con un objeto Links, que es un array de objetos de tres campos:
href → endpoint
rel → entidad relacionada
type → método http
Qué significan los “claims” estándar que se ponen en el payload del JWT?
exp
sub
iat
exp → fecha de expiración
sub → el subject del token
iat → cuándo se ha generado el tokenexp
Las primeras preguntas mas de teoría cliente/servidor Dani las va a revisar porque no son tan importantes. Ver la nueva ficha de GSI en la que ha dejado lo importante