Diseño de software en arquitectura cliente servidor

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.