eyeos: arquitectura y desarrollo de una aplicación
DESCRIPTION
eyeOS: Arquitectura y desarrollo de una aplicaciónTRANSCRIPT
![Page 1: eyeOS: Arquitectura y desarrollo de una aplicación](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/1.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/2.jpg)
Cloud computing + Web desktop
![Page 3: eyeOS: Arquitectura y desarrollo de una aplicación](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/3.jpg)
¿Cómo se accede?
![Page 4: eyeOS: Arquitectura y desarrollo de una aplicación](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/4.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/5.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/7.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/8.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/9.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/10.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/11.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/12.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/13.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/14.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081717/548fad4bb479590d2b8b5186/html5/thumbnails/15.jpg)
CONCLUSIONES (II)
EyeOS NO es un sistema operativo: Despegado totalmente del hardware
Es un Escritorio Virtual.