Olivares

13
Comparativa y evaluación de las herramientas de programación para desarrollar aplicaciones en dispositivos Pocket PC Gabriel González S. 1,2 , Azucena Montes R. 1 , Juan Carlos Olivares R. 1 Departamento de Ciencias Computacionales Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) Cuernavaca, Morelos, México {gabriel, amr, jcolivares04c}@cenidet.edu.mx Centro de Investigación en Computación (CIC-IPN) México, D.F. RESUMEN En este artículo se describen una breve lista de herramientas y entornos de programación (IDE) para la generación de código en plataformas Pocket PC. La elección de dichas herramientas depende del tipo de aplicación que se requiera implementar. Se discute las ventajas, desventajas y características de cada una para concluir de manera general que herramienta es la más idónea para el desarrollo en general de aplicaciones en esta plataforma. PALABRAS CLAVE: Pocket PC, Programación en Dispositivos Móviles, Tecnología .NET, Tecnología Java (J2ME) y Linux en Sistemas Empotrados (embedded). I. INTRODUCCIÓN En el mundo actual, la información se ha vuelto un recurso imprescindible en la mayoría de las actividades humanas, siendo en algunos casos de vital importancia. Esto ha llevado a que se construyan sistemas de informáticos en dónde la información se encuentra disponible en cualquier lugar y en todo momento. Para lograr la ubicuidad de la información han surgido dispositivos electrónicos de diminuto tamaño, bajo costo y con interfaces de red inalámbricas que permiten a los usuarios desplazarse con libertad, a tales dispositivos se le has denominado dispositivos móviles. Debido al gran auge de los equipos móviles en nuestros días, en especial con dispositivos Pocket PC (PPC), surge la necesidad de brindar servicios que cubran las necesidades de los usuarios. Una de estas necesidades corresponde a la visualización de contenidos Web en modo desconexión (offline) que se adapten a los recursos disponibles en el dispositivo móvil (resolución de la pantalla, memoria disponible, software disponible, entre otros). Para resolver este problema se planea diseñar e implementar un sistema gestor de acaparamiento de sitios Web transcodificados. Con el acaparamiento se pretende resolver el problema de la desconexión frecuente que presentan los dispositivos móviles, al poder visualizar páginas Web sin conexión; mientras que con la transcodificación, se soluciona el problema de la visualización de contenidos Web en dispositivos con pantallas de despliegue limitadas. El acaparamiento (hoarding) se puede definir como el proceso de replicación y procesamiento en desconexión de datos previamente

Transcript of Olivares

Page 1: Olivares

Comparativa y evaluación de las herramientas de programación para desarrollar aplicaciones en dispositivos

Pocket PC

Gabriel González S.1,2, Azucena Montes R.1, Juan Carlos Olivares R.1

Departamento de Ciencias Computacionales Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET)

Cuernavaca, Morelos, México {gabriel, amr, jcolivares04c}@cenidet.edu.mx

Centro de Investigación en Computación (CIC-IPN)

México, D.F. RESUMEN En este artículo se describen una breve lista de herramientas y entornos de programación (IDE) para la generación de código en plataformas Pocket PC. La elección de dichas herramientas depende del tipo de aplicación que se requiera implementar. Se discute las ventajas, desventajas y características de cada una para concluir de manera general que herramienta es la más idónea para el desarrollo en general de aplicaciones en esta plataforma. PALABRAS CLAVE: Pocket PC, Programación en Dispositivos Móviles, Tecnología .NET, Tecnología Java (J2ME) y Linux en Sistemas Empotrados (embedded).

I. INTRODUCCIÓN En el mundo actual, la información se ha vuelto un recurso imprescindible en la mayoría de las actividades humanas, siendo en algunos casos de vital importancia. Esto ha llevado a que se construyan sistemas de informáticos en dónde la información se encuentra disponible en cualquier lugar y en todo momento.

Para lograr la ubicuidad de la información han surgido dispositivos electrónicos de diminuto tamaño, bajo costo y con interfaces de red inalámbricas que permiten a los usuarios desplazarse con libertad, a tales dispositivos se le has denominado dispositivos móviles.

Debido al gran auge de los equipos móviles en nuestros días, en especial con dispositivos Pocket PC (PPC), surge la necesidad de brindar servicios que cubran las necesidades de los usuarios. Una de estas necesidades corresponde a la visualización de contenidos Web en modo desconexión (offline) que se adapten a los recursos disponibles en el dispositivo móvil (resolución de la pantalla, memoria disponible, software disponible, entre otros).

Para resolver este problema se planea diseñar e implementar un sistema gestor de acaparamiento de sitios Web transcodificados. Con el acaparamiento se pretende resolver el problema de la desconexión frecuente que presentan los dispositivos móviles, al poder visualizar páginas Web sin conexión; mientras que con la transcodificación, se soluciona el problema de la visualización de contenidos Web en dispositivos con pantallas de despliegue limitadas.

El acaparamiento (hoarding) se puede definir como el proceso de replicación y procesamiento en desconexión de datos previamente

Page 2: Olivares

seleccionados y copiados localmente en el cliente móvil [1]. Para la selección del conjunto de datos que se deber replicar se necesita tomar en cuenta las preferencias de uso los usuarios con respecto a la información. Dichas preferencias se encuentran registradas en las bitácoras de servidores Web. A través de un proceso de minería de datos es posible encontrar patrones que conlleven a seleccionar el conjunto de recursos con mayor probabilidad de uso por parte de los usuarios. Los patrones obtenidos a través de este proceso están expresados en reglas de asociación, en las cuales a través de un porcentaje de soporte de un recurso A se obtiene un porcentaje de confianza de que se utilizará el recurso B. Por ejemplo, se tiene que del 85% (soporte) de los usuarios que visitan el recurso windowsmobile2003.html se obtiene que el 75% (confianza) visitarán la página pocketpc2003.html.

El mecanismo de transcodificación de contenidos Web, lleva a cabo una reorganización y agrupación de los elementos contenidos en la página Web solicitada de acuerdo a la delimitación del lenguaje de entrada (HTML). Como resultado final de la transcodificación, se obtienen páginas Web cuyo formato de presentación o visualización es óptimo para un dispositivo de despliegue limitado, tratando de respetar fielmente la semántica (estructura) original del documento o página [2].

Esta investigación tiene como objetivo encontrar la mejor herramienta de desarrollo para un sistema gestor de acaparamiento de sitios Web transcodificados en Plataforma PPC, el cual es un trabajo de tesis de maestría que se está desarrollando en el CENIDET y el cual corresponde a un módulo de la arquitectura del proyecto Moviware [3]. II. ENTORNOS y HERRAMIENTA DE DESARROLLO EN PLATAFORMA POCKET PC A continuación se mencionan algunos entornos de desarrollo para la creación de aplicaciones en plataforma PPC. Para cada una de estas herramientas se realizó una pequeña aplicación para conocer y analizar dicha herramienta. Al final se obtuvieron las principales características, así como sus ventajas y desventajas.

De manera generalizada se piensa que el desarrollo de aplicaciones en dispositivos móviles es similar al desarrollo de aplicaciones en sistemas tradicionales de escritorio; es decir, se tiene la creencia que el desarrollo de aplicaciones en dispositivos móviles es idéntico a las aplicaciones en PCs pero en “chiquito”, pero esto no es así.

Para el desarrollo de aplicaciones móviles sobre todo del tipo PDA se deben tener en cuenta muchos factores, de los cuales los más sobresalientes según [4, 5, 6, 7 y 8] son:

• Entender el problema a resolver (“ensuciarse las manos”); es decir, conocer como operará la aplicación en un ambiente real.

• Estudiar las capacidades y limitaciones de los dispositivos móviles con el fin de saber de manera anticipada que se puede hacer en el dispositivo y que cosas son imposibles de implementar. Se deben tomar en cuenta las limitantes de espacio de almacenamiento primario y secundario, la duración de las baterías, el poder de procesamiento, entre otras.

Page 3: Olivares

• Se debe desarrollar una interfaz adecuada que minimice las acciones por parte del usuario y que se adapte al tamaño de las pantallas de despliegue.

• Se debe de mantener un diseño sencillo del sistema para que éste sea fácilmente modificable.

• Se deben tomar en cuenta todas las implicaciones que conlleva la movilidad de los dispositivos como el caso de la seguridad.

• Por último se deben probar las aplicaciones realizadas, nuevamente probarlas y volverlas a probar hasta que estén libres de errores.

III. HERRAMIENTAS DE MICROSOFT Microsoft es el desarrollador de la plataforma PPC y por ende es la empresa líder en el desarrollo de compiladores y utilerías para dicha plataforma. Microsoft tiene dos tipos de herramientas, las basadas en código nativo y las basadas en código interpretado [9].

El código nativo corresponde a la API Win32, mientras que el código interpretado se hace a través de la arquitectura .NET. La elección de que tipo de código desarrollar depende de muchos factores, pero en general, esta elección no es difícil de hacer. La mayoría del software utiliza solamente Win32, o usa una mezcla de Win32 para código de bajo nivel y .NET Compact Framework (.NET CF) para alto nivel [10].

Tanto Win32 como .NET CF son portables. .NET CF tiene portabilidad binaria, de está forma un archivo ejecutable puede correr en diferentes CPUs, tales como: StrongARM, XScale, MIPS, SH3, SH4 y muchos más. Sin embargo, .NET CF no es soportado en algunos dispositivos Windows CE, generalmente aquellos que no tienen pantalla de despliegue. Además algunos dispositivos con pantallas de despliegue no soportan la mayoría de las APIs de Win32 requeridas por .NET CF.

Por otro lado, Win32 tiene portabilidad de códigos, así el mismo código puede ser construido para dos o más archivos ejecutables. Win32 está presente en Windows CE por lo que se puede utilizar si .NETCF no está soportado en esa plataforma.

.NET CF se utiliza principalmente para el “desarrollo rápido de aplicaciones” y hace uso del término “código gestionado”, el cual se refiere al hecho de que el CLR (Common Language Runtime: Lenguaje común en tiempo de ejecución), proporciona mucha seguridad al código desarrollado, entre estas características se encuentran:

• No existen punteros mal referenciados. • No se generan líos de memoria. • Soporta datos fuertemente tipeados.

¿Cuando usar Win32?

• Ejecutables rápidos • Mejor soporte para tiempo real • Portabilidad de código fuente (entre diversas plataformas) • Habilidad para utilizar COM • Habilidad para crear controladores de dispositivos

Page 4: Olivares

• Habilidad para crear aplicaciones de panel de control • Soporte para interfaces de usuario personalizadas • Soporte para extensiones de seguridad • Habilidad para construir Servicios Web (SOAP) • Soporte para extensiones en modo de línea de comandos • Habilidad para usar código Win32 existente.

¿Cuando usar .NET Compact Framework?

• Usado en plataformas que tienen instalado el .NET CF • Para construir interfaces de usuario • Para construir controles personalizados • Para lograr la portabilidad binaria de múltiples CPUs • Para construir clientes de servicios Web • Para construir aplicaciones de datos o base de datos intensivas • Para construir aplicaciones intensivas de XML • Para usar código .NET Framework

III.I HERRAMIENTAS DE CÓDIGO NATIVO La herramienta principal consiste en la llamada Microsoft eMbedded Tools, la cual integra tanto c++ como Visual Basic para el desarrollo de aplicaciones en plataformas PPC así como en otros dispositivos. III.I.I EMBEDDED VISUAL C++

Según [11 y 12] se debe usar eMbedded Visual C++ (MVC++) si se quiere escribir:

• Manejadores para PPC o cualquier otro dispositivo móvil • Aplicaciones que corren nativamente en el dispositivo • Juegos que utilizan gráficos de alta velocidad. • Servidores COM y controles ActiveX • Cuando el objetivo es desarrollar aplicaciones en todos los dispositivos

basados en Windows CE. • Cuando la velocidad de la aplicación es una meta principal. • Cuando los controles de alto nivel sobre la aplicación son necesarios. • Depuración Just-in-time (JIT , Justo a tiempo) para el diagnóstico de

excepciones no manejadas. Con la versión 3.0 se genera código para las plataformas PPC2000 y PPC2002; mientras que para la plataforma PPC2003 (Windows Mobile) se necesita la versión 4.0

La aplicación realizada consistió básicamente en diseñar una pequeña interfaz de usuario con una etiqueta y un botón que al presionarse muestra una caja de diálogo. Lo que se trato de realizar fue comprobar la compatibilidad de código entre distintas plataformas de PPC y entre una misma plataforma PPC pero con distintos microprocesadores. Esto se debe a que de manera general no hay una compatibilidad al 100% entre las nuevas plataformas con respecto a las más viejas [13].

Page 5: Olivares

En el lado izquierdo de la figura 1, se muestra la aplicación realizada en plataforma PPC2002 corriendo en una Plataforma PPC2003 (Windows Mobile 2003 SE). El equipo de prueba es una iPAQ rx3115 de la compañía HP. Aquí se pudo comprobar que existe una compatibilidad entre distintas plataformas, pero cuando se quiso ejecutar la misma aplicación compilada para otro microprocesador (lado derecho de la figura 1) apareció un error. Esto demuestra que el código generado para una arquitectura particular de un microprocesador sólo se ejecutará para dicha familia de microprocesadores.

Figura 1. Pequeña aplicación realizada en eMbedded Visual C++.

Se debe recordar que existen tres tipos de microprocesadores para plataforma PPC: ARM, SH3 y MIPS. Actualmente en Windows Mobile 2003 sólo se soporta procesadores de la familia ARM (e.g. StrongARM, Xscale, entre otros) III.I.II EMBEDDED VISUAL BASIC De acuerdo con [12] se debe usar eMbedded Visual Basic (MVB) si se quiere:

• Construir aplicaciones empresariales que consistan principalmente de controles ActiveX y COM

• Desarrollo de prototipos de escritura rápida • Crear utilerías. • Aplicaciones Pocket PC, Pocket PC 2002, Handheld PC Pro, Handheld

PC, o cualquier otro dispositivo incrustado que tenga instalado el runtime de Visual Basic.

• Cuando el desarrollo de aplicaciones deba ser completado en la mínima cantidad de tiempo posible.

• Aplicaciones con interfaces de usuario excéntricas. Se desarrolló una aplicación sencilla que maneja el procesamiento de números a través de cajas de texto. El objetivo de desarrollar esta mini-aplicación es para mostrar la viabilidad de MVB para el desarrollo de aplicaciones en PPCs. En la figura 2 del lado izquierdo se muestra la ejecución de la aplicación en el emulador que viene integrado en el entrono de desarrollo. En este caso

Page 6: Olivares

corresponde a la plataforma PPC 2000. En la misma figura del lado izquierdo se muestra un error al tratar de ejecutar la aplicación en una plataforma PPC 2003 ya que no se cuenta con el runtime de Visual Basic. Se debe recordar que Visual Basic es un lenguaje interpretado y como tal se necesita del runtime para poder ejecutarse.

Figura 2. Mini-aplicación en eMbedded Visual Basic.

III.II HERRAMIENTAS DE CÓDIGO INTERPRETADO

III.II.I EXTENCIONES SMART DEVICE (AHORA .NET COMPACT FRAMEWORK) PARA VISUAL STUDIO .NET Las extensiones Smart Device (SDE por sus siglas en inglés) para Visual Studio .NET (VS .NET) son un agregado que permite desarrollar aplicaciones .NET para dispositivos móviles. Las aplicaciones .NET pueden ser fácilmente distribuidas y soportar escenarios de conexión y desconexión [14].

Las SDE permiten desarrollar para PPC 2000, 2002, 2003 y otros dispositivos Windows CE, usando las mismas herramientas y técnicas que el desarrollo de equipos de escritorio. Actualmente SDE ha recibido el nombre de .NET Compact Framework el cual es un subconjunto de .NET Framework.

Están disponibles los lenguajes C# y Visual Basic para crear código para dispositivos móviles. En la versión de VS .NET 2005 se incluirá soporte para C++.

Según [15] debe usarse Visual Studio .NET y SDE para:

• Aplicaciones que tomen ventaja de los servicios Web y XML

• Aplicaciones que deban correr de manera adecuada en ambientes con conexión y desconexión

• Desarrollo de aplicaciones que usen Visual Basic .NET o C#

• Cuando se desean usar las mismas herramientas para programar aplicaciones en escritorio, servidor o dispositivos móviles.

• Desarrollo de aplicaciones móviles rápidamente.

• Software que proporciona un entorno de seguridad y confiabilidad.

Page 7: Olivares

• Aplicaciones que pueden ser movidas de diferentes dispositivos con diversos CPUs o una variedad de versiones de Windows.

• El objetivo son dispositivos Pocket PC, Pocket PC 2002, o cualquier otro dispositivo basado en Windows CE .NET

• Cuando la aplicación es parte de un entorno de cómputo distribuido • Cuando la integración de servicios Web XML es requerida • Cuando las aplicaciones existen en Visual Studio .NET deban ser

portadas a un dispositivo móvil • Si la aplicación tiene un significante número de requerimientos de

comunicación • Para permitir que el mismo código corra en diferentes dispositivos • En las ocurrencias donde el desarrollo en C# es deseado.

Se desarrolló una pequeña aplicación en .NET CF a través de VS .NET 2003. El lenguaje de desarrollo fue C#. En la figura 3 del lado izquierdo se muestra la ejecución de dicha aplicación en plataforma PPC 2003; mientras en el lado derecho se muestra la aplicación ejecutada de manera remota desde una PC de escritorio en el dispositivo móvil utilizando ActyveSync Remote Display.

Figura 3. Aplicación simple en .NET en PPC2003

En la figura 4 se muestra que la misma aplicación puede ser ejecutada tanto en una PC de escritorio (lado izquierdo) como en una PPC que se ejecute de manera horizontal. En la figura 5 se muestra que la misma aplicación puede ejecutarse en plataformas diferentes a PPC como es el caso de un handheld que utiliza Windows CE .NET (lado izquierdo) y de un teléfono inteligente o smartphone (lado derecho). En este último se tuvo que modificar algunos detalles de la aplicación como el uso de botones, los cuales no están permitidos en estos dispositivos. Por otra parte, se debe recordar que la aplicación realizada con .NET CF se ejecutará en cualquier plataforma que tenga instalado el CLR de .NET CF.

Page 8: Olivares

Figura 4. Ejecución de la misma aplicación en una PC convencional y una PPC.

Figura 5. Aplicación .NET corriendo en dispositivos móviles que no son PPC.

III.II.II MICROSOFT MOBILE INTERNET TOOLKIT (AHORA ASP .NET) Microsoft Mobile Internet Toolkit (MMIT) complementa a SDE y .NET CF. Cuando se desarrollan aplicaciones usando el .NET CF, la mayoría de los códigos residen en el dispositivo. Usando MMIT, la mayoría de los códigos residen en el servidor y son entregados al dispositivo vía un navegador Web.

MMIT mejora el desarrollo al usar VS .NET para construir aplicaciones Web sencillas que adapten sus páginas automáticamente para una amplia variedad de dispositivos, tales como celulares con Internet habilitado, pagers, y PDAs como las PPC.

Esta herramienta consiste de un conjunto de páginas ASP.NET del lado del servidor que controlan inteligentemente la visualización de las páginas de diferentes tipos y dispositivos y, genera páginas WML (Wireless Markup Language), HTML y cHTML (compact HTML). MMIT no permite instalar ningún componente en el dispositivo cliente, sin embargo, se usa una lógica del lado del servidor para adaptar el rendering (presentación) de las páginas en el

Page 9: Olivares

navegador Web del dispositivo cliente. MMIT consiste de un largo conjunto de controles en el lado del servidor. IV. JAVA (J2ME Y OTROS) Es una de las plataformas propietarias más empleadas para el desarrollo de aplicaciones en dispositivos móviles. La filosofía de Java se basa en el hecho de desarrollar (compilar) una vez y correr en cualquier parte, a esto en inglés se le denomina WORA (Write Once Run Anywhare).

Para ejecutar java se necesita de una máquina virtual que entienda el código generado y lo ejecute al instante, una de las mayores problemáticas que presentan las PPCs y los dispositivos móviles en este sentido, es el hecho de que cuentan con pocos y limitados recursos de hardware, razón por la cual, el diseño de máquinas virtuales de Java se complica demasiado [16].

A diferencia de .NET que implementa su máquina virtual para todos los tipos de PPC, Sun Micro Systems, empresa desarrollado de la tecnología Java, no implementa ningún tipo de máquina virtual; lo que ha llevado a terceros, a desarrollar máquinas virtuales que en principio, no son de libre acceso (entiéndase como no gratuitas) y lo peor, que son totalmente incompatibles entre si [17].

Esta problemática no se presenta en otro dispositivos móviles que emplean Java, tal es el caso de los teléfonos celulares, para ellos y para otro tipos de dispositivos móviles e incrustados, Sun a desarrollado la tecnología J2ME (Java 2 Micro Edition), que a grosso modo, es un subconjunto de las APIs utilizadas en J2SE (Java 2 Standard Edition) utilizadas en el desarrollo de aplicaciones de escritorio. Aquí cabe recalcar que J2SE es un subconjunto de las APIs implementadas en J2EE (Java 2 Enterprise Edition), que es la versión de Java utilizada en el desarrollo de aplicaciones de alto rendimiento, como pueden ser aplicaciones de servidores empresariales.

Antes del desarrollo de J2ME ya existían alternativas para el desarrollo de aplicaciones que requerían el uso de tecnología Java para plataformas no convencionales, tales es el caso de Embedded Java y Personal Java; de esta ultima se tiene la maquina virtual denominada Jeode [18] que viene con algunos modelos de la familia Pocket PC iPaq, pero desgraciadamente no es gratuita. También otra de las maquinas virtuales existentes es Jbed de la compañía esmertec. La máquina virtual utilizada para crear una aplicación y probarla fue CrEme [19] la cual implementa la tecnología Personal Java. Otras máquinas virtuales están disponibles, para más información consultar [20 y 21].

El objetivo en este apartado era conocer si era posible portar una aplicación completa en Java para su ejecución en PPC. La aplicación consiste en un servidor Web sencillo. Un navegador pide una página y el servidor se la devuelve tal y como se muestra en la figura 6. En el lado derecho de esta figura se muestra la aplicación servidora; mientras que en el lado izquierdo se muestra el navegador Web.

Durante el desarrollo de esta aplicación se observaron dos cosas fundamentalmente. La primera que es posible ejecutar la mayoría de las APIs básicas de Java a excepción de las interfaces gráficas de usuario donde sólo está implementado AWT la cual es muy básica. Por otra parte se encontró que la plataforma PPC no cuenta con una interfaz en línea de comandos, por lo que

Page 10: Olivares

para realizar aplicaciones en esta interfaz se necesita que la máquina virtual soporte su propio shell.

Figura 6. Aplicación hecha en Java para PPC.

V. LINUX Se ha portado Linux a una gran variedad de dispositivos móviles entre ellos PPC. En [22 y 23] se muestra como cambiar de sistema operativo a las PPCs

En lo referente a las herramientas de programación, existen compiladores GNU de C, C++, Perl y Pitón, entre otros lenguajes. Se está portando Java para Linux y ejemplo de ellos es el proyecto blackdown [24] y el compilador de IBM "jikes" [25], por mencionar algunos.

Se implemento algunas pequeñas aplicaciones realizadas en lenguaje C con el objetivo de comprobar la portabilidad de las aplicaciones realizadas en C. Para ello se necesito obtener un compilador cruzado. Un compilador es cruzado cuando genera código binario para otra plataforma distinta a la cual se ejecuta. El proceso de crear un compilador cruzado es algo laborioso y complicado y los pasos a seguir para su configuración se pueden obtener de [26 y 27].

En la figura 7 se muestra en el lado izquierdo una aplicación que captura las señales de una consola; mientras que en el lado derecho se muestra una aplicación que maneja estructura de datos. El mismo código fuente utilizado en una aplicación de escritorio se compila con el compilador cruzado generando la aplicación para PPC.

De el desarrolló de está aplicación se pudo comprobar que se pueden obtener la mayoría de las ventajas que se tienen el desarrollo de aplicaciones en C para Linux, tales como el manejo de semáforos, señales, tuberías, sockets, entre otras.

Page 11: Olivares

Figura 7. Aplicación en Linux Distribución 'Familiar' para PPC.

VI. CONCLUSIONES Al terminar el análisis de las herramientas evaluadas se determino que .NET CF con lenguaje en C# es en estos momentos la mejor herramienta de programación para plataforma PPC. Está herramienta será utilizada para la implementación del Gestor de Acaparamiento de Sitios Web Transcodificados que pretendemos desarrollar. Está herramientas nos permite desarrollar de manera fácil y sencilla aplicaciones potentes que pueden correr en múltiples plataformas no sólo de PPC sino de otros dispositivos móviles y convencionales. Nuestra segunda opción corresponde MVC++ la cual se descartó por la complejidad del lenguaje en sí, ya que para generar el código para distintos microprocesadores es necesario tomar algunas consideraciones. Se recomienda su uso cuando se desee obtener mayor velocidad de ejecución de las aplicaciones y/o un uso intensivo de hardware. La tercera opción corresponde a la tecnología Java, la cual se descartó para nuestro futuro proyecto debido a que no existen máquinas virtuales para todas las plataformas y dispositivos PPC, además de que estas máquinas virtuales no son gratuitas. Se recomienda su uso cuando se tiene software legado que se quiere ejecutar en plataforma PPC. Como cuarta opción se tiene el desarrollo de aplicaciones en plataforma Linux, se descartó dicha opción por el hecho de que no es posible instalar Linux en todo tipo de dispositivo PPC, además de que el complejo de instar el sistema operativo y las herramientas de programación es sumamente complejo. Se recomienda su uso cuando se quieran utilizar lenguajes muy específicos en el desarrollo. Cuando se necesite realizar aplicaciones que aprovechen las características multitarea y multiusuario que proporciona Linux. La quinta opción corresponde a MVB, la cual se descartó por ser un lenguaje interpretado y con pocas características. Se recomienda su uso cuando se desee realizar desarrollos rápidos y sencillos.

Page 12: Olivares

Por último se descartó utilizar ASP .NET (y sus variantes) por ser una tecnología que no permite realizar muchas cosas en el dispositivo móvil. Se recomienda su uso cuando el procesamiento se realiza en mayor medida en el lado del servidor y en el cliente sólo se implementará una interfaz a través del Web que se ajustará a cada tipo de dispositivo. VII. BIBLIOGRAFÍA

[1] David R. Valenzuela Molina, “Mecanismo para Predicción de Acaparamiento de Datos en Sistemas Cliente/Servidor Móviles”, tesis de maestría, cenidet, agosto de 2002.

[2] Claudia Selene Uriarte Cabada. “Transformador de Contenidos Web para Asistentes Personales Digitales”, tesis de maestría, cenidet, julio de 2004.

[3] J. Gabriel González Serna. “Esquema Adaptativo para la Gestión de Movilidad en Sistemas Cliente/Servidor a través de Internet”. Documento para la revisión pre-doctoral. CIC-IPN, 2005.

[4] Kyle Lutes, “Software Development for Mobile Computers”, Revista Pervasive computing,IEEE CS e IEEE ComSoc, 2004, pp. 10 – 14.

[5] Chris Muench , “Development Tools for Mobile and Embedded Applications”, http://www.pocketpcdn.com/tools/index.html

[6] “Diseño de aplicaciones inalámbricas móviles”, http://www.intel.com/espanol/update/contents/mo11031.htm

[7] Girish NS, “Introduction to Pocket PC Development”, http://www.codeproject.com/ce/Pocket_PC_Development.asp

[8] “PocketC Programming for PocketPC and Windows CE”, http://www.orbworks.com/wince/index.html

[9] “Microsoft’s Designed for Windows Mobile Software Application Handbook for Pocket PC”, www.qualitylogic.com/altsite/certprograms/pocketpc_spec.html

[10] Paul Yao, “Choosing a Windows Embedded API: Win32 vs. the .NET Compact Framework”, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/choose_api.asp

[11] Paul Yao, “Programming With eMbedded Visual C++ 4.0”, The Paul Yao Company, http://www.paulyao.com

[12] “eMbedded Visual Tools vs. Platform Builder: The Basics”, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppc2k/html/ppc_pbevt.asp

[13] “Migrating Your Application from Pocket PC 2000 to Pocket PC 2002”, http://msdn.microsoft.com/library/en-us/dnppc2k2/html/ppc_ate2002.asp

[14] “Soluciones móviles con Visual Studio .NET”, http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art49.asp

[15] “Developing Pocket PC Applications using .NET Framework”, http://www.c-sharpcorner.com/Code/2003/Sept/DevelopPocketPCApps.asp

[16] George Lawton, “Moving Java into Mobile Phones”, Junio de 2002, Revista IEEE computer, pp. 17 – 20.

[17] “Java Support on Pocket PC”, http://www.comp.lancs.ac.uk/computing/users/fittond/ppcjava.html

[18] “Jeode Java Runtime for Pocket PC”, http://compaq.handango.com/JeodeRuntime [19] “Java CrEme”. http://www.nsicom.com/ [20] “Think small: Java on Compaq's iPAQ”, http://www.javaworld.com/javaworld/jw-10-2001/jw-

1026-devices.html [21] “List of Java embedded products”, http://www.geocities.com/marcoschmidt.geo/java-

embedded.html [22] “Proyecto Familiar”, http://familar.handhelds.org/ [23] “iPaq Linux”, http://www.ipaqlinux.com/ [24] “Java Linux” http://www.blackdown.org/ [25] “Jikes”. http://jikes.sourceforge.net/ [26] “uClibc”. http://www.uclibc.org/toolchains.html [27] “CE Linux Forum”. http://www.celinuxforum.org/pubwiki/moin.cgi/ToolChains

VIII. CURRICULUM VITAE.

Page 13: Olivares

J. Gabriel González Serna

Ingeniero en Sistemas Computacionales por el InstitutoTecnológico de Acapulco (ITA) en 1992 y Maestro en Ciencias en Ciencias de la Computación por el cenidet en 1995. Profesor Investigador del Departamento de Ciencias Computacionales del cenidet en el área de Sistemas Distribuidos desde 1995 a la fecha.Candidato a Doctor en Ciencias de la Computación por el CIC del IPN. Sus áreas de interés son: Redes inalámbricas (802.11x y Bluetooth), Minería de uso de la Web y Sistemas Distribuidos.

Azucena Montes Rendón Licenciada en Matemáticas por parte de la Universidad Autónoma Metropolitana en 1994. Realizo Maestría en Matemáticas e informática aplicada así como Doctorado en Matemáticas en la Université de Paris-Sorbonne en Francia, en 1998 y 2002. Sus áreas de interés son: Tratamiento informático del lenguaje natural, formalización de la semántica y de la sintaxis.Topología y quasi-topologias. Lógica. Juan Carlos Olivares Rojas

Ingeniero en Sistemas Computacionales por parte del Instituto Tecnológico de Morelia (ITM) en 2004. Estudiante de Maestría en Ciencias en Ciencias de la Computación en el Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet), dentro de la especialidad de Sistemas Distribuidos. Sus áreas de interés son: cómputo móvil, redes de computadoras, base de datos.