Вы находитесь на странице: 1из 46

Instituto Tecnológico Superior

De Villa La Venta, Tabasco.

Programación en Dispositivos Móviles


Contenido
Unidad 3 Construcción de aplicaciones de cliente inteligente ................................................................... 4
3.1 Arquitectura del cliente inteligente .......................................................................................................... 4
3.1.1 El cliente....................................................................................................................................................... 7
3.1.2 El servidor ................................................................................................................................................... 7
3.2 Sistemas operativos móviles........................................................................................................................ 7
3.2.1 Windows CE ............................................................................................................................................... 8
3.2.2 Palm OS ........................................................................................................................................................ 9
3.2.3 Symbian OS .............................................................................................................................................. 10
3.2.4 Java y J2ME .............................................................................................................................................. 11
3.2.5 SO propietarios ...................................................................................................................................... 12
3.3 Proceso de desarrollo .................................................................................................................................. 13
3.4 Almacenamiento de datos .......................................................................................................................... 14
3.5 fundamentos de sincronización............................................................................................................... 15
3.6 Arquitecturas de sincronización ............................................................................................................. 16
Unidad 4 Construcción de aplicaciones de internet inalámbricas ........................................................ 20
4.1 Arquitectura de Cliente Delgado ............................................................................................................. 23
4.2 Protocolo WAP................................................................................................................................................ 25
4.3 Desarrollo de Cliente Delgado .................................................................................................................. 26
4.4 Tecnologías de Generación de Contenidos y Lenguajes Inalámbricos .................................... 27
Unidad 5 Desarrollo de aplicaciones para teléfonos celulares ............................................................... 28
5.1 Fundamentos del sistema operativo ..................................................................................................... 28
5.2 Referencia de desarrollo............................................................................................................................. 31
5.3 Diseño de la aplicación ................................................................................................................................ 31
5.4 Componentes de interface de usuario .................................................................................................. 32
5.5 Tecnologías de comunicación................................................................................................................... 32
5.6 Prueba y depuración .................................................................................................................................... 34
Unidad 6 Desarrollo de aplicaciones para PDA ............................................................................................. 35
6.1 Anatomía de una aplicación basada en windows/PalmOS .......................................................... 37
6.2 Dibujado de componentes ......................................................................................................................... 40
6.3 Entrada de datos ............................................................................................................................................ 40
6.4 Administración de la memoria................................................................................................................. 41
6.5 manejo de archivos ....................................................................................................................................... 42
6.6 Módulos, procesos e hilos .......................................................................................................................... 43
6.7 Comunicaciones en windows CE/PalmOS .......................................................................................... 44
6.8 Programación del dispositivo ................................................................................................................... 45
Unidad 3 Construcción de aplicaciones de
cliente inteligente

3.1 Arquitectura del cliente inteligente


Esta arquitectura está comprendida en tres partes: una aplicación móvil especifica en el
dispositivo móvil con persistencia de datos, un servidor de sincronización y unas bases de
datos empresariales.
Base de Datos Empresarial: El servidor de sincronización establece la conexión con la base de
datos empresarial y permite acceder a los datos, realizar operaciones de actualización y de
consulta.
A través del servidor de sincronizaciones y por medio físico cableado o inalámbrico,
accedemos a los datos de la base de datos empresarial y cargamos esos datos al dispositivo
móvil; posteriormente se puede desconectar y salir a trabajar en campo.
Cada vez que necesitemos actualizar los datos simplemente se conecta nuevamente al
servidor de sincronización que es el que ejecuta el Conduit o conducto y actualizamos la base
de datos empresarial. Puede acceder a las bases de datos empresariales o propios de la
organización usando el mecanismo de conexión preferido.
Ventajas
Disponibilidad de Datos: Esta arquitectura permite disponer o acceder a datos cuando no
existe una cobertura da alguna red inalámbrica, debido a que existe persistencia de datos. El
usuario puede acceder y modificar los datos luego sincronizarlos con la base de datos
empresarial.
Interfaces de usuario enriquecidas: Se pueden construir aplicaciones enriquecidas con
gráficos, gráficos estadísticos entre otros. Esta interfaces es muy similares a las interfaces de
aplicación de escritorio por que se pueden enriquecer con múltiples controles de interfaz de
usuario.
Performance: Debido a que las aplicaciones se ejecutan en el dispositivo directamente, la
velocidad y eficiencia dependen de la capacidad de procesamiento del dispositivo. A
diferencia de las redes inalámbricas donde la performance depende de la congestión del
servidor web y la red inalámbrica.
Computación Distribuida: Al ser ejecutadas las operaciones en los dispositivos móviles esto
reduce la tarea del servidor de datos en una organización, pues sólo consumen recursos de los
dispositivos y no del servidor de datos de la organización.
Seguridad: Se pueden diseñar esquemas de seguridad más sólidos que en las aplicaciones de
Wireless Internet. Debido a que se implementan procesos de asignación y autenticación de
usuarios a dispositivos móviles.
Costos: Reduce los costos de transmisión de datos pues no existe una conexión en todo
momento y no depende de infraestructura inalámbrica y los datos se pueden llevar a
distancias donde no existe cobertura de red.
Desventajas
Integridad con las Bases de Datos Empresariales: El error común que todos los
desarrolladores principiantes cometen, es pretender llevar la estructura de la base de datos al
dispositivo móvil, lo cual es casi innecesario y lo que se recomienda es llevar solo los datos
que se necesitan, de tal forma que la estructura de datos cambia y al sincronizar se deben
solucionar conflictos de integración con las bases de datos empresariales.
Desarrollo: Este tipo de arquitectura es un poco compleja de implementar, debido a que
realmente es necesario realizar varias aplicaciones e integrarlas para que funcione
correctamente. Aplicación Móvil, sincronizador de dispositivos o Conduit y una aplicación de
administración de los dispositivos.
Múltiples Ciclos de Desarrollo: Se crean diversos ciclos de desarrollo en especial cuando se
defina que la aplicación debe funcionar para múltiples sistemas.
herramientas de desarrollo
tipos de aplicaciones
En cuanto al funcionamiento de una aplicación móvil dentro de un dispositivo existen dos
tipos de aplicaciones:

Código run time engine (rte) código nativo


El código nativo es un tipo de aplicación compilada y generada con una herramienta, para que
se ejecute directamente sobre el sistema operativo del dispositivo móvil; es decir todas las
instrucciones, operaciones y tareas son interpretadas por el sistema operativo directamente.
Estas aplicaciones tienen como ventaja que al ejecutarse directamente sobre el sistema
operativo del dispositivo móvil lo hacen de manera rápida y consumen menos recursos. La
desventaja es que como desarrolladores debemos preocuparnos por conocer el sistema
operativo, para que cualquier operación que se programe no bloquee el dispositivo móvil y
optimizar los recursos de memoria.
código rte
El código RTEes un tipo de aplicación compilada y generada con una herramienta para que se
ejecute sobre una máquina virtual o motor de ejecución(runtime engine). Esta máquina
virtual interpreta las operaciones del código y lo traduce a lenguaje del sistema operativo y
una vez traducidas las instrucciones se ejecutan.
Estas aplicaciones tienen como ventaja que como programadores no se debe preocupar por
conocer el sistema operativo del dispositivo móvil y solo con las instrucciones dadas a la
máquina virtual es suficiente. La desventaja es que ese engine ocupa espacio de memoria y las
aplicaciones no son tan rápidas como las de código nativo, pero lo suficiente como para que
sean funcionales.
Una vez entendidas los tipos de aplicaciones existen muchas herramientas para construirlas
ya sean de tipo código nativo o de tipo rte y en la arquitectura seleccionada.
Las herramientas más utilizadas para implementar de aplicaciones móviles son:
Metrowerks CodeWarrior: Es una herramienta que genera código nativo tanto para
dispositivos móviles palm os y Windows Mobile, también para dispositivos de telefonía móvil.
Tiene una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del
dispositivo ganando tiempo de diseño y de ejecución. Está basado en lenguaje C++ lo que lo
hace una herramienta muy poderosa para aplicativos móviles.
Satellite Form (Enterprise +Server): Es una herramienta que genera RTE tanto para
dispositivos móviles palm os y windows mobile. Posee una interfaz gráfica IDE propia que
permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de
ejecución. Está basado en lenguaje muy parecido a Visual Basic, denominado script de visual
Basic.
AppForge CrossFire Mobile VB: Es una herramienta que genera RTE tanto para dispositivos
móviles palm os, windows mobile y symbian os. Es un plug in para visual Basic, ya sea la
versión profesional 6.0 o visual studio 2005 .net permitiendo utilizar la IDE de visual Basic
para diseñar las aplicaciones móviles. Está basado en lenguaje Visual Basic.
Oracle Lite 10I:Es una herramienta que genera RTE tanto para dispositivos móviles palm os y
windows mobile. Tiene una interfaz gráfica IDE propia que permite acomodar los controles en
la pantalla del dispositivo ganando tiempo de diseño.

Visual Studio 2005 CF 2.0: Es una herramienta que genera RTE tanto para dispositivos
móviles palm os y windows mobile. Tiene una interfaz gráfica IDE propia que permite
acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de
ejecución. Extiende el modelo de visual studio para dispositivos móviles.
Superwaba: Es una herramienta que genera RTE tanto para dispositivos móviles palm os y
windows mobile. No posee una interfaz gráfica IDE propia. Es una máquina virtual compatible
con java. Extiende el modelo de java para dispositivos móviles.
J2ME:Es una herramienta que genera RTE tanto para dispositivos móviles palm os, windows
mobile, y teléfonos celulares según su fabricante. No posee una interfaz gráfica IDE propia.
Extiende el modelo de java para dispositivos móviles en sus dos configuraciones
CDC(Conected Device configuration) y CLDC(Conected Limited Device Configuration).
Pocket Studio: Es una herramienta que genera RTE para dispositivos móviles palm os. Tiene
una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del
dispositivo ganando tiempo de diseño y de ejecución. Para los amantes del Delphi es el
modelo que extiende sus clases del borland Delphi.
WAP 2.0 Es una herramienta que genera scripts tanto para dispositivos móviles palm os,
windows mobile, y teléfonos móviles. No posee interfaz gráfica IDE propia basado en una
extensión del XML llamada WML (Wireless Markup Language) que en su versión 2.0 ya
promete incluir DHTML en los contenidos de las páginas.

3.1.1 El cliente

Cliente Inteligente: El cliente inteligente es una aplicación móvil ejecutada y


desplegada en mi dispositivo con persistencia de datos. Provee acceso offline
a datos que previamente han sido cargados en las bases de datos de mi
dispositivo móvil.

3.1.2 El servidor

Servidor de Sincronización: Es una aplicación inteligente que permite


identificar dispositivos y transmitir los datos desde el dispositivo hacia las
bases de datos empresariales y desde las bazas de datos empresariales hacia
el dispositivo manteniendo la integridad de los datos y de la información a
través de procesos de resolución de conflictos. El servidor de sincronización
entra en acción cuando es llamado desde el dispositivo móvil.

3.2 Sistemas operativos móviles


La varianza de los sistemas operativos móviles es tan solo un componente más, la definición
de Sistema Operativo:
Capa compleja entre el hardware y el usuario, concebible también como una máquina virtual,
que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar
sus tareas informáticas, abstrayéndole de los complicados procesos necesarios para llevarlas
a cabo.
La figura es un modelo conceptual que nos brinda una visión simplificada de la pila de
software que conforma el marco de trabajo para los desarrolladores de aplicaciones para
dispositivos móviles. Sobre estas capas, descansa y se ejecuta cualquier aplicación en nuestros
teléfonos móviles.

El kernel
Es el núcleo que proporciona el soporte necesario para acceder a los distintos elementos del
hardware. Los principales servicios ofrecidos por el kernel a las capas superiores de la pila de
software son los siguientes:

 Drivers para el hardware


 Acceso y gestión de la memoria
 Sistema de archivos
 Gestión de procesos

El middleware
El middleware es el conjunto de módulos software que hacen posible la existencia de las
propias aplicaciones para móviles. Esta librería de software es totalmente transparente para
el usuario final y ofrece servicios claves para las aplicaciones como:

 Motor de mensajería
 Intérpretes de páginas web/WAP
 Motor de comunicaciones
 Códec multimedia
 Gestión del dispositivo
 Seguridad

El entorno de ejecución de aplicaciones


Esta capa consiste de un gestor de aplicaciones y un conjunto de interfaces programables
(APIs) abiertas y accesibles por los programadores para facilitar la creación de aplicaciones.

La interfaz
Esta capa es la que facilita la creación de las interfaces de usuario de las aplicaciones que
facilitarán la gestión de la interacción con el usuario final y el diseño de la presentación visual
de la aplicación (look and feel). Los principales servicios que esta capa ofrece a las
aplicaciones son:
Componentes gráficos: por ejemplo, pantallas, botones, listas, etc.

Marco de interacción: Un componente adicional que no se muestra en el gráfico y que se


sitúa al mismo nivel que las aplicaciones de terceros, de ahí que hayamos preferido no
incluirlo, es la Familia de Aplicaciones nativa del teléfono, que proporcionan el interfaz de
usuario principal del teléfono: menús, marcador de números de teléfono, bandeja de entrada
de mensajes, navegador, etc.

3.2.1 Windows CE

Windows CE tiene como objetivo: proveer un moderno sistema operativo de plataforma


cruzada, multihilo y de tamaño pequeño. Esta última característica es la principal diferencia
con Windows 95 y Windows NT. Cuando se habla de tamaño, se refiere a la cantidad de
memoria y de almacenamiento necesario para albergar al sistema operativo.
Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él se estaba
diseñando un nuevo dispositivo, que tendría más tarde a Windows CE como sistema
operativo. A este nuevo dispositivo se le llamó Handheld PC (HPC) o PC de bolsillo. Es así
como el HPC sería la primera de muchas plataformas en aceptar el uso de Windows CE.
Windows CE también funciona con otros dispositivos denominados Palm-size PC o "PC del
porte de la palma", que son más pequeños que los HPC y que carecen de teclado, reemplazado
por un reconocimiento de un sistema de tacto y un panel de entrada que aparece en pantalla.
La figura anterior muestra un Palm-size PC.
Los dispositivos para Windows CE se sirven de baterías para obtener poder y duran 20 horas
con uso continuo o una semana si el uso es discontinuo. Como una regla general se puede
decir que: las máquinas Windows CE tiene baterías con vida más corta.
A diferencia de Windows 9x o NT, el sistema operativo Windows CE no tiene que ser re
iniciado cada vez que el usuario lo desea utilizar. De hecho, se pueden configurar las máquinas
para que se prendan instantáneamente a la respuesta al input del usuario, y sistema vuelve al
estado justo antes de apagarse.
El sistema operativo no viene es discos, ni en CD-ROM sino que en una pequeña tarjeta que se
inserta en un HPC o en un Palm-size PC.

3.2.2 Palm OS

Palm OS 5.4.9 (Garnet OS) en una Treo 680 (2006)


El sistema operativo Palm fue desarrollado originalmente por Jeff Hawkins para el Pilot PDA
de US Robotics. La versión 1.0 se vendía con los primeros Pilot 1000 y 5000 y la versión 2.0 se
introducía con el Palm Pilot Personal y Profesional.
Cuando salieron los Palm de la serie III se introdujo la versión 3.0 del Sistema operativo.
Posteriormente, salieron las versiones 3.1, 3.3 y 3.5, que añadían apoyo para color, puertos de
expansión múltiples, nuevos procesadores y otras prestaciones.
La versión 4.0 salió con la serie m500, y más tarde salió la actualización para aparatos
anteriores. Esto añadía una interfaz estándar para el acceso del sistema de archivos externo
(como tarjetas SD) y mejoraba las bibliotecas de telefonía, seguridad y mejoras de IU.La
versión 5.0 (Garnet) fue la primera versión que soportó los dispositivos ARM. Anunciado
como paso importante por apoyar a los procesadores ARM, las aplicaciones Palm se ejecutan
en un entorno emulado denominado el Entorno de Compatibilidad de Aplicaciones Palm
(PACE, en inglés), disminuyendo velocidad pero permitiendo gran compatibilidad con
programas antiguos.
El software nuevo puede aprovechar los procesadores de ARM con ARMlets, pequeñas
unidades de código ARM. Era también aproximadamente entonces cuando Palm empezaba a
separar sus divisiones de hardware y de sistemas operativos, y finalmente se convierten en
dos compañías PalmSource, Inc. (sistemas operativos) y palmOne, Inc. (hardware). Las
siguientes versiones de Palm OS 5 han tenido un API estándar para alta resolución y áreas de
entrada dinámicas, junto con un cierto número de mejoras menores.
Palm OS 4.1.2, 5.1 y posteriores, incluyen Graffiti 2, debido a la pérdida de un pleito de
violación con Xerox. Graffiti se basa en Jot de CIC.
PalmSource, Inc. presentó Palm OS Cobalt (también denominado Palm OS 6) a los
licenciatarios el 29 de diciembre de 2003. Esto completaría la migración a aparatos con ARM,
y permitiría apoyar a las aplicaciones nativas ARM junto con apoyo multimedia mejorado.
Actualmente NO existen equipos que usen el Palm OS 6 o Cobalt. No está muy claro el futuro
de esta versión de Palm OS, derivado de la compra de PalmSource por la compañía japonesa
ACCESS, LTD.
Aparentemente, en algún momento será posible tener nuevos equipos PDA con Palm OS cuyo
núcleo (Kernel) sea un Linux completamente funcional.

3.2.3 Symbian OS

Para competir contra Palm y contra el Smartphone de Microsoft, hace ya 9 años (en
1998), varias empresas de telefonía móvil como Nokia, Siemens, Fujitsu, Arima, Samsung, LG,
Mitsubishi Electric, Panasonic, Motorola, Lenovo, Sharp, Benq, Sony Ericsson, Sanyo y
Sendo se unieron en una alianza para crear un sistema operativo para muchos teléfonos
móviles con capacidad de procesamiento de datos.
Fruto de esa alianza, crearon la empresa Symbian Ltd. en 1998 con el objeto de desarrollar un
sistema operativo abierto para las diversas plataformas de teléfonos móviles. Y así llego el
Sistema Operativo Symbian, un sistema operativo diseñado específicamente para
dispositivos móviles y diseñado para funcionar en un espacio pequeño, con escasos recursos
de memoria y preparado para administrar de manera eficiente la energía (por aquella época
el problema del consumo energético en los móviles era un problema importante con el
surgimiento de pantallas a color y la necesidad de proceso).
Además, Symbian tenía que ser tolerante a fallos, de una manera más amplia a como lo eran
los PCs, la gente puede entender que un pc se cuelgue, pero no así su teléfono móvil. De la
misma manera, tras el apagado del teléfono móvil (fuese como fuese) los datos contenidos en
él debían permanecer íntegros, nunca podrían perderse debido a un Sistema Operativo
corrupto o dañado.
Como software de sistema operativo, Symbian proporciona las rutinas y los servicios
subyacentes para las aplicaciones. Técnicamente el sistema operativo Symbian es una
colección compacta de código ejecutable y varias archivos, la mayoría de ellos bibliotecas DLL
(aunque también encontramos archivos de configuración, tipografías, imágenes y otros
recursos).
Por norma general, el sistema operativo Symbian lo encontramos cargado en la memoria flash
del teléfono móvil, de esta forma podemos conservar el sistema operativo aun cuando no
tengamos batería. Además, el estar dispuesto en una memoria aparte, facilita su re
programación o actualización sin necesidad de separarla de los demás circuitos.
Symbian contempla cuatro tipos de dispositivos para su sistema operativo, los denominados
Serie60, Serie80, Serie90 y UIQ. La mayoría de Nokia es Serie60 (aunque también dispone de
Serie80 y Serie90) y todos los de Sony Ericsson y Motorola trabajan bajo UIQ. De hecho, Nokia
ha hecho del Sistema Operativo Symbian su opción estratégica para los sistemas operativos de
los Smartphone. El software de los Nokia Serie60 es actualmente la plataforma de software
más ampliamente utilizada en el mercado Smartphone de todo el mundo, con más 60 millones
de teléfonos
El desarrollo de aplicaciones para Symbian es sencillo ya que no es necesario aprender un
lenguaje de programación nuevo, se puede programar a partir de lenguajes de programación
de pc como Java, C++ Visual Basic, Python, Perl, Flash Lite (entre otros). Este hecho ha
conseguido que existan en la actualidad millones de aplicaciones para móviles Symbian que
realicen todas las tareas imaginables: juegos, mapas, guías de ciudades, reproductores de
vídeo, traductores, diccionarios, administradores de archivos, emuladores de otros
dispositivos como consolas, navegadores web.

3.2.4 Java y J2ME

J2ME es el acrónimo de Java 2 Micro Edition. J2ME es la versión de Java orientada a los
dispositivos móviles. Debido a que los dispositivos móviles tienen una potencia de cálculo
baja e interfaces de usuario pobres, es necesaria una versión específica de Java destinada a
estos dispositivos, ya que el resto de versiones de Java, J2SE o J2EE, no encajan dentro de este
esquema. J2ME es por tanto, una versión reducida de J2SE.
Sun, dispuesto a proporcionar las herramientas necesarias para cubrir las necesidades de
todos los usuarios, creó distintas versiones de Java de acuerdo a las necesidades de cada uno.
Según esto nos encontramos con que el paquete Java 2 lo podemos dividir en 3 ediciones
distintas. J2SE (Java Standard Edition) orientada al desarrollo de aplicaciones independientes
de la plataforma, J2EE (Java Enterprise Edition) orientada al entorno empresarial y J2ME
(Java Micro Edition) orientada a dispositivos con capacidades restringidas. Veamos cuáles son
las características de cada una de las versiones:

1. Java 2 Platform, Standard Edition (J2SE). Esta edición de Java es la que en cierta forma
recoge la iniciativa original del lenguaje Java. Tiene las siguientes características:

 Inspirado inicialmente en C++, pero con componentes de alto nivel, como soporte
nativo de strings y recolector de basura.
 Código independiente de la plataforma, pre compilado a bytecodes intermedio y
ejecutado en el cliente por una JVM (Java Virtual Machine).
 Modelo de seguridad tipo sandbox proporcionado por la JVM.
Esta versión de Java contiene el conjunto básico de herramientas usadas para desarrollar Java
Applets, así como las APIs orientadas a la programación de aplicaciones de usuario final:
interfaz gráfica de usuario, multimedia, redes de comunicación.

2. Java 2 Platform, Enterprise Edition (J2EE). Esta versión está orientada al entorno
empresarial. El software empresarial tiene unas características propias marcadas: está
pensado no para ser ejecutado en un equipo, sino para ejecutarse sobre una red de
ordenadores de manera distribuida y remota mediante EJBs (Enterprise Java Beans). De
hecho, el sistema se monta sobre varias unidades o aplicaciones. En muchos casos, además, el
software empresarial requiere que sea capaz de integrar datos provenientes de entornos
heterogéneos. Esta edición está orientada especialmente al desarrollo de servicios web,
servicios de nombres, persistencia de objetos, XML, autenticación, APIs para la gestión de
transacciones, etc. El cometido de esta especificación es ampliar la J2SE para dar soporte a los
requisitos de las aplicaciones de empresa.

3. Java 2 Platform, Micro Edition (J2ME). Esta versión de Java está enfocada a la aplicación
de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas
muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes. Esta
edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso
de una máquina virtual denominada KVM (Kilo Virtual Machine, debido a que requiere sólo
unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica, inclusión
de un pequeño y rápido recolector de basura.

3.2.5 SO propietarios

Android: es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente


para dispositivos móviles con pantalla táctil, como teléfonos inteligentes, tablets o tabléfonos;
y también para relojes inteligentes, televisores y automóviles. Inicialmente fue desarrollado
por Android Inc., empresa que Google respaldó económicamente y más tarde, en 2005,
compró.9 Android fue presentado en 2007 junto la fundación del Open Handset Alliance (un
consorcio de compañías de hardware, software y telecomunicaciones) para avanzar en los
estándares abiertos de los dispositivos móviles.10 El primer móvil con el sistema operativo
Android fue el HTC Dream y se vendió en octubre de 2008.11 Los dispositivos de Android
venden más que las ventas combinadas de Windows Phone e IOS.12 13 14 15
El éxito del sistema operativo se ha convertido en objeto de litigios sobre patentes en el marco
de las llamadas «Guerras por patentes de teléfonos inteligentes» (en inglés, Smartphone
patent wars) entre las empresas de tecnología.16 17 Según documentos secretos filtrados en
2013 y 2014, el sistema operativo es uno de los objetivos de las agencias de inteligencia
internacionales.
La versión básica de Android es conocida como Android Open Source Project (AOSP).18
El 25 de junio de 2014 en la Conferencia de Desarrolladores Google I/O, Google mostró una
evolución de la marca Android, con el fin de unificar tanto el hardware como el software y
ampliar mercados.

IOS es un sistema operativo móvil de la multinacional Apple Inc. Originalmente desarrollado


para el iPhone (iPhone OS), después se ha usado en dispositivos como el iPod touch y el iPad.
No permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado
de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de
Android y Windows Phone. Actualmente su sistema operativo se encuentra en la novena
versión, mejor conocida como iOS 9.
Apple anunció el lunes 21 de septiembre de 2015 que su nuevo sistema operativo iOS 9 ya ha
superado el 70% de adopción dentro de sus dispositivos compatibles. Según la marca de
Cupertino, 2 de cada 3 dispositivos tienen iOS 9 instalado.
El día 23 de septiembre de 2015 (tan solo una semana después de la salida de iOS 9), Apple
saca iOS 9.0.1 para solucionar problemas relacionados con las alarmas y temporizadores.
Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a
las órdenes del usuario es inmediata y provee una interfaz fluida. La interacción con el
sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen
definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerómetros
internos para hacer que algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo,
para el comando deshacer) o rotarlo en tres dimensiones (un resultado común es cambiar de
modo vertical al apaisado u horizontal).
En el marco de las filtraciones acerca de los programas de vigilancia mundial de 2013-2014 de
Edward Snowden, Der Spiegel publicó que la NSA estadounidense tiene grupos de trabajo
dedicados a descifrar los sistemas de seguridad de iOS; además tiene pequeños programas
conocidos como scripts que permiten a la agencia vigilar a los usuarios de las distintas
versiones del sistema iOS su geolocalización, notas de voz, fotos y otras aplicaciones como
Google Earth, Facebook o Yahoo! Messenger.2
IOS se deriva de OS X, que a su vez está basado en Darwin BSD, y por lo tanto es un sistema
operativo Tipo Unix. IOS cuenta con cuatro capas de abstracción: la capa del núcleo del
sistema operativo, la capa de "Servicios Principales", la capa de "Medios" y la capa de "Cocoa
Touch". Las versiones actuales del sistema operativo son iOS 8.4.1. 3 y iOS 9, la última.

3.3 Proceso de desarrollo


Para la construcción de aplicaciones web y móviles se necesitan crear tres grandes procesos:
Empecemos por el cliente móvil este debe cumplir, en lo posible, con los requerimientos del
cliente en cuanto a procesos en el dispositivo móvil. Después encontramos la aplicación
Web que es la que hace el trabajo "fuerte" y procesa el trabajo de los clientes móviles.
El tercer gran proceso es el que se encuentra en el medio de los anteriores se denomina la
sincronización. Este es el mecanismo por el cual se mantiene la consistencia e integridad de
datos entre los clientes móviles y la aplicación de servidor.
Para las aplicaciones en los clientes Móviles existen una variedad de dispositivos y software
con los que se puede utilizar para crear sistemas que cumplan los requerimientos de un
proyecto específico.
Algunos programas para la creación de software en el cliente móvil son:

 Superwaba
 C#
 java(microedition)
 thinkdb
En cuanto a las aplicaciones Web tenemos una variedad de software como la siguiente:

 Jsp (Java Server Page)


 Php
 .Net
 Python
Los procesos de sincronización se pueden implementar con Java, C# o utilizar algunas
Herramientas de sincronización que traen las aplicaciones para PDA como ThinkDB.

3.4 Almacenamiento de datos


Sqlite
Sqlite es una pequeña librería programada en lenguaje C que implementa un completo motor
de base de datos que no precisa configuración.
Es muy rápido y la ventaja fundamental es que permite utilizar el lenguaje estándar SQL.
Sqlite destaca, además de por su velocidad, por su versatilidad. El motor de PHP 5 ahora
incluye soporte interno para Sqlite.
Sqlite es Software Libre por lo tanto el código fuente es del dominio público y licencia GPL.
La mayor parte de los lenguajes de programación modernos soportan Sqlite.
Sqlite funciona en múltiples Sistemas Operativos.
Las bases de datos de Sqlite son compatibles al 100% entre cada Sistema Operativo.
Transacciones atómicas, consistentes e incluso aún con una falla de energía o caída del
sistema no corrompen la base de datos.
Cero configuraciones o administración necesitada.
Implementa el lenguaje SQL92 (Algunas características no soportadas)
Una base de datos completa es almacenada en un solo archivo.
La base de datos puede ser libremente compartida entre diversas máquinas.
Soporta tipos de datos BLOB.
Simple y fácil de usar los API de desarrollo.
Código fuente bien comentado con pruebas de hasta un 95% cubiertas
No tiene dependencias externas, Librerías de Sqlite están auto contenidas.
Código Fuente es del dominio público, puede usarse para algún propósito.
3.5 fundamentos de sincronización
La Sincronización es el proceso por el cual dos componentes intercambian datos o
información. Los datos intercambiados pueden afectar la información uno o de ambos
componentes. Se dice que esto se hace por medio de protocolos de sincronización, donde
ambos componentes "conocen" la forma de intercambio de datos.
Sincronización de información
La importancia de la sincronización radica en el mantenimiento de la confiabilidad e
integridad de la información.
Entre los protocolos se encuentran los siguientes:

Slow sync: En términos generales cuando se va a sincronizar con este protocolo la PDA
transfiere todos los datos hacia el PC. Y compara uno a uno los registros para ver cual ha
sufrido cambios, se ha borrado o ha sido adicionado. Sincronización por medio de Slow sync.
Entonces cada uno de los datos existentes en la Base de datos o archivo de la PDA pasa a
sincronizar al pc, por eso se denomina show sync. Un ejemplo de datos pude ser la
sincronización de pedidos, los cuales se requieren que pasen todos para su posterior
facturación.

Fast sync: Este protocolo de sincronización es mucho más rápido que el anterior y se
basa en que sólo pasan al servidor los datos que han tenido modificaciones, en otras palabras,
los datos que no han sufrido cambios, borrados o adiciones no se sincronizan.
Sincronización por medio de flast sync.
Un ejemplo típico de sincronización con este protocolo seria el del mantenimiento de una
agenda de citas. Donde no se interesa sincronizar las citas que no han sufrido modificaciones.
Si algunas citas permanecen igual se quedan sin sincronizar.
Este protocolo de sincronización utiliza una "bandera" de estado que permite "marcar" los
registros que han sufrido modificaciones desde la última fecha de sincronización.
Cuando se sincronizan los él Pc y la PDA pueden ocurrir los siguientes eventos:
Inserción: el registro nuevo en la PDA es adicionado al servidor
Modificación : el registro de la PDA Remplaza al del servidor.
Borrado : el Registro en el servidor es borrado
Guardado : el Registro se guarda en el servidor.
Cuando termina la sincronización los "banderas" de estado se anulan o "Resetean". Y se
guarda la fecha de sincronización.
El Protocolo Intellisync anywhere está dedicado para la sincronización en red de diferentes
dispositivos, donde los dispositivos móviles sincronizan con un servidor central.
Además de los dos protocolos anteriores existe otro llamando SyncMl (Synchronous Mark Up
Language)
El objetivo de este protocolo es la sincronización "abierta" entre dispositivos de diferentes
familias. Varias compañías unen esfuerzos para que sus equipos trabajen con este protocolo
de sincronización. Se puede decir que se busca un protocolo de sincronización Universal.
Este protocolo asume que cada dispositivo guarda banderas de estado de los registros de los
demás. Así que este necesita bastante almacenamiento para mantener la integridad de la
información y las banderas de estado.
Sincronización por medio de Intellisync y per-to-per.

Per-To-Per: es otro protocolo de sincronización donde todos y cada uno de los


dispositivos se sincronizan sin la necesidad de un computador centrar o servidor como ocurre
en el caso del protocolo Intellisync anywhere.
No esta demás hacer énfasis en que la sincronización es un proceso diferente al de
transmisión de información. No se deben confundir estos términos por muy similares que
parezcan.
El lector puede buscar información de este tema por el nombre de Conduit.
Para la sincronización en una aplicación se pueden utilizar tablas de sincronización.
En algunas aplicaciones no se sincroniza directamente sobre la base de datos. Para este fin se
utilizan tablas temporales donde se guarda la información y posteriormente con un
proceso se puede depurar y hacer correcciones.
Lo anterior se realiza por motivos de seguridad.

Sincronización sobre Tablas de sincronización. No directamente sobre la base de datos


principal.
Un ejemplo de esto sería la sincronización en un sistema de pedidos donde lo que se necesita
es descargar los pedidos y que el proceso de facturación se encarge del resto.
Claro está que se puede sincronizar directamente sobre la base de datos y hacer la depuración
en el proceso de sincronización.
Agente de sincronización de hotsync
Estas simplemente son opciones que se plantean, el lector puede utilizar la que mejor se
adapte a su aplicación.

3.6 Arquitecturas de sincronización


 Sincronización de procesos
 Concurrencia de procesos
 Región crítica
 Semáforos
 Esquemas de sincronización
 Bloqueos mutuos (deadlock).

Región crítica
* Regiones críticas: Zonas de un código que leen o modifican datos compartidos con otros
procesos.
* Es necesario garantizar la ejecución de cada región crítica como una operación de
modificación o consulta atómica (evitar que los datos sean accedidos por otro proceso
durante la ejecución de esa parte del código)
* Las operaciones para lograr la ejecución de una sección crítica en exclusión
Mutua son:
Esperar (wait): Verifica que nadie ejecuta una región crítica.
Indicar terminación (signal): Indica que se abandona la región crítica.
proceso1: d=generar datos
proceso2: wait(S)
Wait(S) obtener dato f de Buffer
Almacenar d en Buffer signal(S)
Signal(S) consumir dato f

Semáforos
* Son objetos ofrecidos por el sistema operativo a los procesos que permiten controlar la
exclusión mutua.
* Estado del semáforo: indica si hay algún proceso dentro de la sección crítica
* Operaciones (semáforos binarios):
* Wait(S): si el semáforo está ocupado, bloquea al proceso, cuando esté libre continúa la
ejecución y pone el semáforo ocupado.
* Signal(S): pone el semáforo en estado libre.
* Existen semáforos n-arios que dejan pasar hasta n procesos a la exclusión
Mutua antes de bloquear ha los que entran.
* Monitores: tipos de datos de lenguajes de alto nivel (como Ada) que incorporan
implícitamente un semáforo en su implementación (esconden el control de concurrencia al
programador).

Esquemas de sincronización
* Existen esquemas de sincronización de procesos concurrentes muy usados.
* Exclusión mutua: acceso concurrente a datos para operaciones de consulta y modificación
(p.e. bases de datos).
*Productor-consumidor: uno o más procesos dejan dato en un buffer y uno o más procesos los
toman del buffer (la sincronización solo hace esperar al consumidor cuando no hay datos).
proceso1: repetir proceso2: repetir
Producir dato wait(S)
Signal(S) consumir dato
Repetir
* Barrera de sincronización: varios procesos trabajan de forma independiente para producir
un único resultado a partir de los resultados parciales (reducción).
proceso1: procesar datos
proceso2: procesar datos

Barrier(S) barrier(S) combinar resultados


Bloqueos mutuos (deadlock)

* El sistema controla la asignación de recursos a procesos


* Los procesos piden recursos
* El sistema los asigna a los procesos
* Los procesos los devuelven cuando terminan de usarlos
* Cuando un proceso pide un recurso ya asignado se bloquea hasta que el recurso es liberado.
* Un deadlock es una espera cíclica entre procesos que esperan recursos pedidos.
* El sistema debe evitar que los procesos se queden bloqueados para siempre

Estrategias de asignación de recursos


* Prevención: políticas de petición y asignación de recursos conservadoras evitan que se
puedan producir deadlock.
* Detección: políticas de petición y asignación más liberales que permiten la aparición de
deadlock requieren algoritmos de detección: examinar la situación
Actual para encontrar grupos de procesos bloqueados por deadlock
* Recuperación: políticas de actuación para deshacer las
Situaciones de deadlock (eliminar procesos, revocar asignaciones).

Seguridad
* Seguridad
*Medidas de prevención
*Medidas de recuperación
*Sistemas de almacenamiento redundantes (RAID, SAN)

Medidas de prevención
- Medidas que tratan de evitar los desastres o fallos.
- Medidas de protección (control de acceso de usuarios y políticas de permisos).
- Sistemas de alimentación ininterrumpida SAI (UPS).
- Sistemas redundantes o tolerantes a fallos.
- Fuentes de alimentación redundantes.
- Sistemas multiprocesadores: un computador con varios módulos independientes de
procesadores y memoria.
- Sistemas distribuidos: varios computadores independientes unidos por una red de datos.
- Sistemas de almacenamiento redundantes (RAID).
- Uso de salas seguras (acceso restringido) y acondicionadas (condiciones de temperatura,
humedad, y partículas de polvo controladas).
Uso de cortafuegos en la red de datos.

Medidas de recuperación
- Medidas que permiten recuperar el sistema en caso de desastre o fallo.
- Realización de copias de seguridad.
-Almacenado de cintas de Backus en armarios ignífugos.
- Reconfiguración automática del hardware/software en los equipos redundantes/tolerantes
a fallos.
- Reconfiguración automática del software en los sistemas distribuidos.
- Cambio de componentes con el equipo en funcionamiento (hot-swap).

Sistemas de almacenamiento redundantes (i)

- RAID: Armarios de discos que son vistos por el computador como un solo disco.
- Se requiere un controlador que controla el conjunto de discos y responde al computador
como si fuera un único disco.
- Algunas configuraciones permiten velocidades de transferencia muy elevadas.
- Permiten continuar funcionando en caso de avería de un disco gracias a la redundancia
(mirroring, paridad).

Sistemas de almacenamiento redundantes (ii)


- Storage Área Network: El bus de periféricos permite conectar los discos a varios
computadores simultáneamente.
- En caso de avería de un sistema, otro sistema puede continuar ejecutando las aplicaciones
accediendo a los mismos datos (p.e. servidores de Base de Datos redundantes).
- La reconfiguración es automática (no requiere desenchufar y enchufar nada ni reconfigurar
software).

Unidad 4 Construcción de aplicaciones de


internet inalámbricas
Computación Móvil Se puede definir la Computación Móvil como la serie de
artefactos y equipos portátiles, hardware, que hacen uso de la computación para
lograr su funcionamiento, así, se tiene a las computadoras portátiles, los teléfonos
celulares, los cuadernos de notas computarizados, las calculadoras de bolsillo, etc.
WML y HDML WML ("Wireless Markup Language") y HDML ("Handheld Device
Markup Language") son los dos lenguajes de marcación que son compatibles con la
gran mayoría de aparatos inalámbricos en el mercado, HDML fue desarrollado por
phone.com (hoy openwave.com ), mientras WML fue creado por WAP Fórum en 1997
por Ericsson, Nokia, Motorola...y otras 250 empresas en el medio inalámbrico. Hoy en
día generalmente se utiliza WML, ya que casi todos los navegadores en aparatos
inalámbricos logran interpretar apropiadamente el lenguaje. WML es un poco
diferente que HTML pero esencialmente cumple las mismas funciones, enviar el
contenido a pantalla.

WML
 Wml es el lenguaje empleado en WAP que a su vez consiste en un protocolo
que permite el envío de datos por telefonía móvil.
 Da así acceso a Internet, siguiendo la arquitectura de Cliente Servidor.
 La programación en Wml hereda la mayor parte de sus construcciones
sintácticas de XML. Este es un rasgo en común con HTML.
 El salto entre ambos lenguajes es prácticamente inmediato.

Estructura

BARAJA: El servidor de información, tras una petición del terminal WAP, envía una
“baraja”, que corresponde a una unidad de información. Es el equivalente a una página
Web en Internet. Generalmente esta baraja es de un tamaño pequeño, cercano al
Kbyte, debido a las restricciones que impone la comunicación inalámbrica.
CARTA: Un conjunto de cartas forma la baraja. Cada carta contiene información de
formatos, contenidos visibles en la pantalla del terminal instrucciones a procesar.
Idealmente, los contenidos visibles se ajustan a la pantalla. De no ser así nos
desplazaremos con un “scroll”, mediante cursores o una rueda, en función del
terminal. La idea de crear las cartas es intentar dividir la información en varias sub-
páginas para presentarla de forma ordenada en la pantalla del terminal. Cada carta de
una baraja debe contener uno o más elementos.
ELEMENTOS: El código de una aplicación programada en Wml está formado por
una serie de elementos. Se distinguen dos tipos de elementos.

El primero se identifica como un bloque:


<Elemento>
. Contenido del elemento.
</Elemento>

Estructura
• El primer bloque de este programa debe incluirse siempre. Es un prólogo que
contiene la versión de XML que se va a utilizar y un puntero a la definición XML del
lenguaje. Este prólogo lo utilizan los compiladores y servidores WAP para crear y
ejecutar los programas. En cambio los terminales no ven siquiera esta parte del
código.

• El segundo bloque es el de la baraja., delimitada por las etiquetas <WML>. Se


distingue también la carta dentro de sus etiquetas <card>, </card>, así como el
párrafo:

<p>, </p>.

Nótese que se define para este último su aspecto mediante lo que se denomina
“atributos”, en este caso su posición en la línea (centrado), y el modo de presentación
(envuelto), que asegura que el párrafo no desbordará por la derecha la pantalla
(siguiendo en la línea siguiente). De estar definido como desenvuelto (nowrap), se
deberá disponer de un mecanismo que permita ver la porción de línea del párrafo que
no cabe en la pantalla.
El formateo de los textos
Lo primero que debemos aprender es el formateo de los textos, para conseguir una
presentación aceptable de nuestros datos, cosa difícil debido al pequeño espacio que
se nos proporciona en el navegador WML.
TODOS los textos deben ir dentro de una etiqueta <p> textos... </p>

Algunas Aplicaciones de la Computación Móvil


A pesar de que las novelas de ciencia ficción lo anticipaban, no deja de sorprender la
diversidad de aplicaciones que tiene hoy en día —y puede tener en el futuro— esta
tecnología. Hay varios campos en los que no sólo es de utilidad, sino de competencia
esencial para las empresas. Aquí algunos ejemplos:
Manejo de pacientes. La computación móvil permite al médico o institución
mantener contacto con un paciente cuyo estado requiere continua vigilancia. Y esto no
se limita al envío o recepción de mensajes (hablados o escritos), sino que incluye
también el monitoreo constante de signos vitales críticos que pueden anticipar una
emergencia.
Ventas directas. Posiblemente ésta sea la aplicación más evidente: poder consultar
inventarios, precios y realizar pedidos en forma inmediata resulta de particular
interés para cualquier empresa que se dedique a la comercialización de productos.
Servicio a clientes. La asesoría, servicio técnico y consultoría es una área en donde la
computación móvil es vital. La consulta a bancos de información, bases de datos
inteligentes, acopio de información actualizada y consulta de especialistas, es sólo una
pequeña muestra de todo lo que puede impactar esta tecnología, sin mencionar la
posibilidad de contacto permanente con el cliente.
Personal móvil en oficinas. No es raro encontrar a personal que, pese a encontrarse
siempre en el mismo edificio, se mudan de lugar con frecuencia para, por ejemplo, dar
soporte técnico al personal o revisar proyectos. La computación móvil no sólo les
permite ser localizados con facilidad, sino que también le auxilia en la consulta de
datos que por lo regular estarían en su oficina.
Profesionales viajeros. Los modernos guerreros del camino son usuarios potenciales
que pueden aprovechar esta herramienta: contadores con los registros de una
empresa bajo el brazo, gerentes regionales que integran metas empresariales,
dirigentes corporativos que requieren información actualizada y, en fin, una gran
cantidad de personas que necesitan viajar para realizar su trabajo.
Manejo de sucursales. En un mundo en el que las empresas han dejado de tener una
sola oficina para expandirse, las sucursales aparecen casi sin desearlo, con una gran
cantidad de datos que deben consolidarse.
Grupos de trabajo. La globalización y expansión de empresas hace que sea cada vez
más común atacar proyectos con el personal adecuado, el cual no siempre trabaja bajo
un mismo techo y, en ocasiones, ni siquiera en la misma ciudad o país.

Tendencias de la Computación Móvil


En fin, nunca se terminaría de enumerar el enorme número de áreas en que esta
forma de computación puede cobrar una importancia vital. Pero no se crea tan a
futuro, sólo en Canadá se reportaron durante 1993 ventas por $1,000 millones de
dólares y —según datos de Datacomm Research—, las ventas en Estados Unidos
llegarán a $3,700 millones de dólares en el año 2002 para la industria de computación
móvil, en la que se incluye equipo, programas e infraestructura de comunicaciones
(inalámbrica y servicios de redes). Seguramente México experimentará una expansión
proporcional de dicho mercado, nicho que ya empieza a ser atacado por algunas
empresas. Sin embargo, en general representa una oportunidad de negocios en un
mercado muy poco competido hasta ahora.

4.1 Arquitectura de Cliente Delgado


Cliente delgado
Es un equipo de cómputo que no contiene procesador, memoria, discos duros, CD-
ROM, Floppy, u otro dispositivo periférico que utiliza una PC convencional No procesa
nada de información Contiene un chip que permite la conexión con un servidor
central, mediante una tarjeta de red, conexiones a dispositivos USB (teclados, ratones,
Memorias Flash USB, Discos duros externos, etc.), un monitor y conexiones de audio y
video posee las siguiente propiedades:
Usualmente los clientes delgados no poseen dispositivos de almacenamiento. Esto es
lo que hace que sean llamados clientes delgados o estaciones de trabajo sin disco. No
teniendo dispositivos de almacenamiento local, se hace imperiosa la necesidad de
contar con el boot de red para poder ser iniciada. Adicionalmente, el no contar con
estos dispositivos de almacenamiento local elimina también la necesidad de partes
mecánicas móviles y rotatorias, lo que entre otros beneficios aporta además:
 Ausencia de ruidos, son totalmente silenciosos
 Menor consumo energético
 Muchas menos fallas

La arquitectura cliente delgado


No trata solo de las funciones que cada quien realiza. También se tiene la
funcionalidad de las distintas partes aquí es donde interviene el concepto cliente
grueso/delgado. Cuando tenemos una arquitectura cliente/servidor, también tenemos
el concepto de capas lógicas dentro de la arquitectura, estas capas son áreas
funcionales encapsuladas que realizan ciertas tareas. Una capa es una área funcional
distinta dentro de nuestra arquitectura pero una capa no existe por sí sola, tiene
considerable interacción con otras capas, lo que por consecuencia crea la
funcionalidad requerirá para nuestra aplicación.

Capa de presentación: esta es la agradable GUI que se presenta al usuario. Esta


capa contiene código que da formato y muestra datos de una manera fácil de leer.
También captura la entrada de usuario. Esta capa contiene el código que da formato y
muestra los datos de manera fácil de leer. También captura la entrada de usuario. Los
datos capturados de la entrada de usuario se pasan a la capa logia de negocios

Capa lógica de negocios: aquí se guardan las reglas de negocios para aplicación.
Por ejemplo, si una persona debe ser mayor de 16 años esta capa verifica los datos y
tiene éxito (y los pasa a la capa de datos) o falla y devuelve un error de capa de
presentación.

Capa de administración de datos: encargado de hacer persistente toda la


información, suministra y almacena información para el nivel de negocio

Beneficios de cliente delgado


Si se requiere una modificación en el código, sólo necesita haber el cambio en un solo
lugar. Es muy fácil de implementar Como la capa de presentación se ejecuta solo en la
PC cliente, se necesitan muy pocos recursos. Se basa lógicamente en la arquitectura
cliente/servidor. Administración de los equipos centralizada. Menores Costos. Bajo
consumo de energía Reducción en costos de mantenimiento. Movilidad de sesiones de
usuarios. Actualizaciones de software y parches en un solo punto.

Desventajas
Se incrementa el tráfico en la red, ya que cada solicitud requiere de un viaje al
servidor. Se necesitan servidores costosos para ejecutar y administrar la aplicación.
Por lo general, no solo está disponible el acceso al sistema operativo, por lo que
perdemos esta funcionalidad. La seguridad puede llegar a convertirse en una
pesadilla. La base de código puede ser muy extensa y difícil de mantener.

4.2 Protocolo WAP


El modelo de programación WAP es similar al modelo de programación WWW. Este
provee varios beneficios a la comunidad desarrolladora de la aplicación, incluyendo
un modelo de programación familiar, una arquitectura probada, y la capacidad de
mejora las herramientas ya existentes (ej. Servidores Web, XML, etc.). Se han hecho
optimizaciones y extensiones con el fin de encajar las características del medio
ambiente inalámbrico. Donde sea posible, se han adoptado los estándares existentes o
han sido usados como el punto de arranque para le tecnología WAP.
WAP define un conjunto de componentes estándares que permiten la comunicación
entre los terminales móviles y los servidores de red, incluyendo Modelo de nombre
estándar –Los URLs estándar WWW son usados para identificar el contenido WAP en
los servidores originales. Los URLs estándar WWW se usan para identificar fuentes
locales en un dispositivo (ej. Funciones de control de llamadas)
Tipo del contenido – Todos los contenidos WAP tienen un tipo específico consistente
con el tipo WWW. Esto permite que los agentes usuarios WAP procesen
correctamente el contenido basado en su tipo.
Formatos de contenido estándar – Los formatos de contenido WAP están basados
en tecnología WWW e incluyen marca de visualización, información de calendario,
objetos de tarjetas de negocios electrónicas e imágenes.
Protocolos de comunicación estándar – Los protocolos de comunicación WAP
habilitan la comunicación de la petición del browser del terminal móvil al servidor
web de la red.
Los protocolos y tipos de contenido WAP han sido optimizados para el mercado de
masas, dispositivos inalámbricos de mano. WAP utiliza tecnología Proxy para hacer la
conexión entre el dominio inalámbrico y el WWW. El proxy WAP está típicamente
compuesto de la siguiente funcionalidad:
El Gateway del protocolo – Traduce las peticiones de la pila del protocolo WAP
(WSP, WTP, WTLS, y WDP) a la pila del protocolo WWW (HTTP y TCP/IP).
Decodificadores y codificadores de contenido – Estos traducen el contenido WAP
en formatos codificados compactos para reducir el tamaño de la data sobre la red.

COMPONENTES DE LA ARQUITECTURA WAP


La arquitectura WAP provee un ambiente escalable y extensible para el desarrollo de
aplicaciones para dispositivos de comunicaciones móviles. Esto se logra a través de un
diseño de capas de la pirámide completa del protocolo. Cada una de las capas de la
arquitectura es accesible por las capas superiores, así como por otros servicios y
aplicaciones.

 Capa de aplicaciones (WAE)


 Capa se sección (WSP)
 Capa de transición (WTP)
 Capa de seguridad (WTLS)
 Capa de transporte (WDP)

Ambiente de aplicación inalámbrico (WAE)


Este es un ambiente de aplicación de propósito general basado en una combinación de
las tecnologías WWW y de telefonía móvil. El objetivo primario es establecer un
ambiente interoperable que permitirá a los operadores y a los proveedores de
servicio construir aplicaciones y servicios que puedan alcanzar una amplia variedad
de plataformas inalámbricas diferentes de una manera útil y eficiente. WAE incluye un
ambiente microbrowser que contiene la siguiente funcionalidad:
Wireless Markup Language (WML) – un lenguaje ligero, similar a HTML, pero
optimizado para el uso de terminales móviles de mano.
WMLScript – un lenguaje de escritura ligera, similar a Java Script.
Aplicación de telefonía inalámbrica (WTA, WTAI) – interfaces de servicios de
telefonía y de programación.
Formatos de contenido – un conjunto de formatos de data bien definidos, incluyendo
imágenes, registros de libros de teléfonos e información de calendario. Protocolo de
sección inalámbrica (WSP).

4.3 Desarrollo de Cliente Delgado


La creación de clientes delgados exitosos requiere al menos estas características:
Sistema operativo abierto Arranque remoto TCO reducido Seguridad alta
Componentes de hardware standard Configuración sencilla Facilidad de uso
Administración centralizada Bajo consumo de ancho de banda

4.4 Tecnologías de Generación de Contenidos y


Lenguajes Inalámbricos
Tras una presentación de las características más relevantes de la tecnología WAP
(Protocolo para Aplicaciones Inalámbricas), y justificando la importancia crucial que
en este ámbito cobra la personalización de contenidos ofrecidos, en el presente
estudio se analizan los distintos modelos y tecnologías de procesamiento en servidor
existentes (CGI, xSAPI, Servlets Java...etc) reflejando el "estado del arte" actual en lo
referente a la generación dinámica de contenidos WAP. Además, se hace hincapié en
otro importante aspecto de la personalización: la negociación del formato de
presentación de los contenidos para su correcta visualización en terminales móviles
concretos, presentando para ello una solución avanzada que se basa en la utilización
de perfiles CC/CP y la transformación de documentos XML mediante XSL.

Técnicas de procesamiento en servidor WWW para generación de


contenidos WAP
Como se puede apreciar, el modelo general de operación cliente/servidor de WAP es
muy similar al usado en el dominio WWW, y, de hecho, aquél ha sido específicamente
diseñado para que sea posible aprovechar la infraestructura tecnológica existente en
la Web para el aporte de contenidos.
Obsérvese además que en tanto se accede en última instancia a un servidor Web
estándar, los contenidos WAP devueltos pueden ser estáticos (tienen existencia previa
en un sistema de archivos local o remoto accesible por el servidor) o generados
dinámicamente usando tecnologías de servidor suficientemente probadas en la Web,
sin que el cliente WAP pueda establecer distinción alguna sobre el mecanismo de
producción de contenidos usado realmente (tal como sucedía en los clientes Web).
En general, nunca se debería confiar en la efectividad de procesos de filtrado y
conversión automática de contenidos Web a formato WAP (posibilidad anteriormente
mencionada), debido a que estos filtros poco pueden hacer para adaptar al 100%
contenidos que no tienen en cuenta –en origen- las características físicas especiales de
los terminales móviles que realmente se van a usar como clientes. Significa esto que es
siempre preferible aportar contenidos directamente en formato WAP (WML,
WMLScript etc.).
Unidad 5 Desarrollo de aplicaciones para
teléfonos celulares

5.1 Fundamentos del sistema operativo


Los teléfonos móviles también tienen sus propios sistemas operativos,
aunque son menos famosos que los de PC. Sin embargo, así como el mercado
de los sistemas operativos para PC está dominado por Windows, en el caso
de los móviles hay más competencia. La mayor parte del pastel se lo
reparten entre tres sistemas: Windows, Symbian y Linux.

Symbian

Symbian es el sistema operativo para móviles más extendido. La empresa es


propiedad de Ericsson, Panasonic, Siemens AG, Nokia y Sony-Ericsson. Este
sistema desciende de EPOC, empleado en los antiguos ordenadores de
bolsillo Psion.

Symbian fue diseñado pensando en dispositivos móviles, lo que hace que sea
muy robusto (es raro que se 'cuelgue') y muy espartano con sus
necesidades: ahorra siempre que puede espacio en memoria y apaga el
procesador cuando no se utiliza, aumentando la vida de la batería.

Con base en Symbian se han desarrollado interfaces de mucho éxito, como la


serie 60 de Nokia, que es un estándar abierto. En 2005 se vendieron más de
25 millones de teléfonos basados en la serie 60 en todo el mundo. Symbian
también ha dado lugar a plataformas propietarias (programas de pago) muy
avanzadas, como las de los teléfonos FOMA que ofrece NTT DoCoMo en
Japón.

Windows mobile

Windows Mobile, antes conocido como Windows CE o Pocket PC, tiene una
larga historia como segundón en el campo de los PDA u ordenadores de
bolsillo, sin embargo hace pocos meses superó por primera vez al hasta
entonces líder, Palm OS.
El mismo sistema operativo que se emplea en una PDA se aplica a los
teléfonos móviles, y la nueva versión 5 está muy orientada a los teléfonos
inteligentes de tercera generación (3G). Tras unos años de escasa
implantación, Windows Mobile 5 ha logrado atraer a fabricantes como Qtek,
Samsung, Nec o la propia Palm, que lo incorpora en sus teléfonos Treo.

Una de las ventajas de Windows Mobile sobre sus competidores es que los
programadores pueden desarrollar aplicaciones para móviles utilizando los
mismos lenguajes y entornos que emplean con Windows para PC. En
comparación, las aplicaciones para Symbian necesitan más esfuerzo de
desarrollo, aunque también están más optimizadas para cada modelo de
teléfono.

Linux
En los círculos del software libre se acaricia la idea de implantar Linux en el
teléfono móvil desde hace años, pero ha tardado en llegar. Aun así, en los
últimos tiempos se ha avanzado mucho y ya hay varios modelos de móvil en
el mercado que utilizan una versión de Linux como su sistema operativo.

Con Linux no hay que pagar licencias, y esto ha atraído a fabricantes de


China, Taiwán o Singapur, aunque no son los únicos. Motorola presentó su
primer teléfono basado en Linux en 2003, y desde entonces no ha dejado de
ofrecer nuevos modelos con este sistema operativo incorporado. Otros
fabricantes conocidos, como Nec, Panasonic o Samsung, disponen de
numerosos teléfonos Linux.

Además, el fabricante de PDA Palm se ha separado de la división encargada


del sistema operativo Palm OS. La nueva versión está a cargo de la empresa
japonesa Access y estará basada en Linux. Esperan producir los primeros
teléfonos en 2007.

Java
Con las siglas J2ME se conoce a Java Micro Edition, la versión del lenguaje de
programación Java para dispositivos móviles. Aunque es un lenguaje, y no un
sistema operativo, la mayoría de los nuevos móviles pueden ejecutar
aplicaciones escritas en Java, y muchos videojuegos se crean de este modo.

También hay sistemas operativos escritos en Java, como el sistema de RIM,


que funciona en los teléfonos inteligentes BlackBerry. La ventaja de Java es
que la programación es similar al famoso lenguaje C, pero más sencilla, con
lo que los programadores se pueden familiarizar rápidamente.

Las aplicaciones desarrolladas en Java se pueden ejecutar en cualquier tipo


de dispositivo y sistema operativo siempre que disponga de una 'máquina
virtual', el programa encargado de interpretar las instrucciones. Existen
chips que pueden ejecutar Java directamente, sin necesidad de un sistema
operativo entre medias, y no se descarta su uso en teléfonos móviles.

Actualmente los dispositivos móviles son parte de nuestro estilo de vida y la


mayoría de nosotros no pueden vivir sin de ellos. Cuando estos dispositivos
móviles están conectados con el Internet, el poder de los dispositivos
móviles son sin fin.

Podemos entregar datos oportunos al usuario en cualquier lugar y en


cualquier momento.

Los usos móviles se desarrollan tradicionalmente usando WML, WMLScript


y WBMP con un servidor. Para los usos dinámicos de WML, los reveladores
utilizaron el ASP, JSP, PHP, el etc.

Todavía estos usos sirven WML en marcha. Los dispositivos móviles


incluyen los teléfonos de la célula, las PC del bolsillo y las PC del automóvil.

Pocos de estos dispositivos se apoyan en WML, y otros pocos en HTML.


Recientemente, Microsoft introdujo una plataforma revolucionaria del
desarrollo del uso llamada el "marco del NET". Este marco del NET incluye
ASP.NET (versión siguiente del ASP) para el desarrollo del Web. Los clientes
tradicionales del Web de las ayudas del desarrollo del Web de ASP.NET-
based tales como IE y Netscape tan bien como clientes móviles tales como
Phone.com, teléfonos de la célula de Nokia y usos de ASP.NET de la PC del
bolsillo pueden ser desarrollados en cualquier lengua permitida NET Tal
como VB.NET (versión siguiente de VB), JScript, C++ manejado, C #
(pronunciado como sostenido de C), etc.
5.2 Referencia de desarrollo
Los teléfonos móviles son ya parte esencial en nuestra forma de vida. Cada
día son más los usuarios de estos terminales, y cada vez más pequeños.
Hasta ahora, nos han acompañado a todas partes y nos han permitido
comunicarnos con cualquier otro terminal, ya sea fijo o móvil. Aunque la
comunicación telefónica por voz es el principal uso de estos terminales,
pronto se han desarrollado nuevas formas de comunicación y otras
capacidades en torno a nuestros pequeños teléfonos.

5.3 Diseño de la aplicación


Desarrollo móvil en j2me

El primero, y quizás más lucrativo hasta la fecha, fue el uso de la mensajería


SMS (Short Message Service). Nuestros pequeños terminales nos permiten
enviar mensajes cortos de texto (hasta un tamaño de 160 caracteres) que
son enviados desde el terminal al centro servidor de mensajes cortos o SMSC
(Short Message Service Centre), que a su vez se encarga de hacer llegar el
mensaje al móvil destinatario.

Más tarde, aparecieron los terminales capaces de navegar por Internet, pero
las limitaciones de la pantalla y de los teclados hacían inviable su uso con
páginas web normales. Así nació la tecnología WAP, que nos permiten
navegar por páginas especiales creadas en WML en lugar de en HTML. Sin
embargo, las limitaciones de este medio, y quizás también por el elevado
precio y la baja velocidad del servicio, han hecho que la tecnología WAP no
se haya extendido tanto como su hermana mayor, la WEB. Para paliar las
bajas velocidades -sin contar con la baja fiabilidad- de la tecnología GSM
para la transmisión de datos, apareció la tecnología GPRS (General Packet
Radio Service). GPRS nos ofrece una red de transferencia de datos sin hilos a
una velocidad aceptable, tanto es así, que ahora se puede enviar grandes
paquetes de información, como fotografías, música, e incluso video. A partir
de aquí, se hace patente la necesidad de una nueva generación de móviles
capaces de reproducir músicas más complejas y mostrar gráficos y
fotografías en color. A la vez que aparecen estos móviles en el mercado,
aparece el nuevo servicio de mensajes cortos llamado MMS (Multimedia
Message Service). Gracias a MMS, además de texto, podemos enviar
fotografías, sonidos, gráficos, etc. Pero aún estaba por llegar la verdadera
revolución.

Sun Mycrosystems da un paso adelante dentro de su tecnología Java, y nos


presenta J2ME (Java 2 Micro Edition): un entorno de producción para
pequeños dispositivos que permite la ejecución de programas creados en
Java. Una de las principales capacidades que añade esta tecnología a
nuestros terminales es la posibilidad de descargar y ejecutar juegos con una
calidad razonable. Hoy, nuestros teléfonos móviles corren auténticos
sistemas operativos. El más conocido quizás es Symbian, que es el corazón
de gran cantidad de móviles, como los Nokia, Sony-Ericsson, Motorola y
otros.

5.4 Componentes de interface de usuario

Para desarrollar usos móviles con el NET, se debe descargar e instalar los
componentes siguientes. El IE y el NET SDK se pueden descargar del sitio de
Microsoft MSDN para libre.

1. Java J2ME
2. Editor de texto
3. 3 Su simulador favorito WAP

5.5 Tecnologías de comunicación


Los controles móviles son los bloques de edificio para desarrollar usos
móviles. Para los que vengan del campo del desarrollo de GUI/Web con
cuales quiera de los ambientes integrados del desarrollo (IDE) por ejemplo
VB o MS FrontPage, los controles móviles son similares al control del botón
del HTML y al control de rejilla en VB. Los controles móviles simplifican el
desarrollo del uso proporcionando las capacidades que el programador
necesita.
Primer MIDlet

Vamos a construir y ejecutar nuestro primer MIDlet. Existen diferentes


herramientas válidas para construir programas bajo el standard J2ME, como
el propio "Sun One Studio" de Sun Microsystems o "Jbuilder" de Borland.
Nosotros vamos a valernos del "J2ME Wireless Toolkit 2.0" que proporciona
Sun. Este entorno es el más sencillo de utilizar, y aunque no nos ofrece una
gran potencia a la hora de desarrollar aplicaciones, no nos distraerá con
grandes complejidades del principal objetivo que es aprender a hacer
aplicaciones (juegos) en J2ME.

Para instalar J2ME Wireless Toolkit, primero hemos de instalar el entorno


de programación de J2SE (JDK). Puedes descargar la última versión de JDK
desde la URL http://java.sun.com/j2se/downloads.html. Una vez
descargado e instalado, estaremos en condiciones de descargar e instalar
J2ME desde la URL http://java.sun.com/j2me/download.html. El entorno de
desarrollo que nos provee el Wireless Toolkit se llama KtoolBar.

Una vez instaladas nuestras aplicaciones pasamos a de inicio y damos click


en nuestra aplicación.

Cada una de las carpetas creadas tiene una misión concreta. Por ahora nos
bastará saber que nuestros archivos fuente irán emplazados en el directorio
src, y los recursos necesarios como gráficos, sonidos, etc... Se alojarán en el
directorio res.

A diferencia de otros entornos de programación, KToolBar no cuenta con un


editor integrado para editar los programas, por lo tanto vamos a utilizar uno
externo. Puedes utilizar el bloc de notas de Windows o tu editor favorito.
Personalmente utilizo Crimson
5.6 Prueba y depuración
En la pantalla del móvil aparece un menú con un sólo programa llamado
HelloWorld. Pulsa select para ejecutarlo.

Ahora que hemos comprobado que el programa funciona en el emulador,


estamos listos para empaquetar el programa y dejarlo listo para descargar a
un dispositivo real. En KToolBar despliega el menú project, y selecciona
create package del submenú package. KToolBar nos informa de que ha
creado los archivos HelloWorld.jar y HelloWorld.jad dentro del directorio
bin. Estos son los archivos que habremos de transferir al teléfono móvil.
Unidad 6 Desarrollo de aplicaciones para
PDA

Primera Generación (de 1951 a 1958)

Las computadoras de la primera Generación emplearon bulbos para procesar


información. Los operadores ingresaban los datos y programas en código especial por
medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor
que giraba rápida mente, sobre el cual un dispositivo de lectura/escritura colocaba
marcas magnéticas.

Esas computadoras de bulbos eran mucho más grandes y generaban más calor que los
modelos contemporáneos. Eckert y Mauchly contribuyeron al desarrollo de
computadoras de la 1era Generación formando una Cia. Privada y construyendo
UNIVAC I, que el Comité del censó utilizó para evaluar el de 1950.

La IBM tenía el monopolio de los equipos de procesamiento de datos a base de tarjetas


perforadas y estaba teniendo un gran auge en productos como rebanadores de carne,
básculas para comestibles, relojes y otros artículos; sin embargo no había logrado el
contrato para el Censo de 1950.

Segunda Generación (1959-1964)

Transistor Compatibilidad limitada El invento del transistor hizo posible una nueva
generación de computadoras, más rápidas, más pequeñas y con menores necesidades
de ventilación. Sin embargo el costo seguía siendo una porción significativa del
presupuesto de una Compañía. Las computadoras de la segunda generación también
utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el
almacenamiento primario. Estos núcleos contenían pequeños anillos de material
magnético, enlazados entre sí, en los cuales podrían almacenarse datos e
instrucciones.

Tercera Generación (1964-1971)

Circuitos integrados Compatibilidad con equipo mayor Multiprogramación


Minicomputadora Las computadoras de la tercera generación emergieron con el
desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan
miles de componentes electrónicos, en una integración en miniatura. Las
computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían
menos calor y eran energéticamente más eficientes.
Cuarta Generación (1971 a la fecha)

Microprocesador Chips de memoria. Microminiaturización Dos mejoras en la


tecnología de las computadoras marcan el inicio de la cuarta generación: el reemplazo
de las memorias con núcleos magnéticos, por las de Chips de silicio y la colocación de
muchos más componentes en un Chic: producto de la microminiaturización de los
circuitos electrónicos. El tamaño reducido del microprocesador de Chips hizo posible
la creación de las computadoras personales. (PC) Hoy en día las tecnologías LSI
(Integración a gran escala) y VLSI (integración a muy gran escala) permiten que
cientos de miles de componentes electrónicos se almacén en un clip. Usando VLSI, un
fabricante puede hacer que una computadora pequeña rivalice con una computadora
de la primera generación que ocupara un cuarto completo.

Clasificación de las computadoras:

 Supercomputadoras
 Macrocomputadoras
 Minicomputadora
 Microcomputadoras o PC´s

Supercomputadoras: Una supercomputadora es el tipo de computadora más


potente y más rápida que existe en un momento dado. Estas máquinas están
diseñadas para procesar enormes cantidades de información en poco tiempo y son
dedicadas a una tarea específica. Así mismo son las más caras, sus precios alcanzan los
30 MILLONES de dólares y más; y cuentan con un control de temperatura especial,
ésto para disipar el calor que algunos componentes alcanzan a tener. Unos ejemplos
de tareas a las que son expuestas las supercomputadoras son los siguientes:

1. Búsqueda y estudio de la energía y armas nucleares.


2. Búsqueda de yacimientos petrolíferos con grandes bases de datos sísmicos.
3. El estudio y predicción de tornados.
4. El estudio y predicción del clima de cualquier parte del mundo.

Macro computadoras: Las macro computadoras son también conocidas como


Mainframes. Los mainframes son grandes, rápidos y caros sistemas que son capaces
de controlar cientos de usuarios simultáneamente, así como cientos de dispositivos de
entrada y salida. Los mainframes tienen un costo que va desde 350,000 dólares hasta
varios millones de dólares. De alguna forma los mainframes son más poderosos que
las supercomputadoras porque soportan más programas simultáneamente. PERO las
supercomputadoras pueden ejecutar un sólo programa más rápido que un mainframe.
En el pasado, los Mainframes ocupaban cuartos completos o hasta pisos enteros de
algún edificio, hoy en día, un Mainframe es parecido a una hilera de archiveros en
algún cuarto con piso falso, esto para ocultar los cientos de cables de los periféricos, y
su temperatura tiene que estar controlada.
Minicomputadoras: En 1960 surgió la minicomputadora, una versión más
pequeña de la Macro computadora. Al ser orientada a tareas específicas, no necesitaba
de todos los periféricos que necesita un Mainframe, y esto ayudo a reducir el precio y
costos de mantenimiento. Las Minicomputadoras, en tamaño y poder de
procesamiento, se encuentran entre los mainframes y las estaciones de trabajo. En
general, una minicomputadora, es un sistema multiproceso (varios procesos en
paralelo) capaz de soportar de 10 hasta 200 usuarios simultáneamente. Actualmente
se usan para almacenar grandes bases de datos, automatización industrial y
aplicaciones multiusuario. Microcomputadoras (PC´s): Las microcomputadoras o
Computadoras Personales (PC´s) tuvieron su origen con la creación de los
microprocesadores. Un microprocesador es "una computadora en un chic", o sea un
circuito integrado independiente. Las PC´s son computadoras para uso personal y
relativamente son baratas y actualmente se encuentran en las oficinas, escuelas y
hogares. El término PC se deriva de que para el año de 1981, IBM®, sacó a la venta su
modelo "IBM PC", la cual se convirtió en un tipo de computadora ideal para uso
"personal", de ahí que el término "PC" se estandarizó y los clones que sacaron
posteriormente otras empresas fueron llamados "PC y compatibles", usando
procesadores del mismo tipo que las IBM, pero a un costo menor y pudiendo ejecutar
el mismo tipo de programas. Existen otros tipos de microcomputadoras, como la
Macintosh®, que no son compatibles con la IBM, pero que en muchos de los casos se
les llaman también "PC´s", por ser de uso personal.

6.1 Anatomía de una aplicación basada en


windows/PalmOS
Palm OS es un sistema operativo hecho por PalmSource, Inc. para computadores de
mano (PDAs) fabricados por varios licenciatarios.

Sistema Operativo Palm Os El sistema operativo que se utiliza en los dispositivos


Palm es conocido como Palm Os. En sus orígenes fue desarrollado por Jeff Hawkins y
fue aplicado a los primeros modelos Pilot 1000 y Pilot 5000. A medida que pasaba el
tiempo evolucionaba el hardware y también el software de estos dispositivos. Es así
como allá por los años 1996 estaba disponible la versión 2.0 de Palm Os funcionando
en modelos como Palm Pilot en sus divisiones Personal y Profesional.

Luego surge la versión 3.0, 3.1, 3.3 y 3.5 que facilitaban el trabajo con pantallas a color
y puertos de expansión múltiples.

La versión 4.0 presentó un gran adelanto para el acceso a las memorias externas. A
partir de esta versión estaba incluido el software Graffiti 2, una evolución en el
sistema de escritura en estos dispositivos.
La aparición de la versión 5.0 creó una gran expectación debido a sus muy mejoradas
prestaciones y a lo robusto del sistema. Con esta versión se pueden aprovechar los
procesadores ARM de Texas Instruments incluidos en modelos como los de la serie
Tungsten.

Aplicación de Escritorio

Los dispositivos Palm incluyen la opción de sincronizar información con un


computador de escritorio. Este programa se denomina Palm Desktop y nos sirve para
mantener respaldo de todo el contenido de nuestro dispositivo. Además, mediante
esta aplicación es posible instalar nuevos programas en la Palm. Este software está
disponible en versiones para Windows, Linux y Mac Os.

A continuación se muestran las aplicaciones que se presentan


disponibles a partir de la versión 5.0 del software.

Libreta de Direcciones: Este programa nos sirve para mantener un registro


escrito con información relevante de todos nuestros contactos. Al momento de crear
un nuevo registro se requieren los siguientes campos:

 Apellidos
 Nombre
 Compañía
 Teléfono Móvil
 Teléfono Fijo
 Cargo
 Fecha Nacimiento
 Fax
 Correo Electrónico
 Otros.

Calculadora: Esta aplicación nos proporciona una interfaz gráfica para ocupar una
calculadora común y corriente. Sin muchas funciones especializadas. Lo que sí es
rescatable que aprovecha la pantalla táctil para interactuar con el usuario, lo que
supone una calculadora como cualquiera otra con los botones en pantalla.

Calendario: Mediante esta aplicación se puede ver en pantalla un calendario de la


fecha actual, pasada o futura, en diferentes modalidades:

Día: Muestra las actividades registradas para el día señalado y permite el ingreso de
nuevas actividades. Las actividades se organizan por hora.
Semana: En esta modalidad se muestran las actividades de toda la semana,
organizadas por hora y con una codificación de colores, en rojo aquellas en que tienen
problemas con horario y en verde aquellas libres de cualquier problema.

Mensual: Muestra un resumen de las actividades de todo el mes sin detalles. Con esta
aplicación también se pueden aplicar alarmas para avisar descompromisos.

Software no incluido en el Sistema Operativo

Anteriormente hemos mostrado el software que trae por definición una Palm. Sin
embargo existen una cantidad muy superior de programas para Palm Os, de
preferencia para la versión 5.0. De hecho, en agosto de 2003 ya existían más de 19.000
aplicaciones disponibles. Existen sitios en Internet dedicados a la masificación de
programas.

Documents to Go: Este paquete de aplicaciones es análogo a Microsoft Office,


instala en nuestro dispositivo herramientas como Sheet to Go, Word to Go y
PowerPoint to go. Todas ellas son versiones “lite” de los conocidos Excel, Word y
PowerPoint. Para instalarlo, debemos tener una cuenta en un PC de escritorio ya que
se instalan conversores que permiten que cualquier archivo de Office pueda ser leído
por nuestra Palm. Las prestaciones de este software son bastante buenas, ya que se
pueden crear y editar documentos existentes y a la próxima sincronización con el
computador se actualizan las copias existentes.

RealPlayer: Esta aplicación es también un análogo al conocido Realplayer para


Windows. Nos permite reproducir archivos de audio en formato mp3, WAV, wma. A la
vez podemos visualizar videos en formato Real Media. Tiene funciones atractivas
como el apagado de la pantalla mientras se reproduce sonido y también el mantener la
salida de sonido mientras se trabaja en otra aplicación.

TCPMP: Este es el mejor reproductor de música, foto y video que podemos


encontrar. Es posible configurar pantalla completa, que se reproduzca con la pantalla
apagada e incluso redimensionar las fotografías. Ocupa pocos recursos y es muy
intuitivo.

Zlauncher: Esta es quizás una de las aplicaciones más usadas por las personas que
poseen Palm, ya que convierte el contexto básico del sistema operativo en un
ambiente muy parecido a Windows. Incluye soporte para accesos directos, fondos de
escritorio, protectores de pantalla, lectura de archivos ocultos y una interfaz muy
amigable para navegar en la memoria de la Palm y en las memorias presentes en las
ranuras de expansión.

Pocket Tunes: Esta aplicación nos permite tener en nuestra Palm un programa
análogo a iTunes de Mac Os. Es un reproductor de música y videos.
Vademécum: Este software es una adaptación para Palm de la conocida base de
datos de medicina Vademécum.

NoviiRemote: Este programa nos permite ocupar el puerto infrarrojo de nuestro


sistema para controlar dispositivos compatibles, como son televisores, reproductores
de DVD, equipos de música, etc. Cuenta con una base de datos con los códigos de
comunicación de muchos dispositivos y es posible encontrar en internet archivos con
datos de nuevos dispositivos para controlar.

6.2 Dibujado de componentes


Graffiti

Este es uno de los componentes más importantes del sistema ya que provee al usuario
de un método efectivo de escritura. Consiste en codificar de una forma fácilmente
legible por el software los caracteres del abecedario. En la parte inferior una Palm
posee un área de escritura, que es el lugar donde podemos ingresar caracteres por
medio de este método. El siguiente es el código utilizado por este software:
Alternativo a esta forma es un teclado que se puede mostrar en pantalla en donde
tocamos la letra que deseamos escribir.

6.3 Entrada de datos


Lápiz óptico

Este dispositivo es muy parecido a una pluma ordinaria, pero conectada a un cordón
eléctrico y que requiere de un software especial. Haciendo que la pluma toque el
monitor el usuario puede elegir los comandos de las programas.

Tableta digitalizadora

Es una superficie de dibujo con un medio de señalización que funciona como un lápiz.
La tableta convierte los movimientos de este apuntador en datos digitalizados que
pueden ser leídos por ciertos paquetes de cómputo. Los tamaños varían desde tamaño
carta hasta la cubierta de un escritorio.

Entrada de voz (reconocimiento de voz)

Convierten la emisión vocal de una persona en señales digitales. La mayoría de estos


programas tienen que ser "entrenados" para reconocer los comandos que el usuario
da verbalmente. El reconocimiento de voz se usa en la profesión médica para permitir
a los doctores compilar rápidamente reportes. Más de 300 sistemas Kurzweil
Voicemed están instalados actualmente en más de 200 Hospitales en Estados Unidos.
Este novedoso sistema de reconocimiento fónico utiliza tecnología de independencia
del hablante. Esto significa que una computadora no tiene que ser entrenada para
reconocer el lenguaje o tono de voz de una sola persona. Puede reconocer la misma
palabra dicha por varios individuos.

Pantallas sensibles al tacto (Screen Touch)

Permiten dar comandos a la computadora tocando ciertas partes de la pantalla. Muy


pocos programas de software trabajan con ellas y los usuarios se quejan de que las
pantallas están muy lejos del teclado. Su aceptación ha sido muy reducida. Algunas
tiendas departamentales emplean este tipo de tecnología para ayudar a los clientes a
encontrar los bienes o servicios dentro de la tienda. Lectores de código de barras Son
rastreadores que leen las barras verticales que conforman un código. Esto se conoce
como Punto de Venta (PDV). Las tiendas de comestibles utilizan el código Universal de
Productos (CUP ó UPC). Este código identifica al producto y al mismo tiempo realiza el
ticket descuenta de inventario y hará una orden de compra en caso de ser necesario.
Algunos lectores están instalados en una superficie física y otros se operan
manualmente. . Para ingresar letras y números, Palm utiliza Graffiti 2.0, una versión
actualizada de su versión original de su sistema de reconocimiento de escritura a
mano, en donde puedes escribir en caracteres de molde que son similares a las letras
tradicionales, pero que son más fáciles de reconocer para el dispositivo. Muchos
equipos Palm OS aún cuentan con un área debajo de la pantalla que está designada al
Graffiti, lo cual limita el tamaño de la misma pantalla. Los modelos más nuevos
ofrecen un área virtual de Graffiti que puede ser minimizada para darte más campo
visual, característica con la cual ya contaba con los dispositivos basados en Microsoft
desde hace varios años.

6.4 Administración de la memoria


Unidad Aritmético/Lógica

Esta unidad realiza cálculos (suma, resta, multiplicación y división) y operaciones


lógicas (comparaciones). Transfiere los datos entre las posiciones de almacenamiento.
Tiene un registro muy importante conocido como: Acumulador ACC Al realizar
operaciones aritméticas y lógicas, la UAL mueve datos entre ella y el almacenamiento.
Los datos usados en el procesamiento se transfieren de su posición en el
almacenamiento a la UAL. Los datos se manipulan de acuerdo con las instrucciones del
programa y regresan al almacenamiento. Debido a que el procesamiento no puede
efectuarse en el área de almacenamiento, los datos deben transferirse a la UAL. Para
terminar una operación puede suceder que los datos pasen de la UAL al área de
almacenamiento varias veces.
Área de almacenamiento Primario

La memoria da al procesador almacenamiento temporal para programas y datos.


Todos los programas y datos deben transferirse a la memoria desde un dispositivo de
entrada o desde el almacenamiento secundario (disquete), antes de que los programas
puedan ejecutarse o procesarse los datos. Las computadoras usan 2 tipos de memoria
primaria: ROM (read only memory), memoria de sólo lectura, en la cual se almacena
ciertos programas e información que necesita la computadora las cuales están
grabadas permanentemente y no pueden ser modificadas por el programador.

Almacenamiento Secundario

El almacenamiento secundario es un medio de almacenamiento definitivo (no volátil


como el de la memoria RAM). El proceso de transferencia de datos a un equipo de
cómputo se le llama procedimiento de lectura. El proceso de transferencia de datos
desde la computadora hacia el almacenamiento se denomina procedimiento de
escritura. La realidad, sin embargo, es que hay una enorme brecha entre lo que
Windows CE y Palm OS puede hacer lo que respecta a la asignación de memoria se
refiere. Mientras que Microsoft y Palm Computing mantener gran parte de los detalles
sobre el funcionamiento interno de ambos sistemas operativos confidenciales, que sí
sabemos que Windows CE es mucho más robusto en términos de asignación de
memoria total. Si bien no existe un límite para el tamaño de una aplicación Palm OS,
no hay manera para Palm OS 3.x para hacer frente a más de 12MB de RAM, hecho que
fue descubierto por los ingenieros en TRG durante el desarrollo experimental de una
memoria de 16 MB SuperPilot Junta Que nunca vio la producción real. El nuevo
Windows CE HP / PC Pro "Júpiter" máquinas son expandible a 32MB de RAM de base
(como en el Vadem Clio y el HP Jornada 820) y también tienen la capacidad de
almacenar datos sobre 32Mb pueden conectar en caliente tarjetas CompactFlash.
Como mínimo Windows CE debe tener un procesador, memoria y un reloj de tiempo
real. La memoria necesaria para Windows CE es totalmente dependiente de los
componentes que el diseñador del sistema seleccionó. Por ejemplo, para un sistema
de bajo nivel que sólo utiliza el kernel, la pila de comunicaciones requiere menos de la
mitad de un megabyte de ROM y 256 KB de RAM. Los componentes en un Windows CE
de un HPC, con todos los componentes de Windows CE activos toma 2 MB de ROM, y al
arranque ya consume 512 KB de RAM. Pero cuando se agregan Word y Excel y resto
de las aplicaciones se requieren 4 MB de ROM y 2 MB de RAM, con un 1 MB destinado
al almacenamiento de datos.

6.5 manejo de archivos


El Palm OS ROM se construye con el apoyo de un número muy reducido de tareas. Sólo
hay suficiente tarea ranuras para las necesidades de la ROM. Con el fin de apoyar más
tareas, la ROM tendría que ser reconstruido.
Windows CE, en cambio, está diseñado para ejecutar múltiples programas y tareas
simultáneamente. Si esto es o no útil en un dispositivo del tamaño de la palma-como el
Nino es discutible, pero sin duda el mayor factor de forma de los dispositivos, donde
usted puede ser que tenga un navegador Web abierto en una ventana y abrir un
procesador de textos en otro, es una buena cosa. Multitarea es también beneficiosa
durante la sincronización (Windows CE sincronizar todos los dispositivos el momento
conectado a su acoplamiento cunas).

En Windows CE 1.01, existen tres tipos de sistemas de archivos: un sistema de


archivos basado en ROM, un sistema de archivos basado en RAM, y un sistema de
archivo FAT para las unidades de disco.

6.6 Módulos, procesos e hilos


Un hilo es una unidad de ejecución dentro de un proceso. Cada proceso puede tener
varios hilos.

Los hilos reciben una porción del tiempo de CPU.

Todos los hilos de un proceso comparten el mismo espacio de direccionamiento


virtual, luego un hilo puede destruir los datos de otro hilo del mismo proceso.
Windows CE soporta múltiples hilos de ejecución para cada proceso.

Consideraciones a tener en cuenta en Windows CE:

– El máximo número de procesos que soporta Windows CE es 32. Algunos


procesos del sistema están ejecutándose, por lo que hay que ahorrar al
máximo en el número de procesos lanzados.
– Cada proceso recibe un máximo de 32 MB de memoria.
– Es mucho más económico (en consumo de recursos) crear un nuevo hilo
que un nuevo proceso, ya que no se necesita un nuevo espacio de
direccionamiento.
– Aun así, crear hilos debería de ser considerado siempre caro en
términos de recursos.

PalmOS

El uso del palm en el diseño alrededor del dispositivo se utiliza comúnmente, sólo una
aplicación que funciona en una hora, que es diferente de una computadora de
escritorio donde los usuarios pudieron funcionar Word, Excel, practicar surf en la
Web, y comprobar en el mismo tiempo.

Multihilos es una característica importante pues permite que varias aplicaciones


corran simultáneamente.
Los multihilos están disponibles en palm OS
Tipos de Aplicaciones

Una Palm puede ejecutar dos tipos de aplicaciones: Aplicaciones web-clipping (WCA),
que son una especie de mini aplicaciones web, y las tradicionales aplicaciones GUI.

WCA

Una WCA es un conjunto de páginas HTML comprimidas en un formato especial


llamado PQA (Palm Query Application) y descargado a la handheld. A pesar de que la
creación de una WCA es similar a la de cualquier otra aplicación web, lucen muy
diferentes. Una WCA debe ser pequeña y compacta porque están diseñadas para
desplegarse en pantallas pequeñas y viajar a través de conexiones lentas.

Aplicaciones
GUI

Las aplicaciones GUI son por lo general programas de un solo hilo y orientados a
eventos. Sólo se puede ejecutar una aplicación a la vez, ya que PalmOS es un sistema
mono-tarea. Si se abre un programa durante la ejecución de otro, se detiene el
primero hasta que el nuevo termine o el usuario quiera volver al programa anterior.
Las aplicaciones Palm OS son compiladas en archivos PRC (Palm Resource file). El
mismo PRC corre en cualquier producto que ejecute Palm OS.

6.7 Comunicaciones en windows CE/PalmOS


Ambos Utilizan Protocolos de comunicaciones: TCP/IP, PPP, e IrD

Los protocolos de comunicaciones de Windows CE 1.01 proveen conectividad a las


PCs de escritorio Windows, Internet, y a otros dispositivos Windows CE. La pila de
protocolo de comunicaciones para las conexiones es el protocolo estándar de Internet,
TCP/IP, acompañado de PPP. TCP/IP y PPP se utilizan cuando se utiliza la
característica "Conexión Directa mediante Cable" entre PCs Windows, así como
también se utiliza para comunicar un dispositivo Windows CE con Internet a través de
un módem o una LAN.

Conectividad Remota

Para posibilitar aplicaciones de conectividad, Windows CE exporta RAPI o Remote


Access API (API de Acceso Remoto) a un PC con Windows a través de Sockets. El PC a
su vez importa esa API y puede manipular al dispositivo HPC. Una aplicación en un PC,
como el Explorador de HPC, utiliza RAPI para manipular el almacén de objeto del
dispositivo Windows CE. Los archivos puede moverse hacia y desde el dispositivo
Windows CE, las bases de datos pueden actualizarse, el registro puede ser modificado
y revisado a través de la conexión. Mediante la utilización de TAPI, esta conexión
puede realizarse remotamente a través de una línea telefónica.

6.8 Programación del dispositivo


Programar una aplicación

Para programar una aplicación Windows CE para HPC es simple. Cualquier persona
que tenga experiencia en desarrollo de programas en C con Win32 API puede
desarrollar una aplicación en un abrir y cerrar de ojos. Los requisitos son: Visual C++
para PC, Visual C++ para Windows CE (que en realidad es un agregado para soportar
las nuevas plataformas MIPS y SH3) y las clases MFC para Windows CE. Para aquellos
a los que les guste programar sus propias aplicaciones, lo más probable es que la
plataforma Windows CE sea la opción más adecuada, una vez más, pues podrán
utilizar la mayor parte de sus conocimientos de Windows y de Visual C++ y Visual
Basic, pues las herramientas de desarrollo de Microsoft para Windows CE utilizan
estos dos lenguajes y muchas tecnologías comunes, como ActiveX, ADO (ADOCE) y
API's estructuralmente muy similares a las de Windows 9x/NT.

Sobre Palm OS:

Palm IIIxe y Palm IIIC - Los todo terreno de la plataforma Palm.

Aptos para todo tipo de usuarios. El Palm IIIC incorpora pantalla TFT en color.

Palm m100 - A favor, su precio accesible y su colorido exterior. En contra, falta de


potencia y aplicaciones y, sobre todo, la imposibilidad de ampliarlo con nuevos
módulos.

Palm V y Palm V - Opción recomendada para quien pueda permitirse la diferencia de


precio respecto de los Palm III.

Visor Prism - Difícil de encontrar. Pantalla a color.

Visor, Visor Platinum y Visor Deluxe - Difíciles de encontrar. Multitud de tarjetas de


expansión.

Sobre Windows CE (Pocket PC):

Casio E-125 y Casio EM-500 - Aunque hay diferencias entre uno y otro, cualquiera de
estos dos aparatos son la elección perfecta para el usuario que vaya a hacer un uso
intenso de sus características multimedia (vídeo, imágenes, sonido,...). El E-125 es
bastante más caro que los demás.
HP 540 - En realidad, son tres modelos (540, 545 y 548), con importantes diferencias
entre unos y otros. El 548 es caro, pero vale la pena, aunque su procesador es el más
lento de todos los dispositivos basados en Windows CE.

Compaq iPAQ H3600 - El "Rolls Royce" de los Pocket PC. Tiene a favor, entre otros, su
memoria ROM Flash (actualizable), sus 32MB de RAM, el procesador Intel a 206MHz,
su joystick de cuatro botones, su reducido peso y tamaño (menos de 180 gramos),
gran autonomía y su excelente pantalla a color con ajuste automático de brillo. En
contra, la baja resolución de la pantalla a color (12 bits, en vez de 16).

Вам также может понравиться