Homogeneidad y Heterogeneidad

 

Cuando hay varios usuarios, cada uno tiende a usar las aplicaciones que mejor se ajustan a sus necesidades y gustos.  Esto puede provocar una situación de caos.

 

La variedad de aplicaciones plantea dos problemas:

 

• Portabilidad

• Aprendizaje

 

Estos problemas desaparecen si todos los usuarios usan los mismos programas. Esto se puede conseguir poniendo los programas a utilizar en un servidor

 

Algunos desafíos en los SD son:

 

 

 

En cuanto a heterogeneidad debemos tener en cuenta que existen:

 

Redes:

• Redes diferentes

• Protocolos Internet

 

Computadoras:

• Diferente representación nativa

• Empaquetado y desempaquetado

 

Sistemas operativos:

• Diferente API

 

Lenguajes:

• Diferente representación de datos

• Lenguajes de definición de interfaz

 

Implementaciones:

• Estándares

 

Middleware: software de intermediación

• Abstrae detalles de programación

• Elimina las diferencias (uniformiza)

• Ejemplos: CORBA, Java RMI, ODBC,...

 

Código móvil: código exportado de una máquina a otra

• Problemas en el código del NMC

• Posible solución: máquina virtual.

• Ejemplos: Java bytecode, Telescript, ...

 

 

 

En cuanto a extensibilidad debemos tener en cuenta que existen:

 

  Facilidad de adición y reimplementación de nuevos servicios.

  Implica que el sistema esté construido y documentado de forma abierta

 

Interfaces públicas:

  De programación

  De comunicación

  De acceso a los recursos

  Estandarización del software que garantice la interoperabilidad

  Certificación

  Pruebas de conformidad (conformance testing)

 

  Ejemplos:

  Internet: RFC (www.ietf.org)

  CORBA: (www.omg.org)

  POSIX: (www.opengroup.org)

 

 

En cuanto a seguridad debemos tener en cuenta que existen:

 

  Vertientes:

 

Problemas actuales:

• Ataques DoS

• Seguridad del código móvil

Confianza en el código móvil.

 

 

En cuanto a escalabilidad debemos tener en cuenta:

 

Escalable: conserva su efectividad frente al incremento en recursos y clientes.

El sistema debe ser capaz de admitir más recursos y clientes sin cambiar su modelo.

 

Puntos importantes:

• Control de coste de recursos físicos y prevención de su desbordamiento

  Posibilidad de añadir más servidores en la cantidad O(clientes)

• Control de pérdidas de prestaciones y evitar cuellos de botella

 

  Técnicas:

• Replicación,

• Caché,

• Múltiples servidores,

• Buen esquema de nominación y encaminamiento.

 

 

En cuanto a tratamiento de fallos debemos tener en cuenta:

 

Los fallos en un S.D. Son parciales.

  Técnicas para tratamiento de fallos:

• Detección de fallos

• Ocultación de fallos

• Tolerancia de fallos

• Recuperación frente a fallos

• Redundancia

 

  Un buen tratamiento aumenta la disponibilidad del sistema.

 

 

 

En cuanto a concurrencia debemos tener en cuenta:

 

Los gestores de los recursos deben permitir la concurrencia.

• La secuencialidad disminuye el throughput del sistema.

 

La concurrencia (vía threads) plantea problemas de acceso concurrente a los recursos.

• Los gestores deben preocuparse de la correcta secuenciación de las operaciones, en caso de acceso concurrente.

 

 

En cuanto a transparencia debemos tener en cuenta:

 

  Transparencia: oculta al usuario y al programador la naturaleza distribuida del sistema.

  RM-ODP define las nociones de transparencia ...

• De acceso (locales vs. globales)

• De ubicación (desconoc. ubicación)

• De concurrencia

• De replicación

• Frente a fallos (ocultación de fallos)

• Movilidad (reubicación de recursos y clientes)

• De prestaciones (reconfiguración)

• Al escalado (sin modificar la estructura)

 

  Transparencia de red:

• Transparencia de acceso

• Transparencia de ubicación.

 

  Ejemplos:

• Web :  Presenta transparencia de red, Carece de transparencia de movilidad

• Telefonía móvil:   Presenta transparencia de movilidad

• Correo electrónico:  Presenta transparencia de red

• Impresora:   La transparencia de ubicación puede ser contraproducente.

 

Hosted by www.Geocities.ws

1