Download Internet Movil - Tecnologia y Aplicaciones (J2ME y WAP).
Document related concepts
no text concepts found
Transcript
Seminario de Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Fecha: 26–Junio -2003 Autores: Julián Molina, Romina Torres Internet Móvil: ¿Cuánto de propaganda, cuanto de verdad? Página 2 1997, Junio: 4 compañías: Motorola, Nokia, Ericsson y Unwired Planet se unen para crear un estándar que lleve servicios de Internet a los usuarios móviles 1998, Abril: Las especificaciones de WAP 1.0 son publicadas 1999, Septiembre. WAP es lanzado al público en medio de una gigantesca campaña publicitaria 2000, Otoño: Nielsen Norman Group conduce un estudio sobre usabilidad de WAP; las conclusiones son desalentadoras 2000, Diciembre: 1.6% de adopción por parte de los usuarios en Europa Occidental Se estima un 10% de adopción para el año 2003 (Fuente: Carl H. Marcussen, Centre for Regional and Tourism Research, www.crt.dk) Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Pero la tecnología evoluciona Página 3 La interfaz, la velocidad de procesamiento y la cantidad de memoria de los dispositivos móbiles aumenta día a día Las redes celulares también aumentan su capacidad de transmisión Un teléfono tecnológicamente avanzado hoy día posee: Interfaz gráfica, 4096 colores 7 MB de memoria 384 kbps (downlink) y 64 kpsd (uplink) Estándares tales como WAP y J2ME se ponen al día de manera de aprovechar los progresos del hardware La Internet Móvil todavía es posible Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Página 4 Parte I: Wireless Application Protocol Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) ¿Qué es WAP? Página 5 WAP: Wireless Application Protocol Especificación abierta que permite a los usuarios tener acceso e interactuar con información y servicios de manera instantánea Controlado por la Open Mobile Aliance (OMA), organización que reúne a los más importantes fabricantes de equipamiento para redes inalámbricas del mundo WAP 1.0 y 1.1 está ampliamente difundido entre los operadores, WAP 2.0 en proceso de adopción Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Infraestructura WAP Página 6 Infraestructura del Operador Applicación WAP Red Celular (GSM, IS-136) Cliente WAP (Browser) WSP/WTP Internet WAP Gateway HTTP Servidor HTTP Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) WML: Wireless MarkUp Language Página 7 Lenguaje para especificar documentos, con soporte de hipertexto, interpretado por el cliente WAP Similar a HTML. Sin embargo, no es un subconjunto WML es XML: Todo tag debe cerrarse Existe un archivo DTD que contiene la definición del WML Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Estructura de un documento WML Página 8 Un documento WML es un “mazo” (Deck), compuesto por una serie de “cartas” (cards) Una carta es una unidad de información. Normalmente, un usuario puede visualizar en su browser solamente una carta Cada carta tiene por lo menos un párrafo de texto (<p> tag) Es posible definir entradas de datos Texto simple (<input> tag) Opción Múltiple (<select> tag) Es posible también que cada carta reaccione a un conjunto predeterminado de acciones de usuario (<do> tag) Al igual que HTML, es posible enviar los datos ingresados por el usuario a una dirección URL para ser procesados (<go> <method> tags) Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) WML: Ejemplo Página 9 <wml> <card> <p> <b>Bienvenido a Survey Servlet</b> </p> <p> Seleccione una Encuesta </p> <p> <anchor title="Fun Survey"> Fun Survey <go href="http://sapi/se/SurveyServlet" method="get"> <postfield name="idUser" value="123"/> <postfield name="idProduct" value="1"/> </go> </anchor> </p> <p> <anchor title="Market Survey"> Market Survey <go href="http://sapi/se/SurveyServlet" method="get"> <postfield name="idUser" value="123"/> <postfield name="idProduct" value="2"/> </go> </anchor> </p> </card> </wml> Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Hacia WAP 2.0: Nuevas características (1) Página 10 WAP Push: Permite que el servidor envíe información hacia el cliente sin que exista un requerimiento previo User Agent Profile: Permite describir las capacidades de los clientes y al usuario especificar preferencias Wireless Telephony Application: Permite a las aplicaciones WAP interactuar con servicios de telefonía (Marcar números de teléfono, terminar una llamada, etc.) External Functionality Interface: Permite generar aplicaciones para ser empotradas en los clientes que interactúan con aplicaciones WAP (Mecanismo análogo al plug-in de los browsers en Internet) Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Hacia WAP 2.0: Nuevas características (2) Página 11 Persistent Storage Interface: Define un conjunto de servicios que permiten almacenar datos en un cliente WAP Multimedia Messaging Service (MMS): Especificación que permite la mensajería de contenido multimedia Provisioning: Este permite estandarizar la manera en que se configura un cliente WAP para operar en una red móvil Pictogram: Permite el uso de imágenes pequeñas, tales como el de una forma consistente Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Hacia WAP 2.0: XHTML y WML 2.0 Página 12 Un browser que cumple con la especificación WAP 2.0 soporta XHTML Mobile profile, un subconjunto del XHTML 1.1 (a su vez basado en HTML 4.0 y XML) WML 2.0 incorpora extensiones a XHTML, de manera de hacerlo compatible con WML 1.0 Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Página 13 Parte II: Java 2 MicroEdition Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Plataforma Java Página 14 Lenguaje de programación Compilado e interpretado: Un compilador Java genera byte-code Una máquina virtual interpreta el byte-code y ejecuta las aplicaciones El byte-code es independiente de la plataforma (HW+sistema operativo), la máquina virtual no El lema de Java es “Write once, run everywhere” (“Escríbalo una vez, ejecútelo donde sea”) Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Arquitectura de la Plataforma Java 2 Java 2 Enterprise Edition Java 2 Standard Edition TV Profile Página 15 Auto Profil e Java 2 Java 2 Micro Edition Micro Edition Smart Card Profile Arquitectura e Implementación de Aplicaciones Inalámbricas HotSpot Card VM CVMMóvil: Tecnología yKVM Internet Aplicaciones (J2ME y WAP) Arquitectura J2ME Página 16 Profiles (Perfiles) Provee soporte para las necesidades específicas de una cierta familia de dispositivos Configuración Plataforma mínima requerida para un grupo de dispositivos Disponibles: Personal Profile Auto TV Profile Profile RMI Profile Foundation Profile Handheld MID Profile Profile J2ME CDC J2ME CLDC CVM KVM CDC CLDC Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Configuración Página 17 Una configuración es una especificación Una configuración define una clase de dispositivos en términos de hardware: tipo y velocidad del procesador, capacidad de memoria, tipo de conectividad en redes Define un mínimo de bibliotecas Java y capacidades de máquina virtual que un desarrollador puede esperar encontrar en todos los dispositivos implementando la especificación de la configuración Una configuración se traduce en una máquina virtual Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Configuraciones CLDC Vs. CDC CLDC Requerimientos de Hardware Qué fue removido con respecto a J2SE: CDC Memoria total disponible: 160 Kbytes a 512 Kbytes. Procesador de 16-bit o 32-bit Bajo consumo de poder (battery empowered) Conectividad con Ancho de banda bajo (Ejemplo: 9600bps) Página 18 Al menos 2MB de ROM + RAM Procesador de 32-bit Conectividad con alta banda ancha, frecuentemente utilizando TCP/IP Ejemplo: high end PDA set-top boxes Teléfonos 3G Soporte punto flotante Interfaz Nativa de Java Class Loaders defidos por el usuario Reflexión Grupos de Threads y daemon Threads Finalización CLDC no soporta: Funcionalidad de interfaz usuario Manejo de eventos Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) ¿Qué son los Profiles? Página 19 Un profile también es una especificación Un profile define un conjunto de clases que extienden una configuración añadiendo una particular funcionalidad Hay profiles para extender CLDC y profiles para extender CDC Un profile puede depender de otro profile para funcionalidad Un profile se traduce en bibliotecas java Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Ejemplos de Profiles Profiles para CLCD: Página 20 MIDP: Mobile information device profile • display y almacenamiento para teléfonos móviles • Conectividad de redes basado en http v1.1. • Código para dispositivos MIDP son denominados “MIDlets” PDAP • Mejor pantalla y más memoria (no implementado) Profiles para CDC: Foundation • Incluye casi completo las clases de java 2 v1.3 Personal Basis Profile • Interfaz de usuario básica RMI profile, Game profile Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) MIDP 1.0 and MIDlets Página 21 Mobile Information Device Profile (MIDP 1.0). MIDP + CLDC = Parte del ambiente Runtime J2ME MIDP 1.0 soporta: Interfaz usuario Almacenamiento persistente (utilizando un modelo de Base de datos orientado al registro) Conectividad de Redes (extiende al framework genérico de conectividad de CLDC) Administración del ciclo de vida Manejo de eventos Paquetes MIDP 1.0: javax.microedition.io javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) MIDP 2.0 Página 22 MIDP 1.0 estabeció un ambiente Java estandar para pequeños dispositivos con conectividad inalámbrica. MIDP 2.0 expande considerablemente en la especificación original con soporte para: Soporte para Https Multimedia • APIs sólo para audio Mejoras a los formularios La API para juegos Soporte para manipulación de imágenes RGB Permisos y firmas de código Paquetes agregados desde 1.0 a 2.0 javax.microedition.lcdui.game javax.microedition.lcdui.media javax.microedition.lcdui.media.control javax.microedition.lcdui.pki Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Aplicaciones de J2ME Página 23 Juegos Mensajería Acceso Remoto a Directorios Aplicaciones Financieras Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Conclusiones Página 24 Los dispositivos inalámbricos están aumentando su capacidad gráfica, de procesamiento y de conectividad a pasos agigantados J2ME, al igual que WAP, está tomando nota de estos avances, y lo está incorporando Estas tecnologías sin duda jugarán un rol muy importante en un futuro próximo: la Internet Móvil todavía está por venir Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Preguntas Página 25 Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP) Gracias ! Esta Presentación está disponible en www.motorola.com/cl/seminario Referencias: Página 26 1. 2. 3. Arquitectura e Implementación de Aplicaciones Inalámbricas Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)