Web-Os: Sistemas Operativos Web - Uniandes

70
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

Transcript of Web-Os: Sistemas Operativos Web - Uniandes

Page 1: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 2: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 3: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 4: Web-Os: Sistemas Operativos Web - Uniandes

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. Ajax 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. Anexos-Aplicaciones 63

Page 5: Web-Os: Sistemas Operativos Web - Uniandes

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,

voz, 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.

Page 6: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 7: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 8: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 9: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 10: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 11: Web-Os: Sistemas Operativos Web - Uniandes

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

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

Page 12: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 13: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 14: Web-Os: Sistemas Operativos Web - Uniandes

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)

Page 15: Web-Os: Sistemas Operativos Web - Uniandes

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

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

Page 16: Web-Os: Sistemas Operativos Web - Uniandes

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]

Page 17: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 18: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 19: Web-Os: Sistemas Operativos Web - Uniandes

19

Puede ser usado por JavaScript y otros web browser 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 ActiveXObject

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

Page 20: Web-Os: Sistemas Operativos Web - Uniandes

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. Webtops (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 auto-

configuración donde los framework se pueda auto modificar en tiempo real para

ajustarse a los diferentes requerimientos de las aplicaciones.[14]

Page 21: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 22: Web-Os: Sistemas Operativos Web - Uniandes

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 browser. [5]

Así, un Applet específico, que contiene información acerca de la localización de

los proveedores, es cargado por el broswer 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.

Page 23: Web-Os: Sistemas Operativos Web - Uniandes

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 global 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

Page 24: Web-Os: Sistemas Operativos Web - Uniandes

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]

Page 25: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 26: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 27: Web-Os: Sistemas Operativos Web - Uniandes

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 Java 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

Page 28: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 29: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 30: Web-Os: Sistemas Operativos Web - Uniandes

30

administrador de procesos (PROC), el manejador de respuestas XML (eyeX), 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

Page 31: Web-Os: Sistemas Operativos Web - Uniandes

31

MMap y eyeX

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]

Page 32: Web-Os: Sistemas Operativos Web - Uniandes

32

rocesos

ada vez que una aplicación se ejecuta, se crea una entrada en un arreglo, que

ROC maneja los procesos, provee métodos para lanzar, terminar, listar y define

xtern

ermite descargar archivos desde el servidor y crear direcciones URL accesibles

ibrerías

as librerías son un conjunto de funciones que permiten facilitar el trabajo al

ofrece librerías como eyeXML la cual es

P

C

contiene información como el nombre y ID del proceso, checksum , el usuario

dueño del proceso y la hora en que fue lanzado.

P

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.

E

P

desde el exterior para con lo cual es posible alojar imágenes, archivos CSS o

archivos Java Script L L

momento de desarrollar aplicaciones.

Para el manejo de archivos eyeOs

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.

Page 33: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 34: Web-Os: Sistemas Operativos Web - Uniandes

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 multi-

usuario. El permiso de acceso puede ser de dos niveles: permiso de usuario o

permiso de acceso público.

Page 35: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 36: Web-Os: Sistemas Operativos Web - Uniandes

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:

Page 37: Web-Os: Sistemas Operativos Web - Uniandes

37

• aplicaciones - uos.system.eventsList.APP.

Para los eventos relacionados con las aplicaciones, se crea un objeto

llamado eventObj 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

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

Page 38: Web-Os: Sistemas Operativos Web - Uniandes

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 Global 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

Page 39: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 40: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 41: Web-Os: Sistemas Operativos Web - Uniandes

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 Webtops comparten un conjunto de

servicios necesarios para emular un sistema operativo.

Page 42: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 43: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 44: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 45: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 46: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 47: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 48: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 49: Web-Os: Sistemas Operativos Web - Uniandes

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 Escritorios Web

WebOs proyect WOS proyect EyeOS YouOs G.ho.st Desarrollador Universidad

Berkley california

Wos TM eyeOs

Team

WebShaka

ink

g.ho.st ink

Motor Ajax +

PHP

Ajax + Java

Script

Flash

Computación

distribuida

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

Page 50: Web-Os: Sistemas Operativos Web - Uniandes

50

Integrated apps Si Si Si Si No

Cliente email Si Si Si Si Si

Mensajeria instantanea

posible posible Si Si Si

Herramientas de colaboracion

Si Si Si Si No

Mini browser posible posible Si Si Si

Almacenamiento de

archiv os

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 desarrollo

No No Si Si No

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.

Page 51: Web-Os: Sistemas Operativos Web - Uniandes

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.

Page 52: Web-Os: Sistemas Operativos Web - Uniandes

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

Page 53: Web-Os: Sistemas Operativos Web - Uniandes

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 usuario-

aplicació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.

Page 54: Web-Os: Sistemas Operativos Web - Uniandes

54

Aunque esta aplicación trabaja solo a nivel de archivos, su funcionalidad podría

ser extendida para sincronizar archivos en folder locales con múltiples repositorios

en diferentes WebTops.De esta manera los usuarios podrían trabajar con

diferentes aplicaciones en un mismo archivo.

Estándares para el manejo de web widgets.

Los widgets son porciones de código portable que pueden ser ejecutados e

instalados dentro de cualquier página web HTML sin la necesidad de ser

compilados. Todos los Webtops se basan en ellos para el manejo de ventanas que

crean la interfaz grafica para el escritorio.

En la actualidad cada uno de los sistemas tiene librerías y API propios para el

manejo de sus Widget, lo que hace necesario crear plugins para adaptar

aplicaciones externas.

Dado que las propiedades de los widgets, que definen su posición y tamaño son

específicas y limitadas, sería conveniente crear librerías comunes a todos los

WebTops que faciliten su manejo y simplifiquen el trabajo al integrar aplicaciones

en los diferentes escritorios.

4. Conclusiones

La masificación de internet, el gran crecimiento en la calidad del servicio ofrecido

por proveedores de internet, reflejado en el incremento en ancho de banda y

facilidad de acceso, son factores que hacen posible la inmediatez al momento de

procesar tareas sencillas en cualquiera de los diferentes browsers.

El objetivo detrás de los sistemas Web es maximizar la capacidad del usuario al

trabajar en la red al tiempo que se preserva su autonomía. Con tal finalidad se ha

Page 55: Web-Os: Sistemas Operativos Web - Uniandes

55

planteado el uso de sistemas distribuidos los cuales sirvan como plataforma de

comunicación y administración sobre conjuntos de servicios web.

A pesar de los grandes avances en tecnologías web, el debate actual acerca de la

viabilidad de futuros webOS es inevitable, pues las arquitecturas de los sistemas

operativos y el middleware tradicionales no proveen herramientas que permitan el

manejo de recursos web de manera eficiente [23]. La gran ola de WebTops y su

creciente popularidad nacen como respuesta a las limitaciones en los sistemas

operativos y a la dificultad de crear sistemas que soporten objetos web

distribuidos.

Objetos distribuidos Web

Sin embargo, los escritorios web están actualmente limitados al procesamiento e

Intercambio de documentos por medio de servidores centralizados. Esto excluye

un gran número de aplicaciones necesarias en entornos complejos y el manejo de

recursos distribuidos para lo cual los objetos distribuidos web son fundamentales.

La importancia de los objetos distribuidos web radica en la necesidad de replicar

información en diferentes nodos, de esta forma los archivos son copiados y están

disponible en los nodos más cercanos al usuario incrementando la rapidez de

trasmisión al no ser necesario solicitar la información repetidamente a nodos

distantes.

Algunos sistemas como G.ho.st tratan de afrontar estos problemas usando

servicios ofrecidos por terceros. En este caso especifico, la plataforma de G.ho.st

y la mayoría de sus aplicaciones funcionan en un servidor remoto donde la

información del sistema esta almacenada de forma centralizada, mientras que el

servicio de almacenamiento de datos se abstrae del sistema principal y es

proveído por Amazon S3 (Simple Storage Service), el cual funciona de manera

Page 56: Web-Os: Sistemas Operativos Web - Uniandes

56

distribuida apoyándose en diferentes servidores en donde se replica la

información. Aunque este servicio brinda seguridad y consistencia, la información

debe pasar siempre por el servidor de G.ho.st para ser procesada por las

aplicaciones de manera que el efecto cuello de botella no es solucionado.

Funciones de un sistema WebOS implementadas en los WebTops

A pesar de las limitaciones ofrecidas por los entornos centralizados, los webtops

ofrecen ciertas cualidades atractivas para los usuarios.

• Ser heterogéneo, permitiendo el uso de diferentes tecnologías de forma que

sistemas o aplicaciones en diferentes lenguajes sean compatibles.

• Adaptativo, los sistemas de código abierto permiten a las empresas y

usuarios reconfigurar aplicaciones para ajustarse a las diferentes

necesidades y modelos de negocio.

• Servicios para aplicaciones y usuarios.

o Servicio Manejador de archivos, que permita administrar, compartir y

almacenar información de manera transparente en repositorios

locales y remotos.

o Servicio de seguridad, que garantice disponibilidad de los diferentes

recursos y servicios, integridad en la información y permita validar el

acceso únicamente de usuarios registrados.

o Servicio de sincronización, que permita a los usuarios trabajar en las

aplicaciones de manera online y offline, sincronizando la información

del sistema con la del nodo especifico de manera transparente al

recuperar el acceso a la red.

Page 57: Web-Os: Sistemas Operativos Web - Uniandes

57

Diferencias fundamentales entre un WebOS y WebTop

Entre las características que debe presentar un sistema operativo web de manera

que se aprovechen los recursos de la red tanto en hardware como software, y las

cuales no están presentes en los sistemas WebTop, se encuentran:

• Estar Distribuido y versionado, de forma que las diferentes versiones del

sistema o aplicaciones distribuidos en la red sean compatibles y puedan

trabajar conjuntamente.

• Dinámico, manteniendo actualizada la información de recursos disponibles

en la red en los diferentes nodos y replicando datos y aplicaciones según

sea necesario.

• Proveer soporte para diferentes recursos, definiendo protocolos que

suministren reglas globales para la comunicación entre aplicaciones, y el

manejo de usuarios, archivos y procesos requeridos por estas.

• Servicios a aplicaciones y usuarios.

o Un servicio de nombres/directorios para la identificación, localización

y búsqueda de los recursos distribuido en la red.

o Servicio para administrar procesos, que se encargue de los

diferentes procesos relacionados a las aplicaciones y del balance de

cargas entre los recursos del sistema.

o Servicio de comunicación, que permita interacción entre las

diferentes versiones del sistema y acceso a las aplicaciones desde

otros sistemas.

Escépticos y optimistas

Los sistemas operativos web intentan complementar los sistemas operativos

actuales y reemplazar las viejas aplicaciones las cuales no están diseñadas para

el trabajo en línea. Por esto es inevitable comparar estos dos tipos de

Page 58: Web-Os: Sistemas Operativos Web - Uniandes

58

aplicaciones, analizando los pros y los contras de trabajar con aplicaciones

basadas en la web.

Pros

• Disponibilidad y Ubicuidad: El usuario puede acceder a la información en

cualquier momento y desde cualquier lugar por medio de una conexión a

internet. Las redes inalámbricas han popularizado los dispositivos móviles

como Palms, celulares y Pocket Pcs, muchos de los cuales cuentan con

sistemas operativos y browsers que permiten acceder a servicios web.

• Libre de mantenimiento: Los usuarios no deben preocuparse por realizar

instalaciones ni aplicar parches al sistema web o sus aplicaciones; tareas

realizadas por administradores. Los WebOS al ser sistemas distribuidos y

versionados permite la interacción entre sistemas y aplicaciones con

diferentes versiones.

• Heterogéneos: Compatibilidad entre sistemas operativos web y aplicaciones

con diferentes tecnologías de desarrollo (Ajax, php, JavaScript, etc). Los

WebTops corren sobre el browser de manera que funcionan en cualquier

plataforma utilizada en el sistema operativo nativo (Windows, Linux, etc).

• Actividades cotidianas: Ofrecen múltiples aplicaciones que permiten

desempeñar tareas simples de uso diario, como correo, chats, noticias,

manejo de documentos, etc.

• Fácil Desarrollo: Las aplicaciones web se puede modificar, extender y

adaptar según los requerimientos del usuario. En algunos WebTops el

sistema ofrece aplicaciones y API desarrollados específicamente con tal fin.

• Backup: Todos los webOS y algunos webtops replican la información

automáticamente de manera trasparente para el usuario. Estos archivos de

backup son útiles para recuperar la información o mantener la disponibilidad

de la misma ante la falla de un servidor del sistema.

Page 59: Web-Os: Sistemas Operativos Web - Uniandes

59

• Economía en infraestructura: Bajo costo en el hardware necesario para la

máquina del usuario. Esto se debe a la poca capacidad de procesamiento

necesaria para ejecutar las aplicaciones Web.

Contras

• Almacenamiento a cargo de terceros: La información personal de carácter

susceptible o de gran valor para el funcionamiento del negocio, es

manejada por terceros, aspecto que incomoda a muchos usuarios

preocupados por posible invasión a la privacidad.

• El almacenamiento es finito: se dificulta replicar grandes cantidades de

información en los nodos, aspecto necesario para el funcionamiento de

algunas aplicaciones en sistemas distribuidos.

• Downtime, dependencia de internet: La mayoría de WebTops funcionan

únicamente con acceso permanente a la web. Cualquier fallo o congestión

en la red puede congelar el sistema.

• Aplicaciones limitadas al manejo de documentos: Los sistemas web

actuales, no ofrece aplicaciones en donde el requerimiento de

procesamiento sea alto, video, imágenes y cálculos complejos. Estos

archivos de gran tamaño pueden no ser funcionales por limitaciones en

trasmisión de datos.

• Es necesario crear escritorios específicos para aplicaciones específicas:

Los webtops no están preparados para aplicaciones específicas en campos

como la medicina, la música, o la economía, que requieren entornos

diferentes a los ofrecidos por los escritorios comunes.

El futuro de los sistemas operativos web es promisorio; tendencias como las redes

sociales, servicios web 2.0, la búsqueda de aplicaciones por parte de los usuarios

las cuales no requieran sistemas de hardware de alto costo y la computación

Page 60: Web-Os: Sistemas Operativos Web - Uniandes

60

móvil, presentan un campo amplio para los sistemas distribuidos. Aunque en la

actualidad existen grandes limitaciones debido a la arquitectura de los sistemas

operativos, los cuales no están diseñadas para el trabajo web, los escritorios

virtuales, a pesar de no ofrecer servicios distribuidos, procesamiento paralelo o

manejo de recursos, se hacen cada vez más populares y preparan el terreno a la

espera del momento en el cual el uso masivo de estos webTops haga

económicamente atractivo el gran salto a los verdaderos WebOS por parte de

grandes compañías de software.

Page 61: Web-Os: Sistemas Operativos Web - Uniandes

61

BIBLIOGRAFIA [1] P. Kropf, J. Plaice, H. Unger. (1997). Towards a Web Operating System (WOS). [En línea]. Disponible en: http://www.iro.umontreal.ca/~kropf/articles/a97-2.pdf [2] J.Banbury, I. Brown. (1999). Fat or Thin? [En línea]. Disponible en: http://www.vala.org.au/vala2000/2000pdf/Ban_Bro.PDF [3] K. Gottschal, S. Graham, H. Kreger, J. Snell. (2001). Introduction To Web Services Architecture. [En línea]. Disponible en: http://www.research.ibm.com/journal/sj/412/gottschalk.html [4] A. Molle, M. Schwartzbach. (2006). Web Services. An Introduction to XML and Web Technologies. [En línea]. Disponible en: http://www.brics.dk/ixwt/ [5] A. Vahdat, P. Eastham, C. Yoshikawa, M. Dahlin, T. Anderson. (1997). WebOS, software support for scalab le services. [En línea]. Disponible en: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.52.4997 [6] A. Vahdad. (1998). WebOS: Operating system service for wide area applications. [En Línea]. Disponible en: http://www.cs.washington.edu/homes/tom/pubs/hpdc98.ps [7] eyeOS proyect. (2008). The eyeOS Project 2008. Open Source Web Operating System & Web Office. [En Línea]. Disponible en: http://doc.eyeos.org/manual/

[8] J. Garret. (2005). Ajax: Un nuevo acercamiento a las aplicaciones web. [En Línea]. Disponible en: http://www.maestrosdelweb.com/editorial/ajax/ [9] D. Booth, H. Haas, F. McCabe. (2003). W3C, Web services Architecture. [En línea]. Disponible en: http://www.w3.org/TR/2003/WD-ws-arch-20030808/

Page 62: Web-Os: Sistemas Operativos Web - Uniandes

62

[10] T. O’Reilly. (2005). What Is Web 2.0. [En Línea]. Disponible en: http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html [11] L. Armstrong. (2008). ¿La web 3.0. ya está aquí?. [En Línea]. Disponible en: http://pepascientificas.blogspot.com/2008/05/especial-internet-lleg-la-web-30.html

[12] E. Schmidt. (2008). Web 3.0 CEO de Google se atreve a definirla. [En Línea]. Disponible en: http://3tec.blogspot.com/2008/05/definicion-web-30-eric-schmidt.html [13] Centre of Metacomputation. (2008). Metacomputation concerns. [En Línea]. Disponible en: http://metacomp.comlab.ox.ac.uk/

[14] International Conference on Field Programmable Logic and Applications. (2007). [En Línea]. Disponible en http://ce.et.tudelft.nl/FPL/ [15] [En Línea]. Disponible en: http://www.amazon.com/S3-AWS-home-page-Money/b?ie=UTF8&node=16427261 [16] Amazon Simple Storage Service (Amazon S3). (2008). [En Línea]. Disponible en: https://www.youos.com/ [17] YouOS Develop Team. (2008). YouOS. [En Línea]. Disponible en: http://en.wikipedia.org/wiki/YouOS [18]P. Kropf, H. Unger, G. Babin. (2000). WOS: An Internet Computing Environment. [En Línea]. Disponible: www.iro.umontreal.ca/~kropf/articles/a00-2.pdf [20] T. O’Reilly. (2008). DOM, The Document Object Model. [En Línea]. Disponible en: http://www.dhs.net.ru/documentation/en/OREILLY/books/xml/jxml/ch05_01.htm

[21] B. Fitzpatrick, D. Recordon. (2007). Thoughts on the Social Graph. [En Línea]. Disponible en: http://bradfitz.com/social-graph-problem/.

[22] T. O’Reilly. (2007). The Social Network Operating System. [En Línea]. Disponible en: http://radar.oreilly.com/archives/2007/10/the-social-network-operating-s.html.

[23] J. Aguilar, N. Perozo, E. Ferrer, J.Vizcarrondo. (2004). Arquitectura de un Sistema Operativo Web basado en Sistemas Multiagentes. [En Línea]. Disponible en: http://www2.unab.edu.co/editorialunab/revistas/rcc/pdfs/r52_art1_c.pdf

Page 63: Web-Os: Sistemas Operativos Web - Uniandes

63

ANEXOS 1

Conexión a Servicio de almacenamiento BoxNet. BoxNet es un servicio de almacenamiento de archivos, el cual por medio de un Api permite crear aplicaciones web y sitios web que integren funcionalidades como guardar, cargar, compartir, borrar, renombrar y mover archivos por medio de servicios web. Las aplicaciones se conectan a Box.net por medio de una llave de autenticación llamada Api key, la cual es necesaria para realizar cada llamado que se desee hacer. La comunicación se puede realizar por interfaz REST, SOAP o XML. Por simplicidad, en la aplicación se realizara la comunicación por medio de interfaz REST. El desarrollador de la aplicación debe solicitar la llave para su aplicación creando una cuenta en box.net. El API key es propio para cada aplicación y es utilizado para que cada usuario solicite un ticket el cual funcionara como su identificador frente al servicio web. Para pedir este ticket la aplicación manda una petición con la función GetTicket y la constante propia de la aplicación api_key. “http://www.box.net/api/1.0/rest?action=get_ticket&api_key=” + api_key En la aplicación el api_key es = 4e8z137fh5kk7be1rl860qqoa7tvx22u Así la petición se realizaría de la siguiente manera: http://www.box.net/api/1.0/rest?action=get_ticket&api_key=4e8z137fh5kk7be1rl860qqoa7tvx22u Esta operación me devuelve un respuesta XML: <response>

<status>get_ticket_ok</status> <ticket>b3oa240x5d2kap1bqz76z7ithri43j4o</ticket>

</response>

Page 64: Web-Os: Sistemas Operativos Web - Uniandes

64

En donde el ticket propio del usuario es: b3oa240x5d2kap1bqz76z7ithri43j4o

Luego de que la aplicación se identifique junto con el usuario frente al servicio web, el usuario debe ser autenticado, para lo cual se debe solicitar un token. "http://www.box.net/api/1.0/rest?action=get_auth_token&api_key=" + api_key + "&ticket=" + ticket; Con el API KEY de la aplicación y el ticket del usuario, esta petición se realiza de la siguiente forma: http://www.box.net/api/1.0/rest?action=get_auth_token&api_key=4e8z137fh5kk7be1rl860qqoa7tvx22u&ticket=b3oa240x5d2kap1bqz76z7ithri43j4o Esta operación me devuelve una respuesta XML: <response>

<status>get_auth_token_ok</status> <auth_token>0qkrbb0jo8oo8cnjpv787d7rhaodblpa</auth_token> <user>

<login>[email protected]</login> <email>[email protected]</email> <access_id>2595545</access_id> <user_id>2595545</user_id> <space_amount>1073741824</space_amount> <space_used>575</space_used> <max_upload_size>10485760</max_upload_size>

</user> </response> Donde el token de autenticación es: 0qkrbb0jo8oo8cnjpv787d7rhaodblpa Con el token dado se puede realizar operaciones como ver los folders del usuario, borrar o mover archivos, etc.

Page 65: Web-Os: Sistemas Operativos Web - Uniandes

65

Por ejemplo para ver las carpetas del usuario se utiliza el api_key de la aplicación y el token del usuario: “http://www.box.net/api/1.0/rest?action=get_account_tree&api_key= “+ api_key +”&auth_token=”+ auth_token +”&folder_id=0&params[]=nozip” Con los valores respectivos en la aplicación: http://www.box.net/api/1.0/rest?action=get_account_tree&api_key=4e8z137fh5kk7be1rl860qqoa7tvx22u&auth_token=1n7klvck2b3gi38ypz2mc7gp60fkih24&folder_id=0&params[]=nozip Esta operación me devuelve un respuesta XML con los archivos en el folder <file id="133894377" file_name="notes.txt" shared="0" created="1203441467" updated="1203441471" size="571" shared_link="http://www.box.net/encoded/13027315/133894377/2f2984917e9b9e89da9df457e5ff9ac3" thumbnail="/thumbs/24x24/default_file.gif" description=""> <tags/> </file> Con el identificador del archivo se puede mover, descargar o borrar el archive. Para borrar un archivo: “www.box.net/api/1.0/rest?action=delete&api_key=” + api_key+ “&auth_token=”+auth_token+”&target=folder&target_id=”+folder_id Con los valores de la aplicación: www.box.net/api/1.0/rest?action=delete&api_key=rrc1d3ntb53tt6b2vhail6rdtrsxov3v&auth_token=tkm1l2ojyhgrf86zzvdqvoa6zcqss6pf&target=folder&target_id=738133894377 Respuesta: <?xml version='1.0' encoding='UTF-8'?> <response>

Page 66: Web-Os: Sistemas Operativos Web - Uniandes

66

<status>s_delete_node</status> </response> Para descargar un archivo: http://box.net/api/1.0/download/<auth_token>/<file_id> Con los valores reales de la aplicación y el usuario: http://box.net/api/1.0/download/<auth_token>/<file_id>

Aplicación para youOS

Disponibles en http://www.youos.com/

Login : kiraken, password : azulopila

-Box.net Embedder

function __initialize(process_id) :

superFunc();

function reload() : superFunc();

function open(argsObj) : var win = uos.ui.getWindow('Box.net',{width:325, height:325}); this.win = win; win.setTitle("Box.net"); win.setContent(this.initHtml); this.textField = win.getComponent("textField"+this.win.uiid); this.myFrame = win.getComponent("browser"+this.win.uiid); var tf = this.textField; var br = this.myFrame; this.history = []; win.setTitle('Box.net'); win.show();

Page 67: Web-Os: Sistemas Operativos Web - Uniandes

67

function loadURL() :

var cb = function(succ) { if(!succ) { window.alert("Could not load the YouBrowser data."); } else { var url = this.data.get('url '); if(!url) { url = 'http://www.google.com';} this.textField.setText(url); this.go(url); } } this.data = new uos.data.Hashtable(this.app_name); this.data.refresh(cb);

Variable: initHtml :

<embed src='http://www.box.net/static/flash/widget_player.swf' type='application/x-shockwave-flash' FlashVars='subString=folderId=bu297eg0bl,color=000000,title=My files on Box.net' scale='noscale' wmode='transparent' width='289' height='258'></embed>

-App_getFile function open(argsObj) : superFunc();

var w = uos.ui.getWindow('photoview', {width: 320, height: 600}); w.setContent(this.formHtml); w.setTitle("PhotoViewer"); this.win = w; w.show(); if (argsObj.tag) { this.tag = argsObj.tag; this.getFeed(); return; } dojo.event.connect(w.getElement('setfeedbtn'), "onclick", this, "setFeedButtonClicked");

function getFeed() :

var url = "http://box.net/api/1.0/download/0qkrbb0jo8oo8cnjpv787d7rhaodblpa/133894377"; var path = "/kiraken/youfs/files/"; this.fi leUrl = url; this.win.setContent("<div>Loading...</div>");

Page 68: Web-Os: Sistemas Operativos Web - Uniandes

68

uos.api.url.getResourceIntoFs(url,"/kiraken/youfs/Docs",this.showFeed,{overwrite: true});

unction setFeedButtonClicked() :

this.tag = this.win.getElement('feedtag').value; this.getFeed();

function showFeed(state, msg) :

var feedHtml; if (!state) { feedHtml = '<div>Error loading </div><div>from ' + this.fi leUrl + '</div><div>'+ uos.util.obj.toString(msg) + '</div>'; } else { feedHtml = '<div>good</div>'; } this.win.setContent(feedHtml);

Variable: formHtml : <br />Click

<br /> <br /> Tag: <input id="feedtag" /> <input type="button" id="setfeedbtn" value="Get Feed" />

ANEXOS 2

Propiedades del objeto XMLHttpRequest:

readyState Devuelve el estado del objeto.

0 = sin inicializar, open() no ha sido llamado

1 = cargando, send() no ha sido llamado

2 = cargado, send() ha sido llamado, headers y status disponible

3 = interactivo, receiving - Downoading, responseText contiene

información parcial

4 = completado

Page 69: Web-Os: Sistemas Operativos Web - Uniandes

69

responseText retorna la respuesta como un string

responseXML retorna la respuesta como un XML (XML document object).

status retorna un codigo de status http

(e.g. 404 for "Not Found", 200 for "OK").

statusText retorna un string con el estatus HTTP

(e.g. "Not Found" or "OK")

Función para comprobar el navegador en AJAX:

function crearXMLHttpRequest()

{

var xmlHttp=null;

if (window.ActiveXObject)

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

else

if (window.XMLHttpRequest)

xmlHttp = new XMLHttpRequest();

return xmlHttp;

}

HASTABLES YuoOS Para validar que se pueda cargar la información guardada y hacer el get de la tabla hash. var callback = function(success) { var valor = ""; if(! success) { alert("Could not load sticky."); } else {

Page 70: Web-Os: Sistemas Operativos Web - Uniandes

70

this.valor = this.hash.get("atributo"); } this.open(); }; this.hash = new uos.data.Hashtable("tablahash"); this.hash.refresh(callback);

Ejemplo DOJO

Suscribirse al evento de adicionar un contacto:

dojo.event.topic.subscribe(uos.system.eventsList.BUDDY_ADD, this, "handleAdd");

Función a llamar cuando el evento es disparado (el hadler):

function handleAdd(eventObj)

{

var users = eventObj.users;

}