Вы находитесь на странице: 1из 17

UNIDAD 1: CARACTERIZACIN DE LOS SISTEMAS DISTRIBUIDOS 1.

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)

1.2 CARACTERSTICAS DE LOS SISTEMAS DISTRIBUIDOS (SD). Sistema Distribuido


Un sistema distribuido se define como una coleccin de computadoras separadas fsicamente y conectadas entre s por una red de comunicaciones distribuida; cada mquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema (no necesita saber qu cosas estn en qu mquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en comn.

1.3 DESAFOS DE LOS SD 1.3.1 LA TRANSPARENCIA


La transparencia se define como la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una coleccin de componentes independientes. La transparencia ejerce una gran influencia en el diseo del software de sistema. El manual de referencia RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un resumen til de la motivacin y metas de los sistemas distribuidos.

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.

UNIDAD 2: ARQUITECTURA DE SISTEMAS DISTRIBUIDOS


Prcticamente todos los grandes sistemas informticos son sistemas distribuidos. En un sistema distribuido el procesamiento de informacin se distribuye sobre varias computadoras en vez de estar confinado en una nica mquina.
VENTAJAS:

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.

Impredecibilidad. Los sistemas distribuidos tienen una respuesta impredecible.

2.1 CLIENTE SERVIDOR


Cliente-servidor es un modelo de aplicacin distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea tambin se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es ms ventajosa en un sistema operativo multiusuario distribuido a travs de una red de computadoras. En esta arquitectura la capacidad de proceso est repartida entre los clientes y los servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a la centralizacin de la gestin de la informacin y la separacin de responsabilidades, lo que facilita y clarifica el diseo del sistema.

2.2 CAPAS Y NIVELES


Las capas (Layers) se ocupan de la divisin lgica de componentes y funcionalidad, estas no tienen en cuenta la ubicacin fsica de componentes en diferentes servidores o en diferentes lugares. Por el contrario los niveles (Tiers) se ocupan de la distribucin fsicas de componentes y funcionalidad en servidores separados, teniendo en cuenta topologas de redes y localizaciones remotas. Aunque tanto las capas como los niveles usan conjuntos similares de nombres (presentacin, servicios, negocios y datos), es importante no confundirlos y recordar que solo los niveles implican una separacin fsica.

2.3 MODELO VISTA CONTROLADOR (MVC)


Es un patrn o modelo de abstraccin de desarrollo de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de negocio en tres componentes distintos (modelo, vista y controlador). El patrn de llamada y retorno MVC (segn la CMU), se ve frecuentemente en aplicaciones web, donde la vista es la pgina HTML y el cdigo que provee de datos dinmicos a la pgina, el modelo es el Sistema de Gestin de Base de Datos y la Lgica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.

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.

2.4 ORIENTADA A SERVICIOS


La arquitectura orientada a servicios de cliente (en ingls Service Oriented Architecture), es un concepto de arquitectura de software que define la utilizacin de servicios para dar soporte a los requisitos del negocio. Permite la creacin de sistemas de informacin altamente escalables que reflejan el negocio de la organizacin, a su vez brinda una forma bien definida de exposicin e invocacin de servicios (comnmente pero no exclusivamente servicios web), lo cual facilita la interaccin entre diferentes sistemas propios o de terceros. Al contrario de las arquitecturas orientado a objetos, las SOAs estn formadas por servicios de aplicacin dbilmente acoplados y altamente interoperables. Para comunicarse entre s, estos servicios se basan en una definicin formal independiente de la plataforma subyacente y del lenguaje de programacin. SOA DEFINE LAS SIGUIENTES CAPAS DE SOFTWARE: Aplicaciones bsicas - Sistemas desarrollados bajo cualquier arquitectura o tecnologa, geogrficamente dispersos y bajo cualquier figura de propiedad. De exposicin de funcionalidades - Donde las funcionalidades de la capa aplicativa son expuestas en forma de servicios (generalmente como servicios web).

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.

UNIDAD 3: COMUNICACION 3.1 PASO DE MENSAJE


La Interfaz de Paso de Mensajes (conocido ampliamente como MPI, siglas en ingls de Message Passing Interface) es un protocolo de comunicacin entre computadoras. Es el estndar para la comunicacin entre los nodos que ejecutan un programa en un sistema de memoria distribuida. Las implementaciones en MPI consisten en un conjunto de bibliotecas de rutinas que pueden ser utilizadas en programas escritos en los lenguajes de programacin C, C++, Fortran y Ada. La ventaja de MPI sobre otras bibliotecas de paso de mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi toda arquitectura de memoria distribuida), y rpidos, (porque cada implementacin de la biblioteca ha sido optimizada para el hardware en la cual se ejecuta). Los elementos principales que intervienen en el paso de mensajes son: I. Proceso que enva II. El que recibe III. El mensaje

3.2 OBJETOS DISTRIBUIDOS


En los sistemas Cliente/Servidor, un objeto distribuido es aquel que esta gestionado por un servidor y sus clientes invocan sus mtodos utilizando un "mtodo de invocacin remota". El cliente invoca el mtodo mediante un mensaje al servidor que gestiona el objeto, se ejecuta el mtodo del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje.

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.

3.3 SNCRONA Y ASNCRONA.


ASNCRONA Transmisin asncrona La transmisin asncrona es aquella que se transmite o se recibe un carcter, bit por bit aadindole bits de inicio, y bits que indican el trmino de un paquete de datos, para separar as los paquetes que se van enviando/recibiendo para sincronizar el receptor con el transmisor. El bit de inicio le indica al dispositivo receptor que sigue un carcter de datos; similarmente el bit de trmino indica que el carcter o paquete ha sido completado. SNCRONA Transmisin Sncrona Este tipo de transmisin el envo de un grupo de caracteres en un flujo continuo de bits. Para lograr la sincronizacin de ambos dispositivos (receptor y transmisor) ambos dispositivos proveen una seal de reloj que se usa para establecer la velocidad de transmisin de datos y para habilitar los dispositivos conectados a los mdems para identificar los caracteres apropiados mientras estos son transmitidos o recibidos.

3.4 CONSIDERACIONES DE SEGURIDAD


En el mundo fsico, las organizaciones adoptan polticas de seguridad para poder compartir recursos dentro de unos lmites especificados. Las polticas de seguridad se hacen cumplir con la ayuda de los mecanismos de seguridad. En el mundo electrnico, la distincin entre polticas de seguridad y los mecanismos tambin es importante: sin ella, seria difcil determinar si un sistema particular es seguro. Las polticas de seguridad son independientes de la tecnologa empleada, as como el instalar una cerradura en una puerta no garantiza la seguridad del edificio a menos que haya una poltica de uso (por ejemplo. que la puerta est cerrada cuando no est vigilada). Los mecanismos de seguridad que describir no garantizan, por s mismos, la seguridad de un sistema. La distincin entre polticas de seguridad y mecanismos de seguridad es de utilidad cuando se disean sistemas seguros, pero no es fcil estar seguro de que cierto conjunto de mecanismos de seguridad implementan completamente las polticas de seguridad deseadas. Este es un modelo de seguridad diseado para ayudar en el anlisis de las amenazas de seguridad potenciales en un sistema distribuido. RESUMIENDO EL MODELO DE SEGURIDAD COMO SIGUE:

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.

3.5 OPCIONES TECNOLOGICAS


WCF ( Windows Communication Foundation ) WCF (tambin conocido como Indigo), es la plataforma de mensajera que forma parte de la API de la Plataforma .NET 3.0 (antes conocida como WinFX, y que no son ms que extensiones para la versin 2.0). Se encuentra basada en la Plataforma .NET 2.0 y de forma predeterminada se incluye en el Sistema Operativo Microsoft Windows Vista. Fue creada con el fin de permitir una programacin rpida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios (tambin conocido como SOA), con una API simple; y que puede ejecutarse en una mquina local, una LAN, o sobre Internet en una forma segura.

UNIDAD.-4 DISEO DE SISTEMAS DISTRIBUIDOS 4.1 TCNICAS DE ESPECIFICACIN FORMAL


Disear un sistema distribuido es crear aplicaciones de software que, utilizando servicios y ayudndose de la conectividad, participen y se integren en este entorno de forma transparente a las plataformas de proceso y de almacenamiento de datos, dotndolas de los recursos necesarios para gestionarse de forma integrada con el resto del sistema distribuido. Los servicios permitirn usar todos los recursos tcnicos y el sistema distribuido resultante no ser nada ms, ni nada menos, que un conjunto de servicios que interoperan entre ellos colaborando para cumplir los objetivos que se han establecido para el sistema. Los sistemas distribuidos que se diseen y construyan deben estar alineados con los objetivos de negocio de la empresa, aumentar la eficacia y eficiencia operacional de la compaa y permitir el mayor rendimiento con el menor coste en las estructuras informticas que dan soporte.

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.

4.2 MODELO TOLERANTE A FALLAS


Es la capacidad de un sistema de almacenamiento de acceder a informacin an en caso de producirse algn fallo. Esta falla puede deberse a daos fsicos (mal funcionamiento) en uno o ms componentes de hardware lo que produce la prdida de informacin almacenada. La tolerancia a fallos requiere para su implementacin que el sistema de almacenamiento guarde la misma informacin en ms de un componente de hardware o en una mquina o dispositivo externos a modo de respaldo. De esta forma, si se produce alguna falla con una consecuente prdida de datos, el sistema debe ser capaz de acceder a toda la informacin recuperando los datos faltantes desde algn respaldo disponible. Por lo general, el trmino tolerancia a fallos est asociado al almacenamiento en RAID (Redundant Array of Independent Disks). Los RAID (a excepcin de RAID 0) utilizan la tcnica Mirroring (en espejo) que permite la escritura simultnea de los datos en ms de un disco del array. Los sistemas de almacenamiento con tolerancia a fallos son vitales en ambientes donde se trabaje con informacin crtica, como el caso de los bancos, entidades gubernamentales, algunas empresas, etc. El nivel de tolerancia a fallos depender de la tcnica de almacenamiento utilizada y de la cantidad de veces que la informacin est duplicada, sin embargo, la tolerancia nunca es del 100% puesto que si fallan todos los "mirrors" disponibles, incluyendo el origen, los datos quedan incompletos por lo tanto la informacin se leer corrupta.

4.3 SINCRONIZACIN DE RELOJES


La sincronizacin de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronolgica y a la misma vez respetar el orden de los eventos dentro del sistema. Para lograr esto existen varios mtodos o algoritmos que se programan dentro del sistema operativo. Este algoritmo est basado en el uso del tiempo coordenado universal (siglas en ingls, UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes peridicas del tiempo del resto de mquinas del sistema a cada uno de los cuales les enva una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las mquinas del sistema actualicen su hora y se mantenga as

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.

4.4 COORDINACIN ENTRE PROCESOS DISTRIBUIDOS. 4.4.1 EXCLUSIN MUTUA


Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusion) se usan en programacin concurrente para evitar el ingreso a sus secciones crticas por mas de un proceso a la vez. La seccin crtica es el fragmento de cdigo donde puede modificarse un recurso compartido. La mayor parte de estos recursos son las seales, contadores, colas y otros datos que se emplean en la comunicacin entre el cdigo que se ejecuta cuando se da servicio a una interrupcin y el cdigo que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupcin puede ocurrir entre dos instrucciones cualesquiera del cdigo normal y esto puede provocar graves fallos. La tcnica que se emplea por lo comn para conseguir la exclusin mutua es inhabilitar las interrupciones durante el conjunto de instrucciones ms pequeo que impedir la corrupcin de la estructura compartida (la seccin crtica). Esto impide que el cdigo de la interrupcin se ejecute en mitad de la seccin crtica. En un sistema multiprocesador de memoria compartida, se usa la operacin indivisible test-andset sobre una bandera, para esperar hasta que el otro procesador la despeje. La operacin testand-set realiza ambas operaciones sin liberar el bus de memoria a otro procesador. As, cuando el cdigo deja la seccin crtica, se despeja la bandera.

4.4.2 ALGORITMO DE ELECCION


Un algoritmo para escoger un proceso nico que juegue un papel especfico se llama Algoritmo de Eleccin. Para elegir cul de los procesos jugar el papel de servidor se necesitar un algoritmo de seleccin. Es esencial que todos los procesos estn de acuerdo en la eleccin. Si el proceso que juega el papel de servidor desea retirarse, entonces se requiere otro proceso de seleccin para escoger un sustituto. Se dir que un proceso pide una eleccin si lleva a cabo una accin que inicie una ejecucin especfica del algoritmo de eleccin. Un proceso individual no pide mas de una eleccin cada vez, pero, en principio, los N procesos podran pedir N elecciones concurrentes. Un proceso pi,en

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

4.5 MEMORIA DISTRIBUIDA COMPARTIDA


Es un tipo de implementacin hardware y software, en la que cada nodo de un cluster tiene acceso a una amplia memoria compartida que se aade a la memoria limitada privada, no compartida, propia de cada nodo. Los sistemas de software DSM pueden ser implementados bajo un sistema operativo (SO), o como una biblioteca de programacin. Los sistemas de software DSM implementados en el SO pueden concebirse como extensiones de la arquitectura de memoria virtual subyacente. Estos sistemas son transparentes al desarrollador, lo que significa que la memoria distribuida subyacente est completamente oculta para los usuarios. En contraste, los sistemas de software DSM implementados en una biblioteca no son transparentes y los desarrolladores tienen que programarlos separadamente. Sin embargo, estos ltimos sistemas ofrecen mejores caractersticas de portabilidad en la implementacin de sistemas DSM. Los sistemas de software DSM tambin tienen capacidad para organizar la regin de memoria compartida de manera flexible. Las aproximaciones basadas en pginas organizan la memoria compartida en pginas de tamao fijo. Por su parte, las aproximaciones basadas en objetos organizan la regin como un espacio abstracto en el que se pueden almacenar objetos compartidos de tamao variable.

4.6 SISTEMA DE TIEMPO REAL


Un sistema de tiempo real es aquel en el que se establecen restricciones temporales para la obtencin de resultados o la realizacin de operaciones. El funcionamiento correcto del sistema requiere, por tanto, no solo que las operaciones se realicen correctamente, si no que se realicen en el momento y con la duracin adecuada. Si se cumple esta condicin se dice que el sistema es predecible. Tiempo real no es necesariamente sinnimo de rapidez; un sistema de tiempo real garantiza que el rendimiento temporal del sistema es el suficiente para resolver el problema al que est dedicado. Los procesos en que el fallo al cumplir una restriccin temporal tiene consecuencias severas se denominan de tiempo real duro o sistemas de tiempo real de misin crtica. Si no hay ninguna restriccin temporal de estas caractersticas y se puede permitir que las restricciones temporales sean vulneradas en ocasiones se dice que estamos ante un sistema de tiempo real suave.

UNIDAD 5.- TIPOS DE APLICACIN


.

5.1 APLICACIN WEB


Se denomina aplicacin web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a travs de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicacin software que se codifica en un lenguaje soportado por los navegadores web en la que se confa la ejecucin al navegador. Las aplicaciones web son populares debido a lo prctico del navegador web como cliente ligero, a la independencia del sistema operativo, as como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.

5.2 APLICACIONES DE INTERNET ENRIQUECIDAS


Las RIA son aplicaciones web que tienen la mayora de las caractersticas de las aplicaciones de escritorio tradicionales. Estas aplicaciones utilizan un navegador web estandarizado para ejecutarse y por medio de complementos o mediante una mquina virtual se agregan las caractersticas adicionales. Las RIA surgen como una combinacin de las ventajas que ofrecen las aplicaciones web y las aplicaciones tradicionales. Buscan mejorar la experiencia y productividad del usuario. Normalmente en las aplicaciones web, hay una recarga continua de pginas cada vez que el usuario pulsa sobre un enlace. De esta forma se produce un trfico muy alto entre el cliente y el servidor, llegando muchas veces a recargar la misma pgina con un cambio mnimo. En los entornos RIA, en cambio, no se producen recargas de pgina, ya que desde el principio se carga toda la aplicacin, y slo se produce comunicacin con el servidor cuando se necesitan datos externos como datos de una base de datos o de otros ficheros externos.

5.3 APLICACIONES DE CLIENTE ENRIQUECIDAS


Con las aplicaciones de cliente enriquecidas de Esri, tambin denominadas SIG de escritorio, los usuarios pueden llevar a cabo anlisis espaciales avanzados y modelos de procesos operativos y visualizar los resultados en mapas de calidad profesional. Plantese la posibilidad de utilizar aplicaciones de cliente enriquecidas si: La aplicacin debe ser compatible con escenarios sin conexin o que solo dispongan de conexin espordicamente. La aplicacin se va a implementar en PC clientes.

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.

5.5 APLICACIONES MVILES


Las aplicaciones mviles son extensiones informticas para dispositivos porttiles, como los telfonos inteligentes smartphones y los asistentes digitales personales (PDA). Para el periodo 2008-2009, la empresa de investigacin Ovum prev un crecimiento del 23 por ciento en el mercado de telfonos inteligentes, en comparacin con una disminucin global en el mercado total de telfonos mviles debido a la crisis econmica. Est previsto que antes de 2014 se habrn enviado ms de 400 millones de telfonos inteligentes, casi todos ellos en condiciones de utilizar aplicaciones de por lo menos una marca.

5.6 APLICACIN DE LNEA DE NEGOCIO


Una aplicacin de lnea de negocio (LOB) es una aplicacin informtica crtica que es fundamental para llevar adelante una empresa. Entre estas aplicaciones se incluyen aplicaciones contables, de administracin de la cadena de suministro y de planeacin de recursos. Al planear la migracin de aplicaciones LOB, es importante que consulte al proveedor de aplicaciones LOB para determinar el mtodo adecuado para la migracin de aplicaciones. Tambin debe ubicar los medios que se usan para volver a instalar las aplicaciones LOB en el servidor de destino.

Вам также может понравиться