Lo entero es mas grande que la suma de sus partes. Esto, en alguna forma, explica la teoría detrás de una de las mas importantes oportunidades tecnológicas creadas por Internet: las aplicaciones distribuidas.
En las aplicaciones distribuidas para Internet, las funciones son distribuidas online (en línea, instantáneamente) a docenas , miles o aun millones de computadoras. Estas incluyen aplicaciones para distribuir y compartir archivos, como el controversial Napster, en el cual usuarios comparten archivos de música MP3 por Internet, o aun Gnutella, una aplicación de open-source (programa cuyas fuentes son publicas) que permite a sus usuarios compartir todo tipo de archivos.
Un cada vez mas importante tipo de aplicación distribuida enlaza un grupo de computadoras por Internet para crear una supercomputadora virtual.
La aplicación distribuida mas intensiva en términos computacionales del planeta y que corre por Internet es SETI@home , la cual analiza las señales del espacio en busca de signos de vida inteligente, corre en mas de 2 millones de computadoras y procesa un promedio agregado de 12 teraflops, de acuerdo al jefe del proyecto científico: Dan Wertheimer, un astrónomo de la Universidad de California del Laboratorio para las Ciencias del Espacio de Berkeley.
Las aplicaciones distribuidas por Internet son importantes porque ellas utilizan el tiempo muerto de las computadoras para realizar el tipo de ataque requerido para complejos problemas computacionales que usualmente requerirían supercomputadoras, las cuales son muy caras de usar e inaccesibles para muchas organizaciones.
Correr un complejo problema computacional en una aplicación distribuida por Internet cuesta 1 % de lo que costaría correrla en una supercomputadora, dice Scott Kurowski, fundador y funcionario ejecutivo de Entropía, un proveedor comercial y no comercial de servicios de computación distribuida por Internet.
El concepto de la computación distribuida a estado rondando por años, pero nunca se desarrollo debido a las limitaciones en tecnología de redes. Ahora, sin embargo, procesadores mas poderosos, así como mas rápidas tecnologías de comunicaciones, están haciendo mas fácil enlazar computadoras para realizar complejas aplicaciones distribuidas.
(falta)
La Tecnología
Como se muestra en la figura de esta pagina, las aplicaciones distribuidas por Internet pueden ser
De grano grueso o de grano fino.
Fig 1:Las aplicaciones distribuidas que se ejecutan sobre Internet pueden ser de grano grueso (a)o grano fino (b). En las aplicaciones de grano grueso, el trabajo es dividido en piezas independientes. Las piezas son distribuidas a múltiples clientes, los cuales devuelven los resultados de su computación al servidor maestro. Las aplicaciones de grano fino, como las simulaciones, son mas complejas debido a que los clientes deben comunicarse con cada otro. Esto es necesario porque el trabajo hecho por un cliente afecta el trabajo hecho por los otros.
En las aplicaciones de grano grueso, los clientes se comunican con servidores maestros y servidores proxi pero no entre ellos mismos. Esta aproximación es buena para computación de fuerza bruta en el cual la aplicación solo tiene que dividir los cálculos entre diferentes clientes.
En las aplicaciones de grano fino, los clientes participantes deben comunicarse con cada otro, Esto es necesario para algunas aplicaciones como las simulaciones. A medida que la simulación progresa, los cambios en la situación manejada por un cliente afectan las situaciones manejadas por otros clientes. Los clientes deben de ser capaces de comunicar esos cambios con cada otro.
Participando en las aplicaciones distribuidas
Los individuos interesados en participar en las aplicaciones distribuidas que se ejecutan sobre Internet deben bajarse e instalar el programa de núcleo necesario. En algunos casos, este programa incluye el código necesario para que el cliente corra la aplicación. En otros casos incluye solo la infraestructura operacional de la aplicación, en estos casos el cliente debe bajar separadamente el código necesario para correr la aplicación.
Algunas aplicaciones distribuidas corren en la maquina del usuario en segundo plano, en conexión con un protector de pantalla. De este modo la aplicación corre solo cuando la maquina no esta siendo usada y se detiene cuando el usuario usa su maquina para trabajar de nuevo.
Las aplicaciones distribuidas pueden correr además en primer plano de acuerdo a un horario
predeterminado de maquinas que no están siendo usadas en una red corporativa. Las aplicaciones distribuidas podrían correr además en segundo plano mientras un usuario esta trabajando en su computadora pero esto disminuiría el rendimiento.
Trabajando entre plataformas
Para máxima efectividad, las tecnologías de computación distribuida pueden correr en una variedad de plataformas, incluyendo PC’s, Macs, servidores, mainframes, y aun supercomputadoras.
En algunos casos, los programadores pueden optimizar el código del núcleo para una particular plataforma de software, como Windows. Para correr en múltiples plataformas los desarrolladores pueden escribir el núcleo en un lenguaje independiente de la plataforma como Java o diseñar una plataforma distribuida que pueda correr en múltiples tipos de maquinas, como Applied MetaComputing ha hecho.
Arquitectura
Las aplicaciones de computación distribuida típicamente usan una arquitectura jerárquica en el cual un servidor maestro maneja y envía las tareas a varios clientes, los cuales ejecutan las tareas y devuelven su trabajo de vuelta al servidor.
En algunas aplicaciones, como son SETI@home , un cliente termina un trabajo y solicita mas datos del servidor. En otras aplicaciones, donde la actividad del cliente es altamente predecible, los servidores envían datos de acuerdo a un rol preestablecido.
En aplicaciones muy grandes, los servidores proxi alivian la carga del servidor maestro manejando ellos mismos muchas de las tareas de comunicación. Esto permite el escalamiento y el balance de la carga y ayuda a las aplicaciones distribuidas a trabajar a pesar de los problemas propios de las redes.
Dificultades Criticas
Las aplicaciones distribuidas tienen que enfrentar dos dificultades técnicas criticas, de acuerdo a Kurowski:
Falta de tolerancia y Recuperación: un servidor maestro o un servidor proxi monitorea las comunicaciones de la red. Si una conexión de red cae o un cliente se cae, el servidor envía la tarea a otro cliente. Para maximizar la tolerancia a fallos, las aplicaciones de grano fino pueden estar corriendo sobre una LAN o en una conexión a Internet de alta calidad, lo cual hace fácil la recuperación.
Comunicaciones: las aplicaciones distribuidas tiene dos necesidades de comunicación primarias. Aplicaciones como SETI@home envían una relativamente pequeña cantidad de datos una vez al día, a lo mas. En otras aplicaciones como las simulaciones, en la cual diferentes nodos comunican frecuentemente sus estados con cada otro, una cantidad tremenda de comunicación es requerida.
Las aplicaciones distribuidas tienden a usar TCP sobre WANs, particularmente aquellos que cubren transmisiones de larga distancia, debido a que el protocolo ofrece baja latencia. Sin embargo, TCP además requiere mas administración. Entonces sobre LANs (cuyas distancias mas cortas de transmisión dejan menos oportunidad para la latencia), las aplicaciones distribuidas tienden a usar UDP el cual adicionalmente controla la funcionalidad para asegurar que la data es enviada fidedignamente.
Proyectos de Alto Perfil
SETI@home SETI@home (http://setiathome.ssl.berkeley.edu/) esta fundado en el Laboratorio para Ciencias del Espacio de Berkeley y esta afiliado con el proyecto académico para la Búsqueda de Inteligencia Extraterrestre. El proyecto recolecta datos de las señales generadas por la radiación y otras fuentes en el espacio y analiza los datos buscando patrones que podrían indicar señales enviadas por alguna vida inteligente. Las señales son recibidas por el Radiotelescopio de Arecibo del Centro Nacional para la Astronomía e Ionosfera de los Estados Unidos el cual se ubica en el noroeste de Puerto Rico. Los datos son enviados a Berkeley y luego enviados a los participantes de SETI@home.
(falta)
Fig 2 El Monitor de Estado de Legión, una tecnología usada en las aplicaciones de Applied MetaComputing, muestra información acerca de redes norteamericanas y redes distribuidas a nivel global, incluyendo poder, carga, velocidad, y disponibilidad de hospedaje. Esta tecnología provee a una organización con considerable información acerca del control sobre una aplicación distribuida de Internet, y por ende mejora su flexibilidad y funcionalidad.
Applied MetaComputing
Grimshaw fundó Applied MetaComputing (http://www.appliedmeta.com) en 1998 para comercializar la tecnología desarrollada por el proyecto de investigación basado en objetos de la Universidad de Virginia: Legión. (http://legion.virginia.edu)
Un numero de corporaciones, agencias de gobierno e investigadores están usando la tecnología de Applied MetaComputing de acuerdo a David Kopans, vicepresidente de desarrollo de negocios.
El dice que la tecnología de la compañía, a diferencia de la usada en otras aplicaciones distribuidas de Internet, viene con su propio entorno de sistema operativo. Esto les da a los usuarios mas control sobre una aplicación distribuida, lo cual es muy importante para complejas aplicaciones de grano fino, según el.
Preocupaciones
Las aplicaciones distribuidas de Internet deben enfrentar muchas dificultades y preocupaciones importantes:
Seguridad: los desarrolladores deben minimizar las oportunidades de que las aplicaciones distribuidas puedan distribuir accidentalmente código malicioso a los participantes o prevenirse de ataques de Denial-of-Services (DoS: ataque que usan algunos hackers para sobrecargar servidores y hacerlos caer) Un ataque DoS masivo en 1997 ayudo a dar por concluido un importante proyecto de computación distribuido.
Con esto en mente, Beberg dice que la tecnología para computación distribuida de Cosm incluye medidas de prevención contra DoS.
Mientras tanto, las aplicaciones distribuidas actualmente usan típicamente autenticación para asegurar que la gente que distribuye el código esta realmente autorizada a hacerlo. Las aplicaciones además usan encriptación frecuentemente para proteger los datos que van a ser transmitidos y protegerlos de ser corrompidos o cambiados.
Consumo de Ancho de Banda: debido a la cantidad de comunicación entre clientes, las aplicaciones de grano fino pueden consumir considerable ancho de banda del cliente. Las tecnologías de acceso a Internet de banda ancha, como cable módems, podrían ayudar a la velocidad de la transmisión pero no solucionarían el problema de la calidad del servicio.
Congestión de Internet: con aplicaciones de grano fino ,la congestión de la red puede causar problemas por interrumpir las frecuentes transmisiones entre clientes. Esto no es un gran problema con aplicaciones de grano grueso, los cuales implican solo cortas y ocasionales transmisiones explosivas entre servidores y clientes.
Futuro
De acuerdo a Kurowski, el uso de aplicaciones distribuidas que se ejecutan sobre Internet podría crecer muy rápidamente. El dice “Va a ser la línea de guía del futuro. El ancho de banda de las redes crecerá, así como el poder de procesamiento y el numero de maquinas disponibles”
Mientras tanto, el creciente uso hecho por los consumidores y negocios de computadores con procesadores mas poderosos y mas rápidos accesos a Internet – como son líneas de suscripción digital, cable módems, y fibra- podría mejorar el rendimiento de las aplicaciones distribuidas y manejar su uso creciente.
En el futuro Kurowski dice que habrá una mayor cantidad de variadas aplicaciones distribuidas que serán asequibles a individuos u organizaciones que trabajen con difíciles problemas que de otra manera no podrían resolver.
(falta)
(falta): texto no traducido por estar incompleto.
|