• No se han encontrado resultados

Web-Os - sistemas operativos Web : caracterización de WebOs y WebTops

N/A
N/A
Protected

Academic year: 2020

Share "Web-Os - sistemas operativos Web : caracterización de WebOs y WebTops"

Copied!
70
0
0

Texto completo

(1)1. Web-Os: Sistemas Operativos Web Caracterización de WebOS y WebTops. Andrés Echeverría Acuña. Universidad De los Andes Facultad De Ingeniería De Sistemas 2008.

(2) 2. Web-Os: Sistemas Operativos Web Caracterización de W WebOS y WebTops. Andrés Echeverría Acuña. Trabajo de Grado presentado como Requisito para optar al titulo de Ingeniero de Sistemas. Asesor: Rafael Gómez. Bogotá Universidad De los Andes Facultad De Ingeniería De Sistemas 2008.

(3) 3. AGRADECIMIENTOS. Quiero expresar mi agradecimiento: A mis padres por el apoyo incondicional que me brindaron a lo largo de la carrera. A mi abuela Beatriz por su apoyo incondicional, sus consejos, su compañía y la ayuda la cual siempre ha evitado que me sienta solo. A mi director y asesor de tesis Rafael Gómez Díaz, por su calidez, apoyo y confianza al brindarme la oportunidad de trabajar en este proyecto.. A todos mis buenos amigos que siempre encontraron palabras para incentivarme y ayudarme a retomar el camino..

(4) 4. CONTENIDO Pág. Introducción. 5. 1. Tecnologías Web. 9. 1.1. Aplicaciones y servicios Web. 10. 1.2. Web.2.0. 11. 1.3. Web.3.0. 13. 1.4. Aja x. 15. 2. Sistemas Operativos Web. 20. 2.1. Meta computación. 20. 2.1.1 WebOS proyect. 21. 2.1.2 WOS proyect. 25. 2.2. Escritorios Web (Webtops). 27. 2.2.1. EyeOS. 28. 2.2.2. YouOs. 33. 2.2.3. G.ho.st. 38. 3. Análisis. 40. 3.1. Comparación de los diferentes WebOs estudiados.. 41. 3.2. Funciones ofrecidas por los Web-OS y WebTops.. 48. 4. Prospectiva. 51. 5. Conclusiones. 54. 5. Bibliografía. 61. 6. Ane xos-Aplicaciones. 63.

(5) 5. INTRODUCCION El número de sistemas, servicios y aplicaciones desarrollados para la Web crece constantemente debido en parte a la gran popularidad de las redes sociales y al uso de nuevas tecnologías que permiten crear aplicaciones más rápidas e interactivas en nuestros navegadores, a la computación móvil presente en la mayoría de dispositivos de comunicación actuales y a la necesidad de permitir a los diferentes usuarios de una red el uso de los diversos recursos de la misma (tales como capacidad de procesamiento, capacidad de almacenamiento o uso de aplicaciones de sistemas operativos). [1] Hoy en día podemos encontrar todo tipo de aplicaciones en la red, tales como comercio electrónico, mapas y posicionamiento global, editores de toda clase de documentos, juegos multi-jugador, correo, chat, hojas de cálculo, organizadores, vo z, etc. de modo que por medio un navegador y una conexión a Internet se puede suplir o superar casi cualquiera de las funciones que brinda un sistema operativo convencional. Esto nos brinda la posibilidad de ejecutar aplicaciones o servicios Web sin importar el hardware o software que tengamos en nuestro Computador y, más importante aun, que el usuario pueda acceder a ellas por medio de la red desde cualquier sitio, en el momento en que lo requiera. Es así como se hace popular la idea de agrupar diferentes aplicaciones Web bajo un. mismo. framework,. para. sustituir. los. sistemas. operativos. locales. convencionales, y se empiezan a ver una baraja de diferentes propuestas recogidas bajo el mismo nombre de Web-OS..

(6) 6. En primera instancia se encuentran proyectos basados en sistemas distribuidos como el WEBOS Project (1996) de la universidad Berkeley de California y el WOS Project (1999), los cuales buscan crear un sistema operativo Web que aproveche eficientemente los recursos de procesamiento y servicios disponibles. Estos sistemas operativos Web distribuidos deben tener la capacidad de elegir la mejor opción, entre el conjunto de aplicaciones distribuidas en los diferentes servidores, en cuando velocidad de procesamiento, velocidad de conexión y disponibilidad, en el momento que el usuario requiera un determinado servicio, Luego encontramos los escritorios Web (WebTops) o Internet Operating Systems, los cuales son servicios no distribuidos (Singular Network Service) que convierten el escritorio en un servicio Web, con lo cual se crea un escritorio virtual con la mayoría de funciones usuales, como manejo y almacenamiento de archivos, procesadores de texto, etc. Mientras las aplicaciones de escritorio corren sobre el sistema operativo, ya sea Windows, UNIX u otro, las aplicaciones Web corren sobre el Browser, donde el cliente y el servidor pueden comunicarse de manera sincrónica o, más recientemente gracias a modelos de aplicaciones Web como AJAX, de manera asincrónica. [1] Esto emula, en cierta forma, las antiguas Terminal sessions usadas en los años 80, las cuales permitían a los usuarios ejecutar comandos de forma remota en los servidores mientras el cliente solo se encargaba de la entrada y presentación de los datos. Las nuevas generaciones, llamadas Thin clients, tienen más capacidad de procesamiento, y ejecutan Web Browsers o software de escritorio remoto. [2] En este trabajo se estudian algunos de los diferentes Web-Os disponibles en Internet en cuanto a sus arquitecturas, ventajas, desventajas, características y diferencias, con el fin de realizar una caracterización de forma que sea posible identificar qué separa a los sistemas operativos Web de los Web tops..

(7) 7. Con este Objetivo a cumplir el trabajo se divide de la siguiente manera: En el primer capítulo de este trabajo se presentan conceptos básicos de diferentes tecnologías como la Web 2.0, AJAX y servicios Web, que han sido de vital importancia para la evolución de Internet y han incrementado el uso de las aplicaciones web al igual que la popularidad de los sistemas operativos web. Al final del capitulo se estudian conceptos de la Web. 3.0 dando una visión. fundamental para el futuro de los web OS. En el capitulo dos se presenta un estudio del estado actual de los sistemas operativos web y los proyectos realizados hasta la fecha. Entre estos se escogen cinco sistemas de diferentes características etiquetados como sistemas operativos web: WOS, Webos, eyeOS, youOS y G.ho.st. Analizando sus características, su arquitectura, las aplicaciones que ofrecen y sus diferencias conceptuales se buscan definir puntos básicos que separen los sistemas operativos web de los escritorios web. En el capitulo 3 se realiza una caracterización con base en el análisis y la comparación de los cinco diferentes WebOS y WebTops estudiados. Se busca diferenciar puntos clave al momento de definir uno y otro grupo, además de dar nuevas luces al debate popular en la comunidad web que pretende definir el sistema operativo web ideal del futuro. En el capitulo 4 se realiza una prospectiva basada en los requerimientos esperados por los usuarios y las características actuales de los sistemas operativos web estudiados. Se desarrollan algunos puntos clave que presentan falencias actualmente como el desarrollo de protocolos y toolkits para la comunicación entre aplicaciones y la necesidad de rediseñar la web entorno al uso de objetos distribuidos..

(8) 8. Para finalizar en el capitulo 5 presentando las conclusiones finales de la investigación, los pros y contras de los sistemas operativos actuales y algunos comentarios sobre su futuro.. Dada la importancia que presenta para el usuario la posibilidad de desarrollar nuevas aplicaciones que le den flexibilidad al sistema y le permitan personalizar su interfaz, se realiza una aplicación de ejemplo para uno de los sistemas disponibles, con el objetivo de estudiar las diferentes posibilidades ofrecidas por los Web-Os a los desarrolladores. Esta aplicación es presentada en los anexos, desarrollada con los Apis de EyeOS y YouOS, conecta de manera sencilla el sistema operativo web con un sistema de almacenamiento externo llamado boxnet..

(9) 9. 1. Tecnologías Web La Web ha jugado un papel fundamental en el proceso de globalización del mundo actual. Se ha convertido en el principal medio de Comunicación e información gracias a su carácter inmediato y de fácil publicación. Su evolución de medio de escritura, en donde simplemente se almacena información a medio de lectura/escritura en donde el usuario puede tomar un papel activo en la creación de la web, trae consigo un sinnúmero de implicaciones sociales derivadas de la participación masiva de personas de todas partes del mundo en temas como la política, el arte, la cultura, los negocios, etc. No en vano la Web 2.0 es también conocida como la web Social. El gran flujo de información, la necesidad de encontrar enlaces permanentes de comunicación y el deseo de romper las barreras tiempo/espacio para adquirir inmediatez y ubicuidad son algunas de las razones que han impulsado la creación y popularidad de aplicaciones web como los desktops y hacen necesaria la evolución de los sistemas operativos actuales para llegar a los tan anhelados sistemas operativos Web. Los cambios necesarios en el paso de la web 1.0 a la web 2.0 y muchos de los elementos necesarios para la creación de aplicaciones fundamentales en los WebOS se encuentran apoyados por nuevas tecnologías, entre las cuales están los CSS necesarios para la validación semántica, pues permite separar diseño y contenido; RSS/Atom, para la sindicación y agregación de contenidos, usado principalmente en la publicación de noticias; SOAP/REST/JCC, estilos para la creación de servicios web, Java web start o Java Scrip clientes ricos ligeros no HTML y AJAX fundamental para la creación de aplicaciones web asincrónicas basadas en XML y HTML..

(10) 10. 1.1. Servicios y Aplicaciones Web Las aplicaciones y servicios Web son el punto central de los sistemas operativos Web, ya que se encargan de ofrecer las funcionalidades usualmente encontradas en los escritorios. Desde el punto de vista del cliente son independientes de la plataforma de la máquina y del lenguaje de programación, ya que funcionan por medio de tecnologías como HTTP y XML, ejecutadas en los Browsers.[4] Un servicio Web, según el W3C (World Wide Web Consortium, principal organización internacional de estándares para el www), es una interfaz que provee un conjunto de operaciones con las cuales se pueden acceder a cierto servicio en la red. Gracias a estándares abiertos, permiten la comunicación entre aplicaciones con distintos lenguajes de programación, independientemente de la plataforma donde estas se ejecuten. [3]. Un punto clave al momento de hablar de Web-OS y aplicaciones Web es la movilidad. Hoy en día encontramos aplicaciones que nos permiten realizar comercio electrónico, acceder a comunidades virtuales, leer las ultimas noticias (RSS feeds), manejar fotografías etc. desde un sinfín de dispositivos wireless, como teléfonos celulares, palms y demás, sin importar en qué lugar nos encontremos.. El aumento de estos dispositivos en los últimos años, sumado al auge de las redes sociales en Internet, ofrece un nuevo campo para las aplicaciones el Web, de gran popularidad en el área de la tecnología. Este se ha visto respaldado por una gran ola de desarrolladores que día a día crean nuevas aplicaciones, la mayoría de ellas gratuitas y compatibles con los browsers más populares o sistemas operativos de los dispositivos portátiles..

(11) 11. Arquitectura de las aplicaciones Web. Tomado de W3C, Web Services Architecture [19]. Se basa en la arquitectura SOA (arquitectura orientada a servicios) y está conformada por tres roles (proveedor del servicio, solicitante del servicio y registro del servicio) y tres operaciones (encontrar, publicar y b ind). La descripción del servicio es expresada en WSDL y se crea usando un estándar en formato XML que tiene todos los detalles para interactuar con el servicio, como son: el formato de los mensajes, el protocolo de trasporte y su ubicación. Luego de crear el servicio y su descripción, este se publica mediante un registro del servicio basado en un estándar llamado The Universal Description, Discovery and Integration specification (UDDI). Finalmente, en el momento en que se solicita el servicio, este se puede encontrar por medio de la interfaz UDDI, la cual provee la descripción del servicio (WSDL) y.

(12) 12. la URL con la cual el solicitante del servicio hace bind y luego invoca el servicio [4].. 1.2.. Web 2.0. La búsqueda de información en Internet acerca de Web 2.0 y Web 3.0 nos dirige inmediatamente a miles de blogs en donde todo tipo de personas, desde expertos hasta novatos comparte noticias y pensamientos propios acerca de nuevas tecnologías, lo cual evidencia la importancia de esta nueva tendencia que nace en el marco de la Web 2.0.. En la primera conferencia acerca este tema (año 2005), Tim O`Reilly creó el termino Web 2.0, no como un nuevo grupo de especificaciones sobre la Web, sino como una nueva forma de ver la red, como una fuerza que transforma la manera de hacer negocios e interactuar de los usuarios, caracterizada por las premisas de compartir información, promover la creatividad, la colaboración y aprovechar el efecto viral de la red. [10] El uso principal de la Web 1.0 es la digitalización y publicación de la información impresa como libros, noticias y otros documentos. La Web 2.0 está enfocada en proveer servicios, como compartir la información y las redes sociales. La referencia más clara acerca de esta dinámicas donde los usuarios son quienes generan los contenidos es el auge de las redes sociales, los sitios de publicación como blogs, la publicación de noticias RSS feed y demás sitios como YouTube, Flickr o Digg donde se distribuyen videos y imágenes.. El cambio en el modelo de negocios y desarrollo de aplicaciones sobre la Web parte de la idea de ver la red como una plataforma que maximiza el uso de las herramientas actuales, ofreciendo servicios y no productos, teniendo en cuenta las necesidades y comportamientos de los usuarios..

(13) 13. Los principales preceptos de la Web 2.0 se pueden sintetizar en: •. Ver la Web como una plataforma. •. Aprovechar la inteligencia colectiva. •. La propiedad, adquisición y uso de la información. •. Modelos ligeros de programación para servicios Web. •. Ubicuidad de acceso y multiplicidad de dispositivos. •. Enriquecer la experiencia del usuario. Ajax se ha convertido en el estandarte de la Web 2.0, pues es el arma principal de los desarrolladores en el momento de crear aplicaciones. Esto se da gracias al conjunto de tecnologías como JavaScrip (un lenguaje de programación ligero) y la posibilidad de comunicación asincrónica que agiliza la comunicación con el usuario. En el capítulo 1.4 se presentan las principales características de las tecnologías reunidas en Ajax y cómo estas proveen los diferentes medios necesarios para desarrollar aplicaciones web 2.0 como procesadores de documentos online, calendarios, chats, etc. esenciales en los desktops y base fundamental de los sistemas operativos web.. 1.3. Web 3.0 Ahora que es posible publicar la información en forma digital gracias a la Web 1.0 y la disponibilidad de un gran número de servicios Web para compartir esta información y crear redes sociales gracias a la Web 2.0, la siguiente pregunta que los internautas se hacen es ¿Qué será la Web 3.0? Este concepto probablemente se definirá a sí mismo, como ocurre a gran escala con la web2.0 del cual no se sabe aún qué es totalmente ni cómo explotarla y una.

(14) 14. de sus posibles funcionalidades estará enfocada en el valor de la gran cantidad de información que se comparte en Internet y el uso de plataformas para la creación de aplicaciones.. Las relaciones en las redes sociales y las actividades de los usuarios en Internet tanto como la clase de datos que estos comparten hacen parte fundamental de la Web implícita y crea un nuevo tipo de información la cual adquiere valor no por sí misma de manera aislada, sino por la forma como los datos se relacionan y como caracteriza diferentes grupos de personas definiendo sus gustos para posibles modelos de mercado.. Los últimos servicios Web giran alrededor de plataformas de código abierto que permiten el uso de herramientas para la creación de programas los cuales no necesariamente proceden de los proveedores de software sino que son aplicaciones creadas por los mismos usuarios. [11] La importancia de la Web 3.0 va mucho mas allá de su impacto en Internet pues posiblemente también modifique la dinámica entre usuarios y proveedores de software como los creadores de hardware PCS y otros dispositivos. Los servicios Web disponibles en línea toman ventaja cada día sobre las aplicaciones que trabajan de manera local sin conexión. Eric Schmidt CEO de google, que se refirió a este tema en el Seoul Digital Form, cree que algunas de las características que debe tener la Web 3.0 son [12]: •. Trabajo conjunto entre el grupo de aplicaciones. •. Aplicaciones relativamente pequeñas. •. Gestión de datos encontrados en la red. •. Aplicaciones ejecutadas por cualquier dispositivo (PC, móvil). •. Aplicaciones rápidas y personalizables. •. Distribución viral (redes sociales, e-mail).

(15) 15. Aunque es difícil definir qué es Web 2.0 o Web 3.0 y se presenta un arduo debate en los diferentes grupos de Internet desde que se presento el concepto por O´Reilly, no es inútil estudiar las diferentes posibilidades que ofrecen pues, más que el conjunto de tecnologías, lo realmente importante es la caracterización sobre las posibilidades que ofrecen las aplicaciones al usuario. Como dice Eric Schmidt CEO de google, el concepto detrás de Web 3.0 podría ser el trabajo conjunto entre las diferentes aplicaciones, y actualmente, aunque encontramos miles de aplicaciones Web (por ejemplo para editar un documento encontramos zoho, google docs, widows writer y. muchos más en diferentes. Webtops), no existe un protocolo que permita trabajar entre ellas, compartir datos o escoger funcionalidades de aquí y allá para crear aplicaciones personalizadas. Una de las mejores definiciones encontrada en Internet, y que nace de un concurso en el cual miles de personas compartían sus conceptos sobre la Web [13], dice: •. Web 1.0 Un Ellos Centralizado. Viejos portales sin interacción, libros y periódicos digitales.. •. Web 2.0 Un Nosotros Descentralizado Contenido generado por los usuarios (blogs, imágenes, videos). •. Web 3.0 Un Yo Distribuido Contenido generado por el usuario + Contenido generado por la máquina. 1.4. AJ AX AJAX es la unión de un conjunto de tecnologías (HTML, JavaScrip, CSS, DHTML, XML y PHP, JSP o ASP.NET) las cuales, en conjunto, permiten realizar páginas.

(16) 16. Web asincrónicas. Sus siglas provienen de Asynchoronous JavaScrip and XML. AJAX ha cobrado gran importancia, pues ha permitido modificar el modelo clásico de las aplicaciones Web para crear lo que conocemos como Web 2.0.. Usualmente, cuando un cliente hace un requerimiento al servidor web, este realiza un proceso a la información y le da la respuesta al cliente por medio de una página HTLM; esto genera un lapso de tiempo en el cual el cliente espera incapaz de realizar ninguna otra operación en la aplicación. Ajax elimina este problema de petición-espera introduciendo un motor AJAX a manera de intermediario, el cual es cargado por el navegador en el momento de cargar la página web. Este monitor se encarga de comunicarse con el servidor en nombre del usuario, de manera que la comunicación sea asincrónica y el cliente pueda seguir interactuando con la página mientras espera por la respuesta o enviar o recibir información del servidor sin necesidad de volver a cargar toda la pagina. [8]. Tomado de Ajax: Un Nuevo Acercamiento a las Aplicaciones Web. [8].

(17) 17. A continuación se enumera el conjunto de tecnologías que participan en AJAX: •. XHTML y CSS: presentación visual basada en estándares.. XHTML (Extensible Hypertext markup Language) es un lenguaje de marcado el cual une las funcionalidades de HTML y las especificaciones de XML para transmitir la información de documentos, mientras que los CSS (Cascading Style Sheets) se encarga de su presentación y diseño, separando así claramente la información y la forma de presentarla, base principal de una web semántica. •. XML y XSLT: manipulación de dato Estos dos lenguajes se combinan para procesar o trasformar la información por medio de motores XSLT usados para la edición de páginas web. XML (Extensib le Markup Language) es un lenguaje extensible el cual presenta la información en forma estructurada, mientras que el XSLT (Extensible Stylesheet Language. Transformations). permite. crear. plantillas. que. describen cómo se debe transformar la información contenida en estos documentos a otros formatos facilitando el intercambio de información. •. Document Object Model (DOM): interacción dinámica. Este API es un modelo de objetos para la representación de documentos HTML y XML, por medio del cual las aplicaciones pueden acceder y modificar dinámicamente el contenido, la estructura lógica y estilo de los documentos. DOM es la principal alternativa para el manejo de XML en aplicaciones realizadas bajo AJAX. Su estructura es un árbol de nodos; donde cada.

(18) 18. nodo representa un elemento y el texto se representa por un nodo de texto .Para los desarrolladores, este modelo permite almacenar datos en forma de documentos con cierta jerarquía, la cual provee una referencia para acceder a cada objeto, modificarlo o eliminarlo añadiendo interactividad a las páginas web.. Tomado de DOM: The Document Object Model. [20]. La herencia en los nodos se representa con el esquema padre-hijo. Para acceder a los nodos con JavaScrit para una posible aplicación en AJAX, es posible usar algunos métodos como getElementById, createElement, getElementsByTagName, appendChild y removeChild. En el momento de remover un elemento este ya no será parte del DOM pero no se destruye por completo, pues se guarda una referencia en memoria al objeto eliminado, de manera que el nodo se pueda reutilizar posteriormente. •. XMLHttpRequest : recuperación de datos de manera asincrónica También conocida como XHR, esta interfaz es utilizada por las aplicaciones web para realizar peticiones HTTP y HTTPS al servidor en páginas Web sin necesidad de cargar toda la página nuevamente. Gracias a que el cliente puede crear varias instancias de la misma clase, esta interfaz puede proporcionar contenido dinámico y comunicación asincrónica..

(19) 19. Puede ser usado por JavaScript y otros web b rowser scripting languages para transmitir XML y demás datos de texto. Según el browser, el llamado al XMLHttpRequest debe ser diferente.. Browsers Mozilla: Se usa codigo Javascript i. window.XMLHttpRequest IE : Se usa el Acti veXObject ii. Microsoft.XMLHTTP iii. Msxml2.XMLHTTP •. JavaScript: une las anteriores tecnologías. Es un leguaje de programación orientado a objetos que no requiere compilación y se ejecuta generalmente en el lado del cliente en el momento de realizar tareas y operaciones. Para evitar incompatibilidades utiliza el modelo DOM para la interacción con páginas web.. En la actualidad se encuentra un gran número de páginas que se basan en AJAX, entre ellas están el conjunto de servicios de Google como suggest, maps, groups, gmail, RSS y nuevas aplicaciones para el manejo de imágenes o comunidades sociales como Flickr, Facebook, Orkut. Flock y Twitter.. Dadas las tecnologías usadas se requieren 4 Archivos: •. El archivo HTML que contiene la presentación en el Browser.. •. El archivo JS que contiene las rutinas de JavaScript para actualizar la página.

(20) 20. dinámicamente y las rutinas de comunicación con el servidor. •. La hoja de estilo CCS.. •. La pagina que contiene los scripts ejecutados en el servidor (PHP, JSP). 2. Sistemas Operativos Web El termino Web-Os hace referencia a una gran variedad de sistemas que pretenden dar soluciones a la necesidad de desarrollar Sistemas Operativos basados en la Web.. En general encontramos dos grupos en los cuales se pueden agrupar la mayoría de proyectos según su alcance y arquitectura. Estos son:. 1. Web tops (escritorios virtuales Web) 2. Meta computación 2.1. Meta computación Con este termino se hace referencia al desarrollo de plataformas de trabajo en redes que permitan la ejecución de tareas orientadas al usuario, teniendo en cuenta diversos factores tales como la infraestructura de la red, propiedades del sistema para la realización del modelo, simulaciones de tareas y relaciones complejas para el equilibrio de sistemas donde las reglas no son lineales y simulación de procesos. Otros estudios de especial importancia para el área de los web Os se enfocan en el desarrollo de herramientas para el análisis del comportamiento de programas que se deban adaptar a cambios en la carga de trabajo [13] y técnicas de autoconfiguración donde los framework se pueda auto modificar en tiempo real para ajustarse a los diferentes requerimientos de las aplicaciones.[14].

(21) 21. En este campo encontramos dos proyectos desarrollados por grupos de investigación universitarios, en la segunda mitad de los años 90.. 2.1.1. The WebOS Project Este proyecto, realizado por la división de ciencias de la computación de. la. universidad Berkeley de California, se desarrolló con el fin de crear un sistema operativo en el cual las diferentes aplicaciones Web tengan acceso y puedan manejar los diversos recursos compartidos alrededor de la Web para el beneficio de todos los usuarios. Este sistema se aparta del modelo clásico petición-respuesta entre los Browser y servidores, para tratar de demostrar la posibilidad de un sistema que maneja tanto el procesamiento, como el almacenamiento y manejo de datos, de acuerdo con los recursos disponibles en el entorno, la características de los servicios Web y el estado de conexión de la red a dichos servidores. Así, el sistema se encarga de balancear las cargas de procesamiento y de transferencia de archivos de tal forma que el uso de ancho de banda se maximice mientras la latencia se minimiza. [5] Para proveer servicios OS, el Framework de WebOS debe permitir la construcción de servicios Web que sean configurables dinámicamente (flexibilidad), conscientes de su entorno geográfico, escalables y con un alto porcentaje de disponibilidad y accesibilidad.. Además. debe. ofrecer. funciones. OS. globales. como:. direccionamiento (Naming), asignación de recursos, comunicación entre procesos, ejecución remota de procesos, tolerancia a fallos, programación de tareas, autenticación de usuarios y seguridad. [6]. El prototipo del Framework está compuesto por cuatro grandes componentes, (i) Smart Clients, los cuales se encargan de suministrar tolerancia a fallos y balance.

(22) 22. de las cargas de acceso a los servicios Web, (ii) WebFS, un sistema global para el manejo de archivos, (iii) un manejo de recursos el cual por medio de una máquina virtual se encarga tanto de la asignación de recursos como de la seguridad en ejecución de programas, y (iv) autenticación/autorización para la seguridad en el acceso a recursos globales Web. [5]. Smart Clients (Naming) La arquitectura de los clientes inteligentes permite que extensiones específicas para cada servicio se carguen dinámicamente en el lado del cliente para mantener un seguimiento de servicios móviles,. balance de carga entre servidores de. manera individual y transparencia de errores para los usuarios. Estas extensiones son distribuidas por medio de Applets de Java aprovechando su portabilidad en los diferentes b rowser. [5]. Así, un Applet específico, que contiene información acerca de la localización de los proveedores, es cargado por el b roswer cada vez que este accede a un servicio. Este Applet está conformado por dos threads: uno encargado de la interfaz gráfica presentada al usuario y otro, llamado director, que se encarga del balance de carga basándose en la distancia hasta el cliente, el rendimiento en el pasado del servidor, la carga actual del servidor, y enmascara los errores para mantener la transparencia del servicio, para lo cual guarda la información necesaria para retrasmitir la petición en caso de que el servidor falle..

(23) 23. Tomado de WebOS, software support for scalable services. [5]. WebFS. El sistema de archivos de WebOS funciona como una abstracción de un sistema global coherente de cache, encargado de manejar su uso, mantener la coherencia y controlar el acceso.. Funciona por medio de una asociación de listas extensibles de propiedades a cada archivo del usuario, allí se encuentran datos como los nombres del propietario, permisos de acceso, políticas de encripción y políticas para mantener la coherencia del cache implementando el protocolo de último en escribir gana y múltiples IP. Estas listas pueden ser accedidas por medio de una llamada ioctl al sistema UNIX. [6] Este sistema de archivos usa las direcciones URL como glob al namespace y el HTTP como protocolo de transporte para permitir que las aplicaciones accedan a los archivos por medio de URL sin necesidad de utilizar nombres comunes.. Autenticación y Autorización.

(24) 24. Dada la naturaleza de los sistemas basados en la Web donde sufren un gran número de ataques, se hace indispensable que los desktop provean acceso seguro y autenticado tanto a la información pública como privada requerida por las aplicaciones, de forma que se limite el acceso a archivos y demás recursos. Para esto, WebOS se vale de una lista de control de acceso a archivos y recursos donde cada usuario posee una llave pública única, que es validada por una o más autoridades de replicado similares a servidores DNS. Con este sistema se previene el acceso sin autorización y además es posible crear dominios en donde se dé prioridades sobre los procesos y derechos de acceso a archivos u otros recursos, siempre en el contexto de grupos de dominio seguro. Manejador de recursos. El manejador de recursos es el responsable de administrar las peticiones realizadas por sitios remotos, autenticar la identidad del cliente y determinar si tiene los permisos indicados para ejecutar dicha petición. Para esto crea una máquina virtual encargada de la ejecución de los procesos, la cual verifica que los procesos no interfieran entre ellos e interactúa con el sistema de autorización para validar las restricciones asociadas a cada dominio o grupo de trabajo de modo que se mantenga la integridad del sistema,. Luego de autenticar satisfactoriamente al usuario, el siguiente paso es determinar por medio de la lista de acceso de control (ACL) los permisos de escritura, lectura, ejecución de archivos y procesos del usuario según el domino en que este se encuentre y autorizarlo. [6].

(25) 25. La maquina virtual se encarga del control de procesos, los cuales son ejecutados con privilegios limitados previniendo así que interfieran en operaciones de otros procesos o máquinas virtuales, y del manejo de recursos pues establece la cantidad de memoria y CPU que el proceso puede utilizar.. En el proyecto WebOS se usa específicamente Janus para crear la máquina virtual el cual está basado en el sistema de archivos de Solaris.. 2.1.2. WOS Es un sistema diseñado como distribuido y versionado, enfocado a proveer soluciones para la ubicuidad en la computación global y desarrollar servicios que cumplan con una visión centralizada en la heterogeneidad y naturaleza dinámica de la red. La idea detrás de WOS es formar una gran red en donde se encuentran nodos que hacen a su vez de servidor o cliente, con una gran variedad de versiones, los nodos con la misma versión forman comunidades pero a su vez son capaces de comunicarse mediante protocolos determinados y compartir los diferentes servicios con los cuales cuente cada una de las diferentes versiones compatibles. Esta técnica de configuración de software basada en la demanda se llama educción. (Plaice and Ben Lamine 1997).. El kernel de un nodo en WOS es un motor que está respondiendo constantemente a las peticiones de otros usuarios e integra funciones de cliente, servidor y mensajero. Cada nodo es capaz de proveer una serie de servicios y a la vez puede pasar las peticiones de servicios provenientes de otros nodos a terceros. El conjunto de Nodos con la misma versión forman una WOSNet o WSOSpace, los cuales, al definir y redefinir continuamente las relaciones con el entorno y entre.

(26) 26. ellos mismos, forman comunidades. Dado que cada comunidad tienen ciertas características definidas por su entorno, sus nodos ofrecerán diferentes tipos de servicios y según su versión es posible ofrecer diferentes versiones del mismo servicio.. Este sistema de nodos es altamente flexible y libre de cuellos de botella, ya que no hay un solo servidor que contenga un catálogo central de todos los servidores y servicios que se encuentran en la red; cada vez que un nodo nuevo se agrega al sistema, este guarda en su propio warehouse la información de los nodos que encuentre por medio del layer de comunicación.. El prototipo cuenta con cuatro grandes componentes: la interfaz de usuario (UI), la unidad de control de recursos(RCU), la unidad de control de recursos remotos (RRCU)y la capa de comunicación (WOSCL).. Interfaz del Usuario Está subdividida en tres partes: el editor de perfil, el editor de recursos y el menú de búsqueda, con los cuales el cliente describe las características y restricciones de un recurso que quiere publicar para otros usuarios. Estos perfiles se guardan localmente en el nodo. La unidad de control de recursos. Acepta peticiones de servicios desde la interfaz de usuario y contacta varios warehouse empezando por el local, hasta encontrar el nodo en el cual el servicio pueda ser ejecutado. Al terminar, si el nodo donde se encontró el servicio es nuevo, se agrega al warehouse..

(27) 27. La unidad de control de recursos remotos Acepta peticiones de servicios desde otros nodos y determina si la ejecución es permitida o no según las restricciones de los permisos de acceso. Luego de ejecutar el servicio, pasa los resultados al RCU del cliente. La capa de comunicación. La base de este sistema abierto son los protocolos de comunicación, uno encargado de descubrir y localizar (WOSRP) mientras que un segundo protocolo de lenguaje, con su correspondiente parser y servidores, se encarga de los servicios generales (WOSP), como permitir al nodo crear un conjunto de servicios llamado service class dedicada a necesidades especificas del cliente.[18]. 2.2. Escritorios Web Los Web DeskTops, también llamados Webtops, son plataformas que simulan el funcionamiento y las propiedades de un sistema operativo de manera virtual en un browser, por medio de aplicaciones web. Generalmente dependen completamente de una conexión a internet pero en los últimos meses algunos desktops han comenzado a diseñar aplicaciones para trabajar desconectado siendo necesaria la sincronización de los sistemas posteriormente. En su mayoría están elaborados mediante AJAX y combinaciones de este con Php, Java y Ja va Scrip.. Entre sus cualidades se encuentra la simplicidad en el mantenimiento del software por parte de los usuarios pues no requiere actualizaciones, instalaciones o parches y son poco exigentes en requerimientos de hardware. Sin embargo al trabajar sobre la red pueden. ser susceptibles a ataques que vulneren su.

(28) 28. seguridad y el rendimiento dependen en gran medida del estado y velocidad de la red. A continuación se presentan tres de los escritorios web más representativos encontrados actualmente en la red.. 2.2.1. EyeOS Es una plataforma Open Source desarrollada bajo la arquitectura cliente-servidor; fue diseñada con el objetivo de. contener diferentes aplicaciones web que. permitieran al usuario crear un Web desktop, que sea accesible desde Internet y simule un Sistema operativo funcional en cualquier Browser. Gracias a que está bajo la licencia GNU (AGPL), es posible crear servidores privados tanto para uso personal como a nivel de compañía completamente gratis, al igual que modificar el código para personalizar el sistemas o desarrollar nuevas aplicaciones.. Está desarrollado con PHP y AJAX. El manejo de archivos, usuarios, procesos y comunicación entre el cliente y servidor se realiza por medio de funciones específicas del sistema mediante el kernel y su API.. Kernel Es el encargado de proveer las diferentes funciones para el manejo de los widgets, los servicios y las librerías usadas por las diferentes aplicaciones Web..

(29) 29. Tomado de eyeOS Developer Manual [7]. Los widgets son los encargados de la crear la interfaz gráfica y se cran usando las variables (x, y) que definen su posición en el espacio y variables (high, weight) que definen su tamaño.. Servicios y Librerías Los servicios se encargan de ejecutar tareas de bajo nivel como el manejo de la seguridad, autenticación de usuarios, manejo de procesos y el sistema de archivos virtual (VFS) Las librerías son un conjunto de funciones que permiten facilitar el trabajo de las aplicaciones como el manejo de archivos XML, Zip o URL.. Servicios Las tareas de bajo nivel como el manejo de archivos son manipuladas por medio de servicios que se comunican con el Kernel y imponen restricciones a las peticiones de las aplicaciones. Entre los servicios encontramos el sistema virtual de archivos (VFS), el administrador de usuarios (UM), el manejador de mensajes (MMAP), el.

(30) 30. administrador de procesos (PROC), el manejador de respuestas XML (e yeX), el manejador de archivos externos (Extern), el servicio de historial (log) y un servicio autónomo de seguridad (sec) el cual deshabilita el uso de algunas funciones PHP por parte de las aplicaciones.. VFS El sistema virtual de archivos es el encargado de proveer funcionalidades para manejar los archivos y directorios, por medio del kernel, verificando los permisos de los usuarios sobre los archivos. Por esta razón ninguna operación se puede realizar directamente en PHP. El VFS usa una representación abstracta de los archivos creados por el usuario para separar los documentos personales de otros archivos del root. como. configuraciones, código etc. Al momento de subir un archivo, el sistema virtual crea dos archivos. El primer archivo con extensión eyeFile contiene la misma información que el archivo original, mientras que el segundo, con extensión eyeInfo, se usa para almacenar información en formato XML y contienen el nombre real del archivo, el usuario propietario, la fecha de creación y la aplicación que lo creó. A los dos archivos se le concatenan un String de 32 caracteres lo cual hace imposible adivinar el nombre del archivo desde el exterior del VFS incrementando la seguridad.. User Manager Service Provee métodos necesarios para registrar, conectarse, obtener la ruta al fichero de un usuario y una variable global llamada $currentUser la cual contiene el nombre del usuario de modo que las aplicaciones puedan identificar al usuario que las está ejecutando.

(31) 31. MMap y e yeX En eyeOS las aplicaciones se ejecutan en el Servidor, donde guardan y procesan información, mientras que el cliente se encarga de interactuar con las aplicaciones enviando mensajes al servidor cuando el usuario realiza una acción o visualizando ventanas y otros frames.. Esta comunicación entre el cliente y el servidor en eyeOs se realiza por medio de mensajes, los cuales generalmente son peticiones o envíos de información.. Tomado de eyeOS Developer Manual [7]. MMap es el servicio responsable de enrutar los menajes recibidos en el servidor a las aplicaciones mientras que eyeX es el servicio encargado de llevar los mensajes de respuestas desde el servidor al cliente, los cuales son respuestas XML que contienen ordenes básicas para modificar la interfaz del cliente.. Tomado de eyeOS Developer Manual [7].

(32) 32. Procesos Cada vez que una aplicación se ejecuta, se crea una entrada en un arreglo, que contiene información como el nombre y ID del proceso, checksum, el usuario dueño del proceso y la hora en que fue lanzado. PROC maneja los procesos, provee métodos para lanzar, terminar, listar y define dos variables myPid y checknum los cuales son números de 4 y 8 caracteres respectivamente que permiten identifican cada proceso en la comunicación cliente servidor. Extern. Permite descargar archivos desde el servidor y crear direcciones URL accesibles desde el exterior para con lo cual es posible alojar imágenes, archivos CSS o archivos Java Script. Librerías Las librerías son un conjunto de funciones que permiten facilitar el trabajo al momento de desarrollar aplicaciones. Para el manejo de archivos eyeOs ofrece librerías como eyeXML la cual es utilizada para almacenar configuraciones y trasportar datos o mensajes, eyeURL que provee una clase simple para realizar peticiones http, descargar archivos y interactuar con aplicaciones web, y simpleZip para crear archivos Zip..

(33) 33. Otras librerías importantes son eyeSockes con la cual se manejan las conexiones, i18n un sistema de internacionalización para traducciones del sistema y eyeWidget encargado de la interfaz grafica.. 2.2.2. YouOS Este escritorio colaborativo web desarrollado por la empresa WebShaka cuenta con alrededor de 700 aplicaciones desarrolladas en su mayoría por los usuarios. Esto se hace posible gracias al sencillo API de YouOs el cual enmascara métodos de javascript y Dojo, sumado a el desarrollo de la aplicación web que ofrece una agradable interfaz que permite crear nuevas aplicaciones o clonar/extender las ya existentes.[16] Una de sus mejores cualidades es la rapidez de reacción en el momento de comunicarse con el usuario, lograda con el uso combinado de Ajax y JavaScript, este ultimo usado para la comunicación con el servidor remoto.. Entre sus aplicaciones se encuentran procesador de documentos, chat, manejador de archivos, interpretador de línea de comandos, manejador de procesos, FlickRSS y su propio navegador.. Clonado y extensión de aplicaciones. En YouOS todas las aplicaciones son objetos JavaScript por lo cual pueden ser extendidos. Una aplicación extendida hereda todos los atributos y funcionalidades de la aplicación padre, por esta razón todas las aplicaciones en YouOs extienden directa o indirectamente a WebApp, la cual es la aplicación base del sistema y contiene todo los métodos y propiedades que se deben implementar. De esta manera es posible clonar cualquiera de las aplicaciones ya existentes en.

(34) 34. YouOS y realizar pequeños cambios para crear nuevas funcionalidades. La interfaz de desarrollo también ofrece otras opciones como un Debbuger para corregir el código.. YouFS Para guardar y cargar información YouOs se deshace de las comúnmente manejadas bases de datos, liberándose a su vez de lenguajes como SQL, y maneja el sistema de archivos por medio de estructuras de datos JavaScript. En concreto, usa hashtables, de manera que se crea una tupla de forma atributo-valor en donde se guarda la información y se asocia a la aplicación correspondiente. El manejo de las hash tables se realiza por medio de métodos como new data.HashTable("tablahash"), put(“atributo”, valor) y Commit(), guardando así Strings, Arreglos o Objetos. Las estructuras de datos son identificadas mediantes un descriptor de datos. Este está formado por dos partes: primero el namespace en donde se almacenan el identificador de la aplicación, el nombre del usuario y el identificador del proceso; segundo el dataname, que es el nombre único de la estructura de datos análogo al nombre del archivo. De esta forma es posible que las diferentes instancias de una estructura de datos compartan el mismo dataname siendo posible diferenciarlas por medio del identificador en múltiples procesos.. Adicionalmente cada estructura de datos tiene una lista de afiliados, los cuales son aplicaciones o usuario que tienen acceso a la información guardada en esta. Si la información es actualizada por su propietario, esta es. asincrónicamente. descargada en los diferentes usuarios suscritos, permitiendo integración multiusuario. El permiso de acceso puede ser de dos niveles: permiso de usuario o permiso de acceso público..

(35) 35. YouShell Es un interprete javaScrip que simula un Shell de línea de comandos el cual se encuentra en el escritorio de YouOs como una herramienta para obtener acceso rápido a diferentes funciones como son kill y run para manejar procesos; cd, ls, rm, mkdir y chmod para manejar archivos; ds y dt para manejar las estructuras de datos y otros más como clear, exit. [17]. API El Api de YouOS está dividido en namespaces lógicos los cuales son grupos de funciones y variables que encapsulan diferente funciones del sistema. Todos los resultados de los diferentes métodos en el API son archivos XML.. A continuación se presentan algunos API interesantes para la comunicación entre las aplicaciones: • uos.ui – funciones de Interfaz grafica • uos data – funciones de acceso a estructuras de datos • uos.system – funciones del sistema • uos.control – control del MVC (modelo vista controlador) • uos. message – enviar mensajes de eventos • uos.model – modelo MVC de objeto, listas, arboles, etc. • uos.util – miscelánea API para permisos - manejan los permisos a las estructuras de datos. • get_share_data – retorna una lista de las estructuras a las cuales un usuario puede acceder en el nameSpace de otro usuario. Funciona por aplicación..

(36) 36. API para servicios web - proveen acceso a recursos y servicios web • url_xml - Obtiene un archivo xml desde un sitio web • url_html - Obtiene un archivo html de un sitio web • url_get_fs - Obtiene un archivo y lo guarda en el YouFS. Permite establecer el login el password para conectarse y, en el caso del archivo, un path para grabar y la opción de overwrite.. API para contenido RSS – Acceso a contenidos RSS para subscriptores • uos.api.rss.getFeed(feedUrl, callback, options) - Obtiene un XML desde el URL y lo pasa como un árbol CML DOM. Dojo Es un conjunto de librerías JavaScrip de código abierto para manipular Ajax y eventos. Este toolkit permite emular herencia de objetos, hacer peticiones http asincrónicas e invocar métodos estáticos (también llamados métodos compartidos, de clase o bound methods) los cuales están asociados a una clase en particular.. Los eventos realizados en la interfaz grafica, como hacer click o dejar de marcar un área, son manejados por medio del Dojo event model, el cual permite a las aplicaciones suscribirse para que sean. informadas cuando un evento es. disparado. Los diferentes eventos están divididos en los siguientes grupos:.

(37) 37. •. aplicaciones - uos.system.eventsList.APP. Para los eventos relacionados con las aplicaciones, se crea un objeto llamado eventOb j que contiene el id del proceso, el id de la aplicación, los parámetros pasados a la aplicación y la instancia. Ejem: Close, Open, Reload, Loading. •. contactos - uos.system.eventsList.BUDDY. En el caso de los eventos relacionados con los contactos el. objeto. eventOb j contiene el nombre del contacto adicionado/borrado o una lista con los usuario que se han conectado/desconectado. Si el evento a manejar no es un Add/remove del contacto, mas se desea saber cuándo se conecta o se desconecta login/logoff, el objeto eventObj.users contiene un arreglo con la lista de los usuarios. Ejem: Add, Login, Remove, etc. •. wigets - uos.ui.eventsList.WIDGET. Algunos de los atributos usados en los widgets son el id del proceso, elemento, nombre, status, nodo. Ejem: Open, Show, Max, Close, etc.. Socket Sever APIs En YouOs los sockets son usados para leer y escribir mensajes. A diferencia de otros sistemas, los mensajes no se trasmiten punto a punto, sino que cualquier usuario con permiso de escritura o lectura, puede leer y escribir en los sockets, funcionando como un sistema de muro de mensajes temporal..

(38) 38. •. socket_list – lista de los sockets activos y públicos que se pueden leer. •. socket_read – leer mensajes. •. socket_write – escribir mensajes. Algunos parámetros para el manejo de este api son el id de la aplicación, el id del proceso, el nombre del usuario y un arreglo con los mensajes.. 2.2.3. G.ho.st El Glob al Hosted Operating System es un computador virtual creado en conjunto por un grupo de palestinos e israelís, el cual ofrece un cliente web desktop basado en tecnologías Linux desarrollado en Flash con el cual se pretende aprovechar la tendencia de los usuarios a trabajar online. Su enfoque no está dirigido a crear un sistema operativo web, sino a ofrecer una nueva opción a usuarios que no posean computadores propios, personas que por restricciones de seguridad no puedan instalar archivos en el computador de oficina y países en desarrollo donde el acceso a computadores o conexión de Internet es limitado. Los usuarios crean su escritorio en un centro de datos al cual se pueden conectar a través de un browser desde cualquier parte del mundo y donde cuentan con la posibilidad de usar configuraciones personales, escoger sus propias aplicaciones, guardar archivos etc. sin la necesidad de preocuparse por la instalación, actualización de software, seguridad, privacidad y respaldo de información.. Su sistema de archivos se apoya en el servicio web Amazon S3 (Simple Storage Service) para aplicaciones web, el cual se encarga de manera independiente de los mecanismos de localización, autenticación, propiedades de los archivos y.

(39) 39. privilegios de acceso. El protocolo predeterminado para las descargas es el http, pero también se ofrece una interfaz BitTorrent™ para distribución a gran escala [15].. Aunque por el momento no cuenta con un API, ni con herramientas de desarrollo, las cuales según su creador serán publicadas en un futuro , G.ho.st permite usar un gran tipo de aplicaciones web creadas por terceros como Zoho, Google Docs, ThinkFree. Youtube, flickr y adicionar aplicaciones propias por medio de URL. Para las aplicaciones provenientes de terceros, G.ho.st maneja un sistema de subscripciones con las cuales se pueden administrar las cuentas y además permiten conectarse automáticamente pues recuerda el nombre y password. Arquitectura. En busca de obtener lo mejor del sistema operativo web, como lo mejor de las diferentes aplicaciones web encontradas en internet, G.ho.st usa un modelo de arquitectura en donde por medio del código cliente ejecutado en el browser del usuario es posible acceder a la información de los usuarios guardada en los dispositivos o servicios web de almacenamiento de datos y realizar la comunicación con los diferentes servicios web que procesaran dicha información.. La ejecución de las aplicaciones se realiza en el browser del cliente el cual se encarga de subir el client code al cache para que no sea descargado cada vez que se accede a la aplicación. Los datos son manejados por el servicio de almacenamiento de Amazon el cual se encarga de la persistencia..

(40) 40. Detalle de la arquitectura de G.ho.st.[ ]. 3. Análisis Aunque es posible encontrar un sinfín de referencias a sistemas operativos web en múltiples blogs y páginas de tecnología en internet, esto se debe, en la mayoría de los casos, a la errónea interpretación de su significado, en parte derivado de la gran popularidad de un nuevo término que es ampliamente aceptado pero que presenta una definición difusa e inexacta. La mayoría de opciones presentes en esta gran ola de proyectos que han nacido tras el sueño de los sistemas operativos web y que se encuentran disponibles actualmente para los usuarios, son etiquetadas incorrectamente como Web OS pero son simplemente escritorios web que se apoyan en los browsers para integrar aplicaciones simulando sistemas operativos virtuales..

(41) 41. Por otra parte, los sistemas operativos web basados en meta computación son proyectos realizados a manera de investigación por diferentes grupos o universidades, y que, por la naturaleza de internet, sumado a condiciones de mercado, no se han popularizado ni se encuentran disponibles para los usuarios. Estos. proyectos de Web-OS se apoyan en la computación distribuida; su. arquitectura ofrece servicios de almacenamiento de información distribuida y manejo de recursos de procesamiento distribuidos, conceptos también presentes en los Grids. Estos dos tipos de sistemas cuentan con entusiastas, los cuales presentan a los sistemas operativos web y WebTops como la nueva solución a la necesidad de ubicuidad y simplicidad que buscan empresas y usuario, tanto como detractores, los cuales cuestionan su necesidad y viabilidad criticando principalmente su excesiva dependencia en la red y problemas de seguridad tanto en acceso como almacenamiento debido a participación de terceros en su manejo. Tanto en los WebTops como en los WebOs, son los sistemas operativos usuales instalados en las máquinas como Windows, Mac OS o Linux los que se encargan de manejar el hardware.. A continuación se presenta una comparación entre los servicios que prestan sistemas operativos Web y WebTops a desarrolladores y usuarios.. 3.1. Comparación En general tanto los Web-Os como los Web tops comparten un conjunto de servicios necesarios para emular un sistema operativo..

(42) 42. • Sistema manejador de archivos. Debe controlar la creación, modificación, borrado y acceso de archivos manteniendo la coherencia del sistema. Estos archivos pueden ser datos del usuario, o archivos necesarios para el funcionamiento del sistema y aplicaciones. Es importante notar que el manejador de archivos debe controlar tanto los archivos del sistema base, como archivos ubicados en servidores externos, lo cual implica tener el registro de la ubicación física de los archivos en los diferentes servidores.. Web-OS: Se encarga de administrar los recursos disponibles en los repositorios locales y externos. El manejo del hardware de la máquina y las funciones de bajo nivel se delegan a la plataforma del sistema, mientras que el WebOs se encarga de actualizar la información de los archivos almacenados en los diferentes nodos para mantener la coherencia del sistema. Además administra el cache de los nodos, lo cual facilita el acceso a los archivos usados frecuentemente por los usuarios más cercanos. WebTop: En estos sistemas virtuales el manejador de archivos se encarga de almacenar la información en el servidor del sistema base o en servidores externos. Dependiendo de la arquitectura del WebTop, los archivos son representados virtualmente de diferentes formas y no corresponden directamente al formato de archivos manejado en el sistema nativo. En la mayoría de los casos se crea un archivo adicional que contiene información como el nombre del propietario, la aplicación que lo creó, el nombre original del archivo y la fecha de creación. En eyeOs los archivos están conformados por dos partes abstractas para incrementar la seguridad y que permiten diferenciar los archivos del usuario de los archivos del root. En youOS los datos son almacenados en tablas de hash, mientras que en G.ho.st el manejo de datos está a cargo de terceros.

(43) 43. que guardan la información en servidores externos al sistema como el servicio de Amazon S3. Desarrolladores: El API debe proveer funciones que permitan al desarrollador acceder, modificar y guardar los archivos necesarios tanto para las aplicaciones como para los usuarios de estas. De esta manera se enmascaran las funciones del lenguaje motor (PHP, Java Script, AJAX) y se abstrae el manejo de archivos a un solo nivel. Usuario: Se debe recordar que aunque en los WebTops las aplicaciones realicen operaciones en la máquina del usuario mediante el browser, los archivos son almacenados en los servidores remotos del sistema, de igual manera los webOS pueden guardar información en el repositorio local que debe ser replicada en nodos externos. Sin embargo, los procesos ejecutados por el manejador de archivos al interactuar con las aplicaciones deben ser realizados de manera trasparente para que el usuario sienta que se trata de una aplicación estándar que funciona de manera local. • Seguridad, Autenticación y Autorización de Usuarios. Dado que estos sistemas trabajan sobre la web, son altamente susceptibles a ataques mal intencionados, por lo cual es de vital importancia proveer un alto grado de seguridad en el acceso y manejo de datos. Las plataformas en los servidores web son las encargadas de ofrecer la seguridad sobre la red mediante sistemas de firewall, detección de intrusos, etc. WebOS: Es necesario limitar el acceso a archivos y demás recursos del sistema, ya sean locales o externos, de manera que sea posible crear listas de control de acceso en donde se manejen diferentes niveles de prioridad sobre procesos y otros recursos usados por las aplicaciones. Para esto.

(44) 44. debe ser posible autenticar la identificación de cada uno de los usuarios por medio de una llave única, la cual será validada por uno o más servidores, siempre en el contexto de grupos de dominio seguro.. WebTop: El sistema que implementa el WebTop deberá encargarse de la seguridad referente al workspace y las aplicaciones mediante sistemas de autenticación de usuario. En general basta con suministrar un nombre de usuario y contraseña para restringir el acceso, mientras que el sistema web se encarga de la seguridad de archivos e integridad de las aplicaciones por medio del kernel.. Desarrolladores: Se deben proveer un conjunto de servicios y librearías que permitan manejar de forma sencilla y clara el acceso a archivos y demás herramientas del sistema por parte de las aplicaciones que creen los desarrolladores. Esto se realiza mediante el API, el cual limita funciones existentes de los lenguajes que puedan afectar la confiabilidad del sistema. Usuarios: Deben tener control total sobre sus archivos de manera que sea seguro y sencillo compartir información, otorgando permisos a individuos o grupos, de manera que cada usuario solo tenga acceso a sus propios archivos y aquellos sobre los cuales le han otorgado permisos. Esto es de vital importancia para el funcionamiento de ambientes. de trabajo. colaborativo. • Desarrollo de aplicaciones WebOs: Estos sistemas deben ofrecer servicios web que soporten la creación y desarrollo de nuevas aplicaciones. La publicación y el manejo de los recursos distribuidos se deben realizar mediante protocolos que faciliten la comunicación entre nodos de cualquier sistema..

(45) 45. Webtops: ofrecen la posibilidad de incorporar algunas cualidades de la web, como ser abierta y descentralizada. Es posible, gracias al código abierto, modificar los diferentes servicios o crear nuevos webtops. De igual manera, gracias a los API que ofrecen cada uno de los frameworks, los usuarios ya no están atados a escoger entre uno o dos programas para trabajar en sus documentos, como ocurría en Windows/MacOS/Linux, sino que pueden escoger entre las diferentes aplicaciones web encontradas en la web, o modificar o crear una nueva que se acomode a sus necesidades. Desarrollador: Los API, sumados a la arquitectura de los servicios web, proveen simplicidad para los desarrolladores que creen las aplicaciones, de esta manera, usuarios que solo cuenten con conocimientos básicos en lenguajes como php o java script pueden crear aplicaciones, utilizando como base el marco dado por la arquitectura y los servicios ofrecidos por los escritorios web. Usuario: El desarrollo de aplicaciones en sistemas distribuidos puede estar fuera del alcance de usuarios ajenos a la computación. Sin embargo herramientas para clonar o extender aplicaciones como las encontradas en youOS y eyeOS, permiten realizar pequeñas modificaciones de manera sencilla basándose en los API a servicios ya implementados. Aunque su alcance puede ser limitado, debido a que actualmente las aplicaciones creadas en un entorno no son compatibles con otros sistemas, cualquier herramienta que permita personalizar aplicaciones beneficia finalmente al usuario..

(46) 46. • Manejo de memoria, procesos y demás recursos WebOS: Estos sistemas deben preocuparse tanto del manejo de los recursos locales, como de encontrar, localizar y administrar recursos externos de procesamiento y almacenamiento. Las decisiones en cuando al uso de los recursos se realiza en tiempo real, teniendo en cuenta factores como el estado de la red, la carda de los diferentes servidores, el tiempo de respuesta, los privilegios del usuario o la aplicación etc. WebTop: Los proceso son ejecutados con privilegios limitados previniendo así que interfieran en operaciones de procesos de otras aplicaciones o máquinas virtuales. También debe establecer la cantidad de memoria y CPU que un proceso puede utilizar, dependiendo de la aplicación, su prioridad y el nivel del usuario. Desarrolladores: Estas funciones son realizadas por el kernel del sistema, por lo cual los desarrolladores solo deberán preocuparse de ellas cuando deseen modificar reglas o protocolos de comunicación entre los sistemas. El manejo de memoria, procesos y recursos del sistema base u otros servidores debe ser completamente ajeno a las aplicaciones.. Usuarios: Las decisiones en cuando al uso de los recursos internos o externos del sistema debe ser completamente transparentes para el usuario, el cual solo interactúa con las aplicaciones. • Comunicación con aplicaciones y sistemas externos. WebOS: Se debe contar con protocolos de comunicación, encargados de encontrar y localizar aplicaciones existentes en otros servidores, al igual.

(47) 47. que protocolos que permitan crear y publicar servicios por parte de los diferentes nodos. WebTop: Los sistemas operativos web y protocolos web de código abierto benefician a nuevos sistemas de negocio autosuficientes los cuales se buscan sistemas operativos que sean libres de manera que se puedan modificar para ajustarlo a las necesidades propias de la empresa.. Desarrolladores: En este punto es importante crear estándares que definan las características de la información requerida para la comunicación entre aplicaciones. Algunos de los datos más relevantes son el nombre del usuario que la ejecuta, el sistema base, los datos que debe procesar la aplicación, los procesos relacionados etc. La función del Desarrollador será proveer dicha información, mientras que es el kernel quien se encarga de la comunicación entre nodos o aplicaciones. Muchos servicios web, como los servicio de almacenamiento de Amazon S3 y netbox, ofrecen API que permiten al desarrollador comunicarse de manera directa con las aplicaciones sin necesidad de utilizar funciones de bajo nivel.. Usuarios: Para el usuario todos los procesos de comunicación entre nodos o aplicaciones deben ser invisibles. En eyeOS y youOS las aplicaciones externas son embebidas en los widgets ofrecidos por el sistema, de tal forma que el usuario siempre tiene la sensación de estar trabajando en el mismo framework..

(48) 48. 3.2. Funciones ofrecidas por los Web-OS y WebTops. Aunque el concepto inicial de estos sistemas era solapar los sistemas operativos comunes, los desarrolladores influenciados por las ideas de la web 2.0 han creado nuevos servicios que ofrecen funcionalidades que no están presentes en programas no distribuidos pues son propias del trabajo en la red. Entre estas se encuentran: • Colaboración de trabajo entre usuarios: Al igual que los recursos, los usuarios están distribuidos y acceden a los documentos desde cualquier parte o a cualquier hora; esto permite descentralizar los grupos de trabajo y crear proyectos en los cuales trabajan personas de diferentes partes del mundo. Las aplicaciones se encargan de ofrecer herramientas para el control de cambios, validación de permisos sobre archivos, replicar información, coherencia de datos, etc. • Redes Sociales, comunidades virtuales: La interrelación de los contactos de un usuario en la red genera diferentes mecánicas de flujo conectivo, las cuales son aprovechadas por nuevas aplicaciones para crear comunidades de gran importancia social y económica. En estos grupos la suma de diferentes opiniones genera estados de credibilidad y confiabilidad de gran importancia en cuanto a información o calidad en productos. Portales como facebook se perfilan como sistemas operativos sociales en donde la importancia del individuo prima sobre la información. [21][22] Las aplicaciones ofrecen herramientas de búsqueda, administración y monitoreo de contactos para los usuarios, como bases de datos y servicios de minería de datos a empresas..

(49) 49. • Publicación, distribución de información. Por medio de servicios de publicación de contenido o noticias RSS, los usuarios pueden publicar videos, imágenes, música, etc. Al igual que mantenerse al tanto de sus temas de interés configurando herramientas que trabajan de manera automática.. Cada cliente tiene necesidades y motivaciones únicas en el momento de escoger un WebOs o un WebTops. Por ejemplo para un programador será de vital importancia contar con un API y aplicaciones de desarrollo que le permitan crear y administrar sus propias aplicaciones, o tener a disposición el código abierto para modificar el sistema. Para un Usuario con conocimientos tecnológicos limitados, bastará con aplicaciones de fácil manejo que le permitan realizar tareas cotidianas como leer noticias, revisar correo, etc. A continuación se presenta una tabla con el fin de condensar las aplicaciones presentes en cada uno de los sistemas: Tabla 1: Oferta de Aplicaciones en Web-OS y WebTops.. Sistemas operativ os web. Desarrollador. WebOs proyect. WOS proyect. Universidad. Wos TM. Berkley california. Escritorios Web YouOs. G.ho.st. eyeOs. EyeOS. WebShaka. g.ho.st ink. Team. ink. Ajax. Motor. PHP. +. Ajax + Java. Flash. Script. Si. Si. No. No. No. Interfaz grafica. Si. Si. Mac. Os/2. Windows. Open API. No. No. Si. Si. No. Open-Source. No. No. Si. No. No. Computación distribuida.

(50) 50. Integrated apps. Si. Si. Si. Si. No. Cliente email. Si. Si. Si. Si. Si. Mensajeria. posible. posible. Si. Si. Si. Si. Si. Si. Si. No. Mini browser. posible. posible. Si. Si. Si. Almacenamiento de. Si. Si. Si. Si. Si. Compartir Archiv os. Si. Si. Si. Si. Si. Rss Feed. posible. posible. Si. Si. Si. Soporte Widgets. posible. posible. Si. Si. No. Herramienta de. No. No. Si. Si. No. instantanea Herramientas de colaboracion. archiv os. desarrollo. Interacción de las plataformas con los WebOS y WebTops. En ambos tipos de sistemas web, plataformas como Linux o Windows, se encargan de controlar dispositivos como el mouse, el teclado, pantalla/video. Los WebOS interactúan directamente con el middleware y los sistemas operativo presente en la máquina. Los WebTops y las aplicaciones web, interactúan con el browser mediante el kernel del sistema virtual y este con el sistema operativo nativo.. En los WebTops la comunicación necesaria con la máquina se realiza por medio del browser el cual es manejado por el sistema nativo. Ni el kernel ni las aplicaciones interactúan con el sistema operativo nativo directamente..

(51) 51. 4. Prospectiva Los sistemas operativos y escritorios basados en la Web representan los deseos de usuarios de internet que de una u otra manera han sido parte su evolución y han visto nacer nuevas formas de ver la red. Mientras que los sistemas operativos web buscan maximizar la capacidad de trabajo en la red, administrando recursos de hardware y software por medio de sistemas distribuidos, estos proyectos, al ser cerrados, no tienen ninguna interacción con la comunidad de usuarios.. Los webtops, por otra parte, se apoyan en los sistemas operativos nativos y sus browsers para aprovechar las aplicaciones desarrolladas mediante tecnologías web ya existentes. Los escritorios web ofrecen facilidad de uso y desarrollo, creando comunidades que crecen día por día, suministrando un gran número de aplicaciones sencillas que cumplen con las necesidades diarias de los usuarios. Protocolos de comunicación entre webTops. A pesar del gran número de aplicaciones disponibles en la web, estas trabajan de forma separada al estar diseminadas en diferentes sistemas, por lo cual corren el riesgo de formar islas o grupos de servicios aislados similares a los presentes en los sistemas operativos locales. El primer paso, necesario para que los diferentes escritorios web de código abierto puedan colaborar entre sí, es crear un estándar a nivel del WebTop, que permita la interoperabilidad entre aplicaciones..

(52) 52. Los estándares permitirían a los webTops comunicarse entre sí para proveer información acerca de las propiedades,. configuración, permisos y archivos. necesarios para cada aplicación. La información sobre los usuarios y sus archivos personales, de serian privados y exclusivos de cada webtop. De esta forma se garantiza la privacidad y seguridad del sistema. Estos mecanismos de comunicación estarían distribuidos en servidores de los diferentes webtops, para evitar cuellos de botella y el uso de sistemas centralizados manejados por terceros, que comprometan la seguridad e independencia del webtop.. El aporte para el usuario por parte de estos protocolos, es la posibilidad de desligar las aplicaciones de los sistemas en donde fueron creadas, lo cual otorgaría libertad para escoger un conjunto de aplicaciones que más se ajuste a sus necesidades, deshaciendo las ataduras actuales. A nivel de aplicación, es necesario crear servicios para administrar listas de permisos que restrinjan el acceso a los archivos de un usuario, por parte de aplicaciones externas y usuarios provenientes de otros WebTops. Cabe recordar que cada uno de los webTops maneja de manera diferente su sistema de archivos virtual; así se hace necesario asegurar la compatibilidad entre los archivos en los diferentes sistemas, por medio de un estándar que garantice el buen funcionamiento de las aplicaciones.. Toolkits para servicios de almacenamiento externos Un enfoque alternativo para afrontar las diferencias entre los sistemas virtuales de archivos, es recurrir a servicios de almacenamiento externo como Amazon o netbox. Con el manejo externo del sistema de archivos se aprovecha la Web como.

(53) 53. tal, pues se obtienen beneficios como la distribución y replicación de archivos en diferentes servidores, brindando escalabilidad, alta disponibilidad, baja latencia y facilitando el trabajo del sistema virtual al ahorrarle las complicaciones en el manejo y almacenamiento de información.. Estos servicios proveen un Api que permite a las aplicaciones acceder a los archivos mediante llaves únicas propias a cada usuario. Las aplicaciones de cada uno de los webTops son responsables de abstraer los archivos de su sistema virtual y transformarlos al sistema de archivos usado por el servidor de almacenamiento externo.. Dado que la llave de identificación de acceso es única para cada tupla usuarioaplicación, la arquitectura de estos sistemas no permite dos aplicaciones trabajen en el mismo repositorio sin establecer permisos de acceso.. En el servicio de Amazon S3 (Simple Storage Service) los archivos son representados por un objeto hasta de 5 gigabytes y su correspondiente meta data. El acceso a la información se puede hacer por interfaz SOAP o REST, por Http Get o el protocolo Bit torrent. Herramientas de Sincronización. La comunidad de desarrolladores de EyeOS se ha propuesto desarrollar una aplicación externa al sistema la cual se ejecuta sobre el sistema operativo nativo, que busca disminuir el grado de dependencia de este Webtop con la red. Con esta aplicación denominada eyeSync, los usuarios pueden mantener sincronizado su repositorio local con el repositorio Web, lo cual les permite trabajar con él en sus documentos sin acceso a internet..

Referencias

Documento similar

Al hacer uso de un modelo de seguridad en las aplicaciones Web desarrolladas por un tercero se pueden disminuir las vulnerabilidades de los sistemas, obteniendo como resultado

Petición de decisión prejudicial — Cour constitutionnelle (Bélgica) — Validez del artículo 5, apartado 2, de la Directiva 2004/113/CE del Consejo, de 13 de diciembre de 2004, por

- Un curso formativo para los técnicos de laboratorio de la UPV sobre la prevención de los residuos en los laboratorios, que se llevará a cabo los días 23, 24, 25, 26 y 27

El nuevo Decreto reforzaba el poder militar al asumir el Comandante General del Reino Tserclaes de Tilly todos los poderes –militar, político, económico y gubernativo–; ampliaba

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

edición y actualización de los diccionarios de la Universidad de Oxford, consideró el término podcast como la palabra del año 2005 (“The Word of the Year”). El boom del podcasting

Esto significa que algunos distintivos de seguridad estructural garantizan unas prácticas legales de protección de la privacidad del cliente y ofrecen evaluaciones sobre el