ebook img

API de alto nivel generica para desarrollo de - Facultad de Ingeniería PDF

197 Pages·2010·3.46 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview API de alto nivel generica para desarrollo de - Facultad de Ingeniería

Instituto de Computaci(cid:243)n Facultad de Ingenier(cid:237)a Universidad de la Repœblica API de alto nivel gen´erica para desarrollo de aplicaciones de domo´tica. Informe de Proyecto de Grado 26 de febrero del 2010 Montevideo - Uruguay Tribunal: Javier BaliosiÆn, Gonzalo Tejera, Diego Vallespir Autores: Tutores: Juan Manuel Picerno AndrØs Aguirre Ken Tenzer Ariel Sabiguero 2 Resumen La dom(cid:243)tica es el campo que relaciona la automatizaci(cid:243)n, el hogar y la tecnolog(cid:237)a brindando bene(cid:28)cios a los usuarios de dichos sistemas teniendo en cuenta la seguridad, el confort de las personas y el ahorro energØtico. Las soluciones existentes de dom(cid:243)tica suelen estar altamente acopladas con una tecnolog(cid:237)a espec(cid:237)(cid:28)ca, lo cual simpli(cid:28)ca la interacci(cid:243)n con los distintos dispositivos y di(cid:28)culta el uso de diversas tecnolog(cid:237)as simultÆneamente. Este trabajo presenta en sus primeros cap(cid:237)tulos el relevamiento del Estado del Arte de la dom(cid:243)tica, para introducir al lector al concepto central que es la especi(cid:28)caci(cid:243)n de una API genØrica de dom(cid:243)tica. Esta API permite la programaci(cid:243)n de aplicaciones con un alto grado de portabilidad, implantarse en plataformas con escasas prestaciones y es lo su(cid:28)cientemente genØrica para contemplar diferentes interfaces de entrada/salida, as(cid:237) como, protocolos de comunicaci(cid:243)n heterogØneos. La soluci(cid:243)n propuesta estÆ basada sobre una plataforma con una arquitectura orientada a servicios desarrollada en Java, llamada OSGi. Tiene en cuenta aspectos de seguridad, evitando dejar vulnerable la privacidad, la autenticaci(cid:243)n y la autorizaci(cid:243)n sobre los diferentes componentes del sistema. La API permite interactuar con distintas tecnolog(cid:237)as de forma homogØnea, los cuales incluso pueden estar distribuidos entre varios sistemas. Paramostrarsuaplicabilidadserealiz(cid:243)unprototipoparalaautomatizaci(cid:243)n de un baæo en una plataforma con recursos limitados, usando el proyecto Usb4All que permite el control de dispositivos genØricos desde el puerto USB. Palabras claves: Dom(cid:243)tica, OSGi, Bajos recursos, JamVM, Middlewares, Usb4All, OpenWrt. 3 4 Agradecimientos Agradecemos especialmente a nuestros tutores: AndrØs Aguirre y Ariel Sabiguero por soportarnos durante todo el aæo. Reconocemos tambiØn la grandeza de aquellas personas que nos facilitaron informaci(cid:243)n: JessicaD(cid:237)az,(cid:16)AGenericGatewayforTestingHeterogeneousComponents in Acceptance Testing Tools(cid:17) [15]. Marco Aiello, (cid:16)The role of web services at home(cid:17) [3]. Dario Bonino, (cid:16)Domotic House Gateway" [74]. Dario Russo, (cid:16)An Open Standard Solution for Domotic Interoperability" [52]. Larry Page y Sergey Brin por su aporte incondicional durante toda la carrera, vida profesional, y esperemos por muchos aæos mÆs! No es menor, nuestro reconocimiento a los Ingenieros ElØctricos por su ayuda en dicha Ærea: Edgardo Vaz, Santiago Reyes, Alfonso GonzÆlez, Uri Tenzer y Daniel Goldenberg. 5 6 ˝ndice general 1. Introducci(cid:243)n 13 1.1. Motivaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3. Pœblico Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4. Organizaci(cid:243)n del Documento . . . . . . . . . . . . . . . . . . . . 14 1.4.1. Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.2. Gu(cid:237)a de Lectura . . . . . . . . . . . . . . . . . . . . . . . 15 2. Estado del Arte 17 2.1. Sensores y Actuadores . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2. EstÆndares y middlewares . . . . . . . . . . . . . . . . . . . . . . 17 2.2.1. Medios de Comunicaci(cid:243)n . . . . . . . . . . . . . . . . . . 18 2.2.2. Interoperabilidad . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.3. Cronolog(cid:237)a . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3. Sistemas Operativos Embebidos . . . . . . . . . . . . . . . . . . . 21 2.3.1. Comparaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.2. Cronolog(cid:237)a . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4. Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.1. Comparaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.2. Cronolog(cid:237)a . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5. Trabajos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6. Interpretaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.7. Tendencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3. AnÆlisis 29 3.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2. EOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3. Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.4. Deploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.4.1. OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5. JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.6. Interconexi(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.6.1. R-OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.7. Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.8. Resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7 8 ˝NDICE GENERAL 4. Experimentos y Resultados 37 4.1. Sistema Operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2. JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1. JamVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1.1. Compilaci(cid:243)n de JamVM y GNU-Classpath para x86 . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1.2. Cross-compilaci(cid:243)ndeJamVMyGNU-Classpath para OpenWrt sobre MIPS . . . . . . . . . . . . 39 4.2.1.3. Diferencias con Java-Sun . . . . . . . . . . . . . 40 4.2.2. Mika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3. OSGi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.1. Concierge . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.2. Knop(cid:29)er(cid:28)sh . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.4. Remoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.5. Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.5.1. Usb4All . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.5.1.1. Usb4All-API . . . . . . . . . . . . . . . . . . . . 44 4.5.1.2. Prototipos . . . . . . . . . . . . . . . . . . . . . 45 4.5.2. Middleware Secundario . . . . . . . . . . . . . . . . . . . 45 4.6. Resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5. Soluci(cid:243)n Propuesta 47 5.1. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.1.1. Funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.1.2. No Funcionales . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2.1. OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.1.1. Bundles . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.1.2. Servicios . . . . . . . . . . . . . . . . . . . . . . 51 5.2.2. R-OSGi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2.3. API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2.3.1. TechManager . . . . . . . . . . . . . . . . . . . . 54 5.2.3.2. Security Manager . . . . . . . . . . . . . . . . . 56 5.2.3.3. Remote Manager . . . . . . . . . . . . . . . . . . 56 5.2.3.4. Proxy . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2.3.5. Observer . . . . . . . . . . . . . . . . . . . . . . 57 5.2.3.6. Consumidores / Productores custom . . . . . . . 57 5.3. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3.1. Token: Obtenci(cid:243)n y Manipulaci(cid:243)n . . . . . . . . . . . . . 60 5.3.2. Usurpaci(cid:243)n de Identidad . . . . . . . . . . . . . . . . . . . 61 5.4. Decisiones sobre la API . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.1. Invocaci(cid:243)n a MØtodos . . . . . . . . . . . . . . . . . . . . 61 5.4.2. Descubrimiento de Servicios . . . . . . . . . . . . . . . . . 62 5.4.3. Composici(cid:243)n de Servicios . . . . . . . . . . . . . . . . . . 63 5.4.4. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 ˝NDICE GENERAL 9 6. Caso de Estudio 65 6.1. Descripci(cid:243)n del Problema . . . . . . . . . . . . . . . . . . . . . . 65 6.2. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2.1. Funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.2.2. No Funcionales . . . . . . . . . . . . . . . . . . . . . . . . 66 6.3. Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.4. Matriz de Trazabilidad . . . . . . . . . . . . . . . . . . . . . . . . 67 6.5. Soluci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.5.1. Usb4All . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.5.1.1. Driver . . . . . . . . . . . . . . . . . . . . . . . 68 6.5.1.2. Firmware . . . . . . . . . . . . . . . . . . . . . . 68 6.5.1.3. Modelado con la API . . . . . . . . . . . . . . . 72 6.5.2. Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5.2.1. L(cid:243)gica . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5.2.2. Modelado con la API . . . . . . . . . . . . . . . 76 6.5.3. Acceso Remoto . . . . . . . . . . . . . . . . . . . . . . . . 77 6.6. Deploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.7. Adaptaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.7.1. USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.7.2. Circuito de interacci(cid:243)n . . . . . . . . . . . . . . . . . . . . 79 6.7.2.1. Con(cid:28)guraci(cid:243)n inicial . . . . . . . . . . . . . . . . 79 6.7.2.2. Modi(cid:28)caciones . . . . . . . . . . . . . . . . . . . 80 6.7.2.3. Con(cid:28)guraci(cid:243)n alternativa . . . . . . . . . . . . . 80 6.7.3. Recuperaci(cid:243)n ante fallas . . . . . . . . . . . . . . . . . . . 80 7. Conclusiones 85 7.1. Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2. Di(cid:28)cultades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.3. Aportes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.4. Trabajos a Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . 88 A. Sensores y Actuadores 109 A.1. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 A.1.1. Tipos de Sensores . . . . . . . . . . . . . . . . . . . . . . 109 A.2. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 A.2.1. Tipos de Actuadores . . . . . . . . . . . . . . . . . . . . . 112 B. EstÆndares y middlewares 115 B.1. Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 B.2. Consumer Electronic Bus . . . . . . . . . . . . . . . . . . . . . . 115 B.3. Digital Living Network Alliance . . . . . . . . . . . . . . . . . . . 116 B.4. Home Audio Video interoperavility . . . . . . . . . . . . . . . . . 117 B.5. IEEE 1394. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 B.6. Inter-Integrated Circuit . . . . . . . . . . . . . . . . . . . . . . . 118 B.7. Jini. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 B.8. KNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 B.9. LonWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 B.10.OpenWebNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 B.11.Open Services Gateway Initiative . . . . . . . . . . . . . . . . . . 120 B.11.1.Service Oriented Framework. . . . . . . . . . . . . . . . . 120 10 ˝NDICE GENERAL B.12.P2P Universal Computing Consortium . . . . . . . . . . . . . . . 121 B.13.RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 B.14.Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . 122 B.15.Service Location Protocol . . . . . . . . . . . . . . . . . . . . . . 122 B.16.Universal Plug and Play . . . . . . . . . . . . . . . . . . . . . . . 122 B.17.Universal Serial Bus . . . . . . . . . . . . . . . . . . . . . . . . . 123 B.18.X10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 B.19.Zeroconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 B.20.ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.21.Otros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.21.1.Salutation . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.21.2.Konark . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.21.3.Home Gateway Initiative . . . . . . . . . . . . . . . . . . 124 B.21.4.VESA Home Network . . . . . . . . . . . . . . . . . . . . 124 B.21.5.Home Phoneline Networking Alliance . . . . . . . . . . . 125 B.21.6.Energy Conservation and Home Network . . . . . . . . . 125 B.21.7.Open Building Information Xchange . . . . . . . . . . . . 125 C. Sistemas Operativos Embebidos 127 C.1. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 C.1.1. Openmoko . . . . . . . . . . . . . . . . . . . . . . . . . . 127 C.1.2. OpenWrt . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 C.1.3. SlugOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 C.1.4. µClinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 C.1.5. OpenDomo . . . . . . . . . . . . . . . . . . . . . . . . . . 128 C.2. ThreadX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 C.3. Windows Embedded CE . . . . . . . . . . . . . . . . . . . . . . . 128 C.4. QNX Neutrino NTOS . . . . . . . . . . . . . . . . . . . . . . . . 129 C.5. BSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 C.6. Cuadro Comparativo . . . . . . . . . . . . . . . . . . . . . . . . . 129 D.Lenguajes 131 D.1. C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 D.2. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 D.3. Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 D.4. PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 D.5. Lua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 D.6. Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 E. Sistemas Existentes 135 E.1. Libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 E.1.1. MisterHouse . . . . . . . . . . . . . . . . . . . . . . . . . 135 E.1.2. Heyu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 E.1.3. DomoticaCasera . . . . . . . . . . . . . . . . . . . . . . . 136 E.1.4. LinKNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 E.1.5. Taiyaki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.2. Comerciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.2.1. MyHome BTicino: . . . . . . . . . . . . . . . . . . . . . . 137 E.2.2. Creston . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 E.2.3. Home PAC XP8741 . . . . . . . . . . . . . . . . . . . . . 137

Description:
26 Feb 2010 Bridge entre UPnP y HAVi, CEBus, LonWorks o X10 (ver referencia. [128]). Bridge PUCC . embebidos: C/C++, Python, Perl, PHP, Lua y Java.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.