SlideShare una empresa de Scribd logo
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
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.
• 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
• 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].
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
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.
• 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.
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
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
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.
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.
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.
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.

Más contenido relacionado

Destacado

La paz y la felicidad en jehova
La paz y la felicidad en jehovaLa paz y la felicidad en jehova
La paz y la felicidad en jehova
Euler
 
Mnemotechnique_PROFILS A
Mnemotechnique_PROFILS AMnemotechnique_PROFILS A
Mnemotechnique_PROFILS A
Cédric LAIR
 
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
Tocup
 
Mont ste odile al
Mont ste odile alMont ste odile al
Mont ste odile al
lyago
 
Presentación de Hacer Historia Consultores
Presentación de Hacer Historia ConsultoresPresentación de Hacer Historia Consultores
Presentación de Hacer Historia Consultores
Juan Carlos Lucas
 
Resultados de la feria[1]
Resultados de la feria[1]Resultados de la feria[1]
Resultados de la feria[1]
katrojcr
 
#25ansAPESS. Bilans ef introduction première conférence
#25ansAPESS. Bilans ef introduction première conférence#25ansAPESS. Bilans ef introduction première conférence
#25ansAPESS. Bilans ef introduction première conférence
APESS. Association pour la Promotion de l'Elevage au Sahel et en Savane
 
Explication de vote voici les observations des libéraux démocrates sur le vol...
Explication de vote voici les observations des libéraux démocrates sur le vol...Explication de vote voici les observations des libéraux démocrates sur le vol...
Explication de vote voici les observations des libéraux démocrates sur le vol...
Alpha Diallo
 
ANSA_HOPE_in_stations_fiche_projet
ANSA_HOPE_in_stations_fiche_projetANSA_HOPE_in_stations_fiche_projet
ANSA_HOPE_in_stations_fiche_projet
Gaëlle Baudry
 
Conferencia Ignite 09 (Jc Lucas) Final
Conferencia Ignite 09 (Jc Lucas) FinalConferencia Ignite 09 (Jc Lucas) Final
Conferencia Ignite 09 (Jc Lucas) Final
Juan Carlos Lucas
 
2011-10-open data - vision Sitra
2011-10-open data - vision Sitra2011-10-open data - vision Sitra
2011-10-open data - vision Sitra
Karine Feige
 
What Makes Entrepreneurs Entrepreneurial
What Makes Entrepreneurs EntrepreneurialWhat Makes Entrepreneurs Entrepreneurial
What Makes Entrepreneurs Entrepreneurial
Glenn Klith Andersen
 
Présentation pour l'activité "adopte un monstre" avec les 2º ESO opt
Présentation pour l'activité "adopte un monstre" avec les 2º ESO optPrésentation pour l'activité "adopte un monstre" avec les 2º ESO opt
Présentation pour l'activité "adopte un monstre" avec les 2º ESO opt
Vanessa Lefebvre
 
Postiaux jfk2011
Postiaux jfk2011Postiaux jfk2011
Postiaux jfk2011
Pierre Trudelle
 
ELEMENTOS PROYECTO INVESTIGACION
ELEMENTOS PROYECTO INVESTIGACIONELEMENTOS PROYECTO INVESTIGACION
ELEMENTOS PROYECTO INVESTIGACION
Euler
 
Je suis charlie par andré
Je suis charlie par andréJe suis charlie par andré
Je suis charlie par andré
Olivier Soury
 

Destacado (19)

La paz y la felicidad en jehova
La paz y la felicidad en jehovaLa paz y la felicidad en jehova
La paz y la felicidad en jehova
 
Mnemotechnique_PROFILS A
Mnemotechnique_PROFILS AMnemotechnique_PROFILS A
Mnemotechnique_PROFILS A
 
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
7 Cerveaux du corps humain, Lumière photonique, l'Eau, 432 Hertz
 
Mont ste odile al
Mont ste odile alMont ste odile al
Mont ste odile al
 
Presentación de Hacer Historia Consultores
Presentación de Hacer Historia ConsultoresPresentación de Hacer Historia Consultores
Presentación de Hacer Historia Consultores
 
Présentation1
Présentation1Présentation1
Présentation1
 
Presentation gannage-flsh-original
Presentation   gannage-flsh-originalPresentation   gannage-flsh-original
Presentation gannage-flsh-original
 
ORDRE DE MALTE FRANCE Rapport 2014
ORDRE DE MALTE FRANCE Rapport 2014ORDRE DE MALTE FRANCE Rapport 2014
ORDRE DE MALTE FRANCE Rapport 2014
 
Resultados de la feria[1]
Resultados de la feria[1]Resultados de la feria[1]
Resultados de la feria[1]
 
#25ansAPESS. Bilans ef introduction première conférence
#25ansAPESS. Bilans ef introduction première conférence#25ansAPESS. Bilans ef introduction première conférence
#25ansAPESS. Bilans ef introduction première conférence
 
Explication de vote voici les observations des libéraux démocrates sur le vol...
Explication de vote voici les observations des libéraux démocrates sur le vol...Explication de vote voici les observations des libéraux démocrates sur le vol...
Explication de vote voici les observations des libéraux démocrates sur le vol...
 
ANSA_HOPE_in_stations_fiche_projet
ANSA_HOPE_in_stations_fiche_projetANSA_HOPE_in_stations_fiche_projet
ANSA_HOPE_in_stations_fiche_projet
 
Conferencia Ignite 09 (Jc Lucas) Final
Conferencia Ignite 09 (Jc Lucas) FinalConferencia Ignite 09 (Jc Lucas) Final
Conferencia Ignite 09 (Jc Lucas) Final
 
2011-10-open data - vision Sitra
2011-10-open data - vision Sitra2011-10-open data - vision Sitra
2011-10-open data - vision Sitra
 
What Makes Entrepreneurs Entrepreneurial
What Makes Entrepreneurs EntrepreneurialWhat Makes Entrepreneurs Entrepreneurial
What Makes Entrepreneurs Entrepreneurial
 
Présentation pour l'activité "adopte un monstre" avec les 2º ESO opt
Présentation pour l'activité "adopte un monstre" avec les 2º ESO optPrésentation pour l'activité "adopte un monstre" avec les 2º ESO opt
Présentation pour l'activité "adopte un monstre" avec les 2º ESO opt
 
Postiaux jfk2011
Postiaux jfk2011Postiaux jfk2011
Postiaux jfk2011
 
ELEMENTOS PROYECTO INVESTIGACION
ELEMENTOS PROYECTO INVESTIGACIONELEMENTOS PROYECTO INVESTIGACION
ELEMENTOS PROYECTO INVESTIGACION
 
Je suis charlie par andré
Je suis charlie par andréJe suis charlie par andré
Je suis charlie par andré
 

Similar a Olivares

Unidad 4
Unidad 4Unidad 4
Unidad 4
mi casa
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
VirgCSan
 
Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...
TELCON UNI
 
Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...
Jomicast
 
Megías.pdf
Megías.pdfMegías.pdf
Megías.pdf
VICTORMORO11
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
jezabelink
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
Emilio Aviles Avila
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
fanny casadiego
 
Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Net
mellcv
 
Paola
PaolaPaola
Paola
PaolaPaola
Paola
PaolaPaola
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
paolatublog
 
Paola
PaolaPaola
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
paolatublog
 
Marco teorico
Marco teoricoMarco teorico
Marco teorico
yamary sanchez
 
Temas Relacionados Web 2
Temas Relacionados Web 2Temas Relacionados Web 2
Temas Relacionados Web 2
Juan Raul Vergara
 
CLASE 6_Areas de la Ingenieria de Sistemas.pdf
CLASE 6_Areas de la Ingenieria de Sistemas.pdfCLASE 6_Areas de la Ingenieria de Sistemas.pdf
CLASE 6_Areas de la Ingenieria de Sistemas.pdf
Maria Garcia
 
Funcion android
Funcion androidFuncion android
Funcion android
Edgar Mtz
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
Jhosely Malca
 

Similar a Olivares (20)

Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...Implementación de una aplicación para la Administración remota de servidores ...
Implementación de una aplicación para la Administración remota de servidores ...
 
Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...
 
Megías.pdf
Megías.pdfMegías.pdf
Megías.pdf
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Desarrollo android - 2 - arquitectura del sistema
Desarrollo android   - 2 - arquitectura del sistemaDesarrollo android   - 2 - arquitectura del sistema
Desarrollo android - 2 - arquitectura del sistema
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Plataforma .Net
Plataforma .NetPlataforma .Net
Plataforma .Net
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
 
Paola
PaolaPaola
Paola
 
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
 
Marco teorico
Marco teoricoMarco teorico
Marco teorico
 
Temas Relacionados Web 2
Temas Relacionados Web 2Temas Relacionados Web 2
Temas Relacionados Web 2
 
CLASE 6_Areas de la Ingenieria de Sistemas.pdf
CLASE 6_Areas de la Ingenieria de Sistemas.pdfCLASE 6_Areas de la Ingenieria de Sistemas.pdf
CLASE 6_Areas de la Ingenieria de Sistemas.pdf
 
Funcion android
Funcion androidFuncion android
Funcion android
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 

Más de Juan Carlos Olivares Rojas

Ieee itmsb20
Ieee itmsb20Ieee itmsb20
Ropec20neural stick
Ropec20neural stickRopec20neural stick
Ropec20neural stick
Juan Carlos Olivares Rojas
 
Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board Computers
Juan Carlos Olivares Rojas
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las Cosas
Juan Carlos Olivares Rojas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
Juan Carlos Olivares Rojas
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Juan Carlos Olivares Rojas
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Juan Carlos Olivares Rojas
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Juan Carlos Olivares Rojas
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Juan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobility
Juan Carlos Olivares Rojas
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes
Juan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer Interaction
Juan Carlos Olivares Rojas
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Juan Carlos Olivares Rojas
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Juan Carlos Olivares Rojas
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Juan Carlos Olivares Rojas
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas Inteligentes
Juan Carlos Olivares Rojas
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
Juan Carlos Olivares Rojas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Juan Carlos Olivares Rojas
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas Inteligentes
Juan Carlos Olivares Rojas
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Juan Carlos Olivares Rojas
 

Más de Juan Carlos Olivares Rojas (20)

Ieee itmsb20
Ieee itmsb20Ieee itmsb20
Ieee itmsb20
 
Ropec20neural stick
Ropec20neural stickRopec20neural stick
Ropec20neural stick
 
Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board Computers
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las Cosas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en México
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobility
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer Interaction
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas Inteligentes
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas Inteligentes
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
 

Olivares

  • 1. 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
  • 2. 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.
  • 3. • 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
  • 4. • 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].
  • 5. 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
  • 6. 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.
  • 7. • 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.
  • 8. 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
  • 9. 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
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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.