Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
description
Transcript of Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
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
Página 2
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Internet Móvil: ¿Cuánto de propaganda, cuanto de verdad?
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)
Página 3
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Pero la tecnología evoluciona
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
Página 4
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Parte I: Wireless Application Protocol
Página 5
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
¿Qué es WAP?
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
Página 6
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Red Celular (GSM, IS-136)
Internet
Infraestructura WAP
WAP GatewayCliente WAP
(Browser) Servidor HTTP
Applicación WAP
WSP/WTP HTTP
Infraestructura del Operador
Página 7
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
WML: Wireless MarkUp Language
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
Página 8
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Estructura de un documento WML
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)
Página 9
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
WML: Ejemplo
<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>
Página 10
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)
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)
Página 11
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)
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
Página 12
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
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
Página 13
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Parte II: Java 2 MicroEdition
Página 14
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Plataforma Java 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”)
Página 15
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Arquitectura de la Plataforma Java 2
HotSpot CVM KVM Card VM
Java 2Enterprise
EditionJava 2
StandardEdition
TVProfile
Auto Profil
e
Java 2Micro Edition
Java 2 Micro Edition Smart
CardProfile
Página 16
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Arquitectura J2ME
J2ME CDC J2ME CLDC
FoundationProfile
RMIProfile
CVM KVM
PersonalProfile
TVProfile
AutoProfile
HandheldProfile
MIDProfile
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:
CDC
CLDC
Página 17
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Configuración
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
Página 18
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
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)
Qué fue removido con respecto a J2SE:
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
CDC 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
Página 19
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
¿Qué son los Profiles?
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
Página 20
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Ejemplos de Profiles
Profiles para CLCD: 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
Página 21
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
MIDP 1.0 and MIDlets
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
Página 22
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
MIDP 2.0
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
Página 23
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Aplicaciones de J2ME
Juegos Mensajería Acceso Remoto a Directorios Aplicaciones Financieras
Página 24
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Conclusiones
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
Página 25
Arquitectura e Implementación de Aplicaciones Inalámbricas
Internet Móvil: Tecnología y Aplicaciones (J2ME y WAP)
Preguntas
Página 26
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:1.
2.
3.