Seguridad y Nuevas Tecnologias en Sistemas Operativos Distribuidos




SEGURIDAD Y NUEVAS TECNOLOGÍAS EN SISTEMAS DISTRIBUIDOS 


El punto de la seguridad es delicado en este tipo de computación distribuida pues las conexiones se hacen de forma remota y no local, entonces suelen surgir problemas para controlar el acceso a los otros nodos. Esto puede aprovecharse para un ataque de DoS, aunque la red no va a dejar de funcionar porque uno falle. Esa es una ventaja de este sistema grid.

Cuando hablamos de la seguridad de los sistemas distribuidos nos referimos a el resguardo de la información que contiene el sistema, ya se en software, hardware o datos, los cuales deben ser protegidos contra posibles ataques, en cuanto a modificación o robo de información entre otros.La seguridad es muy importante ya que puede disminuir el ataque de la información, por eso es recomendable tener como prioridad la seguridad para que todo se maneje muy bien y no ocurran problemas.

GRID

La computación en grid o en malla es un nuevo paradigma de computación distribuida en el cual todos los recursos de un número indeterminado de computadoras son englobados para ser tratados como un único superordenador de manera transparente.
Estas computadoras englobadas no están conectadas o enlazadas firmemente, es decir no tienen por qué estar en el mismo lugar geográfico. Se puede tomar como ejemplo el proyecto SETI@Home, en el cual trabajan computadoras alrededor de todo el planeta para buscar vida extraterrestre.

Es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores, clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet). Desarrollado en ámbitos científicos a principios de los años 1990, su entrada al mercado comercial siguiendo la idea de la llamada Utility computing supone una importante revolución.
El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un intercambio de datos, o de tiempo de computación, el propósito del grid es facilitar la integración de recursos computacionales. Universidades, laboratorios de investigación o empresas se asocian para formar grid para lo cual utilizan algún tipo des oftware que implemente este concepto.

SEGURIDAD



CONFIDENCIALIDAD: Nos dice que los objetos de un sistema han de ser accedidos únicamente por elementos autorizados a ello, y que esos elementos autorizados no van a convertir esa información en disponible para otras entidades.

LA INTEGRIDAD: Significa que los objetos sólo pueden ser modificados por elementos autorizados, y de una manera controlada.

LA DISPONIBILIDAD: Indica que los objetos del sistema tienen que permanecer accesibles a elementos autorizados; es el contrario de la negación de servicio.

CRIPTOGRAFIA

La criptografía es un proceso para transformar datos, generalmente texto claro a un texto clave o cifrado, y que sólo puede ser convertido nuevamente en un texto claro y entendible usando una llave en particular y aplicándole un algoritmo apropiado. Por lo general, las técnicas de criptografía se aplican antes de que la información sea almacenada o transmitida por algún canal físico, en el caso de una red. Existen varios tipos o categorías en que se clasifican las técnicas de encriptación de información.

Sistemas de encriptación

• Sistemas convencionales
• Sistemas modernos
• Sistemas de llave pública
• Sistemas de llave privada

Sistemas convencionales de encriptación.
Este tipo de encriptación se basa en la sustitución de cifras, en la cual, cada caracter en un texto claro o base es sustituido por otro caracter. Existen varias técnicas:

• Cifra Caesar.
En éste método, cada letra del texto original se transforma en la tercer letra siguiente Por ejemplo, "CASA" es transformado en "FDVD", de acuerdo al equivalente en la tabla de códigos ASCII.
Los problemas principales con esta técnica son que 1) ya que la transformación es lineal, determinar la llave es muy simple y 2) el número de llaves es muy pequeño ya que se restringe al tamaño del código usado (ASCII en el ejemplo).

Sustitución simple.
En este método, cualquier permutación de letras puede ser identificado al lenguaje Español o Inglés y elimina la relación posicional de la Cifra Caesar, debido a que cada permutación de letras es una llave, hay (>1026) llaves en una cifra como ésta, lo que hace muy costosa una búsqueda exhaustiva. Sin embargo, la cifra por sustitución simple preserva la frecuencia de sustitución de las letras de un alfabeto porque se ejecuta la misma sustitución en todas las ocurrencias de una letra, y puede usarse un análisis estadístico para desencriptar la cifra.

Cifra polialfabética.
La cifra polialfabética usa una secuencia periódica de n letras de sustitución, es decir; el método actúa con n sustituciones alfabéticas periódicamente. Este método puede tener un mayor impacto si se escoge apropiadamente la sustitución. Una forma de aplicar este método es usar la Cifra Caesar con diferentes llaves. Por ejemplo, se puede tener la secuencia de enteros 11, 19, 4, 22, 9, 25 y se obtendría el texto cifrado agregando repetidamente cada entero al texto original.
Este método es también vulnerable, porque si se conoce el periodo (secuencia de enteros), las diferentes cifras de cada periodo se pueden determinar por una búsqueda exhaustiva.

Sistemas modernos de encriptación
Usan información representada en forma binaria. Generalmente, en estos métodos se conocen las técnicas de encriptación y desencriptación, pero la llave requerida para desencriptar el texto cifra se mantiene en secreto. Los esquemas de criptografía moderna se basan en el principio de la búsqueda exhaustiva, aunque se conozca el mecanismo de desencriptación, el procedimiento de desencriptación es tan intensivo computacionalmente, que tomaría un tiempo prohibitivo para encontrar la llave.

Método de llave privada
La criptografía por llave privada se ha convertido en un estándar. Fue desarrollado por IBM. Este método es conocido como el Estándar de Encriptación de Datos (DES, por sus siglas en inglés), y utiliza básicamente dos operaciones:
Se usa una operación de permutación para permutar los bits de una palabra y su objetivo es difundir o esparcir la correlación y las dependencias entre los bits de una palabra.
Una operación de sustitución reemplaza una entrada de m bits por una salida n de bits, sin que exista una relación directa entre ambas. Generalmente, una operación de sustitución consta de tres pasos: primero, la entrada de m bits se convierte a una forma decimal; segundo, se permuta la forma decimal (para obtener otro número decimal); y finalmente, la salida decimal se convierte en una salida de n bits.

Método de llave pública
El método de encriptación por llave privada (así como los métodos convencionales) requiere la distribución de llaves secretas a través de una red de comunicaciones insegura, antes de que se pueda tener una comunicación segura. Este problema es conocido como problema de distribución de llaves.
El método de criptografía por llave pública resuelve este problema anunciando al dominio público el método de encriptación E (y su llave asociada); sin embargo, se mantiene secreto el método de desencriptación D (y su llave asociada).


FIRMA DIGITAL


La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es la técnica, bien sea aplicada al arte o la ciencia, que altera las representaciones lingüísticas de un mensaje.


En esencia la criptografía trata de enmascarar las representaciones caligráficas de una lengua, de forma discreta. Si bien, el área de estudio científico que se encarga de ello es la Criptología.
Para ello existen distintos métodos, en donde el más común es el cifrado. Esta técnica enmascara las referencias originales de la lengua por un método de conversión gobernado por un algoritmo que permita el proceso inverso o descifrado de la información. El uso de esta u otras técnicas, permite un intercambio de mensajes que sólo puedan ser leídos por los destinatarios designados como 'coherentes'. Un destinatario coherente es la persona a la que el mensaje se le dirige con intención por parte del remitente. Así pues, el destinatario coherente conoce el discretismo usado para el enmascaramiento del mensaje. Por lo que, o bien posee los medios para someter el mensaje criptográfico al proceso inverso, o puede razonar e inferir el proceso que lo convierta en un mensaje de acceso público. En ambos casos, no necesita usar técnicas criptoanalíticas.
Un ejemplo cotidiano de criptografía es el que usamos cuando mandamos una carta. El mensaje origen queda enmascarado por una cubierta denominada sobre, la cual declara el destinatario coherente, que además conoce el proceso inverso para hacer público el mensaje contenido en el sobre.

En la jerga de la criptografía, la información original que debe protegerse se denomina texto en claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatías ilegible, denominado texto cifrado o criptograma. Por lo general, la aplicación concreta del algoritmo de cifrado (también llamado cifra) se basa en la existencia de una clave: información secreta que adapta el algoritmo de cifrado para cada uso distinto. Cifra es una antigua palabra arábiga para designar el número cero; en la Antigüedad, cuando Europa empezaba a cambiar del sistema de numeración romano al arábigo, se desconocía el cero, por lo que este resultaba misterioso, de ahí probablemente que cifrado signifique misterioso.
Las dos técnicas más sencillas de cifrado, en la criptografía clásica, son lasustitución (que supone el cambio de significado de los elementos básicos del mensaje -las letras, los dígitos o los símbolos-) y la transposición (que supone una reordenación de los mismos); la gran mayoría de las cifras clásicas son combinaciones de estas dos operaciones básicas.
El descifrado es el proceso inverso que recupera el texto plano a partir delcriptograma y la clave. El protocolo criptográfico especifica los detalles de cómo se utilizan los algoritmos y las claves (y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios, es lo que constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interactúa.

Existen dos grandes grupos de cifras: los algoritmos que usan una única clave tanto en el proceso de cifrado como en el de descifrado, y los que emplean una clavepara cifrar mensajes y una clave distinta para descifrarlos. Los primeros se denominan cifras simétricas, de clave simétrica o de clave privada, y son la base de los algoritmos de cifrado clásico. Los segundos se denominan cifras asimétricas, de clave asimétrica o de clave pública y forman el núcleo de las técnicas de cifrado modernas.
En el lenguaje cotidiano, la palabra código se usa de forma indistinta con cifra. En la jerga de la criptografía, sin embargo, el término tiene un uso técnico especializado: los códigos son un método de criptografía clásica que consiste en sustituir unidades textuales más o menos largas o complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul" podría significar «atacar al amanecer». Por el contrario, las cifras clásicas normalmente sustituyen o reordenan los elementos básicos del mensaje -letras, dígitos o símbolos-; en el ejemplo anterior, «rcnm arcteeaal aaa» sería un criptograma obtenido por transposición. Cuando se usa una técnica de códigos, la información secreta suele recopilarse en un libro de códigos.



Bases de Datos Distribuida



BASES DE DATOS DISTRIBUIDAS






Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 máquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.

Un sistema distribuido de bases de datos se almacenan en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:
Hay múltiples computadores, llamados sitios o nodos.
Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.


CONCEPTOS BASICOS


Base de Datos Distribuidas 
Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones.


Sistema de Basede Datos Distribuida
Es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio.


Un sistema de manejo de bases de datos distribuidas
Es aquel que se encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribución sea transparente a los usuarios. El término transparente significa que la aplicación trabajaría, desde un punto de vista lógico, como si un solo SMBD ejecutado en una sola máquina, administrara esos datos.

Un sistema de base de datos distribuida
Es entonces el resultado de la integración de una base de datos distribuida con un sistema para su manejo.




CARACTERÍSTICAS DE LAS BASES DE DATOS DISTRIBUIDAS



*Los datos deben estar físicamente en más de un ordenador (distintas sedes)
*Las sedes deben estar interconectadas mediante una red (cada sede es un nodo de la red)
*Los datos han de estar lógicamente integrados (recuperación y actualización) tanto en local como remoto (esquema lógico global y único)
*En una única operación se puede acceder (recuperar o actualizar) datos que se encuentran en más de una sede (acceso a datos locales o remotos)
*Todas las acciones que necesiten realizarse sobre más de una sede serán transparentes al usuario (transparencia de distribución para el usuario)


VENTAJAS DE LAS BDD

ORGANIZATIVAS:
  • Adaptación a la organización de la institución (unión de compañías/descentralización), respondiendo a cambios
  • Almacenar los datos donde son generados y/o usados, la mayor parte locales
  • Proporcionar autonomía local, controlándose desde cada nodo. Política general contra política local

ECONÓMICAS:
  • Costos de comunicación y de creación de pequeños sistemas

TÉCNICAS:
  • Flexibilidad, acceso desde distintos lugares y por distintas personas a la vez
  • Fiabilidad/disponibilidad, en un determinado momento / intervalo. Varios sitios, duplicaciones, evitan fallos
  • Modularidad
  • Mejora del rendimiento, BD más pequeñas, operaciones de menor volumen
  • Crecimiento incremental, añadiendo poder de procesamiento y almacenamiento
DESVENTAJAS DE LAS BDD
  • Complejidad del sistema, desarrollo de software más costoso, problemas de sincronización, dificultad para conocer la corrección de los algoritmos paralelos, detección de caídas de nodos
  • Dependencia de la red de comunicaciones, sobrecarga deprocesamiento de mensajes
  • Dificultad de diseño, fases adicionales
  • Poca madurez de los productos comerciales, orientados a replicación
  • Funciones de administración compleja, sincronización y coordinación
  • Dificultad de cambio, inexistencia de metodologías
  • Personal especializado





ESTRUCTURAS DE LAS BASES DE DATOS DISTRIBUIDAS


Un sistema de Base de datos distribuidas se compone de un conjunto de localidades,   cada una de las cuales mantiene un sistema de base de datos local. Cada localidad puede procesar transacciones locales, es decir, aquellas que sólo acceden a datos que residen en esa localidad. Además una localidad puede participar en la ejecución de transacciones globales, es decir, aquellas que acceden a datos de varias localidades. 

La ejecución de transacciones globales requiere comunicación entre las localidades, esta comunicación puede ser, por ejemplo, mediante líneas telefónicas o cables de alta velocidad.

Cabe destacar que en un sistema de BDD tiene las siguientes características:

Cada sitio es un sistema de base de datos en sí mismo.
Los sitios han convenido en trabajar juntos (si es necesario) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos estuvieran almacenados en el sitio propio del usuario.
En consecuencia, la llamada “base de datos distribuida” es en realidad una especie de objeto virtual, cuyas partes componentes se almacenan físicamente en varias bases de datos “reales” distintas ubicadas en diferentes sitios. De hecho, es la unión lógica de esas bases de datos.

Los sitios pueden conectarse físicamente, a modo de grafo, de diversas formas, como por ejemplo:
Red totalmente conectada 
Red prácticamente conectada 
Red con estructura de árbol 
Red de estrella 
Red de anillo 

En la figura siguiente se da un ejemplo   de la estructura (un sistema distribuido de bases representativo):

Las diferencias principales entre estas configuraciones son:
Costo de instalación: El costo de conectar físicamente los sitios del sistema 
Costo de comunicación: El costo en tiempo y dinero que implica enviar un mensaje desde el sitio A al B. 
Fiabilidad: La frecuencia con que falla una línea de comunicación o un sitio. 


Web Cluster



WEB-CLUSTER


El término clúster (del inglés cluster, "grupo" o "racimo") se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilización de hardwares comunes y que se comportan como si fuesen una única computadora.

Hoy en día desempeñan un papel importante en la solución de problemas de las ciencias, las ingenierías y del comercio moderno.

La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software de misiones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.

El cómputo con clústeres surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran.

Simplemente, un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio.

Los clústeres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez y disponibilidad comparables.

De un clúster se espera que presente combinaciones de los siguientes servicios:
Alto rendimiento
Alta disponibilidad
Balanceo de carga
Escalabilidad

La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semihomogéneo), o tener diferente hardware y sistema operativo (clúster heterogéneo), lo que hace más fácil y económica su construcción.

Para que un clúster funcione como tal, no basta solo con conectar entre sí los ordenadores, sino que es necesario proveer un sistema de manejo del clúster, el cual se encargue de interactuar con el usuario y los procesos que corren en él para optimizar el funcionamiento.




CARACTERÍSTICAS 


Concentración geográfica de la actividad económica 

:: Especialización en un sector económico concreto

:: Efecto derrame, pues su actividad beneficia a toda la región

:: Triple Hélice: sistema administración-universidad-empresa

:: Equilibrio entre competencia y colaboración por parte de sus miembros

Todos estos elementos convierten a los clusters en entidades “vivas” convirtiéndose en elementos dinámicos de la economía, generadores de oportunidades, empleo y riqueza. 


VENTAJAS Y DESVENTAJAS



En la actualidad la naturaleza cambiante en la competencia entre empresas demandas nuevas formas de organización., ya que, las grandes empresas incorporan nuevos mecanismos de aprendizaje, mejoramiento continuo, reingieneria, alianzas estratégicas, fusiones y adquisiciones y es por esto que las oportunidades de las pymes se hace cada vez mas complejas. por lo general las pymes no tienen los recursos ni las capacidades para adoptar estrategias individuales, es aquí donde las estrategias de agrupación en redes empresariales, la asociatividad y la cooperación son fundamentales, para competir frente a las grandes empresas. hoy las firmas necesitan reinsertarse en un nuevo escenario productivo, tecnológico, comercial y de negocios altamente volátil y cambiante, en esquemas de mercado ampliado e internacionalizados. un “cluster” tiene como objetivo maximizar la competitividad y los éxitos empresariales aprovechando las oportunidades en las redes y cadenas de valor de los productos, el éxito empresarial no solo depende de los esfuerzo propios, de las condiciones macro o de las leyes del mercado, sino también de la calidad del entorno donde se desarrolle. en este contexto, los clusters basados en cooperación de empresas y redes de producción y valor ha ganado importancia en los últimos años. es así como la competencia demanda empresas flexibles, resistentes y capaces de adecuarse rápidamente a las nuevas cadenas de valor. como son pocas las empresas que pueden reunir todos los elementos para el éxito, la cooperación en un cluster a menudo entrega nuevas herramientas y oportunidades, es por esto que los cluster buscan combinar los esfuerzo individuales de las empresas a objeto que el conjunto de estos sea mayor que la suma de las partes, lo que permite generar un entorno de conocimiento mutuo maximiza la competitividad tanto en los mercados nacionales como internacionales. por lo general los cluster son una concentración sectorial y/o geográfica de empresas que se desempeñan en las mismas actividades o en actividades estrechamente relacionadas lo que ayuda al encadenamiento productivo hacia atrás y hacia delante. a continuación explicaremos brevemente los beneficios y desventajas que pueden provocar los cluster

ventajas de un cluster sin duda la agrupación de conglomerados empresariales permite a los participantes de éste gozar de muchos beneficios, que les brinda seguridad y confianza en las inversiones. los beneficios del cluster son:

-el desarrollo de las economías de escala, para las empresas asociadas, potenciando su capacidad de ingreso a mercados, y aumentando sus beneficios. -se eleva la competitividad, favoreciendo a la industria por la necesidad de nuevos productos, y de mejor calidad.

-se asegura la permanencia en el mercado, permitiendo que las empresas que se integren tengan una estabilidad, de acuerdo al estudio realizado con anterioridad

-la mutua ayuda de las empresas permite la permanencia en los mercados, y la investigación les permite hacer un avance en conjunto -la investigación de universidades y centros de investigación tecnológicos permiten que los integrantes del cluster se vean beneficiados en conjunto por los avances de los organismos tecnológicos.

- la concentración de empresas en una región atrae más clientes, provocando que el mercado se amplíe para todas, más allá de lo que sería el caso si cada una estuviese operando aisladamente. - la fuerte competencia inducida por esta concentración de empresas genera una mayor especialización y división de trabajo, y, por ende, una mayor productividad.

-la fuerte interacción entre productores, proveedores y usuarios facilita e induce un mayor aprendizaje productivo, tecnológico y de comercialización.

- las repetidas transacciones en proximidad con los mismos agentes económicos genera mayor confianza y reputación; lo que redunda en menores costos de transacción. desventajas de un cluster

- desafortunadamente, en américa latina, las condiciones de muchas economías locales fuera de las grandes ciudades son tales (a nivel de mercados –imperfectos o inexistentes-, de infraestructura –inexistente-, de capital humano –de poca formación formal-, de capital social –de tejido débil-) que se encuentran muy alejadas de los clusters en los países desarrollados. las políticas y programas que intentan fortalecer los clusters en la región deben por lo tanto empezar por reconocer estas diferencias y tratar de incidir sobre lo básico, o sea, preocuparse primero de mejorar la educación y las destrezas, de construir capacidades en tecnología, de abrir el acceso a los mercados de capital y de mejorar las instituciones y sólo después o, a lo sumo, paralelamente, tomar acciones específicas para fortalecer un cluster dado. - la asociación de núcleos empresariales en una conglomeración cluster no sólo trae consigo beneficios a los sectores empresariales. la mala planificación y la falta de estudios sobre la factibilidad de un cluster pueden provocar un mala perspectiva del mismo, conduciendo a la falta de afiliados y al poco interés de parte de los empresarios. -al haber una mala planificación tanto espacial como comercial, los afiliados el cluster puede perder factibilidad industrial, y perder sus componentes haciendo caer a todos sus afiliados. - la falta de estudios y proyectos pueden hacer que la planificación de un cluster económico no posea la suficiente atracción para el sector empresarial, limitando la cantidad de núcleos empresariales que ingresen a éste.

¿qué efecto tienen los cluster en las empresas?

los clusters afecta la competencia en tres ámbitos:

1. incrementa la productividad de las empresas asociadas;

2. señala la dirección y el ritmo de la innovación;

3. estimula la formación de nuevos negocios.

en relación con el último punto, si un cluster es exitoso, lo más probable es que se vayan formado encadenamientos en diferentes direcciones alrededor de la actividad central o base. se mejoran las competitividad de las que se encuentran en su interior. ventajas competitivas ecomonias de concentración

• atracción proveedores

• mejora oferta de factores

• efecto positivo sobre costos ventajas de la especialización

• división externa del trabajo y especialización productiva de las empresas.

• fluido eficiente de informaciones (c. información).

• facilidad para tomar acuerdos (c.coordinación) ventajas de la integración

• relaciones de confianza.

• intercambio conocimientos estratégicos.

CASOS DE ESTUDIO




http://www.pacpymes.gub.uy/c/document_library/get_file?p_l_id=6392&folderId=9728&name=Informe+Queser%C3%ADa+Artesanal.PDF

http://economia.ucu.edu.uy/attachments/001_Informe%20Final%20-%20Cluster%20Audiovisual.pdf

Sistemas Operativos Distribuidos



SISTEMAS OPERATIVOS DISTRIBUIDOS




       Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados. Cada nodo contiene de forma individual un subconjunto específico de los programas que componen el sistema operativo distribuido. Cada subconjunto es una combinación de dos proveedores de servicios distintos. El primero es un núcleo ubicuo mínimo o micro núcleo, que controla el hardware del nodo. El segundo es una colección de componente de administración del sistema de alto nivel que coordinan las actividades individuales y colaborativas del nodo. Estas componentes son una abstracción de las funciones del micro núcleo y dan soporte a las aplicaciones de usuario.

       El micro núcleo y las componentes de administración trabajan en conjunto. Ambos dan soporte al objetivo del sistema el cual es integrar múltiples recursos y capacidad de procesamiento en un sistema eficiente y estable. Esta integración sin fisuras de nodos individuales en un sistema global es conocido como transparencia, o sistema de imagen única; haciendo referencia a la ilusión que se le brinda a los usuarios de que el sistema global luce como una entidad computacional única.




CARACTERISTICAS



Los sistemas operativos distribuidos están basados en las ideas básicas:

• Transparencia

• Eficiencia

• Flexibilidad

• Escalabilidad

Existen dos esquemas básicos: Los Fuertemente Acoplados y los débiles. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.



Transparencia

El concepto de transparencia de un Sistema operativo distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, debido a esto queda como labor del sistema operativo coordinar el mecanismo que logre la unificación de todos los sistemas y recursos totalmente transparente para el usuario o aplicación.

El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuarios como los programadores vean el núcleo del sistema distribuido como un único procesador, Es decir que la programación y la ejecución de los programas y tareas sean exactamente iguales que las de los sistemas operativos normales en aspectos visuales y de programación, pero mas rápidos y eficientes por la distribución de la tareas.



Eficiencia

La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas rápidos que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en distribuir las tareas a los procesadores libres mas rápidos en cada momento.

El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende de muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema operativo distribuido esto es mucho mas fácil y eficiente, solo buscara un procesador mas rápido y mas libre para que desarrolle las tareas y hará un display de los resultados obtenidos.



Flexibilidad

La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la evolución tecnológica.

Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge entre los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son dos arquitecturas distintas del núcleo del sistema operativo.



Núcleo Monolítico

Como ejemplo de sistema operativo de núcleo monolítico esta UNIX, estos sistemas tienen en núcleo grande y complejo, que engloba todos los servicios del sistema. Esta programado de forma no modular, y tiene un rendimiento mayor que un micro núcleo. Sin embargo, cualquier cambio a realzar en cualquiera de los servicios, requiere de hacer un STOP a todos los servicios y la recopilación del núcleo.


Micro Núcleo.

La arquitectura ofrece la alternativa al núcleo monolítico, se basa en una programación altamente modular y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son mas rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil. Ya que solo es necesario la recopilación del servicio y no de todo el núcleo. Como desventaja, El rendimiento se ve afectado negativamente.

En la actualidad la mayoría de los sistemas operativos distribuidos en desarrollo tienden a un diseño de micro núcleo el cual aun siendo un poco mas lento, garantiza una estabilidad mayor y un aumento de la flexibilidad del sistema.


Escalabilidad

Un sistema operativo distribuido debería funcionar tanto para una docena de computadoras como para mil en una sola red, el tipo de red utilizada no debe de ser un problema ni su topología (LAN o WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los equipos. Sin embargo todo esto influye, Aunque estos puntos serian muy deseables, pude que la solución valida para unas cuantas computadoras no sean aplicables como para mil. Del mismo modo el tipo de red condiciona grandemente el rendimiento del sistema y puede que lo funcione para un tipo de red requiera modificaciones para otro.

Los sistemas operativos distribuidos necesitan de grandes estándares para trabajar y sobre todo de ajustes a las necesidades principales de cada red y sus usuarios. Este concepto propone que cualquier computador debe funcionar perfectamente como un sistema operativo distribuido, pero de la misma forma debe de formar parte y trabajar como más equipos no importan la cantidad o los recursos que estos le puedan proporcionar.


DIFERENCIAS ESTRE SISTEMAS DISTRIBUIDOS Y SISTEMAS OPERATIVOS DISTRIBUIDOS




   Existe una diferencia vital entre los sistemas operativos distribuidos y los sistemas distribuidos. Podríamos llamar a un Sistema Distribuido una capacidad del Sistema operativo Distribuido, es decir: Un sistema distribuido es la relación que existe entre una computadora independiente y un servidor de archivos o dispositivos compartidos.
Cada computadora ejecuta sus programas en su memoria propia haciendo uso de su único microprocesador y memoria, este no comparte memoria ni asigna tareas a otros procesadores de la red.Sin embargo, un Sistema operativo distribuido tiene acceso a todos los dispositivos compartidos de la red incluyendo procesadores y memoria RAM.


VENTAJAS DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS


Economía: es la razón número uno de la tendencia hacia los sistemas distribuidos ya que estos sistemas tienen en potencia una proporción precio/desempeño mucho mejor que la de un sistema centralizado. 
Velocidad: un sistema distribuido puede tener mayor poder de cómputo que una mainframe. 
Distribución inherente: otra razón para la construcción de un sistema distribuido es que ciertas aplicaciones son distribuidas en forma inherente; es decir, algunas aplicaciones utilizan máquinas que están separadas a cierta distancia.
Confiabilidad: un sistema distribuido ofrece mayor confiabilidad: al distribuir la carga de trabajo en muchas máquinas, la falla de un circuito descompondrá a lo más una máquina y el resto seguirá intacto.



DESVENTAJAS DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS


Software: No hay mucha experiencia en el diseño, implantación y uso del software distribuido, además existe poco software para los sistemas distribuidos en la actualidad. Redes: Una vez que el sistema llega a depender de la red, la pérdida o saturación de ésta puede negar algunas de las ventajas que el sistema distribuido debía conseguir. 
Seguridad: si las personas pueden tener acceso a los datos en todo el sistema, entonces también pueden tener acceso a datos con los que no tienen nada que ver.





Memoria Compartida Distribuida



MEMORIA DISTRIBUIDA




Memoria compartida distribuida

Los sistemas de  memoria compartida distribuida (DSM) representan la creación hibrida de dos tipos de computación paralelos: la memoria distribuida en sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la abstracción de memoria compartida en sistemas con memorias distribuidas físicamente y consecuentemente combinan las mejores características de ambos enfoques. Debido a esto, el concepto de memoria compartida distribuida es reconocido como uno de los enfoques mas atractivos para la creación de sistemas escalables, de alto rendimiento de sistemas multiprocesador.



Memoria compartida basada en páginas

El esquema de DSM propone un espacio de direcciones de memoria virtual que integra la memoria de todas las computadoras del sistema, y su uso se realiza mediante paginación. Las páginas quedan restringidas a estar necesariamente en un único nodo. Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de nodos. El sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que la petición llega al nodo que tiene la página virtual solicitada en su memoria local. A primera vista este sistema parece más eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en ciertas aplicaciones, ya que provoca un tráfico de páginas excesivo.
Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona local y privada y una zona de memoria compartida, que se usará únicamente por procesos que necesiten compartir datos. Esta abstracción se acerca a la idea de programación mediante la declaración explícita de datos públicos y privados, y minimiza el envío de información, ya que sólo se enviarán los datos que realmente vayan a compartirse.



Memoria compartida basada en objetos

Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta más complejo, el resultado es al mismo tiempo modular y flexible, y la sincronización y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los métodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.



VENTAJAS / DESVENTAJAS DE LA MEMORIA DISTRIBUIDA
Ventajas:
  • Ilusión de una memoria física compartida, sin cuellos de botella.
  • Escabilidad (podemos extender el sistema sin mucho problema).
  • Menor costo.
Desventajas:
  • Topología de red muy importante.
  • Administración de la red.



IMPLEMENTACION DE UNA MEMORIA DISTRIBUIDA

Acceso compartido a la memoria à comunicación Inter-procesos.
Ningún procesador puede acceder directamente a la memoria de otro procesador à NORMA (NO Remote Memory Access) Systems.
Los procesadores hacen referencia a su propia memoria local. Hay que aumentar software para que, cuando un procesador haga referencia a una página remota, esta página sea recuperada.
El espacio de direccionamiento común es particionado en pedazos.
Cada pedazo es situado en una estación.
Cuando un procesador hace referencia a una pagina no local à "trap" (page fault).

Sistemas de Archivos Distribuidos



DISEÑO DE LOS SISTEMAS DE ARCHIVOS DISTRIBUIDOS




Generalmente, un sistema de archivos distribuidos consta de dos componentes muy distintos entre sí: el servicio de archivos y el servicio de directorios.

La Interfaz del Servicio de Archivos

Un archivo es una secuencia de bytes sin interpretación alguna. Esto quiere decir que el contenido y estructura de un archivos es interpretado por el software de aplicación mas no por el sistema operativo sobre el que se está trabajando.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.

La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.

Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.

Modelo Carga/Descarga: Consiste básicamente en dos operaciones:
 lectura y escritura.
 La primera operación consiste en la transferencia de un archivo completo desde el servidor hacia el cliente solicitante.
La segunda operación consiste en el envío de un archivo del cliente al servidor, es decir, en sentido contrario. Mientras tanto los archivos pueden ser almacenados en memoria o en un disco local, según sea el caso.

El modelo carga/descarga

Modelo de Acceso Remoto:
Este tipo de modelo consiste en que todas las operaciones (abrir y cerrar, leer y escribir, etc.) se realizan en el servidor mas no en los clientes.
 El modelo de acceso remoto
Estos dos modelos se diferencian en que en el primero se debe transferir el archivo completo del servidor al cliente y viceversa, lo que no es necesario en el modelo de acceso remoto.Debemos tener en cuenta que el solo hecho de compartir archivos puede traer dos problemas principales por resolver: el permiso de acceso y la gestión de los accesos simultáneos.
  • Permisos de Accesos:
Derecho de Acceso
Descripción
Ninguno
En el que el usuario no puede determinar la existencia del archivo y mucho menos acceder a éste y sus directorios. Tampoco puede conocer la ruta que especifica su ubicación actual.
Conocimiento
El usuario conoce sobre la existencia del archivo y quién es su dueño. Puede solicitar tener algunos derechos de acceso a este archivo.
Ejecución
El usuario puede ejecutar y cargar el programa pero no copiarlo.
Lectura
El usuario puede leer el archivo, también copiarlo y ejecutarlo.
Adición
El usuario puede agregar datos al archivo (generalmente al final), pero no puede modificar o borrar su contenido.
Actualización
El usuario puede modificar, borrar y agregar datos al archivo.
Cambio de protección
El usuario puede cambiar los derechos de acceso que han sido otorgados a los usuarios.
Borrado
El usuario puede borrar el archivo de su ubicación actual.
  • Usuario específico: Usuarios individuales quienes son designados por su ID de usuario.
  • Grupos de usuario: Conjunto de usuarios no definidos individualmente.
  • Todos: Es decir, todos los usuarios que tengan acceso al sistema. Los archivos son públicos.
  • Gestión de Accesos Simultáneos:
La Interfaz del Servidor de Directorios
El propósito general del servidor de directorios es poder crear y eliminar directorios, nombrar o cambiar el nombre de archivos y mover éstos de un directorio a otro.
El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los nombres de los archivos y directorios. Por ejemplo, Windows divide los nombres de lo archivos en dos partes: nombre y extensión (tipo de archivo), los cuales se denotan separados por un punto: nombre_archivo.extensión; así tenemos que libro.txt es un archivo cuyo nombre es libro y es de tipo texto. En otros sistemas, como el UNIX, clasifican a los archivos según sus atributos (en UNIX un archivo ejecutable se pinta de otro color).
Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro directorio), permitiéndose a los usuarios clasificar sus archivos a sus gusto. Estos subdirectorios, a su vez, pueden contener otros subdirectorios lo que se conoce como sistema jerárquico de archivos.
Algunos sistemas distribuidos permiten crear apuntadores o enlaces a un directorio determinado, construyendo, de esta manera, no solamente árboles sino también gráficas de directorios los cuales son más consistentes.
Un árbol de directorios contenido en una máquina
Esta diferencia entre árboles y gráficas es de gran importancia en un sistema distribuido y radica en la eliminación de enlaces entre un directorio y otro. Es decir, en un árbol se puede eliminar un enlace con un directorio si el directorio al cual se apunta es vacío, mientras que en una gráfica solo puede eliminarse enlaces mientras exista al menos otro enlace.
Una gráfica de directorios en dos máquinas
Semántica de los Archivos Distribuidos
Existen hasta cuatro métodos para utilizar los archivos compartidos en un sistema distribuido:
  • Semántica de UNIX: En la que cada operación en un archivo es visible a todos los procesos de manera simultánea. Esto implica que cada operación cumpla un estricto orden con respecto al tiempo, puesto que el archivo es actualizado inmediatamente después de realizada cada operación.
  • Semántica de Sesión: En la que ningún cambio es visible a otros procesos hasta que l archivo que está siendo utilizado se cierra. Esto produce un desfasamiento en la actualización del archivo, puesto que un archivo puede estar siendo utilizado por dos o más clientes en forma simultánea y se tendrá como resultado el archivo cuyo cliente lo cierra después que todos los demás.
  • Archivos inmutables: En la que no existen actualizaciones, puesto que una vez creado el archivo no puede modificarse. Así es más fácil compartir y replicar archivos.
  • Transacciones: En la que todos los cambios tienen la propiedad del todo o nada. Es decir, cada operación que es llamada al sistema no se detiene hasta que finaliza propiamente. De esta manera, si una operación es requerida mientras está siendo utilizada por otra, esta última no se ejecutará hasta que finalice la ejecución de la primera.



IMPLEMENTACIÓN DE UN SISTEMA DE ARCHIVOS DISTRIBUIDOS


Uso de Archivos
Existen diferentes formas de utilizar los archivos, pero también existen dos formas de medir el grado de utilización de cada uso que se le puede dar a un archivo. Estas formas son: mediciones estáticas y mediciones dinámicas.
  • Mediciones Estáticas: En este tipo de mediciones se observa el sistema en un determinado momento, esto quiere decir que se verifica su estado en un instante de tiempo. Entre algunas de estas mediciones estáticas podemos encontrar: la distribución de tamaños de los archivos, la distribución de tipos de archivos y la cantidad de espacio que ocupan los archivos de varios tamaños y tipos.
  • Mediciones Dinámicas: Este tipo de mediciones se encarga de registrar todas las operaciones en una bitácora para un análisis posterior. De esta manera se tiene información respecto a la frecuencia con que se realizan ciertas operaciones.
  • La mayoría de los archivos son pequeños (menos de 10 K).
  • La lectura es más común que la escritura.
  • La lectura y escritura son secuenciales: es raro el acceso aleatorio.
  • La mayoría de los archivos tienen una vida corta.
  • Es poco usual compartir archivos.
  • Los procesos promedio utilizan sólo unos cuantos archivos.
  • Existen distintas clases de archivos con propiedades diferentes.
Estructura del Sistema
La estructura de un sistema es determinante para el servicio de archivos y directorios, para eso se debe diferenciar entre quiénes son los clientes y quiénes son los servidores.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente. Esto puede tener sus ventajas y desventajas puesto si en algún momento el servidor falla, entonces todo el sistema se paralizaría. En otros sistemas, sin embargo, el servidor de archivos y el de directorios son solamente programas del usuario, de esta manera se puede configurar el sistema para que ejecute o no el software de cliente o servidor en la misma máquina, como se desee.
Pero se ha de considerar el aspecto estructural de los servidores de archivos y directorios, en cuanto a que deben o no contener los estados de los clientes. Es decir, existen dos tipos de pensamiento con respecto a este tema: los servidores sin estado y los servidores con estado.
  • Servidores sin Estado: Consiste en que cuando un cliente envía una solicitud a un servidor, éste la lleva a cabo, envía la respuesta y elimina de sus tablas internas toda la información correspondiente a dicha solicitud. El servidor no guarda la información relativa a los clientes entre las solicitudes.
  • Tolerancia de fallas
  • No necesita llamadas OPEN/CLOSE
  • No se desperdicia el espacio del servidor en tablas
  • No existe límite para el número de archivos abiertos
  • No hay problemas si un cliente falla
  • Servidores con Estado: Conservan la información de estado de los clientes entre las solicitudes. Esto es lo que ocurre en los sistemas centralizados.
  • Mensajes de solicitud más cortos
  • Mejor desempeño
  • Es posible la lectura adelantada
  • Es más fácil la idempotencia
  • Es posible la cerradura de archivos
Ocultamiento
En un sistema cliente – servidor, en el que cada uno cuenta con su memoria principal y un disco, pueden almacenarse los archivos o partes de ellos en cuatro lugares diferentes: el disco del servidor, la memoria principal del servidor, el disco del clientes o la memoria principal del cliente. Esto se puede observarse en la Figura .
Cuatro lugares para guardar archivos o partes de ellos
Cada lugar en donde se guarde los archivos presenta ventajas y desventajas respecto a la velocidad de transferencia. Aun así, se puede lograr un mejor desempeño ocultando (conservando) los archivos en la memoria principal del servidor. Como la memoria principal siempre es de menor capacidad que el disco, entonces debe implementarse un algoritmo para decidir qué archivos o partes de ellos permanecerán en el caché del servidor.
Este algoritmo deberá resolver dos problemas que se presentarán: Uno de los problemas es el tamaño de la unidad que administra el caché, ya que puede administrar archivos completos o bloques del disco. Si se ocultan los archivos completos, éstos se pueden almacenar en forma adyacente en el disco (o al menos pedazos muy grandes), lo cual permite transferencias a alta velocidad entre la memoria y el disco, así como un buen desempeño en general. Sin embargo, el ocultamiento de bloques de disco utiliza el caché y el espacio en disco en forma más eficiente.
El segundo problema es que el algoritmo debe decidir qué hacer si se utiliza toda la capacidad del caché y hay que eliminar a alguien. En este caso podría utilizarse cualquiera de los dos algoritmos de ocultamiento, pero como las referencias al caché son poco frecuentes comparadas con las referencias a memoria, por lo general es factible una implantación exacta de LRU mediante punteros (listas enlazadas).
Réplica
En general, los sistemas de archivos distribuidos proporcionan la réplica de archivos como servicio a sus clientes. Es decir, se dispone de varias copias de algunos archivos, donde cada copia está en un servidor de archivos independiente. Este servicio de réplica se brinda por diversa razones, a continuación presentamos las principales razones:
  • Aumentar la confiabilidad al disponer de respaldos independientes de cada archivo. Es decir, si un servidor falla o se pierde permanentemente, no se pierden los datos.
  • Permitir el acceso al archivo aunque falle un servidor de archivos. Si un servidor falla esto no debe ocasionar que el sistema se detenga.
  • Repartir la carga de trabajo entre varios servidores. Con varios archivos duplicados en dos o más servidores, se puede utilizar el que tenga menor carga.
  • Réplica explícita: Consiste en que el programador controle todo el proceso. Cuando un proceso crea un archivo, lo hace en un servidor específico. Entonces se puede crear copias adicionales en otros servidores.
  • Réplica retrasada: Consiste en crear un sola copia de cada archivo en el servidor. Luego, el propio servidor crea réplicas de este archivo en otros servidores automáticamente.
  • Réplica de archivos mediante un grupo: En este caso, todas las llamadas WRITE al sistema se transmiten en forma simultánea a todos los servidores a la vez, por lo que todas las copias adicionales se hacen al mismo tiempo que el original.


Un sistema de archivos distribuidos provee al usuario de una herramienta flexible que permite compartir archivos extensos entre ellos. Esta herramienta actualmente utilizada con mucho éxito (pero con algunas deficiencias) no es más que una lista de derechos de acceso los cuales pueden ser asignados a un usuario en particular para un archivo en particular. Estos derechos de acceso se muestran en la siguiente tabla:

Puede brindarse acceso a las siguientes clases de usuario:
El sistema operativo o el sistema de gestión de archivos permite al usuario (que previamente ha tenido acceso a determinado archivo) que él mismo pueda bloquear el archivo cuando vaya a utilizarlo , o en todo caso, bloquear los registros individuales durante la actualización. Si no se considera ninguna de estas dos opciones, entonces se analizará aspectos de exclusión mutua e interbloqueo.
Según Satyanarayanan (1981), las propiedades más comunes de los sistemas de archivos son las siguientes:
Ventajas:
Ventajas:
Existen tres formas de realizar la réplica: réplica explícita, réplica retrasada y réplica de archivos mediante un grupo.




TENDENCIAS DE LOS SISTEMAS DE ARCHIVO DISTRIBUIDOS


Los cambios tecnológicos de los últimos años pueden traer también cambios muy importantes en los sistemas de archivos distribuidos. Además con el rápido avance que se da en las redes de comunicaciones y su incremento en el ancho de banda la creación de paquetes que ofrecen la compartición de archivos es común de encontrarse en el mercado. En la industria, el esquema más solicitado es aquel que permite acceder a los grandes volúmenes de información de los grandes servidores desde las computadores personales o convencionales y desde otros servidores. Es por eso que la principal solución que adoptada por las pequeñas empresas es contar con Novell Netware en un servidor 486 o superior y acceder a los archivos desde máquinas similares.
Entre los sistemas de archivos distribuidos más populares que existen en la actualidad, tenemos los que nos proporciona Netware, tales como:
Remote Filke Sharing (RFS en UNIX)
Network File System (de Sun Microsystems)
Andrew File System (AFS)

Veremos a continuación algunos aspectos en los que podrían presentarse cambios en un futuro no muy lejano, teniendo en cuenta que los cambios tecnológicos se producen día a día y en desmesurado avance.

Hardware reciente
Existen muchos dispositivos hardware que en los últimos años están abaratando sus costos, tales como las memorias. Esto mejoraría circunstancialmente los actuales servidores de archivos puesto que se podrá adquirir gran cantidad de gigabytes de memoria, aunque todavía se presente el problema de que la memoria sea volátil, es decir, que cuando se apaga el sistema se borran los archivos.
Una nueva innovación en hardware son los discos ópticos que ahora pueden ser utilizados más de una vez. Aunque son un poco más caros que las cintas de video siempre han sido un aporte importante para los sistemas de archivos, principalmente en el soporte de backups.
Otro desarrollo importante en hardware son las redes de fibra óptica de alta velocidad que agilizarían la transferencia de archivos y se podría prescindir de la memoria caché. Esto también simplificaría en mucho el software a utilizarse en los sistemas de archivos distribuidos.
Existen muchas más innovaciones tecnológicas que poco a poco harán más eficiente el manejo y administración de los sistemas de archivos, por lo que en el futuro se podría aun encontrar diversos tipos de soluciones específicas para un sistema determinado por sus propias características y requerimientos.

Escalabilidad
El concepto de escalabilidad propone que cualquier computador individual ha de ser capaz de trabajar independientemente como un sistema de archivos distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.
Un sistema de archivos debería funcionar tanto para una docena de equipos como para varios millares. Igualmente no debería ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos.
Aunque este punto sería muy necesario, puede que las soluciones impuestas para unos cuantos equipos no sean aplicables para varios otros. De igual manera, el tipo de red utilizada condiciona el rendimiento del sistema, y podría ser que lo que funcione para un tipo de red, para otro necesitaría un diseño diferente.

Redes de área amplia
La mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas alojados en redes LAN. La tendencia en el futuro es que veremos conectados entres sí muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a través de todo el mundo. Pero para esto tendría que tomarse como punto de importancia el hecho de que no todos los países utilizan un mismo tipo caracteres para sus archivos, es decir, si en latinoamérica utilizamos los códigos ASCII, puede ser que en otras partes del mundo no se utilice este mismo concepto, lo que produciría una incompatibilidad de datos.
Por otro lado, también es importante el cambio que se producirá en las aplicaciones, puesto que la mayoría de experimentos que actualmente se realizan en las universidades están basados en sistemas parecidos a UNIX.
Un problema que se presentará aun mucho más tiempo es que la conexión de fibra óptica tardará muchos años en instalarse en todos los rincones del planeta y también la existencia de una red de mayor ancho de banda será difícil y costosa de implementar pues no se cuenta, todavía, con una mayor aceptación del potencial público usuario.

Usuarios móviles
A medida que la tecnología de las comunicaciones se digitaliza, se encuentra sujeta a las mismas mejoras exponenciales que han hecho que una computadora portátil de 2000 dólares actual tenga más capacidad que una computadora IBM de 10 millones de dólares de hace veinte años. Por esta razón las computadoras portátiles presenta un mayor crecimiento en la tecnología informática.
Pero este hecho presenta la inconveniencia de que estos usuarios no estarán conectados todo el tiempo al sistema, es decir, solo lo estarán algún tiempo y luego no aparecerán. Esto es debido a que todavía no se cuenta con una adecuada red instalada en diversos lugares para que el usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al sistema al cual desea conectarse.
Además, como todavía no se cuenta con un ancho de banda mayor, la transferencia de archivos se hace aun mucho más lenta. Se espera que en el futuro existan mejores ventajas para que sobresalga este de desarrollo tecnológico que los últimos ha demostrado tener una verdadera tendencia a seguir creciendo.

Tolerancia de fallas
En la actualidad, la mayor parte de los sistemas de cómputo no presentan tolerancia a fallas. Es común escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se utilizan para el control de tráfico aéreo, otros sistemas no presentan este comportamiento que debería ser el óptimo.
Para que los sistemas de archivos cumplan con este requisito, deberá existir o implementarse una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente confiables y seguros en cuanto a tiempo de funcionamiento efectivo se refiere.