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.