Diseño de software en Arquitectura Cliente-Servidor Ing. Estuardo López Posgrado en informática con énfasis en Banca Electrónica y Comunicaciones UMG, 2017 Guatemala, noviembre del 2017
1
2
INTRODUCCIÓN • Revisión breve para el modelo OSI • Comunicación punto a punto • Paradigma cliente-servidor
3
Estratificación Divide una tarea en pedazos y luego resuelva cada pieza de forma independiente (o casi). El establecimiento de una interfaz bien definida entre las capas facilita la transferencia. Principales ventajas: • Reutilización de código • Extensibilidad
4
Ejemplo: Agencia de envío de paquetes • Carta en sobre, agrega información de destinatario. • La oficina local conduce al aeropuerto y entrega al centro. • Enviado por avión a la ciudad más cercana. • Entregado a la oficina correcta. • Entregado a la persona adecuada.
5
Ejemplo Agencia de transporte
6
DiseĂąo de sistemas de software Aplicaciones de red Sistemas operativos Sistemas de ventanas
7
Todo Sistema es un sistema de capas Aplicaciones LibrerĂas Funciones Kernel
8
Modelo de referencia OSI La propuesta de la Organización Internacional de Normalización (ISO) para la estandarización de los diversos protocolos utilizados en redes informáticas (específicamente las redes utilizadas para conectar sistemas abiertos) se denomina Modelo de Referencia de Interconexión de Sistemas Abiertos (1984), o simplemente el modelo OSI. 9
Modelo OSI Aunque el modelo OSI es solo un modelo (no una especificación), generalmente se considera como el modelo más completo (y debería serlo). Casi todas las suites de protocolo de red populares que se usan hoy en día se desarrollaron antes de que se definiera el modelo OSI. 10
OSI y sus 7 capas 7 Aplicación
Protocolos de alto nivel
6 Presentación 5 Sesión 4 Transporte 3 Red 2 Enlace de datos 1 Físico
Protocolos de bajo nivel 11
Modelo de red simplificado Process
Process Protocolos de interfaz
Transport
Transport Protocolos punto a punto
Network
Network
DataLink
DataLink
12
Qué es un Protocolo? • Es un conjunto de reglas para la comunicación. o Tanto el emisor como el receptor necesitan entender el protocolo. • ¡Los protocolos deben ser formalmente definidos y no ambiguos! • Hay muchos protocolos existentes y esta se aplican a diferentes tácticas. 13
Interfaces y protocolos punto a punto Interfaces de protocolos. Describen la comunicaciรณn entre capas en el mismo punto final.
Protocolos punto a punto. Describen la comunicaciรณn entre pares en la misma capa.
14
Capa física Coordina las funciones requeridas para transmitir un flujo de bits en un medio físico Preocupaciones • Características físicas de las interfaces y medio • Representación de bits o Velocidad de datos (velocidad de transmisión): bits/seg o Sincronización de bits 15
Capa física Configuración de línea • de punto a punto • multipunto Topología física malla, estrella, anillo o bus. Modo de transmisión simplex, semidúplex o dúplex completo
16
Capa fĂsica
17
Capa de Enlace de datos Transforma la capa física en un enlace confiable. Hace que la capa física aparezca libre de errores en la capa superior. Responsable de marcos de enmarcado Direccionamiento físico (dirección física) El encabezado define el emisor y/o el receptor Receptor es el dispositivo conectado a la siguiente
18
Capa de Enlace de datos
19
Capa de red Responsable de la entrega de origen a destino de un paquete Responsabilidades: • Direccionamiento lógico (dirección IP) • Enrutamiento
20
Capa de red
21
Capa de transporte La entrega de origen a destino (extremo a extremo) de todo el mensaje Las funciones incluyen: • Dirección del punto de servicio (puerto) • Segmentación y reensamblaje • Control de conexión sin conexión vs orientado a la conexión • Control de flujo • Control de errores 22
Capa de transporte
23
Capa de sesión El controlador de diálogo de red establece, mantiene y sincroniza la interacción entre los sistemas de comunicación. Las funciones incluyen: • Control de diálogo • Sincronización (punto de control)
24
Capa de session
25
Capa de presentación Preocupado por la sintaxis y la semántica de la información intercambiada dos sistemas Incluye responsabilidades • Traducción • Cifrado • Compresión
26
Capa de presentaciรณn
27
Capa de aplicación Interfaz para que los usuarios accedan a la red Los servicios incluyen: • Terminal virtual de red • Transferencia de archivos, acceso y administración • Servicios de correo • Directorio de Servicios
28
Capa de aplicaciรณn
29
TCP/IP and OSI model
30
Modelo Cliente-Servidor Un lado de cualquier par de aplicación de comunicación debe comenzar la ejecución y esperar a que el otro lado lo contacte. Dado que el modelo cliente-servidor impone la responsabilidad del problema de encuentro en la aplicación, TCP / IP no necesita proporcionar mecanismos que creen automáticamente un programa en ejecución cuando llegue un mensaje. En cambio, un programa debe estar esperando para aceptar la comunicación antes de que llegue cualquier
solicitud. 31
Terminología y conceptos • Clientes y servidores • Privilegio y Complejidad • Software cliente estándar vs no estándar • Parametrización de Clientes • Sin conexión vs Orientado a la conexión • Servidores sin estado vs con estado • Identificando un cliente
32
Clientes y servidores Cliente Una aplicaciรณn que inicia la comunicaciรณn punto a punto. Es mรกs fรกcil de construir que los servidores Privilegios del sistema usualmente innecesarios
Servidor Programa que espera solicitudes de comunicaciรณn entrantes de un cliente. 33
Privilegio y complejidad • El software del servidor a menudo necesita acceder a objetos que el SO protege • El servidor no puede confiar en la comprobación del sistema operativo habitual, ya que su estado de privilegios permite acceder a cualquier archivo. Problemas de seguridad: o Autenticación o Autorización o Seguridad de datos o Intimidad o Proteccion 34
Software cliente estándar vs no estándar Servicios de aplicaciones estándar • Definido por TCP / IP • Asignado puerto de protocolo reconocido universalmente reconocido
Servicios de aplicaciones no estándar • Todos los otros servicios que no son estándar o bien, servicios de aplicaciones definidos localmente
35
Software cliente estándar vs no estándar Hay que tener en cuenta que el software estándar cuando se encuentre fuera del entorno local. Ejemplos de servicios de aplicaciones estándar • Inicio de sesión remoto, protocolo TELNET • Cliente de correo electrónico, protocolo SMTP o POP • Cliente de transferencia de archivos, protocolo FTP • Navegador web, protocolo HTTP
36
Software cliente estándar vs no estándar Ejemplos de servicio de aplicación no estándar • Transferencia de música o video • Comunicación de voz • Acceso a la base de datos distribuida
37
Parametrización de Clientes Por ejemplo: • Protocolo TELNET con número de puerto. La aplicación cliente completamente parametrizada permite más parámetros de entrada • Al diseñar la aplicación cliente, incluya parámetros que permitan al usuario especificar completamente la máquina de destino y el número de puerto.
38
Servidores orientados sin conexión vs a la conexión TCP / IP proporciona dos tipos de interacción entre el cliente y el servidor: • Estilo sin conexión • Estilo orientado a la conexión (La distinción es crítica)
39
Servidores orientados a la conexión TCP: • confiabilidad completa • verificando los datos llega • retransmite automáticamente segmentos • suma de comprobación sobre los datos • datos que llegan por orden • no hay paquetes duplicados • controlar el flujo • informar el problema de red subyacente al remitente 40
Servidores orientados sin conexión UDP • no hay garantías acerca de la entrega confiable • el software contiene código para detectar y corregir los errores ocurridos durante la transmisión • funciona bien cuando la red subyacente funciona bien • consciente de las pruebas cuando se usa UDP
41
Servidores con estado vs sin estado Un servidor mantiene el estado de la interacción en curso con los clientes. Los servidores que no conservan ninguna información de estado se llaman servidores sin estado; de lo contrario, llamados servidores con estado. Mantener una pequeña cantidad de información en un servidor puede reducir el tamaño de los mensajes que el cliente y el servidor intercambian y permite que el servidor responda rápidamente El punto para el estado es la eficiencia La motivación para la apatridia radica en la confiabilidad del protocolo 42
Ejemplo de servidor sin estado Item op name pos size data
Waits for client to access
Description Operation (read or write) Name of the file Position in the file Number of bytes to transfer Present only in write operation
File server disk
message
client
stores or extracts data from the server 43
Ejemplo de servidor con estado Item op name pos size data
Waits for client to access
Description Operation (read or write) Name of the file Position in the file Number of bytes to transfer Present only in write operation
File server disk
reads
client
stores or extracts data from the server
44
Servidores como clientes Los programas no se ajustan exactamente a la definiciรณn del cliente o servidor. time server
client
Internet file server
Se debe evitar las dependencias circulares entre los servidores. 45
Conclusiones • Cliente-servidor es solo un enfoque para administrar aplicaciones de red. La principal alternativa a la red entre pares cliente-servidor, trata a todos los dispositivos con capacidades equivalentes en lugar de funciones especializadas de cliente o servidor. • En comparación con el cliente-servidor, las redes peer-topeer ofrecen algunas ventajas, como una mayor flexibilidad para expandir la red y manejar una gran cantidad de clientes. 46
Conclusiones • Las redes cliente-servidor generalmente tambiÊn ofrecen ventajas con respecto a igual a igual, como la capacidad de administrar aplicaciones y datos en una ubicación centralizada.
47
Bibliografía • "An Introduction To Domain-Driven Design", consultado de, http://msdn.microsoft.com/enus/magazine/dd419654.aspx. • "Domain Driven Design and Development in Practice", consultado de, http://www.infoq.com/articles/ddd-inpractice. • "Fear Those Tiers", consultado de, http://msdn.microsoft.com/en-us/library/cc168629.aspx. • "Layered Versus Client-Server”, consultado de, http://msdn.microsoft.com/en-us/library/bb421529.aspx. 48
• "Message Bus", consultado de, http://msdn.microsoft.com/en-us/library/ms978583.aspx. • "Microsoft Enterprise Service Bus (ESB) Guidance", consultado de, http://www.microsoft.com/biztalk/en/us/esbguidance.aspx. • "Separated Presentation", consultado de, http://martinfowler.com/eaaDev/SeparatedPresentation.ht ml.
49
50