UNIDAD 4 METODOLOGÍA PARA EL DESARROLLO DE PROYECTOS EN SISTEMAS DISTRIBUIDOS.

4.1 Especificaciones de alto nivel.

Esta parte trata lo relacionado a las especificaciones de aplicaciones distribuidas, que comúnmente tienen un gran número de requerimientos de desempeño que los hace difíciles de especificar. En primer lugar, típicamente son concurrentes, además, requieren ser altamente confiables y disponibles, y también deben ofrecer rápidos tiempos de respuesta.

Resulta relativamente fácil describir un sistema distribuido dando una explicación detallada de su implementación, por ejemplo; dónde se localiza la información, cuántas réplicas de la información existen, cómo se procesan las peticiones y cómo se comunican todas las piezas del sistema. Así como las especificaciones del usuario para programas secuenciales, las especificaciones de sistemas distribuidos deberían expresarse en términos orientados al usuario y deberían ser libres de detalles de implementación.

Un sistema distribuido es un objeto abstracto que puede usarse invocando a varias operaciones, así que el sistema es una instancia de un tipo de datos abstracto. Las especificaciones de un sistema describen todas las constantes relevantes en su comportamiento observable; incluyendo el comportamiento de las operaciones invocadas por los usuarios y si el sistema esta activo, las operaciones que el sistema realizará internamente.


El usuario de un sistema podría ser un programa o proceso, o si el sistema es interactivo, una persona. Un sistema puede tener usuarios que trabajen concurrentemente y todos estos usuarios pueden invocar sus operaciones en paralelo.


En las especificaciones, cada operación es vista como una acción atómica. Estas operaciones atómicas poseen dos propiedades importantes: serializabilidad y totalidad. La serializabilidad se refiere a que la ejecución concurrente de un grupo de acciones es equivalente a la ejecución secuencial de las mismas operaciones. La totalidad quiere decir que cada operación, o se ejecuta total y exitosamente, o falla y no tiene efecto sobre el estado del sistema.


La técnica básica que es usada en la escritura de especificaciones es introducir especificaciones no deterministas en el modelo que describa la propagación de la información sobre todas las réplicas y los efectos de no serializabilidad de las operaciones concurrentes. También es de ayuda estructurar las especificaciones, de manera que se puedan distinguir los efectos esperados y no deseados, de los inesperados. Esta distinción es importante tanto para usuarios como para los implementadores del sistema, y hace que las especificaciones sean fáciles de entender.


Se mostrará con ejemplos la forma acercarse a especificar sistemas distribuidos, describiendo la implementación de un sistema, y posteriormente especificar el sistema en términos orientados al usuario.


Un diccionario distribuido: El diccionario es modelado como un conjunto, con una operación insertar para agregar un elemento al conjunto, borrar para remover un elemento y listar para observar los miembros del conjunto [Mullender89] . El diccionario podría implementarse en un sistema distribuido, consistente de un conjunto de nodos conectados por una red. El objetivo es hacer al sistema altamente disponible, en el sentido de que cualquiera de los nodos con posibilidades de operar, deberían ejecutar cualquiera de las tres operaciones en cualquier momento, sin importar el estado de la red o de los otros nodos.


La implementación funciona procesando cada operación en un sólo nodo, cada uno de los cuales cuenta con una copia del diccionario. Si se realiza una operación de inserción o eliminación en un nodo, sólo se actualiza la copia de ése nodo, y posteriormente, por medio del envío de mensajes, se propagan las modificaciones a los demás nodos del sistema. Debido a que un nodo puede no saber de las operaciones ejecutadas en otros nodos, se requiere que los usuarios se aseguren que los elementos dados sean insertados al menos una vez, y que un elemento sea borrado sólo si este ha sido insertado anteriormente, y el nodo que realizará la eliminación sepa de la inserción.


En la especificación, el diccionario es tratado como un recurso centralizado, su implementación distribuida es irrelevante. El estado del diccionario es modelado como un par de conjuntos, Miembros y Exmiembros. Miembros contiene todos los elementos que han sido insertados, mientras que Exmiembros contiene todos los elementos que han sido eliminados.


4.2 Estándares.


Los estándares surgieron primero como un campo de la ingeniería y se formaron grupos para concordar en las unidades de medición y en prácticas de la ingeniería. La Interconexión de Sistemas Abiertos (OSI, por sus siglas en inglés) surgió en forma similar, y esta arquitectura ha ganado importancia al ofrecer una plataforma alternativa en comunicaciones para las arquitecturas dominantes.


Para los sistemas distribuidos son necesarios los estándares por dos razones:


1. Diversidad. Por naturaleza, los seres humanos cotidianamente son ‘distribuidos’: trabajan en diferentes lugares y la recolección y almacenamiento de la información se realiza en diferentes locaciones. Para lograr la mejor interacción hombre – computadora, respuestas rápidas e independencia, es necesario colocar a las computadoras cerca de las personas que las usan, lo que lleva al concepto de computación personal. Sin embargo, las personas requieren de compartir información y procesos. Los sistemas distribuidos se tienen que adaptar a diferentes requerimientos operacionales. Por ejemplo, la automatización de una fábrica requiere respuestas en tiempo real y un alto grado de confiabilidad; la aplicaciones en una oficina requieren alta seguridad en lugar de respuestas en tiempo real.


2. Fragmentación. Hasta ahora, no existe una arquitectura abierta que facilite la construcción de sistemas distribuidos en una base de diversos vendedores, la cual pueda expandirse a diversos dominios de aplicación.


Estos tres aspectos se concretizan en dos tipos de objetivos del proyecto:


Objetivos de coordinación.


· Estándares. Construir y mantener en los proyectos una conciencia de contribuciones técnicas dentro del proceso de estándares internacionales.

· Transferencia de tecnología. Proveer conocimiento técnico para asistir en la formulación de una explotación industrial de procesamiento abierto distribuido.
· Diseminación. Publicar anualmente los resultados del proyecto, en forma de actualizaciones y versiones extendidas del Manual de Referencia ANSA y liberaciones posteriores del ANSA Testbench.

Objetivos técnicos.


· Fundaciones. Desarrollar conceptos de arquitectura, técnicas de modelado y taxonomías por las cuales se pueda describir consistentemente a los sistemas de procesamiento distribuido.

· Ingeniería. Desarrollar y especificar métodos de ingeniería que serán requeridas por diseñadores de aplicaciones distribuidas.
· Productividad. Mejorar la productividad en la construcción e interconexión de aplicaciones integradas de procesamiento por medio de la provisión de un conjunto de bloques de construcción.


4.3 Herramientas de diseño.

Los principios comunes del diseño, proveen un modelo consistente de procesamiento de información a través de un sistema, el cual facilita la tarea de integrar diversos paquetes de aplicaciones en un sistema coherente.


Para los operadores de sistemas, el diseño marca un acercamiento a la administración diaria de los sistemas, además del crecimiento integral del sistema para ajustar los nuevos requerimientos y los cambios en la industria de la tecnología de información.


Para los desarrolladores de sistemas, los principios de diseño deben aumentar la productividad, mejorar la reusabilidad del software y facilitar la generación automática de software, a partir de sentencias declarativas de requerimientos. El uso de los principios de diseño reduce también, el tramo que separa la interconexión de sistemas separados, simplificando la complejidad de interconexión y extendiendo el rango de componentes que pueden ser interconectados.


4.4 Documentación de sistemas distribuidos.


El ciclo de vida del desarrollo del software contempla a la documentación como una etapa de gran importancia para el producto final. Resulta crucial guardar las especificaciones establecidas que fundamentan el funcionamiento del software, así como de los componentes a partir de los que se forma la aplicación final. Una metodología tiene la finalidad de dirigir al desarrollador a una ruta racional, apuntando a las necesidades a satisfacer, en que orden y cuanto tiempo debe tomar cada actividad.


Durante el análisis de requerimientos se debe desarrollar una especificación de tales requerimientos, plasmada en un documento que sirve para especificar los requerimientos de los usuarios y es además, un punto de partida para el diseño. Distingue siete roles de usuarios para la documentación del diseño:


1. El administrador del proyecto requiere información para planear, controlar y administrar el proyecto. Debe estar en posibilidades de identificar cada componente del sistema y entender su propósito y funcionamiento.

2. El administrador de configuración necesita información para poder ensamblar varios componentes en un solo sistema y poder controlar los cambios.
3. El diseñador requiere de información acerca del uso y funcionamiento de cada componente, y su interfaz con otros componentes.
4. El programador debe conocer los algoritmos que se utilizarán, las estructuras de datos y la comunicación entre componentes.
5. Se requiere que el probador de unidades conozca información detallada de los componentes, como algoritmos y datos requeridos.
6. Al probador de integración le corresponde conocer las relaciones entre componentes y la función y uso de los componentes envueltos.
7. El programador de mantenimiento debe tener una visión de cómo se satisfacen los requerimientos usando todos los componentes.

Cada modulo (entidades o personas enroladas en el desarrollo) cuenta con una serie de atributos, entre los que se mencionan los siguientes:


· Identificación. Un nombre para hacer referencia a un componente. Debe ser único.

· Tipo. El tipo del componente, puede ser un procedimiento, un archivo.
· Función. Para lo que el componente fue diseñado.
· Subordinados. De cuales entidades se compone un módulo.
· Dependencias. Es una descripción de las relaciones con otros componentes.
· Interfaz. Es una representación de la interacción entre los componentes.
· Recursos. Son entidades externas al diseño, tales como memoria, impresoras, procesadores.
· Procesamiento. Se refiere a los algoritmos utilizados y el tratamiento a las excepciones.
· Datos. Una descripción de la representación, uso, formato y réplicas de los datos.

Como una buena práctica para un sistema distribuido, se recomienda establecer desde los documentos de especificación, todo lo referente al ambiente técnico en el que se planea funcione el sistema. Se deben establecer al menos los siguientes aspectos técnicos:


· Las plataformas de hardware a utilizarse.

· El o los sistemas operativos utilizados en cada nodo.
· El administrador de base de datos a usar.
· El software de red elegido.
· Los lenguajes seleccionados para el desarrollo.
· El medio o tecnología de red para conectar a los nodos.

UNIDAD 3 TRANSACCIONES.

3.1 Procesamiento de transacciones en sistemas distribuidos.

Motivos del uso de transacciones: Los sistemas distribuidos son potencialmente muy fiables debido a la posibilidad de proveer redundancia y autonomía de recursos en diferentes nodos, esto permite detectar y localizar fallas, sin embargo comúnmente tenemos varios aspectos que representan problemas para la integridad de los recursos y que a su vez motivan el uso de transacciones:

1. Dificultad para mantener consistencia en los datos.

2. Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.
3. Requerimientos de procesamiento en paralelo.
4. Manejo interactivo de uno o más usuarios

Definición de transacciones: Las transacciones fueron originalmente desarrolladas para ser utilizadas dentro de los sistemas de base de datos, donde se usaba para auxiliar en el mantenimiento de los datos de las aplicaciones y que dependían de la consistencia de la información almacenada.


Las transacciones son un mecanismo que ayuda a simplificar la construcción de sistemas confiables a través de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:


· Operaciones de compartición de datos.

· Aseguramiento de la seriabilidad de las transacciones con otras.
· Atomicidad en su comportamiento.
· Recuperación de fallas provocadas en red y nodos.

El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tenía 3 reglas básicas:


· Consistencia: Obedecer ciertas reglas.

· Atomicidad: Debe ocurrir completo o abortar.
· Durabilidad: Una vez iniciada una transacción y terminada completamente no puede ser abortada.

Dentro del área de los sistemas computacionales el concepto de transacciones fue inicialmente utilizado para definir la consistencia entre múltiples usuarios de una base de datos.


3.2 Teoría de transacciones anidadas.

Consiste en una serie de modificaciones (transacciones) aun determinado recurso del sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin Tran) y un punto de terminación que define un bloque entre el conjunto de operaciones que son realizadas.

Dentro de este proceso en bloque los demás usuarios no pueden modificar nada hasta que no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal y conflictos. Para evitar lo anterior se implementan dos maneras diferentes:


* Ejecutar transacciones serializadas. Es un sistema que permite el procesamiento de transacciones en forma secuencial o serializado y consiste en asignarle una secuencia a cada transacción, este proceso reduce el rendimiento del sistema.


* Ejecutar transacciones calendarizadas. Es un sistema que permite el proceso de transacciones asignándole tiempos de procesamiento el cual permite incrementar el rendimiento del sistema ya que se ejecuta un máximo de proceso en forma concurrente y no a través de una serie.

UNIDAD 2 ALMACENAMIENTO DE DATOS.

2.1 Nombres.

El establecer comunicación entre los objetos soportados dentro de un sistema distribuido requiere que se conozca una identidad (nombre) de los objetos que serán accesados.
La comunicación llega a ser efectiva si un nombre puede ser mapeado hacia su correspondiente ruta. Se requieren 3 aspectos para integrar un sistema de nomenclatura que permita el fácil acceso a los objetos o recursos de un sistema distribuido.

· Conocer que objeto se requiere accesar (Nombre).
· Donde se encuentra ese objeto (Direccionamiento).
· Como obtener o llegar al objeto (Ruta).

Para llegar a formar una estructura de nombres se utilizan básicamente 3 aspectos:

* Estructura plana participando y con nombres descriptivos.
* Nombres estáticos y dinámicos en el tiempo.
* Número de nombres individuales y de grupo.

Búsqueda de Nombres: Se considera la identificación de la localización donde se encuentra el servicio o el elemento como parte de un esquema de búsqueda o traducción de nombre (dirección) ya que es necesario que el sistema conozca todos los caminos disponibles (vías de acceso) entre los objetos y los servicios. Principalmente se consideran 2 aspectos:

* Encontrar una dirección en la red en donde se encuentre el servicio funcionando.
* Encontrar una ruta donde la solicitud del servicio encuentre la dirección donde se ubica.

Una dirección puede ser identificada de 2 formas:

* Enviando mensajes a la red (Broadcast). Busca un servicio en forma general.
* Enviando directamente un mensaje a un servidor de nombres que devuelve la respuesta.

Dentro de un sistema de manejo de nombres se tienen varios componentes necesarios que permiten hacer la funcionalidad de traducción o interpretación de direcciones físicas, estos componentes son Server name, Agent, Cliente.

Todo sistema de nombres debe contener una estructura definida que garantice el acceso más óptimo hacia los elementos que integran el sistema distribuido. Estas estructuras comúnmente son implementadas dentro de los servidores de nombres y sus tipos son:

* Jerárquico.
* Centralizado.
* Replicado.
* Descentralizado.
* Distribuida.

2.2 Criptografía.

La criptografía es el arte o ciencia de cifrar y descifrar información mediante técnicas especiales y se emplea frecuentemente para permitir un intercambio de mensajes que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos.

Con más precisión, cuando se habla de esta área de conocimiento como ciencia, se debería hablar de criptología, que a su vez engloba tanto las técnicas de cifrado, es decir, la criptografía propiamente dicha, como sus técnicas complementarias, entre las cuales se incluye el criptoanálisis, que estudia métodos empleados para romper textos cifrados con objeto de recuperar la información original en ausencia de las claves.

La finalidad de la criptografía es, en primer lugar, garantizar el secreto en la comunicación entre dos entidades (personas, organizaciones, etc.) y, en segundo lugar, asegurar que la información que se envía es auténtica en un doble sentido: que el remitente sea realmente quien dice ser y que el contenido del mensaje enviado, habitualmente denominado criptograma, no haya sido modificado en su tránsito.

Otro método utilizado para ocultar el contenido de un mensaje es ocultar el propio mensaje en un canal de información, pero en puridad, esta técnica no se considera criptografía, sino esteganografía. Por ejemplo, mediante la esteganografía se puede ocultar un mensaje en un canal de sonido, una imagen o incluso en reparto de los espacios en blanco usados para justificar un texto. La esteganografía no tiene por qué ser un método alternativo a la criptografía, siendo común que ambos métodos se empleen de forma simultánea para dificultar aún más la labor del criptoanalista.

En la actualidad, la criptografía no sólo se usa para comunicar información de forma segura ocultando su contenido a posibles fisgones. Una de las ramas de la criptografía que más ha revolucionado el panorama actual de las tecnologías informáticas es el de la firma digital: tecnología que busca asociar al emisor de un mensaje con su contenido de forma que aquel no pueda repudiarlo posteriormente.

2.3 Protección.
2.4 Seguridad.

Objetivo: La seguridad y protección en los sistemas distribuidos es implementado con el objetivo de proteger la información contra su acceso y uso no autorizado, modificación o destrucción de datos almacenados o transmitidos por un sistema computacional.
Factores que intervienen en la aplicación de esquemas de seguridad: Existen varios elementos que complican la aplicación de formas o esquemas para dar seguridad dentro de un sistema. Estos elementos están presentes en función del tipo de seguridad y los objetivos que queramos proteger.

Factores: Compartición de datos y objetos, así como todas las posibilidades de acceso remoto.
* Valor incremental de la información que se transmite.
* Desarrollo de nuevas tecnologías que facilitan la posibilidad de accesos (o ataques) en un
sistema distribuido. El intruso puede llevar a cabo alguna de las siguientes violaciones:
Ø Liberación no autorizada de información (tomar ventaja).
Ø Modificación no autorizada de información (alterar información).
Ø Denegar sin autorización en servicios.

+ Aplicación de redes dinámicas de los niveles de administración de dominios.
+ Cambios constantes de los niveles de administración de dominios.
+ Diferentes protocolos de comunicación.
+ Incremento de los alcances con ambiente de crecimiento rápido (mala planeación).

Existen varias formas de accesar la información que se transfiere por un sistema de red, cuando esto no es permitido se deben contemplar esquemas de seguridad y protección que abarquen aquellos sitios donde esta información pueda estar disponible para un intruso.

Cuando los elementos de red son abiertos o públicos no existen muchos medios para proteger estos datos ya que están disponibles en todo momento de forma publica. Existen 2 tipos de ataques que pueden hacerse sobre nuestra información:
* Ataques pasivos.
* Ataques activos

2.5 Archivos distribuidos.

Un Sistema de Archivos Distribuido, es un administrador de recursos, y que es parte de un Sistema Operativo distribuido, puede ser compartido por todas las computadoras autónomas dentro del sistema.

El poder administrar sistemas de archivos remotos proporciona una ventaja muy grande a los Sistemas Operativos ampliando su capacidad de administración de recursos. Se tienen varios objetivos en un sistema de este tipo:
* Diversidad de aplicaciones.
* Semántica del sistema de archivos (fase, simple, comprensible, pocos comandos).
* Cumple con requerimientos de diferentes usuarios.
* Nomenclatura consistente (el mismo nombre en cada sitio).
* Transparencia de localización (mover un archivo sin cambiar su nombre y procesos involucrados).
* Acceso transparente (acceso remoto igual a acceso local).
* Consistencia de datos (garantizar integridad).
* Consistencia de autentificación (reconocer identidad y derechos de usuarios y procesos).
* Protección de información (protección contra accesos no autorizados).
* Movilidad de usuarios (acceso desde cualquier parte).
* Rendimiento (mismo rendimiento que en sistemas convencionales).
* Disponibilidad (baja aceptación de fallas).
* Recuperación (Recuperación de procesos y servicios).
* Escalabilidad (disponibilidad para crecer).
* Adaptación a diferentes medios de almacenamiento (disponibilidad para adaptarse a diferentes sistemas de almacenamiento en software y hardware).

Servicios de un Sistema de Archivos: Los sistemas de archivos son considerados como uno de los componentes más importantes de cualquier Sistema Distribuido. Debe tener conocimiento de cada uno de los sitios disponibles de información, de manera que los servicios sean transparentes para cualquier usuario.

En Sistemas Distribuidos se utilizan dos tipos de servicios:

* Servicio de Archivos.- Es una especificación sobre el tipo de servicios de archivos que el sistema ofrece a los clientes, establece todas aquellas directivas sobre donde encontrar un archivo.
* Servicio de Directorios.- Es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos de manera que podamos establecer ligas entre uno o más grupos de archivos (directorios). Un sistema puede tener uno o varios servidores de archivos que son transparentes para los clientes ya que no debe de conocer su posición.

Diseño de un Sistema de Archivos: Los sistemas de archivos distribuidos están compuestos de dos elementos importantes, como lo son el servicio de archivos y el de directorios (mencionados con anterioridad). Decíamos que el primero se encarga de las operaciones, en los archivos individuales, como la escritura, lectura y adición, mientras que el segundo se encarga de crear y administrar directorios, además de añadir y eliminar archivos en los directorios.
Interface De Un Servicio De Archivos: La Interface de un Servicio de Archivos proporciona toda la información necesaria sobre cada archivo individual como pueden ser sus atributos.
La función más importante de un servicio de archivos corresponde a su mantenimiento, ya que este servicio se encarga de todas las operaciones disponibles de lectura y escritura como pueden ser create, read, write, delete.

Los usuarios de archivos se pueden dividir en dos tipos:

* Modelo de Carga y Descarga.- Éste sólo proporciona dos operaciones principales que son la lectura y escritura del archivo. La operación consiste en transferir todo un archivo hacia el cliente y todos los movimientos de operación sobre el archivo, lo realiza el cliente, cuando ha dejado de utilizar el archivo, éste se es regresado hacia el servidor en forma completa. (con todos los cambios realizados actualmente).
* Modelo de acceso remoto.- Este tipo de servicios proporciona un gran número de operaciones para abrir y cerrar archivos leer y escribir partes de archivos, moverse a través de un archivo, así como examinar y modificar los atributos de uno o varios archivos.

2.6 Duplicidad de datos.

Se utiliza para mantener en línea copia de la información y otros recursos.
Razones de la duplicidad:
+ desempeño
+ disponibilidad
+ tolerancia a fallas

Requerimientos al duplicar la información:
+ transparencia de almacenamiento.
+ consistencia

Replicación de la información:
· Razones para utilizar la replicación
+ aumentar la confiabilidad
+ permitir el acceso a un archivo aunque falle el servidor de archivos
+ repartir la carga de trabajo entre varios servidores.

· Beneficios
+ diseño de aplicaciones locales simplificados.
+ tiempo de respuesta de cada transacción no se afecta por el tráfico de la red.
+ propiedad local de datos, acceso local fácil.

2.7 Fallas de partición.

· Particiones, se refiere a la fragmentación de la red en subredes aisladas.
· Cuando las fallas son detectadas por los procesadores, las modificaciones independientes y no coordinadas pueden aplicarse a las diferentes copias.
· Las fallas no pueden ser detectadas por los procesadores, es solo detectado si esta dentro de su partición.
· Las respuestas lentas dan la impresión de que la red esta particionada cuando no es así.

2.8 Beneficios de la duplicidad.

· Mejorar el desempeño y la disponibilidad.
· Almacenando copias de información compartida en lugares de acceso frecuente, se decrementará el uso de accesos de lectura remotos.
· Se aumentará la probabilidad de que estará disponible al menos una copia de la información crítica
· La duplicidad de la información beneficia altamente el trabajo en red, ya que en el caso de alguna caída de alguna máquina se puede propagar la falla a otras más. puede ser necesario tener respaldos de procesos que se restablecerán para completar el proceso interrumpido

PRACTICA 2

“SIMULACIÓN DEL CABLEADO ESTRUCTURADO “

Material:
2 cables 568A (2 mts)
1 cable para jaks (1mts)
4 rj45
2 jaks
Pinzas ponchadoras

Procedimiento:

Se procede a crear un cable con jaks por ambos lados con configuración 568A para simular la función de un pach panel, cuando se tiene se crean 2 cables configuración 568A.
Una vez teniendo los 3 cables elaborados se procede a la simulación probando con un tester el funcionamiento de la red.

PRACTICA 1



Realizar un cable crossover de 1.5 metros y configurar la conexión PC a PC.
Actividad
1.-Crear el cable crossover (No olvide documentar su práctica)
2.-Configurar el equipo de trabajo “Practica1”
3.-Compartir una carpeta llamada “381-V Practica”
4.-Prueba de comunicación “Ping”

Al realizar esta práctica tendremos que realizar el cable utilizando RJ45 para hacer la conexión de una computadora a otra.
Ya obtenido el cable se confirma que a ya quedado bien antes de realizar la conexión entre las computadoras.
Comenzamos a realizar la conexión entre las computadoras nos ubicaremos han inicio de hay nos pasamos al panel de control buscamos conexiones de red hay realizaremos la conexión IP para las 2 computadoras en el cual nosotros les daremos una IP a cada una de las computadoras.
Ya colocado eso se compartirá una carpeta para que la otra computadora la vea ya obtenido eso resultado nos vamos al sistema operativo y hay nos ubicaremos y colocaremos un ping con la dirección IP para ver si hay conexión entre ellas mismas ya obtenido estos resultados se completo la práctica.






ARQUITECTURA BASICA

Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se emplean para producir un producto

*Arquitectura Cliente-Servidor

Agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo. Este modelo se basa en un Protocolo Solicitud respuesta. El cliente envía una solicitud de cierto servicio, el servidor realiza el trabajo y regresa el resultado de la operación.La Principal ventaja de este protocolo es su sencillez, únicamente se necesita la utilización del servidor.

*Principales beneficios de la arquitectura Cliente-Servidor

Mejor aprovechamiento de la potencia de cómputo (Reparte el trabajo). Reduce el tráfico en la Red. (Viajan requerimientos). Opera bajo sistemas abiertos. Permite el uso de interfaces gráficas variadas y versátiles.
*Cliente

Conjunto de Software y Hardware que invoca los servicios de uno o varios servidores. Los Clientes interactúan con el usuario, usualmente en forma gráfica.
*Características

-El Cliente oculta al Servidor y la Red.
-Detecta e intercepta peticiones de otras aplicaciones y puede redireccionales.
-Dedicado a la cesión del usuario ( Inicia…Termina ).
-El método más común por el que se solicitan los servicios es a través de RPC (Remote Procedure Calls).
*Funciones Comunes del Cliente:

· Mantener y procesar todo el dialogo con el usuario.
· Manejo de pantallas.
· Menús e interpretación de comandos.
· Entrada de datos y validación.
· Procesamiento de ayudas.
· Recuperación de errores.
· Generación de consultas e informes sobre las bases de datos.
*Servidor
Conjunto de Hardware y Software que responde a los requerimientos de un cliente. Los Servidores proporcionan un servicio al cliente y devuelven los resultados.
Tipos Comunes de Servidores:

· Servidor de Archivos (FTP, Novell).
· Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX).
· Servidor de almacenamiento
· Servidor de Impresión.
· Servidor de Correo.
· Servidor Web.
Otras Arquitecturas:
· P2P (Peer to Peer)
· Arquitecturas Intermedias
· Arquitecturas N capas
· Clientes Pesados
· Clientes Ligeros
· Clientes Inteligentes

REQUERIMIENTOS DE APLICACION

Los requerimientos necesarios son:
A)Disponibilidad y Confiabilidad
*Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).
*Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.).


B)Transparencia
Tipos de Transparencia:

*Transparencia de Localización
*Transparencia de Replica
*Transparencia de Migración
*Transparencia de Concurrencia

TECNICAS DE CONSTRUCCION

*Seguridad.
*Desempeño y crecimiento modular.
*Tiempo de respuesta limitado.
*Control autónomo.
*Temas relacionados con las comunicaciones (ancho de banda, latencia, distancia geográfica).

COMPLEJIDAD DE LOS SISTEMAS DISTRIBUIDOS

*Los sistemas distribuidos tienen más de dos décadas de haber surgido pero son tan complicados en su construcción tanto como una red de transporte público como el metro, y pasará más tiempo para que podamos entenderlos correctamente y construir uno de la manera más apropiada.
*La fuente básica de la complejidad de los SD recae en la interconexión de componentes.
*Existen fallas en todos los sistemas, sólo que en un SD resultan más visibles. A continuación se muestran algunos problemas del sistema
*Al interconectar dos o más elementos entre si, sus funcionalidades se interfieren.

*Pueden existir también fallas de propagación.
*Se pueden tener fallas por el tamaño del sistema.

VENTAJAS Y DESVENTAJAS DEL SISTEMA DISTRIBUIDO

Ventajas:

Procesadores más poderosos y a menos costos
*Desarrollo de Estaciones con más capacidades
*Las estaciones satisfacen las necesidades de los usuarios.
*Uso de nuevas interfaces

Avances en la Tecnología de Comunicaciones.
*Disponibilidad de elementos de Comunicación.
*Desarrollo de nuevas técnicas.

Compartición de Recursos.
*Dispositivos (Hardware).
*Programas (Software).

Eficiencia y Flexibilidad.
*Respuesta Rápida.
*Ejecución Concurrente de procesos (En varias computadoras).

*Empleo de técnicas de procesamiento distribuido

Disponibilidad y Confiabilidad.
*Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).
*Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.).

Crecimiento Modular.
*Es inherente al crecimiento.
*Inclusión rápida de nuevos recursos.
*Los recursos actuales no afectan.

Desventajas:

*Requerimientos de mayores controles de procesamiento.

*Velocidad de propagación de información ( Muy lenta a veces).

*Servicios de replicación de datos y servicios con posibilidades de fallas.

*Mayores controles de acceso y proceso ( Commit ).

*Administración más compleja.

*Costos.

OBJETIVO

La computación distribuida ha sido diseñada para resolver problemas demasiado grandes para cualquier supercomputadora y main-frame, mientras se mantiene la flexibilidad de trabajar en múltiples problemas más pequeños. Por lo tanto, la computación en grid es naturalmente un entorno multi-usuario; por ello, las técnicas de autorización segura son esenciales antes de permitir que los recursos informáticos sean controlados por usuarios remotos. La historia de la computación puede remontarse a cientos de años atrás, cuando se creaban máquinas para ayudar en tareas de cálculos -como el ábaco. La primera calculadora mecánica fue creada en 1623 por Wilhelm Schickard, y Charles Babbage diseñó la máquina diferencial en la época victoriana. Todas máquinas que se limitaban a realizar una sola tarea, o como mucho, algún subconjunto de todas las posibles tareas.
Las nuevas y poderosas computadoras comenzaron a ser desarrolladas durante la década del 40, que es también cuando comenzó a hacerse evidente que las computadoras podían usarse para mucho más que simples cálculos matemáticos.

Factores que han afectado el desarrollo de los Sistemas Distribuidos




Avances Tecnológicos.



Nuevos requerimientos.



Globalización



Aspectos Externos ( Culturales, Políticos, Económicos ).



Integración.

Características de los Sistemas Distribuidos




  • Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo

  • Control de recursos locales y remotos

  • Sistemas Abiertos (Facilidades de cambio y crecimiento)

  • Plataforma no standard ( Unix, NT, Intel, RISC, Etc.)

  • Medios de comunicación ( Redes, Protocolos, Dispositivos, Etc.)

  • Capacidad de Procesamiento en paralelo

  • Dispersión y parcialidad

Concepto de Sistemas DistribuidoS


Es un concepto poco claro de definir. Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación.
Los sistemas autónomos pueden tener características no homogéneas.