SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
1
Web-Os: Sistemas Operativos Web
Caracterización de WebOS y WebTops
Andrés Echeverría Acuña
Universidad De los Andes
Facultad De Ingeniería De Sistemas
2008
2
Web-Os: Sistemas Operativos Web
Caracterización de W WebOS y WebTops
Andrés Echeverría Acuña
Trabajo de Grado presentado como Requisito para optar al titulo
de Ingeniero de Sistemas
Asesor: Rafael Gómez
Bogotá
Universidad De los Andes
Facultad De Ingeniería De Sistemas
2008
3
AGRADECIMIENTOS
Quiero expresar mi agradecimiento:
A mis padres por el apoyo incondicional que me brindaron a lo largo de la carrera.
A mi abuela Beatriz por su apoyo incondicional, sus consejos, su compañía y la
ayuda la cual siempre ha evitado que me sienta solo.
A mi director y asesor de tesis Rafael Gómez Díaz, por su calidez, apoyo y
confianza al brindarme la oportunidad de trabajar en este proyecto.
A todos mis buenos amigos que siempre encontraron palabras para incentivarme y
ayudarme a retomar el camino.
4
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
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.
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.
7
Con este Objetivo a cumplir el trabajo se divide de la siguiente manera:
En el primer capítulo de este trabajo se presentan conceptos básicos de diferentes
tecnologías como la Web 2.0, AJAX y servicios Web, que han sido de vital
importancia para la evolución de Internet y han incrementado el uso de las
aplicaciones web al igual que la popularidad de los sistemas operativos web. Al
final del capitulo se estudian conceptos de la Web 3.0 dando una visión
fundamental para el futuro de los web OS.
En el capitulo dos se presenta un estudio del estado actual de los sistemas
operativos web y los proyectos realizados hasta la fecha. Entre estos se escogen
cinco sistemas de diferentes características etiquetados como sistemas operativos
web: WOS, Webos, eyeOS, youOS y G.ho.st. Analizando sus características, su
arquitectura, las aplicaciones que ofrecen y sus diferencias conceptuales se
buscan definir puntos básicos que separen los sistemas operativos web de los
escritorios web.
En el capitulo 3 se realiza una caracterización con base en el análisis y la
comparación de los cinco diferentes WebOS y WebTops estudiados. Se busca
diferenciar puntos clave al momento de definir uno y otro grupo, además de dar
nuevas luces al debate popular en la comunidad web que pretende definir el
sistema operativo web ideal del futuro.
En el capitulo 4 se realiza una prospectiva basada en los requerimientos
esperados por los usuarios y las características actuales de los sistemas
operativos web estudiados. Se desarrollan algunos puntos clave que presentan
falencias actualmente como el desarrollo de protocolos y toolkits para la
comunicación entre aplicaciones y la necesidad de rediseñar la web entorno al uso
de objetos distribuidos.
8
Para finalizar en el capitulo 5 presentando las conclusiones finales de la
investigación, los pros y contras de los sistemas operativos actuales y algunos
comentarios sobre su futuro.
Dada la importancia que presenta para el usuario la posibilidad de desarrollar
nuevas aplicaciones que le den flexibilidad al sistema y le permitan personalizar su
interfaz, se realiza una aplicación de ejemplo para uno de los sistemas
disponibles, con el objetivo de estudiar las diferentes posibilidades ofrecidas por
los Web-Os a los desarrolladores. Esta aplicación es presentada en los anexos,
desarrollada con los Apis de EyeOS y YouOS, conecta de manera sencilla el
sistema operativo web con un sistema de almacenamiento externo llamado
boxnet.
9
1. Tecnologías Web
La Web ha jugado un papel fundamental en el proceso de globalización del mundo
actual. Se ha convertido en el principal medio de Comunicación e información
gracias a su carácter inmediato y de fácil publicación. Su evolución de medio de
escritura, en donde simplemente se almacena información a medio de
lectura/escritura en donde el usuario puede tomar un papel activo en la creación
de la web, trae consigo un sinnúmero de implicaciones sociales derivadas de la
participación masiva de personas de todas partes del mundo en temas como la
política, el arte, la cultura, los negocios, etc. No en vano la Web 2.0 es también
conocida como la web Social.
El gran flujo de información, la necesidad de encontrar enlaces permanentes de
comunicación y el deseo de romper las barreras tiempo/espacio para adquirir
inmediatez y ubicuidad son algunas de las razones que han impulsado la creación
y popularidad de aplicaciones web como los desktops y hacen necesaria la
evolución de los sistemas operativos actuales para llegar a los tan anhelados
sistemas operativos Web.
Los cambios necesarios en el paso de la web 1.0 a la web 2.0 y muchos de los
elementos necesarios para la creación de aplicaciones fundamentales en los
WebOS se encuentran apoyados por nuevas tecnologías, entre las cuales están
los CSS necesarios para la validación semántica, pues permite separar diseño y
contenido; RSS/Atom, para la sindicación y agregación de contenidos, usado
principalmente en la publicación de noticias; SOAP/REST/JCC, estilos para la
creación de servicios web, Java web start o Java Scrip clientes ricos ligeros no
HTML y AJAX fundamental para la creación de aplicaciones web asincrónicas
basadas en XML y HTML.
10
1.1. Servicios y Aplicaciones Web
Las aplicaciones y servicios Web son el punto central de los sistemas operativos
Web, ya que se encargan de ofrecer las funcionalidades usualmente encontradas
en los escritorios. Desde el punto de vista del cliente son independientes de la
plataforma de la máquina y del lenguaje de programación, ya que funcionan por
medio de tecnologías como HTTP y XML, ejecutadas en los Browsers.[4]
Un servicio Web, según el W3C (World Wide Web Consortium, principal
organización internacional de estándares para el www), es una interfaz que provee
un conjunto de operaciones con las cuales se pueden acceder a cierto servicio en
la red. Gracias a estándares abiertos, permiten la comunicación entre aplicaciones
con distintos lenguajes de programación, independientemente de la plataforma
donde estas se ejecuten. [3]
Un punto clave al momento de hablar de Web-OS y aplicaciones Web es la
movilidad. Hoy en día encontramos aplicaciones que nos permiten realizar
comercio electrónico, acceder a comunidades virtuales, leer las ultimas noticias
(RSS feeds), manejar fotografías etc. desde un sinfín de dispositivos wireless,
como teléfonos celulares, palms y demás, sin importar en qué lugar nos
encontremos.
El aumento de estos dispositivos en los últimos años, sumado al auge de las redes
sociales en Internet, ofrece un nuevo campo para las aplicaciones el Web, de gran
popularidad en el área de la tecnología. Este se ha visto respaldado por una gran
ola de desarrolladores que día a día crean nuevas aplicaciones, la mayoría de
ellas gratuitas y compatibles con los browsers más populares o sistemas
operativos de los dispositivos portátiles.
11
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
12
la URL con la cual el solicitante del servicio hace bind y luego invoca el servicio
[4].
1.2. Web 2.0
La búsqueda de información en Internet acerca de Web 2.0 y Web 3.0 nos dirige
inmediatamente a miles de blogs en donde todo tipo de personas, desde expertos
hasta novatos comparte noticias y pensamientos propios acerca de nuevas
tecnologías, lo cual evidencia la importancia de esta nueva tendencia que nace en
el marco de la Web 2.0.
En la primera conferencia acerca este tema (año 2005), Tim O`Reilly creó el
termino Web 2.0, no como un nuevo grupo de especificaciones sobre la Web, sino
como una nueva forma de ver la red, como una fuerza que transforma la manera
de hacer negocios e interactuar de los usuarios, caracterizada por las premisas de
compartir información, promover la creatividad, la colaboración y aprovechar el
efecto viral de la red. [10]
El uso principal de la Web 1.0 es la digitalización y publicación de la información
impresa como libros, noticias y otros documentos. La Web 2.0 está enfocada en
proveer servicios, como compartir la información y las redes sociales. La
referencia más clara acerca de esta dinámicas donde los usuarios son quienes
generan los contenidos es el auge de las redes sociales, los sitios de publicación
como blogs, la publicación de noticias RSS feed y demás sitios como YouTube,
Flickr o Digg donde se distribuyen videos y imágenes.
El cambio en el modelo de negocios y desarrollo de aplicaciones sobre la Web
parte de la idea de ver la red como una plataforma que maximiza el uso de las
herramientas actuales, ofreciendo servicios y no productos, teniendo en cuenta las
necesidades y comportamientos de los usuarios.
13
Los principales preceptos de la Web 2.0 se pueden sintetizar en:
• Ver la Web como una plataforma
• Aprovechar la inteligencia colectiva
• La propiedad, adquisición y uso de la información
• Modelos ligeros de programación para servicios Web
• Ubicuidad de acceso y multiplicidad de dispositivos
• Enriquecer la experiencia del usuario
Ajax se ha convertido en el estandarte de la Web 2.0, pues es el arma principal de
los desarrolladores en el momento de crear aplicaciones. Esto se da gracias al
conjunto de tecnologías como JavaScrip (un lenguaje de programación ligero) y la
posibilidad de comunicación asincrónica que agiliza la comunicación con el
usuario.
En el capítulo 1.4 se presentan las principales características de las tecnologías
reunidas en Ajax y cómo estas proveen los diferentes medios necesarios para
desarrollar aplicaciones web 2.0 como procesadores de documentos online,
calendarios, chats, etc. esenciales en los desktops y base fundamental de los
sistemas operativos web.
1.3. Web 3.0
Ahora que es posible publicar la información en forma digital gracias a la Web 1.0
y la disponibilidad de un gran número de servicios Web para compartir esta
información y crear redes sociales gracias a la Web 2.0, la siguiente pregunta que
los internautas se hacen es ¿Qué será la Web 3.0?
Este concepto probablemente se definirá a sí mismo, como ocurre a gran escala
con la web2.0 del cual no se sabe aún qué es totalmente ni cómo explotarla y una
14
de sus posibles funcionalidades estará enfocada en el valor de la gran cantidad de
información que se comparte en Internet y el uso de plataformas para la creación
de aplicaciones.
Las relaciones en las redes sociales y las actividades de los usuarios en Internet
tanto como la clase de datos que estos comparten hacen parte fundamental de la
Web implícita y crea un nuevo tipo de información la cual adquiere valor no por sí
misma de manera aislada, sino por la forma como los datos se relacionan y como
caracteriza diferentes grupos de personas definiendo sus gustos para posibles
modelos de mercado.
Los últimos servicios Web giran alrededor de plataformas de código abierto que
permiten el uso de herramientas para la creación de programas los cuales no
necesariamente proceden de los proveedores de software sino que son
aplicaciones creadas por los mismos usuarios. [11]
La importancia de la Web 3.0 va mucho mas allá de su impacto en Internet pues
posiblemente también modifique la dinámica entre usuarios y proveedores de
software como los creadores de hardware PCS y otros dispositivos. Los servicios
Web disponibles en línea toman ventaja cada día sobre las aplicaciones que
trabajan de manera local sin conexión. Eric Schmidt CEO de google, que se refirió
a este tema en el Seoul Digital Form, cree que algunas de las características que
debe tener la Web 3.0 son [12]:
• Trabajo conjunto entre el grupo de aplicaciones
• Aplicaciones relativamente pequeñas
• Gestión de datos encontrados en la red
• Aplicaciones ejecutadas por cualquier dispositivo (PC, móvil)
• Aplicaciones rápidas y personalizables
• Distribución viral (redes sociales, e-mail)
15
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
16
Web asincrónicas. Sus siglas provienen de Asynchoronous JavaScrip and XML.
AJAX ha cobrado gran importancia, pues ha permitido modificar el modelo clásico
de las aplicaciones Web para crear lo que conocemos como Web 2.0.
Usualmente, cuando un cliente hace un requerimiento al servidor web, este realiza
un proceso a la información y le da la respuesta al cliente por medio de una página
HTLM; esto genera un lapso de tiempo en el cual el cliente espera incapaz de
realizar ninguna otra operación en la aplicación.
Ajax elimina este problema de petición-espera introduciendo un motor AJAX a
manera de intermediario, el cual es cargado por el navegador en el momento de
cargar la página web. Este monitor se encarga de comunicarse con el servidor en
nombre del usuario, de manera que la comunicación sea asincrónica y el cliente
pueda seguir interactuando con la página mientras espera por la respuesta o
enviar o recibir información del servidor sin necesidad de volver a cargar toda la
pagina. [8]
Tomado de Ajax: Un Nuevo Acercamiento a las Aplicaciones Web. [8]
17
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
(Extensible Markup Language) es un lenguaje extensible el cual presenta la
información en forma estructurada, mientras que el XSLT (Extensible
Stylesheet Language Transformations) permite crear plantillas que
describen cómo se debe transformar la información contenida en estos
documentos a otros formatos facilitando el intercambio de información.
• Document Object Model (DOM): interacción dinámica
Este API es un modelo de objetos para la representación de documentos
HTML y XML, por medio del cual las aplicaciones pueden acceder y
modificar dinámicamente el contenido, la estructura lógica y estilo de los
documentos.
DOM es la principal alternativa para el manejo de XML en aplicaciones
realizadas bajo AJAX. Su estructura es un árbol de nodos; donde cada
18
nodo representa un elemento y el texto se representa por un nodo de texto
.Para los desarrolladores, este modelo permite almacenar datos en forma
de documentos con cierta jerarquía, la cual provee una referencia para
acceder a cada objeto, modificarlo o eliminarlo añadiendo interactividad a
las páginas web.
Tomado de DOM: The Document Object Model. [20]
La herencia en los nodos se representa con el esquema padre-hijo. Para
acceder a los nodos con JavaScrit para una posible aplicación en AJAX, es
posible usar algunos métodos como getElementById, createElement,
getElementsByTagName, appendChild y removeChild.
En el momento de remover un elemento este ya no será parte del DOM
pero no se destruye por completo, pues se guarda una referencia en
memoria al objeto eliminado, de manera que el nodo se pueda reutilizar
posteriormente.
• XMLHttpRequest : recuperación de datos de manera asincrónica
También conocida como XHR, esta interfaz es utilizada por las aplicaciones
web para realizar peticiones HTTP y HTTPS al servidor en páginas Web sin
necesidad de cargar toda la página nuevamente. Gracias a que el cliente
puede crear varias instancias de la misma clase, esta interfaz puede
proporcionar contenido dinámico y comunicación asincrónica.
19
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
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]
21
En este campo encontramos dos proyectos desarrollados por grupos de
investigación universitarios, en la segunda mitad de los años 90.
2.1.1. The WebOS Project
Este proyecto, realizado por la división de ciencias de la computación de la
universidad Berkeley de California, se desarrolló con el fin de crear un sistema
operativo en el cual las diferentes aplicaciones Web tengan acceso y puedan
manejar los diversos recursos compartidos alrededor de la Web para el beneficio
de todos los usuarios.
Este sistema se aparta del modelo clásico petición-respuesta entre los Browser y
servidores, para tratar de demostrar la posibilidad de un sistema que maneja tanto
el procesamiento, como el almacenamiento y manejo de datos, de acuerdo con los
recursos disponibles en el entorno, la características de los servicios Web y el
estado de conexión de la red a dichos servidores. Así, el sistema se encarga de
balancear las cargas de procesamiento y de transferencia de archivos de tal forma
que el uso de ancho de banda se maximice mientras la latencia se minimiza. [5]
Para proveer servicios OS, el Framework de WebOS debe permitir la construcción
de servicios Web que sean configurables dinámicamente (flexibilidad), conscientes
de su entorno geográfico, escalables y con un alto porcentaje de disponibilidad y
accesibilidad. Además debe ofrecer funciones OS globales como:
direccionamiento (Naming), asignación de recursos, comunicación entre procesos,
ejecución remota de procesos, tolerancia a fallos, programación de tareas,
autenticación de usuarios y seguridad. [6]
El prototipo del Framework está compuesto por cuatro grandes componentes, (i)
Smart Clients, los cuales se encargan de suministrar tolerancia a fallos y balance
22
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.
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
24
Dada la naturaleza de los sistemas basados en la Web donde sufren un gran
número de ataques, se hace indispensable que los desktop provean acceso
seguro y autenticado tanto a la información pública como privada requerida por
las aplicaciones, de forma que se limite el acceso a archivos y demás recursos.
Para esto, WebOS se vale de una lista de control de acceso a archivos y recursos
donde cada usuario posee una llave pública única, que es validada por una o más
autoridades de replicado similares a servidores DNS. Con este sistema se
previene el acceso sin autorización y además es posible crear dominios en donde
se dé prioridades sobre los procesos y derechos de acceso a archivos u otros
recursos, siempre en el contexto de grupos de dominio seguro.
Manejador de recursos
El manejador de recursos es el responsable de administrar las peticiones
realizadas por sitios remotos, autenticar la identidad del cliente y determinar si
tiene los permisos indicados para ejecutar dicha petición.
Para esto crea una máquina virtual encargada de la ejecución de los procesos, la
cual verifica que los procesos no interfieran entre ellos e interactúa con el sistema
de autorización para validar las restricciones asociadas a cada dominio o grupo de
trabajo de modo que se mantenga la integridad del sistema,
Luego de autenticar satisfactoriamente al usuario, el siguiente paso es determinar
por medio de la lista de acceso de control (ACL) los permisos de escritura, lectura,
ejecución de archivos y procesos del usuario según el domino en que este se
encuentre y autorizarlo. [6]
25
La maquina virtual se encarga del control de procesos, los cuales son ejecutados
con privilegios limitados previniendo así que interfieran en operaciones de otros
procesos o máquinas virtuales, y del manejo de recursos pues establece la
cantidad de memoria y CPU que el proceso puede utilizar.
En el proyecto WebOS se usa específicamente Janus para crear la máquina
virtual el cual está basado en el sistema de archivos de Solaris.
2.1.2. WOS
Es un sistema diseñado como distribuido y versionado, enfocado a proveer
soluciones para la ubicuidad en la computación global y desarrollar servicios que
cumplan con una visión centralizada en la heterogeneidad y naturaleza dinámica
de la red.
La idea detrás de WOS es formar una gran red en donde se encuentran nodos
que hacen a su vez de servidor o cliente, con una gran variedad de versiones, los
nodos con la misma versión forman comunidades pero a su vez son capaces de
comunicarse mediante protocolos determinados y compartir los diferentes
servicios con los cuales cuente cada una de las diferentes versiones compatibles.
Esta técnica de configuración de software basada en la demanda se llama
educción. (Plaice and Ben Lamine 1997).
El kernel de un nodo en WOS es un motor que está respondiendo constantemente
a las peticiones de otros usuarios e integra funciones de cliente, servidor y
mensajero. Cada nodo es capaz de proveer una serie de servicios y a la vez
puede pasar las peticiones de servicios provenientes de otros nodos a terceros.
El conjunto de Nodos con la misma versión forman una WOSNet o WSOSpace,
los cuales, al definir y redefinir continuamente las relaciones con el entorno y entre
26
ellos mismos, forman comunidades. Dado que cada comunidad tienen ciertas
características definidas por su entorno, sus nodos ofrecerán diferentes tipos de
servicios y según su versión es posible ofrecer diferentes versiones del mismo
servicio.
Este sistema de nodos es altamente flexible y libre de cuellos de botella, ya que no
hay un solo servidor que contenga un catálogo central de todos los servidores y
servicios que se encuentran en la red; cada vez que un nodo nuevo se agrega al
sistema, este guarda en su propio warehouse la información de los nodos que
encuentre por medio del layer de comunicación.
El prototipo cuenta con cuatro grandes componentes: la interfaz de usuario (UI), la
unidad de control de recursos(RCU), la unidad de control de recursos remotos
(RRCU)y la capa de comunicación (WOSCL).
Interfaz del Usuario
Está subdividida en tres partes: el editor de perfil, el editor de recursos y el menú
de búsqueda, con los cuales el cliente describe las características y restricciones
de un recurso que quiere publicar para otros usuarios. Estos perfiles se guardan
localmente en el nodo.
La unidad de control de recursos
Acepta peticiones de servicios desde la interfaz de usuario y contacta varios
warehouse empezando por el local, hasta encontrar el nodo en el cual el servicio
pueda ser ejecutado. Al terminar, si el nodo donde se encontró el servicio es
nuevo, se agrega al warehouse.
27
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
28
seguridad y el rendimiento dependen en gran medida del estado y velocidad de la
red.
A continuación se presentan tres de los escritorios web más representativos
encontrados actualmente en la red.
2.2.1. EyeOS
Es una plataforma Open Source desarrollada bajo la arquitectura cliente-servidor;
fue diseñada con el objetivo de contener diferentes aplicaciones web que
permitieran al usuario crear un Web desktop, que sea accesible desde Internet y
simule un Sistema operativo funcional en cualquier Browser.
Gracias a que está bajo la licencia GNU (AGPL), es posible crear servidores
privados tanto para uso personal como a nivel de compañía completamente gratis,
al igual que modificar el código para personalizar el sistemas o desarrollar nuevas
aplicaciones.
Está desarrollado con PHP y AJAX. El manejo de archivos, usuarios, procesos y
comunicación entre el cliente y servidor se realiza por medio de funciones
específicas del sistema mediante el kernel y su API.
Kernel
Es el encargado de proveer las diferentes funciones para el manejo de los
widgets, los servicios y las librerías usadas por las diferentes aplicaciones Web.
29
Tomado de eyeOS Developer Manual [7]
Los widgets son los encargados de la crear la interfaz gráfica y se cran usando las
variables (x, y) que definen su posición en el espacio y variables (high, weight) que
definen su tamaño.
Servicios y Librerías
Los servicios se encargan de ejecutar tareas de bajo nivel como el manejo de la
seguridad, autenticación de usuarios,manejo de procesos y el sistema de archivos
virtual (VFS)
Las librerías son un conjunto de funciones que permiten facilitar el trabajo de las
aplicaciones como el manejo de archivos XML, Zip o URL.
Servicios
Las tareas de bajo nivel como el manejo de archivos son manipuladas por medio
de servicios que se comunican con el Kernel y imponen restricciones a las
peticiones de las aplicaciones.
Entre los servicios encontramos el sistema virtual de archivos (VFS), el
administrador de usuarios (UM), el manejador de mensajes (MMAP), el
30
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
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]
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.
33
Otras librerías importantes son eyeSockes con la cual se manejan las conexiones,
i18n un sistema de internacionalización para traducciones del sistema y eyeWidget
encargado de la interfaz grafica.
2.2.2. YouOS
Este escritorio colaborativo web desarrollado por la empresa WebShaka cuenta
con alrededor de 700 aplicaciones desarrolladas en su mayoría por los usuarios.
Esto se hace posible gracias al sencillo API de YouOs el cual enmascara métodos
de javascript y Dojo, sumado a el desarrollo de la aplicación web que ofrece una
agradable interfaz que permite crear nuevas aplicaciones o clonar/extender las ya
existentes.[16]
Una de sus mejores cualidades es la rapidez de reacción en el momento de
comunicarse con el usuario, lograda con el uso combinado de Ajax y JavaScript,
este ultimo usado para la comunicación con el servidor remoto.
Entre sus aplicaciones se encuentran procesador de documentos, chat, manejador
de archivos, interpretador de línea de comandos, manejador de procesos,
FlickRSS y su propio navegador.
Clonado y extensión de aplicaciones.
En YouOS todas las aplicaciones son objetos JavaScript por lo cual pueden ser
extendidos. Una aplicación extendida hereda todos los atributos y funcionalidades
de la aplicación padre, por esta razón todas las aplicaciones en YouOs extienden
directa o indirectamente a WebApp, la cual es la aplicación base del sistema y
contiene todo los métodos y propiedades que se deben implementar.
De esta manera es posible clonar cualquiera de las aplicaciones ya existentes en
34
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.
35
YouShell
Es un interprete javaScrip que simula un Shell de línea de comandos el cual se
encuentra en el escritorio de YouOs como una herramienta para obtener acceso
rápido a diferentes funciones como son kill y run para manejar procesos; cd, ls, rm,
mkdir y chmod para manejar archivos; ds y dt para manejar las estructuras de
datos y otros más como clear, exit. [17]
API
El Api de YouOS está dividido en namespaces lógicos los cuales son grupos de
funciones y variables que encapsulan diferente funciones del sistema. Todos los
resultados de los diferentes métodos en el API son archivos XML.
A continuación se presentan algunos API interesantes para la comunicación entre
las aplicaciones:
• uos.ui – funciones de Interfaz grafica
• uos data – funciones de acceso a estructuras de datos
• uos.system – funciones del sistema
• uos.control – control del MVC (modelo vista controlador)
• uos. message – enviar mensajes de eventos
• uos.model – modelo MVC de objeto, listas, arboles, etc.
• uos.util – miscelánea
API para permisos - manejan los permisos a las estructuras de datos.
• get_share_data – retorna una lista de las estructuras a las cuales un
usuario puede acceder en el nameSpace de otro usuario. Funciona por
aplicación.
36
API para servicios web - proveen acceso a recursos y servicios web
• url_xml - Obtiene un archivo xml desde un sitio web
• url_html - Obtiene un archivo html de un sitio web
• url_get_fs - Obtiene un archivo y lo guarda en el YouFS. Permite establecer
el login el password para conectarse y, en el caso del archivo, un path para
grabar y la opción de overwrite.
API para contenido RSS – Acceso a contenidos RSS para subscriptores
• uos.api.rss.getFeed(feedUrl, callback, options) - Obtiene un XML desde el
URL y lo pasa como un árbol CML DOM
Dojo
Es un conjunto de librerías JavaScrip de código abierto para manipular Ajax y
eventos. Este toolkit permite emular herencia de objetos, hacer peticiones http
asincrónicas e invocar métodos estáticos (también llamados métodos compartidos,
de clase o bound methods) los cuales están asociados a una clase en particular.
Los eventos realizados en la interfaz grafica, como hacer click o dejar de marcar
un área, son manejados por medio del Dojo event model, el cual permite a las
aplicaciones suscribirse para que sean informadas cuando un evento es
disparado.
Los diferentes eventos están divididos en los siguientes grupos:
37
• 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.
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
39
privilegios de acceso. El protocolo predeterminado para las descargas es el http,
pero también se ofrece una interfaz BitTorrent™ para distribución a gran escala
[15].
Aunque por el momento no cuenta con un API, ni con herramientas de desarrollo,
las cuales según su creador serán publicadas en un futuro , G.ho.st permite usar
un gran tipo de aplicaciones web creadas por terceros como Zoho, Google Docs,
ThinkFree. Youtube, flickr y adicionar aplicaciones propias por medio de URL.
Para las aplicaciones provenientes de terceros, G.ho.st maneja un sistema de
subscripciones con las cuales se pueden administrar las cuentas y además
permiten conectarse automáticamente pues recuerda el nombre y password.
Arquitectura
En busca de obtener lo mejor del sistema operativo web, como lo mejor de las
diferentes aplicaciones web encontradas en internet, G.ho.st usa un modelo de
arquitectura en donde por medio del código cliente ejecutado en el browser del
usuario es posible acceder a la información de los usuarios guardada en los
dispositivos o servicios web de almacenamiento de datos y realizar la
comunicación con los diferentes servicios web que procesaran dicha información.
La ejecución de las aplicaciones se realiza en el browser del cliente el cual se
encarga de subir el client code al cache para que no sea descargado cada vez que
se accede a la aplicación. Los datos son manejados por el servicio de
almacenamiento de Amazon el cual se encarga de la persistencia.
40
Detalle de la arquitectura de G.ho.st.[ ]
3. Análisis
Aunque es posible encontrar un sinfín de referencias a sistemas operativos web
en múltiples blogs y páginas de tecnología en internet, esto se debe, en la mayoría
de los casos, a la errónea interpretación de su significado, en parte derivado de la
gran popularidad de un nuevo término que es ampliamente aceptado pero que
presenta una definición difusa e inexacta.
La mayoría de opciones presentes en esta gran ola de proyectos que han nacido
tras el sueño de los sistemas operativos web y que se encuentran disponibles
actualmente para los usuarios, son etiquetadas incorrectamente como Web OS
pero son simplemente escritorios web que se apoyan en los browsers para
integrar aplicaciones simulando sistemas operativos virtuales.
41
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.
42
• Sistema manejador de archivos.
Debe controlar la creación, modificación, borrado y acceso de archivos
manteniendo la coherencia del sistema. Estos archivos pueden ser datos
del usuario, o archivos necesarios para el funcionamiento del sistema y
aplicaciones. Es importante notar que el manejador de archivos debe
controlar tanto los archivos del sistema base, como archivos ubicados en
servidores externos, lo cual implica tener el registro de la ubicación física de
los archivos en los diferentes servidores.
Web-OS: Se encarga de administrar los recursos disponibles en los
repositorios locales y externos. El manejo del hardware de la máquina y las
funciones de bajo nivel se delegan a la plataforma del sistema, mientras
que el WebOs se encarga de actualizar la información de los archivos
almacenados en los diferentes nodos para mantener la coherencia del
sistema. Además administra el cache de los nodos, lo cual facilita el acceso
a los archivos usados frecuentemente por los usuarios más cercanos.
WebTop: En estos sistemas virtuales el manejador de archivos se encarga
de almacenar la información en el servidor del sistema base o en servidores
externos. Dependiendo de la arquitectura del WebTop, los archivos son
representados virtualmente de diferentes formas y no corresponden
directamente al formato de archivos manejado en el sistema nativo. En la
mayoría de los casos se crea un archivo adicional que contiene información
como el nombre del propietario, la aplicación que lo creó, el nombre original
del archivo y la fecha de creación.
En eyeOs los archivos están conformados por dos partes abstractas para
incrementar la seguridad y que permiten diferenciar los archivos del usuario
de los archivos del root. En youOS los datos son almacenados en tablas de
hash, mientras que en G.ho.st el manejo de datos está a cargo de terceros
43
que guardan la información en servidores externos al sistema como el
servicio de Amazon S3.
Desarrolladores: El API debe proveer funciones que permitan al
desarrollador acceder, modificar y guardar los archivos necesarios tanto
para las aplicaciones como para los usuarios de estas. De esta manera se
enmascaran las funciones del lenguaje motor (PHP, Java Script, AJAX) y se
abstrae el manejo de archivos a un solo nivel.
Usuario: Se debe recordar que aunque en los WebTops las aplicaciones
realicen operaciones en la máquina del usuario mediante el browser, los
archivos son almacenados en los servidores remotos del sistema, de igual
manera los webOS pueden guardar información en el repositorio local que
debe ser replicada en nodos externos. Sin embargo, los procesos
ejecutados por el manejador de archivos al interactuar con las aplicaciones
deben ser realizados de manera trasparente para que el usuario sienta que
se trata de una aplicación estándar que funciona de manera local.
• Seguridad, Autenticación y Autorización de Usuarios.
Dado que estos sistemas trabajan sobre la web, son altamente susceptibles
a ataques mal intencionados, por lo cual es de vital importancia proveer un
alto grado de seguridad en el acceso y manejo de datos. Las plataformas
en los servidores web son las encargadas de ofrecer la seguridad sobre la
red mediante sistemas de firewall, detección de intrusos, etc.
WebOS: Es necesario limitar el acceso a archivos y demás recursos del
sistema, ya sean locales o externos, de manera que sea posible crear listas
de control de acceso en donde se manejen diferentes niveles de prioridad
sobre procesos y otros recursos usados por las aplicaciones. Para esto
44
debe ser posible autenticar la identificación de cada uno de los usuarios por
medio de una llave única, la cual será validada por uno o más servidores,
siempre en el contexto de grupos de dominio seguro.
WebTop: El sistema que implementa el WebTop deberá encargarse de la
seguridad referente al workspace y las aplicaciones mediante sistemas de
autenticación de usuario. En general basta con suministrar un nombre de
usuario y contraseña para restringir el acceso, mientras que el sistema web
se encarga de la seguridad de archivos e integridad de las aplicaciones por
medio del kernel.
Desarrolladores: Se deben proveer un conjunto de servicios y librearías
que permitan manejar de forma sencilla y clara el acceso a archivos y
demás herramientas del sistema por parte de las aplicaciones que creen los
desarrolladores. Esto se realiza mediante el API, el cual limita funciones
existentes de los lenguajes que puedan afectar la confiabilidad del sistema.
Usuarios: Deben tener control total sobre sus archivos de manera que sea
seguro y sencillo compartir información, otorgando permisos a individuos o
grupos, de manera que cada usuario solo tenga acceso a sus propios
archivos y aquellos sobre los cuales le han otorgado permisos. Esto es de
vital importancia para el funcionamiento de ambientes de trabajo
colaborativo.
• Desarrollo de aplicaciones
WebOs: Estos sistemas deben ofrecer servicios web que soporten la
creación y desarrollo de nuevas aplicaciones. La publicación y el manejo de
los recursos distribuidos se deben realizar mediante protocolos que faciliten
la comunicación entre nodos de cualquier sistema.
45
Webtops: ofrecen la posibilidad de incorporar algunas cualidades de la
web, como ser abierta y descentralizada. Es posible, gracias al código
abierto, modificar los diferentes servicios o crear nuevos webtops. De igual
manera, gracias a los API que ofrecen cada uno de los frameworks, los
usuarios ya no están atados a escoger entre uno o dos programas para
trabajar en sus documentos, como ocurría en Windows/MacOS/Linux, sino
que pueden escoger entre las diferentes aplicaciones web encontradas en
la web, o modificar o crear una nueva que se acomode a sus necesidades.
Desarrollador: Los API, sumados a la arquitectura de los servicios web,
proveen simplicidad para los desarrolladores que creen las aplicaciones, de
esta manera, usuarios que solo cuenten con conocimientos básicos en
lenguajes como php o java script pueden crear aplicaciones, utilizando
como base el marco dado por la arquitectura y los servicios ofrecidos por
los escritorios web.
Usuario: El desarrollo de aplicaciones en sistemas distribuidos puede estar
fuera del alcance de usuarios ajenos a la computación. Sin embargo
herramientas para clonar o extender aplicaciones como las encontradas en
youOS y eyeOS, permiten realizar pequeñas modificaciones de manera
sencilla basándose en los API a servicios ya implementados. Aunque su
alcance puede ser limitado, debido a que actualmente las aplicaciones
creadas en un entorno no son compatibles con otros sistemas, cualquier
herramienta que permita personalizar aplicaciones beneficia finalmente al
usuario.
46
• Manejo de memoria, procesos y demás recursos
WebOS: Estos sistemas deben preocuparse tanto del manejo de los
recursos locales, como de encontrar, localizar y administrar recursos
externos de procesamiento y almacenamiento. Las decisiones en cuando al
uso de los recursos se realiza en tiempo real, teniendo en cuenta factores
como el estado de la red, la carda de los diferentes servidores, el tiempo de
respuesta, los privilegios del usuario o la aplicación etc.
WebTop: Los proceso son ejecutados con privilegios limitados previniendo
así que interfieran en operaciones de procesos de otras aplicaciones o
máquinas virtuales. También debe establecer la cantidad de memoria y
CPU que un proceso puede utilizar, dependiendo de la aplicación, su
prioridad y el nivel del usuario.
Desarrolladores: Estas funciones son realizadas por el kernel del sistema,
por lo cual los desarrolladores solo deberán preocuparse de ellas cuando
deseen modificar reglas o protocolos de comunicación entre los sistemas.
El manejo de memoria, procesos y recursos del sistema base u otros
servidores debe ser completamente ajeno a las aplicaciones.
Usuarios: Las decisiones en cuando al uso de los recursos internos o
externos del sistema debe ser completamente transparentes para el
usuario, el cual solo interactúa con las aplicaciones.
• Comunicación con aplicaciones y sistemas externos
WebOS: Se debe contar con protocolos de comunicación, encargados de
encontrar y localizar aplicaciones existentes en otros servidores, al igual
47
que protocolos que permitan crear y publicar servicios por parte de los
diferentes nodos.
WebTop: Los sistemas operativos web y protocolos web de código abierto
benefician a nuevos sistemas de negocio autosuficientes los cuales se
buscan sistemas operativos que sean libres de manera que se puedan
modificar para ajustarlo a las necesidades propias de la empresa.
Desarrolladores: En este punto es importante crear estándares que
definan las características de la información requerida para la comunicación
entre aplicaciones. Algunos de los datos más relevantes son el nombre del
usuario que la ejecuta, el sistema base, los datos que debe procesar la
aplicación, los procesos relacionados etc. La función del Desarrollador será
proveer dicha información,mientras que es el kernel quien se encarga de la
comunicación entre nodos o aplicaciones.
Muchos servicios web, como los servicio de almacenamiento de Amazon S3
y netbox, ofrecen API que permiten al desarrollador comunicarse de manera
directa con las aplicaciones sin necesidad de utilizar funciones de bajo
nivel.
Usuarios: Para el usuario todos los procesos de comunicación entre nodos
o aplicaciones deben ser invisibles. En eyeOS y youOS las aplicaciones
externas son embebidas en los widgets ofrecidos por el sistema, de tal
forma que el usuario siempre tiene la sensación de estar trabajando en el
mismo framework.
48
3.2. Funciones ofrecidas por los Web-OS y WebTops.
Aunque el concepto inicial de estos sistemas era solapar los sistemas operativos
comunes, los desarrolladores influenciados por las ideas de la web 2.0 han creado
nuevos servicios que ofrecen funcionalidades que no están presentes en
programas no distribuidos pues son propias del trabajo en la red. Entre estas se
encuentran:
• Colaboración de trabajo entre usuarios:
Al igual que los recursos, los usuarios están distribuidos y acceden a los
documentos desde cualquier parte o a cualquier hora; esto permite
descentralizar los grupos de trabajo y crear proyectos en los cuales trabajan
personas de diferentes partes del mundo. Las aplicaciones se encargan de
ofrecer herramientas para el control de cambios, validación de permisos
sobre archivos, replicar información, coherencia de datos, etc.
• Redes Sociales, comunidades virtuales:
La interrelación de los contactos de un usuario en la red genera diferentes
mecánicas de flujo conectivo, las cuales son aprovechadas por nuevas
aplicaciones para crear comunidades de gran importancia social y
económica. En estos grupos la suma de diferentes opiniones genera
estados de credibilidad y confiabilidad de gran importancia en cuanto a
información o calidad en productos. Portales como facebook se perfilan
como sistemas operativos sociales en donde la importancia del individuo
prima sobre la información. [21][22]
Las aplicaciones ofrecen herramientas de búsqueda, administración y
monitoreo de contactos para los usuarios, como bases de datos y servicios
de minería de datos a empresas.
49
• 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 operativos 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
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
archivos
Si Si Si Si Si
Compartir Archivos 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.
51
4. Prospectiva
Los sistemas operativos y escritorios basados en la Web representan los deseos
de usuarios de internet que de una u otra manera han sido parte su evolución y
han visto nacer nuevas formas de ver la red.
Mientras que los sistemas operativos web buscan maximizar la capacidad de
trabajo en la red, administrando recursos de hardware y software por medio de
sistemas distribuidos, estos proyectos, al ser cerrados, no tienen ninguna
interacción con la comunidad de usuarios.
Los webtops, por otra parte, se apoyan en los sistemas operativos nativos y sus
browsers para aprovechar las aplicaciones desarrolladas mediante tecnologías
web ya existentes.
Los escritorios web ofrecen facilidad de uso y desarrollo, creando comunidades
que crecen día por día, suministrando un gran número de aplicaciones sencillas
que cumplen con las necesidades diarias de los usuarios.
Protocolos de comunicación entre webTops
A pesar del gran número de aplicaciones disponibles en la web, estas trabajan de
forma separada al estar diseminadas en diferentes sistemas, por lo cual corren el
riesgo de formar islas o grupos de servicios aislados similares a los presentes en
los sistemas operativos locales.
El primer paso, necesario para que los diferentes escritorios web de código abierto
puedan colaborar entre sí, es crear un estándar a nivel del WebTop, que permita
la interoperabilidad entre aplicaciones.
52
Los estándares permitirían a los webTops comunicarse entre sí para proveer
información acerca de las propiedades, configuración, permisos y archivos
necesarios para cada aplicación. La información sobre los usuarios y sus archivos
personales, de serian privados y exclusivos de cada webtop. De esta forma se
garantiza la privacidad y seguridad del sistema.
Estos mecanismos de comunicación estarían distribuidos en servidores de los
diferentes webtops, para evitar cuellos de botella y el uso de sistemas
centralizados manejados por terceros, que comprometan la seguridad e
independencia del webtop.
El aporte para el usuario por parte de estos protocolos, es la posibilidad de
desligar las aplicaciones de los sistemas en donde fueron creadas, lo cual
otorgaría libertad para escoger un conjunto de aplicaciones que más se ajuste a
sus necesidades, deshaciendo las ataduras actuales.
A nivel de aplicación, es necesario crear servicios para administrar listas de
permisos que restrinjan el acceso a los archivos de un usuario, por parte de
aplicaciones externas y usuarios provenientes de otros WebTops.
Cabe recordar que cada uno de los webTops maneja de manera diferente su
sistema de archivos virtual; así se hace necesario asegurar la compatibilidad entre
los archivos en los diferentes sistemas, por medio de un estándar que garantice el
buen funcionamiento de las aplicaciones.
Toolkits para servicios de almacenamiento externos
Un enfoque alternativo para afrontar las diferencias entre los sistemas virtuales de
archivos, es recurrir a servicios de almacenamiento externo como Amazon o
netbox. Con el manejo externo del sistema de archivos se aprovecha la Web como
53
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.
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
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
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.
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
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.
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
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.
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 scalable 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/
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
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=4e8z137fh5kk7be1rl86
0qqoa7tvx22u
Esta operación me devuelve un respuesta XML:
<response>
<status>get_ticket_ok</status>
<ticket>b3oa240x5d2kap1bqz76z7ithri43j4o</ticket>
</response>
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=4e8z137fh5kk7be
1rl860qqoa7tvx22u&ticket=b3oa240x5d2kap1bqz76z7ithri43j4o
Esta operación me devuelve una respuesta XML:
<response>
<status>get_auth_token_ok</status>
<auth_token>0qkrbb0jo8oo8cnjpv787d7rhaodblpa</auth_token>
<user>
<login>kira_ken@hotmail.com</login>
<email>kira_ken@hotmail.com</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.
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=4e8z137fh5kk7
be1rl860qqoa7tvx22u&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/2f2984917e9b9e8
9da9df457e5ff9ac3" 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=rrc1d3ntb53tt6b2vhail6rdtrsxov3
v&auth_token=tkm1l2ojyhgrf86zzvdqvoa6zcqss6pf&target=folder&target_id=73813
3894377
Respuesta:
<?xml version='1.0' encoding='UTF-8'?>
<response>
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();
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.fileUrl = url;
this.win.setContent("<div>Loading...</div>");
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.fileUrl
+ '</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
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
{
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;
}

Más contenido relacionado

Similar a Serva Parco Flor (2).pdf (20)

Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
web architectures
web architecturesweb architectures
web architectures
 
Marco conceptual
Marco conceptualMarco conceptual
Marco conceptual
 
Examen Profesional 1
Examen Profesional 1Examen Profesional 1
Examen Profesional 1
 
Web 2 0
Web 2 0Web 2 0
Web 2 0
 
Web 2 pamela sanchez
Web 2 pamela sanchezWeb 2 pamela sanchez
Web 2 pamela sanchez
 
web 2.0
web 2.0web 2.0
web 2.0
 
UWE
UWEUWE
UWE
 
Guia de aprendizaje 4 cms
Guia de aprendizaje 4 cmsGuia de aprendizaje 4 cms
Guia de aprendizaje 4 cms
 
web
webweb
web
 
Historia de la WEB
Historia de la WEBHistoria de la WEB
Historia de la WEB
 
web 2.0
web 2.0web 2.0
web 2.0
 
LA WEB 2.0
LA WEB 2.0LA WEB 2.0
LA WEB 2.0
 
LA WEB 2.0
LA WEB 2.0LA WEB 2.0
LA WEB 2.0
 
WEB 2.0
WEB 2.0WEB 2.0
WEB 2.0
 
LA WEB 2.0
LA WEB 2.0LA WEB 2.0
LA WEB 2.0
 
web 2.0
web 2.0web 2.0
web 2.0
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
WEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIALWEB 2.0 Y RED SOCIAL
WEB 2.0 Y RED SOCIAL
 

Último

(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)
(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)
(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)UDMAFyC SECTOR ZARAGOZA II
 
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdf
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdfSISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdf
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdfFabiTorrico
 
Revista de psicología sobre el sistema nervioso.pdf
Revista de psicología sobre el sistema nervioso.pdfRevista de psicología sobre el sistema nervioso.pdf
Revista de psicología sobre el sistema nervioso.pdfleechiorosalia
 
Celulas del sistema nervioso clase medicina
Celulas del sistema nervioso clase medicinaCelulas del sistema nervioso clase medicina
Celulas del sistema nervioso clase medicinaSalomeLoor1
 
DETERMINISMO DEL TRABAJO DE PARTO-1.pptx
DETERMINISMO DEL TRABAJO DE PARTO-1.pptxDETERMINISMO DEL TRABAJO DE PARTO-1.pptx
DETERMINISMO DEL TRABAJO DE PARTO-1.pptxfiorellaanayaserrano
 
Trombocitopenia Inmune primaria , clínica
Trombocitopenia Inmune primaria , clínicaTrombocitopenia Inmune primaria , clínica
Trombocitopenia Inmune primaria , clínicaVillegasValentnJosAl
 
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADAS
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADASACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADAS
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADASjuanjosenajerasanche
 
PRIMEROS AUXILIOS BOMBEROS 2024 actualizado
PRIMEROS AUXILIOS BOMBEROS 2024 actualizadoPRIMEROS AUXILIOS BOMBEROS 2024 actualizado
PRIMEROS AUXILIOS BOMBEROS 2024 actualizadoNestorCardona13
 
Sistema Nervioso Periférico (1).pdf
Sistema Nervioso Periférico      (1).pdfSistema Nervioso Periférico      (1).pdf
Sistema Nervioso Periférico (1).pdfNjeraMatas
 
patologia de robbins capitulo 4 Lesion celular.pdf
patologia de robbins capitulo 4 Lesion celular.pdfpatologia de robbins capitulo 4 Lesion celular.pdf
patologia de robbins capitulo 4 Lesion celular.pdfVilcheGuevaraKimberl
 
Histologia del sistema respiratorio y sus funciones
Histologia del sistema respiratorio y sus funcionesHistologia del sistema respiratorio y sus funciones
Histologia del sistema respiratorio y sus funcionesCarlosVazquez410328
 
Patologías de los eritrocitos-Histologia
Patologías de los eritrocitos-HistologiaPatologías de los eritrocitos-Histologia
Patologías de los eritrocitos-Histologia Estefa RM9
 
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICA
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICACONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICA
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICAmjaicocr
 
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)FidoPereira
 
infografía seminario.pdf.................
infografía seminario.pdf.................infografía seminario.pdf.................
infografía seminario.pdf.................ScarletMedina4
 
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptx
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptxSangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptx
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptxCarlos Quiroz
 
Relacion final de ingresantes 23.11.2020 (2).pdf
Relacion final de ingresantes 23.11.2020 (2).pdfRelacion final de ingresantes 23.11.2020 (2).pdf
Relacion final de ingresantes 23.11.2020 (2).pdfAlvaroLeiva18
 
HEMORROIDES, presentación completa. pptx
HEMORROIDES, presentación completa. pptxHEMORROIDES, presentación completa. pptx
HEMORROIDES, presentación completa. pptxbv3087012023
 
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptx
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptxFISIOLOGIA BACTERIANA y mecanismos de acción (1).pptx
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptxLoydaMamaniVargas
 
PUNTOS CRANEOMÉTRICOS PARA PLANEACIÓN QUIRÚRGICA
PUNTOS CRANEOMÉTRICOS  PARA PLANEACIÓN QUIRÚRGICAPUNTOS CRANEOMÉTRICOS  PARA PLANEACIÓN QUIRÚRGICA
PUNTOS CRANEOMÉTRICOS PARA PLANEACIÓN QUIRÚRGICAVeronica Martínez Zerón
 

Último (20)

(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)
(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)
(2024-04-30). ACTUALIZACIÓN EN PREP FRENTE A VIH (PPT)
 
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdf
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdfSISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdf
SISTEMA NERVIOSO ORGANIZADOR GRAFICO.pdf
 
Revista de psicología sobre el sistema nervioso.pdf
Revista de psicología sobre el sistema nervioso.pdfRevista de psicología sobre el sistema nervioso.pdf
Revista de psicología sobre el sistema nervioso.pdf
 
Celulas del sistema nervioso clase medicina
Celulas del sistema nervioso clase medicinaCelulas del sistema nervioso clase medicina
Celulas del sistema nervioso clase medicina
 
DETERMINISMO DEL TRABAJO DE PARTO-1.pptx
DETERMINISMO DEL TRABAJO DE PARTO-1.pptxDETERMINISMO DEL TRABAJO DE PARTO-1.pptx
DETERMINISMO DEL TRABAJO DE PARTO-1.pptx
 
Trombocitopenia Inmune primaria , clínica
Trombocitopenia Inmune primaria , clínicaTrombocitopenia Inmune primaria , clínica
Trombocitopenia Inmune primaria , clínica
 
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADAS
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADASACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADAS
ACRONIMO TIMERS TRATAMIENTO DE HERIDAS AVANZADAS
 
PRIMEROS AUXILIOS BOMBEROS 2024 actualizado
PRIMEROS AUXILIOS BOMBEROS 2024 actualizadoPRIMEROS AUXILIOS BOMBEROS 2024 actualizado
PRIMEROS AUXILIOS BOMBEROS 2024 actualizado
 
Sistema Nervioso Periférico (1).pdf
Sistema Nervioso Periférico      (1).pdfSistema Nervioso Periférico      (1).pdf
Sistema Nervioso Periférico (1).pdf
 
patologia de robbins capitulo 4 Lesion celular.pdf
patologia de robbins capitulo 4 Lesion celular.pdfpatologia de robbins capitulo 4 Lesion celular.pdf
patologia de robbins capitulo 4 Lesion celular.pdf
 
Histologia del sistema respiratorio y sus funciones
Histologia del sistema respiratorio y sus funcionesHistologia del sistema respiratorio y sus funciones
Histologia del sistema respiratorio y sus funciones
 
Patologías de los eritrocitos-Histologia
Patologías de los eritrocitos-HistologiaPatologías de los eritrocitos-Histologia
Patologías de los eritrocitos-Histologia
 
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICA
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICACONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICA
CONTROL DE CALIDAD EN LA INDUSTRIA FARMACEUTICA
 
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)
AGENTES FÍSICOS EN FISIOTERAPIA (CFF OPHYSIO)
 
infografía seminario.pdf.................
infografía seminario.pdf.................infografía seminario.pdf.................
infografía seminario.pdf.................
 
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptx
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptxSangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptx
Sangrado Uterino Anormal. Dr Carlos Quiroz_052747.pptx
 
Relacion final de ingresantes 23.11.2020 (2).pdf
Relacion final de ingresantes 23.11.2020 (2).pdfRelacion final de ingresantes 23.11.2020 (2).pdf
Relacion final de ingresantes 23.11.2020 (2).pdf
 
HEMORROIDES, presentación completa. pptx
HEMORROIDES, presentación completa. pptxHEMORROIDES, presentación completa. pptx
HEMORROIDES, presentación completa. pptx
 
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptx
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptxFISIOLOGIA BACTERIANA y mecanismos de acción (1).pptx
FISIOLOGIA BACTERIANA y mecanismos de acción (1).pptx
 
PUNTOS CRANEOMÉTRICOS PARA PLANEACIÓN QUIRÚRGICA
PUNTOS CRANEOMÉTRICOS  PARA PLANEACIÓN QUIRÚRGICAPUNTOS CRANEOMÉTRICOS  PARA PLANEACIÓN QUIRÚRGICA
PUNTOS CRANEOMÉTRICOS PARA PLANEACIÓN QUIRÚRGICA
 

Serva Parco Flor (2).pdf

  • 1. 1 Web-Os: Sistemas Operativos Web Caracterización de WebOS y WebTops Andrés Echeverría Acuña Universidad De los Andes Facultad De Ingeniería De Sistemas 2008
  • 2. 2 Web-Os: Sistemas Operativos Web Caracterización de W WebOS y WebTops Andrés Echeverría Acuña Trabajo de Grado presentado como Requisito para optar al titulo de Ingeniero de Sistemas Asesor: Rafael Gómez Bogotá Universidad De los Andes Facultad De Ingeniería De Sistemas 2008
  • 3. 3 AGRADECIMIENTOS Quiero expresar mi agradecimiento: A mis padres por el apoyo incondicional que me brindaron a lo largo de la carrera. A mi abuela Beatriz por su apoyo incondicional, sus consejos, su compañía y la ayuda la cual siempre ha evitado que me sienta solo. A mi director y asesor de tesis Rafael Gómez Díaz, por su calidez, apoyo y confianza al brindarme la oportunidad de trabajar en este proyecto. A todos mis buenos amigos que siempre encontraron palabras para incentivarme y ayudarme a retomar el camino.
  • 4. 4 CONTENIDO Pág. Introducción 5 1. Tecnologías Web 9 1.1. Aplicaciones y servicios Web 10 1.2. Web.2.0 11 1.3. Web.3.0 13 1.4. 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
  • 5. 5 INTRODUCCION El número de sistemas, servicios y aplicaciones desarrollados para la Web crece constantemente debido en parte a la gran popularidad de las redes sociales y al uso de nuevas tecnologías que permiten crear aplicaciones más rápidas e interactivas en nuestros navegadores, a la computación móvil presente en la mayoría de dispositivos de comunicación actuales y a la necesidad de permitir a los diferentes usuarios de una red el uso de los diversos recursos de la misma (tales como capacidad de procesamiento, capacidad de almacenamiento o uso de aplicaciones de sistemas operativos). [1] Hoy en día podemos encontrar todo tipo de aplicaciones en la red, tales como comercio electrónico, mapas y posicionamiento global, editores de toda clase de documentos, juegos multi-jugador, correo, chat, hojas de cálculo, organizadores, 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.
  • 6. 6 En primera instancia se encuentran proyectos basados en sistemas distribuidos como el WEBOS Project (1996) de la universidad Berkeley de California y el WOS Project (1999), los cuales buscan crear un sistema operativo Web que aproveche eficientemente los recursos de procesamiento y servicios disponibles. Estos sistemas operativos Web distribuidos deben tener la capacidad de elegir la mejor opción, entre el conjunto de aplicaciones distribuidas en los diferentes servidores, en cuando velocidad de procesamiento, velocidad de conexión y disponibilidad, en el momento que el usuario requiera un determinado servicio, Luego encontramos los escritorios Web (WebTops) o Internet Operating Systems, los cuales son servicios no distribuidos (Singular Network Service) que convierten el escritorio en un servicio Web, con lo cual se crea un escritorio virtual con la mayoría de funciones usuales, como manejo y almacenamiento de archivos, procesadores de texto, etc. Mientras las aplicaciones de escritorio corren sobre el sistema operativo, ya sea Windows, UNIX u otro, las aplicaciones Web corren sobre el Browser, donde el cliente y el servidor pueden comunicarse de manera sincrónica o, más recientemente gracias a modelos de aplicaciones Web como AJAX, de manera asincrónica. [1] Esto emula, en cierta forma, las antiguas Terminal sessions usadas en los años 80, las cuales permitían a los usuarios ejecutar comandos de forma remota en los servidores mientras el cliente solo se encargaba de la entrada y presentación de los datos. Las nuevas generaciones, llamadas Thin clients, tienen más capacidad de procesamiento, y ejecutan Web Browsers o software de escritorio remoto. [2] En este trabajo se estudian algunos de los diferentes Web-Os disponibles en Internet en cuanto a sus arquitecturas, ventajas, desventajas, características y diferencias, con el fin de realizar una caracterización de forma que sea posible identificar qué separa a los sistemas operativos Web de los Webtops.
  • 7. 7 Con este Objetivo a cumplir el trabajo se divide de la siguiente manera: En el primer capítulo de este trabajo se presentan conceptos básicos de diferentes tecnologías como la Web 2.0, AJAX y servicios Web, que han sido de vital importancia para la evolución de Internet y han incrementado el uso de las aplicaciones web al igual que la popularidad de los sistemas operativos web. Al final del capitulo se estudian conceptos de la Web 3.0 dando una visión fundamental para el futuro de los web OS. En el capitulo dos se presenta un estudio del estado actual de los sistemas operativos web y los proyectos realizados hasta la fecha. Entre estos se escogen cinco sistemas de diferentes características etiquetados como sistemas operativos web: WOS, Webos, eyeOS, youOS y G.ho.st. Analizando sus características, su arquitectura, las aplicaciones que ofrecen y sus diferencias conceptuales se buscan definir puntos básicos que separen los sistemas operativos web de los escritorios web. En el capitulo 3 se realiza una caracterización con base en el análisis y la comparación de los cinco diferentes WebOS y WebTops estudiados. Se busca diferenciar puntos clave al momento de definir uno y otro grupo, además de dar nuevas luces al debate popular en la comunidad web que pretende definir el sistema operativo web ideal del futuro. En el capitulo 4 se realiza una prospectiva basada en los requerimientos esperados por los usuarios y las características actuales de los sistemas operativos web estudiados. Se desarrollan algunos puntos clave que presentan falencias actualmente como el desarrollo de protocolos y toolkits para la comunicación entre aplicaciones y la necesidad de rediseñar la web entorno al uso de objetos distribuidos.
  • 8. 8 Para finalizar en el capitulo 5 presentando las conclusiones finales de la investigación, los pros y contras de los sistemas operativos actuales y algunos comentarios sobre su futuro. Dada la importancia que presenta para el usuario la posibilidad de desarrollar nuevas aplicaciones que le den flexibilidad al sistema y le permitan personalizar su interfaz, se realiza una aplicación de ejemplo para uno de los sistemas disponibles, con el objetivo de estudiar las diferentes posibilidades ofrecidas por los Web-Os a los desarrolladores. Esta aplicación es presentada en los anexos, desarrollada con los Apis de EyeOS y YouOS, conecta de manera sencilla el sistema operativo web con un sistema de almacenamiento externo llamado boxnet.
  • 9. 9 1. Tecnologías Web La Web ha jugado un papel fundamental en el proceso de globalización del mundo actual. Se ha convertido en el principal medio de Comunicación e información gracias a su carácter inmediato y de fácil publicación. Su evolución de medio de escritura, en donde simplemente se almacena información a medio de lectura/escritura en donde el usuario puede tomar un papel activo en la creación de la web, trae consigo un sinnúmero de implicaciones sociales derivadas de la participación masiva de personas de todas partes del mundo en temas como la política, el arte, la cultura, los negocios, etc. No en vano la Web 2.0 es también conocida como la web Social. El gran flujo de información, la necesidad de encontrar enlaces permanentes de comunicación y el deseo de romper las barreras tiempo/espacio para adquirir inmediatez y ubicuidad son algunas de las razones que han impulsado la creación y popularidad de aplicaciones web como los desktops y hacen necesaria la evolución de los sistemas operativos actuales para llegar a los tan anhelados sistemas operativos Web. Los cambios necesarios en el paso de la web 1.0 a la web 2.0 y muchos de los elementos necesarios para la creación de aplicaciones fundamentales en los WebOS se encuentran apoyados por nuevas tecnologías, entre las cuales están los CSS necesarios para la validación semántica, pues permite separar diseño y contenido; RSS/Atom, para la sindicación y agregación de contenidos, usado principalmente en la publicación de noticias; SOAP/REST/JCC, estilos para la creación de servicios web, Java web start o Java Scrip clientes ricos ligeros no HTML y AJAX fundamental para la creación de aplicaciones web asincrónicas basadas en XML y HTML.
  • 10. 10 1.1. Servicios y Aplicaciones Web Las aplicaciones y servicios Web son el punto central de los sistemas operativos Web, ya que se encargan de ofrecer las funcionalidades usualmente encontradas en los escritorios. Desde el punto de vista del cliente son independientes de la plataforma de la máquina y del lenguaje de programación, ya que funcionan por medio de tecnologías como HTTP y XML, ejecutadas en los Browsers.[4] Un servicio Web, según el W3C (World Wide Web Consortium, principal organización internacional de estándares para el www), es una interfaz que provee un conjunto de operaciones con las cuales se pueden acceder a cierto servicio en la red. Gracias a estándares abiertos, permiten la comunicación entre aplicaciones con distintos lenguajes de programación, independientemente de la plataforma donde estas se ejecuten. [3] Un punto clave al momento de hablar de Web-OS y aplicaciones Web es la movilidad. Hoy en día encontramos aplicaciones que nos permiten realizar comercio electrónico, acceder a comunidades virtuales, leer las ultimas noticias (RSS feeds), manejar fotografías etc. desde un sinfín de dispositivos wireless, como teléfonos celulares, palms y demás, sin importar en qué lugar nos encontremos. El aumento de estos dispositivos en los últimos años, sumado al auge de las redes sociales en Internet, ofrece un nuevo campo para las aplicaciones el Web, de gran popularidad en el área de la tecnología. Este se ha visto respaldado por una gran ola de desarrolladores que día a día crean nuevas aplicaciones, la mayoría de ellas gratuitas y compatibles con los browsers más populares o sistemas operativos de los dispositivos portátiles.
  • 11. 11 Arquitectura de las aplicaciones Web Tomado de W3C, Web Services Architecture [19] Se basa en la arquitectura SOA (arquitectura orientada a servicios) y está conformada por tres roles (proveedor del servicio, solicitante del servicio y registro del servicio) y tres operaciones (encontrar, publicar y 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
  • 12. 12 la URL con la cual el solicitante del servicio hace bind y luego invoca el servicio [4]. 1.2. Web 2.0 La búsqueda de información en Internet acerca de Web 2.0 y Web 3.0 nos dirige inmediatamente a miles de blogs en donde todo tipo de personas, desde expertos hasta novatos comparte noticias y pensamientos propios acerca de nuevas tecnologías, lo cual evidencia la importancia de esta nueva tendencia que nace en el marco de la Web 2.0. En la primera conferencia acerca este tema (año 2005), Tim O`Reilly creó el termino Web 2.0, no como un nuevo grupo de especificaciones sobre la Web, sino como una nueva forma de ver la red, como una fuerza que transforma la manera de hacer negocios e interactuar de los usuarios, caracterizada por las premisas de compartir información, promover la creatividad, la colaboración y aprovechar el efecto viral de la red. [10] El uso principal de la Web 1.0 es la digitalización y publicación de la información impresa como libros, noticias y otros documentos. La Web 2.0 está enfocada en proveer servicios, como compartir la información y las redes sociales. La referencia más clara acerca de esta dinámicas donde los usuarios son quienes generan los contenidos es el auge de las redes sociales, los sitios de publicación como blogs, la publicación de noticias RSS feed y demás sitios como YouTube, Flickr o Digg donde se distribuyen videos y imágenes. El cambio en el modelo de negocios y desarrollo de aplicaciones sobre la Web parte de la idea de ver la red como una plataforma que maximiza el uso de las herramientas actuales, ofreciendo servicios y no productos, teniendo en cuenta las necesidades y comportamientos de los usuarios.
  • 13. 13 Los principales preceptos de la Web 2.0 se pueden sintetizar en: • Ver la Web como una plataforma • Aprovechar la inteligencia colectiva • La propiedad, adquisición y uso de la información • Modelos ligeros de programación para servicios Web • Ubicuidad de acceso y multiplicidad de dispositivos • Enriquecer la experiencia del usuario Ajax se ha convertido en el estandarte de la Web 2.0, pues es el arma principal de los desarrolladores en el momento de crear aplicaciones. Esto se da gracias al conjunto de tecnologías como JavaScrip (un lenguaje de programación ligero) y la posibilidad de comunicación asincrónica que agiliza la comunicación con el usuario. En el capítulo 1.4 se presentan las principales características de las tecnologías reunidas en Ajax y cómo estas proveen los diferentes medios necesarios para desarrollar aplicaciones web 2.0 como procesadores de documentos online, calendarios, chats, etc. esenciales en los desktops y base fundamental de los sistemas operativos web. 1.3. Web 3.0 Ahora que es posible publicar la información en forma digital gracias a la Web 1.0 y la disponibilidad de un gran número de servicios Web para compartir esta información y crear redes sociales gracias a la Web 2.0, la siguiente pregunta que los internautas se hacen es ¿Qué será la Web 3.0? Este concepto probablemente se definirá a sí mismo, como ocurre a gran escala con la web2.0 del cual no se sabe aún qué es totalmente ni cómo explotarla y una
  • 14. 14 de sus posibles funcionalidades estará enfocada en el valor de la gran cantidad de información que se comparte en Internet y el uso de plataformas para la creación de aplicaciones. Las relaciones en las redes sociales y las actividades de los usuarios en Internet tanto como la clase de datos que estos comparten hacen parte fundamental de la Web implícita y crea un nuevo tipo de información la cual adquiere valor no por sí misma de manera aislada, sino por la forma como los datos se relacionan y como caracteriza diferentes grupos de personas definiendo sus gustos para posibles modelos de mercado. Los últimos servicios Web giran alrededor de plataformas de código abierto que permiten el uso de herramientas para la creación de programas los cuales no necesariamente proceden de los proveedores de software sino que son aplicaciones creadas por los mismos usuarios. [11] La importancia de la Web 3.0 va mucho mas allá de su impacto en Internet pues posiblemente también modifique la dinámica entre usuarios y proveedores de software como los creadores de hardware PCS y otros dispositivos. Los servicios Web disponibles en línea toman ventaja cada día sobre las aplicaciones que trabajan de manera local sin conexión. Eric Schmidt CEO de google, que se refirió a este tema en el Seoul Digital Form, cree que algunas de las características que debe tener la Web 3.0 son [12]: • Trabajo conjunto entre el grupo de aplicaciones • Aplicaciones relativamente pequeñas • Gestión de datos encontrados en la red • Aplicaciones ejecutadas por cualquier dispositivo (PC, móvil) • Aplicaciones rápidas y personalizables • Distribución viral (redes sociales, e-mail)
  • 15. 15 Aunque es difícil definir qué es Web 2.0 o Web 3.0 y se presenta un arduo debate en los diferentes grupos de Internet desde que se presento el concepto por O´Reilly, no es inútil estudiar las diferentes posibilidades que ofrecen pues, más que el conjunto de tecnologías, lo realmente importante es la caracterización sobre las posibilidades que ofrecen las aplicaciones al usuario. Como dice Eric Schmidt CEO de google, el concepto detrás de Web 3.0 podría ser el trabajo conjunto entre las diferentes aplicaciones, y actualmente, aunque encontramos miles de aplicaciones Web (por ejemplo para editar un documento encontramos zoho, google docs, widows writer y muchos más en diferentes Webtops), no existe un protocolo que permita trabajar entre ellas, compartir datos o escoger funcionalidades de aquí y allá para crear aplicaciones personalizadas. Una de las mejores definiciones encontrada en Internet, y que nace de un concurso en el cual miles de personas compartían sus conceptos sobre la Web [13], dice: • Web 1.0 Un Ellos Centralizado. Viejos portales sin interacción, libros y periódicos digitales. • Web 2.0 Un Nosotros Descentralizado Contenido generado por los usuarios (blogs, imágenes, videos) • Web 3.0 Un Yo Distribuido Contenido generado por el usuario + Contenido generado por la máquina 1.4. 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
  • 16. 16 Web asincrónicas. Sus siglas provienen de Asynchoronous JavaScrip and XML. AJAX ha cobrado gran importancia, pues ha permitido modificar el modelo clásico de las aplicaciones Web para crear lo que conocemos como Web 2.0. Usualmente, cuando un cliente hace un requerimiento al servidor web, este realiza un proceso a la información y le da la respuesta al cliente por medio de una página HTLM; esto genera un lapso de tiempo en el cual el cliente espera incapaz de realizar ninguna otra operación en la aplicación. Ajax elimina este problema de petición-espera introduciendo un motor AJAX a manera de intermediario, el cual es cargado por el navegador en el momento de cargar la página web. Este monitor se encarga de comunicarse con el servidor en nombre del usuario, de manera que la comunicación sea asincrónica y el cliente pueda seguir interactuando con la página mientras espera por la respuesta o enviar o recibir información del servidor sin necesidad de volver a cargar toda la pagina. [8] Tomado de Ajax: Un Nuevo Acercamiento a las Aplicaciones Web. [8]
  • 17. 17 A continuación se enumera el conjunto de tecnologías que participan en AJAX: • XHTML y CSS: presentación visual basada en estándares. XHTML (Extensible Hypertext markup Language) es un lenguaje de marcado el cual une las funcionalidades de HTML y las especificaciones de XML para transmitir la información de documentos, mientras que los CSS (Cascading Style Sheets) se encarga de su presentación y diseño, separando así claramente la información y la forma de presentarla, base principal de una web semántica. • XML y XSLT: manipulación de dato Estos dos lenguajes se combinan para procesar o trasformar la información por medio de motores XSLT usados para la edición de páginas web. XML (Extensible Markup Language) es un lenguaje extensible el cual presenta la información en forma estructurada, mientras que el XSLT (Extensible Stylesheet Language Transformations) permite crear plantillas que describen cómo se debe transformar la información contenida en estos documentos a otros formatos facilitando el intercambio de información. • Document Object Model (DOM): interacción dinámica Este API es un modelo de objetos para la representación de documentos HTML y XML, por medio del cual las aplicaciones pueden acceder y modificar dinámicamente el contenido, la estructura lógica y estilo de los documentos. DOM es la principal alternativa para el manejo de XML en aplicaciones realizadas bajo AJAX. Su estructura es un árbol de nodos; donde cada
  • 18. 18 nodo representa un elemento y el texto se representa por un nodo de texto .Para los desarrolladores, este modelo permite almacenar datos en forma de documentos con cierta jerarquía, la cual provee una referencia para acceder a cada objeto, modificarlo o eliminarlo añadiendo interactividad a las páginas web. Tomado de DOM: The Document Object Model. [20] La herencia en los nodos se representa con el esquema padre-hijo. Para acceder a los nodos con JavaScrit para una posible aplicación en AJAX, es posible usar algunos métodos como getElementById, createElement, getElementsByTagName, appendChild y removeChild. En el momento de remover un elemento este ya no será parte del DOM pero no se destruye por completo, pues se guarda una referencia en memoria al objeto eliminado, de manera que el nodo se pueda reutilizar posteriormente. • XMLHttpRequest : recuperación de datos de manera asincrónica También conocida como XHR, esta interfaz es utilizada por las aplicaciones web para realizar peticiones HTTP y HTTPS al servidor en páginas Web sin necesidad de cargar toda la página nuevamente. Gracias a que el cliente puede crear varias instancias de la misma clase, esta interfaz puede proporcionar contenido dinámico y comunicación asincrónica.
  • 19. 19 Puede ser usado por JavaScript y otros web 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
  • 20. 20 dinámicamente y las rutinas de comunicación con el servidor. • La hoja de estilo CCS. • La pagina que contiene los scripts ejecutados en el servidor (PHP, JSP) 2. Sistemas Operativos Web El termino Web-Os hace referencia a una gran variedad de sistemas que pretenden dar soluciones a la necesidad de desarrollar Sistemas Operativos basados en la Web. En general encontramos dos grupos en los cuales se pueden agrupar la mayoría de proyectos según su alcance y arquitectura. Estos son: 1. 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]
  • 21. 21 En este campo encontramos dos proyectos desarrollados por grupos de investigación universitarios, en la segunda mitad de los años 90. 2.1.1. The WebOS Project Este proyecto, realizado por la división de ciencias de la computación de la universidad Berkeley de California, se desarrolló con el fin de crear un sistema operativo en el cual las diferentes aplicaciones Web tengan acceso y puedan manejar los diversos recursos compartidos alrededor de la Web para el beneficio de todos los usuarios. Este sistema se aparta del modelo clásico petición-respuesta entre los Browser y servidores, para tratar de demostrar la posibilidad de un sistema que maneja tanto el procesamiento, como el almacenamiento y manejo de datos, de acuerdo con los recursos disponibles en el entorno, la características de los servicios Web y el estado de conexión de la red a dichos servidores. Así, el sistema se encarga de balancear las cargas de procesamiento y de transferencia de archivos de tal forma que el uso de ancho de banda se maximice mientras la latencia se minimiza. [5] Para proveer servicios OS, el Framework de WebOS debe permitir la construcción de servicios Web que sean configurables dinámicamente (flexibilidad), conscientes de su entorno geográfico, escalables y con un alto porcentaje de disponibilidad y accesibilidad. Además debe ofrecer funciones OS globales como: direccionamiento (Naming), asignación de recursos, comunicación entre procesos, ejecución remota de procesos, tolerancia a fallos, programación de tareas, autenticación de usuarios y seguridad. [6] El prototipo del Framework está compuesto por cuatro grandes componentes, (i) Smart Clients, los cuales se encargan de suministrar tolerancia a fallos y balance
  • 22. 22 de las cargas de acceso a los servicios Web, (ii) WebFS, un sistema global para el manejo de archivos, (iii) un manejo de recursos el cual por medio de una máquina virtual se encarga tanto de la asignación de recursos como de la seguridad en ejecución de programas, y (iv) autenticación/autorización para la seguridad en el acceso a recursos globales Web. [5] Smart Clients (Naming) La arquitectura de los clientes inteligentes permite que extensiones específicas para cada servicio se carguen dinámicamente en el lado del cliente para mantener un seguimiento de servicios móviles, balance de carga entre servidores de manera individual y transparencia de errores para los usuarios. Estas extensiones son distribuidas por medio de Applets de Java aprovechando su portabilidad en los diferentes 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.
  • 23. 23 Tomado de WebOS, software support for scalable services. [5] WebFS El sistema de archivos de WebOS funciona como una abstracción de un sistema global coherente de cache, encargado de manejar su uso, mantener la coherencia y controlar el acceso. Funciona por medio de una asociación de listas extensibles de propiedades a cada archivo del usuario, allí se encuentran datos como los nombres del propietario, permisos de acceso, políticas de encripción y políticas para mantener la coherencia del cache implementando el protocolo de último en escribir gana y múltiples IP. Estas listas pueden ser accedidas por medio de una llamada ioctl al sistema UNIX. [6] Este sistema de archivos usa las direcciones URL como 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
  • 24. 24 Dada la naturaleza de los sistemas basados en la Web donde sufren un gran número de ataques, se hace indispensable que los desktop provean acceso seguro y autenticado tanto a la información pública como privada requerida por las aplicaciones, de forma que se limite el acceso a archivos y demás recursos. Para esto, WebOS se vale de una lista de control de acceso a archivos y recursos donde cada usuario posee una llave pública única, que es validada por una o más autoridades de replicado similares a servidores DNS. Con este sistema se previene el acceso sin autorización y además es posible crear dominios en donde se dé prioridades sobre los procesos y derechos de acceso a archivos u otros recursos, siempre en el contexto de grupos de dominio seguro. Manejador de recursos El manejador de recursos es el responsable de administrar las peticiones realizadas por sitios remotos, autenticar la identidad del cliente y determinar si tiene los permisos indicados para ejecutar dicha petición. Para esto crea una máquina virtual encargada de la ejecución de los procesos, la cual verifica que los procesos no interfieran entre ellos e interactúa con el sistema de autorización para validar las restricciones asociadas a cada dominio o grupo de trabajo de modo que se mantenga la integridad del sistema, Luego de autenticar satisfactoriamente al usuario, el siguiente paso es determinar por medio de la lista de acceso de control (ACL) los permisos de escritura, lectura, ejecución de archivos y procesos del usuario según el domino en que este se encuentre y autorizarlo. [6]
  • 25. 25 La maquina virtual se encarga del control de procesos, los cuales son ejecutados con privilegios limitados previniendo así que interfieran en operaciones de otros procesos o máquinas virtuales, y del manejo de recursos pues establece la cantidad de memoria y CPU que el proceso puede utilizar. En el proyecto WebOS se usa específicamente Janus para crear la máquina virtual el cual está basado en el sistema de archivos de Solaris. 2.1.2. WOS Es un sistema diseñado como distribuido y versionado, enfocado a proveer soluciones para la ubicuidad en la computación global y desarrollar servicios que cumplan con una visión centralizada en la heterogeneidad y naturaleza dinámica de la red. La idea detrás de WOS es formar una gran red en donde se encuentran nodos que hacen a su vez de servidor o cliente, con una gran variedad de versiones, los nodos con la misma versión forman comunidades pero a su vez son capaces de comunicarse mediante protocolos determinados y compartir los diferentes servicios con los cuales cuente cada una de las diferentes versiones compatibles. Esta técnica de configuración de software basada en la demanda se llama educción. (Plaice and Ben Lamine 1997). El kernel de un nodo en WOS es un motor que está respondiendo constantemente a las peticiones de otros usuarios e integra funciones de cliente, servidor y mensajero. Cada nodo es capaz de proveer una serie de servicios y a la vez puede pasar las peticiones de servicios provenientes de otros nodos a terceros. El conjunto de Nodos con la misma versión forman una WOSNet o WSOSpace, los cuales, al definir y redefinir continuamente las relaciones con el entorno y entre
  • 26. 26 ellos mismos, forman comunidades. Dado que cada comunidad tienen ciertas características definidas por su entorno, sus nodos ofrecerán diferentes tipos de servicios y según su versión es posible ofrecer diferentes versiones del mismo servicio. Este sistema de nodos es altamente flexible y libre de cuellos de botella, ya que no hay un solo servidor que contenga un catálogo central de todos los servidores y servicios que se encuentran en la red; cada vez que un nodo nuevo se agrega al sistema, este guarda en su propio warehouse la información de los nodos que encuentre por medio del layer de comunicación. El prototipo cuenta con cuatro grandes componentes: la interfaz de usuario (UI), la unidad de control de recursos(RCU), la unidad de control de recursos remotos (RRCU)y la capa de comunicación (WOSCL). Interfaz del Usuario Está subdividida en tres partes: el editor de perfil, el editor de recursos y el menú de búsqueda, con los cuales el cliente describe las características y restricciones de un recurso que quiere publicar para otros usuarios. Estos perfiles se guardan localmente en el nodo. La unidad de control de recursos Acepta peticiones de servicios desde la interfaz de usuario y contacta varios warehouse empezando por el local, hasta encontrar el nodo en el cual el servicio pueda ser ejecutado. Al terminar, si el nodo donde se encontró el servicio es nuevo, se agrega al warehouse.
  • 27. 27 La unidad de control de recursos remotos Acepta peticiones de servicios desde otros nodos y determina si la ejecución es permitida o no según las restricciones de los permisos de acceso. Luego de ejecutar el servicio, pasa los resultados al RCU del cliente. La capa de comunicación La base de este sistema abierto son los protocolos de comunicación, uno encargado de descubrir y localizar (WOSRP) mientras que un segundo protocolo de lenguaje, con su correspondiente parser y servidores, se encarga de los servicios generales (WOSP), como permitir al nodo crear un conjunto de servicios llamado service class dedicada a necesidades especificas del cliente.[18] 2.2. Escritorios Web Los Web DeskTops, también llamados Webtops, son plataformas que simulan el funcionamiento y las propiedades de un sistema operativo de manera virtual en un browser, por medio de aplicaciones web. Generalmente dependen completamente de una conexión a internet pero en los últimos meses algunos desktops han comenzado a diseñar aplicaciones para trabajar desconectado siendo necesaria la sincronización de los sistemas posteriormente. En su mayoría están elaborados mediante AJAX y combinaciones de este con Php, Java y 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
  • 28. 28 seguridad y el rendimiento dependen en gran medida del estado y velocidad de la red. A continuación se presentan tres de los escritorios web más representativos encontrados actualmente en la red. 2.2.1. EyeOS Es una plataforma Open Source desarrollada bajo la arquitectura cliente-servidor; fue diseñada con el objetivo de contener diferentes aplicaciones web que permitieran al usuario crear un Web desktop, que sea accesible desde Internet y simule un Sistema operativo funcional en cualquier Browser. Gracias a que está bajo la licencia GNU (AGPL), es posible crear servidores privados tanto para uso personal como a nivel de compañía completamente gratis, al igual que modificar el código para personalizar el sistemas o desarrollar nuevas aplicaciones. Está desarrollado con PHP y AJAX. El manejo de archivos, usuarios, procesos y comunicación entre el cliente y servidor se realiza por medio de funciones específicas del sistema mediante el kernel y su API. Kernel Es el encargado de proveer las diferentes funciones para el manejo de los widgets, los servicios y las librerías usadas por las diferentes aplicaciones Web.
  • 29. 29 Tomado de eyeOS Developer Manual [7] Los widgets son los encargados de la crear la interfaz gráfica y se cran usando las variables (x, y) que definen su posición en el espacio y variables (high, weight) que definen su tamaño. Servicios y Librerías Los servicios se encargan de ejecutar tareas de bajo nivel como el manejo de la seguridad, autenticación de usuarios,manejo de procesos y el sistema de archivos virtual (VFS) Las librerías son un conjunto de funciones que permiten facilitar el trabajo de las aplicaciones como el manejo de archivos XML, Zip o URL. Servicios Las tareas de bajo nivel como el manejo de archivos son manipuladas por medio de servicios que se comunican con el Kernel y imponen restricciones a las peticiones de las aplicaciones. Entre los servicios encontramos el sistema virtual de archivos (VFS), el administrador de usuarios (UM), el manejador de mensajes (MMAP), el
  • 30. 30 administrador de procesos (PROC), el manejador de respuestas XML (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
  • 31. 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]
  • 32. 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.
  • 33. 33 Otras librerías importantes son eyeSockes con la cual se manejan las conexiones, i18n un sistema de internacionalización para traducciones del sistema y eyeWidget encargado de la interfaz grafica. 2.2.2. YouOS Este escritorio colaborativo web desarrollado por la empresa WebShaka cuenta con alrededor de 700 aplicaciones desarrolladas en su mayoría por los usuarios. Esto se hace posible gracias al sencillo API de YouOs el cual enmascara métodos de javascript y Dojo, sumado a el desarrollo de la aplicación web que ofrece una agradable interfaz que permite crear nuevas aplicaciones o clonar/extender las ya existentes.[16] Una de sus mejores cualidades es la rapidez de reacción en el momento de comunicarse con el usuario, lograda con el uso combinado de Ajax y JavaScript, este ultimo usado para la comunicación con el servidor remoto. Entre sus aplicaciones se encuentran procesador de documentos, chat, manejador de archivos, interpretador de línea de comandos, manejador de procesos, FlickRSS y su propio navegador. Clonado y extensión de aplicaciones. En YouOS todas las aplicaciones son objetos JavaScript por lo cual pueden ser extendidos. Una aplicación extendida hereda todos los atributos y funcionalidades de la aplicación padre, por esta razón todas las aplicaciones en YouOs extienden directa o indirectamente a WebApp, la cual es la aplicación base del sistema y contiene todo los métodos y propiedades que se deben implementar. De esta manera es posible clonar cualquiera de las aplicaciones ya existentes en
  • 34. 34 YouOS y realizar pequeños cambios para crear nuevas funcionalidades. La interfaz de desarrollo también ofrece otras opciones como un Debbuger para corregir el código. YouFS Para guardar y cargar información YouOs se deshace de las comúnmente manejadas bases de datos, liberándose a su vez de lenguajes como SQL, y maneja el sistema de archivos por medio de estructuras de datos JavaScript. En concreto, usa hashtables, de manera que se crea una tupla de forma atributo-valor en donde se guarda la información y se asocia a la aplicación correspondiente. El manejo de las hash tables se realiza por medio de métodos como new data.HashTable("tablahash"), put(“atributo”, valor) y Commit(), guardando así Strings, Arreglos o Objetos. Las estructuras de datos son identificadas mediantes un descriptor de datos. Este está formado por dos partes: primero el namespace en donde se almacenan el identificador de la aplicación, el nombre del usuario y el identificador del proceso; segundo el dataname, que es el nombre único de la estructura de datos análogo al nombre del archivo. De esta forma es posible que las diferentes instancias de una estructura de datos compartan el mismo dataname siendo posible diferenciarlas por medio del identificador en múltiples procesos. Adicionalmente cada estructura de datos tiene una lista de afiliados, los cuales son aplicaciones o usuario que tienen acceso a la información guardada en esta. Si la información es actualizada por su propietario, esta es asincrónicamente descargada en los diferentes usuarios suscritos, permitiendo integración multi- usuario. El permiso de acceso puede ser de dos niveles: permiso de usuario o permiso de acceso público.
  • 35. 35 YouShell Es un interprete javaScrip que simula un Shell de línea de comandos el cual se encuentra en el escritorio de YouOs como una herramienta para obtener acceso rápido a diferentes funciones como son kill y run para manejar procesos; cd, ls, rm, mkdir y chmod para manejar archivos; ds y dt para manejar las estructuras de datos y otros más como clear, exit. [17] API El Api de YouOS está dividido en namespaces lógicos los cuales son grupos de funciones y variables que encapsulan diferente funciones del sistema. Todos los resultados de los diferentes métodos en el API son archivos XML. A continuación se presentan algunos API interesantes para la comunicación entre las aplicaciones: • uos.ui – funciones de Interfaz grafica • uos data – funciones de acceso a estructuras de datos • uos.system – funciones del sistema • uos.control – control del MVC (modelo vista controlador) • uos. message – enviar mensajes de eventos • uos.model – modelo MVC de objeto, listas, arboles, etc. • uos.util – miscelánea API para permisos - manejan los permisos a las estructuras de datos. • get_share_data – retorna una lista de las estructuras a las cuales un usuario puede acceder en el nameSpace de otro usuario. Funciona por aplicación.
  • 36. 36 API para servicios web - proveen acceso a recursos y servicios web • url_xml - Obtiene un archivo xml desde un sitio web • url_html - Obtiene un archivo html de un sitio web • url_get_fs - Obtiene un archivo y lo guarda en el YouFS. Permite establecer el login el password para conectarse y, en el caso del archivo, un path para grabar y la opción de overwrite. API para contenido RSS – Acceso a contenidos RSS para subscriptores • uos.api.rss.getFeed(feedUrl, callback, options) - Obtiene un XML desde el URL y lo pasa como un árbol CML DOM Dojo Es un conjunto de librerías JavaScrip de código abierto para manipular Ajax y eventos. Este toolkit permite emular herencia de objetos, hacer peticiones http asincrónicas e invocar métodos estáticos (también llamados métodos compartidos, de clase o bound methods) los cuales están asociados a una clase en particular. Los eventos realizados en la interfaz grafica, como hacer click o dejar de marcar un área, son manejados por medio del Dojo event model, el cual permite a las aplicaciones suscribirse para que sean informadas cuando un evento es disparado. Los diferentes eventos están divididos en los siguientes grupos:
  • 37. 37 • aplicaciones - uos.system.eventsList.APP. Para los eventos relacionados con las aplicaciones, se crea un objeto llamado 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.
  • 38. 38 • socket_list – lista de los sockets activos y públicos que se pueden leer • socket_read – leer mensajes • socket_write – escribir mensajes Algunos parámetros para el manejo de este api son el id de la aplicación, el id del proceso, el nombre del usuario y un arreglo con los mensajes. 2.2.3. G.ho.st El 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
  • 39. 39 privilegios de acceso. El protocolo predeterminado para las descargas es el http, pero también se ofrece una interfaz BitTorrent™ para distribución a gran escala [15]. Aunque por el momento no cuenta con un API, ni con herramientas de desarrollo, las cuales según su creador serán publicadas en un futuro , G.ho.st permite usar un gran tipo de aplicaciones web creadas por terceros como Zoho, Google Docs, ThinkFree. Youtube, flickr y adicionar aplicaciones propias por medio de URL. Para las aplicaciones provenientes de terceros, G.ho.st maneja un sistema de subscripciones con las cuales se pueden administrar las cuentas y además permiten conectarse automáticamente pues recuerda el nombre y password. Arquitectura En busca de obtener lo mejor del sistema operativo web, como lo mejor de las diferentes aplicaciones web encontradas en internet, G.ho.st usa un modelo de arquitectura en donde por medio del código cliente ejecutado en el browser del usuario es posible acceder a la información de los usuarios guardada en los dispositivos o servicios web de almacenamiento de datos y realizar la comunicación con los diferentes servicios web que procesaran dicha información. La ejecución de las aplicaciones se realiza en el browser del cliente el cual se encarga de subir el client code al cache para que no sea descargado cada vez que se accede a la aplicación. Los datos son manejados por el servicio de almacenamiento de Amazon el cual se encarga de la persistencia.
  • 40. 40 Detalle de la arquitectura de G.ho.st.[ ] 3. Análisis Aunque es posible encontrar un sinfín de referencias a sistemas operativos web en múltiples blogs y páginas de tecnología en internet, esto se debe, en la mayoría de los casos, a la errónea interpretación de su significado, en parte derivado de la gran popularidad de un nuevo término que es ampliamente aceptado pero que presenta una definición difusa e inexacta. La mayoría de opciones presentes en esta gran ola de proyectos que han nacido tras el sueño de los sistemas operativos web y que se encuentran disponibles actualmente para los usuarios, son etiquetadas incorrectamente como Web OS pero son simplemente escritorios web que se apoyan en los browsers para integrar aplicaciones simulando sistemas operativos virtuales.
  • 41. 41 Por otra parte, los sistemas operativos web basados en meta computación son proyectos realizados a manera de investigación por diferentes grupos o universidades, y que, por la naturaleza de internet, sumado a condiciones de mercado, no se han popularizado ni se encuentran disponibles para los usuarios. Estos proyectos de Web-OS se apoyan en la computación distribuida; su arquitectura ofrece servicios de almacenamiento de información distribuida y manejo de recursos de procesamiento distribuidos, conceptos también presentes en los Grids. Estos dos tipos de sistemas cuentan con entusiastas, los cuales presentan a los sistemas operativos web y WebTops como la nueva solución a la necesidad de ubicuidad y simplicidad que buscan empresas y usuario, tanto como detractores, los cuales cuestionan su necesidad y viabilidad criticando principalmente su excesiva dependencia en la red y problemas de seguridad tanto en acceso como almacenamiento debido a participación de terceros en su manejo. Tanto en los WebTops como en los WebOs, son los sistemas operativos usuales instalados en las máquinas como Windows, Mac OS o Linux los que se encargan de manejar el hardware. A continuación se presenta una comparación entre los servicios que prestan sistemas operativos Web y WebTops a desarrolladores y usuarios. 3.1. Comparación En general tanto los Web-Os como los Webtops comparten un conjunto de servicios necesarios para emular un sistema operativo.
  • 42. 42 • Sistema manejador de archivos. Debe controlar la creación, modificación, borrado y acceso de archivos manteniendo la coherencia del sistema. Estos archivos pueden ser datos del usuario, o archivos necesarios para el funcionamiento del sistema y aplicaciones. Es importante notar que el manejador de archivos debe controlar tanto los archivos del sistema base, como archivos ubicados en servidores externos, lo cual implica tener el registro de la ubicación física de los archivos en los diferentes servidores. Web-OS: Se encarga de administrar los recursos disponibles en los repositorios locales y externos. El manejo del hardware de la máquina y las funciones de bajo nivel se delegan a la plataforma del sistema, mientras que el WebOs se encarga de actualizar la información de los archivos almacenados en los diferentes nodos para mantener la coherencia del sistema. Además administra el cache de los nodos, lo cual facilita el acceso a los archivos usados frecuentemente por los usuarios más cercanos. WebTop: En estos sistemas virtuales el manejador de archivos se encarga de almacenar la información en el servidor del sistema base o en servidores externos. Dependiendo de la arquitectura del WebTop, los archivos son representados virtualmente de diferentes formas y no corresponden directamente al formato de archivos manejado en el sistema nativo. En la mayoría de los casos se crea un archivo adicional que contiene información como el nombre del propietario, la aplicación que lo creó, el nombre original del archivo y la fecha de creación. En eyeOs los archivos están conformados por dos partes abstractas para incrementar la seguridad y que permiten diferenciar los archivos del usuario de los archivos del root. En youOS los datos son almacenados en tablas de hash, mientras que en G.ho.st el manejo de datos está a cargo de terceros
  • 43. 43 que guardan la información en servidores externos al sistema como el servicio de Amazon S3. Desarrolladores: El API debe proveer funciones que permitan al desarrollador acceder, modificar y guardar los archivos necesarios tanto para las aplicaciones como para los usuarios de estas. De esta manera se enmascaran las funciones del lenguaje motor (PHP, Java Script, AJAX) y se abstrae el manejo de archivos a un solo nivel. Usuario: Se debe recordar que aunque en los WebTops las aplicaciones realicen operaciones en la máquina del usuario mediante el browser, los archivos son almacenados en los servidores remotos del sistema, de igual manera los webOS pueden guardar información en el repositorio local que debe ser replicada en nodos externos. Sin embargo, los procesos ejecutados por el manejador de archivos al interactuar con las aplicaciones deben ser realizados de manera trasparente para que el usuario sienta que se trata de una aplicación estándar que funciona de manera local. • Seguridad, Autenticación y Autorización de Usuarios. Dado que estos sistemas trabajan sobre la web, son altamente susceptibles a ataques mal intencionados, por lo cual es de vital importancia proveer un alto grado de seguridad en el acceso y manejo de datos. Las plataformas en los servidores web son las encargadas de ofrecer la seguridad sobre la red mediante sistemas de firewall, detección de intrusos, etc. WebOS: Es necesario limitar el acceso a archivos y demás recursos del sistema, ya sean locales o externos, de manera que sea posible crear listas de control de acceso en donde se manejen diferentes niveles de prioridad sobre procesos y otros recursos usados por las aplicaciones. Para esto
  • 44. 44 debe ser posible autenticar la identificación de cada uno de los usuarios por medio de una llave única, la cual será validada por uno o más servidores, siempre en el contexto de grupos de dominio seguro. WebTop: El sistema que implementa el WebTop deberá encargarse de la seguridad referente al workspace y las aplicaciones mediante sistemas de autenticación de usuario. En general basta con suministrar un nombre de usuario y contraseña para restringir el acceso, mientras que el sistema web se encarga de la seguridad de archivos e integridad de las aplicaciones por medio del kernel. Desarrolladores: Se deben proveer un conjunto de servicios y librearías que permitan manejar de forma sencilla y clara el acceso a archivos y demás herramientas del sistema por parte de las aplicaciones que creen los desarrolladores. Esto se realiza mediante el API, el cual limita funciones existentes de los lenguajes que puedan afectar la confiabilidad del sistema. Usuarios: Deben tener control total sobre sus archivos de manera que sea seguro y sencillo compartir información, otorgando permisos a individuos o grupos, de manera que cada usuario solo tenga acceso a sus propios archivos y aquellos sobre los cuales le han otorgado permisos. Esto es de vital importancia para el funcionamiento de ambientes de trabajo colaborativo. • Desarrollo de aplicaciones WebOs: Estos sistemas deben ofrecer servicios web que soporten la creación y desarrollo de nuevas aplicaciones. La publicación y el manejo de los recursos distribuidos se deben realizar mediante protocolos que faciliten la comunicación entre nodos de cualquier sistema.
  • 45. 45 Webtops: ofrecen la posibilidad de incorporar algunas cualidades de la web, como ser abierta y descentralizada. Es posible, gracias al código abierto, modificar los diferentes servicios o crear nuevos webtops. De igual manera, gracias a los API que ofrecen cada uno de los frameworks, los usuarios ya no están atados a escoger entre uno o dos programas para trabajar en sus documentos, como ocurría en Windows/MacOS/Linux, sino que pueden escoger entre las diferentes aplicaciones web encontradas en la web, o modificar o crear una nueva que se acomode a sus necesidades. Desarrollador: Los API, sumados a la arquitectura de los servicios web, proveen simplicidad para los desarrolladores que creen las aplicaciones, de esta manera, usuarios que solo cuenten con conocimientos básicos en lenguajes como php o java script pueden crear aplicaciones, utilizando como base el marco dado por la arquitectura y los servicios ofrecidos por los escritorios web. Usuario: El desarrollo de aplicaciones en sistemas distribuidos puede estar fuera del alcance de usuarios ajenos a la computación. Sin embargo herramientas para clonar o extender aplicaciones como las encontradas en youOS y eyeOS, permiten realizar pequeñas modificaciones de manera sencilla basándose en los API a servicios ya implementados. Aunque su alcance puede ser limitado, debido a que actualmente las aplicaciones creadas en un entorno no son compatibles con otros sistemas, cualquier herramienta que permita personalizar aplicaciones beneficia finalmente al usuario.
  • 46. 46 • Manejo de memoria, procesos y demás recursos WebOS: Estos sistemas deben preocuparse tanto del manejo de los recursos locales, como de encontrar, localizar y administrar recursos externos de procesamiento y almacenamiento. Las decisiones en cuando al uso de los recursos se realiza en tiempo real, teniendo en cuenta factores como el estado de la red, la carda de los diferentes servidores, el tiempo de respuesta, los privilegios del usuario o la aplicación etc. WebTop: Los proceso son ejecutados con privilegios limitados previniendo así que interfieran en operaciones de procesos de otras aplicaciones o máquinas virtuales. También debe establecer la cantidad de memoria y CPU que un proceso puede utilizar, dependiendo de la aplicación, su prioridad y el nivel del usuario. Desarrolladores: Estas funciones son realizadas por el kernel del sistema, por lo cual los desarrolladores solo deberán preocuparse de ellas cuando deseen modificar reglas o protocolos de comunicación entre los sistemas. El manejo de memoria, procesos y recursos del sistema base u otros servidores debe ser completamente ajeno a las aplicaciones. Usuarios: Las decisiones en cuando al uso de los recursos internos o externos del sistema debe ser completamente transparentes para el usuario, el cual solo interactúa con las aplicaciones. • Comunicación con aplicaciones y sistemas externos WebOS: Se debe contar con protocolos de comunicación, encargados de encontrar y localizar aplicaciones existentes en otros servidores, al igual
  • 47. 47 que protocolos que permitan crear y publicar servicios por parte de los diferentes nodos. WebTop: Los sistemas operativos web y protocolos web de código abierto benefician a nuevos sistemas de negocio autosuficientes los cuales se buscan sistemas operativos que sean libres de manera que se puedan modificar para ajustarlo a las necesidades propias de la empresa. Desarrolladores: En este punto es importante crear estándares que definan las características de la información requerida para la comunicación entre aplicaciones. Algunos de los datos más relevantes son el nombre del usuario que la ejecuta, el sistema base, los datos que debe procesar la aplicación, los procesos relacionados etc. La función del Desarrollador será proveer dicha información,mientras que es el kernel quien se encarga de la comunicación entre nodos o aplicaciones. Muchos servicios web, como los servicio de almacenamiento de Amazon S3 y netbox, ofrecen API que permiten al desarrollador comunicarse de manera directa con las aplicaciones sin necesidad de utilizar funciones de bajo nivel. Usuarios: Para el usuario todos los procesos de comunicación entre nodos o aplicaciones deben ser invisibles. En eyeOS y youOS las aplicaciones externas son embebidas en los widgets ofrecidos por el sistema, de tal forma que el usuario siempre tiene la sensación de estar trabajando en el mismo framework.
  • 48. 48 3.2. Funciones ofrecidas por los Web-OS y WebTops. Aunque el concepto inicial de estos sistemas era solapar los sistemas operativos comunes, los desarrolladores influenciados por las ideas de la web 2.0 han creado nuevos servicios que ofrecen funcionalidades que no están presentes en programas no distribuidos pues son propias del trabajo en la red. Entre estas se encuentran: • Colaboración de trabajo entre usuarios: Al igual que los recursos, los usuarios están distribuidos y acceden a los documentos desde cualquier parte o a cualquier hora; esto permite descentralizar los grupos de trabajo y crear proyectos en los cuales trabajan personas de diferentes partes del mundo. Las aplicaciones se encargan de ofrecer herramientas para el control de cambios, validación de permisos sobre archivos, replicar información, coherencia de datos, etc. • Redes Sociales, comunidades virtuales: La interrelación de los contactos de un usuario en la red genera diferentes mecánicas de flujo conectivo, las cuales son aprovechadas por nuevas aplicaciones para crear comunidades de gran importancia social y económica. En estos grupos la suma de diferentes opiniones genera estados de credibilidad y confiabilidad de gran importancia en cuanto a información o calidad en productos. Portales como facebook se perfilan como sistemas operativos sociales en donde la importancia del individuo prima sobre la información. [21][22] Las aplicaciones ofrecen herramientas de búsqueda, administración y monitoreo de contactos para los usuarios, como bases de datos y servicios de minería de datos a empresas.
  • 49. 49 • Publicación, distribución de información. Por medio de servicios de publicación de contenido o noticias RSS, los usuarios pueden publicar videos, imágenes, música, etc. Al igual que mantenerse al tanto de sus temas de interés configurando herramientas que trabajan de manera automática. Cada cliente tiene necesidades y motivaciones únicas en el momento de escoger un WebOs o un WebTops. Por ejemplo para un programador será de vital importancia contar con un API y aplicaciones de desarrollo que le permitan crear y administrar sus propias aplicaciones, o tener a disposición el código abierto para modificar el sistema. Para un Usuario con conocimientos tecnológicos limitados, bastará con aplicaciones de fácil manejo que le permitan realizar tareas cotidianas como leer noticias, revisar correo, etc. A continuación se presenta una tabla con el fin de condensar las aplicaciones presentes en cada uno de los sistemas: Tabla 1: Oferta de Aplicaciones en Web-OS y WebTops. Sistemas operativos 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
  • 50. 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 archivos Si Si Si Si Si Compartir Archivos 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.
  • 51. 51 4. Prospectiva Los sistemas operativos y escritorios basados en la Web representan los deseos de usuarios de internet que de una u otra manera han sido parte su evolución y han visto nacer nuevas formas de ver la red. Mientras que los sistemas operativos web buscan maximizar la capacidad de trabajo en la red, administrando recursos de hardware y software por medio de sistemas distribuidos, estos proyectos, al ser cerrados, no tienen ninguna interacción con la comunidad de usuarios. Los webtops, por otra parte, se apoyan en los sistemas operativos nativos y sus browsers para aprovechar las aplicaciones desarrolladas mediante tecnologías web ya existentes. Los escritorios web ofrecen facilidad de uso y desarrollo, creando comunidades que crecen día por día, suministrando un gran número de aplicaciones sencillas que cumplen con las necesidades diarias de los usuarios. Protocolos de comunicación entre webTops A pesar del gran número de aplicaciones disponibles en la web, estas trabajan de forma separada al estar diseminadas en diferentes sistemas, por lo cual corren el riesgo de formar islas o grupos de servicios aislados similares a los presentes en los sistemas operativos locales. El primer paso, necesario para que los diferentes escritorios web de código abierto puedan colaborar entre sí, es crear un estándar a nivel del WebTop, que permita la interoperabilidad entre aplicaciones.
  • 52. 52 Los estándares permitirían a los webTops comunicarse entre sí para proveer información acerca de las propiedades, configuración, permisos y archivos necesarios para cada aplicación. La información sobre los usuarios y sus archivos personales, de serian privados y exclusivos de cada webtop. De esta forma se garantiza la privacidad y seguridad del sistema. Estos mecanismos de comunicación estarían distribuidos en servidores de los diferentes webtops, para evitar cuellos de botella y el uso de sistemas centralizados manejados por terceros, que comprometan la seguridad e independencia del webtop. El aporte para el usuario por parte de estos protocolos, es la posibilidad de desligar las aplicaciones de los sistemas en donde fueron creadas, lo cual otorgaría libertad para escoger un conjunto de aplicaciones que más se ajuste a sus necesidades, deshaciendo las ataduras actuales. A nivel de aplicación, es necesario crear servicios para administrar listas de permisos que restrinjan el acceso a los archivos de un usuario, por parte de aplicaciones externas y usuarios provenientes de otros WebTops. Cabe recordar que cada uno de los webTops maneja de manera diferente su sistema de archivos virtual; así se hace necesario asegurar la compatibilidad entre los archivos en los diferentes sistemas, por medio de un estándar que garantice el buen funcionamiento de las aplicaciones. Toolkits para servicios de almacenamiento externos Un enfoque alternativo para afrontar las diferencias entre los sistemas virtuales de archivos, es recurrir a servicios de almacenamiento externo como Amazon o netbox. Con el manejo externo del sistema de archivos se aprovecha la Web como
  • 53. 53 tal, pues se obtienen beneficios como la distribución y replicación de archivos en diferentes servidores, brindando escalabilidad, alta disponibilidad, baja latencia y facilitando el trabajo del sistema virtual al ahorrarle las complicaciones en el manejo y almacenamiento de información. Estos servicios proveen un Api que permite a las aplicaciones acceder a los archivos mediante llaves únicas propias a cada usuario. Las aplicaciones de cada uno de los webTops son responsables de abstraer los archivos de su sistema virtual y transformarlos al sistema de archivos usado por el servidor de almacenamiento externo. Dado que la llave de identificación de acceso es única para cada tupla 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.
  • 54. 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
  • 55. 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
  • 56. 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.
  • 57. 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
  • 58. 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.
  • 59. 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
  • 60. 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.
  • 61. 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 scalable 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/
  • 62. 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
  • 63. 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=4e8z137fh5kk7be1rl86 0qqoa7tvx22u Esta operación me devuelve un respuesta XML: <response> <status>get_ticket_ok</status> <ticket>b3oa240x5d2kap1bqz76z7ithri43j4o</ticket> </response>
  • 64. 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=4e8z137fh5kk7be 1rl860qqoa7tvx22u&ticket=b3oa240x5d2kap1bqz76z7ithri43j4o Esta operación me devuelve una respuesta XML: <response> <status>get_auth_token_ok</status> <auth_token>0qkrbb0jo8oo8cnjpv787d7rhaodblpa</auth_token> <user> <login>kira_ken@hotmail.com</login> <email>kira_ken@hotmail.com</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.
  • 65. 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=4e8z137fh5kk7 be1rl860qqoa7tvx22u&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/2f2984917e9b9e8 9da9df457e5ff9ac3" 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=rrc1d3ntb53tt6b2vhail6rdtrsxov3 v&auth_token=tkm1l2ojyhgrf86zzvdqvoa6zcqss6pf&target=folder&target_id=73813 3894377 Respuesta: <?xml version='1.0' encoding='UTF-8'?> <response>
  • 66. 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();
  • 67. 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.fileUrl = url; this.win.setContent("<div>Loading...</div>");
  • 68. 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.fileUrl + '</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
  • 69. 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 {
  • 70. 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; }