eyeOS: Arquitectura y desarrollo de una aplicación

15
EyeOS: un sistema operativo web Raúl Jiménez Ortega Nicolás Fernández Valverde José Luis López Pino

description

eyeOS: Arquitectura y desarrollo de una aplicación

Transcript of eyeOS: Arquitectura y desarrollo de una aplicación

Page 1: eyeOS: Arquitectura y desarrollo de una aplicación

EyeOS: un sistema operativo web

Raúl Jiménez Ortega Nicolás Fernández Valverde José Luis López Pino

Page 2: eyeOS: Arquitectura y desarrollo de una aplicación

Cloud computing + Web desktop

Page 3: eyeOS: Arquitectura y desarrollo de una aplicación

¿Cómo se accede?

Page 4: eyeOS: Arquitectura y desarrollo de una aplicación

Arquitectura

EyeOS utiliza una estructura de µkernel estructurado en 4 capas:

● Kernel: unifica los servicios del sistema.

● Servicios: funciones de más bajo nivel.

● Bibiliotecas: funciones de más alto nivel

● Aplicaciones: pueden llamar a funciones de cualquier capa.

Page 5: eyeOS: Arquitectura y desarrollo de una aplicación

Servicio - MMAP

Componente vital en las comunicaciones de la aplicación.

Encamina los mensajes del cliente a la aplicación correspondiente.

Servicio automatizado.

Page 6: eyeOS: Arquitectura y desarrollo de una aplicación

Servicio - VFS

Es el sistema de ficheros de eyeOS.

Implementa sistemas de seguridad Concatena 32 caracteres aleatorios. Funciones virtuales y reales.

Facilita el desarrollo de aplicaciones

Page 7: eyeOS: Arquitectura y desarrollo de una aplicación

Servicio – VFS (implementación)

Crea internamente dos ficheros por cada archivo (funciones virtuales): Fichero de contenido. Fichero de información.

<?xml version="1.0" encoding="UTF-8"?><eyeFile>

<filename>SonicTheHedgedog.eyepackage</filename><author>root</author><created>1242666331</created><creationapp></creationapp>

</eyeFile>

Page 8: eyeOS: Arquitectura y desarrollo de una aplicación

Servicio - eyeX

Recibe los mensajes en XML y responde en el mismo formato al navegador.

Navegador Servidor

Navegador Crear una ventana nueva Servidor

Se ha pulsado 1 botón

Page 9: eyeOS: Arquitectura y desarrollo de una aplicación

Servicio - Proc

Gestión de procesos: Lanzar Finalizar Listar etc.

Para cada proceso define: myPid: equivalente al PID de Linux checksum: identifica el proceso en la

comunicación cliente servidor.

Page 10: eyeOS: Arquitectura y desarrollo de una aplicación

Pasos para desarrollar una app.

Descargar el código fuente. eyeOS/apps/NombreAplicacion/apps.eyecode

NombreAplicacion_run, que es llamada cuando se lanza la aplicación y que es obligatorio incluir.

ApplicationName_end, que es llamada cuando termina de ejecutarse.

El código de recepción de eventos en: eyeOS/apps/NombreAplicacion/events.eyecode NombreApp_on_NombreEvento

Page 11: eyeOS: Arquitectura y desarrollo de una aplicación

Ejemplo: fichero apps.eyecode

// En la función de inicialización creamos la interfazfunction eyeBasic_run($params=null) {

// Creamos un nuevo widget del tipo ventana.$myWindow1 = new Window(array(

'name' => 'eyeBasic_WND','father' => 'eyeApps','cent' => 1,'width' => 350,'height' => 200,'title' => 'Aplicación de prueba'

));// Mostramos la ventana$myWindow1‐>show();

Page 12: eyeOS: Arquitectura y desarrollo de una aplicación

Ejemplo: fichero apps.eyecode// Creamos un nuevo widget del tipo botón.$myButton1 = new Button(array(

'name'=>'eyeBasic_BTN','father'=>'eyeBasic_WND_Content','caption'=>'Pínchame','x'=>40,'y'=>80,'signal'=>'botonPulsado'

));// Mostramos el botón$myButton1‐>show();

}// La función de finalización elimina la interfaz.function eyeBasic_end($params=null) {

eyeWidgets('unserialize');}

Page 13: eyeOS: Arquitectura y desarrollo de una aplicación

Ejemplo: fichero events.eyecode

// Función que recibe el evento de pulsación del botónfunction eyeBasic_on_botonPulsado($params="") {

// Mostramos un mensajeservice('eyex','messageBox',array('content'=>'Botón

pulsado'));}

//Función que recibe el evento de cerrado de ventanafunction eyeBasic_on_Close(){

//Hacemos que la aplicación finaliceservice('proc','end');

}

Page 14: eyeOS: Arquitectura y desarrollo de una aplicación

Conclusiones (I)

Está diseñado para que los desarrolladores sin experiencia en aplicaciones web puedan desarrollarlas.

Comunicación con el usuario mediante eventos. Creación de la interfaz mediante widgets.

Ventajas: Portabilidad, descentralización, disponibilidad.

Desventajas: seguridad, necesidad de conexión rápida, rendimiento, aislamiento del sistema anfitrión.

Page 15: eyeOS: Arquitectura y desarrollo de una aplicación

CONCLUSIONES (II)

EyeOS NO es un sistema operativo: Despegado totalmente del hardware

Es un Escritorio Virtual.