Академический Документы
Профессиональный Документы
Культура Документы
1 INTRODUCCIN
Un Sistema Distribuido es una coleccin de computadores independientes que aparecen ante los usuarios como un nico sistema coherente. (Andrew S. Tanenbaum) Un sistema en el cual tanto los componentes de hardware y software de un computador conectados en red se comunican y coordinan mediante paso de mensajes. (G.Coulouris, J.Dollimore, T.Kindberg) Aquel que le impide a uno continuar su trabajo cuando falla un computador del cual uno nunca ha odo hablar. (L.Lamport)
Transparencias Definidas
Transparencia de Acceso: Permite el acceso a los objetos de informacin remotos de la misma forma que a los objetos de informacin locales. Transparencia de Localizacin: Permite el acceso a los objetos de informacin sin conocimiento de su localizacin.
Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de informacin compartidos y de forma que no exista interferencia entre ellos. Transparencia de Replicacin: Permite utilizar mltiples instancias de los objetos de informacin para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas de aplicacin tengan por que conoces la existencia de las replicas. Transparencia de Fallos: Permite a los usuarios y programas de aplicacin completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software. Transparencia de Migracin: Permite el movimiento de objetos de informacin dentro de un sistema sin afectar a los usuarios o a los programas de aplicacin. Transparencia de Prestaciones. Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga varia. Transparencia de Escalado: Permite la expansin del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicacin.
1.3.2 HETEROGENEIDAD
Al hablar de heterogeneidad nos referimos a la variedad y diferencia que podemos encontrar en los elementos que componen una red de computadoras, sobre la que se ejecuta un sistema distribuido, dicha heterogeneidad no solo se aplica a la redes y al hardware de la computadora, sino tambin a los sistemas operativos, los lenguajes de programacin y las implementaciones en las que trabajan los diferentes desarrolladores. Esta heterogeneidad (es decir, variedad y diferencia) se aplica a todos los siguientes elementos: Redes. Hardware de computadores. Sistemas operativos. Lenguajes de programacin. Implementaciones de diferentes desarrolladores.
1.3.3 ESCALABILIDAD
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala ms pequea consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de rea local simple podra contener varios
cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresin y otros servidores de propsito especfico. Si el sistema crece mediante la adicin de nuevos nodos el rendimiento ser proporcional a la cantidad de procesadores que aadamos.
1.3.4 SEGURIDAD
La seguridad de los recursos de informacin tiene tres componentes: Confidencialidad. Integridad. Disponibilidad. En un sistema distribuido, los clientes envan peticiones de acceso a datos administrados por servidores, lo que trae consigo enviar informacin en los mensajes por la red. La seguridad no slo es cuestin de ocultar los contenidos de los mensajes, tambin consiste en conocer con certeza la identidad del usuario u otro agente en nombre del cual se enva el mensaje. Existen dos desafos de seguridad que no han sido cumplimentados completamente: Ataques de denegacin de servicio: otro problema de seguridad ocurre cuando un usuario desea obstaculizar un servicio por alguna razn. Tratamiento De Fallos Los sistemas computacionales a veces fallan, cuando aparecen fallos en el hardware o el software, los programas pueden producir resultados incorrectos o pudieran parar antes de haber completado el clculo pedido. Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan mientras otros siguen funcionando. Tcnicas Para Deteccin De Fallos DETECCIN DE FALLOS: Se pueden utilizar sumas de comprobacin (cheksums) para detectar datos corruptos en un mensaje o un archivo. Es difcil o incluso imposible detectar algunos fallos que no pueden detectarse pero que s pueden esperarse. ENMASCARAMIENTO DE FALLOS: Algunos fallos que han sido detectados pueden ocultarse o atenuarse. RECUPERACIN FRENTE A FALLOS: La recuperacin implica el diseo de software en el que, tras una cada del servidor, el estado de los datos pueda reponerse o retractarse (roll back) a una situacin anterior. En general, cuando aparecen fallos los clculos realizados por algunos programas se encontrarn incompletos y al actualizar datos permanentes (archivos e informacin ubicada ene el almacenamiento persistente) pudiera encontrarse en un estado inconsciente. TOLERANCIA DE FALLOS: La mayora de los servicios en internet exhiben fallo; es posible que no sea prctico para ellos pretender detectar y ocultar todos los fallos que pudieran aparecer en una red tan grande y con tantos componentes.
REDUNDANCIA: Puede lograrse que los servicios toleren fallos mediante empleo redundante de componentes.
Compartir recursos. Un sistema distribuido permite compartir recursos hardware y software (discos, impresoras, ficheros y compiladores) que se asocian con computadoras de una red. Apertura. Son normalmente sistemas abiertos: se disean sobre protocolos estndares que permiten combinar equipamiento y software de diferentes vendedores. Concurrencia. Varios procesos pueden operar al mismo tiempo sobre diferentes computadoras de la red. Hasta pueden comunicarse con otros durante su funcionamiento. Escalabilidad. Los sistemas distribuidos son escalables mientras la capacidad del sistema pueda incrementarse, aadiendo nuevos recursos para cubrir nuevas demandas sobre el sistema. Tolerancia a defectos. Contar con varias computadoras y el potencial para reproducir informacin significa que los sistemas distribuidos pueden ser tolerantes a algunas fallas de funcionamiento del hardware y del software.
DESVENTAJAS: Complejidad. Los sistemas distribuidos son ms complejos que los sistemas centralizados; lo que hace ms difcil comprender sus propiedades emergentes y probar estos sistemas. Seguridad. Puede accederse al sistema desde varias computadoras diferentes, y el trfico en la red puede estar sujeto a escuchas indeseadas.
Manejabilidad. Las computadoras en un sistema pueden ser de diferentes tipos y ejecutar versiones diferentes de sistemas operativos.
Modelo: Esta es la representacin especfica de la informacin con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema tambin puede operar con ms datos no relativos a la presentacin, haciendo uso integrado de otras lgicas de negocio y de datos afines con el sistema modelado. Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
De integracin de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboracin. De composicin de procesos - Que define el proceso en trminos del negocio y sus necesidades, y que vara en funcin del negocio. De entrega - donde los servicios son desplegados a los usuarios finales.
3.2.1 RMI
Remote Invocation Method.- Fue el primer fremework para crear sistemas distribuidos de Java. es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Forma parte del entorno estndar de ejecucin de Java y proporciona un mecanismo simple para la comunicacin
de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicacin entre otras tecnologas debe utilizarse CORBA o SOAP en lugar de RMI
3.2.2 CORBA
Common Object Request Broker Architecture.- Tecnologa introducida por el Grupo de Administracin de Objetos OMG, creada para establecer una plataforma para la gestin de objetos remotos independiente del lenguaje de programacin.
3.2.3 COM/DCOM
Distributed Component Object Model.- El Modelo de Objeto Componente Distribuido, esta incluido en los sistemas operativos de Microsoft.
REMOTE METHOD INVOCATION RMI RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un mtodo de manera remota. Forma parte del entorno estndar de ejecucin de Java y proporciona un mecanismo simple para la comunicacin de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicacin entre otras tecnologas debe utilizarse CORBA o SOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programacin por estar especficamente diseado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recoleccin de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). A travs de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estar accesible a travs de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los mtodos proporcionados por el objeto.
LA ARQUITECTURA RMI PUEDE VERSE COMO UN MODELO DE CUATRO CAPAS Primera capa La primera capa es la de aplicacin y se corresponde con la implementacin real de las aplicaciones cliente y servidor. Aqu tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicacin que quiera que sus mtodos estn disponibles para su acceso por clientes remotos debe declarar dichos mtodos en una interfaz que extienda java.rmi.Remote. Dicha interfaz se usa bsicamente para "marcar" un objeto como remotamente accesible. Una vez que los mtodos han sido implementados, el objeto debe ser exportado. Esto puede hacerse de forma implcita si el objeto extiende la clase UnicastRemoteObject (paquete java.rmi.server), o puede hacerse de forma explcita con una llamada al mtodo exportObject() del mismo paquete. Segunda capa
La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interacta directamente con la capa de aplicacin. Todas las llamadas a objetos remotos y acciones junto con sus parmetros y retorno de objetos tienen lugar en esta capa. Tercera capa La capa 3 es la de referencia remota, y es responsable del manejo de la parte semntica de las invocaciones remotas. Tambin es responsable de la gestin de la replicacin de objetos y realizacin de tareas especficas de la implementacin con los objetos remotos, como el establecimiento de las persistencias semnticas y estrategias adecuadas para la recuperacin de conexiones perdidas Cuarta Capa La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una mquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que solamente es "comprendido" por programas Java.
COMMON OBJECT REQUEST BROKER ARCHITECTURE CORBA Es un estndar definido por el Object Management Group (OMG) que permite que diversos componentes de software escritos en mltiples lenguajes de programacin y que corren en diferentes computadoras puedan trabajar juntos.
En un sentido general, CORBA "envuelve" el cdigo escrito en otro lenguaje, en un paquete que contiene informacin adicional sobre las capacidades del cdigo que contiene y sobre cmo llamar a sus mtodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. CORBA utiliza un lenguaje de definicin de interfaces (IDL) para especificar las interfaces con los servicios que los objetos ofrecern. CORBA puede especificar a partir de este IDL, la interfaz a un lenguaje determinado, describiendo cmo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. Implementaciones estndar existen para Ada, C, C++, Smalltalk, Java, Python, Perl y Tcl.
DISTRIBUTED COMPONENT OBJECT MODEL DCOM En espaol Modelo de Objetos de Componentes Distribuidos, es una tecnologa propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre s. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicacin entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET. La adicin de la "D" a COM fue debido al uso extensivo de DCE/RPC, o ms especficamente la versin mejorada de Microsoft, conocida como MSRPC. En trminos de las extensiones que aade a COM, DCOM tena que resolver los problemas de:
Aplanamiento - Serializar y deserializar los argumentos y valores de retorno de las llamadas a los mtodos "sobre el cable". Recoleccin de basura distribuida- asegurndose que las referencias mantenidas por clientes de las interfaces sean liberadas cuando, por ejemplo, el proceso cliente ha cado o la conexin de red se pierde.
Los procesos encapsulan recursos y acceden a comunicarse con los clientes a travs de sus interfaces. Los usuarios u otros procesos pueden estar autorizados para operar sobre los recursos y estos deben estar protegidos contra accesos no autorizados. Los procesos interactan en la red, que es compartida. Los enemigos o atacantes pueden acceder a la red y podrn copiar, leer o introducir mensajes arbitrarios, dirigidos hacia cualquier destino y simular que provienen de cualquier otro.
REDES DE PETRI Una Red de Petri es una representacin matemtica o grfica de un sistema a eventos discretos en el cual se puede describir la topologa de un sistema distribuido, paralelo o concurrente. La red de Petri esencial fue definida en la dcada de los aos 1960 por Carl Adam Petri. Son una generalizacin de la teora de autmatas que permite expresar un sistema a eventos concurrentes. Una red de Petri est formada por lugares, transiciones, arcos dirigidos y marcas o fichas que ocupan posiciones dentro de los lugares. Las reglas son: Los arcos conectan un lugar a una transicin as como una transicin a un lugar. No puede haber arcos entre lugares ni entre transiciones. Los lugares contienen un nmero finito o infinito contable de marcas. Las transiciones se disparan, es decir consumen marcas de una posicin de inicio y producen marcas en una posicin de llegada. Una transicin est habilitada si tiene marcas en todas sus posiciones de entrada. En su forma ms bsica, las marcas que circulan en una red de Petri son todas idnticas. Se puede definir una variante de las redes de Petri en las cuales las marcas pueden tener un color (una informacin que las distingue), un tiempo de activacin y una jerarqua en la red. La mayora de los problemas sobre redes de Petri son decidibles, tales como el carcter acotado y la cobertura. Para resolverlos se utiliza un rbol de Karp-Miller. Se sabe que el problema de alcance es decidible, al menos en un tiempo exponencial.
PROMELA (proceso o protocolo Meta Language) es un lenguaje de modelado de verificacin. El lenguaje permite la creacin dinmica de procesos concurrentes al modelo, por ejemplo, sistemas distribuidos. En modelos PROMELA, la comunicacin a travs de canales de mensajes se puede definir a ser sncrona (es decir, punto de encuentro), o asincrnica (es decir, tamponada).
PROMELA modelos se pueden analizar con el comprobador de modelos SPIN, para verificar que el sistema modelado produce el comportamiento deseado. PROMELA es un lenguaje de modelado de procesos, cuyo uso previsto es el de verificar la lgica de los sistemas paralelos. Dado un programa en PROMELA, Spin puede verificar el modelo de correccin mediante la realizacin de simulaciones aleatorias o iterativas de ejecucin del sistema modelado, o puede generar un programa en C que lleva a cabo una verificacin exhaustiva rpida del espacio de estado del sistema.
sincronizado todo el sistema. El receptor de UTC recibe el tiempo a travs de diversos medios disponibles, entre los cuales se menciona las ondas de radio, Internet, entre otros.
cualquier instante de tiempo, es o bien un participante (lo que significa que est comprometido en alguna ejecucin del algoritmo de eleccin) o bien, un no participante (lo que significa que no est comprometido actualmente en ninguna eleccin).
La aplicacin debe ser muy interactiva y con gran capacidad de respuesta. La interfaz de usuario de la aplicacin debe ofrecer una amplia funcionalidad, con posibilidades como la visualizacin en 3D y la interaccin entre usuarios. Las aplicaciones deben aprovechar los recursos del PC cliente.
5.4 SERVICIOS
Un servicio web (en ingls, Web services) es una tecnologa que utiliza un conjunto de protocolos y estndares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programacin diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopcin de estndares abiertos. Las organizaciones OASIS y W3C son los comits responsables de la arquitectura y reglamentacin de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera ms exhaustiva estos estndares. Es una mquina que atiende las peticiones de los clientes web y les enva los recursos solicitados.