B3-T6 Arquitectura de sistemas: cliente/Servidor y multicapas. Arquitecturas de servicios web y protocolos asociados. Flashcards
Arquitectura cliente/servidor (2 Capas)
Permitieron que parte del procesamiento realizado en el servidor fuese descargado a los PCs cliente.
Distribución de los componentes de la aplicación:
la base de datos reside en el servidor,
el interfaz de usuario reside en el cliente,
y la lógica de negocio puede residir tanto en el cliente (en forma de código), como en el servidor (en forma de procedimientos almacenados) o en ambos.
Arquitectura cliente/servidor Multicapa (3 Capas)
Es la mas común usada actualmente. Dividen la arquitectura del sistema en tres capas lógicas:
La capa de interfaz con el usuario.
La capa de reglas o lógica de negocio.
La capa de acceso a la base de datos.
Tipos de arquitecura Multicapa
Presentación remota
Presentación distribuida
Proceso distribuido
Base de datos distribuida
Base de datos remota
Presentación remota
La capa de presentación de datos, se ejecuta en el cliente totalmente. En ella se realizan las validaciones de los datos de entrada, el formateo de los de salida, etc. La lógica de negocio y el acceso a la base de datos se aloja en el servidor.
Presentación distribuida
La capa de presentación se encuentra distribuida entre el cliente y el servidor, de manera que en el cliente se modifica o adapta la presentación que ofrece el servidor. Este tipo de sistemas tienen un difícil mantenimiento.
Proceso distribuido
En este modelo, la capa que implementa la lógica de negocio se encuentra dividida entre el cliente y el servidor. El acceso a la base de datos se encuentra en el servidor y la capa de presentación en el cliente.
Base de datos distribuida
Las capas de negocio y de presentación se ejecutan completamente en el cliente, mientras que la base de datos está distribuida entre el cliente y el servidor. Se requieren de mecanismos para asegurar la coherencia en los datos.
Base de datos remota
Las capas de negocio y de presentación se ejecutan completamente en el cliente, mientras que la base de datos está completamente en el servidor.
Servicio web (web service)
Tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. La interoperabilidad se consigue mediante la adopción de estándares abiertos. OASIS y W3C
Arquitectura de servicios web
Existen tres partes: proveedor de servicios web, el que pide el servicio web y el publicador.
El proveedor de servicios envía al publicador del servicio un fichero WSDL con la definición del servicio web.
El que pide el servicio contacta con el publicador y descubre quién es el proveedor (protocolo WSDL) y contacta con el proveedor (protocolo SOAP).
El proveedor valida la petición de servicio y envía el dato estructurado en formato XML utilizando el protocolo SOAP.
El fichero XML es validado de nuevo por el que pide el servicio utilizando un fichero XSD.
Protocolos asociados en la arquitectura de Servicios web
Web Services Protocol Stack
XML (Extensible Markup Language)
SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call)
Otros protocolos: HTTP, FTP, SMTP
WSDL (Web Services Description Language)
UDDI (Universal Description, Discovery and Integration)
WS-Security (Web Service Security)
REST (Representational State Transfer)
GraphQL, arquitectura alternativa a REST
Ventajas de los servicios web
Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.
Fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.
Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados
Inconvenientes de los servicios web
Para realizar transacciones, no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA
Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como Java Remote Method Invocation (RMI), CORBA o Distributed Component Object Model (DCOM). Es uno de los inconvenientes derivados de adoptar un formato basado en texto (XML no conciso ni eficaz en el procesamiento).
Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de la barrera.
Web Services Protocol Stack
Conjunto de servicios y protocolos de los servicios web.
XML (Extensible Markup Language)
Formato estándar para los datos que se vayan a intercambiar.
Otros protocolos (HTTP, SMTP, FTP)
Los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales
WSDL (Web Services Description Language)
Lenguaje de la interfaz pública para los servicios web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios web.
Ultima recomendacion de WSDL del W3C
2.0
Estructura del WSDL
<service> Contiene el conjunto de funciones que han sido expuestas a los protocolos basados en red.
<endpoint> Dirección o punto de conexión al Web Service (HTTP URL string).
<binding> Especifica la interfaz y define el estilo de enlace SOAP (RPC/Documento) y el transporte (Protocolo SOAP).
<interface> Define un servicio web, las operaciones que se pueden realizar y los mensajes que se utilizan para realizar la operación.
<operation> Define las acciones SOAP y la forma en que se codifica el mensaje, por ejemplo, "literal".
<types> Describe los datos. Para este fin se utiliza (en línea o referenciado) el lenguaje de esquema XML (también conocido como XSD).
</types></operation></interface></binding></endpoint></service>
UDDI Universal Description, Discovery and Integration - Catálogo de Negocios de Internet
Protocolo para publicar la información de los servicios web. Es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. Permite comprobar qué servicios web están disponibles.
UDDI
El registro de un negocio en UDDI tiene tres partes:
Páginas blancas - dirección, contacto y otros identificadores conocidos.
Páginas amarillas - categorización industrial basada en taxonomías.
Páginas verdes - información técnica sobre los servicios que aportan las propias empresas.
WS-Security (Web Service Security)
Protocolo de seguridad aceptado como estándar por OASIS. Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.
Incluye detalles en el uso de SAML y Kerberos, y formatos de certificado tales como X.509.
SAML Security Assertion Markup Language - Lenguaje de Marcado para Confirmaciones de Seguridad
Es un estándar abierto que define un esquema XML para el intercambio de datos de autenticación y autorización.
Kerberos
Protocolo de autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de manera segura.
Se basa en criptografía de clave simétrica y requiere un tercero de confianza. Existen extensiones del protocolo para poder utilizar criptografía de clave asimétrica.
Los mensajes de autenticación están protegidos para evitar eavesdropping y ataques de Replay.
X.509
Estándar UIT-T para infraestructuras de claves públicas (PKIs). Especifica formatos estándares para certificados de claves públicas y un algoritmo de validación de la ruta de certificación.
Su sintaxis, se define empleando el lenguaje ASN.1 (Abstract Syntax Notation One).
Especificaciones asociadas a WS-Security
WS-SecureConversation
WS-Federation
WS-Authorization
WS-Policy
WS-Trust
WS-Privacy
REST (Representational State Transfer)
“Estilos arquitectónicos y el diseño de arquitecturas de software basadas en redes”
Estilo arquitectónico, que haciendo uso del protocolo HTTP, proporciona una API que utiliza cada uno de sus métodos (GET, POST, PUT, DELETE, etcétera) para poder realizar diferentes operaciones entre la aplicación que ofrece el servicio web y el cliente.
Principios del estilo REST
- Arquitectura cliente-servidor: separación de responsabilidades y la portabilidad.
- Ausencia de estado: El estado se guarda y mantiene en el cliente y no en el servidor.
- Habilitación y uso de la caché. Todas las solicitudes deben declarar si son o no cacheables, (encabezado cache-control)
- Sistema por capas.
- Interfaz uniforme.
¿Qúe es la Interfaz Uniforme (Principio de Servicios REST) ?
- Identificación de recursos en las peticiones (Solicitudes a recursos individuales, el tipo de formato se puede especificar en las cabeceras HTTP).
- Manipulación de recursos a través de representaciones. (cuando un cliente posee la representación de un recurso, incluyendo cualquier metadato adjunto, tiene suficiente información para modificar o eliminar el estado del recurso)
- Mensajes auto-descriptivos. (Contiene toda la información que el cliente necesita para entenderlo)
- Hipermedia como motor del estado de la aplicación
GraphQL
Arquitectura alternativa a REST. Desarrollado por Facebook, para luego ser liberado. Fundación GraphQL alojada por la Fundación Linux.
Permite a los clientes definir la estructura de datos requerida, y la misma estructura de datos será regresada por el servidor, impidiendo así que excesivas cantidades de datos sean regresadas (influye en la efectividad del caché web).
Open API