Apuntes Unidad I - Desarrollo de Aplicaciones Moviles
Apuntes Unidad I - Desarrollo de Aplicaciones Moviles
Apuntes Unidad I - Desarrollo de Aplicaciones Moviles
ITSSNP
Introduccin a los Dispositivos Mviles (PDAs, HandHelds y CellPhones). _______ 2 Sistemas Operativos para DM. ____________________________________________ 17 Tipos de Redes para DM _________________________________________________ 34 Aplicaciones del acceso inalmbrico._______________________________________ 41 Lenguajes Orientados a Objetos y Eventos para DM. ________________________ 43 Emuladores y SDKs. _____________________________________________________ 72 Mensajera y Comunicaciones. ____________________________________________ 73 Tecnologas Emergentes. ________________________________________________ 73
Programacin Avanzada
ITSSNP
Hoy en da, el ser humano se mueve rpido. Vivimos en un mundo en el que el estrs se alza como claro dominador, un mundo en el que la prdida de un segundo puede ser vital en muchos sentidos, un mundo en el que el hombre pretende llegar a todas partes sin ser un dios... pero, ante todo, se trata un mundo en el que el ansia de satisfacer todos estos requerimientos nos ha llevado a reducir al hombre y a la maquina en un mismo ente, como dos partes de un todo...
1.1.
Se define un telfono mvil o celular como un dispositivo electrnico de comunicacin, normalmente de diseo reducido y sugerente y basado en la tecnologa de ondas de radio (es decir, transmite por radiofrecuencia), que tiene la misma funcionalidad que cualquier telfono de lnea fija. Su rasgo caracterstico principal es que se trata de un dispositivo portable e inalmbrico, esto es, que la realizacin de llamadas no es dependiente de ningn terminal fijo y que no requiere de ningn tipo de cableado para llevar a cabo la conexin a la red telefnica. Adems de ser capaz de realizar llamadas como cualquier otro telfono convencional, un celular ms o menos moderno suele incorporar un conjunto de funciones adicionales, tales como mensajera instantnea (sms), agenda, juegos, entre otros, que aumentan la potencialidad de utilizacin de estos dispositivos. Es ms, su desarrollo y exigencia ha llegado a tal punto, que ya se puede hablar incluso de trminos tales como memoria RAM y ligarlos al uso de mviles, dentro informacin de todo tipo (audio, video, texto, etc.), lo que hace de ellas un complemento perfecto tanto para el hombre de a pie como para el de negocios. Su manejo suele ser sencillo, ya sea a travs de la escritura sobre una pantalla (sensible electrnicamente) mediante un stick especifico, o de un pequeo teclado (su integracin o no en el propio dispositivo es opcional). La telefona mvil usa ondas de radio para poder ejecutar todas y cada una de las operaciones, ya sea llamar, mandar un mensaje de texto, etc., y esto es producto de lo que sucedi hace algunas dcadas. La comunicacin inalmbrica tiene sus races en la invencin del radio por Nikola Tesla en los aos 1880, aunque formalmente presentado en 1894 por un joven italiano llamado Guglielmo Marconi. El telfono mvil se remonta a los inicios de la Segunda Guerra Mundial, donde ya se vea que era necesaria la comunicacin a distancia, es por eso que la compaa Motorola cre un equipo llamado Handie Talkie H12-16, que es un equipo que permite el contacto con las tropas va ondas de radio que en ese tiempo no superaban ms de 600 kHz. Fue slo cuestin de tiempo para que las dos tecnologas de Tesla y Marconi se unieran y dieran a la luz la comunicacin mediante radio-telfonos: Martin Cooper,
Programacin Avanzada
ITSSNP
pionero y considerado como el padre de la telefona celular, fabric el primer radio telfono entre 1970 y 1973, en Estados Unidos.
La gente desea hablar con la gente - no en una casa, o en una oficina, o en un coche. Dales la opcin, y la gente exigir la libertad para comunicarse dondequiera que este, desencadenndose del infame alambre de cobre. Es esa libertad que intentamos demostrar vvidamente en 1973...
Martin Cooper. En 1979 aparecieron los primeros sistemas a la venta en Tokio (Japn), fabricados por la Compaa NTT. Los pases europeos no se quedaron atrs y
3 Motorola Dyna-Tac
Programacin Avanzada
ITSSNP
en 1981 se introdujo en Escandinavia un sistema similar a AMPS (Advanced Mobile Phone System). Y si bien Europa y Asia dieron los primeros pasos, en Estados Unidos, gracias a que la entidad reguladora de ese pas adopt reglas para la creacin de un servicio comercial de telefona celular, en 1983 se puso en operacin el primer sistema comercial en la ciudad de Chicago. Este fue el inicio de una de las tecnologas que ms avances tiene, aunque contina en la bsqueda de novedades y mejoras. Resumiendo, hace una dcada aproximadamente los telfonos celulares se caracterizaban slo por llamar, pero ha sido tanta la evolucin que ya podemos hablar de equipos Multimedia que puede llamar y ejecutar aplicaciones, jugar juegos 3D, ver videos, ver televisin y muchas cosas ms. Obviamente muchas marcas de placas madres para PC o fabricantes de hardware en general se hacen presentes en los telfono mviles como por ejemplo: ASUS e INTEL que construyen las placas matrices de lo celulares o ayudan con el acelerador grfico o el sistema de video. En fin, debemos tener conciencia y prepararnos para lo que se viene ms adelante y pensar que el telfono celular ya no es tan slo para hablar. A continuacin se presentan las categoras de los dispositivos: Dispositivo Mvil de Datos Limitados (Limited Data Mobile Device): dispositivos que tienen una pantalla pequea, principalmente basada en pantalla de tipo texto con servicios de datos generalmente limitados a SMS y acceso WAP. Un tpico ejemplo de este tipo de dispositivos son los telfonos mviles.
Programacin Avanzada
ITSSNP
Dispositivo Mvil de Datos Bsicos (Basic Data Mobile Device): dispositivos que tienen una pantalla de mediano tamao, (entre 120 x 120 y 240 x 240 pixels), men o navegacin basada en conos por medio de una rueda o cursor, y que ofrecen acceso a e-mails, lista de direcciones, SMS, y un navegador web bsico. Un tpico ejemplo de este tipo de dispositivos son las BlackBerry y los Telfonos Inteligentes.
Programacin Avanzada
ITSSNP
Dispositivo Mvil de Datos Mejorados (Enhanced Data Mobile Device): dispositivos que tienen pantallas de medianas a grandes (por encima de los 240 x 120 pixels), navegacin de tipo stylus, y que ofrecen las mismas caractersticas que el Dispositivo Mvil de Datos Bsicos (Basic Data Mobile Devices) ms aplicaciones nativas como aplicaciones de Microsoft Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas usuales, en versin mvil, como Sap, portales intranet, entre otros. Este tipo de dispositivos incluyen los Sistemas Operativos como Windows Mobile 2003 o versin 5, como en las Pocket PCs.
6 Ejemplo de Dispositivo Mvil de Datos Mejorados Antes de entrar detalladamente a describir algunos de los dispositivos mviles, vamos a concretar detalladamente el concepto de dispositivo. En ingls existe una amplia gama de trminos para referirse a este tipo de aparatos: "information device". "information appliance". "consumer electronic". "embedded device" o "small device". Por ejemplo. En definitiva: son aparatos pequeos, con algunas capacidades de procesamiento, mviles o no, con conexin permanente o intermitente a una red,
M.S.C. Jos Leonel Cuevas Ruiz
Programacin Avanzada
ITSSNP
con memoria limitada, diseados especficamente para una funcin, pero que pueden llevar a cabo otras ms generales. Normalmente se asocian al uso individual de una persona, tanto en posesin como en operacin, el cual puede adaptarlos a su gusto. La mayora de estos aparatos pueden ser transportados en el bolsillo del propietario y otros estn integrados dentro de otros mayores, controlando su funcionalidad (como puede ser la PC integrado en una lavadora). Sigamos con la descripcin genrica de los mismos. Una caracterstica importante es el concepto de movilidad: los dispositivos mviles son aquellos suficientemente pequeos para ser transportados y empleados durante su transporte. Normalmente se sincronizan con un sistema de PC para actualizar aplicaciones y datos. Un PDA es mvil, pero por ejemplo, un telfono con pantalla para Internet, no sera mvil. Una aplicacin de estos dispositivos es un vendedor que carga en su PDA, en su despacho, antes de salir de la oficina, los datos de los clientes que tiene que visitar. Durante su visita actualiza o modifica la informacin y, una vez termina su ruta, ya en la oficina, actualiza los datos en la aplicacin corporativa. Otro concepto importante es el trmino ingls "wireless" (en espaol, optaremos por inalmbrico). Un dispositivo inalmbrico es aquel que es capaz de comunicarse o acceder a una red sin cables. Por ejemplo, un telfono mvil, paginadores, comunicadores de bolsillos o PDAs. Este tipo de dispositivos se comportan como si estuvieran directamente conectados a una red mediante un cable, dando la impresin al usuario que los datos estn almacenados en el propio dispositivo. Por ejemplo, el mismo vendedor puede cambiar a un telfono mvil y emplearlo para consultar algn dato de un cliente justo antes de visitarlo. Los conceptos de mvil y sin cables muchas veces se confunden. Por ejemplo, un PDA con datos en l y aplicaciones para gestionarlos puede ser mvil, pero no tiene por qu ser wireless, ya que puede necesitar un cable para conectarse al PC y obtener o enviar datos y aplicaciones. Veamos otro ejemplo. Un telfono mvil equipado con un pequeo navegador puede navegar por Internet. En este caso, se considera wireless, pero no se considerar mvil si no dispone de un valor aadido en forma de aplicaciones que aporte alguna funcin cuando no est conectado a otros sistemas. Si el PDA es capaz de conectarse a una red para obtener datos "en medio de la calle", entonces tambin ser wireless. Algunas de las caractersticas que hacen que estos dispositivos sean diferentes de las PCs son las siguientes:
Programacin Avanzada
ITSSNP
Funcionalidad limitada. No necesariamente extensible y actualizable. En pocos aos el usuario deber cambiarlo. Ms barato. Menos complicado en su manejo. Fcil de aprender su operacin. No se requieren usuarios expertos. Algunos de estos dispositivos son los siguientes: Paginadores. Comunicadores de bolsillo. Telfonos con pantalla para Internet (Internet Screen Phones). Sistemas de navegacin de automviles. Sistemas de entretenimiento. Sistemas de televisin e Internet (WebTV). Telfonos mviles. Organizadores y asistentes personales digitales (Personal Digital Assistant). 0-G: Generacin 0 Tristemente, siempre se dice que las guerras agudizan la inventiva y el ingenio del hombre, no solo a nivel armamentstico, sino a otros muchos niveles tales como el de las comunicaciones. Por supuesto, la Segunda Guerra Mundial no fue una excepcin. La compaa Motorola lanz el Handie Talkie H12-16, el cual permita la comunicacin a distancia entre las tropas, un dispositivo basado en la transmisin mediante ondas de radio que, a pesar de trabajar por aquel entonces con un espectro de 600 MHz aproximadamente, supuso una revolucin de enormes proporciones. Esta tecnologa fue aprovechada a partir de los aos 50 y 60 para crear una gran variedad de aparatos de radio y de comunicacin a distancia (los tradicionales Walkie-Talkies), utilizados sobre todo por servicios pblicos tales como taxis, ambulancias o bomberos. Aunque realmente estos dispositivos no pueden ser considerados como telfonos mviles, la implementacin de los primeros supuso el comienzo de la evolucin hacia los dispositivos que conocemos en la actualidad. Los primeros estndares ms utilizados, en los que fundament esta generacin 0, fueron: Estndar PTT (Push To Talk): Pulsar para Hablar. Estndar IMTS (Improved Mobile Telefone System): el Sistema de Telefona
M.S.C. Jos Leonel Cuevas Ruiz
Programacin Avanzada
ITSSNP
Mvil Mejorado.
1-G: Mviles de Primera Generacin Surgidos a partir de 1973 y con un tamao y peso inmanejable, los mviles de primera generacin funcionaban de manera analgica, es decir que la transmisin y recepcin de datos se apoyaba sobre un conjunto de ondas de radio que cambiaban de modo continuo. El hecho de que fueran analgicos traa consigo una serie de inconvenientes, tales como que solo podan ser utilizados para la transmisin de voz (el uso de mensajera instantnea era algo solo visible en un futuro muy lejano) o su baja seguridad, la cual hacia posible a una persona escuchar llamadas ajenas con un simple sintonizador de radio o, incluso hacer uso de las frecuencias cargando el importe de las llamadas a otras personas.
A pesar de todo, esta fue la primera generacin considerada realmente como de telfonos mviles. Estndares ms utilizados: NMT: Nordic Mobile Telephone AMPS: Advaced Mobile Phone System
Programacin Avanzada
ITSSNP
2-G: Segunda Generacin Al contrario de lo que pasa en otras generaciones, la denominada segunda generacin no es un estndar concreto, sino que marca el p aso de la telefona analgica a la digital, que permiti, mediante la introduccin de una serie de protocolos, la mejora del manejo de llamadas, ms enlaces simultneos en el mismo ancho de banda y la integracin de otros servicios adicionales al de la voz, de entre los que destaca el Servicio de Mensajes Cortos (Short Message Service).
7 Comparativa de seales analgicas y digitales. Estos protocolos fueron implementados por diversas compaas, siendo este hecho el origen de uno de los principales problemas de esta generacin la incompatibilidad entre protocolos, debido a que el radio de utilizacin del telfono quedaba limitado al rea en el que su compaa le diera soporte. Estndares ms utilizados: GSM: Global System for Mobile Communications - Sistema Global para Comunicaciones Mviles. CDMA: Code Division Multiple Access - Acceso Mltiple por Divisin de Cdigo.
10
Programacin Avanzada
ITSSNP
GPRS: General Packet Radio Service - Servicio General de Radio por Paquetes
3-G: Tercera Generacin El ao 2001 fue un ao revolucionario en el mbito de la telefona mvil ya que supuso la aparicin de los primeros celulares que incorporaban pantalla LCD a color, hecho que abra un inmenso abanico de posibilidades en cuanto a adaptacin de nuevas funciones se refiere. As, pronto el usuario pudo asistir al nacimiento de dispositivos que se crean como mnimo futuristas tales como mviles con cmara fotogrfica digital, posibilidad de grabar videos y mandarlos con un sistema de mensajera instantnea evolucionado, juegos 3d, sonido Mp3 o poder mantener conversaciones por videoconferencia gracias a una tasa de transferencia de datos ms que aceptable y a un soporte para Internet correctamente implementado (correo electrnico, descargas, etc.). Todo este conjunto de nuevos servicios integrados en el terminal junto con un nuevo estndar dieron lugar a la denominada hoy en da tercera generacin de mviles o mviles 3G. Estndares ms utilizados: UMTS: Universal Mobile Telecommunications System - Servicios Universales de Comunicaciones Mviles. Concepto de la Red de Telefona Celular Uno de los mayores errores cometidos por los usuarios a la hora de hablar de telefona mvil, es el hecho de referirse nicamente al dispositivo en si (el telfono solo es un terminal que permite el acceso a la red), obviando toda la red de comunicaciones que, aun estando en un aparente segundo plano, es fundamental para que dichos dispositivos operen correctamente. Esta red se constituye bsicamente en torno a dos tipos de elementos: Estaciones base: son las encargadas de transmitir y recibir la seal. Centrales de conmutacin: son las que permiten la conexin entre dos terminales concretos. Probablemente venga a la cabeza la simptica imagen de la operadora conectando llamadas bajo un fondo blanco y negro. Hoy en da la conmutacin es digital, electrnica y totalmente automatizada.
11
Programacin Avanzada
ITSSNP
Tipos de dispositivos mviles - El telfono mvil Los telfonos mviles son de los aparatos sofisticados que encontramos en nuestro cotidiano quehacer. Para comprimir y descomprimir seales digitales codificadas, tienen que procesar millones de clculos por segundo. No obstante, se componen de apenas algunos componentes, como son: Micrfono microscpico. Antena. Pantalla LCD de cristal lquido o plasma. Teclado, Pantalla Tctil o Ambos. Botones de acceso rpido / Control de volumen. Memoria Interna. Ranura de comunicaciones/alimentacin. Salida de auriculares. Ranuras para tarjeta SIMM y tarjeta de Memoria. Antenas: GSM-GPRS-UTMS, Bluetooth, Wi-Fi. Batera Recargable. Visor de Cmara. El Dispositivo Mvil posee un microprocesador que realiza clculos a gran velocidad, llamado DSP, o Digital Signal Processor (Procesador Digital de Seales). Este procesador har toda la compresin y descompresin de los datos a la velocidad de 40 MIPS (Millones de Instrucciones Por Segundo). El microprocesador trata todas las tareas del teclado y de la pantalla, gestiona los comandos y controla las seales de la estacin de base, adems de coordinar las dems funciones. Las ventajas que presenta un telfono mvil como tipo de dispositivo mvil son varias:
Muy extendido. Ligero y transportable. Econmico. Poseen prestaciones de comunicacin innatas.
En verdad, un telfono mvil no es realmente un telfono, pero s un aparato de radio. Un telfono mvil utiliza dos frecuencias diferentes: una para hablar y otra para escuchar, permitiendo una conversacin normal. Un aparato de radio tiene 40 canales, un telfono mvil comunica a travs de millares. No obstante, como los
12
Programacin Avanzada
ITSSNP
telfonos mviles funcionan en un sistema de clulas, y una radio transmite directamente para otro aparato, es decir, la radio tiene que ser mucho ms potente, a pesar de tener un alcance de poco ms de seis kilmetros.
13
Programacin Avanzada
ITSSNP
pginas de la Web, FTP, IRC, animacin, etc. En resumen, el GPRS traer consigo los siguientes beneficios:
Conexin a Internet permanente (siempre "on-line"). Establecimiento instantneo de la conexin. Posibilidad de que la facturacin del servicio sea realizada segn la cantidad de informacin transmitida / recibida, al envs de ser contabilizado el tiempo que se est conectado. Una mayor velocidad de transmisin de datos.
El UMTS (Universal Mobile Telecommunication System) es el nuevo protocolo que ser utilizado en Europa por la 3 generacin de telfonos mviles. Integrado en el proyecto de crear un estndar que pueda ser utilizado mundialmente (al revs de la 2 generacin, cuyos sistemas americano y europeo son incompatibles), el UMTS deber alterar la forma de como los mviles son utilizados actualmente, al permitir capacidades multimedia y un acceso sin lmites a Internet. Con los adelantos tecnolgicos de los ltimos aos dentro de Internet y de la telefona mvil, se asiste ahora a una convergencia cada vez mayor entre estos dos medios de comunicacin. El UMTS representar la unin de ambos en una nica plataforma. Tambin designado de 3G, o tercera generacin de telfonos mviles, este sistema permitir que el usuario pueda acceder a imgenes y vdeos, as como a Internet de manera veloz, calidad de voz casi igual a la de las redes fijas, y una larga lista de otras funciones diversas. El UMTS resulta de la necesidad de implantar una nueva generacin de telfonos mviles debido al aumento del nmero de usuarios de este medio de comunicacin. El xito del sistema GSM, dentro de Europa, conllev la saturacin de las frecuencias de radio que le fueron originalmente atribuidas. Tal problema cre la necesidad de lanzar una nueva generacin y, a travs de sta, ampliar el espectro electromagntico disponible as como permitir el acceso a nuevos servicios. La tecnologa UMTS no ser limitada a las redes mviles, estando prevista su utilizacin por otras redes. La tecnologa digital utilizada por el UMTS se denomina de WCMDA (Wide Code Multiple Division Access). Los datos son transmitidos en banda ancha, siendo divididos en paquetes antes de la transmisin, los cuales son despus reunidos por el terminal antes de presentar la informacin en la pantalla. Este sistema est basado en el protocolo americano de los telfonos mviles de segunda generacin (el CMDA), no siendo compatible con el GSM. Adems de las funciones bsicas a que estamos habituados en nuestro mvil, como simplemente telefonear a alguien o enviar / recibir mensajes, el UMTS permitir acrecentar una nueva serie de caractersticas hasta ahora casi inaccesibles o apenas presentes en las pelculas de ciencia-ficcin. El sistema permitir el acceso a Internet a una velocidad ms rpida que los mdems
14
Programacin Avanzada
ITSSNP
normales, as como la transmisin de faxes, imgenes, vdeos y datos. Al mismo tiempo que estaremos telefoneando ser posible visualizar en la pantalla, en tiempo real, la persona con quien nos comunicamos, en caso de que sta tambin posea un mvil UMTS. El acceso a Internet ser bastante ms rpido y sin lmites, pudindose acceder a cualquier tipo de informacin, en cualquier lugar en que estemos. Informacin, comercio y entretenimiento multimedia estarn disponibles en pantalla, en un sistema que integrar las redes de telecomunicaciones mviles, fijas y por satlite. Adems del "roaming" a escala mundial, el UMTS permitir la convergencia de los varios tipos de redes existentes. Segn la Comisin Europea, los servicios UMTS debern poseer las siguientes caractersticas:
Capacidad multimedia y una gran movilidad. Acceso eficiente a Internet. Alta velocidad. Portabilidad entre los varios ambientes UMTS (permitiendo el acceso a las redes UMTS terrestres y de satlite). Compatibilidad entre el sistema GSM y el UMTS, debiendo los terminales poseer "dual band" o funcionar en ambos los sistemas.
Esta nueva tecnologa deber alterar radicalmente la manera como utilizamos los telfonos mviles. Las personas tendrn el mvil ms tiempo delante de los ojos que pegado a la oreja, debido a que este pasar a ser un dispositivo multimedia, como la televisin o la computadora. Al mismo tiempo, la transmisin de datos ocupar una parte mayor del tiempo de utilizacin del telfono mvil, debido a todas las posibilidades existentes (enviar faxes, e-mails,...). La calidad de voz ser semejante a la de los telfonos fijos y la velocidad de transmisin de datos superior a la de un mdem normal, lo que podr significar que las personas usen apenas el mvil, en sustitucin del telfono fijo y del acceso a Internet a travs de PCs. Adems, se tendr la posibilidad de tener Internet en la palma de la mano.
15
Programacin Avanzada
ITSSNP
Tipos de dispositivos mviles - El Personal Digital Assistant (PDA) Un Personal Digital Assistant, o ms conocido como PDA, es como su propio nombre indica un organizador digital. Bsicamente ofrece calendarios, blocks de notas y agendas para telfonos, como caractersticas comunes, por lo que en un futuro no muy lejano reemplazarn las agendas clsicas. Tambin permiten descargar correo electrnico y otros materiales desde un PC, o con aquellos que ya estn equipados con un mdem, acceder a Internet. Normalmente consisten en una pantalla, que suele ser tctil (utilizando un lpiz especial el usuario realiza la entrada de datos, eliminando la necesidad de un teclado, lo que facilita el transporte en el bolsillo. Adems, reconocen la escritura sobre su pantalla), un procesador, memoria y un sistema operativo. Adems, permiten, como ya hemos dicho, conectividad con el PC, lo que posibilita salvaguardar los datos y exportarlos a bases de datos o a aplicaciones ms elaboradas, o transferir nuevas aplicaciones al asistente. Hay una amplia variedad de asistentes personales. Si nos fijamos en la pantalla, los hay desde los que son monocromos o como mucho presentan una escala de colores, hasta los que poseen ms de 65.000. El tamao tambin cambia de un modelo a otro y el tipo: los basados en matrices activas, presentan una mejor calidad que los basados en pasivas, los cuales consumen menos energa. Con respecto a esto, las bateras suelen ser recargables y removibles. La memoria vara entre los 2 y los 64 Mbytes. La primera cantidad es suficiente para aplicaciones bsicas de block de notas, calendario, agenda y varias utilidades ms. Si lo que se desea es almacenar archivos grandes como fotos, bases de datos o programas de gran tamao es imprescindible una memoria de mayor capacidad. Como ejemplo, citar que los PDAs de ltima generacin son excepcionales para jugar y entretenerse, leer libros, ver fotos, escuchar msica e incluso reproducir pelculas. La memoria se puede ampliar mediante tarjetas. Inicialmente la conexin al PC se realizaba mediante un cable, pero actualmente sta se puede efectuar sin l, de manera inalmbrica. La sincronizacin se lleva a cabo mediante infrarrojos o radio (como es el caso de Bluetooth). De esta manera, a los usuarios se les permite intercambiar informacin como entradas de una agenda o correos electrnicos simplemente situndolo prximo al PC. Pero la conexin inalmbrica va ms all an, pues los PDAs pueden tener conectividad a una red "wireless" de rea local o usar un mdem CDPD (Cellular Digital Packet Data) para acceder a Internet, lo que aumenta sus posibilidades, como son las de navegacin por la World Wide Web o el envo y recepcin de correo electrnico, entre otras. Un PDA, con respecto a un mvil, presenta algunas ventajas en general: Las pantallas son ms grandes y la visualizacin se mejora.
16
Programacin Avanzada
ITSSNP
La interaccin con el usuario es ms fcil (fundamentalmente por ser la pantalla tctil). Es ms potente, desde el punto de vista computacional. Sin embargo, tambin presentan algunos contras: Necesita accesorios para comunicarse El precio es mayor que el de un telfono mvil.
1.2. Sistemas Operativos para DM.
17
Programacin Avanzada
ITSSNP
24 de junio de 2008, Nokia decidi comprar Symbian, adquiriendo el 52% restante de las acciones de la compaa, tras un acuerdo con el resto de socios. El objetivo era establecer la Fundacin Symbian y convertir este sistema operativo en una plataforma abierta. Entre 2009 y 2010 Nokia decide transferir el soporte y desarrollo del sistema operativo Symbian a la consultora Accenture, terminando la operacin a finales de septiembre de 2011 una vez terminado el desarrollo de la nueva versin Symbian Belle, convirtindose en la ltima versin de Symbian en la que Nokia particip de forma exclusiva. En octubre de 2011 se confirma de forma oficial que Symbian tendr soporte hasta el ao 2016, al no poder seguir soportndolo por no ser un competidor para la nueva versin de smartphones con sistemas operativos de ltima generacin como Android, iOS o Windows Phone. Nokia La mayora de los mviles con Symbian son de esta compaa:3 Los dispositivos tctiles N97, 5530, 5230, 5800, X6 (estos con Symbian S60 5th Edition) y los ms recientes N8, C7, C6-01, E7, E6 y X7, Oro, 500, 603, 700, 701, 808 con la versin Symbian^3 o superior, todos son actualizables a versiones como Symbian Anna y Symbian Belle y por ltimo Nokia Belle eliminando por completo el termino Symbian.
En diciembre de 2011, Nokia sustituye la denominacin Symbian por Nokia Belle hacia el pblico como parte de sus planes de unificacin de marcas. Sin embargo, el sistema operativo Symbian sigue llamndose como tal ya que internamente y de cara a los desarrolladores sigue denominandose Symbian.
18
Programacin Avanzada
ITSSNP
Android
Fue desarrollado inicialmente por Android Inc, una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. Las unidades vendidas de telfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010, con una cuota de mercado de 43,6% en el tercer trimestre. A nivel mundial alcanz una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, ms del doble que el segundo sistema operativo (iOS de Apple, Inc.) con ms cuota. Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 700.000 aplicaciones (de las cuales, dos tercios son gratuitas) disponibles para la tienda de aplicaciones oficial de Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android como la tienda de aplicaciones Samsung Apps de Samsung. Google Play es la tienda de aplicaciones en lnea administrada por Google, aunque existe la posibilidad de obtener software externamente. Los programas estn escritos en el lenguaje de programacin Java. No obstante, no es un sistema operativo libre de malware, aunque la mayora de ello es descargado de sitios de terceros. El anuncio del sistema Android se realiz el 5 de noviembre de 2007 junto con la creacin de la Open Handset Alliance, un consorcio de 78 compaas de hardware, software y telecomunicaciones dedicadas al desarrollo de estndares abiertos para dispositivos mviles. Google liber la mayora del cdigo de Android bajo la licencia Apache, una licencia libre y de cdigo abierto. La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el ncleo de las bibliotecas de Java en una mquina virtual Dalvik con compilacin en tiempo de ejecucin. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz grfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programacin de API grfica OpenGL ES 2.0 3D, un motor de renderizado WenKit, un motor grfico SGL, SSL y una biblioteca estndar de C Bionic. El sistema operativo est compuesto por 12 millones de lneas de cdigo, incluyendo 3 millones de lneas de XML, 2,8 millones de lneas de lenguaje C, 2,1 millones de lneas de Java y 1,75 millones de lneas de C++. Etimologa Tanto el nombre Android (androide en espaol) como Nexus One hacen alusin a la novela de Philip K. Dick Suean los androides con ovejas elctricas?, que posteriormente fue adaptada al cine como Blade Runner. Tanto el libro como la
M.S.C. Jos Leonel Cuevas Ruiz
19
Programacin Avanzada
ITSSNP
El logotipo es el robot "Andy". Adquisicin por parte de Google En julio de 2005, Google adquiri Android Inc., una pequea compaa de Palo Alto, California fundada en 2003. Entre los cofundadores de Android que se fueron a trabajar a Google estn Andy Rubin (co-fundador de Danger), Rich Miner (cofundador de Wildfire Communications, Inc.), Nick Sears (alguna vez VP en TMobile),y Chris White (quien encabez el diseo y el desarrollo de la interfaz en WebTV). En aquel entonces, poco se saba de las funciones de Android Inc. fuera de que desarrollaban software para telfonos mviles. Esto dio pie a rumores de que Google estaba planeando entrar en el mercado de los telfonos mviles. En Google, el equipo liderado por Rubin desarroll una plataforma para dispositivos mviles basada en el ncleo Linux que fue promocionado a fabricantes de dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable. Se inform que Google haba alineado ya una serie de fabricantes de hardware y software y seal a los operadores que estaba abierto a diversos grados de cooperacin por su parte. La especulacin sobre que el sistema Android de Google entrara en el mercado de la telefona mvil se increment en diciembre de 2006. Reportes de BBC y The Wall Street Journal sealaron que Google quera sus servicios de bsqueda y aplicaciones en telfonos mviles y estaba muy empeado en ello. Medios impresos y en lnea pronto reportaron que Google estaba desarrollando un telfono con su marca. En septiembre de 2007, InformationWeek difundi un estudio de Evalueserve que reportaba que Google haba solicitado diversas patentes en el rea de la telefona mvil. Open Handset Alliance El 5 de noviembre de 2007 la Open Handset Alliance, un consorcio de varias compaas entre las que estn Texas Instruments, Broadcom Corporation, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, Intel, LG, Marvell Technology Group, Motorola, y T-Mobile; se estren con el fin de desarrollar estndares abiertos para dispositivos mviles. Junto con la formacin de la Open Handset Alliance, la OHA estren su primer producto, Android, una plataforma para dispositivos mviles construida sobre la versin 2.6 de Linux.
20
Programacin Avanzada
ITSSNP
El 9 de diciembre de 2008, se anunci que 14 nuevos miembros se uniran al proyecto Android, incluyendo PacketVideo, ARM Holdings, Atheros Communications Asustek, Garmin, Softbank, Sony Ericsson, Toshiba, Vodafone y ZTE. Historial de actualizaciones Android ha visto numerosas actualizaciones desde su liberacin inicial. Estas actualizaciones al sistema operativo base tpicamente arreglan bugs y agregan nuevas funciones. Generalmente cada actualizacin del sistema operativo Android es desarrollada bajo un nombre en cdigo de un elemento relacionado con postres. Android ha sido criticado muchas veces por la fragmentacin que sufren sus terminales al no ser soportado con actualizaciones constantes por los distintos fabricantes. Se crey que esta situacin cambiara tras un anuncio de Google en el que comunic que los fabricantes se comprometern a aplicar actualizaciones al menos 18 meses desde su salida al mercado, pero esto al final nunca se concret y el proyecto se cancel. Los nombres en cdigo estn en orden alfabtico.
Caractersticas
Caractersticas y especificaciones actuales: Diseo de dispositivo La plataforma es adaptable a pantallas de mayor resolucin, VGA, biblioteca de grficos 2D, biblioteca de grficos 3D basada en las especificaciones de la OpenGL ES 2.0 y diseo de telfonos tradicionales SQLite, una base de datos liviana, que es usada para propsitos de almacenamiento de datos. Android soporta las siguientes tecnologas de conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, HSDPA, HSPA+ y WiMAX. SMS y MMS son formas de mensajera, incluyendo mensajera de texto y ahora la Android Cloud to Device Messaging Framework (C2DM) es parte del servicio de Push Messaging de Android. El navegador web incluido en Android est basado en el motor de renderizado de cdigo abierto WebKit, emparejado con el motor JavaScript V8 de Google Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una puntuacin de 100/100 en el test Acid3.
Almacenamiento Conectividad
Mensajera
Navegador web
21
Programacin Avanzada
ITSSNP
Soporte de Java
Aunque la mayora de las aplicaciones estn escritas en Java, no hay una mquina virtual Java en la plataforma. El bytecode Java no es ejecutado, sino que primero se compila en un ejecutable Dalvik y corre en la Mquina Virtual Dalvik. Dalvik es una mquina virtual especializada, diseada especficamente para Android y optimizada para dipositivos mviles que funcionan con batera y que tienen memoria y procesador limitados. El soporte para J2ME puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner. Soporte multimedia Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP. Soporte para Streaming RTP/RTSP (3GPP PSS, ISMA), descarga streaming progresiva de HTML (HTML5 <video> tag). Adobe Flash Streaming (RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estar disponible mediante una actualizacin de Adobe Flash Player. Soporte para Android soporta cmaras de fotos, de vdeo, pantallas hardware adicional tctiles, GPS, acelermetros, giroscopios, magnetmetros, sensores de proximidad y de presin,, sensores de luz, gamepad, termmetro, aceleracin por GPU 2D y 3D. Entorno de desarrollo Incluye un emulador de dispositivos, herramientas para depuracin de memoria y anlisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de Desarrollo de Android. Google Play Google Play es un catlogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en dispositivos Android sin la necesidad de un PC. Multi-tctil Android tiene soporte nativo para pantallas capacitivas con soporte multi-tctil que inicialmente hicieron su aparicin en dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para evitar infringir patentes de otras compaas). Ms tarde, Google public una actualizacin para el Nexus One y el Motorola Droid que activa el soporte multi-tctil de forma nativa. Bluetooth El soporte para A2DF y AVRCP fue agregado en la versin 1.5; el envo de archivos (OPP) y la exploracin del directorio telefnico fueron agregados en la versin
22
Programacin Avanzada
ITSSNP
Videollamada Multitarea
2.0; y el marcado por voz junto con el envo de contactos entre telfonos lo fueron en la versin 2.2.</ref> Los cambios incluyeron: Android soporta videollamada a travs de Google Talk desde su versin HoneyComb. Multitarea real de aplicaciones est disponible, es decir, las aplicaciones que no estn ejecutndose en primer plano reciben ciclos de reloj, a diferencia de otros sistemas de la competencia en la que la multitarea es congelada (Como por ejemplo iOS, en el que la multitarea se limita a servicios internos del sistema y no a aplicaciones externas) 5) La bsqueda en Google a travs de voz est disponible como "Entrada de Bsqueda" desde la versin inicial del sistema. Android soporta tethering, que permite al telfono ser usado como un punto de acceso almbrico o inalmbrico (todos los telfonos desde la versin 2.2, no oficial en telfonos con versin 1.6 o inferiores mediante aplicaciones disponibles en Google Play (por ejemplo PdaNet). Para permitir a un PC usar la conexin de datos del mvil android se podra requerir la instalacin de software adicional.
Arquitectura
Los componentes principales del sistema operativo de Android (cada seccin se describe en detalle):
Aplicaciones: las aplicaciones base incluyen un cliente de correo electrnico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones estn escritas en lenguaje de programacin Java. Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura est diseada para simplificar la reutilizacin de componentes; cualquier aplicacin puede publicar sus capacidades y cualquier otra aplicacin puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario. Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas caractersticas se exponen a los desarrolladores a travs del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementacin biblioteca C estndar), bibliotecas de medios, bibliotecas de grficos, 3D y SQLite, entre otras. Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje
23
Programacin Avanzada
ITSSNP
Java. Cada aplicacin Android corre su propio proceso, con su propia instancia de la mquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr mltiples mquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual est optimizado para memoria mnima. La Mquina Virtual est basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx". Ncleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestin de memoria, gestin de procesos, pila de red y modelo de controladores. El ncleo tambin acta como una capa de abstraccin entre el hardware y el resto de la pila de software.
iPhone OS
iOS es un sistema operativo mvil de la empresa Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), siendo despus usado en dispositivos como el iPod Touch, iPad y el Apple TV. Apple, Inc. no permite la instalacin de iOS en hardware de terceros. Tena el 26% de cuota de mercado de sistemas operativos mviles vendidos en el ltimo cuatrimestre de 2010, detrs de Google Android y Nokia Symbian. En mayo de 2010 en los Estados Unidos, tena el 59% de consumo de datos mviles (incluyendo el iPod Touch y el iPad). La interfaz de usuario de iOS est basada en el concepto de manipulacin directa, usando gestos multitctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las rdenes del usuario es inmediata y provee de una interfaz fluida. La interaccin con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerometros internos para hacer que algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres dimensiones (un resultado comn es cambiar de modo vertical al apaisado u horizontal). iOS se deriva de Mac OS X, que a su vez est basado en Darwin BSD, y por lo tanto es un sistema operativo Unix. iOS cuenta con cuatro capas de abstraccin: la capa del ncleo del sistema operativo, la capa de "Servicios Principales", la capa de "Medios" y la capa de "Cocoa Touch". La versin actual del sistema operativo (iOS 6.1.3) ocupa ms o menos 770 megabytes,
Apple revel la existencia de iPhone OS en la Macworld Conference & Expo del 9 de enero de 2007,7 aunque el sistema no tuvo un nombre oficial hasta que sali la primera versin beta del iPhone SDK un ao ms tarde, el 6 de marzo de 2008.
M.S.C. Jos Leonel Cuevas Ruiz
24
Programacin Avanzada
ITSSNP
Antes de esto se consideraba simplemente que el iPhone ejecutaba OS X.8 A partir de entonces se llamara iPhone OS. El lanzamiento del iPhone OS tuvo lugar el 29 de junio de 2007. El inters en el SDK aumentara en meses siguientes debido al explosivo crecimiento de la plataforma iPhone, que se vio incrementado en septiembre de 2007 del iPod Touch, un dispositivo con las capacidades multimedia del iPhone pero sin la capacidad de hacer llamadas telefnicas.9 El 27 de enero de 2010 Steve Jobs, CEO de Apple, anunci el iPad, un dispositivo muy similar al iPod Touch pero con un enfoque ms orientado hacia la industria de contenidos.10 Este dispositivo, apoyado en una pantalla tctil de mayor dimensin, compartira sistema operativo con sus dos exitosos hermanos, y vendra acompaado de una aplicacin oficial para la compra y lectura de libros electrnicos, iBooks. A fecha de abril de 2010 se estima por encima de 185.000 las aplicaciones disponibles para iPhone OS a travs de la App Store11 El 7 de junio de 2010, durante la presentacin del iPhone 4, Steve Jobs anunci que iPhone OS pasara a ser llamado oficialmente como iOS.12 El 12 de septiembre de 2012 se presenta iOS 6 durante la presentacin del iPhone 5. Tim Cook hace presentacin del iPhone 5, iTunes 11 e iOS 6 a las 19:00 (hora espaola) del 12 de septiembre en San Francisco. Caractersticas Pantalla principal La pantalla principal (llamada SpringBoard) es donde se ubican los iconos de las aplicaciones y el Dock en la parte inferior de la pantalla donde se pueden anclar aplicaciones de uso frecuente, aparece al desbloquear el dispositivo o presionar el botn de inicio. La pantalla tiene una barra de estado en la parte superior para mostrar datos, tales como la hora, el nivel de batera, y la intensidad de la seal. El resto de la pantalla est dedicado a la aplicacin actual. Desde iOS 3, se puede acceder a la bsqueda a la izquierda en la pantalla inicial, permitiendo buscar msica, videos, aplicaciones, correos electrnicos, contactos y archivos similares. Carpetas Con iOS 4 se introdujo un sistema simple de carpetas en el sistema. Se puede mover una aplicacin sobre otra y se crear una carpeta, y as se pueden agregar ms aplicaciones a esta mediante el mismo procedimiento. Pueden entrar hasta
25
Programacin Avanzada
ITSSNP
12 y 20 aplicaciones en el iPhone y iPad respectivamente. El ttulo de la carpeta es seleccionado automticamente por el tipo de aplicaciones dentro de ella, pero puede ser editado por el usuario. Centro de notificaciones Con la actualizacin iOS 5, el sistema de notificaciones se redise por completo. Las notificaciones ahora se colocan en un rea por la cual se puede acceder mediante un desliz desde la barra de estado hacia abajo. Al hacer un toque en una notificacin el sistema abre la aplicacin. La pantalla inicial de iOS contiene varias aplicaciones, algunas de las cuales estn ocultas por defecto y pueden ser activadas por el usuario mediante la aplicacin "Configuracin", por ejemplo, Nike+iPod se debe activar desde tal aplicacin. Diseo Revolucionario El nuevo diseador Sergio Saavedra y su compaero Jony Ive cambiaron el diseo de IOS revolucionariamente, al dar a conocer el IOS 7. Un diseo ms plano, simple y con menos texturas, aparte de un nuevo centro de notificaciones, cmara, pantalla de bloqueo entre otros. El IOS 7 se estren como versin beta, slo para desarrolladores, el da 10 de junio 2013. Se espera que la versin para el pblico general, est disponible para el otoo del hemisferio norte.
Blackberry OS Es una lnea de telfonos inteligentes (ms conocidos por el anglicismo smartphones) desarrollada por la compaa canadiense BlackBerry (antes Research In Motion o RIM) que integra el servicio de correo electrnico mvil; aunque incluye las aplicaciones tpicas de un smartphone: libreta de direcciones, calendario, listas de tareas, bloc de notas etc., as como capacidades de telfono en los modelos ms nuevos. Es fundamentalmente conocido por su teclado QWERTY incorporado, y por su capacidad para enviar y recibir correo electrnico de Internet accediendo a las redes de las compaas de telefona celular que brindan este servicio. El trmino "blackberry" tambin es de uso comn para hacer referencia a cualquier telfono celular que incorpore un teclado completo. Los BlackBerry usan el sistema operativo BlackBerry OS y pueden acceder a Internet llegando incluso a reemplazar a un computador personal, en Norteamrica, Iberoamrica y en la mayora de los pases europeos. En el mundo,
26
Programacin Avanzada
ITSSNP
un 11% de los telfonos inteligentes vendidos y un 2,9% de los dispositivos mviles en general son BlackBerry, lo que convierte a Blackberry en el cuarto proveedor de OS/Smartphone y en el sexto fabricante de terminales.
Origen del nombre El trmino fue acuado por la compaa de marcas Lexicon Branding, el nombre fue elegido debido a la semejanza de las teclas con las drupas de las que est compuesta la mora.
Navegacin La mayora de los modelos actuales de BlackBerry traen incorporado un teclado QWERTY optimizado para hojear en el que se utilizan los pulgares para escribir; Algunos otros incluyen un teclado SureType; pero no todos los modelos tienen teclado ya que varios modelos de Pantalla Tctil, aunque s incluyan un teclado en pantalla. El sistema de navegacin se logra principalmente por una bola de desplazamiento o Trackball en el centro del aparato; los ms antiguos utilizan una rueda de pista en el lado, y en los nuevos dispositivos, se navega mediante un botn o almohadilla sensible a la friccin, el "trackpad" en lugar de la rueda de desplazamiento. Algunos modelos tambin incorporan un Push to Talk (PTT, presiona para hablar en ingls), similar a un radio de dos vas, aunque este servicio depende del operador, el nico equipo que dispone de un Push To Talk real es el Blackberry de la Serie Curve 8350i que utiliza una red iDen,que no es compatible con redes GSM o CDMA ya que trabaja con Bandas mximo de 840 Mhz.
Blackberry Messenger BlackBerry Messenger (BBM, mensajero de BlackBerry) es una aplicacin de mensajera instantnea exclusiva para los telfonos inteligentes de la marca Blackberry. El BBM le permite al usuario chatear con sus contactos Blackberry. El BBM da la oportunidad de comunicarse al instante y se puede ver con claridad cuando el receptor de tu mensaje lo ha recibido, ledo y te est contestando. Funciona a travs de un cdigo PIN y se puede personalizar con una foto de perfil y aadirle una frase e incluso mostrar la msica que el usuario est escuchando.
27
Programacin Avanzada
ITSSNP
Blackberry Storm Procesador Como modernos PCses de mano, los telfonos BlackBerry incorporan un procesador ARM 7 o 9, mientras que los BlackBerry 950 y 957 utilizan procesadores Intel. Los modelos 8100, 8300 y 8700 "Series" tienen un procesador Intel de 312 Mhz, 64 Mb de memoria flash y 16 Mb de memoria SDRAM. Los telfonos inteligentes BlackBerry se basan en los chipsets de Qualcomm, los que tambin contiene el procesador ARM 9 de base e incluye hasta 256 MB de memoria flash, los ltimos equipos de la serie Bold y Torch traen un Procesador QC de hasta 718Mb y velocidad de 1.2Ghz
Sistema operativo RIM proporciona un OS (sistema operativo) multitarea para el BlackBerry, lo que permite un uso intensivo de los dispositivos de entrada disponibles en los telfonos, en particular la rueda de desplazamiento (1999-2010) y el trackpad (septiembre 2009-presente). El sistema operativo proporciona soporte para Java MIDP 1.0 y WAP 2.0. Las versiones anteriores permitan la sincronizacin inalmbrica con Microsoft Exchange Server para el correo electrnico y calendario, al igual como con Lotus Domino e-mail. El actual OS (Se usan de el OS 5.0, 6.0, 7.0) proporciona un subconjunto de MIDP 2.0 y permite activacin inalmbrica completa y sincronizacin con Exchange de correo electrnico, calendario, tareas, notas y contactos, y aade un soporte para Novell GroupWise y Lotus Notes. La radio ( o Telephonic Support System ) es el sistema mediante el cul, en conexin con el IMEI del dispositivo, nos permite disfrutar de la total conexin al telfono. Sin sta,y por tanto si el IMEI, nuestro dispositivo sera incapaz de funcionar correctamente, debido a cambios en el sistema. En 2013, una de las primeras decisiones que han adoptado ha sido despedirse de su marca RIM para sustituirla por la cara pblica de la compaa. 'BlackBerry' pasar a ser el nuevo nombre de la empresa. Ms concretamente se llamar BB10. Y una de las nuevas aplicaciones ser BlackBerry Hub, es el ncleo de comunicaciones del BB10. Incluye soporte nativo para las redes sociales: Facebook, Twitter, LinkedIn, mensajes o email, adems de que el usuario podr entrar y publicar actualizaciones desde cualquier sitio, incluyendo su calendario..
28
Programacin Avanzada
ITSSNP
El gran salto y el futuro RIM anunci, en febrero de 2009, que estaba expandiendo sus operaciones globales mediante la apertura de una oficina y centro de entrenamiento en el norte de Sidney, Nueva Gales del Sur, Australia. La nueva oficina cuenta con los servicios de formacin, un centro de investigacin y desarrollo, un centro de comercializacin para socios estratgicos, y servicios de apoyo tcnico. Proporciona una fuerza de trabajo total de 12 000 empleos en todo el mundo. Esto permiti que la popularidad de BlackBerry regresara, pero a nivel mundial (sobre todo en Latinoamrica y Europa), y aumentara con los aos hasta igualar las ventas, las ganancias millonarias y la fama en el rubro telefnico de marcas como Nokia, Sony Ericsson (que al contrario de este baj su popularidad) y Samsung. Esto se debi principalmente a la innovacin por parte de la gente de nuevas marcas y los lanzamientos al mercado de nuevos e innovadores modelos.
El 12 de abril de 2010, RIM lleg a un acuerdo con Harman Internacional para adquirir QNX Software Systems. RIM est muy entusiasmado con el proyecto de adquisicin de QNX Software Systems y esperamos con inters la colaboracin permanente entre Harman, QNX y RIM para integrar y mejorar an ms la experiencia del usuario entre los telfonos inteligentes y en los vehculos de audio y sistemas de informacin y entretenimiento dijo Mike Lazaridis, presidente y co-CEO de RIM. Adems de nuestros intereses en la expansin de las oportunidades de QNX en el sector de la automocin y otros mercados, creemos que el proyecto de adquisicin de QNX tambin traer otro valor a RIM en trminos de apoyo a determinados planes de producto sin previo aviso para los perifricos inteligentes, aadiendo valiosa propiedad intelectual. Esta comprobado cientficamente que el dispositivo funciona tambin como anticonceptivo, siempre y cuando posean el dispositivo ambas personas.
29
Programacin Avanzada
ITSSNP
Windows Phone
Es un sistema operativo mvil desarrollado por Microsoft, como sucesor de la plataforma Windows Mobile.2 A diferencia de su predecesor, est enfocado en el mercado de consumo generalista en lugar del mercado empresarial.3 Con Windows Phone, Microsoft ofrece una nueva interfaz de usuario que integra varios servicios propios como SkyDrive, Skype y Xbox Live en el sistema operativo. El 29 de octubre de 2012 se lanz al mercado la ltima versin del sistema operativo, Windows Phone 8. Esta versin incluye nuevas funciones que de acuerdo a Microsoft lo harn competitivo con sistemas operativos como iOS de Apple o Android de Google. Windows Phone,5 cuyo nombre clave durante su desarrollo era "Photon",6 es el sucesor de la versin del sistema operativo mvil Windows Mobile, desarrollado por Microsoft y basado en el ncleo Windows Embedded CE 6.0. Microsoft mostr Windows Phone el 15 de febrero, en el Mobile World Congress 2010 en Barcelona7 y revel ms detalles del sistema en el MIX 2010 el 15 de Marzo. La versin final de Windows Phone 7, se lanz el 1 de septiembre de 2010,8 y la versin final del SDK estuvo disponible el 16 de septiembre de 2010.9 WP se lanz en Europa y Asia el 21 de octubre de 2010 y en EEUU el 8 de noviembre de 2010. Inicialmente, Windows Phone estaba destinado para lanzarse durante el 2009, pero varios retrasos provocaron que Microsoft desarrollara Windows Mobile 6.5 como una versin de transicin.10
Durante el Mobile World Congress 2010 en Barcelona, Microsoft revel detalles de Windows Phone, mostrndolo como un nuevo sistema operativo que incluye funciones de integracin con los servicios Xbox Live y Zune. La interfaz, conocida como "Metro", ha sido revisada en su totalidad y comparte caractersticas visuales similares a la interfaz del dispositivo Zune HD. Microsoft declar que pedir a los fabricantes que los requerimientos de hardware sean "altos, pero justos", con la obligatoriedad de que todos los dispositivos con Windows Phone dispongan de al menos tres botones (Atrs, Inicio y Buscar) y un receptor de radio FM.11 Windows Phone 7.5 ('Mango') es una actualizacin de software para Windows Phone. Este cambio se anunci el 25 de mayo de 2011, y lanzado el 27 de septiembre de 2011.12 Steve Ballmer mencion que tendra ms de 500 nuevas caractersticas.13 Luego Andy Lees anunci que Windows Phone Mango incluir IE9 Mobile y Joe Belfiore dio a conocer el progreso ms reciente en la
M.S.C. Jos Leonel Cuevas Ruiz
30
Programacin Avanzada
ITSSNP
incorporacin de Internet Explorer 9 en Windows Phone, incluyendo soporte para CSS3 Media Queries, y soporte para usar GPS cuando se trabaje con las aplicaciones de ubicacin geogrfica, entre otros.14 Windows Phone 7.5 ('Refresh') es una actualizacin de software para Windows Phone tambin conocida como Tango, fue uno de los requisitos de Nokia en su acuerdo con Microsoft, esta enfocada a una minimizacin de los requisitos del sistema operativo para adaptarlo a terminales de menor coste. Anunciada en el MWC 2012 de Barcelona, trae nuevas funciones pero tambin limitaciones para los terminales de gama baja.15 Windows Phone 7.8 es una actualizacin que se ha anunciado para enero del 201316 , se ofrece a los terminales Windows Phone 7 que no sern capaces de actualizarse a Windows Phone 8, traer algunas mejoras como la nueva interfaz de usuario de WP8 y fondos personalizados para la pantalla de bloqueo, aunque algunos fabricantes como Nokia tambin incorporan aplicaciones que permiten la transferencia de archivos por Bluetooth y la edicin de tonos de llamada personalizados. Aunque desde el lanzamiento el soporte por parte de Microsoft es de 18 meses, tanto Microsoft como Nokia dejaron de lado Windows Phone 7 para centrarse en sus nuevos dispositivos Windows Phone 8. Windows Phone 8 es una nueva versin del sistema operativo solo para nuevos dispositivos. Entre las nuevas caractersticas se incluyen: Multitarea para aplicaciones de terceros17 Ncleo Windows NT para soporte de procesadores de varios ncleos18 Tarjeta de memoria externa intercambiable19 Uso como unidad de almacenamiento MTP20 Transferencias de ficheros por Bluetooth21 Cifrado de datos almacenados22 Aplicaciones en cdigo nativo23 Actualizaciones directamente en el telfono (sin usar el PC)24 Captura de pantalla25 Bsqueda dentro de una pgina web26 (funcionalidad que fue eliminada en la
actualizacin Mango)
31
ITSSNP
La primera versin fue desarrollada por el fabricante de los DCM Palm para el modelo Pilot en 1996. Actualmente son muchos los fabricantes como Oracle, Nokia, Handspring, Symbol y Sony que utilizan diversas variantes y versiones de este Sistema Operativo que en conjunto representan el 66 % de todos los sistemas instalados en computadores de mano. Segn la filosofa de Palm, se intenta tratar a la computacin mvil no como versiones en miniatura de los sistemas de sobremesa, sino como dispositivos y aplicaciones dedicados a tareas y usos que tienen su propia identidad y reclaman sus propios recursos y soluciones. En los ltimos aos, la versin ms extendida ha sido la 4.1 que entre sus principales caractersticas, presenta el soporte "terico" de 65.000 de colores as como la gestin de tarjetas de memoria externa. Recientemente Palm Computing se dividi en dos empresas distintas, una de hardware y otra de software, Palm Source la cual ha presentado Palm OS 5 que es realmente un sistema diferente a los anteriores aunque esto se refiera ms al funcionamiento interno que a lo relativo a su utilizacin externa. Para mantener la compatibilidad con la generacin anterior del sistema operativo, la nueva versin incluye un emulador llamado PACE que permite ejecutar las ms de 50.000 aplicaciones existentes. Adems, cualquiera que sea la norma considerada, WiFi Lan, Bluetooth, GSM/GPRS, o CDMA, el sistema Palm OS 5 integra las APIs necesarias. O sea, que los dispositivos equipados con Palm OS 5 pueden comunicarse fcilmente con todos los dispositivos existentes que estn basados en esas normas tales como telfonos mviles, impresoras, mdems, etc. Las normas de seguridad incorporadas en el sistema, permiten que las transacciones sean hechas de forma segura, considerando tambin, el uso de firmas digitales homologadas. Tambin ofrece servicios de encriptacin para las conexiones. El sistema incluye asimismo un navegador para Internet, el NetFont que suporta entre otras normas, HTML 4.01, XHTML, los GIFs animados, el modo seguro de acceso a la red VPN (Virtual Private Network) y la interpretacin de cdigo JavaScript. Estas normas ya utilizadas en los sistemas de los computadores de sobremesa se introducen por vez primera en los equipos de mano. En cuanto a los dispositivos que contiene Palm OS, la caracterstica ms llamativa es su reducido tamao y ligereza: pesan entre 120 y 170 gr, y son en general ms pequeos que los Pocket PC. Todos tienen una pantalla de 160x160 pxeles, normalmente monocroma. Usan procesadores de 16-33 Mhz que son suficientes para que el dispositivo funcione con rapidez, y disponen de 2 u 8 Megabytes de memoria RAM.
Linux
32
Programacin Avanzada
ITSSNP
LINUX es un sistema operativo compatible UNIX. Dos caractersticas muy peculiares lo diferencian del resto de los sistemas ms extendidos en el mercado, la primera, es que es libre, esto significa que no hay costos por sus licencias, la segunda, es que el sistema viene acompaado del cdigo fuente. LINUX se distribuye bajo la licencia pblica del proyecto GNU que fue lanzado en 1984 para desarrollar el Linux de libre distribucin. El sistema ha sido diseado y programado por multitud de programadores alrededor del mundo. El ncleo del sistema sigue en continuo desarrollo. En los ltimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rpidamente por la excelente relacin calidad-precio que se consigue. En los ltimos aos, algunos fabricantes de dispositivos mviles han incorporado Linux a sus productos. Se estn desarrollando versiones de Embedded Linux que constituyen la tercera alternativa a Palm OS y Windows CE para los computadores de mano. As, LinuxDevices.com, ha creado ha creado una gua de referencia para computadores de mano basados en Linux, con la que pretende mantener actualizados de manera permanente los productos Linux para pequeos dispositivos. Si bien el modelo Sharp Zaurus SL-5x00 fue el primer computador de mano con Linux pre-instalado, hay actualmente versiones de Embbeded Linux para casi todas las marcas.
Epoc
El sistema operativo de Psion se llama EPOC, nombre del ncleo del antiguo sistema operativo de la Psion serie 3. Hasta 1997 Psion no comenz a licenciar el EPOC32, la versin de 32 bytes para la serie 5. Permite realizar multitarea y pretende competir con Windows CE. El recibimiento fue fro y slo Philips mostr algo de inters. Pero Psion reaccion y a mediados de 1998 cre la alianza Symbian -junto con Ericsson, Nokia, Motorola y Matsushita- con el propsito de hacer de EPOC un sistema operativo nico. El premio de esta apuesta es elevado: los 600 millones de usuarios de dispositivos mviles en ao 2002.
33
Programacin Avanzada
ITSSNP
1.3.
A nivel general, su funcionamiento es bastante sencillo. Las estaciones base se disponen creando una gran malla con forma de clula o celda (cell; de ah que se denomine a este tipo de telfonos, telfonos celulares), conectando mediante ondas de radio dos terminales con los controladores de dichas estaciones base. Esta disposicin en forma de panal no es meramente casual, sino que responde a un esquema que permite la reutilizacin de un determinado conjunto de frecuencias asignadas en distintas celdas, siempre que estas no sean adyacentes, aumentando el rendimiento de la red por un lado (el nmero de frecuencias de que se dispone es limitado), y economizando por otro. SMC: Sistema Mvil Celular El SMC Tambin se le conoce como: Sistema Mvil Celular; este sistema surgi para La solucin a todos los problemas que se presentaron en el sistema mvil convencional y consiste en la creacin estructural de las celdas que contienen transceptores y operan en potencia baja que tambin poseen frecuencias distintas que consiguen capturar la seal de un abonado que est dentro de su radio o alcance de accin.
34
Programacin Avanzada
ITSSNP
1) Estacin Base de Radiofrecuencia (EBRF), 2) Central de Conmutacin y Control (CCC) y 3) Estacin Mvil (EM) Las celdas son tambin conocidas como el rea determinada que recibe la cobertura de una EBRF y que mantiene la calidad de transmisin y recepcin dentro de los estndares establecidos por el sistema.
9 Sistema Mvil Celular Para entender mejor lo antes mencionado, imaginemos que el terreno que rodea la antena de la EBRF es de superficie plana y que no hay obstculo alguno, el rea abarcada por el transmisor ser circular; como en el caso de la cobertura de una antena omnidireccional. Sin embargo hay que tener en cuenta que en nuestro entorno o mejor dicho en la prctica, esto no es as, porque tenemos edificios, desniveles, rboles, entre otros.
35
Programacin Avanzada
ITSSNP
10 Distribucin de estaciones BTS Y nuestra ubicacin o la situacin en que nos encontramos se nos presentarn de forma diferente; tendremos regiones donde la EM (Estacin Mvil) no conseguir captar la seal. A dems dichas celdas contienen un equipo de radio transmisor/receptor denominado EBRF (Estacin Base de Radiofrecuencia) por cada una de las ellas (celdas).
36
Programacin Avanzada
ITSSNP
Redes PAN (Personal rea Network) Red de rea personal (PAN): Wireless Personal rea Networks, Red Inalmbrica de rea Personal o Red de rea personal o Personal rea Network es una red de computadoras para la comunicacin entre distintos dispositivos (tanto computadoras, puntos de acceso a Internet, telfonos celulares, PDA, dispositivos de audio, impresoras) cercanos al punto de acceso. Estas redes normalmente son de unos pocos metros y para uso personal, as como fuera de ella.
11 Evolucin Las comunicaciones inalmbricas experimentaron un crecimiento muy importante dentro de la ltima dcada (GSM, IS-95, GPRS y EDGE, UMTS, y IMT-2000). Estas tecnologas permitieron una altsima transferencia de datos dentro de las soluciones de sistemas o redes inalmbricas. La ventaja de las comunicaciones inalmbricas es que con la Terminal la persona se puede mover por toda el rea de cobertura, lo que no ocurre con las redes de comunicaciones fijas; esto permitir el desarrollo de diferentes soluciones PAN y cambiar el concepto de los espacios personales. Las bases del concepto de red para espacio personal provinieron de ideas que surgieron en el ao 1995 en el Massachusetts Institute of Technology (MIT) provienen para usar en seales elctricas o impulsos elctricos provenientes del cuerpo humano, y as poder comunicar el mismo con dispositivos adjuntos. Esto fue aceptado en primera instancia por los laboratorios de IBM Research y luego tuvo muchas variaciones desarrolladas por las diferentes instituciones y compaas de investigacin. Las diferentes soluciones de PAN incluyen lo siguiente: Proyecto Oxygen (MIT) Pico-radio
37
Programacin Avanzada
ITSSNP
Infared Data Association (IrDA) Bluetooth IEEE 802.15 El concepto de Bluetooth, originalmente desarrollado para reemplazar a los cables, est siendo aceptado mundialmente, y algunas de estas ideas son incorporadas en el estndar IEEE 802.15 relacionado a las PANs. Conceptos actuales PAN es un Nuevo miembro de la familia GIMCV. El espacio personal abarca toda el rea que puede cubrir la voz. Puede tener una capacidad en el rango de los 10 bps hasta los 10 Mbps. Existen soluciones (ejemplo, Bluetooth) que operan en la frecuencia libre para instrumentacin, ciencia y medicina de sus siglas en ingles en su respectiva banda de frecuencia de 2.4 GHz Los sistemas PAN podrn operar en las bandas libres de 5 GHz o quizs mayores a stas. PAN es un concepto de red dinmico que exigir las soluciones tcnicas apropiadas para esta arquitectura, protocolos, administracin, y seguridad. PAN representa el concepto de redes centradas a las personas, las cuales permite a las personas comunicarse con sus dispositivos personales (ejemplo, PDAs, tableros electrnicos de navegacin, agendas electrnicas, computadoras porttiles) y as poder establecer una conexin inalmbrica con el mundo externo. El paradigma PAN Las redes para espacios personales continan desarrollndose hacia la tecnologa del Bluetooth hacia el concepto de redes dinmicas, el cual nos permite una fcil comunicacin con los dispositivos que van adheridos a nuestro cuerpo o a nuestra indumentaria, ya sea que estemos en movimiento o no, dentro del rea de cobertura de nuestra red. PAN prev el acercamiento de un paradigma de redes, la cual atrae el inters a los investigadores, y las industrias que quieren aprender ms acerca de las soluciones avanzadas para redes, tecnologas de radio, altas transferencias de bits, nuevos patrones para celulares, y un soporte de software ms sofisticado. El PAN debe proporcionar una conectividad usuario a usuario, comunicaciones seguras, y que garanticen a los usuarios. El sistema tendr que soportar diferentes aplicaciones y distintos escenarios de operacin, y as poder abarcar una gran variedad de dispositivos. Posibles equipos o dispositivos Las diferentes demandas del servicio y los panoramas de uso hacen que PAN acumule distintos acercamientos hacia las funciones y capacidades que pueda tener. Algunos dispositivos, como un simple sensor pito, pueden ser muy baratos, y tener a su vez funciones limitadas. Otros pueden incorporar funciones avanzadas, tanto computacionales como de red, lo cual los harn ms costosos.
M.S.C. Jos Leonel Cuevas Ruiz
38
Programacin Avanzada
ITSSNP
Deben preverse los siguientes puntos como importantes para su fcil escalabilidad: Funcionalidad y Complejidad Precio Consumo de energa Tarifas para los datos Garanta Soporte para las interfaces Los dispositivos ms capaces pueden incorporar funciones multimodo que permiten el acceso a mltiples redes. Algunos de estos dispositivos pueden estar adheridos o usados como vestimenta para la persona (ejemplo, sensores); otros podran ser fijos o establecidos temporalmente con el espacio personal (ejemplo, sensores, impresoras, y PDAs).
Tienen una cobertura limitada, alrededor de unos pocos metros. Este tipo de redes se implementan para interconectar dispositivos como PDAs, celulares, computadores porttiles, etc. Sus tasas de transmisin se encuentran entre los 10 bps hasta los 10Mbps. El grupo de trabajo IEEE 802.15 es el encargado del
39
Programacin Avanzada
ITSSNP
estudio de las redes WPAN o Wireless-PAN. Las implementaciones ms importantes de redes PAN se basan en enlaces infrarrojos (IrDA-Infrared Data Association), Bluetooth y ZigBee. Este tipo de redes se caracterizan por su baja complejidad en su diseo, bajos costos y reducido consumo de potencia.
40
Programacin Avanzada
ITSSNP
1.4.
14 Acceso a Internet.
15 Acceso a Telefona.
41
Programacin Avanzada
ITSSNP
16 Acceso a Radio.
42
Programacin Avanzada
ITSSNP
1.5.
La generalizacin en los ltimos aos de telfonos mviles, Smartphone, PDAs, etc. ha generado una importante necesidad de aplicaciones para este tipo de dispositivos Las prestaciones de los dispositivos mviles se incrementan da a da, posibilitando la implementacin de aplicaciones muy interesantes Acceso a Internet y conectividad mediante Bluetooth Envo de mensajes cortos Aceleracin 2D y 3D Reproduccin de video y sonido Cmara integrada Informacin de localizacin GPS Sensores de orientacin La expansin de PCs en nuestro entorno hace que stos sean ya una herramienta de trabajo muy necesaria y, por supuesto, de diversin. Hoy en da hay PCs en casi todas las casas, hecho originado fundamentalmente por la baja de los precios de unos aos a nuestros das. Pero cada vez, los PCs son ms potentes y nos dan muchas ms posibilidades, lo que hace que no slo estn en el lugar de trabajo y en nuestro hogar, sino que nos los podamos encontrar en cualquier mbito de nuestra vida: en el coche, en la lavadora, en la televisin,... La tecnologa est haciendo posible que se reduzcan tambin los tamaos de las PCs y que nos los podamos meter en el bolsillo y transportarlos sin dificultad alguna, como es el caso de los asistentes personales digitales (Personal Digital Assistant -PDA). Estos dispositivos son PCs con todo el significado de la palabra, pues disponen de capacidad de procesamiento y almacenaje de datos. Las comunicaciones tambin han evolucionado velozmente. Ahora podemos bajarnos msica de PCs situados en Nueva Zelanda en pocos segundos, o escribirnos en tiempo real con nuestro amigo de vacaciones en China desde nuestra PC. Pero ya no nos hace falta un cable para comunicarnos, ahora podemos hacerlo fcilmente mediante el aire, por radio, por ejemplo. Y esta tecnologa est al alcance de todos: el telfono mvil, que ya tiene prestaciones de una PC. Por tanto, vemos que la evolucin se centra en fabricar aparatos ms pequeos, dotndoles de habilidad de comunicacin y potencia de clculo. Independientemente del tipo de aparato, les requerimos que ms o menos nos den las mismas prestaciones en cualquier momento. Pero eso es un problema para los desarrolladores, porque se les pide lo mismo, pero en sitios ms pequeos cada vez.
43
Programacin Avanzada
ITSSNP
Hasta hace poco, la programacin de estos dispositivos se haca en cdigo mquina o en ensamblador. La razn bsica era que se dispona de entornos de ejecucin muy restringidos, por lo que el uso de lenguajes de programacin de alto nivel era impracticable. Esto implicaba el hecho de tener que desarrollar completamente a medida, es decir, especficamente para el dispositivo, con el consiguiente esfuerzo y lentitud en los desarrollos. El lenguaje de programacin Java permita escribir un programa una vez y poder ejecutarlo en multitud de PCs, con diferentes plataformas sin tener que compilarlo de nuevo. Esa es una gran ventaja y una caracterstica muy deseable en el entorno de los pequeos dispositivos, por lo que se ha exportado esa filosofa a estos aparatos. As, mediante J2ME se podrn escribir aplicaciones para una gran variedad de dispositivos diferentes. Por supuesto, esta nueva edicin de Java no es la misma que se utiliza para desarrollar aplicaciones distribuidas en Internet, por ejemplo, sino que es una versin reducida que se adapta claramente a las caractersticas fsicas de los pequeos dispositivos.
44
ITSSNP
Pero... por qu Java para programar dispositivos mviles? Existe una razn fundamental para elegir este lenguaje para desarrollar nuestras aplicaciones en estos dispositivos especiales: Java nos da la posibilidad de escribir una vez el programa y poder ejecutarlo en cualquier tipo de plataforma sin tener que recompilarlo de nuevo (Write Once, Run Anywhere (WORA) - Escrbelo una vez y ejectalo en cualquier lugar). Esta independencia lo convierte en un firme candidato. Otra razn es que en muchos casos es la nica alternativa que dispone el programador, pues varios fabricantes han optado nicamente por l para desarrollar aplicaciones. Pero tambin hay otras razones que aporta Java: Extensin dinmica: la habilidad de un programa Java para descargar cdigo en tiempo de ejecucin, yendo a buscar nuevos archivos de clases sustituyendo las ya existentes o simplemente aadindolos a las aplicaciones. Seguridad: Java ofrece un entorno de ejecucin seguro para programas con acceso a red. La mquina virtual de Java lleva a cabo una verificacin estricta del cdigo antes de la ejecucin, asegurando que ste no trata de saltarse las protecciones impuesta por el lenguaje, utilizar punteros que accedan directamente a memoria o usar el objeto equivocado. Portabilidad: cada dispositivo dispone de un hardware con caractersticas peculiares que hace difcil encontrar un conjunto de bibliotecas que permitan desarrollar programas ms o menos independientes del soporte fsico. La mquina virtual de Java asegura esta portabilidad. Fiabilidad: teniendo en cuenta que algunos de los tipos de dispositivos que tratamos en este curso deben realizar tareas crticas, las aplicaciones que las implementan no deben fallar, ni tampoco ponerse fcilmente en manos de hackers. En ese sentido, Java es un lenguaje seguro, suministrando esa fiabilidad buscada. Para tal fin, requiere la obligacin de la estructuracin del cdigo en paquetes, fuertes verificaciones de compilacin y ejecucin (fuerte tipado, comprobacin de lmites en vectores, pruebas de desbordamiento de pila,...), dispone un mecanismo eficiente para la gestin de excepciones y de memoria (elimina los punteros, asignacin dinmica de memoria transparente al usuario y su posterior liberacin -de esta manera se evitan errores). Cdigo reutilizable: debido a la orientacin a objetos de Java, se consiguen caractersticas como la facilidad en el desarrollo, la reutilizacin del cdigo y la mayor calidad del cdigo. As, Sun Microsystems volvi a los orgenes de Java y desarroll una nueva edicin de la versin de Java 2: J2ME (Java 2 Micro Edition). Y una razn
45
Programacin Avanzada
ITSSNP
fundamental puede ser las caractersticas especiales que tiene estos dispositivos: un ejemplo es la cantidad de memoria que reservar un dispositivo de este tipo para una aplicacin Java, las clases y la mquina virtual, ya que suele ser apenas pocos cientos de kilobytes. Con este espacio, las dos ediciones anteriores no son apropiadas, por lo que esta empresa pens en la posibilidad de desarrollar una nueva totalmente adaptada a las caractersticas especficas de los dispositivos pequeos.
46
ITSSNP
Java comenz su andadura como lenguaje de programacin a mediados de la dcada de los noventa del siglo pasado. Originalmente fue concebido como un lenguaje para poder programar un amplio rango de aparatos electrnicos con capacidades de conectividad a partir de otro dispositivo del tipo de un asistente personal digital. El espritu inicial era realizar una adaptacin de C++, tomando lo mejor de l y a la vez mejorndolo y que se adecuara a las restrictivas condiciones ofrecidas por los chips de los aparatos a programar, teniendo como principales objetivos la fiabilidad y la seguridad. Adems, se intentaba que una vez que fuera desarrollado el programa, ste se pudiera ejecutar en varios tipos diferentes de aparatos sin necesidad de volver a compilarlo. Con la llegada de Internet y los primeros navegadores para la World Wide Web, los desarrolladores de Java se dieron cuenta de su aplicabilidad a este nuevo medio, naciendo as la tecnologa de los applets de Java, que permite, de nuevo, poder desarrollar una aplicacin una nica vez y ejecutarla tantas veces cmo se desee en un conjunto heterogneo de PCs conectados a la Red. As, en Mayo de 1995 Sun lanz oficialmente Java al mercado con el Java Development Kit (JDK) en su versin 1.02., es decir, un entorno de desarrollo y una implementacin del lenguaje Java. Este JDK fue ampliado y mejorado (se subsanaron algunos problemas), dando lugar a la versin 1.1. De ah se pas a la siguiente, el SDK 1.2 (Software Development Kit), la cual, entre otras muchas caractersticas, inclua una coleccin nueva de clases y elementos para el diseo de interfaces grficos. Surgieron seguidamente la versin, SDK 1.3 y, finalmente y actual, el SDK 1.4. Cabe destacar en este punto la distincin entre la plataforma Java y las diferentes versiones JDK y SDK. El primero se refiere al lenguaje abstracto y a la especificacin del mismo. Los segundos son, como ya hemos dicho, implementaciones que ha realizado Sun, as como un conjunto de herramientas que ofrece esta empresa para facilitar el desarrollo de aplicaciones. Si nos fijamos en la plataforma, slo ha habido dos versiones principales Java 1 y Java 2. La segunda se introdujo coincidiendo con la llegada del SDK 1.2. Y finalmente, ya en 1999, se vuelve a cerrar el ciclo que lleva a Sun a desarrollar una versin de Java especialmente diseada para dispositivos mviles: J ava 2 Micro Edition, basada en una mquina virtual llamada KVM. Este primera versin slo contena una nica mquina virtual y un nico API (inicialmente diseados para Palm OS), hecho que puso de manifiesto la insuficiencia de esta solucin para la gran variedad de dispositivos diferentes. De esta forma, en el ao 2000, naci la primera versin de una configuracin, es decir, el Connected Limited Device Configuration (J2ME CLDC 1.0). Una configuracin ofrece el API bsico para programar dispositivos, aunque no aporta todas las clases necesarias para desarrollar una aplicacin completa. Por tanto, la primera configuracin no tena las herramientas necesarias para permitir a los desarrolladores escribir programas
M.S.C. Jos Leonel Cuevas Ruiz
47
Programacin Avanzada
ITSSNP
para el dispositivo Palm. En julio de 2000 naci la primera implementacin de un perfil, concretamente el llamado Mobile Information Device Profile (MIDP), aunque no estaba destinado a PDAs sino a telfonos mviles y a paginadores. A partir de este primer perfil, J2ME fue considerablemente aceptado por la comunidad de desarrolladores de dispositivos mviles, expandindose a una gran velocidad hasta nuestros das. Por tanto, actualmente, la versin 2 de Java de Sun Microsystem contiene tres ediciones distintas: Standard Edition (J2SE): entorno bsico de Java. Ofrece un conjunto de clases y APIs (Application Program Interface - Interfaz para Programas de Aplicacin) que permiten desarrollar y ejecutar aplicaciones clientes y servidores, as como programas que se ejecuten en navegadores (applets). . Enterprise Edition (J2EE): agrupa APIs Java y tecnologas que no estn basadas en este lenguaje. Se aconseja para el desarrollo de aplicaciones distribuidas. Micro Edition (J2ME): especficamente diseado para desarrollar aplicaciones para dispositivos embebidos y electrnicos, que tienen caractersticas peculiares ya que dos ediciones anteriores no son adecuadas para su utilizacin con ellos. Estos dispositivos normalmente tienen una potencia limitada, posibilidad de conectividad a una red (normalmente sin cables) y poseen interfaces grficos. En la siguiente figura podemos ver grficamente la relacin entre cada una de las ediciones de Java y los tipos de dispositivos con que se podran programar:
48
Programacin Avanzada
ITSSNP
18 Relacin de ediciones de Java. Algunas diferencias que ofrece J2ME con respecto a J2EE, directamente derivadas de las condiciones en las que se va a hacer uso de esta edicin, son las siguientes Tipos de datos: J2ME no incluye los tipos float y double, ya que la mayora de los dispositivos CLDC no tienen unidad de coma flotante debido fundamentalmente a que es una operacin muy costosa. Preverificacin: La verificacin del cdigo en J2ME se hace fuera del dispositivo, con objeto de reducir la carga de la mquina. Inclusin: de los archivos "descriptor" y "manifiesto" al empaquetar archivos J2ME, conteniendo informacin sobre las aplicaciones que incluyen. Nueva biblioteca grfica: adaptada a los dispositivos con memorias de poco tamao y pantallas tambin pequeas. No existe un mtodo main: como entrada para la ejecucin de la funcin. ste se sustituye por el mtodo "start app".
49
Programacin Avanzada
ITSSNP
La recoleccin de basura: se hace de manera manual y no automtica como en el J2EE. Esta decisin se toma as para reducir la utilizacin de la memoria.
Las configuraciones estn compuestas por una mquina virtual y un conjunto mnimo de bibliotecas de clases, las cuales seran un mnimo denominador comn con que contarn todos los dispositivos de una configuracin dada; o lo que es lo mismo ofrecen la funcionalidad para un rango particular de dispositivos con caractersticas comunes. Existen dos configuraciones actualmente: Connected Limited Configuration (CLDC) y Connected Device Configuration (CDC): Device
CLDC es la ms pequea de las dos, diseada para dispositivos con conexiones de red intermitentes, un procesador lento y memoria limitada (telfonos mviles y PDAs, por ejemplo), es decir, CPUs de 16 o 32 bits y una memoria mnima de 128 a 256 Kbytes de memoria disponible para la implementacin de Java y las aplicaciones. CLDC est estrechamente asociado a lo que se conoce como "Java inalmbrico" (Wireless Java), es decir la posibilidad de que telfonos mviles puedan descargarse aplicaciones Java, conocidas como MIDlets.
CDC est orientado a dispositivos con ms memoria, procesadores ms rpidos y un ancho de banda mayor (por ejemplo, TV set-top boxes), es decir, los aparatos que estn entre los que trata CLDC y los PCs de sobremesa. Esta configuracin incluye una mquina virtual completa y un subconjunto de J2SE mayor. Los dispositivos a los cuales se dirige esta configuracin tienen CPUs de 32 bits y como mnimo 32 Mbytes de memoria para la plataforma y las aplicaciones.
En la siguiente figura podemos ver cmo se relacionan las dos configurauraciones existentes y tambin con respecto a J2SE.
50
Programacin Avanzada
ITSSNP
19 Relacin de CLDC, CDC con J2SE. Las especificaciones de las configuraciones no indican ningn tipo de implementacin de la mquina virtual, por lo que cada cual puede crear sus propios entornos de ejecucin. Los que ha desarrollado Sun son Kilobyte Virtual Machine (KVM) para CLDC y C Virtual Machine (CVM).
Perfiles
Con objeto de ofrecer un completo entorno de ejecucin especfico para cada categora de dispositivo, las configuraciones se deben combinar con un conjunto de APIs de alto nivel, conocidas como perfiles, que definen el modelo de ciclo de vida de la aplicacin, el interfaz de usuario y el acceso a las propiedades especficas del dispositivo. Algunos de los perfiles existentes son (varios todava en la etapa de definicin):
Mobile Information Device Profile (MIDP). Diseado para telfonos mviles y PDAs, incluye la interfaz de usuario, conectividad de red, almacenamiento local de datos y gestin de aplicaciones. Combinado con CLDC, MIDP aporta un entorno de ejecucin para Java que minimiza los consumos de memoria y de procesador. Foundation Profile (FP). Este perfil es el de nivel ms bajo asociado a CDC, ya que los perfiles CDC pueden ser vistos como capas que se aaden para proveer funcionalidades a los diferentes dispositivos. FP suministra una implementacin de CDC con capacidades de acceso a red que se utiliza para aplicaciones embebidas en alto grado y sin interfaz de usuario. Personal Profile (PP) es un perfil diseado expresamente para dispositivos con un interfaz grfico completo y con posibilidad de ejecucin de applets. Incluye
51
Programacin Avanzada
ITSSNP
adems las bibliotecas del Abstract Windows Toolkit (AWT). Aade, por tanto, un interfaz de usuario bsico a FP. Personal Basis Profile (PBP) es un subconjunto de PP que suministra un entorno para dispositivos que se puedan conectar a una red y que dispongan de un interfaz un poco ms desarrollado que aquellos que posean los dispositivos donde PP va dirigido. PDA Profile (PDAP) es similar al MIDP pero diseado para PDAs que tengan mejores pantallas y ms memoria de los telfonos mviles. Game Profile (GP) ofrece la plataforma para escribir juegos en dispositivos CDC.
Actualmente el perfil ms utilizado es MIDP. En la siguiente figura podemos ver un esquema modular con las diferentes configuraciones, perfiles y mquinas virtuales:
20 Mquinas virtuales. Las aplicaciones desarrolladas para un determinado perfil sern portables a cualquier dispositivo que soporte ese perfil. Cabe destacar tambin que un mismo dispositivo puede soportar varios perfiles y que sobre una configuracin tambin pueden residir diversos perfiles.
52
Programacin Avanzada
ITSSNP
Son J2ME y WAP competidores? Una idea muy comn y errnea es que J2ME y WAP son competidores, es decir, ambos sirven para lo mismo y simplemente son dos filosofas diferentes para resolver un nico problema. Podemos ver que esta creencia es totalmente falsa simplemente prestando atencin a las definiciones de ambos conceptos. Wireless Application Protocol (WAP) es un protocolo de comunicaciones diseado para permitir que dispositivos wireless con pantallas pequeas y conexiones de baja velocidad puedan acceder a Internet y aplicaciones de intranets. J2ME es una tecnologa que permite desarrollar aplicaciones genricas para este tipo de dispositivos. Vemos por tanto que son cosas muy diferentes y que no pueden competir entre s, incluso son tecnologas complementarias, pues expande el uso de las aplicaciones que disponen de posibilidad de acceso a redes sin cable. As, un usuario de PDA, por ejemplo, puede bajarse una aplicacin que desea instalar mediante un navegador WAP estndar.
J2ME presenta dos configuraciones: CLDC y CDC. La primera se dedica a dispositivos con estrictas limitaciones de memoria, capacidad de clculo, consumo y conectividad de red. Por otro lado, CDC se encarga de dispositivos con ms potencia. Parte de CLDC es un subconjunto de CDC, por lo que la portabilidad de aplicaciones se puede conseguir cuando nos movemos de un entorno ms restringido a otro ms rico. De la misma manera, y siguiendo en el hilo de la portabilidad, una aplicacin en J2ME podr ejecutarse en J2SE normalmente, salvo que se utilicen las bibliotecas especficas de J2ME.
CLDC
53
Programacin Avanzada
ITSSNP
Veamos ms detalladamente algunas caractersticas de CLDC, ya que es la configuracin en la que nos centraremos en este curso. Comencemos por las propiedades mnimas requeridas a un dispositivo para poder desarrollar con esta configuracin:
De 160 a 512 Kbytes de memoria disponible para el entorno de Java. Un procesador de 16 o 32 bits. Consumo de energa bajo (generalmente utilizan bateras). Permiten algn tipo de conectividad a una red (lo normal, es una conexin intermitente, con un ancho de banda bajo -sobre 9600 bps- y a menudo inalmbrica.
Al tener como objetivo dispositivos con prestaciones reducidas, CLDC elimina una gran cantidad de caractersticas que s aparecen en J2SE, tanto en el propio lenguaje Java como en la mquina virtual, como por ejemplo:
Interfaz nativo de Java (Java Native Interface -JINI) (Mquina virtual). Cargadores de clases definidas por el usuario (Mquina virtual). Grupos de hilos e hilos demonios (Mquina virtual). Finalizacin (lenguaje Java). Referencias dbiles (Mquina virtual). Reflexin (Mquina virtual). Tipos de datos de punto flotante (lenguaje Java). Algunos aspectos de seguridad y APIs (Mquina virtual). Verificacin de archivos de clases (Mquina virtual). Posee algunas limitaciones en las gestiones de errores (lenguaje Java).
Pero qu razones se consideraron para eliminar esas prestaciones? Por supuesto, una de ellas se basa en cuestiones de ahorro de memoria, ya que el tamao general del API queda reducido. Aunque otras tambin han sido quitadas por cuestiones de aligerar el procesador, como es el caso de las operaciones en punto flotante, o la verificacin de las clases. Concretamente, esta operacin, que identifica y rechaza archivos de clases invlidas, se realizaba en la mquina virtual en la edicin J2SE, pero en ese caso aumenta su tamao. Por esta razn, en J2ME la verificacin se hace en dos partes: la primera, la preverificacin, en un PC distinto; la segunda s se lleva a cabo en el propio dispositivo, pero en este caso es mucho ms simple y rpida. Ms adelante estudiaremos de manera ms detallada el proceso de verificacin. Con respecto a la seguridad, al no definir CLDC completamente el sistema de seguridad de Java deben eliminarse prestaciones que s figuran en el J2SE (por ejemplo, JINI, que permite la utilizacin de una biblioteca de clases escrita en otros lenguajes -enlazado en tiempo de ejecucin) y que haran muy vulnerables las aplicaciones. Por ejemplo, sin este modelo de seguridad, un cargador de clases definido por el usuario podra alterar la forma en que el camino de las clases fuera recorrido, pudiendo una aplicacin sustituir trozos de las bibliotecas del ncleo de Java y ganar acceso al dispositivo de tal forma que pudiera daarlo.
54
Programacin Avanzada
ITSSNP
Tambin se considera la simple conveniencia como criterio: algunas clases pueden ser desarrolladas por los programadores basadas en otras que s se mantienen. Igual ocurre con algunos mtodos de clases. Por otro lado, otras clases se eliminan por que no tiene razn de ser: java.io.File tiene sentido si se trabaja en un sistema de archivos, pero muchos dispositivos no disponen de l. En su lugar, CLDC utiliza las propias prestaciones del dispositivo. Otro ejemplo en este sentido son la finalizacin de objetos, ya en el J2SE puede ocurrir que nunca se lleve a cabo. La eliminacin de gestin de errores, por ltimo, va en la linea de la utilidad de la accin, y del tiempo consumido en ello. Una excepcin es un error que puede ser recuperable; un error, por el contrario, representa problemas muy serios y generalmente dependientes directamente del dispositivo, por lo que no merece la pena hacerlo. En cuanto a la mquina virtual de CLDC, KVM, requiere entre 40 y 80 Kbytes dependiendo de las opciones de compilacin y el tipo de dispositivo para el que se compile. Esto implica que se podrn ejecutar aplicaciones con un total de 128 Kbytes. Aparte de esto, se necesitan otros 32 Kbytes para memoria dinmica de la aplicacin a ejecutar. KVM est implementada en C y est diseada para ser tan completa y rpida como sea posible. De hecho, puede ejecutarse de un 30 a un 80% de la velocidad de la JVM. Volviendo a la verificacin de clases, la mquina virtual de Java estndar efecta un proceso en tiempo de ejecucin que se denomina verificacin de clases, el cual se lleva a cabo antes de cargar ninguna clase en memoria. El objetivo es asegurar la integridad de los archivos donde se almacena una clase Java y que el cdigo en ella no intente acceder a memoria fuera de su espacio de nombres, eliminando la posibilidad de que pueda sustituir alguno de los paquetes del ncleo de Java (java.* o javax.*), y poniendo as en juego la seguridad del sistema. Esta etapa juega un papel muy importante en el modelo de seguridad de Java. Para que nos hagamos una idea, J2SE verifica, entre otros, estos puntos:
Inicializacin de todas las variables locales antes de su uso. El constructor de un objeto debe ser llamado justo seguidamente de la creacin del mismo, y antes de que se use. Cada constructor tiene que comenzar con una llamada al constructor de su superclase. Las variables locales y miembros estticos deben contener referencias a objetos que sean asignables legalmente.
Si nos trasladamos a CLDC, este proceso ser muy costoso en trminos de uso de recursos, ya que requiere mucha memoria, procesador y espacio para cdigo binario. Es por esto por lo que los diseadores de KVM decidieron hacer la verificacin de clases de manera diferente a como se hace con JVM. As, antes de que la clase se llegue a emplear en el dispositivo, sta es modificada externamente por una utilidad "preverificadora". La idea es aadir al fichero clase generado por javac nuevo cdigo que identifique la clase como vlida (pasa a ser
55
Programacin Avanzada
ITSSNP
una clase verificada). Seguidamente, se transfiere al dispositivo y la KVM slo tiene que comprobar si esta informacin est o no presente o contiene o no la informacin correcta. En cualquiera de los dos casos negativos, el proceso de carga se interrumpe y se lanza una excepcin. Esta comprobacin se puede hacer justo cuando se carga la clase o como parte del proceso de instalacin de la aplicacin. En cualquier caso es un proceso ms rpido que la preverificacin y requiere menos memoria.
56
Programacin Avanzada
ITSSNP
Las aplicaciones MIDP se denominan "MIDlets", las cuales pueden utilizar tanto las facilidades aportadas por MIDP como las APIs que MIDP hereda de CLDC, pero nunca acceden directamente al sistema operativo subyacente, por lo que no seran portables. Un MIDlet consiste en una clase Java, como mnimo, derivada de la clase abstracta MIDP, y que se ejecutan en un entorno de ejecucin dentro de la mquina virtual, la cual provee un ciclo de vida bien definido controlado mediante mtodos de la clase MIDlet que cada MIDlet debe implementar. Tambin estas aplicaciones usan mtodos de esta clase abstracta para conseguir servicios de su entorno. Un grupo de MIDlets que estn relacionados se suelen agrupar en un MIDlet suite. Todos estos MIDlet se empaquetan, instalan, desinstalan y borran como una nica entidad y comparten recursos tanto en tiempo de ejecucin (se ejecutan en la misma mquina virtual, lo que implica que compartirn instancias de de todas las clases de Java cargadas en la mquina virtual), como estticos (el almacenamiento persistente se gestiona en el nivel de suite). Veamos seguidamente algunos detalles sobre los dispositivos que soportan MIDP. Comenzando con los requerimientos de memoria, MIDP necesita 128 KB de RAM disponible para la implementacin correspondiente. A esta cantidad debemos sumarle la que necesita CLDC y como mnimo 32 Kbytes para almacenar la pila de la aplicacin, tamao que obliga al programador a tener bastante cuidado a la
57
Programacin Avanzada
ITSSNP
hora de disear las aplicaciones. Adems, los dispositivos MIDP cuentan con 8 Kbytes como mnimo de memoria no voltil que se utiliza como almacenamiento persistente, que no se borra tras apagar el aparato (salvando el problema del cambio de batera). Sobre las pantallas de los dispositivos, la especificacin MIDP indica que sta requiere 96 pixels de ancho por 54 de alto y que debe soportar al menos dos colores (como es el caso de muchos telfonos mviles, en contraposicin con algunas PDAs que tienen pantallas de 160 pixels en ambas direcciones y 65.536 colores diferentes). Con respecto a los tipos de entradas del dispositivo, el rango es muy amplio: desde los que tienen un teclado alfanumrico completo, hasta aquellos que permiten escribir en ciertas reas de la pantalla, pasando por los teclados de los telfonos mviles. La especificacin mnima requiere un teclado que permita marcar los nmeros del 0 al 9, junto con el equivalente a las teclas del cursor y un botn de seleccin. MIDP no asume que los dispositivos estn permanentemente conectados a una red, ni siquiera que soportan TCP/IP, pero que s tienen algn tipo de acceso a una red. En este sentido, la especificacin s establece que soporte HTTP 1.1, bien mediante una pila de protocolos o una pasarela WAP. Tambin los sistemas operativos de los dispositivos tienen restricciones con respecto a MIDP. Por ejemplo, deben ofrecer un entorno de ejecucin protegido donde la mquina virtual pueda correr, o algn tipo de apoyo para el acceso a una red, como puede ser el caso de un API para programar sockets, sobre el cual el protocolo HTTP se pueda implementar. Es el sistema operativo el que ofrecer acceso al teclado y al posible dispositivo puntero, entregando los correspondientes eventos que surjan. Adems, ser el encargado de abstraer al MIDP la pantalla, ya que ser visto por l como una matriz de pixels, y de ofrecer un interfaz para el acceso al almacenamiento persistente. Un aspecto muy importante a tener en cuenta es el de la seguridad. J2SE ofrece un modelo de seguridad potente y flexible, y a la vez, costoso en trminos de memoria, razn por la cual CLDC y MIDP no incluyen ningn tipo de prueba en las llamadas al API de las que incluye J2SE. Para un usuario de un dispositivo mvil esto puede suponer un peligro, porque el MIDlet no est limitando en ningn sentido. Es por esto por lo que el usuario debera ser bastante cuidadoso a la hora de instalar nuevas aplicaciones. Los MIDlets necesitan empaquetarse antes de que sean trasferidos a un dispositivo para su instalacin: tanto la subclase MIDlet correspondiente como las clases que requiera y el resto de archivos necesarios (como pueden ser archivos de imgenes) constituirn un nico fichero JAR, incluyendo el conocido como manifiesto del JAR (contiene informacin de empaquetado que indica qu se almacena en el fichero JAR). Adicionalmente se emplea otro segundo fichero
M.S.C. Jos Leonel Cuevas Ruiz
58
Programacin Avanzada
ITSSNP
conocido como Java Application Descriptor (JAD). El manifiesto del JAR almacena el dispositivo, el nombre y la versin del MIDlet suite en el JAR correspondiente, as como qu archivos de clase se corresponde con cada MIDlet, informacin til para instalar los MIDlets. El segundo es un fichero de texto que contiene una lista de atributos junto con su valor correspondiente. Algunos atributos estn tambin contenidos en el manifiesto del JAR, ya que ste puede ser grande y su transferencia lenta debido a la baja velocidad del acceso a la red que suelen tener estos dispositivos, en vez de descargar el JAR completo, se descarga el fichero JAD, el cual es mucho ms pequeo y rpido de transferir, se muestra por la pantalla del dispositivo y se decide si se instala o no.
59
Programacin Avanzada
ITSSNP
El analista de turno deber determinar, normalmente con varias entrevistas con los usuarios, las necesidades que estos tienen y los requerimientos que se les pedirn a la aplicacin. Por ejemplo, en el caso de un anlisis para una aplicacin que se ejecutar en un dispositivo mvil, algunos de estos requerimientos generales pueden ser la facilidad de uso, que se pueda ejecutar en telfonos mviles, PDAs y paginadores, que permita una conexin a una entidad mayor para obtener datos actualizados o devolver otros, o tambin, que sea capaz de almacenar cierta informacin de manera persistente.
Diseo de la aplicacin.
Es muy importante en este tipo de aplicaciones el crear programas separados por cada uno de los posibles usos que se le d a la aplicacin. De esta manera cada programa ser ms pequeo y se adaptar mucho mejor a las caractersticas de los dispositivos mviles. Por tanto, a la hora del diseo nos plantearemos esta tarea seriamente, pues finalmente sern varias las ventajas de hacerlo as. Ya en la fase de implementacin se tendr que establecer un mecanismo que controle las diferentes aplicaciones. En cuanto al diseo del interfaz de usuario, debemos decidir la correspondencia entre la aplicacin y la pantalla. Los diseadores en esta fase no deben considerar cmo los usuarios operarn con el dispositivo para llevar a cabo una tarea, o cmo se notificar a la aplicacin las acciones del usuario. Se deben concentrar slo en el objetivo de la pantalla y en la tarea que permitir llevar a cabo. Sun recomienda en esta etapa que se haga un "story board" conteniendo en cada vieta los requerimientos para la pantalla correspondiente. En otra fase se decidir qu tipo de controles vamos a utilizar para realizar entradas de datos y cmo vamos a presentar la informacin. En este punto, las caractersticas generales en cuanto a pantalla del dispositivo pueden marcar claramente el tipo de diseo de interfaz: lo que en uno se puede disponer en una nica pantalla, en otro podremos necesitar varias. El almacenamiento persistente es un aspecto a tener en cuenta en nuestro diseo. La pregunta a responder es: qu datos deben sobrevivir a la finalizacin de la aplicacin y estar disponibles para la siguiente vez que se vaya a ejecutar? Otra cuestin, que no se debe plantear en esta fase sino en la de implementacin es qu utilizar para realizar ese almacenamiento. Una primera respuesta es aquel formato que se emplee para enviar y recibir datos entre el dispositivo J2ME y el
M.S.C. Jos Leonel Cuevas Ruiz
60
Programacin Avanzada
ITSSNP
sistema externo. Con esto evitamos una fase de conversin de formatos. Si el dispositivo posee sistemas de archivos, entonces podemos optar por la creacin de un fichero con una estructura ms o menos compleja y usar las bibliotecas de Java para acceder a ellos. Otra alternativa tambin puede ser emplear sistemas de gestin de bases de datos relacionales, aunque en el caso de tener que tener que almacenar un gran volumen de datos y realizar gran cantidad de accesos. Finalmente, debemos tener en cuenta dentro del diseo aspectos relacionados con la conectividad y con la entrada / salida, ya que son puntos muy importantes que van a determinar la portabilidad de la aplicacin. Por tanto, en este momento deberemos tomar decisiones en un nivel de abstraccin alto, que luego se concretarn cuando determinemos claramente el tipo de dispositivo y sus prestaciones.
Implementacin de la aplicacin.
Esta etapa vendr marcada por la eleccin del lenguaje, plataforma y herramientas de desarrollo (depuradores, entornos integrados,...). Con J2ME, teniendo en cuenta tipo de dispositivo con el que vamos a trabajar, decidiremos la configuracin y perfil ms adecuados. Los pasos a seguir en esta fase hasta instalar el programa en el dispositivo seran los siguientes:
1. Escritura del cdigo. 2. Compilacin de la aplicacin. 3. Eliminacin de informacin de clases innecesaria (obfuscate). Esta etapa es opcional y en ella se renombran clases, mtodos, interfaces, con objeto de hacerlo ambiguo. Un paquete obtenido de esta fase lo protege de la descompilacin y de la ingeniera inversa. Adems, reduce el tamao de los archivos de clase, dando lugar a archivos JAR ms pequeos. 4. Ejecucin del preverificador para aadir la informacin de "clase verificada" a los archivos de clase. 5. Empaquetamiento de la aplicacin: creacin del fichero JAR y JAD. 6. Ejecucin en un emulador apropiado. 7. Instalacin en el dispositivo y ejecucin. En este caso existen dos modos de hacerlo: en el primero, se descargar la aplicacin a travs de una conexin de red, se cargar en memoria, se ejecutar la aplicacin, y finalmente se eliminar cualquier traza de sta en el dispositivo; en la segunda, y siempre que el dispositivo lo permita, se instalar fsicamente. En el entorno J2ME, Java Application Manager (JAM) es un gestor que controla la descargar, instalacin, lanzamiento y desinstalacin de aplicaciones en el dispositivo.
61
Programacin Avanzada
ITSSNP
Algunos consejos para desarrollar aplicaciones con J2ME pueden ser los siguientes: 1. Evite ejecutar tareas computacionalmente intensivas en el dispositivo. Cuando sea posible, la alternativa ms sencilla es hacer que una posible aplicacin servidora en una mquina servidora sea la haga el clculo y que la aplicacin que corre en el dispositivo slo se encargue de la gestin del interfaz y de mnimas operaciones. Simplifique la aplicacin, es decir, dejarla tan simple como sea posible, eliminando caractersticas superfluas. Esta decisin bsicamente debe realizarse en tiempo de diseo. Si se va la necesitar un requerimiento slo de vez en cuando, entonces lo mejor es desarrollar una segunda aplicacin auxiliar que la contenga, dando la oportunidad a los usuarios a que puedan eliminar dicha aplicacin si no la necesitan. 2. Escriba aplicaciones ms pequeas (Smaller is better) ya que consumir menos memoria, requerir menos tiempo de instalacin y de inicializacin al ser ejecutada. Un aspecto para alcanzar este fin es el de reducir el nmero de clases de la aplicacin. 3. Utilice menos memoria en tiempo de ejecucin. Para ello podemos considerar el uso de tipos escalares en sustitucin de objetos ms complejos siempre que sea posible, como son int y boolean, por ejemplo, ya que cada vez que construimos un tipo, el constructor entra en funcionamiento reservando el espacio de memoria requerido para alojarlo. Tambin otro consejo en este sentido es alojar objetos cuando realmente sea necesario (lazy instantiation). As, cuando vayamos a utilizar un objeto podemos preguntar previamente si ha sido creado o simplemente apunta a null. 4. Libere los recursos del programa tan pronto como se acaben de utilizar. Una vez que se finalice el uso de conexiones a bases de datos, a la red, a archivos, etc., liberarlos, ya que dejaremos libre la memoria que implica su gestin y se pondrn a disposicin de otras aplicaciones. 5. Reutilice objetos en lugar de continuamente crearlos y abandonarlos. La idea, por tanto, es escribir mtodos de inicializacin de objetos y tambin de dejarlos en un estado neutro para posteriormente poder emplearlos en otros menesteres. 6. Evite excepciones cuando se pueda, ya que redundar en la reduccin del tamao de los archivos de clase y el nmero de objetos que se alojen en
62
Programacin Avanzada
ITSSNP
memoria. Siempre que se pueda solventar el problema de otra forma es mejor. 7. Utilice variables locales, ya que es ms lento acceder a un miembro de una clase que a una variable local. Por ejemplo, si accedemos a una variable miembro dentro de un bucle una y otra vez, ser conveniente asignar el miembro a una variable local, que se almacenar en la pila, y acceder continuamente a ella. Tambin es til esta tcnica para operar con elementos de un vector en vez de acceder directamente por medio del vector. 8. Evite concatenacin de cadenas de caracteres debido a que se emplea un par de llamadas a mtodos de la clase String ms la del constructor correspondiente. Esto lo tenemos que tener ms en cuenta, an si cabe, si se hace en un bucle. 9. Emplee hilos. Por norma general, todas aquellas operaciones que lleven ms de una dcima de segundo deberan ejecutarse en un hilo separado, de tal forma que no se bloquee el interfaz de usuario, aspecto muy importante en los dispositivos mviles.
63
Programacin Avanzada
ITSSNP
64
Programacin Avanzada
ITSSNP
Esta forma es la tpica para los PDAs, pues normalmente viene asociadas a un PC porttil o de sobremesa con el que peridicamente se sincronizan. Este proceso consiste en trasladar los datos del usuarios desde el aparato al PC y enviar copias de software y tambin datos en la direccin contraria. El MIDP de PalmOS permite la instalacin de MIDlets suites durante la sincronizacin. Una vez que se han instalado, pueden ser se pueden ejecutar en el PDA como cualquier otra aplicacin.
Desde una red de PCs a la cual est el dispositivo conectada.
Este es el mtodo ms comn para telfonos mviles y dispositivos inalmbricos similares, aunque tambin la utilizan PDAs con conectividad a una red. Este proceso es el ya conocido como entrega Over-The-Air (OTA), lo que permite hacer la instalacin desde servidores HTTP. El proceso bsico es la instalacin de los MIDlet suites en un servidor web, ofreciendo hiperenlaces a ellos. Desde un telfono, el usuario activa ese enlace para bajrselo va WAP o un micronavegador de Internet. Es decir, el que suministra el MIDlet escribe un a pgina como la siguiente y la cuelga en su web: <html> <body> <a HREF="miMIDPletSuite.jad"> pincha aqu </a> para bajarte el fichero. </body></html> El usuario del mvil se conecta a la pgina donde el fichero JAD se ha dejado y se lo baja. El fichero miMIDPletSuite.jad contendra algo parecido a esto: MIDlet-Name: miMIDPletSuite MIDlet-Jar-URL: http://miempresa.com/miMIDPletSuit.jar MIDlet-jar-Size: 8592
65
Programacin Avanzada
ITSSNP
Una vez descargado en el mvil, el control pasa al software de gestin de aplicaciones del aparato, el cual muestra al usuario el contenido y ste decide si instalarlo o no. En este momento slo se ha descargado un fichero JAD de tamao pequeo. Si se decide instalar, la aplicacin AMS localiza el URL donde est el fichero JAR y la pide al servidor. Seguidamente pasa a instalarla. El AMS enva, una vez finalizado el proceso, un cdigo al servidor indicando si ha habido algn error o no, y en caso de haberlo, el tipo. El programa AMS tambin se encarga de realizar la actualizacin de MIDlet suites ya existentes. Como el fichero JAD tambin contiene la versin del software que se va a instalar, el gestor de aplicaciones determinar si es una versin ms moderna que la que ya hay en el dispositivo, en cuyo caso pide permiso al usuario para llevar a cabo su instalacin. Adems, debe permitir la seleccin de MIDlets y su posterior ejecucin. Por ltimo, tambin es el encargado de realizar la eliminacin del software a peticin del usuario. Los MIDlets no se pueden borrar individualmente, sino que se debe liberar el almacenamiento persistente que se le asign al MIDlet suite.
66
Programacin Avanzada
ITSSNP
La tecnologa JavaCard tiene por objeto permitir el desarrollo de aplicaciones en Java que puedan ser usadas en tarjetas inteligentes. Las principales complicaciones tienen que ver con lo limitado de los recursos de hardware, mientras que las ventajas se relacionan con la posibilidad de ocupar un lenguaje de alto nivel en un ambiente en que lo usual es programar en algn tipo de ensamblador difcil de depurar. Algunas tarjetas del estilo a las de crdito se les est dotando de un microprocesador o un chip de memoria. Algunas de estas tarjetas inteligentes "smart cards" poseen la capacidad de procesar, por s mismas, datos almacenados en ella. Otras necesitan la asistencia de un lector, pero contienen un repertorio de instrucciones para manipular los datos. Adems, no necesitan acceder a sistemas remotos, como es el caso de las de banda magntica. Tpicamente, las tarjetas tiene 1 Kbyte de memoria RAM, 16 Kbyte de EEPROM y 24 Kbytes de ROM. Las aplicaciones de estas tarjetas se estn extendiendo velozmente, ya que por ejemplo las estn utilizando ya varias entidades bancarias, gobiernos para sustituir tarjetas de identificacin o carnets de conducir o empresas de transporte para sustituir los sistemas actuales de tarjetas magnticas. JavaCard fue diseado para ofrecer una solucin fiable a la proteccin de datos y recursos mediante Java. Teniendo en cuenta el reducido entorno para el que ha sido pensado, JavaCard elimina ciertas construcciones de Java consideradas como demasiado complejas o no aplicables para la programacin de tarjetas inteligentes no son incorporadas y por otro lado se agregan facilidades especficas para el manejo de transacciones con tarjetas inteligentes (atomicidad de un grupo de operaciones, objetos persistentes, etc.). Las polticas de seguridad de Java (conocidas como el sandbox model) que prohben cualquier interaccin entre objetos de diferentes applets fueron modificadas, y en algunos casos, debilitadas: JavaCard, por ejemplo, permite que un objeto sea compartido por diferentes applets. Cuando una tarjeta que contiene uno o varios applets se inserta o presenta de alguna forma a un lector de tarjetas, la mquina virtual de esta plataforma identifica el applet con el que se quiere comunicar y el lector le enva una serie de mandatos a ejecutar.
67
Programacin Avanzada
ITSSNP
La tecnologa JavaCard est compuesta por tres componentes: la mquina virtual (JCVM), el entorno de ejecucin (JCRE) -que acta como sistema operativo- y el API. La mquina virtual la forman un conversor, es decir, una mquina virtual fuera de la tarjeta (residente en un PC, por ejemplo) y otra intrprete que reside en la tarjeta. La primera convierte archivos de clases de Java en los conocidos como Converted Applets, que son ejecutados por el intrprete.
EmbeddedJava
Este tipo de Java est dirigido a desarrollar aplicaciones relacionadas con el acceso a red, concretamente con la entrega de servicios bajo demanda. Para conseguirlo, un servidor de Java embebido se integra en cualquier dispositivo de red especfico, como por ejemplo, una pasarela, mquinas de venta en la calle, dispensadores de gasolina, automviles, de tal forma que el servicio se efecte a travs de la red. La mquina virtual no requiere ms de 500 Kbytes.
JavaPhone
Es un API desarrollado para dos tipos nuevos de telfonos: los telfonos inteligentes y los telfonos con pantalla para Internet. Los primeros conjugarn comunicaciones por voz, fax, correo electrnico, comunicacin va radio, paginacin, acceso a Internet, planificacin de tareas al estilo de los PDAs y muchas otras funciones que los telfonos mviles, PDAs y paginadores presentan. Los segundos, son pantallas de vdeo y opcionalmente teclados que permiten comunicaciones personales en Internet. JavaPhone ofrece una biblioteca de clases para desarrollo de aplicaciones en estos telfonos futuristas.
Java TV
El API de Java para la televisin digital interactiva ofrece una plataforma para escribir programas Java para controlar la televisin y los "set-top boxes" creados para el entretenimiento digital, de manera que sean independientes de la tecnologa subyacente de emisin. Entre algunas de las aplicaciones podemos destacar la posibilidad de seleccionar la cmara desde la que queremos ver un partido de ftbol o una jugada concreta, o seleccionar vdeos o juegos bajo demanda. Java TV se compone de una mquina virtual Java estndar y varias bibliotecas del propio lenguaje Java y especficas.
68
Programacin Avanzada
ITSSNP
Cuando no se necesite ningn procesamiento ni almacenamiento en el dispositivo una buena opcin es el empleo del Wireless Application Protocol (WAP) junto con el Wireless Markup Language (WML). WAP es un conjunto de especificaciones para construir aplicaciones basadas en web para redes inalmbricas. WML es la parte de WAP que especifica el formato de la informacin para que pueda ser transferida entre dispositivos. WAP se basa en parte en Internet para trasladar la informacin a las pantallas de los telfonos mviles o PDAs, dotados estos con navegadores WAP.
Otros lenguajes
La mayora del software escrito hoy en da no emplea Java, sino que lenguajes como C++, C o Visual Basic se presentan como los ms populares para estas tareas. Las compaas han desarrollado completos entornos integrados para estos lenguajes en diferentes sistemas operativos como Windows CE o Palm OS. Otro lenguaje que est teniendo bastante xito es SuperWaba, tambin dedicado a la programacin de dispositivos pequeos. Define un lenguaje, una mquina virtual, un formato de archivos .class y un conjunto de clases base. SuperWaba desciende de Waba y es compatible con esta. La sintaxis de los programas escritos para SuperWaba es un subconjunto del lenguaje Java, lo que permite que los desarrolladores que estn familiarizados con Java puedan comenzar rpidamente a utilizar el SuperWaba. El formato de los archivos clase (.class) de SuperWaba son tambin subconjuntos del formato Java. Sin embargo, SuperWaba no deriva de Java ni tiene que ver con Sun Microsystems. El lenguaje definido por SuperWaba, su mquina virtual y el formato de los archivos clase han sido diseados de forma tal que sean ptimos para su uso en PDAs. Las caractersticas de Java que usaban mucha memoria o que eran innecesarias para los PDA's han sido omitidas en el diseo del lenguaje y su mquina virtual.
69
Programacin Avanzada Breve descripcin de cada una de las partes. Herramientas y entornos de desarrollo
ITSSNP
En este tutorial se considerarn las herramientas bsicas de desarrollo de aplicaciones JAVA para dispositivos mviles. Comenzaremos dando una visin de las herramientas bsicas, para considerar, en ltimo lugar, algunas de las herramientas integradas disponibles para los desarrolladores. Analizaremos, en primer lugar, la programacin de ms bajo nivel, interactuando con la mquina virtual de CLDC. A continuacin estudiaremos la programacin de MIDlets, mediante MIDP. En ambos casos, se estudiar inicialmente la forma de operar desde comandos, para describir, a continuacin, la operativa mediante entornos de desarrollo de libre disposicin.
Introduccin a Java
En seccin 1, se hace una breve introduccin al lenguaje Java, haciendo referencia a su origen, historia, relacin con Internet, el significado del bytecode, y sus caractersticas ms importantes. Se sigue con una introduccin al paradigma de la programacin orientada a objetos en que se basa Java. Se termina presentado como crear el primer programa con CLDC, que es la configuracin en la que se basan los dispositvos mviles de menor capacidad. En seccin 2 presentamos los tipos de datos bsicos del lenguaje Java, analizando como se definen variables y arrays o matrices de estos tipos bsicos. En seccin 3 presentamos brevemente los operadores de Java, prcticamente iguales a los de C++. En seccin 4 presentamos las estructuras de control disponibles en Java, de nuevo prcticamente iguales a las de C++. En la seccin 5 estudiamos el concepto de clase en Java, analizando como se construyen, los constructores, las variables de clase, los mtodos, como se crean objetos de la clase, etc. En la seccin 6 analizamos puntos importantes en la definicin de los mtodos de una clase, como la sobrecarga, el paso de parmetros de los mtodos (por valor, por referencia), los especificadores de control de acceso (public, private, etc), as como los modificadores static y final. Se hace tambin una breve introduccin de la clase java.lang.String. En la seccin 7 se estudia la herencia, estudiando concepto asociados como la sobreescritura de mtodos, polimorfismo en tiempo de ejecucin, clases abstractas, el especificador de control de acceso protected. En la seccin 8 se estudia el tema de la definicin de paquetes de clases y el de la creacin de interfaces, que son algo similar a las clases, pero en donde los mtodos no tienen cuerpo, slo su definicin. La seccin 9 trata del tema de la gestin de excepciones. Se analiza las principales excepciones existentes en CLDC, como capturarlas, como lanzar excepciones explcitamente, y como crear nuestros propios tipos de excepciones. La seccin 10 estudia el tema de la programacin multihebra. Veremos como crear programas con ms de una hebra de ejecucin, y aprender a usar los principales mtodos de la clase Thread, as como otros mtodos de la clase Object (wait(), notify(), notifyAll()) que se usan
70
Programacin Avanzada
ITSSNP
para que dos hebras puedan comunicarse. Aprenderemos tambin a sincronizar hebras.
CLDC
Comenzaremos a implementar un programa con la biblioteca de CLDC, que corresponde al famoso juego de la serpiente (Snake o nibbles). El interfaz grfico de este juego se construir cuando se estudie el perfil MIDP. La seccin 11 retoma el concepto de CLDC, que como hemos dicho antes es la configuracin disponible para pequeos dispositivos. Se har un repaso a la biblioteca de clases que contiene CLDC haciendo nfasis en las clases que no se han visto anteriormente. La biblioteca de clases de CLDC se divide en los paquetes: java.lang, java.util, java.io y javax.microedition.io.
MIDP
En este parte del curso enpezaremos a ver la Interfaz de Programacin de Aplicaciones (API) de MIDP, explicando las clases ms importantes de su jerarqua. Primero nos centraremos en el ciclo de vida de un Midlet y como tratarlo, adems de unas cuantas generalidades de la programacin de los mismo. Posteriormente veremos cmo realizar el interfaz de nuestros Midlet, tanto en el manejo de la pantalla, como en el manejo de las entradas de usuario. Veremos que la parte de interfaces de usuario de MIDP se puede distinguir en dos partes claramente diferencias, cada uno con su estilo y finalida propios: La primera parte es el API de alto nivel para interfaces de usuario que nos va a permitir desarrollar Midlets utilizando clases para el interfaz, es una forma de programar muy fcil y rpida, pero no tenemos apenas control sobre la pantalla del dispositivo o las entradas que se produzcan. En la segunda parte estudiaremos el API de bajo nivel para interfaces de usuario, que nos va a permitir programar Midlet con un control total de la pantalla y entrada de datos del dispositivo. Esta forma de trabajar ser ms compleja, pues nos tendremos que preocupar a nivel de detalle de pixel o de tecla pulsada, sin embargo, nos permite un control mayor del dispositivo.
MIDP (Continuacin)
En este mdulo trataremos la gestin de la conexin a redes en J2ME. Hay tres formas de realizar transmisin de informacin contempladas en CLDC y MIDP: por sockets, datagramas y por HTTP. Veremos un resumen de las tres con sus ventajas e inconvenientes, centrandonos finalmente en la conexin por HTTP, que es el tipo que est completamente contemplado en los estndares. Finalmente se estudiar el almacenamiento persistente en J2ME. MIDP nos proporciona APIS para crear y manejar almacenes de registros. Una especie de bases de datos especialmente creadas para las caractersticas de los dispositivos mviles M.S.C. Jos Leonel Cuevas Ruiz
71
Programacin Avanzada
ITSSNP
escasos recursos-. Veremos cmo dentro de un almacn (tabla de una BD) podemos crear y manejar los registros (tuplas).
1.6.
Emuladores y SDKs.
Hay que tener en cuenta que en el mercado de dispositivos mviles, cada vendedor tiene sus propias herramientas de desarrollo, emuladores de dispositivos y aplicaciones para el anlisis del rendimiento. Algunos de los IDEs principales son:
J2ME Wireless ToolKit (J2MEWTK)
Contiene una implementacin de referencia de J2ME (MIDP) y mltiples emuladores de dispositivos. Este entorno de Sun se encuentra disponible para sistemas operativos de la familia Windows y Unix/Linux. En realidad no es un IDE como tal, pues no posee prestaciones de edicin y depuracin, que son imprescindibles. S contiene un mnimo entorno de desarrollo con un interfaz grfico para compilar, empaquetar y ejecutar aplicaciones MIDP.
JBuilder 7 Enterprise con MobilSet3
JBuilder es ya un entorno clsico dentro del desarrollo con Java para varias plataformas. Posee tres ediciones, de las cuales la ms completa es la Enterprise. Es precisamente sobre esta donde se fundamenta su uso con J2ME, ya que para desarrollar en este lenguaje para mviles hay que instalarse un mdulo adicional llamado MobileSet. Una vez instalado, aade prestaciones adicionales a JBuilder, como entornos de compilacin y ejecucin y ayudantes especficos.
Sun ONE Studio 4 Mobile Edition
Este entorno ofrece tres posibilidades: Community, Mobile y Enterprise. Las dos primeras son gratuitas. La versin Mobile tiene pocas prestaciones como IDE, aunque su diseo modular permite que terceros puedan desarrollar e integrar nuevos componentes.
Metrowerks CodeWarrior Wireless Studio 7
La edicin profesional incluye desde un Java 2 SDK hasta un gran nmero de emuladores de dispositivos y compiladores.
72
ITSSNP
Est basado en el proyecto Eclipse, el cual ofrece un conjunto de funcionalidades como IDE en un motor de ejecucin. Tanto vendedores como desarrolladores individuales pueden aadir caractersticas adicionales al entorno.
NetBeans
Cada lenguaje de programacin tiene sus Entornos de Desarrollo Integrados (IDE por sus siglas en ingls), los cuales son programas que proveen de todo lo necesario para desarrollar aplicaciones usando uno o varios lenguajes de programacin, y Java ME no es la excepcin. NetBeans es un IDE gratuito (en ingls) para Java SE (Standard Edition, el original), pero se ha convertido en uno de los IDE ms populares para Java ME, pues al agregarle su paquete mvil para dispositivos CLDC, este no solo provee las libreras del lenguaje, sino tambin un conjunto de emuladores de celulares con MIDP hechos por Sun Microsystems, el cual tambin se puede encontrar aparte como Sun Wireless Toolkit (WTK). Tambin es posible aadir otros emuladores de dispositivos CLDC, como nuevas versiones del WTK de fabricantes especficos como Nokia y Sony Ericsson, e inclusive NetBeans tiene un paquete mvil para dispositivos con la configuracin CDC (Configuracin de Dispositivos Conectados) la cual se encuentra en aparatos de mayor poder y velocidad de navegacin en Internet, como las ya mencionadas PDA.
Windows Phone.
1.7.
Mensajera y Comunicaciones.
1.8.
Tecnologas Emergentes.
La utilizacin del telfono celular ha superado fronteras inimaginables hace unos atrs. Aportando la libertad de la no dependencia de cables para que las personas puedan comunicarse o acceder a Internet en casi cualquier lugar. La evolucin de estos dispositivos permite imaginar el futuro que se espera y como se quiere explotar esta tan preciada tecnologa que permite conectar a todo el mundo.
73
Programacin Avanzada
ITSSNP
La Visin Sobre las Sociedades de la Informacin y de la Comunicacin La sociedad civil entiende a las sociedades de la informacin y de la comunicacin como realidades basadas en los derechos humanos y en el desarrollo humano duradero. Los sucesos que definen las sociedades de informacin y comunicacin deben basarse en principios de justicia econmica, poltica y social y deben perseguir objetivos de desarrollo humano duradero, adems del apoyo a la democracia, la participacin, el fortalecimiento y la igualdad de gneros.
Principios Gua
Para alcanzar los objetivos anteriores las estrategias de desarrollo de sociedades de informacin y comunicacin debern estar guiadas por los siguientes principios que respondan a la visin expuesta. Preponderancia de los derechos humanos y del desarrollo humano duradero. El derecho a la comunicacin. Acceso a la informacin y a los medios de comunicacin. Fomentar la diversidad cultural y lingstica. Adoptar una perspectiva democrtica para las sociedades de informacin y comunicacin. Computacin Ubicua Los continuos avances tcnicos pronto conducirn a la proliferacin de microprocesadores muy pequeos y muy baratos, equipados con sensores y con capacidad de comunicacin inalmbrica. El procesamiento de la informacin se volver entonces ubicuo e impregnar todo tipo de objetos. Por decirlo de otra forma, el trmino computacin ubicua significa la omnipresencia de computadoras muy pequeas interconectadas sin cables que se incrustan de forma casi invisible en cualquier tipo de objeto cotidiano. Usando pequeos sensores, estos procesadores incrustados pueden detectar el entorno que les rodea y equipar a su objeto con capacidades tanto de procesar informacin como de comunicacin. Esto aade otra dimensin completamente nueva a dichos objetos. Podran descubrir, por ejemplo, dnde se encuentran, qu otros objetos se encuentran junto a ellos y lo que les ha ocurrido anteriormente. Se podran comunicar tambin y cooperar con otros objetos inteligentes, y, tericamente, acceder a toda clase de recursos en Internet. De esta forma los objetos y los aparatos podran reaccionar y funcionar de manera sensible al contexto y parecer (mquinas) inteligentes, sin ser realmente (seres) inteligentes.
74
Programacin Avanzada
ITSSNP
Debido a los avances continuos en los campos de la computacin, la microelectrnica, la tecnologa de la comunicacin y la ciencia de los materiales, esta visin de informatizacin completa e interconexin de objetos cotidianos podra convertirse en una realidad palpable en un futuro no demasiado lejano. Como la computacin ubicua podra originar la aparicin de una serie de aplicaciones totalmente nuevas donde, por ejemplo, los objetos funcionando de forma cooperativa crearn nuevas utilidades emergentes, esta visin con el tiempo tambin podra tener xito desde un punto de vista comercial y tendra indudablemente enormes repercusiones econmicas y sociales. Tambin sacara a debate cuestiones acerca de la aceptacin de la tecnologa y de la creacin de un mundo donde la realidad quedara estrechamente ligada a y en algunos casos incluso mezclados con, nuestro ciberespacio basado en la informacin.
75
Programacin Avanzada
ITSSNP
22 Samsung B710
El telfono Samsung B710 tiene el aspecto de un telfono inteligente tpico, aunque algo inesperado sucede cuando la pantalla se mueve de la posicin vertical a una orientacin horizontal: la imagen salta de 2-D a 3-D. La tecnologa que produce esta percepcin de profundidad es obra de Julien Flack, director de tecnologa de Dynamic Digital Depth, que ha pasado ms de una dcada perfeccionando un software capaz de convertir el contenido de 2-D a 3-D en tiempo real. Podra ayudar a resolver el mayor problema relacionado con el 3-D: la necesidad de gafas especiales que ofrezcan una imagen distinta a cada ojo.
76
Programacin Avanzada
ITSSNP
El software de Flack sintetiza escenas en 3-D a partir de vdeo existente en 2-D mediante la estimacin de la profundidad de los objetos utilizando distintas pistas; por ejemplo, una banda de cielo en la parte superior de un fotograma probablemente pertenezca al fondo de la imagen. A continuacin, crea pares de imgenes ligeramente diferentes que el cerebro del espectador combina para producir la sensacin de profundidad. Mediante el uso del software de Flack, Dynamic Digital Depth se ha convertido en uno de los primeros lderes dentro de la telefona mvil en 3-D. El software fue includo en el B710, que Samsung lanz en Corea del Sur en 2007, y Samsung ha obtenido licencias de contenido 3-D generado por Dynamic Digital Depth para su ltimo telfono 3-D, el W960, lanzado en marzo. La firma de investigacin DisplaySearch pronostic recientemente que para 2018 habr 71 millones de dispositivos de este tipo en todo el mundo.
Samsung ha presentado oficialmente una versinactualizada del Galaxy Beam, un telfono inteligente con su propio proyector Picoincorporado. La principal caracterstica del telfono como se puede suponer es su capacidad para proyectar imgenes, vdeo y otros medios de comunicacin en paredes, techos o cualquier otra superficie plana a travs de un proyector de 15 lmenes que Samsung dice que puede mostrarimgenes de hasta 50 pulgadas de ancho. El proyector es la funcin de stand-out del telfono.Ms all de eso, usted est buscando en su nivelde ejecucin de la fbrica de telfono Android. El telfono cuenta con una de 5 megapxeles cmara incorporada, y tiene un procesador de 1 GHz de doble ncleo del procesador, 8 GB de memoria interna y una batera de 2000mAh.
77
Programacin Avanzada
ITSSNP
24 Cellcontrol mantiene los telfonos mviles sin trabajar en los coches en movimiento No quiere que sus hijos adolescentes usen su telfono mvil mientras conducen? Bueno, esperemos que explicque los peligros de esto. Si no lo hace, sin embargo, siempre se puede instalar Cellcontrol Scosche en su coche. El dispositivo se activa cuando el vehculo est en movimiento, y utiliza una seal de Bluetooth para deshabilitar las funciones de llamadas, mensajera de texto, correo electrnico, el uso de aplicacionesy acceso a Internet en los telfonos en el coche.
Mientras que la prometida oficina sin papel an no ha sido su ltimo resultado, los escneres son todava una pieza estndar de los equipos en la mayora de los lugares de trabajo. Con ms de un guerrero de la carretera en estos das de embalaje de un iPad en su arsenal, no es sorprendente ver el lanzamiento del escner iConvert para
78
Programacin Avanzada
ITSSNP
el iPad de Brookstone. Colocas documentos en la ranura de alimentacin frontal en donde se puede escanear y aparecer al instante en la pantalla del iPad que se guardan como archivos JPEG en la foto del dispositivo biblioteca
26 Sistema OmniTouch
Mientras que los proyectores interactivos de la interfaz estn lejos de ser nuevo, este concepto de diseo innovador utiliza un enfoque diferente que promete convertir casi cualquier superficie slida en un dispositivo de entrada sensible al tacto. Los libros, mesas, paredes, manos y otras partes del cuerpo, todo es juego limpio. El OmniTouch obtiene su borde en la deteccin deposicin de los dedos a travs de una compleja serie de clculos que comienza con la generacin del mapa de profundidad. El segundo vdeo a continuacin contiene una descripcin detallada del proceso que permite que el dispositivo para determinar si los propios dedos estn flotando sobre una superficie de contacto en realidad. Las entradas se aproximan mucho a los que dio de las pantallas tctiles y ratones, por lo que las posibilidades de OmniTouch son interminables. Esperemos que la espera de una versin comercial no lo es.
79
Programacin Avanzada .
ITSSNP
Si se utiliza un proyector inteligente para dar brillo a una imagen en una superficie irregular o en una plana, pero con un ngulo diagonal, partes de la imagen acabaran fuera del foco. Aparece un nuevo prototipo de proyector LED desarrollado por el Instituto Fraunhofer para la ptica aplicada y mecnica de precisin de Alemania. Esta inspirado en los ojos compuestos de los insectos, este dispositivo puede mostrar las imgenes ntidas y brillantes, sin distorciones visuales sobre superficies irregulares. Adems de que los usuarios pueden controlar la pantalla tocando la superficie de proyeccin. El secreto de este sistema es que no solo utiliza un proyector, utiliza un arreglo de 200 microproyectores. Cada uno de los cuales proyecta la misma imagen, sus tomas van una arriba de otra en la superficie, tambin cada uno puede ajustar el enfoque de la imagen, dependiendo de que tan lejos se encuentre de la superficie.
80
Programacin Avanzada
ITSSNP
28 Fujitsu desarrolla el dispositivo ms pequeo con sensor biomtrico de autenticacin de la vena en la palma de la mano.
Desde la creacin del primer contacto de sensor de autenticacin de vena en el 2003, la solucin de seguridad biomtrica de Fujitsu ha sido ms y ms pequea. Ahora la compaa desarrollo un nuevo sistema que tiene la mitad de espesor que las ya existentes, conservando el mismo rendimiento y niveles de precisin. Este dispositivo logra tener el sensor ms pequeo y delgado. Mantener la informacin es un trabajo difcil, pero permite a los dems usuarios elegir sus propias contraseas para bloquear archivos no es buena idea. Los sistemas puede utilizar las caractersticas biolgicas del cuerpo humano para su identificacin personal y esto tiene beneficios, incluyendo una alta precisin y resistencia a la falsificacin y suplantacin. La mayora de nosotros est familiarizado con escner de huellas digitales, iris, cara, entre otras cosas. Este sistema nuevo utiliza el patrn de las venas que normalmente es invisible en la palma y dedos para identificar al usuario.
81
Programacin Avanzada
ITSSNP
Este dispositivo es un altavoz bluetooth para dispositivos de Apple y Android. El iShower puede reproducir msica desde un dispositivo de los antes mencionados que contenga bluetooth a una distancia de hasta 60 metros. El iShower puede ponerse en la pared para su uso en cualquier lugar con agua, ya sea en la playa, en la ducha o en la piscina. El dispositivo funciona con 3 pilas AA para 15 horas M.S.C. Jos Leonel Cuevas Ruiz
82
Programacin Avanzada
ITSSNP
de transmisin. El iShower tiene los controles de reproduccin y el volumen que todo equipo de msica tiene, muestra el da y la hora y se puede instalar sin necesidad de herramientas.
30 SMART TV
La TV inteligente es un fenmeno que apenas inicia. La mayora de la gente no tiene una televisin conectada a internet, pero en un futuro no muy lejano integrarn esta conexin. Inves Smart TV 101 es un pequeo aparato parecido a un receptor de TDT. Por dentro es como una computadora, tiene el sistema operativo Android, 4Gb de memoria, procesador ARM Cortex-A9, HDMI y USB. Con este aparato se pueden ver todos los contenidos de internet en la televisin, incluidas las aplicaciones de Android. Funciona tambin como receptor de TDT de alta definicin y todas las facilidades que brindan estos aparatos. Para acceder y controlar las funciones tiene un mando a distancia que tiene la funcin tambin del teclado, ratn y mando para juegos como el de el Wii, es decir con un sensor de movimiento.
Mviles resistentes al agua Marcas como Panasonic, Motorola o Fujitsu se concentran en mejorar la resistencia e impermeabilidad de sus dispositivos. Considerando que estos dispositivos son muy caros, uno de los ms grandes temores de los usuarios es
83
Programacin Avanzada
ITSSNP
que se descompongan por que les caiga agua encima, les entre polvo o se raye la pantalla. El mvil Eluga de Panasonic que funciona con Android, es resistente al agua y al polvo. Motorola ofrece sus mvil Defy Mini, el cual es diseado para deportistas y tiene una pantalla Corning Gorilla Glass que protege la pantalla de rayones. Fujitsu present su tableta High Spec Waterproof que tambin utiliza Android y puede sumergirse en agua dulce hasta 30 minutos y 1.5 metros de profundidad.
Comprarse un telfono inteligente hoy en da supone viajar con el cargador all donde vas, pues las bateras rara vez duran ms de un da. Por eso las empresas tecnolgicas estn desarrollando nuevos acumuladores que mejoren la capacidad y el uso de los dispositivos mviles. Apple, por ejemplo, acaba de patentar un prototipo de bateras a base de clulas combustibles de hidrgeno. Segn explican en la propia patente "estas bateras pueden alcanzar altas densidades gravimtricas y volumtricas de energa, lo cual puede, potencialmente, permitir funcionar durante das o incluso semanas a los dispositivos electrnicos mviles sin necesidad de ser recargados".
84
Programacin Avanzada
ITSSNP
La base de este invento no es nueva, se trata de la tecnologa de pila de hidrgeno. Este sistema permitira alimentar a los gadgets porttiles a travs del hidrgeno y el oxgeno que se convertira en agua y energa elctrica. Adems, al no necesitar de energa elctrica para su recarga directa no perjudicaran al medio ambiente y seran ms sostenibles. Igualmente, al ser ms pequeas y ligeras permitiran que los dispositivos que las portasen tambin lo fueran. Como ha informado The Telegraph, Apple habra destacado tambin en el propio documento de patente la dependencia de los combustibles fsiles por parte del gobierno americano, lo que habra aumentado "el deseo de parte de los consumidores de promocionar y usar fuentes de energa renovables", como es el caso de estas innovadoras bateras.
Lo ltimo en dispositivos mviles es PaperPhone, un mvil tan flexible como una hoja de papel. Fabricado por investigadores de la Queen's University, en Ontario (Canad), permite seleccionar opciones del sistema operativo al doblar diferentes regiones de la pantalla. El nuevo gadget interactivo hace todo lo que un clsico telfono inteligente llamadas telefnicas, archivar msica, almacenar libros electrnicos...- con la peculiaridad de que el display es una pantalla flexible de 9,5 centmetros, con tinta electrnica (eink), que se amolda al tamao de nuestro bolsillo.
La pantalla viene equipada con sensores que reconocen la ubicacin de cada accin. El dispositivo puede ser configurado para que registre tipos especficos de dobles, para as ejecutar acciones nicas con cada movimiento.
85
Programacin Avanzada
ITSSNP
PaperPhone augura una nueva generacin de equipos sper ligeros, delgados y flexibles, que no consumen energa mientras que el usuario no los est usando. El equipo de investigadores dar a conocer su 'PaperPhone' el da 10 de mayo en la Asociacin de Maquinaria de Computacin CHI 2011 (siglas en ingls de Interaccin Persona-Ordenador) que se celebrar en Vancouver.
86
ITSSNP
http://www.dreig.eu/caparazon/2008/06/01/dispositivos-moviles-aproximacionresume/2/ http://leo.ugr.es/J2ME/INTRO/intro_16.htm http://dispositivosmobilesits.blogspot.mx/2012/05/tecnologias-emergentes-endispositivos.html http://es.wikipedia.org/wiki/Android http://redesadsi.wordpress.com/clasificacion-de-las-redes/ http://es.wikipedia.org/wiki/IOS_%28sistema_operativo%29 http://www.bdigital.unal.edu.co/4234/2/299696.2011_pte_2.pdf http://es.wikipedia.org/wiki/Symbian_OS http://odedispmov.blogspot.mx/2012/05/tecnologias-emergentes.html http://es.wikipedia.org/wiki/Blackberry
http://www.muyinteresante.es/innovacion/tecno/articulo/baterias-para-smartphones-queduraran-semanas http://www.muyinteresante.es/tecnologia/articulo/llega-paperphone-el-movil-flexible http://sistemaoperativosmoviles.blogspot.mx/ http://pinsim.com/conceptos/smc-sistema-movil-celular.html
87