You are on page 1of 28

EL PROCESAMIENTO COOPERATIVO. ARQUITECTURAS DISTRIBUDAS DE APLICACIONES.

La arquitectura de computacin distribuida, tambin conocida como *de procesamiento cooperativo* consiste en el desarrollo de una aplicacin dividida en componentes ms o menos autnomos que se ejecutan en unidades de hardware interconectadas por redes de alta velocidad. En el procesamiento cooperativo dos o ms elementos lgicos diferentes interactan entre s en la realizacin de una tarea comn.

Existen diferentes definiciones del concepto de "sistema distribudo":

*Un sistema distribuido es aquel en el cual varios procesadores autnomos y repositorios de datos que soportan procesos y/o bases de datos, interactan con el fin de cooperar para lograr un objetivo global. Los procesos coordinan sus actividades e intercambian informacin por medio de la transferencia de informacin a travs de una red de comunicacin*. Sloman & Kramer, 1987. De esta definicin se pueden comenzar a sacar distintas conclusiones, como por ejemplo la idea de la utilizacin de un conjunto de recursos distribuidos para la realizacin de un trabajo comn. Esta idea se ve refrendada por otras definiciones. *Un sistema distribuido es una coleccin de computadoras independientes que aparece ante los usuarios del sistema como una nica computadora* Tanenbaum, 1995. La definicin de Tanenbaum establece la idea de sistema distribuido como la forma de ofrecer un servicio nico a los usuarios a partir del uso de un conjunto de computadoras totalmente independientes.

Los sistemas distribudos pretenden alcanzar un estilo arquitectnico que habilite tres cualidades:

Integrabilidad: de datos y aplicaciones. Modificabilidad: de aplicaciones, de representacin de los datos, de ubicacin fsica de los componentes (separacin de funcines en presentacin, negocio y acceso a datos). Escalabilidad: si la organizacin crece el sistema debe acompaar y permitir el crecimiento de forma transparente para las unidades que ya estn en produccin.

Caractersticas de los sistemas distribudos.


SINCRONIZACIN.

En los sistemas centralizados existen un reloj comn que sirve para sincronizar y coordinar cualquier proceso o comunicacin de mensajes. En los sistemas distribuidos, al ser la suma de varios sistemas totalmente independientes, cada uno con sus relojes de sincronizacin independientes, a la hora de la coordinacin y paso de mensajes no existe un reloj comn, con lo que se tienen que buscar formas alternativas de sincronizacin. La no existencia de un reloj comn es ms problemtico dependiendo del tipo de sistema distribuido, ya que por ejemplo si se utiliza el modelo cliente/servidor, las soluciones de sincronizacin son relativamente sencillas, pero sin embargo en sistemas del tipo SSI Single System Image (Imagen nica del sistema), en los que el conjunto de sistemas se ve como uno solo, y que los procesos de usuario pueden ejecutar indistintamente en distintas mquinas la sincronizacin es algo ms compleja. Adems de los problemas de sincronizacin, por la no existencia de reloj comn, se tienen que resolver los llamados problemas de orden o causalidad: una vez ya se han ejecutado distintos trabajos en distintos nodos del sistema, es bastante complejo averiguar en que orden se han ejecutado stos.

CONCURRENCIA.

La concurrencia global es la capacidad de que la ejecucin de los distintos elementos del sistema se realice de forma paralela. sta es otra caracterstica tpica de los sistemas distribuidos. La gran ventaja que ofrecen es que se pueden paralelizar trabajos entre los distintos elementos, aunque en los casos en los que tienen que acceder a un recurso compartido, ej. la escritura en un mismo fichero fsico, y para evitar bloqueos y estados incongruentes del sistema se tienen que utilizar algoritmos de exclusin mutua para evitar que no accedan en el mismo momento.

TOLERANCIA A FALLOS.
Una caracterstica que bien gestionada supone una gran ventaja en este tipo de sistemas es que los fallos son independientes al nodo del sistema en el que se producen, con lo que en el caso de que un nodo fallara los dems podran continuar ejecutando sus acciones. Esto permite la consecucin de los trabajos con mayor efectividad, ya que el sistema en su conjunto contina trabajando. Eso s, cundo se produce un fallo en uno de los nodos del sistema, el fallo se tiene que gestionar de forma adecuada, ya que aunque el resto del sistema contine funcionando, el nodo problemtico puede dar lugar a resultados errneos. As que cundo se produce un fallo en un nodo, generalmente se tiene que aislar del resto sistema mientras se recupera del mismo.

SISTEMAS ABIERTOS Y HETEROGNEOS.


Otra caracterstica bastante importante en los sistemas distribuidos es la heterogeneidad, ya que tanto las arquitecturas, tanto los Sistemas Operativos no tienen por qu ser iguales. Esta flexibilidad es importante a la hora de ahorrar en costes, ya que aunque se tenga un nodo de un determinado fabricante, ste no tiene por qu determinar la arquitectura del resto del sistema.

OBJETIVOS PRINCIPALES QUE PERSIGUEN LOS SISTEMAS DISTRIBUDOS.


Los objetivos principales que buscan los sistemas distribuidos son los siguientes:

Transparencia Fiabilidad (disponibilidad y coherencia) Rendimiento Escalabilidad Flexibilidad Seguridad

Cada uno de los distintos modelos de sistemas distribuidos requieren diferentes facetas de estos objetivos.

Transparencia
La transparencia se consigue cundo se consigue que a ojos del usuario el sistema se comporte como si fuera un sistema centralizado:

El acceso a un recurso remoto deber de ser igual que si se accediera a un recurso local. Se deber de poder acceder a los distintos recursos sin conocer la localizacin de los mismos, es decir, para acceder a un recurso remoto no habr que conocer de que nodo depende. Los diferentes recursos (p.e. ficheros) podrn migrar de localizacin sin afectar a los usuarios. El acceso concurrente a un mismo recurso no afectar a los usuarios. La existencia de rplicas de los recursos no afectar a los usuarios.

La ocurrencia de fallos en alguno de los nodos no afectar a los usuarios. El crecimiento del sistema no afectar a los usuarios. El posible carcter heterogneo de los nodos del sistema no afectar a los usuarios.

Fiabilidad
La fiabilidad en los sistemas distribuidos se tiene que buscar desde dos puntos de vista distintos:

Fiabilidad como disponibilidad: es decir, se busca un sistema de alta disponibilidad mediante la redundancia de nodos y recursos. Fiabilidad como coherencia: se tiene que buscar que la informacin que procesa el sistema siempre sea coherente, aspecto que en sistemas en los que se utiliza la redundancia se dificulta bastante.

Rendimiento
El rendimiento que se persigue no debe de ser peor que en un sistema centralizado y debe de ser proporcional al nmero de procesadores empleado. Para conseguirlo se deben de tener unas buenas polticas de equilibrado de carga. En este aspecto el principal problema es que a ms nmero de procesadores ms elementos crticos corren el riesgo de convertirse en cuellos de botella, por ejemplo la red de comunicaciones.

Escalabilidad
El diseo del sistema tiene que tratar de evitar, principalmente en sistemas que vayan a contar con un gran nmero de elementos de proceso, los cuellos de botella (p.e.: componentes centralizados, tablas centralizadas, algoritmos centralizados). Si se disea de forma cuidadosa y planificada, el que el sistema crezca mediante la adicin de nuevos nodos al sistema nos proporcionar un aumento del rendimiento proporcional con el nmero de procesadores que aadamos.

Flexibilidad
La flexibilidad se entiende como la capacidad de ampliar o extender el sistema con nuevas funcionalidades de forma sencilla. Un ejemplo claro de la flexibilidad es la que se consigue con el uso de soluciones de sistemas abiertos, ya que al estar basados en estndares y en interfaces y protocolos pblicos no se depende de ningn fabricante a la hora de extender las funcionalidades del mismo.

Modelos de sistemas distribudos.


Cliente / Servidor.

El modelo cliente servidor La evolucin de este modelo ha generado las siguientes arquitecturas:

Arquitectura cliente/servidor de 2 capas: el servidor divide el servicio en dos capas, la primera de presentacin y lgica de negocio, y la segunda de acceso a datos. Este modelo dificulta el mantenimiento de las aplicaciones que lo siguen, al poco estructuradas debido a que se mezclaba la presentacin de las aplicaciones con la lgica de negocio. Arquitectura cliente/servidor de 3 o N capas: el servidor divide el servicio en 3 o ms capas. Generalmente una capa de presentacin, otra de lgica de negocio, y la tercera y ltima de acceso a datos. La mayora de las aplicaciones Web actuales se desarrollan en base a esta arquitectura.

Modelo Punto a Punto (P2P).


En el modelo punto a punto, las entidades que participan las hacen de igual a igual a travs de un protocolo de dilogo con primitivas de interaccin. Todos los nodos desempean tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cmputo sin distincin entre clientes y servidores. Los nodos pares mantienen la consistencia de los recursos y sincronizan las acciones a nivel de aplicacin.

Otros Modelos
Existen otros tipos de modelos menos importantes pero no por ellos menos extendidos:

Cdigo Mvil: cdigo que se traslada de un servidor a un cliente y que se ejecuta en el cliente (p.e. applets o activeX). Agente Mvil: es un programa que se traslada en la red, de un computador a otro, realizando una tarea para alguien. (p.e. recolecta informacin) Clientes Ligeros: en el cliente slo se ejecuta una interfaz basada en ventanas, mientras que la aplicacin si se ejecuta en un servidor remoto, usualmente muy potente (multiprocesador, clusters, etc.)

UNIDAD 3: SISTEMAS COOPERATIVOS

Sistemas Cooperativos
FILOSOFA DE LOS SISTEMAS COOPERATIVOS, DISTRIBUIDOS Y HETEROGNEOS. Estructura De Diseo: Cuando se planea la integracin de sistemas dentro de un ambiente distribuido, se presenta una relacin entre elementos que componen la arquitectura del sistema : Distribucin : Necesidad de distribuir. Heterogenidad : Diversidad de componentes.

Cooperacin: Integracin de elementos y formas de trabajo. La cooperacin en un sistema distribuido se presenta en funcin de la integracin y comunicacin que existe entre los diferentes elementos que la componen.

Por ejemplo : La Arquitectura Cliente - Servidor

Cooperacin entre los 3 elementos Sincronizacin peticin - respuesta Conocimiento de funciones de servidor Relacin mutua entre elementos (protocolos)

Estructura de Diseo
La integracin de sistemas dentro de ambientes distribuidos representa una relacin entre diversos elementos que componen la arquitectura del sistema. Distribucin Se refiere a la necesidad de distribuir los elementos de un sistema dependiendo de las caractersticas y necesidades del lugar.

Heterogeneidad Se refiere a la diversidad de componentes que pueden interactuar entre s por medio de diferentes arquitecturas. Cooperacin Se refiere a la integracin de elementos y formas de trabajo entre cada uno de los elementos que forman el sistema. La cooperacin en un sistema distribuido se presenta en funcin de la integracin que existe entre los diferentes elementos que la componen, por ejemplo: Las arquitecturas Cliente/Servidor son las que aplican el concepto de cooperacin mas completo. Caractersticas de Cooperacin entre Cliente/Servidor

Cooperacin entre los elementos Sincronizacin Peticin/Respuesta Conocimiento de funciones entre los elementos Relacin mutua entre elementos (Protocolos)

Procesamiento cooperativo. Es una arquitectura donde dos o ms


computadoras comparten el procesamiento de un programa. Esta arquitectura debe contar con recursos distribuidos: programas, archivos, base de datos, etc. El procesamiento cooperativo debe proveer: acceso transparente al sistema, evitando de esta manera que el usuario se preocupe si el recurso a acceder es local o remoto. Existen varias tcnicas para el procesamiento cooperativo, cada una de ellas aplicable a un cierto tipo de sistema: Procesamiento front-end. Pipes.

Llamadas a procedimientos remotos. Interacciones cliente/servidor.

Procesamiento front-end.
Se puede escribir un programa en una PC que ejecute una aplicacin de un host sin que se modifique el cdigo de la aplicacin en el host. Esto es posible ya que el cdigo del programa en la PC realiza llamadas a una aplicacin residente por medio de una interfaz de programas de aplicacin (API). El API ms comnmente utilizado para el sistema IBM/3270 es el High Level Language APLI (HLLAPI).

En el procesamiento front-end, la aplicacin del host se ejecuta como antes, enviando pantallas de informacin a la terminal. El programa de PC lee la pantalla de informacin del host llamando al API. Luego el programa de PC copia esta informacin a sus propios campos. El programa de PC se utiliza para interactuar con el usuario y ayudarlo en la edicin de datos. Cuando existe informacin introducida por el usuario, el programa de PC mueve esta informacin a los campos del 3270 y le indica al API que enve esta informacin al host.

Pipes.
Las pipes representan un mecanismo orientado a conexin que pasa datos de un proceso a otro. Las pipes son muy utilizados en sistemas basados en UNIX. Una tubera de agua comn, con agua introducindose en un lugar y saliendo en otros lugares, es una buena representacin de las pipes de comunicacin. En principio de cuentas, los procesos pueden estar en diferentes mquinas, y se pueden estar ejecutando en diferentes sistemas operativos. Varias implementaciones de pipes pueden soportar uno o varios mecanismos de transporte concurrente. El detalle de la manera en que se soporta el mecanismo de transporte es oculto a la pipe del usuario, y la pipe impone protocolos y restricciones de formatos mnimos al usuario. Bsicamente, las pipes proveen facilidades solamente para marcar las fronteras entre mensajes discretos, para determinar la identidad del transmisor, y para realizar verificaciones de la recepcin de mensajes. La implementacin de pipe vara de muy sencillo hasta arquitecturas complejas como la comunicacin avanzada de programa a programa (APPC) de IBM. SNA de IBM y NFS de Sun.

Hay dos tipos de pipes: con-nombre y sin-nombre. Son casi idnticas. La diferencia
estriba en la manera en que el proceso la inicializa. Procesamientos remotos Las llamadas a procedimientos remotos se discutir en detalle en el captulo seis. El concepto bsico se describe a continuacin. El modelo de comunicacin basado en llamadas a procedimientos remotos permite a un procedimiento llamar a otro procedimiento que se encuentra en una computadora remota. Esta operacin se ejecutada de la misma manera en que se ejecuta una llamada a un procedimiento local. El procedimiento que llama se bloquea hasta que el procedimiento llamado termina y se recibe una respuesta. Cuando se hace una llamada, se enva un mensaje de solicitud a la computadora remota donde reside el procedimiento, se crea un proceso para ejecutar este procedimiento, y despus de que este proceso se completa, se enva un mensaje de respuesta al proceso que

realiz la llamada.

Interacciones cliente/servidor
La mayora de los sistemas distribuidos se apegan al modelo de procesamiento cooperativo en el cual el control se distribuye entre varios procesos en el sistema. Los procesos son clasificados generalmente como clientes o servidores (en algunos casos un servidor puede tambin ser un cliente). Un anlisis del modelo de comunicaciones para sistemas operativos distribuidos y funciones de la capa de transporte muestra, que en las capas ms altas, los mensajes se envan entre clientes y servidores. Para solicitar un servicio, un proceso de usuario (conocido como proceso cliente) enva una solicitud al proceso servidor, el cual realiza la tarea y enva de regreso una respuesta. Debido a la restriccin del nmero de servidores (depende del nmero de recursos), los clientes compiten por estos servidores. Diversos sistemas operativos distribuidos existentes y de nuevo diseo proveen diferentes servicios a sus usuarios utilizando servidores.

Definiciones
Un servidor es un subsistema que provee un tipo particular de servicio. Un servicio es una entidad de software ejecutndose en una sola mquina. Otras caractersticas Los clientes y servidores normalmente se ejecutan en mquinas diferentes. El control se distribuye entre varios servidores del sistema. El control de un recurso individual se concentra en un servidor. Generalmente un servidor se aloja en una computadora individual conectada a la red.
ANLISIS DE LOS SISTEMAS COOPERATIVOS DISTRIBUIDOS. Componentes de una aplicacin

Lgica de presentacin. Es la parte de la aplicacin que interacta con un dispositivo tal como la Terminal de un usuario o una estacin de trabajo. Tareas: Formatos de pantalla. Escritura y lectura de informacin en la pantalla. Manejo de ventana, teclado y mouse. Ejemplos: Windows, X-Windows, Presentation Manager de OS/2, Motif, etc. Lgica de procesamiento. Esta parte de la aplicacin que procesa los datos de entrada (desde pantalla y/o base de datos) para realizar alguna tarea. El cdigo de la lgica de procesamiento est en algn lenguaje (C, pascal, cobol, etc.). Lgica de procesamiento de base de datos. Esta es la parte del cdigo de la aplicacin que manipula los datos. Los datos son manejados por un Sistema Manejador de Base de Datos (DBMS). La manipulacin de datos en un DMBS relacional se hace a travs de algn dialecto de Lenguaje de Consulta Estructurado (SQL), el cual puede estar inmerso en el lenguaje de programacin. Beneficios de la arquitectura anterior Lo que el usuario ve en la pantalla, a su entender, ese es el sistema. El usuario utiliza la interfaz grfica a la que est acostumbrado. Se reduce el procesamiento realizado en la computadora: host, servidor, nodo, etc. El trabajo se distribuye entre varios nodos. Diferentes arquitecturas de sistemas cooperativos Procesamiento cliente/servidor con datos en el servidor solamente Presentacin distribuida El primer fragmento de la aplicacin que interacta con el usuario final es la lgica de presentacin. Adems, interacta tambin con la lgica de procesamiento de datos. En un ambiente de propsito especial o basado en host, la lgica de presentacin y procesamiento de datos se construyen en una sola unidad. Con el avance en la tecnologa de las estaciones de trabajo, se han abierto nuevas capacidades de desarrollo de lgicas de presentacin. Las terminales tradicionales basadas en caracteres estn siendo remplazadas por pantallas de alta resolucin con un nmero ilimitado de colores. Dispositivos apuntadores tales como el mouse, dispositivos de audio-video, facilidades de entradas y salidas se han vuelto disponibles. Estas innovaciones permiten a los desarrolladores de aplicaciones disear aplicaciones con presentacin grfica agradable a la vista del usuario las cuales no eran posible en terminales basadas en texto, caractersticas adicionales, se analizarn en captulos posteriores.

Procesamiento distribuido Mientras que la lgica de presentacin de la aplicacin est a la vista del usuario para las interacciones, las lgicas de procesamiento de datos y base de datos representan la esencia de la aplicacin. En un entorno cliente/servidor, la lgica de presentacin se coloca normalmente en la mquina cliente. Uno de los criterios de diseo es: dnde colocar la lgica de procesamiento de datos y la lgica de base de datos. Hay tres posibles soluciones. Colocar la lgica de procesamiento de datos totalmente en el sistema cliente. Colocar la lgica de procesamiento de datos totalmente en el servidor. Colocar la lgica de procesamiento de datos fragmentado, es decir, los fragmentos se distribuyen entre clientes y servidores. Base de datos distribuido La lgica de base de datos accesa a los datos a travs del DBMS, la lgica de procesamiento de datos, procesa los datos y la lgica de presentacin muestra los datos al usuario. De hecho el procesamiento de datos es la parte principal de la aplicacin. Varias cuestiones vitales relacionadas a la distribucin de datos se deben tomarse en cuenta: Los datos estn distribuidos o centralizados. Que papel juega el servidor de base de datos. Si los datos esta distribuidos, de qu manera se fragmentaron. Si los datos se encuentran replicados, cuantas copias existen. De qu manera se garantiza la integridad y disponibilidad. INTEGRACIN DE SISTEMAS COOPERATIVOS, HETEROGNEOS Y DISTRIBUIDOS. Los sistemas distribuidos heterogneos pueden integrarse de varias maneras dependiendo del nivel de heterogeneidad (ver sistemas heterogneos). Se ha visto que la heterogeneidad disminuye la eficiencia de un sistema. Para que la cooperacin pueda darse en todos los niveles de una aplicacin distribuida, es conveniente la estandarizacin por lo menos lo siguiente: Interfaz con el usuario. Interfaz con los datos. Interfaz de red. La interfaz con el usuario, se refiere a la presentacin de la aplicacin tanto remota como local. La interfaz con los datos, se refiere a la manera de acceso a datos locales y remotos con independencia del manejador de base de datos.

La interfaz de red, se refiere a los protocolos de red de nivel superior (red, transporte, etc).

UNIDAD 3: SISTEMAS COOPERATIVOS 3.1 FILOSOFIA DE LOS SISTEMAS COOPERATIVOS, HETEROGENEOS Y DISTRIBUIDOS. Un sistema cooperativo o sistema colaborativo son sistemas de informacin que forman un soporte computacional uniforme que proporciona la resolucin de un problema computacional mas rpido en comparacin con otros, ya que tiene la capacidad de trabajar en cualquier lugar y al mismo tiempo utilizando una arquitectura de dos o mas computadoras para realizar el procesamiento de la informacin, contando con recursos distribuidos como lo son: programas,bases de datos. Su caracterstica primordial es que al trabajar en esta forma, permite que el usuario lo haga de una forma transparente ignorando si el acceso a la informacin es de una forma local o remota. Esta cuenta con la capacidad de apegarse a las necesidades del sistema en el cual se va a trajar y estos son algunos casos particulares por mencionar algunos: Procesamiento front-end. Este mtodo permite que se escriba un programa y este mismo se ejecute en una aplicacin de un host sin tener la necesidad de modificar el cdigo de dicho host. Esto es posible ya que el cdigo del programa en la PC realiza llamadas a una aplicacin residente por medio de una interfaz de programas de aplicacin (API). El API ms comnmente utilizado para el sistema IBM/3270 es el High Level Language APLI (HLLAPI). La aplicacin del host se ejecuta , enviando pantallas de informacin a la terminal. El programa lee la pantalla de informacin del host llamando al API. Despues el programa copia la informacin a sus propios campos. El programa se utiliza para interactuar con el usuario y ayudarlo en la edicin de datos. Cuando existe informacin introducida por el usuario, el programa mueve esta informacin a los campos del 3270 y le indica al API que enve esta informacin al host. Pipes mecanismo en cargado de la conexin ya que permite la transaccin de un proceso a otro. la plataforma en la cual son mas utilizados es UNIX. El proceso puede ser realizado en maquina y sistemas operativos diferentes. Los pipes imponen protocolos y restricciones de formatos mnimos al usuario y proveen facilidades para marcar las fronteras entre mensajes

discretos, determinar la identidad del transmisor, y verificaciones de la recepcin de mensajes. Los tipos de pipes son:

Con nombre Sin nombre

Procesamientos remotos Permite que un procedimiento llame a otro procedimiento que se encuentra en una computadora remota. El procedimiento que llama se bloquea hasta que el procedimiento llamado termina y se recibe una respuesta. Cuando se hace una llamada, se enva un mensaje de solicitud a la computadora remota donde reside el procedimiento, se crea un proceso para ejecutar este procedimiento, y despus de que este proceso se completa, se enva un mensaje de respuesta al proceso que realiz la llamada. Interacciones cliente/servidor al solicitar el servicio, un proceso de usuario , enva una solicitud al proceso servidor, el cual realiza la tarea y enva de regreso una respuesta. Debido a la restriccin del nmero de servidores cada cliente debe competir por ellos.

Un servidor es un subsistema que provee un tipo particular de servicio. Un servicio es una entidad de software ejecutndose en una sola mquina 2. ANALISIS DE LOS SISTEMAS COOPERATIVOS DISTRIBUIDOS.

Dentro de esta tcnica podemos encontrar casos muy comunes los cuales son : Lgica de procesamiento: Parte de la aplicacin que procesa los datos de entrada (desde pantalla y/o base de datos) para realizar alguna tarea cuyo cdigo esta escrito en algn lenguaje de programacin como lo puede ser pascal , cobol, C,etc. Lgica de procesamiento de base de datos: Esta es la parte del cdigo de la aplicacin que manipula los datos. Los datos son manejados por un Sistema Manejador de Base de Datos (DBMS). La manipulacin de datos en un DMBS relacional se hace a travs de algn dialecto de Lenguaje de Consulta Estructurado (SQL), el cual puede estar inmerso en el lenguaje de programacin. En este apartado la aplicacin que interacta con el usuario final es la lgica de presentacin y adems la lgica de procesamiento de datos. Por lo cual es un ambiente de

propsito especial o basado en host, la lgica de presentacin y procesamiento de datos se construyen en una sola unidad. Algo destacable es que los dispositivos apuntadores tales como el mouse , dispositivos de audio-vdeo, facilidades de E/S . Esto ayuda al desarrollo de aplicaciones con presentaciones grficas basadas en texto. Procesamiento distribuido : Las lgicas de procesamiento de datos y base de datos representan la esencia de la aplicacin. En un entorno cliente/servidor, la lgica de presentacin se coloca normalmente en la mquina cliente. Uno de los criterios de diseo es: dnde colocar la lgica de procesamiento de datos y la lgica de base de datos. Hay tres posibles soluciones.

Colocar la lgica de procesamiento de datos totalmente en el sistema cliente. Colocar la lgica de procesamiento de datos totalmente en el servidor. Colocar la lgica de procesamiento de datos fragmentado, es decir, los fragmentos se distribuyen entre clientes y servidores.

Base de datos distribuido El acceso a la base de datos es realizado a travez de los DBMS, lgica de procesamiento de datos, y lgica de presentacin muestra los datos al usuario. La aplicacin cuenta el procesamiento de datos para el cual existen varias cuestiones tales como :

Estado de los datos (distribuidos o centralizados.) Funcion del servidor de base de datos. Fragmentacion de la informacion si se encuentran distribuidos. Conteo de copias existentes , cuando existe duplicidad de informacion. Forma de garantizar la integridad y disponibilidad. 2. INTEGRACION DE LOS SISTEMAS COOPERATIVOS, HETEROGENEOS Y DISTRIBUIDOS.

En el momento que se va a realizar la integracion de sistemas de un ambiente el cual es distribuido, van a presentarse una relacion entre elementos el cual van a conformar la arquitectura del sistema: 1.- Distribucin: Necesidad de distribuir. 2.-Heterogeneidad: Diversidad de componentes.

3.- Cooperacin: Integracin de elementos y formas de trabajo. En base ala integracion y a la comunicacin que existen entre los diferentes elementos que lo componen se va a presentar la cooperacion de un sistema distribuido La integracin de sistemas dentro de ambientes distribuidos representa una relacin entre diversos elementos que componen la arquitectura del sistema. Distribucin Se refiere a la necesidad de distribuir los elementos de un sistema dependiendo de las caractersticas y necesidades del lugar. Heterogeneidad Se refiere a la diversidad de componentes que pueden interactuar entre s por medio de diferentes arquitecturas. Cooperacin Se refiere a la integracin de elementos y formas de trabajo entre cada uno de los elementos que forman el sistema. La cooperacin en un sistema distribuido se presenta en funcin de la integracin que existe entre los diferentes elementos que la componen, por ejemplo: Las arquitecturas Cliente/Servidor son las que aplican el concepto de cooperacin mas completo. Caractersticas de Cooperacin entre Cliente/Servidor Cooperacin entre los elementos Sincronizacin Peticin/Respuesta Conocimiento de funciones entre los elementos Relacin mutua entre elementos (Protocolos) Modelos de Control de Procesos Mdelo de Estacin de Trabajo Este modelo permite la administracin de los procesos ejecutndose en diferentes equipos a travs de la implementacin de un esquema particular para cada equipo donde es el nico responsable de controlar y manejar sus propios procesos. Mdelo de Pila de Procesadores

Este modelo consiste en la utilizacin de varios microprocesadores conectados en arreglo los cuales se pueden asignar en forma dinmica a los procesos que lo requieren. Mdelo Hibrido Consiste en proporcionar una integracin entre la estacin de trabajo y la pila de procesadores para combinar la ventaja de los dos esquemas. El trabajo interactivo se lleva a cabo en las estaciones de trabajo, mientras que los procesos no interactivos se ejecutan en el arreglo de microprocesadores. Es la solucin ms cara pero mas eficiente.

4.5. PROCESAMIENTO DISTRIBUIDO Procesamiento distribuido se define como, la forma en que es posible conectar distintas maquinas, en cierto tipo de red de comunicaciones, generalmente una LAN o una red de rea amplia o una red como Internet, logrando as, que una sola tarea de procesamiento de datos pueda ser procesada o ejecutada entre varias maquinas de la red, es decir que un solo proceso se pueda realizar entre varias maquinas diferentes y conectadas a una red. Un error comn es confundir procesamiento distribuido y paralelo, el termino procesamiento paralelo, bsicamente es el mismo, con excepcin que las maquinas distintas tienden a estar fsicamente muy cerca en un sistema paralelo, lo que no es necesario en un sistema distribuido 4.5.1 DESCRIPCIN Proceso distribuido, varios procesos ejecutandose en paralelo, en la misma mquina o distribuidos entre computadoras interconectados a travs de una red de comunicaciones, colaboran en la realizacin de una tarea, esta colaboracin puede ser tan sencilla como distribuir la carga de trabajo entre procesos idnticos, en el caso de una red de cajeros automticos, o tan compleja como multitud de procesos distintos, interdependientes, controlando el vuelo de una nave espacial. El procesamiento distribuido permite una mejor utilizacin de equipos y mejora el balanceo del procesamiento dentro de una aplicacin, este ultimo tiene una gran importancia ya que en algunas aplicaciones simplemente no hay una maquina que sea capaz de realizar todo el procesamiento.

Existe una tendencia inevitable al desarrollo de aplicaciones distribuidas, el procesamiento distribuido permite dispersar los procesadores, datos y otros elementos de una aplicacin, la dispersin ofrece un sistema ms sensible a las necesidades de los usuarios, capaz de ofrecer tiempos de respuesta mejores y minimizar los costes de comunicacin, un sistema distribuido consiste de un gran nmero de CPUs conectados por medio de una red, un sistema distribuido se encarga del procesamiento cooperativo de solicitudes mediante una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora. La principal meta es facilitar a los usuarios el acceso a recursos remotos y compartir dichos recursos entre los usuarios, ejemplos de recursos son: computadoras, impresoras, archivos, dispositivos de almacenamiento, pginas web, redes; compartir recursos facilita la colaboracin y el intercambio de informacin. Transparencia de Distribucin Es la capacidad de un sistema de ocultar el hecho de que sus recursos estn fsicamente distribuidos en muchos computadores, un sistema distribuido transparente es aquel que se presenta a los usuarios y a las aplicaciones como si fuera un nico sistema de computacin, este concepto puede ser aplicado a varios aspectos de un sistema distribuido Grado de Transparencia Aspirar a una transparencia total puede ser demasiado: Los usuarios pueden estar en continentes diferentes; con frecuencia esto no es algo que conviene ocultar, ocultar totalmente las fallas de redes y nodos es imposible ya que no hay manera de distinguir entre un recurso excesivamente lento y uno que ha fallado, mantener la consistencia de mltiples copias de un recurso replicado puede implicar un tiempo significativo, en conclusin, la transparencia es algo que se desea lograr, pero debe ser considerada junto con otros aspectos como el rendimiento. Escalabilidad

La escalabilidad se refiere a varios aspectos:


Capacidad del sistema de incrementar el rendimiento ante un incremento de la carga si se agregan recursos adicionales Un sistema distribuido "x" es ms escalable que un sistema distribuido "y" si utilizando el mismo hardware, "x" puede atender una carga ms alta.

La escalabilidad puede medirse en tres dimensiones:


Con respecto a su tamao: permite incrementar fcilmente el nmero de usuarios o procesos soportados. Geogrficamente: permite que sus usuarios y/o recursos estn alejados geogrficamente entre s. Administrativamente: permite cubrir muchas organizaciones administrativas independientes.

La escalabilidad geogrfica se ve afectada por los siguientes aspectos: uso de comunicacin sncrona y la comunicacin en WANs es poco confiable y casi siempre punto a punto, algunos problemas de escalabilidad que se presentan son:

Servicios Centralizados: Uso de un solo servidor para atender solicitudes de los usuarios Datos Centralizados: Tener todos los datos en un nico servidor de base de datos.

En ambos casos el servidor se puede volver un cuello de botella si aumenta el nmero de usuarios, Incluso si el servidor tiene capacidad ilimitada de procesamiento y almacenamiento, las lneas de comunicacin desde y hacia el servidor se saturarn y harn imposible el crecimiento.

Dentro de la escalabilidad se encuentra el uso de algoritmos que requieran centralizar informacin proveniente de todos los nodos del Sistema de Distribucin, algunos problemas en este caso son las siguientes:

El transporte de toda la informacin al punto centralizado hara que una parte de la red se sobrecargue. Slo deben usarse algoritmos descentralizados. El uso de algoritmos centralizados est especialmente relacionado con problemas de escalabilidad geogrfica.

Por el contrario tambin se encuentran los algoritmos descentralizados; tienen las siguientes caractersticas:

Ninguna mquina tiene la informacin completa sobre el estado del sistema. Las mquinas toman decisiones basndose nicamente en informacin local. La falla de una mquina no arruina el algoritmo. No se asume que existe un reloj global. Para manejar este tipo de procesamiento en las aplicaciones existen diversas maneras, siendo la arquitectura cliente-servidor la tendencia actual, e tanto el uso actual de esta arquitectura que por diversas razones, el termino cliente-servidor ha llegado a aplicarse casi exclusivamente al caso en el que el cliente y el servidor estn, en efecto en maquinas distintas.

Una aplicacin muy comn del procesamiento distribuido es en las bases de datos, donde el procesamiento distribuido podra realizar la entrada/salida, la seleccin y la validacin de los datos en una computadora, y luego crear un reporte basado en esos datos o una consulta en otra computadora. Estrategias bsicas de procesamiento distribuido Cuando una organizacin necesita utilizar dos o ms sistemas de computacin, se pude seguir una de tres estrategias bsicas de procesamiento de datos: centralizada, descentralizada o distribuida, con el procesamiento centralizado, todo el procesamiento se lleva a cabo en una sola ubicacin o instalacin, este enfoque ofrece el ms alto grado de control; mediante el procesamiento descentralizado, los dispositivos de procesamiento se colocan en diversas ubicaciones lejanas, los

sistemas de computacin individuales estn aislados y no se comunican entre s; los sistemas descentralizados son convenientes para compaas que tienen divisiones operativas independientes; en el procesamiento distribuido, las computadoras se ubican en sitios lejanos pero se conectan entre s a travs de dispositivos de telecomunicaciones. El beneficio del procesamiento distribuido es que la actividad de procesamiento se puede asignar a la ubicacin o ubicaciones donde sea posible realizarlo con ms eficiencia, mediante el procesamiento distribuido, cada oficina puede organizar y manipular los datos para satisfacer sus necesidades especficas, as como compartir el producto de su trabajo con el resto de la organizacin. Sistemas Distribuidos Abiertos Un sistema distribuido es abierto, ofrece servicios de acuerdo a reglas estandarizadas que describen la sintaxis y semntica de dichos servicios, debe permitir la interoperabilidad y la portabilidad, la interoperabilidad se refiere a la capacidad de dos sistemas o componentes de desarrolladores distintos para funcionar en conjunto basndose nicamente en los servicios ofrecidos por cada sistema segn se especifica en un estndar comn, la portabilidad se refiere a la capacidad de una aplicacin desarrollada para un sistema distribuido "x", de ser ejecutada en un sistema distribuido "y" que implemente las mismas interfaces de "x". Un sistema distribuido es abierto, es independiente de la heterogeneidad del entorno subyacente:

Hardware Sistemas Operativos Lenguajes de Programacin

El cluster es un tipo de procesamiento distribuido paralelo, es decir, es un conjunto de computadoras o maquinas que pueden trabajar de manera coordinada en la solucin de un mismo problema o en la ejecucin de un mismo proceso. Los inicios del cluster fueron cuando los pioneros de la supercomputacin trataban de implementar diferentes procesos entre varias computadoras, para luego poder recoger los resultados que dichos procesos deban producir. Un cluster entonces es un conjunto de computadoras interconectadas con dispositivos de alta velocidad que actan en conjunto usando el poder de cmputo combinado de varias CPUs para resolver ciertos procesos dados de forma conjunta, y aparecen ante clientes y aplicaciones como un solo sistema, los cluster permiten aumentar la escalabilidad, disponibilidad y fiabilidad de mltiples niveles de red. Definamos que es un sistema distribuido; este sistema trata a los usuarios como un Sistema Operativo convencional, se ejecuta sobre mltiples CPU's, es transparente: el usuario no ve las mltiples CPU's, Es tolerante a fallos, este tipo de sistema se centra en sistemas de propsito

general formados por computadoras autnomas unidos por una red. EJEMPLOS DE SISTEMAS DISTRIBUIDOS Son sistemas a cuyo avance estn contribuyendo los sistemas distribuidos, y cuya bsqueda est haciendo avanzar a los sistemas distribuidos. Sus aplicaciones se dividen en tres categoras importantes con son:

Aplicaciones comerciales, casos muy variados son: Sistemas de reservas de lneas areas. Redes bancarias: cajeros automticos. Hipermercados: suministros, almacn, ventas. Actualmente usan hw, sw y redes dedicadas con estructuras centralizadas. Aplicaciones de rea global, las ms importante en esta rea es la Internet que ha cumplido con creces el requisito de la extensibilidad. Aplicacin Video-conferencia y acceso a informacin multimedia Datos basados en tiempo: mantenimiento de tasa, sincronizacin, compresin. Aplicaciones interactivas: retardo. Requisitos de tiempo-real.

4.5.2. EVOLUCIN En un sistema de bases de datos se almacena la base de datos en varias computadoras, varios medios de comunicacin, como las redes de alta velocidad o las lneas telefnicas, son los que pueden poner

en contacto las distintas computadoras de un sistema distribuido, no comparten ni memoria ni discos, las computadoras de un sistema distribuido pueden variar en tamao y funcin, pudiendo abarcar desde las estaciones de trabajo a los grandes sistemas, dependiendo del contexto en el que se mencionen, existen diferentes nombres para referirse a las computadoras que forman parte de un sistema distribuido, tales como emplazamiento o nodos, para enfatizar la distribucin fsica de estos sistemas se usa principalmente el trmino emplazamiento.

Modelos de Sistema Distribuido Estaciones y servidores Es el ms comn en la actualidad, es aquella en la que a cada usuario, se le asigna una estacin; y por otro lado, las estaciones ejecutan las aplicaciones, dan soporte a la interfaz de usuario (GUI), acceden a los servicios compartidos, mediante software de comunicaciones en este modelo los servidores dan acceso a informacin compartida, dispositivos de hardware compartidos (impresoras, scanner, etc.), funciones de Sistema Operativo (autenticacin). Banco de procesadores En este modelo los procesadores del banco (PB) tienen una CPU, ms suficiente memoria, adems no tienen ni discos ni terminales, los usuarios acceden al sistema desde terminales conectados a PAD's; cuenta con un gestor de recursos que controla el acceso a los bancos de procesadores, mediante este gestor el usuario especifica sus requerimientos (CPU, memoria, programa), el gestor de recursos le asigna un procesador como computadora personal.

Minicomputadoras integradas Este modelo esta basado en mquinas multiusuario; el usuario se conecta a una mquina especfica,, cada computadora mantiene su autonoma, corre un conjunto completo de software estndar, maneja sus propias aplicaciones y servicios, en este modelo se comparte un esquema de nombramiento global; es decir, el acceso es independiente de la ubicacin y el sistema operativo puede migrar y replicar archivos. Modelos hbridos Consiste en: Un sistema de Estaciones y Servidores ms un Banco de Procesadores, sus caractersticas son: un ncleo pequeo, el Sistema Operativo corre como procesos de usuario, servicio de pasarelas a WAN, sus ventajas principales son: recursos de procesamiento ajustados a las necesidades del usuario, ejecucin concurrente, acceso a travs de terminales. 4.5.3 CARACTERISTICAS Las caractersticas del procesamiento distribuido son:

Economa: Los microprocesadores ofrecen una mejor proporcin precio/rendimiento. Velocidad: Un sistema distribuido puede tener un mayor poder de cmputo que un mainframe. Distribucin Inherente: Algunas aplicaciones utilizan mquinas que estn distantes. Confiabilidad: Si una mquina se descompone, el sistema sobrevive como un todo. Crecimiento por incrementos: Se puede aadir poder de cmputo en pequeos incrementos. Datos compartidos: Permiten que varios usuarios tengan acceso a una base de datos comn. Dispositivos compartidos: Permiten que varios usuarios compartan perifricos caros,

como impresoras a color.


Comunicacin: Facilita la comunicacin de persona a persona; por ejemplo, mediante correo electrnico . Flexibilidad: Difunde la carga de trabajo entre las mquinas disponibles en la forma ms eficaz en cuanto a costos.

4.5.4 VENTAJAS Y DESVENTAJAS Existen varias razones que justifican la construccin de sistemas distribuidos de bases de datos, incluyendo el comportamiento de datos, ala autonoma y la disponibilidad.

Compartimiento de datos. La mayor ventaja de los sistemas distribuidos de bases de datos es que proporcionan un entorno en el que los usuarios de un emplazamiento pueden ser capaces de acceder a los datos que residen en otros equipos de computo o sistemas. Autonoma. La ventaja principal del comportamiento de datos, es que cada equipo de cmputo puede conservar un cierto grado de control sobre los datos que tiene almacenado localmente. Disponibilidad. Si en un sistema distribuido falla un equipo de cmputo, los equipos de cmputo restantes pueden continuar funcionando, en particular, si se duplican los elementos de datos en varios equipos, una transaccin que necesite un determinado elemento de datos puede encontrarlo en cualquiera de dichos equipos, de esta manera, el fallo de un equipo no implica necesariamente el cierre del sistema.

El sistema debe ser capaz de detectar un fallo en uno de losequipos, de modo que pueda decidir si es necesario realizar alguna accin de recuperacin. El principal inconveniente de los sistemas distribuidos de bases de datos es la complejidad aadida que es necesaria para garantizar la coordinacin apropiada entre los equipos. Esta crecietne complejidad tiene varias facetas:

Coste de desarrollo del software. La implementacin de un sistema distribuido de bases de datos es ms difcil y por tanto ms costoso. Mayor probabilidad de errores. Como los equipos que constituyen el sistema distribuido operan en paralelo, es ms difcil asegurarse de la correccin de los algoritmos, del funcionamiento especial durante los fallos de parte del sistema, as como de la recuperacin. Mayor sobrecarga de procesamiento. El intercambio de mensajes y el cmputo adicional necesario para conseguir la coordinacin entre los distintos equipos constituyen una forma de sobrecarga que no surge en los sistemas centralizados. Seguridad dbil: Un acceso sencillo tambin a datos secretos.

DOWNSIZING Concepto de Downsizing: Forma de reorganizacin o reestructuracin de las empresas mediante la cual se lleva a cabo una mejora de los sistemas de trabajo, el rediseo organizacional y el establecimiento adecuado de la planta de personal para mantener la competitividad. En strictu sensu significa una reduccin de la planta de personal, pero, en general expresa una serie de estrategias orientadas al Rightsizing (logro del tamao organizacional ptimo) y/o al rethinking (repensar la organizacin). Tipos de downsizing: Reactivo: Se responde al cambio, a veces, sin un estudio acucioso de la situacin. Los problemas que se derivan de esta posicin suelen ser predecibles: reduccin de la planta de personal slo por respuesta, sin un diagnstico adecuado, ambiente y clima laboral inadecuado, daos son costosos y alto impacto negativo en la eficiencia de la empresa. Proactivo: Es un proceso de anticipacin y preparacin para eventuales cambios en el entorno, este tipo de opcin posibilita resultados y efectos ms rpidamente y requiere de criterios estratgicos basados en la idea de repensar la empresa. Condiciones para un downsizing estratgico: Utilizacin de un marco sistemtico de trabajo y una metodologa adecuada. Determinacin acerca de si el downsizing va a dirigirse hacia los procesos o hacia una verificacin de los objetivos de la empresa. Definicin del marco y condiciones en las que se va a llevar a cabo el downsizing. Establecimiento de las herramientas que se emplearn. Desarrollo de un plan de administracin del cambio. Definicin de un plan para mantener y mejorar el desempeo durante y despus del downsizing. Considerar a quienes afectar el proceso de downsizing. Determinar la profundidad del ajuste y el tiempo disponible para ello. Determinacin de los puestos y tareas a eliminar, fusionar o redefinir. Ventajas del Downsizing: 1. Disminucin de costos al reducir algunos departamentos que integraban la empresa y que ya no son necesarios. 2. Organizaciones ms flexibles y ligeras. Conceptos Relacionados con el Downsizing: Resizing: Volver a dimensionar o medir. Se podra decir que surge a consecuencia de una poltica de downsizing que ha producido un dficit de productividad o incremento de resultados negativos. Aparece como un gran avance pero mejora slo parcialmente

el funcionamiento, la productividad y la eficiencia de las organizaciones. Rightsizing: "Medicin correcta", es un enfoque que privilegia la calidad estratgica total, la eficiencia y el consiguiente logro de beneficios, a partir de una organizacin flexible. Implica la creacin e innovacin en nuevos productos, nuevos servicios y nuevos mercado a partir de las necesidades del cliente (deleitndolos y seducindolos). Se plantea como bsico un proceso comunicacional desde y hacia el cliente. Principios bsicos del Rightsizing: Analizar y eliminar toda actividad, proceso o rea que no agregue valor Reducir los procesos, hacindolos ms cortos, simples y productivos Promueve la descentralizacin de las decisiones, cambiando la actitud del personal desde una perspectiva de mero ejecutor a un decisor participativo. Obviamente esto requiere de un compromiso por parte de las persona y de una administracin estratgica al respecto. Los resultados sern el reflejo de una administracin estratgica de los cambios, aprovechamiento de oportunidades y nuevas formas o herramientas de la administracin. Bibliografa: Cameron, Kim S, Freeman, Sarah J, Mishra, Aneil K. "Downsizing and redesining organizations" New York: Oxford University Press, 1995. Apuntes enviados por:
Jessica Cuero