Anda di halaman 1dari 7

Ingenieria de Software distruido

Objetivo
Conocer los conflictos clave que debe considerar al diseoar e implementar
los sistemas de software
Entender la nocin de software como servicio y proporcionar acceso
basado en Web a sistemas de aplicacin de implementacin remota.
Ventajas de usar un enfoque distribuido para el desarrollo de sistemas:
1. Comparticin de recurso:
a. Sistema de distribucin permite compartir los recursos de HW
y SW.
2. Apertura
a. Sistemas abiertos que permite el diseo del entorno a
protocolo de estndar combinando con el equipo.
3. Concurrencia
a. Es un proceso que nos permite ejecutar al mismo tiempo
computadoras independientes en red.
4. Escalabilidad
a. Son escalables que tiene la capacidad del sistema en aumentar
los nuevos recursos para enfrentar demandas de las mandas.
5. Tolerancia a fallas
a. La disponibilidad de muchas computadoras y el potencial de
reproducir la informacin significa que los sistemas distribuidos
pueden tolerar algunas fallas del HW y SW.
Conflictos de los sistemas de distribuidos
Los sistemas son ms complejas de los sistemas que se ejecutan en
un solo proveedor, con la complejidad surge para la prctica que tiene un
modelo de descendente de control.
Los diseos ms importantes que se debe considerarse en la ingeniera.
1. Transparencia
a. en qu medida el sistema distribuido debe aparecer al usuario
con un solo sistema? cundo es til para los usuarios entender
que el sistema es distribuido?
2. Apertura
a. Un sistema debe disearse usando protocolos estndar que
soporten interoperabilidad o deben usarse protocolos ms
especializados que restrinjan la libertad del diseador?
3. Escalabilidad
a. Cmo puede construirse el sistema para que sea escalable?
cmo podra disearse un sistema global para que su
capacidad se en respuesta a demandas crecientes hechas
sobre el sistema?
4. Seguridad
a. Cmo pueden definirse e implementarse polticas de
seguridad tiles que se apliquen a travs de un conjunto de
sistemas administrados de manera independiente?
5. Calidad de servicio

a. Cmo debe especificarse la calidad del servicio que se


entrega a los usuarios del sistema y cmo debe implementarse
el sistema para entregar una calidad de servicio aceptable para
todos los usuarios?
6. Gestin de fallos
a. Cmo pueden detectarse las fallas del sistema, contenerse
(de modo que tengan efectos mnimos sobre otros
componentes del sistema) y repararse?
Los estndares de servicio Web para arquitecturas orientadas a servicios se
desarrollan para ser estndares abiertos. Existen tres dimensiones de la
escalabilidad.
1. Tamao
a. Debe ser posible agregar ms recursos a un sistema para
enfrentar el creciente nmero de usuarios.
2. Distribucin
a. Debe ser posible dispersar geogrficamente los componentes
de un sistema sin reducir su rendimiento.
3. Manejabilidad
a. Debe ser posible administrar un sistema conforme aumenta en
tamao, incluso si las partes del sistema se ubican en
organizaciones independientes.
Se analiza todos los conflictos generales de la seguridad y los conflictos de
la integracin de seguridad. Los tipos de ataques que defender un sistema
distribuido son:
1. Intercepcin, en que un atacante intercepta las comunicaciones entre
las partes del sistema, para que haya poca confidencialidad.
2. Interrupcin, que sucede cuando los servicios del sistema son
atacados y no pueden entregarse como se esperaba.
3. Modificacin, que se presenta cuando el atacante cambia los datos o
servicios del sistema.
4. Fabricacin, que sucede cuando un atacante genera informacin que
no debe existir y luego la usa para conseguir ciertos privilegios.
La dificultad en los sistemas distribuidos se establece con polticas de
seguridad que pueda aplicarse de manera fiable a todos los componentes
de sistema. Pero en la calidad de servicio es un sistema de distribuido
refleja la capacidad del sistema para entregar sus servicios de manera
confiable de manera un respuesta a tiempo y rendimiento total.
Modelos de interaccin

Middleware
Sistema de distribuido pueden implementarse en distintos lenguajes
de programacin y de ejecucin, el sistema distribuido, el middleware por lo
general brinda dos distintos tipos de soporte:
1. Soporte de interaccin, en el que el middleware coordina las
interacciones entre diferentes componentes del sistema.
2. La provisin de servicios comunes, en la que el middleware
proporciona implementaciones de reutilizacin de servicios que
pueden requerir varios componentes en el sistema distribuido.
Computacin de Cliente-servidor
Un sistema cliente-servidor, el usuario interacta con un programa que se
ejecuta en su computadora local. ste interacta con otro programa que se
ejecuta en una computadora remota.
4. Una capa de presentacin que se ocupa de presentar la informacin
al usuario y gestionar todas las interacciones de usuario;
5. Una capa de gestin de datos que gestiona los datos que pasan hacia
y desde el cliente. Esta capa puede implementar comprobaciones en
los datos, generar pginas Web, etctera;
6. Una capa de procesamiento de aplicacin que se ocupa de
implementar la lgica de la aplicacin y, de este modo, proporciona la
funcionalidad requerida a los usuarios finales;
7. Una capa de base de datos que almacena los datos y ofrece servicios
de gestin de transaccin, etctera.

Patrones arquitecticos para sistemas distribuidas


1. Arquitectura maestro-esclavo, que se usa en sistemas de tiempo real
en los que se requiere garanta de tiempos de respuesta de
interaccin.
2. Arquitectura cliente-servidor de dos niveles, que se usa para sistemas
cliente-servidor simple, y en situaciones donde es importante
centralizar el sistema por razones de seguridad. 3. Arquitectura
cliente-servidor multinivel, que se usa cuando existe un enorme
volumen de transacciones a procesar por el servidor.

3. Arquitectura de componentes distribuidos, que se usa cuando es


necesario combinar los recursos de diferentes sistemas y bases de
datos, o como un modelo de implementacin para sistemas clienteservidor multinivel.
4. Arquitectura peer-to-peer (entre pares o punto a punto, o par a par),
que se usa cuando los clientes intercambian de manera local la
informacin almacenada, y el papel del servidor es presentar a los
clientes entre s.
Patrones arquitectnicos para sistemas distribuidos
Es el diseo del sistema distribuido para organizar el sistema y encontrar un
equilibrio entre rendimiento, confiablidad, seguridad y manejabilidad.
En esta seccin se describen cinco estilos arquitectnicos:

1. Arquitectura maestro-esclavo, que se usa en sistemas de tiempo real en


los que se requiere garanta de tiempos de respuesta de interaccin.
2. Arquitectura cliente-servidor de dos niveles, que se usa para sistemas
cliente-servidor simple, y en situaciones donde es importante centralizar el
sistema por razones de seguridad.
3. Arquitectura cliente-servidor multinivel, que se usa cuando existe un
enorme volumen de transacciones a procesar por el servidor.
4. Arquitectura de componentes distribuidos, que se usa cuando es
necesario combinar los recursos de diferentes sistemas y bases de datos, o
como un modelo de implementacin para sistemas cliente-servidor
multinivel.
5. Arquitectura peer-to-peer (entre pares o punto a punto, o par a par), que
se usa cuando los clientes intercambian de manera local la informacin
almacenada, y el papel del servidor es presentar a los clientes entre s.
Arquitectura maestro-esclavo

Arquitectura cliente-servidor de dos niveles


Una arquitectura cliente-servidor de dos niveles es la forma ms simple de
arquitectura cliente-servidor. El sistema se implementa como un solo
servidor lgico ms un nmero indefinido de clientes que usan dicho
servidor.
1. Un modelo de cliente ligero, en que la capa de presentacin se
implementa en el cliente, y todas las otras capas (gestin de datos,
procesamiento de la aplicacin y bases de datos) se implementan en
un servidor.
2. Un modelo de cliente pesado, en que parte o todo el procesamiento
de la aplicacin se realiza en el cliente. Las funciones de gestin de
datos y de base de datos se mplementan en el servidor.
Arquitectura cliente-servidor multinivel

Arquitectura de componentes distribuidos


Componente separado en una arquitectura de componentes distribuida el
sistema est organizado como un conjunto de componentes u objetos en
interaccin.
1. Permite al diseador del sistema demorar las decisiones acerca de
dnde y cmo deben proporcionarse los servicios.
2. Es una arquitectura de sistema muy abierta que permite adicionar
nuevos recursos conforme se requiera.
3. El sistema es flexible y escalable. Pueden aadirse nuevos
componentes o componentes replicados a medida que aumente la
carga del sistema, sin perturbar otras partes de ste.
4. Es posible, segn se requiera, reconfigurar dinmicamente el sistema
con componentes que migran a travs de la red.
Una arquitectura de componentes distribuidos, en lugar de una arquitectura
en capas, es adecuada para este tipo de aplicaciones, porque es posible
agregar nuevas bases de datos al sistema sin causar grandes
perturbaciones.
Las arquitecturas de componentes distribuidos enfrentan dos grandes
desventajas:
1. Son ms complejas de disear que los sistemas cliente-servidor. Los
sistemas cliente-servidor multinivel parecen ser una forma bastante
intuitiva de pensar en los sistemas.
2. El middleware estandarizado para sistemas de componentes
distribuidos nunca se ha aceptado por la comunidad.
Arquitectura entre pares(peer-to-peer)
Este modelo conduce regularmente a una distribucin desigual de la carga
en el sistema, en el que los servidores realizan ms trabajo que los clientes.
Es adecuado usar un modelo arquitectnico punto a punto para un sistema
en dos

circunstancias:

1. Donde el sistema es de cmputo intensivo y es posible separar el


procesamiento requerido en un gran nmero de clculos independientes.
2. Donde el sistema principalmente implica el intercambio de informacin
entre computadoras individuales en una red y no hay necesidad de que esta
informacin se almacene o gestione de manera centralizada.
Software como servicio
Para implementar un sistema cliente-servidor, tal vez se tenga que instalar
un programa en la computadora cliente, que se comunique con el servidor,
aplique funcionalidad en el lado del cliente y gestione la interfaz de usuario.
1. El software se despliega en un servidor (o, ms comnmente, en
algunos servidores) y se accede a l a travs de un navegador Web.
No se implementa en una computadora local.
2. El software es propiedad de un proveedor de software, quien lo
administra, en lugar de las organizaciones que usan el software.
3. Los usuarios pueden pagar por el software de acuerdo con la cantidad
de uso que hagan de l o mediante una suscripcin anual o mensual.
Cuando implemente SaaS debe considerar que puede tener usuarios del
software en varias organizaciones diferentes. Debe tener en cuenta tres
factores:
1. Configurabilidad Cmo configura usted el software para los
requerimientos especficos de cada organizacin?
2. Multitenencia Cmo presenta a cada usuario del software la
impresin de que trabaja con su propia copia del sistema mientras, al
mismo tiempo, hace uso eficiente de los recursos del sistema?
3. Escalabilidad Cmo disea el sistema de modo que pueda escalarse
para alojar un nmero impredeciblemente grande de usuarios?

Anda mungkin juga menyukai