DESARROLLO DE APLICACIONES EN J2ME

Anuncio
ALTERNATIVAS PARA EL DESAROLLO DE APLICACIONES EN J2ME
J2ME es una plataforma que permite desarrollar aplicaciones para dispositivos
con recursos bastantes limitados tales como Palm, teléfonos celulares,
buscapersonas, PDA’s, etc. Las aplicaciones de última generación comprenden
tecnologías tales como JINI, Web Services, etc., por lo tanto se abordarán
estos temas para el desarrollo de este tipo de aplicaciones.
Para el desarrollo de aplicaciones en dispositivos móviles han existido muchas
plataformas como KJava, Personal Java, J2ME-CLDC, J2ME-CDC, entre otras.
KJava
Es la extensión del Perfil MIDP para dispositivos Palm, esta API provee un
número amplio de GUI de usuario tales como CheckBox, RadioButton,
TextBox, List, etc. Adicionalmente proveen la clase Spotlet la cual es usada
para manejo de eventos e incluye algunos llamados al sistema operativo Palm
OS y atrapar eventos realizados con el lápiz óptico [1]. También tiene un API
que permite el acceso a la base de datos de la Palm, pero estos accesos se
realizan de una manera muy primitiva, enviando y obteniendo arreglos de
bytes, indexados por un id de registro. Con esta API se puede acceder a la
base de datos de clases de la KVM y poder insertar, modificar, remover y
modificar el bytecode de algunas clases que se encuentren instanciadas; esta
es una forma de poder escribir un classloader sobre CLDC pero no es la forma
más elegante. Sobre este API se desarrollo una implementación de AWT para
la KVM, este ofrece un API muy similar al que provee J2SE para desarrollar
GUI de usuario. Permite el manejo de layouts, listeners para los componentes,
botones, paneles, etc. Este API dejó de ser soportado por Sun, y fue absorbido
por la especificación MIDP para Palm OS.
MIDP-Palm OS
Es un API que hace parte de la plataforma J2ME desarrollado para dispositivos
Palm OS totalmente compatible con la especificación MIDP 1.0, permite a estos
dispositivos ejecutar aplicaciones Java al igual que un teléfono celular. Las
aplicaciones desarrolladas para los dispositivos Palm deben ser empaquetadas
en archivos de tipo PRC a diferencia de las aplicaciones básicas J2ME las
cuales vienen empaquetadas en la pareja de archivos JAR/JAD, por lo tanto
esta implementación de MIDP viene con una herramienta que permite convertir
estos archivos jad y jar en archivos ejecutables prc. Este API es totalmente
compatible con las especificaciones CLDC 1.0 y MIDP 1.0 [2].
PersonalJava
Es un entorno optimizado enfocado en dispositivos electrónicos con
capacidades gráficas y de conectividad tales como PDAs, Webphones, etc.
PersonalJava consiste en una Java Virtual Machina la cual es una versión
reducida de la JVM 1.1, y un API el cual proviene de la versión 1.1. de J2SE.
PersonalJava introduce un gran número de optimizaciones con respecto a
J2SE, las cuales son el uso reducido de memoria, adaptación de GUI de
usuario a diferentes pantallas, se divide el API en paquetes principales tales
como awt, net, etc., y paquetes opcionales tales como RMI y SQL los cuales
deben ser soportados por el proveedor del dispositivo. A partir de 1999
PersonalJava fue absorbido por la especificación completa de J2ME [3].
Jini
Jini es una tecnología que tiene la finalidad de soporta la distribución de
servicios distribuidos a través de distintos ambientes. Hoy en día existen
muchos problemas como lo son las conexiones intermitentes, la latencia de las
redes, anchos de banda variables, inseguridad en las redes, topologías de
redes variables y costos de comunicación elevados. Jini aborda estos
problemas definiendo mecanismos que soportan la federación de máquinas o
programas en un sistema distribuido. Los dispositivos que participan pueden
entrar y salir en cualquier momento según sus propios intereses. Además, le
pueden ofrecer servicios y recursos a otros dispositivos dentro de la federación.
El servicio puede ser cualquier cosa que pueda ser ofrecida por un dispositivo
de red computacional, incluyendo acceso a la red, procesamiento,
almacenamiento, recursos físicos e información [SmL02].
Los dispositivos tienen la capacidad de descubrir y utilizar estos servicios
provistos por miembros de la federación. Esto se puede realizar por medio de
los siguientes mecanismos [SmL02]:
-
-
-
-
-
Lookup: Este es un servicio de Jini que mapea interfaces indicando
la funcionalidad ofrecida por un servicio que es implementado por
una serie de objetos.
Discovery: El proceso para encontrar el servicio de Lookup
adecuado se llama Discovery.
Join: Una vez se encontró el servicio de Lookup adecuado, un
servicio puede unirse a ese servicio de Lookup. Existe un protocolo
definido que permite esto.
Leasing: se conoce como el servicio de prestar un recurso por un
periodo de tiempo indicado. La duración de este préstamo puede ser
establecida por quien provee el servicio o puede ser negociada.
Transactions: Una transacción es el mecanismo mediante el cual se
garantiza que la prestación de un servicio es consistente y es
completado en su totalidad dentro de la federación. La transacción
permite agrupar una serie de operaciones de tal forma que todas
sena completadas o no se haga ninguna en caso de fallo.
Events: un objeto que reside en un dispositivo puede notificar que
está interesado en la ocurrencia de algún evento en otro objeto que
resida en un dispositivo distinto. Si el evento ocurre, el objeto es
notificado.
JMatos
JMatos es la implementación de Jini de PsiNaptic que le permite a los
desarrolladores de software y a los fabricantes de equipos (OEM, Original
Equipment Manufacterers) implementar aplicaciones distribuidas en
dispositivos con limitaciones de recursos. Esta tecnología permite no sólo que
esta clase de dispositivos participen en federaciones de Jini, sino que además
puedan ofrecer sus servicios en la red que se encuentran [PsN01]. Para lograr
esto, JMatos cuenta con la siguiente arquitectura:
Figura 4.1 arquitectura de JMatos [PsN01]
JMatos es 100% compatible con Jini, lo que permite poder aprovechar todas
las ventajas tecnológicas que esta última ofrece. Es diferente a la versión
surrogate de Jini ya que no asume nada acerca del acceso a la red.
Dispositivos móviles pueden crear redes de área personal desconectadas y
ofrecer sus servicios ahí, sin requerir un acceso a una red más amplia. Además
no está basado en RMI aunque se puede soportar clientes que efectúen
operación vía RMI. Aún así, JMatos es totalmente transparente con otros
servicios que utilizan Jini [PsN01].
JMatos se basa en dos principios básicos. El primero especifica que un servicio
de Lookup (LUS, Lookup Service) en un dispositivo está intrínsecamente
relacionado con la identidad del dispositvo. Por ejemplo un monitor de corazón
EGK ofrece servicios relacionados con su propósito (proveer información
cardiaca del paciente), pero no ofrece otra clase de servicios como la tasa de
cambio actual. El segundo principio dice que el LUS reside en un dispositivo
con menos capacidad que el dispositivo que usa sus servicios [HaSt01].
1. http://www.onjava.com/pub/a/onjava/2001/03/15/java_palm.html
2. http://java.sun.com/products/midp4palm/
3. http://www.microjava.com/articles/perspective/personaljava_j2me?conte
nt_id=1440
Descargar