SISTEMA DISTRIBUIDO
Es un sistema compuesto por elementos hardware y software que se intercomunican mediante técnicas de mensajes usando como medio de transferencia una red local o remota.
APLICACIÓN DISTRIBUIDA
Es un componente software que esta disponible en diferentes computadoras e incluso en diferentes arquitecturas, y que ofrece las interfaces necesarias para que el usuario interactúe con un sistema determinado.
Características DE LOS SISTE MAS DISTRIBUIDOS SON 7:
Heterogeneidad, Extensibilidad, Seguridad, Escalabilidad, Tratamiento de fallas, Concurrencia, Transparencia
1.2 HETEROGENEIDAD
Es la que carácterística que describe la diversidad de componentes tantos hardware, software y de comunicaciones que pueden ser implementados en un sistema distribuido.
Carácterística se aplica en:
- Redes.
- Hardware de computadoras.
- Sistemas operativos.
- Lenguajes de programación.
- Implementaciones de diferentes desarrolladores.
EXTENSIBILIDAD
Es la carácterística que determina si el sistema distribuido puede extenderse de varias maneras, el sistema puede ser abierto o cerrado con respecto a extensiones de hardware o de software.
SEGURIDAD
Esta se encarga en general de la protección de los datos, pero se divide en tres componentes que son:
Confidencialidad
Protección contra individuos no autorizados- Integridad:
Protección contra la alteración o corrupción. Disponibilidad
Protección contra la interferencia que impide el acceso a los recursos
ESCALABILIDAD
Esta carácterística está enfocada a la efectividad o rendimiento que puede tener un sistema distribuido si existe algún incremento en el número de recursos e incluso en el número de usuarios.
Ayuda a prevenir el desbordamientos de los recursos de software.
TRATAMIENTO DE FALLAS:
Se refiere a las diversas técnicas, algorítmos y/o procedimientos para detectar y prevenir fallas, algunos de estos tratamientos son:
Detección de fallos
(checksums)Enmascaramiento de fallos
(Retransmitirse)Tolerancia de fallos
(Usuarios tolerantes)Recuperación de fallos
(Rollback)Redundancia
(Componentes redundantes)
CONCURRENCIA
Se refiere a la posibilidad de un acceso concurrente o frecuente a los servicios ofrecidos por un sistema distribuido.
TRANSPARENCIA
Se enfoca en el funcionamiento de los componentes de un sistema distribuido, y le facilitan al usuario tener accesos, concurrencias, replicas. Al cual no se le dan detalles de las funciones internas.
- Transparencia de acceso
- de ubicación
- de concurrencia.
- de replicación.
- frente a fallos.
- de movilidad.
- de rendimiento.
- al escalado.
1.3 Modelo arquitectónicos tenemos:
Capas de Software
Arquitecturas de Sistema
Interfaces y Objetos
MODELO ARQUITECTÓNICO, se refiere a la distribución o colocación de sus elementos y las relaciones que existen entre los componentes mismo.
CAPA DE SOFTWARE se refería a la estructuración del software como capas en un único equipo de cómputo.
LAS CAPAS son uno o bien varios procesos, localizados en la misma o en diferentes computadoras, que ofrecen y solicitan servicios.
PLATAFORMA
la capa más baja ofrece servicios a las capas superiores y su aplicación depende de cada computadora.
MIDDLEWARE es una capa de software cuyo propósito es enmascarar la heterogeneidad y proporcionar un modelo de programación conveniente para los programadores de aplicaciones.
Arquirectura de sistemas
MODELO CLIENTE-SERVIDOR
El servidor puede estar o no en el mismo equipo del cliente. Tanto el servidor como el cliente pueden ser concurrentes- SERVICIOS PROPORCIONADOS POR MÚLTIPLES SERVIDORES.
Los servidores se pueden dividir el conjunto de objetos en los que está basado el servicio y distribuírselos entre ellos mismos.
SERVIDORES PROXY Y CACHES. Cache es un almacén de objetos de datos utilizados recientemente- PROCESOS PEER-TO-PEER.
Todos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores.
INTERFAZ DE UN PROCESO es la especificación del conjunto de funciones que se pueden invocar sobre él.
- En lenguajes orientados a objetos, los procesos distribuidos pueden ser construidos de una forma más orientada al objeto. Las referencias a estos objetos se pasan a otros procesos para que se pueda acceder a sus métodos de forma remota.
- Esta es la aproximación adoptada por CORBA y Java RMI
CONSIDERANDO OTROS MODELOS ARQUITECTÓMICOS
Código Móvil
Es el código escencial de aplicaciones denominados agentes.Agente Móvil
Es un programa que se traslada en la red, de un computador a otro, realizando una tarea para alguien.Computadores en red
Se descarga desde un servidor remoto el SOP y cualquier software de aplicación necesario.Clientes Ligeros
En el cliente sólo se ejecuta una interfaz basada en ventanas, mientras que la aplicación si se ejecuta en un servidor remoto, usualmente muy potente (multiprocesador, clusters, etc.)
REQUISITOS PARA DISEÑO DE ARQUITECTURAS DISTRIBUIDAS
RENDIMIENTO
Capacidad de respuesta
Para obtener buenos tiempos de respuesta los sistemas deben estar compuestos por pocas capas de software y la cantidad de datos transferida debe ser pequeña- Productividad:
Trabajos/unidad de tiempo. Balance de cargas
Applets, varios servidores o computadores para alojar un único servicio.
CALIDAD DE SERVICIO (QOS)
- QOS es la capacidad de los sistemas para satisfacer dichos límites.
- El satisfacer tales exigencias depende de la disponibilidad de los recursos en los instantes adecuados.
Aspectos de Fiabilidad (Funcionalidad correctamente)
- Correctitud
- Tolerancia de fallos
- Seguridad:
- Confidencialidad
- Integridad
- Disponibilidad
TOLERANCIA A FALLOS
Las aplicaciones estables deben continuar funcionando correctamente en presencia de fallos a nivel hardware, software y redes.
- Se logra con redundancia.
- Para hacer fiable un protocolo de comunicación se emplean otras técnicas.
SEGURIDAD
- Se le puede contemplar como necesidad de ubicar datos y otros recursos sensibles sólo en aquellos computadores equipados de un modo eficaz contra el ataque.
MODELOS FUNDAMENTALES
Modelo de Interacción
Trata sobre el rendimiento y sobre la dificultad de poner límites temporales en un sistema distribuido.
Modelo de Fallos
Intenta dar una especificación precisa de los fallos que se pueden producir en procesos y en canales de comunicación.
Modelo de seguridad
Posibles amenazas para los procesos y canales de comunicación