Blog de Sistema Distribuido

Blog sobre contenido de Sistemas Distribuido.

Realizados por los Estudiantes: Jesus Utrera CI: 24343192 Sección 2 Carlos Pestana CI: 25717217 Sección 1 Prof: Ing. Reinaldo Vargas.

Interfaces de un Servicio de Archivos:

Escrito por distribuido 26-04-2018 en transacciones. Comentarios (0)

  • TERCER LAPSO:

     Un archivo es una secuencia de bytes sin interpretación alguna. Lo cual se resume, a que el contenido y estructura de unos archivos es interpretado por el software de aplicación más no por el sistema operativo sobre el que se está trabajando.  Con  atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.

  Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de su 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 es en sentido contrario. Mientras tanto los archivos pueden ser almacenados en memoria o en un disco local, según sea el caso.

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.

  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.

  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: provee al usuario de una herramienta flexible que permite compartir archivos extensos entre ellos. 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 acontinuacion:

 Derecho de Acceso 

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.

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.

Puede brindarse acceso a las siguientes clases de usuario:

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: El sistema operativo o el sistema de gestión de archivos permite al usuario, que él mismo pueda bloquear el archivo cuando vaya a utilizarlo , o en todo caso, bloquear los registros individuales durante la actualización.

Procesamiento de Transacciones.

 Un sistema de procesamiento de transacciones (TPS por sus siglas en inglés) es un tipo de sistema de información que recolecta, almacena, modifica y recupera toda la información generada por las transacciones producidas en una organización. Una transacción es un evento que genera o modifica los datos que se encuentran eventualmente almacenados en un sistema de información. Para que un sistema informático pueda ser considerado como un TPS, este debe superar el test ACID.

  La base de un programa transaccional está en que gestiona los datos de forma que estos deben ser siempre consistentes (por ejemplo, si se realiza un pago con una tarjeta electrónica, la cantidad de dinero de la cuenta sobre la que realiza el cargo debe disminuir en la misma cantidad que la cuenta que recibe el pago, de no ser así, ninguna de las dos cuentas se modificará), si durante el transcurso de una transacción ocurriese algún error, el TPS debe poder deshacer las operaciones realizadas hasta ese instante. Sin las debidas precauciones, en una transacción podría ocurrir una reserva doble. Otra función de los monitores de transacciones es la detección y resolución de interbloqueos (deadlock), y cortar transacciones para recuperar el sistema en caso de fallos masivos.

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. Problemas para la integridad de los recursos y que a su vez motivan el uso de transacciones:

·  Dificultad para mantener consistencia en los datos.

·  Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.

·  Requerimientos de procesamiento en paralelo.

·  Manejo interactivo de uno o más usuarios

Definición de 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 datc

Llamadas a procedimientos Remotos (RPC).

  En computación distribuida, la llamada a procedimiento remoto (en inglés, Remote Procedure Call, RPC) es un programa que utiliza una computadora para ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambas. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando estas encapsuladas dentro de las RPC. Las RPC son muy utilizadas dentro de la comunicación cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando este de vuelta el resultado de dicha operación al cliente.

Protocolo  Un protocolo de comunicaciones es un sistema de reglas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellas para transmitir información por medio de cualquier tipo de variación de una magnitud física. Los protocolos pueden ser implementados por hardware, por software, o por una combinación de ambos.

IMPORTANCIA DE LOS PPROTOCOLOS

·  Los protocolos son sumamente importantes en una red local. En un entorno conectado por cables, una red local se define como un área en donde todos los hosts deben “hablar el mismo idioma” o, en términos informáticos, “compartir un mismo protocolo”.

·  Si los dispositivos de una red local no utilizaran los mismos protocolos, no podrían comunicarse.

·  El conjunto de protocolos más frecuente en las redes locales conectadas por cable es Ethernet.

·  El protocolo Ethernet define muchos aspectos de la comunicación a través de la red local, entre ellos: formato del mensaje, tamaño del mensaje, sincronización, codificación y patrones del mensaje.

   

¿Qué es un Middlewar?

Middleware es un software de conectividad, es el software distribuido requerido para facilitar las interacciones cliente-servidor se denomina Middleware. El API que usan los clientes para pedir un servicio a algún servidor, la transmisión física de la petición vía red, y el regreso de resultados desde el servidor al cliente.

Algunos ejemplos de Middleware estándar para algunos dominios incluyen: ODBC, Lotus groupware, SSL y http.

Hay muchas capas dentro del Middleware, por ejemplo la capa de protocolos de recursos y conectividad, y una capa de servicios colectivos que es superior.

¿Para que usar Middleware?

Dadas dos aplicaciones que se quieren conectar, se usa para resolver la comunicación entre los procesos, si no hay Middleware se complica el desarrollo de las aplicaciones pues se debe programar módulos de bajo nivel y esté desarrollo se repite para cada aplicación a conectar.

Middleware permite realizar está conexión a través de interfases ce alto nivel por lo que permite ver un procedimiento remoto cómo si fuera local.

Algunos de los ejemplos de usó pueden ser los siguientes:

  • Cliente/ Servidor en la misma máquina: se usa en sistemas de pc en pequeñas oficinas, en la casa, etc.
  • C/S a pequeña escala: aplicación clásica en una LAN con un único servidor.
  • C/ S a gran escala: Esquema multiservidor, que da imagen de un único sistema.
  • C/ S altamente distribuido: cada máquina es cliente y es servidor, así negocia con las otras máquinas mediante agentes.

Voy a hablar un poco de los servicios Middleware de IBM ya que te ofrecen promover una combinación de técnicas de optimización e innovación para que pueda ejecutar TI de una forma eficiente. IBM te ofrece algunos servicio de Middleware cómo son:

  • Servicios de integración de SOA de IBM.
  • Servicios de infraestructura de aplicaciones.
  • Servicios On Demand.
  • Mejorar la calidad y aprovechar recursos.


     SINCRONIZACION DE SISTEMAS DISTRIBUIDOS:

    1. Algoritmos para la Sincronización de Relojes

La sincronización de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronológica y a la misma vez respetar el orden de los eventos dentro del sistema. Para lograr esto existen varios métodos o algoritmos que se programan dentro del sistema operativo, entre los cuales tenemos:

  1. Este algoritmo está basado en el uso del tiempo coordenado universal (siglas en inglés, UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes periódicas del tiempo del resto de máquinas del sistema a cada uno de los cuales les envía una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. El receptor de UTC recibe el tiempo a través de diversos medios disponibles, entre los cuales se menciona las ondas de radio, Internet, entre otros.

    Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrás:

    • El tiempo del receptor UTC no puede ser menor que el tiempo de la máquina que le solicitó el tiempo.
    • El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones, lo cual incide en el tiempo de atención.
    • El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en cuenta para la sincronización. El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta.
  2. Algoritmo de Cristian

    Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo coordenado universal (UTC); en lugar de ello, el sistema maneja su propia hora. Para realizar la sincronización del tiempo en el sistema, también existe un servidor de tiempo que, a diferencia del algoritmo de Cristian, se comporta de manera activa. Este servidor realiza un muestreo periódico del tiempo que poseen algunas de las máquinas del sistema, con lo cual calcula un tiempo promedio, el cual es enviado a todas las máquinas del sistema a fin de sincronizarlo.




                                                              Bloqueos en Sistemas Distribuidos

Son peores que los bloqueos en sistemas monoprocesado:

  • Son más difíciles de evitar, prevenir, detectar y solucionar.
  • Toda la información relevante está dispersa en muchas máquinas.

Son especialmente críticos en sistemas de bases de datos distribuidos.

Las estrategias usuales para el manejo de los bloqueos son:

  • Algoritmo del avestruz:
    • Ignorar el problema.
  • Detección:
    • Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse de ellos.
  • Prevención:
    • Hacer que los bloqueos sean imposibles desde el punto de vista estructural.
  • Evitarlos:
    • Evitar los bloqueos mediante la asignación cuidadosa de los recursos.

El algoritmo del avestruz merece las mismas consideraciones que en el caso de mono-procesador.

En los sistemas distribuidos resulta muy difícil implantar algoritmos para evitar los bloqueos:

  • Se requiere saber de antemano la proporción de cada recurso que necesitará cada proceso.
  • Es muy difícil disponer de esta información en forma práctica.

Las técnicas más aplicables para el análisis de los bloqueos en sistemas distribuidos son:

  • Detección.
  • Prevención.

Detección Distribuida de Bloqueos

Cuando se detecta un bloqueo en un S. O. convencional se resuelve eliminando uno o más procesos.

Cuando se detecta un bloqueo en un sistema basado en transacciones atómicas se resuelve abortando una o más transacciones:

  • El sistema restaura el estado que tenía antes de iniciar la transacción.
  • La transacción puede volver a comenzar.

Las consecuencias de la eliminación de un proceso son mucho menos severas si se utilizan las transacciones que en caso de que no se utilicen.

Detección Centralizada de Bloqueos

Cada máquina mantiene la gráfica de recursos de sus propios procesos y recursos.

Un coordinador central mantiene la gráfica de recursos de todo el sistema, que es la unión de todas las gráficas individuales.

Cuando el coordinador detecta un ciclo elimina uno de los procesos para romper el bloqueo.

La información de control se debe transmitir explícitamente, existiendo las siguientes variantes:

  • Cada máquina informa cada actualización al coordinador.
  • Cada máquina informa periódicamente las modificaciones desde la última actualización.
  • El coordinador requiere la información cuando la necesita.

La información de control incompleta o retrasada puede llevar a falsos bloqueos:

  • El coordinador interpreta erróneamente que existe un bloqueo y elimina un proceso.
  • Una posible solución es utilizar el algoritmo de Lamport para disponer de un tiempo global.

Detección Distribuida de Bloqueos

Un algoritmo típico es el de Chandy-Misra-Haas.

Los procesos pueden solicitar varios recursos (por ejemplo cerraduras) al mismo tiempo, en vez de uno cada vez.

Se permiten las solicitudes simultáneas de varios procesos:

  • Un proceso puede esperar a uno o más recursos simultáneamente.
  • Los recursos que espera un proceso pueden ser locales o remotos (de otra máquina).

Si el proceso “0” se bloquea debido al proceso “1”:

  • Se genera un mensaje de exploración que se envía al proceso (o procesos) que detienen los recursos necesarios.
  • El mensaje consta de tres números:
    • El proceso recién bloqueado, el proceso que envía el mensaje y el proceso al cual se envía.
  • Al llegar el mensaje el receptor verifica si él mismo espera a algunos procesos, en cuyo caso:
    • El mensaje se actualiza:
      • Se conserva el primer campo.
      • Se reemplaza el segundo por su propio número de proceso y el tercero por el número del proceso al cual espera.
    • El mensaje se envía al proceso debido al cual se bloquea:
      • Si se bloquea debido a varios procesos les envía mensajes (diferentes) a todos ellos.
  • Si un mensaje recorre todo el camino y regresa a su emisor original (el proceso enlistado en el primer campo), entonces:
    • Existe un ciclo y el sistema está bloqueado.

Una forma de romper el bloqueo es que el proceso que inició la exploración se comprometa a suicidarse y, si varios procesos se bloquean al mismo tiempo e inician exploraciones, todos ellos se suicidarán.

Una variante es eliminar solo al proceso del ciclo que tiene el número más alto.

Prevención Distribuida de Bloqueos

La prevención consiste en el diseño cuidadoso del sistema para que los bloqueos sean imposibles estructuralmente.

Entre las distintas técnicas se incluye:

  • Permitir a los procesos que solo conserven un recurso a la vez.
  • Exigir a los procesos que soliciten todos sus recursos desde un principio.
  • Hacer que todos los procesos liberen todos sus recursos cuando soliciten uno nuevo.

En un sistema distribuido con tiempo global y transacciones atómicas:

  • Se puede asociar a cada transacción una marca de tiempo global al momento de su inicio.
  • No pueden haber parejas de transacciones con igual marca de tiempo asociada.

La idea es que cuando un proceso está a punto de bloquearse en espera de un recurso que está utilizando otro proceso:

  • Se verifica cuál de ellos tiene la marca de tiempo mayor (es más joven).
  • Se puede permitir la espera solo si el proceso en estado de espera tiene una marca inferior (más viejo) que el otro.

Al seguir cualquier cadena de procesos en espera:

  • Las marcas aparecen en forma creciente.
  • Los ciclos son imposibles.

Otra posibilidad es permitir la espera de procesos solo si el proceso que espera tiene una marca mayor (es más joven) que el otro proceso; las marcas aparecen en la cadena en forma descendente.

Es más sabio dar prioridad a los procesos más viejos:

  • Se ha invertido tiempo de proceso en ellos.
  • Probablemente conservan más recursos.

QUE ES GRID:

Llamamos grid al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDAportátilesmóviles, etc), softwaredatos e información, instrumentos especiales (radiotelescopios, etc.) o personas/colaboradores.

La computación grid ofrece muchas ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de computadores conectados en red usando grid es prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.

Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas de seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su objetivo será el de compartir una serie de recursos en la red de manera uniforme, seguratransparenteeficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración. Esto nos puede llevar a pensar que la computación Grid permite la creación de empresas virtuales. Es importante saber que una grid es un conjunto de maquinas distribuidas que ayudan a mejorar el trabajo sobre software pesados.



MODELO CLIENTE_SERVIDOR

Escrito por distribuido 12-04-2018 en MODELO CLIENTE--SERVIDOR. Comentarios (0)

Resultado de imagen para que es un cliente servidor


TCP es un protocolo orientado a conexión. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones.

Un servidor es una aplicación que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas.

Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte.

El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar múltiples peticiones(múltiples clientes) al mismo tiempo.

Algunos servidores esperan las solicitudes en puertos bien conocidos de modo que sus clientes saben a que zócalo IP deben dirigir sus peticiones. El cliente emplea un puerto arbitrario para comunicarse. Los clientes que se quieren comunicar con un servidor que no usa un puerto bien conocido tienen otro mecanismo para saber a qué puerto dirigirse. Este mecanismo podría usar un servicio de registro como Portmap, que utiliza un puerto bien conocido.


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. Como se muestra en la Figura 1.1, 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. Esto se muestra claramente en la Figura 1.2.
Figura 1.2. 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:

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
         

  •  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:

    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.
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.

Resultado de imagen para que servicios de un sistema de archivos   

¿Qué es un Middlewar?

Middleware es un software de conectividad, es el software distribuido requerido para facilitar las interacciones cliente-servidor se denomina Middleware. El API que usan los clientes para pedir un servicio a algún servidor, la transmisión física de la petición vía red, y el regreso de resultados desde el servidor al cliente.

Algunos ejemplos de Middleware estándar para algunos dominios incluyen: ODBC, Lotus groupware, SSL y http.

Hay muchas capas dentro del Middleware, por ejemplo la capa de protocolos de recursos y conectividad, y una capa de servicios colectivos que es superior.

¿Para que usar Middleware?

Dadas dos aplicaciones que se quieren conectar, se usa para resolver la comunicación entre los procesos, si no hay Middleware se complica el desarrollo de las aplicaciones pues se debe programar módulos de bajo nivel y esté desarrollo se repite para cada aplicación a conectar.

Middleware permite realizar está conexión a través de interfases ce alto nivel por lo que permite ver un procedimiento remoto cómo si fuera local.

Algunos de los ejemplos de usó pueden ser los siguientes:

  • Cliente/ Servidor en la misma máquina: se usa en sistemas de pc en pequeñas oficinas, en la casa, etc.
  • C/S a pequeña escala: aplicación clásica en una LAN con un único servidor.
  • C/ S a gran escala: Esquema multiservidor, que da imagen de un único sistema.
  • C/ S altamente distribuido: cada máquina es cliente y es servidor, así negocia con las otras máquinas mediante agentes.

Voy a hablar un poco de los servicios Middleware de IBM ya que te ofrecen promover una combinación de técnicas de optimización e innovación para que pueda ejecutar TI de una forma eficiente. IBM te ofrece algunos servicio de Middleware cómo son:

  • Servicios de integración de SOA de IBM.
  • Servicios de infraestructura de aplicaciones.
  • Servicios On Demand.
  • Mejorar la calidad y aprovechar recursos.
                                                                          QUE ES GRID:

Llamamos grid al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDAportátilesmóviles, etc), softwaredatos e información, instrumentos especiales (radiotelescopios, etc.) o personas/colaboradores.

La computación grid ofrece muchas ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de computadores conectados en red usando grid es prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.

Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas de seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su objetivo será el de compartir una serie de recursos en la red de manera uniforme, seguratransparenteeficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración. Esto nos puede llevar a pensar que la computación Grid permite la creación de empresas virtuales. Es importante saber que una grid es un conjunto de maquinas distribuidas que ayudan a mejorar el trabajo sobre software pesados.



SISTEMA OPERATIVOS DISTRIBUIDOS

Escrito por distribuido 12-04-2018 en Sistemas Distribuidos. Comentarios (0)

  • SEGUNDO LAPSO:

                                                         Sistemas Operativos Distribuidos:

Es aquel que consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red. Es donde los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales Permitiendo distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, lo cual es transparente para el usuario.

2-).Historia de los Sistemas Operativos Distribuidos.




Un sistema distribuido se define como una colección de computadores autónomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación. [ Colouris 1994 ]

El desarrollo de los sistemas distribuidos vino de la mano de las redes locales de alta velocidad a principios de 1970. Mas recientemente, la disponibilidad de computadoras personales de altas prestaciones, estaciones de trabajo y ordenadores servidores ha resultado en un mayor desplazamiento hacia los sistemas distribuidos en detrimento de los ordenadores centralizados multiusuario. Esta tendencia se ha acelerado por el desarrollo de software para sistemas distribuidos, diseñado para soportar el desarrollo de aplicaciones distribuidas. Este software permite a los ordenadores coordinar sus actividades y compartir los recursos del sistema - hardware, software y datos.

Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores.

Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y organizaciones de usuarios.

3-).Clasificación de los Sistemas operativos Distribuidos.

Ä

Se clasifican los sistemas cliente servidor de acuerdo al nivel de abstracción del servicio que se ofrece. Se distinguen tres componentes básicos de software:

ÄInteracción con el usuario

ÄLógica de Aplicación

ÄRepositorio de datos

1. Representación distribuida. La interacción con el usuario se realiza básicamente en el servidor. El cliente hace de pasarela, de sistema de acceo a los elementos hardware pantalla y teclado.

2. Representación remota. Los datos se envían sin formatear, y es el cliente el responsable de formatear los datos y realizar las acciones de interacción con el usuario. En este caso, la aplicación y la base de datos se encuentran en el servidor

3. Lógica distribuida. En el cliente se llevan a cabo la interacción con el usuario y la parte más trivial de la lógica de la aplicación. En este caso, se llevan a cabo controles básicos de rango de campos, campos obligatorios, etc, mientras que el grueso de la lógica permanece en el servidor.

Publicado por integrantes en 17:06 No hay comentarios:  

4-).Ventanjas de los Sistemas Opeativos Distribuidos.

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.

5-).Describa y defina la clasificación de los servidores.





Es un ordenador de gran potencia, que se encarga de "prestar un servicio" a otros ordenadores (por ejemplo, el suyo) que se conectan a el y se encargan de hacer que los mensajes que usted escriba lleguen a su destino y también de hacer llegar hasta usted, los mensajes del resto de usuarios.
  • Una aplicación informática o programa que realiza algunas tareas en beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que permiten a los usuarios almacenar y acceder a los archivos de una computadora y los servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Este es el significado original del término. Es posible que un ordenador cumpla simultáneamente las funciones de cliente y de servidor.

6-).Dibuje y explique el esquema funcional de un sistema distribuido.


Este esquema explica un sistema consta de tres tipos distintos de elementos de proceso :

- equipos clientes: son los ordenadores de propósito general donde los diseñadores de animaciones trabajan. Son los puntos de entrada al sistema. Estos ordenadores deberían de incluir: tarjeta de red, monitor de alta resolución, tarjeta gráfica de alta velocidad, coprocesador matemático, y procesador no necesariamente rápido.

- equipos procesadores: son los ordenadores de propósito específico donde se calculan y generan las animaciones. Estos equipos serían placas montadas en rack, sin disco, con tarjeta de red, coprocesador matemático y procesador lo más rápido posible.

- equipo servidor: es el que se encarga de aceptar los trabajos enviados por los clientes y repartirlos entre los procesadores. Este ordenador debería incluir: tarjeta de red, gran espacio en disco, y un procesador normal.

7-).El papel de las Redes en los Sistemas Operativos Distribuidos.

El papel de las Redes Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.


SISTEMAS DISTRIBUIDOS

Escrito por distribuido 12-04-2018 en Sistemas Distribuidos. Comentarios (0)

                                                                 Sistema Distribuidos:

  1.   PRIMER LAPSO:

Definición, Características, Ventajas, Desventajas, Categorías.

* Definición de los Sistemas Distribuidos.

* Características principales y descripción de los Sistemas

  Distribuidos.

* Ventajas y Desventajas.

* Características clave de los Sistemas Distribuidos.

* Categoría de los Sistemas Distribuidos.

  Sistemas Distribuidos

    

 Un sistema distribuido se define como una colección de computadores  conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación.
    Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, con una colección de redes  extensas interconectados, que en enlazan millones de ordenadores.


Características claves de los Sistemas Distribuidos

Cada elemento de cómputo tiene su propia memoria y su propio Sistema Operativo.

Control de recursos locales y remotos.

Sistemas Abiertos (Facilidades de cambio y crecimiento).

Plataforma no estándar (Unix, NT, Intel, RISC, Etc.).

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

Capacidad de Procesamiento en paralelo.

Dispersión y parcialidad.

Características principales que los definen:

Compartición de Recursos:

  Los recursos en un sistema distribuido están físicamente encapsulados en una de las computadoras y sólo pueden ser accedidos por otras computadoras mediante la  red. Para que la compartición de recursos sea efectiva, ésta debe ser manejada por un programa que ofrezca un interfaz de comunicación permitiendo que el recurso sea accedido, manipulado y actualizado de una manera fiable y consistente, este programa es el gestor de recursos.

Aperturas:

    Un sistema puede ser abierto o cerrado con respecto a extensiones hardware o con respecto a las extensiones software. La apertura de los sistemas distribuidos se determina principalmente por el grado hacia el que nuevos servicios de compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya existentes.

 Concurrencia:

  Cuando existen varios procesos en una única maquina decimos que se están ejecutando concurrentemente. Si el ordenador está equipado con un único procesador central, la concurrencia tiene lugar entrelazando la ejecución de los distintos procesos.

Escalabilidad:

    Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala más pequeña consiste en dos estaciones de trabajo y un servidor de fichero, cuando el tamaño y complejidad de las redes de ordenadores crece, es un objetivo primordial diseñar software de sistema distribuido que seguirá siendo eficiente y útil con esas nuevas configuraciones de la red.

Tolerancia a Fallos

   Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar el proceso que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware y recuperación del software.

Transparencia

    La transparencia de un sistema distribuido va en conjunto con que todo el sistema funcione de forma similar en todos los puntos de red, sin importar la posición del usuario, este mecanismo permite trabajar a todos los usuarios como si se tratara de un equipo único.


Ventajas de los sistemas distribuidos

•Economía: Los microprocesadores ofrecen mejor relación precio/rendimiento que los mainframe.

•Velocidad: Tiene mayor poder de cómputo que un mainframe.

•Distribución inherente: Aplicaciones en máquinas separadas geográficamente.

•Confiabilidad: El sistema sobrevive a cualquier falla en una máquina.

•Datos Compartidos: Los usuarios tienen acceso a una base de datos común.

•Dispositivos Compartidos: Los usuarios comparten periféricos caros.

•Comunicación: facilita la comunicación persona apersona.

•Flexibilidad: Difunde la carga entre las máquinas disponibles en forma eficaz.


Desventajas de los sistemas distribuidos

•Software: Hay poco software disponible para sistemas distribuidos. La algorítmica es menos controlable.

•Redes: Se pueden saturar o causar otros problemas.