Desde un ordenador local, por medio de una conexión de velocidad relativamente alta.
Esta forma es la típica para los PDAs, pues normalmente viene asociadas a un ordenador portátil o de sobremesa con el que periódicamente se sincronizan. Este proceso consiste en trasladar los datos del usuarios desde el aparato al ordenador y enviar copias de software y también datos en la dirección contraria. El MIDP de PalmOS permite la instalación de MIDlets suites durante la sincronización. Una vez que se han instalado, pueden ser se pueden ejecutar en el PDA como cualquier otra aplicación.
Desde una red de ordenadores a la cual esté el dispositivo conectada.
Este es el método más común para teléfonos móviles y dispositivos inalámbricos similares, aunque también 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 instalación desde servidores HTTP.
El proceso básico es la instalación de los MIDlet suites en un servidor web, ofreciendo hiperenlaces a ellos. Desde un teléfono, el usuario activa ese enlace para bajárselo vía WAP o un micronavegador de Internet. Es decir, el que suministra el MIDlet escribe un a página 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 móvil se conecta a la página donde el fichero JAD se ha dejado y se lo baja. El fichero miMIDPletSuite.jad contendría algo parecido a esto:
MIDlet-Name: miMIDPletSuite
MIDlet-Jar-URL: http://miempresa.com/miMIDPletSuit.jar
MIDlet-jar-Size: 8592
Una vez descargado en el móvil, el control pasa al software de gestión de aplicaciones del aparato, el cual muestra al usuario el contenido y éste decide si instalarlo o no. En este momento sólo se ha descargado un fichero JAD de tamaño pequeño. Si se decide instalar, la aplicación AMS localiza el URL donde está el fichero JAR y la pide al servidor. Seguidamente pasa a instalarla. El AMS envía, una vez finalizado el proceso, un código al servidor indicando si ha habido algún error o no, y en caso de haberlo, el tipo.
El programa AMS también se encarga de realizar la actualización de MIDlet suites ya existentes. Como el fichero JAD también contiene la versión del software que se va a instalar, el gestor de aplicaciones determinará si es una versión más moderna que la que ya hay en el dispositivo, en cuyo caso pide permiso al usuario para llevar a cabo su instalación. Además, debe permitir la selección de MIDlets y su posterior ejecución. Por último, también es el encargado de realizar la eliminación del software a petición del usuario. Los MIDlets no se pueden borrar individualmente, sino que se debe liberar el almacenamiento persistente que se le asignó al MIDlet suite.
1.9. Otras plataformas Java.
Existen otras tecnologías Java, guiadas por sus propias especificaciones, que están fuera de J2ME, para desarrollar aplicaciones en dispositivos distintos a los que se dedica J2ME. Veamos brevemente algunas de ellas.JavaCard.
La tecnología 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 algún tipo de ensamblador difícil de depurar.
Algunas tarjetas del estilo a las de crédito 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. Además, no necesitan acceder a sistemas remotos, como es el caso de las de banda magnética. Típicamente, las tarjetas tiene 1 Kbyte de memoria RAM, 16 Kbyte de EEPROM y 24 Kbytes de ROM.
Las aplicaciones de estas tarjetas se están extendiendo velozmente, ya que por ejemplo las están utilizando ya varias entidades bancarias, gobiernos para sustituir tarjetas de identificación o carnets de conducir o empresas de transporte para sustituir los sistemas actuales de tarjetas magnéticas.
JavaCard fue diseñado para ofrecer una solución fiable a la protección 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 programación de tarjetas inteligentes no son incorporadas y por otro lado se agregan facilidades específicas para el manejo de transacciones con tarjetas inteligentes (atomicidad de un grupo de operaciones, objetos persistentes, etc.). Las políticas de seguridad de Java (conocidas como el sandbox model) que prohíbencualquier interacción 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 máquina virtual de esta plataforma identifica el applet con el que se quiere comunicar y el lector le envía una serie de mandatos a ejecutar.
La tecnología JavaCard está compuesta por tres componentes: la máquina virtual (JCVM), el entorno de ejecución (JCRE) -que actúa como sistema operativo- y el API. La máquina virtual la forman un conversor, es decir, una máquina virtual fuera de la tarjeta (residente en un PC, por ejemplo) y otra intérprete que reside en la tarjeta. La primera convierte ficheros de clases de Java en los conocidos como Converted Applets, que son ejecutados por el intérprete.
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 específico, como por ejemplo, una pasarela, máquinas de venta en la calle, dispensadores de gasolina, automóviles, de tal forma que el servicio se efectúe a través de la red. La máquina virtual no requiere más de 500 Kbytes.
JavaPhone
Es un API desarrollado para dos tipos nuevos de teléfonos: los teléfonos inteligentes y los teléfonos con pantalla para Internet. Los primeros conjugarán comunicaciones por voz, fax, correo electrónico, fax, comunicación vía radio, paginación, acceso a Internet, planificación de tareas al estilo de los PDAs y muchas otras funciones que los teléfonos móviles, PDAs y paginadores presentan. Los segundos, son pantallas de vídeo y opcionalmente teclados que permiten comunicaciones personales en Internet. JavaPhone ofrece una biblioteca de clases para desarrollo de aplicaciones en estos teléfonos futuristas.
Java TV
El API de Java para la televisión digital interactiva ofrece una plataforma para escribir programas Java para controlar la televisión y los "set-top boxes" creados para el entretenimiento digital, de manera que sean independientes de la tecnología subyacente de emisión. Entre algunas de las aplicaciones podemos destacar la posibilidad de seleccionar la cámara desde la que queremos ver un partido de fútbol o una jugada concreta, o seleccionar vídeos o juegos bajo demanda. Java TV se compone de una máquina virtual Java estándar y varias bibliotecas del propio lenguaje Java y específicas.
1.10. Otras alternativas en la programación de dispositivos móviles.
Cuando la portabilidad, una de las principales requerimientos que nos hace elegir Java como plataforma de programación de dispositivos móviles, no es primordial, entonces podemos utilizar otras alternativas. Otros motivos que nos pueden inducir a no tomar Java como la plataforma idónea para nuestros desarrollos es que los desarrolladores tienen que esperar en ocasiones a que se desarrolle la máquina virtual y un API para el dispositivo con el que tenemos que trabajar, y unas veces podremos esperar, pero otras no. También tenemos que tener en cuenta el rendimiento que debe ofrecer nuestra aplicación porque con Java, la máquina virtual tiene que interpretar realmente un programa en byte-code en tiempo de ejecución, con el consiguiente pérdida de velocidad. Si necesitamos máxima velocidad de ejecución, quizá Java no sea la mejor opción y tenemos que buscar alguna otra alternativa. Entre estas destacamos:WAP y WML
Cuando no se necesite ningún procesamiento ni almacenamiento en el dispositivo una buena opción 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 inalámbricas. WML es la parte de WAP que especifica el formato de la información para que pueda ser transferida entre dispositivos. WAP se basa en parte en Internet para trasladar la información a las pantallas de los teléfonos móviles o PDAs, dotados estos con navegadores WAP.
Otros lenguajes
La mayoría del software escrito hoy en día no emplea Java, sino que lenguajes como C++, C o Visual Basic se presentan como los más populares para estas tareas. Las compañías 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, también dedicado a la programación de dispositivos pequeños. Define un lenguaje, una máquina virtual, un formato de ficheros .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 estén familiarizados con Java puedan comenzar rápidamente a utilizar el SuperWaba. El formato de los ficheros clase (.class) de SuperWaba son también subconjuntos del formato Java. Sin embargo, SuperWaba no deriva de Java ni tiene que ver con Sun Microsystems. El lenguaje definido por SuperWaba, su máquina virtual y el formato de los ficheros clase han sido diseñados de forma tal que sean óptimos para su uso en PDAs. Las características de Java que usaban mucha memoria o que eran innecesarias para los PDA's han sido omitidas en el diseño del lenguaje y su máquina virtual.
No hay comentarios.:
Publicar un comentario