INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
Cs95066. Taller de Certificación en Desarrollo de Aplicaciones Móviles

Departamento académico:CS
Unidades:3-0-8
Requisito:
Semestre y carrera:
Equivalencia:VA00802, VA00803, VA00804
Objetivo general de la materia:Dotar al alumno de los conocimientos y habilidades necesarias para poder llevar a cabo exitosamente el proceso de certificación de Sun Microsystems como desarrollador de aplicaciones móviles para la plataforma Java 2, Micro Edition (J2ME).

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)