eyeOS: Arquitectura y desarrollo de una aplicación

Post on 13-Dec-2014

4.168 views 3 download

description

eyeOS: Arquitectura y desarrollo de una aplicación

Transcript of 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

Cloud computing + Web desktop

¿Cómo se accede?

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.

Servicio - MMAP

Componente vital en las comunicaciones de la aplicación.

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

Servicio automatizado.

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

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>

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

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.

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

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();

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');}

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');

}

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.

CONCLUSIONES (II)

EyeOS NO es un sistema operativo: Despegado totalmente del hardware

Es un Escritorio Virtual.