Temas y subtemas del curso:1.
Aplicaciones inalámbricas JTWI
2. CLDC 1.0 y 1.1
3. Seguridad para CLDC y MIDP
4. Redes
5. Modelo, entrega, ciclo de vida y provisión de aplicaciones
6. Almacenamiento persistente MIDP
7. Registro Push
8. API MIDP de interfaz con el usuario
9. API MIDP para juegos
10. Medios usando MIDP 2.0 y el API de media móvil 1.1 (MMAPI)
11. API de mensajes inalámbricos (WMA)
Objetivos específicos
de aprendizaje:1. Aplicaciones inalámbricas JTWI
1.1 Identificar los objetivos y características de la especificación
JTWI, incluyendo las especificaciones obligatorias, las especificaciones condicionalmente
requeridas, y la configuración mínima. Comparar similitudes y
diferencias entre JTWI con otras tecnologías inalámbricas de Java.
1.2 Desarrollar aplicaciones transportables que sean compatibles con los requerimientos y restricciones que un programador de aplicaciones debe seguir con el fin de garantizar la compatibilidad con dispositivos JTWI, incluyendo recursos mínimos, resolución de reloj, y el uso de nombres MIME preferidos según se aplique para CLDC 1.0/1.1, MIDP 2.0, WMA 1.1 y MMAPI 1.1.
2. CLDC 1.0 y 1.1
2.1 Identificar enunciados correctos e incorrectos o ejemplos sobre los requerimientos
y alcance de la especificación CLDC, incluyendo diferencias entre las
versiones 1.0 y 1.1.
2.2 Describir la manera que la máquina virtual CLDC se adhiere o no la especificación del lenguaje Java (JLS) y a la especificación de la máquina virtual de Java (JVM).
2.3 Identificar enunciados correctos e incorrectos o ejemplos sobre clases CLDC, incluyendo aquella derivadas de J2SE, y las específicas a CLDC. Identificar qué clases del núcleo de J2SE no se incluyen en CLDC, o tienen un comportamiento distinto (por ejemplo java.lang.String, las clases de E/S, etc.).
2.4 Manejar correctamente excepciones, dadas las diferencias y limitaciones del manejo de errores/excepciones en dispositivos CLDC.
2.5 Escribir código que administre de forma efectiva la memoria a través del recolector de basura.
3. Seguridad para CLDC y
MIDP
3.1 Dada una serie de requerimientos, diseñar y construir aplicaciones
que cumplan con seguridad a nivel de aplicación de acuerdo a la especificación
CLDC, incluyendo el modelo de caja de arena.
3.2 Identificar enunciados
correctos e incorrectos o ejemplos sobre MIDlet suites que no sean de confianza.
3.3 Explicar cómo funcionan las autorizaciones y permisos de seguridad
para un MIDlet suite de confianza, incluyendo su proceso de firma.
3.4 Explicar los requerimientos y el proceso para usar autentificación X.509 PKI para MIDlet suites.
4. Redes
4.1 Escribir código usando el marco de conexión genérica
especificado por CLDC, reconociendo sus características, uso, clases
e interfaces. Esto puede incluir identificar la jerarquía de clases y
las relaciones del marco de conexión genérica.
4.2 Escribir código para interconexión de redes MIDP 2.0, tomando en consideración las características y limitaciones relacionadas con HTTP, HTTPS y sockets TCP/IP y datagramas, reconociendo qué conexiones son obligatorias y cuales opcionales, así como comparar los elementos propios de TCP/IP y datagramas UDP.
4.3 Escribir código usando las clases MIDP 2.0 del paquete javax.microedition.io, incluyendo código que abra, cierra y use conexiones de red, considerando las implicaciones de operaciones de red bloqueantes, esquemas, número limitado de conexiones y codificación de caracteres.
4.4 Dado el planteamiento de un problema, indicar cómo corregir dificultades asociadas a la red para MIDP 2.0.
5. Modelo, entrega, ciclo
de vida y provisión de aplicaciones
5.1 Explicar lo que la especificación garantiza con respecto a: navegación
en MIDlet suites, transferencia de MIDlet suites, uso de HTTP, registros Push,
autentificación BASIC, instalación y actualización de MIDlet
suites, invocación de MIDlet suites, y eliminación de MIDlet suites.
5.2 Identificar enunciados correctos e incorrectos o ejemplos sobre el modelo de aplicación de MIDP, incluyendo: el ambiente de ejecución de MIDP, MIDlet suites, empaquetado de MIDlet suites (incluyendo el manifiesto y el descriptor de aplicación), descubrimiento de servicios disponibles en el dispositivo, y descubrimiento de las versiones de MIDP/CLDC del dispositivo.
5.3 Desarrollar aplicaciones que reflejen correctamente el ciclo de vida de una aplicación MIDlet, incluyendo: el propósito de la clase MIDlet, comunicación con el software de administración de aplicación, API de peticiones de plataforma, estados y transiciones válidas de los MIDlets, y el comportamiento que debe y no debe implementarse dentro de los diferentes métodos del ciclo de vida (incluyendo el constructor).
5.4 Emplazar una aplicación
MIDP 2.0 usando correctamente los archivos JAD y manifiestos.
5.5 Dada una falla en la instalación, analizar el problema y desarrollar
posibles soluciones.
5.6 Dada una serie de requerimientos, desarrollar aplicaciones que implementen
de manera correcta el soporte de MIDP 2.0 para actividades postergadas o programadas
usando temporizadores y threads de fondo.
6. Almacenamiento persistente
MIDP
6.1 Desarrollar código que implemente correctamente el manejo, compartimiento
y remoción de RecordStores en MIDlet suites.
6.2 Desarrollar código que implemente correctamente el añadir, recuperar, modificar y eliminar registros individuales en un RecordStore, convertir registros de RecordStore a un arreglo de bytes y viceversa, e indicar las implicaciones en el desempeño.
6.3 Identificar enunciados correctos e incorrectos sobre el filtrado, comparación, manejo de eventos y enumeración de registros dentro de un RecordStore.
7. Registro Push
7.1 Explicar los beneficios del Registro Push de MIDP 2.0, sus limitaciones
y describir su uso en aplicaciones.
7.2 Desarrollar aplicaciones que correctamente usen el Registro Push MIDP 2.0
incluyendo descubrimiento, dinámicos vs estáticos, y reconocimiento
de los tipos de conexiones que pueden y no pueden ser aceptadas.
8. API MIDP de interfaz
con el usuario
8.1 Dado un escenario, desarrollar interfaces de usuario que cumplan con MIDP
2.0, reconociendo requerimientos y limitaciones de portabilidad, y situaciones
de desempeño.
8.2 Discutir el API MIDP de interfaces de usuario de alto nivel, incluyendo concurrencia, portabilidad, estructura del API, y el rol que juega con el administrador de aplicaciones.
8.3 Explicar el API MIDP de interfaces de usuario de bajo nivel, incluyendo soporte para fuentes, repintado, y el sistema de coordenadas.
8.4 Dada una serie de requerimientos, desarrollar código con interfaces de usuario interactivo para MIDP 2.0 que incluya manejo adecuado de eventos (usando el API de alto y bajo nivel, repintado y manejo de threads).
8.5 Identificar enunciados correctos e incorrectos o ejemplos sobre las clases (incluyendo la jerarquía de clases) del paquete javax.microedition.lcdui.
8.6 Comparar y contrastar los APIs de alto y bajo nivel, incluyendo las técnicas de distribución de componentes visuales.
8.7 Explicar requerimientos, detalles, jerarquía de clases y relaciones entre elementos y pantallas.
9. API MIDP para juegos
9.1 Dado un escenario, desarrollar código usando el API de juegos MIDP
para mejorar el desempeño y reducir el tamaño de la aplicación.
9.2 Comparar y contrastar
el uso de la clase GameCanvas con el Canvas de bajo nivel de MIDP.
9.3 Dada una serie de requerimientos, desarrollar código usando la clase
LayerManger de MIDP.
9.4 Dado una serie de requerimientos, desarrollar código usando las clases
Layer, Sprite y TiledLayer de MIDP.
10. Medios usando MIDP 2.0
y el API de media móvil 1.1 (MMAPI)
10.1 Dada una seria de requerimientos, desarrollar código de soporte
de MMAPI para la generación de tonos.
10.2 Dada una serie de requerimientos, desarrollar código que use correctamente
el soporte de MIDP de sonido para reproducir audio, generación de tonos,
control de medios, y capacidades de medios usando objetos de tipo Manager, Placer
y Control, reconociendo las diferencias entre elementos opcionales y obligatorios.
10.2 Desarrollar código que use el soporte MMAPI para reproducir y grabar medios, incluyendo el uso de objetos de tipo DataSource, Player y Manager, soporte para audio y captura y reproducción de video, consulta de propiedades del sistema, reconociendo las diferencias entre elementos opcionales y obligatorios.
10.3 Identificar enunciados correctos e incorrectos o ejemplos sobre la jerarquía de clases de medios en MIDP 2.0 y MMAPI 1.1.
11. API de mensajes inalámbricos
(WMA)
11.1 Describir el soporte básico de WMA para enviar y recibir mensajes,
y el framework genérico de conexión.
11.2 Explicar el soporte de WMA para SMS y Cell Broadcast.
11.3 Identificar enunciados correctos e incorrectos o ejemplos sobre WMA, incluyendo
el esquema de direccionamiento, conexiones de cliente vs servidor, excepciones,
seguridad, limitaciones en el tamaño de mensajes, creación y envío
de mensajes, recepción síncrona y asíncrona de mensajes,
y la relación entre WMA y Registro Push.
Metodología de enseñanza:ñanza
Tiempo estimado de cada tema:Tema 1: 5
Tema 2: 4
Tema 3: 4
Tema 4: 4
Tema 5: 4
Tema 6: 4
Tema 7: 4
Tema 8: 4
Tema 9: 4
Tema 10: 4
Tema 11: 4
Políticas de evaluacion
sugeridas:Acreditación del Examen de Certificación 40%
Proyectos 30%
Exámenes por Tema 10%
Exámenes parciales 20%
Total 100%
Libro de texto1:"J2ME:
The Complete Reference"
JAMES KEOGH
McGraw-Hill Osborne Media
First Edition, 2003.
Libro de texto2:"Wireless Java: Developing with J2ME"
JONATHAN KNUDSEN
APress
Second Edition, 2003.Libro de Texto 2
Libro de texto3:"Java
2 Micro Edition"
JAMES WHITE, DAVID HEMPHILL, DAVID HEMPHILL
Manning Publications Company
First Edition, 2002.
Libro de consulta:
\0Material de apoyo:Ambiente integrado de desarrollo para Java con soporte para
desarrollar aplicaciones móviles usando J2ME. Emuladores de dispositivos
móviles.
Perfil del Profesor:Profesor
con Maestría en Ciencias Computacionales que cuente con las certificaciones
SCJP y SCMAD.
Fecha de la última actualización: 01 de septiembre de 2004(M)