26
Desarrollando Aplicaciones Desarrollando Aplicaciones en dispositivos móviles en dispositivos móviles ligeros PDA’s ligeros PDA’s

Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Embed Size (px)

Citation preview

Page 1: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Desarrollando Aplicaciones Desarrollando Aplicaciones en dispositivos móviles en dispositivos móviles

ligeros PDA’s ligeros PDA’s

Page 2: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Introducción (1/4)Introducción (1/4)Un Dispositivo Móvil eUn Dispositivo Móvil es un computador de mano de alta movilidad operado con baterías, el cual es capaz de capturar, procesar, presentar y transmitir datos desde y hacia un servidor. Ejemplos:

• PDA´s• Teléfonos celulares• LapTops• etc.

Page 3: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Introducción (2/4)Introducción (2/4)

¿Por que voltear a ver a los ¿Por que voltear a ver a los dispositivos móviles?dispositivos móviles?

Su cada vez mayor poder de computo.Su cada vez mayor poder de computo.

El desarrollo de las redes inalámbricasEl desarrollo de las redes inalámbricas

La llegada de la Web a los dispositivos La llegada de la Web a los dispositivos móviles.móviles.

Page 4: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Introducción (3/4)Introducción (3/4)

Tratando de alcanzar a la ficción:Tratando de alcanzar a la ficción:•• Los Los tricorderstricorders de de StarTrekStarTrek ::

Scanner de superficieScanner de superficieAnalizador biológico y meteorológicoAnalizador biológico y meteorológicoAnalizador de estructurasAnalizador de estructurasetc.etc.

Page 5: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Introducción (4/4)Introducción (4/4)PDAPDA del del inglésinglés PPersonal ersonal DDigital igital AAssistantssistant, (Ayudante personal , (Ayudante personal digital) es una digital) es una computadoracomputadora de mano originalmente diseñada de mano originalmente diseñada como como agendaagenda electrónicaelectrónica. Hoy en día se puede usar como algo . Hoy en día se puede usar como algo más que una simple agenda.más que una simple agenda.

•• AppleApple NewtonNewton•• Casio Casio CassiopeiaCassiopeia•• Franklin Franklin eBookManeBookMan•• HandspringHandspring VisorVisor (la compañía fue adquirida por (la compañía fue adquirida por

PalmOnePalmOne) ) •• HP HP iPAQiPAQ PocketPocket PCPC (anteriormente Compaq (anteriormente Compaq iPAQiPAQ hasta hasta

la unión con HP en 2002) la unión con HP en 2002) •• PalmPalm (antes (antes PalmOnePalmOne) ) •• SharpSharp,,WizardWizard y y ZaurusZaurus•• XircomXircom,,REXREX 50005000 y y REX 6000REX 6000•• NokiaNokia Series 60Series 60

Page 6: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Aplicaciones para las PDA’sAplicaciones para las PDA’s

Compras en contexto Compras en contexto Mapas y navegación Mapas y navegación Búsqueda, acceso tradicional a Búsqueda, acceso tradicional a Internet.Internet.Comunicaciones, Chat de texto Comunicaciones, Chat de texto Aplicaciones corporativas Aplicaciones corporativas •• Inventario Inventario •• Fichas médicas Fichas médicas •• etcetc

Page 7: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Limitantes de las aplicaciones en Limitantes de las aplicaciones en PDA´sPDA´s

Dificultades en la comunicación con el humano: Dificultades en la comunicación con el humano: pantallas muy chicas, dispositivos de entrada pantallas muy chicas, dispositivos de entrada lentos y que resultan ser en la mayoría de las lentos y que resultan ser en la mayoría de las veces cansado para el usuario. veces cansado para el usuario.

Dificultades tecnológicas: fuente de energía Dificultades tecnológicas: fuente de energía limitada y menor velocidad de procesamiento. limitada y menor velocidad de procesamiento.

Dificultades en la conexión de red: tiempos de Dificultades en la conexión de red: tiempos de latencia muy prolongados, y ancho de banda latencia muy prolongados, y ancho de banda altamente variable, por infinidad de factores altamente variable, por infinidad de factores como el cambio de celda, condiciones de tráfico, como el cambio de celda, condiciones de tráfico, competencia con la señal, competencia con la señal, etcetc

Page 8: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Algunos modelos de Algunos modelos de PDA´sPDA´s

Page 9: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Programando Programando PDA´sPDA´s con Windowscon Windows

Windows CE 3.0Windows CE 3.0Pocket PCPocket PCPocket PC 2002Pocket PC 2002SmartphoneSmartphone 20022002

Page 10: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

PDA HP PDA HP iPaqiPaq-- rz1710 rz1710 DimensionesDimensiones (Ancho x Profundidad x (Ancho x Profundidad x Altura) 7 Altura) 7 cmcm x 1.3 x 1.3 cmcm x 11.4 x 11.4 cmcmPesoPeso 120 g120 gProcesador:Procesador: Samsung S3C2410 203 Samsung S3C2410 203 MHzMHzMemoria ROM:Memoria ROM: 32 MB32 MBMemoria RAM:Memoria RAM: 32 MB32 MBConectividad:Conectividad: Inalámbrica Inalámbrica IrDAIrDADispositivo de entrada:Dispositivo de entrada: Pantalla sensible al Pantalla sensible al tacto, botón de navegación de 5 vías, lápiztacto, botón de navegación de 5 vías, lápizBateríaBatería Ion de litioIon de litioTiempo medio de ejecuciónTiempo medio de ejecución 7 7 hora(shora(s))Sistemas operativosSistemas operativos Microsoft Windows Microsoft Windows MobileMobile 2003 2003 SecondSecond EditionEdition forfor PocketPCPocketPC

Page 11: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Arquitectura de las Arquitectura de las PDA’sPDA’s WindowsWindows

DisplayDisplayUSB or SerialUSB or Serial

ProcessorProcessorMemoryMemory

GSM/GPRSGSM/GPRSCDMA/1xRTTCDMA/1xRTT

Device Device HardwareHardware

WiFiWiFiBluetoothBluetooth

RadioRadioDriversDrivers

Windows MobileWindows Mobile CE DBCE DBActiveSyncActiveSync

Pocket OutlookPocket OutlookPocket Internet ExplorerPocket Internet ExplorerWindows Media PlayerWindows Media Player

Windows CEWindows CE

Software Platform (APIs)Software Platform (APIs)

Home ScreenHome ScreenUser Interface/ShellUser Interface/ShellHTML ControlHTML Control

GAPIGAPIRemote APIRemote APIConfigurationConfigurationBluetoothBluetoothSecuritySecurity

Connection ManagerConnection ManagerTAPITAPISMS SMS MAPI MAPI POOM POOM ActiveSyncActiveSync

MultimediaMultimediaCommunicationCommunicationDevice ManagementDevice Management PresentationPresentation

ADO CEADO CEXMLXMLCE DBCE DBOLE DBOLE DB

Data AccessData Access

NativeNative

Win32Win32

MFCMFC ATLATLManagedManaged

.NET Compact.NET CompactFrameworkFramework

Server sideServer sideASP .NETASP .NET

Mobile ControlsMobile Controls

NativeNative

Win32Win32

MFCMFC ATLATLManagedManaged

.NET Compact.NET CompactFrameworkFramework

Server sideServer sideASP .NETASP .NET

Mobile ControlsMobile Controls

Embedded VC++Embedded VC++ Visual Studio .NETVisual Studio .NET

Page 12: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Programando Programando PDA´sPDA´s con Linuxcon Linux

Linux embeddedLinux embeddedPocket PCPocket PCPocket PC 2002Pocket PC 2002SmartphoneSmartphone 20022002ZaurusZaurusiPackiPack

Page 13: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

PDA PDA SharpSharp ZaurusZaurus--56005600Procesador:Procesador: ProcesadorProcesador Intel Intel XScaleXScale 400 400 MHzMHzPXA250.PXA250.Memoria de almacenamiento (ROM):Memoria de almacenamiento (ROM): 32 MB.32 MB.Memoria (RAM):Memoria (RAM):64 MB.64 MB.Pantalla:Pantalla: TFT LCD (panel sensible apoyado), de 3.5 TFT LCD (panel sensible apoyado), de 3.5 pulgadas, con una resolución de 240 x 320 píxeles, pulgadas, con una resolución de 240 x 320 píxeles, 65.536 colores.65.536 colores.Sonido:Sonido: Estéreo, auricular incluido, Estéreo, auricular incluido, microfonomicrofono y y altavoz incluido.altavoz incluido.Puertos:Puertos: Serial/USB (puerto IR).Serial/USB (puerto IR).Ranura de expansión:Ranura de expansión: 1 ranura compacta flash 1 ranura compacta flash CardCard, 1 , 1 ranura de tarjeta SD/MMC.ranura de tarjeta SD/MMC.Batería:Batería: LithiumLithium--ionion, adaptador EA, adaptador EA--70S AC incluido.70S AC incluido.Sistema Operativo:Sistema Operativo: Linux2 base SO (Embedix3) Linux2 base SO (Embedix3) QtopiaQtopia, Java personal., Java personal.Software incluido:Software incluido: Calendario, agenda Calendario, agenda telefonicatelefonica, , ToTo--Do.Do.Web Web BrowserBrowser:: Equivalente HTML 4.0, Equivalente HTML 4.0, JavaScriptJavaScript 1.5.1.5.Dimensiones: Ancho:Dimensiones: Ancho: 7.36 7.36 cmcm, grueso: 1.77 a 2.28 , grueso: 1.77 a 2.28 cmcm, , alto: 13.71 cm.alto: 13.71 cm.Peso:Peso: 213 gr.213 gr.

Page 14: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Arquitectura de la Arquitectura de la SharpSharp ZaurusZaurus

Page 15: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

QT C++QT C++QtQt es un entorno de trabajo de C++, es un entorno de trabajo de C++, multiplataforma, que permite a los multiplataforma, que permite a los desarrolladores escribir una desarrolladores escribir una aplicación que correrá nativamente aplicación que correrá nativamente en Windows, Linux/en Windows, Linux/Unix,MacUnix,Mac OS X, y OS X, y Linux integrado con una simple Linux integrado con una simple recompilaciónrecompilación..

Es elegante, intuitivo y Es elegante, intuitivo y completamente orientado a objetos. completamente orientado a objetos.

Encapsula cuatro diferentes Encapsula cuatro diferentes APIsAPIs de de plataformaplataforma--específica, y los específica, y los APIsAPIspara manejo de archivos, redes, para manejo de archivos, redes, manejo de procesos, cadenas manejo de procesos, cadenas ((threadingthreading), acceso a base de datos, ), acceso a base de datos, etc. etc.

Page 16: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Desarrollando aplicaciones con Desarrollando aplicaciones con C++/QTC++/QT

El desarrollo nativo de la El desarrollo nativo de la ZaurusZaurus se realiza utilizando C++ y se realiza utilizando C++ y QtQt de de TrollTechTrollTech. .

QPE viene con un marco búfer (QPE viene con un marco búfer (frameframe buffer) virtual llamado buffer) virtual llamado qvfbqvfb, , que permite probar aplicaciones sobre X11 sin necesidad de tenerque permite probar aplicaciones sobre X11 sin necesidad de tener una una ZaurusZaurus. .

Para desarrollar en Para desarrollar en QtQt se necesita obtener el se necesita obtener el KitKit de Desarrollo de de Desarrollo de Software (SDK) de Software (SDK) de TrollTechTrollTech, ya sea la versión GPL ó la comercial. , ya sea la versión GPL ó la comercial.

Se cuenta también con un Se cuenta también con un QtQt designerdesigner el cual es una herramienta para el cual es una herramienta para desarrollo de aplicaciones en desarrollo de aplicaciones en QtQt

Se cuenta Se cuenta ademasademas con con TmakeTmake, el cual es una herramienta de , el cual es una herramienta de TrolltechTrolltech, fácil de usar de usar que permite mantener , fácil de usar de usar que permite mantener makefilesmakefiles para para proyectos de software. proyectos de software.

Page 17: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Personal Java Personal Java Java es una plataforma estándar y Java es una plataforma estándar y abierta, en donde, se pueden crear abierta, en donde, se pueden crear aplicaciones usando las herramientas aplicaciones usando las herramientas de desarrollo existentes para Java. La de desarrollo existentes para Java. La versión Personal Java está diseñada versión Personal Java está diseñada específicamente para dispositivos específicamente para dispositivos móviles de alto nivel integrados.móviles de alto nivel integrados.

La Máquina Virtual La Máquina Virtual PersonalJavaPersonalJava es una es una versión compactada de la familiar versión compactada de la familiar Máquina Virtual Java (JVM), para poder Máquina Virtual Java (JVM), para poder encajar en la limitada capacidad de encajar en la limitada capacidad de memoria de éstos dispositivos memoria de éstos dispositivos portablesportables. .

Page 18: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Personal JavaPersonal JavaPersonalJavaPersonalJava fuéfué descontinuado e integrado como un perfil descontinuado e integrado como un perfil dentro de J2ME , el perfil dentro de J2ME , el perfil ConnectedConnected DeviceDevice ConfigurationConfiguration(CDC) (CDC)

Éste es un entorno de trabajo con bases estándares para Éste es un entorno de trabajo con bases estándares para construir y distribuir aplicaciones para una variedad de construir y distribuir aplicaciones para una variedad de dispositivos móviles. dispositivos móviles.

CDC está diseñado para escenarios de productos con CDC está diseñado para escenarios de productos con recursos comprometidos, típicamente 2 recursos comprometidos, típicamente 2 MbMb de RAM y 2.5 de RAM y 2.5 MB de ROM para el entorno de aplicaciones Java. MB de ROM para el entorno de aplicaciones Java.

CDC está además basado en CDC está además basado en compatiblidadcompatiblidad con las con las APIsAPIsestandaresestandares de J2SE. de J2SE.

Page 19: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Java Java JeodeJeodeLas Las PDAsPDAs SharpSharp--ZaurusZaurus series SLseries SL--5XXX tienen 5XXX tienen implementado el entorno de ejecución de Java implementado el entorno de ejecución de Java JeodeJeode. . Mediante la implementación de Java, una plataforma Mediante la implementación de Java, una plataforma estándar y abierta, se pueden crear aplicaciones usando las estándar y abierta, se pueden crear aplicaciones usando las herramientas de desarrollo existentes para Java.herramientas de desarrollo existentes para Java.

El paquete de herramientas de ventanas abstractas ( AWT El paquete de herramientas de ventanas abstractas ( AWT --AbstractAbstract WindowingWindowing ToolkitToolkit ) de ) de JeodeJeode ha sido ha sido implementado para manejar el sistema nativo de ventanas implementado para manejar el sistema nativo de ventanas de cada plataforma. de cada plataforma.

Además una completa implementación del protocolo de la Además una completa implementación del protocolo de la Interfaz Nativa de Java (JNI) que permite a los Interfaz Nativa de Java (JNI) que permite a los desarrolladores el soportar funcionalidad plataformadesarrolladores el soportar funcionalidad plataforma--expecíficaexpecífica ( ej. Lectores de códigos de barra, etc.) a través ( ej. Lectores de códigos de barra, etc.) a través de clases Java. de clases Java.

Page 20: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Java Java JeodeJeode

Para soportar aún más las necesidades de la comunidad de Para soportar aún más las necesidades de la comunidad de las las PDAsPDAs, , EsmertecEsmertec ha hecho mejoras significantes en el ha hecho mejoras significantes en el tiempo de arranque del motor de arranque de tiempo de arranque del motor de arranque de JeodeJeode EVM EVM por medio de la implementación de librerías de clases por medio de la implementación de librerías de clases prepre--cargadas. cargadas.

EsmertecEsmertec, ofrece el primer entorno JVM en el mercado que , ofrece el primer entorno JVM en el mercado que provee soporte de provee soporte de pluginsplugins para correr applets de Java para correr applets de Java dentro del navegador de dentro del navegador de internetinternet -- PocketPocket Internet Internet Explorer. Explorer. JeodeJeode además soporta otros navegadores además soporta otros navegadores populares para populares para PDAsPDAs incluyendo incluyendo EspialEspial Escape, Escape, NetclueNetclueClueClue. .

Page 21: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Fragmentación de JavaFragmentación de Java

Page 22: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Comparación de la API de Comparación de la API de Java J2ME CDC Java J2ME CDC

Page 23: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Seguridad de la programación Seguridad de la programación Móvil de la Móvil de la ZaurusZaurus

Un canal seguro de comunicaciónUn canal seguro de comunicación

Autenticación/No repudioAutenticación/No repudio

Page 24: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

Resolviendo los problemas de Resolviendo los problemas de seguridad con Javaseguridad con Java

Creando nuestras propias librerías Creando nuestras propias librerías criprográficascriprográficas..

Usando librerías ya existentes como Usando librerías ya existentes como JSSEJSSE

Page 25: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

JSSE 1.0.3JSSE 1.0.3

1024 bitsDSA public key (authentication)

1024 bitsDiffie-Hellman public key (keyagreement)

192 bits (112 effective)Triple DES (bulk encryption)64 bits (56 effective)DES (bulk encryption)128 bitsRC4 (bulk encryption)

2048 bits (authentication), 2048 bits (key exchange)

RSA public key (authentication andkey exchange)

Key LengthCryptographic Suite

Domestic and Global

Page 26: Desarrollando Aplicaciones en dispositivos móviles …delta.cs.cinvestav.mx/~francisco/ssi/AplPDAS.pdf · como agenda electrónica. Hoy en día se puede usar como algo más que una

ConclusionesConclusionesUna PDA no es una computadora con limitantes es una Una PDA no es una computadora con limitantes es una computadora que abre las expectativas del computo móvil, computadora que abre las expectativas del computo móvil, hacia un computo ubicuo.hacia un computo ubicuo.

La programación de una PDA hoy en día es tan fácil como la La programación de una PDA hoy en día es tan fácil como la programación de cualquier PCprogramación de cualquier PC

Como en todos los entornos, está en nuestras manos Como en todos los entornos, está en nuestras manos mantener la información confidencial segura. mantener la información confidencial segura.

Las Las PDA´sPDA´s cuentan con las herramientas necesarias para cuentan con las herramientas necesarias para ofrecer aplicaciones seguras tanto como en las ofrecer aplicaciones seguras tanto como en las PC´sPC´s