J2ME (Java to Micro Edition)



Documentos relacionados
INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES

J2ME ENTORNO DE EJECUCIÓN. Un entorno de ejecución determinado de J2ME se compone entonces de una selección de:

>> Programación de dispositivos móviles.

DIRECCIÓN REGIONAL DE EDUCACIÓN PUNO INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO MACUSANI

Capítulo 5 Introducción al Desarrollo de Aplicaciones Móviles usando J2ME

Taller de Programación de Dispositivos Móviles. José Miguel Rubio L. Oficina

Lic. Sofia J. Vallejos

J2ME Programando un cronómetro para nuestro celular

Java TM MicroEdition -Conceptos Básicos-

Sistema Web con Acceso a Bases de Datos Multiplataforma a Través de Teléfonos Celulares

Implementación de tecnologías móviles para celular en una biblioteca universitaria

1. INTRODUCCIÓN Y OBJETIVOS

Sebastián García Galán

Programación para sistemas en red IV. Conceptos básicos II

picojava TM Características

Tópicos Selectos de Programación

ESCUELA POLITÉCNICA DEL EJÉRCITO

UNIVERSIDAD DE SALAMANCA

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Java, JavaME y el entorno Eclipse - Ejercicios

JAVA EE 5. Arquitectura, conceptos y ejemplos.

APLICACIONES MÓVILES NATIVAS. Sesión 8: Arquitectura de las aplicaciones Android

CAPÍTULO 3:J2ME Introducción

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Desarrollo de Aplicaciones Móviles. Java

Tema 1. Introducción a JAVA

SISTEMAS DE INFORMACIÓN II TEORÍA

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Entre los más conocidos editores con interfaz de desarrollo tenemos:

INF 473 Desarrollo de Aplicaciones en

Capítulo 5. Cliente-Servidor.

Programación de Dispositivos Móviles Conceptos de J2ME

Evaluación de Alternativas de Comunicacion entre PC- Teléfono Móvil sobre Java

Windows Server 2012: Infraestructura de Escritorio Virtual

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

PROYECTO PROPIO Ciclo Formativo Grado Superior en Desarrollo de Aplicaciones Multiplataforma y Programación de Juegos para Dispositivos Móviles

Capítulo I. Marco Teórico

ARQUITECTURAS CLIENTE/SERVIDOR

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

1 EL SISTEMA R/3 DE SAP AG

Arquitecturas cliente/servidor

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Capitulo 3. Test Driven Development

Capitulo 1: Plataforma Android

Java en 2 horas. Rodrigo Santamaría

Tema 2: La Tecnología Java

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Alfresco permite su integración y personalización en sistemas de gestión documental para implementar funcionalidades específicas

Ingeniería de Software. Pruebas

PROGRAMACIÓN DE APLICACIONES PARA ANDROID. 30 horas 45 días

COLEGIO COMPUESTUDIO

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

EXPERTO EN DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES

Seminario de Java. Contenido

DEPARTAMENTO DE INGENIERÍA TELEMÁTICA UNIVERSIDAD CARLOS III DE MADRID SOFTWARE EN DISPOSITIVOS MÓVILES. Celeste Campo.

Scientia Et Technica ISSN: Universidad Tecnológica de Pereira Colombia

Tema 1. Introducción a Java EE

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

TRANSFERENCIA DE FICHEROS FTP

Capitulo 4. JavaFX. Se da a conocer la plataforma de desarrollo JavaFX, los niveles en el cual se encuentra

Conceptos básicos de redes TCP/IP

Capas del Modelo ISO/OSI

Capitulo 5. Implementación del sistema MDM

Beneficios estratégicos para su organización. Beneficios. Características V

Programación para sistemas en red IV. Manejo de gráficos

SUPLEMENTO EUROPASS AL TÍTULO

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Capítulo 3 Instalación de OMNET

Digifort Mobile Manual Version 1.0 Rev. A

TABLA DE CONTENIDOS. Dedicatoria. Agradecimientos. Tabla de Contenidos. Índice de Figuras. Índice de Tablas. Resumen. Abstract

Modelo de Objetos Distribuidos

GATEWAYS COMO FIREWALLS

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Tema 4.1: - TRANSPORTE-

J2ME. CDC, CLDC y MIDP Java para dispositivos con capacidad limitada

OLIMPO Servidor Universal

Describir una metodología sistemática de análisis de los procesos organizacionales y cómo estos pueden ser apoyados por las TI.

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

Linksys (PAP2) Adaptador para Terminal Analógico $

TEMA 1. Introducción

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Formación a distancia de EXPERTO EN PROGRAMACIÓN EN JAVA

Activación de un Escritorio Remoto

TITULO: SERVICIO DE INFORMACIÓN A TRAVÉS DE UNA RED DE PUNTOS DE INFORMACIÓN ELECTRÓNICA EN ESPACIOS PÚBLICOS DE LA CIUDAD DE MADRID

COMUNICACIÓN ENTRE PROCESOS SOCKETS

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

Transcripción:

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors J2ME (Java to Micro Edition) (Seminaris de CASO) Autors José Antonio Carmona Gallardo Valentí Moncunill González

Introducción J2ME es la versión del lenguaje java orientada al desarrollo de aplicaciones para dispositivos con capacidades limitadas en el apartado gráfico, procesamiento y memoria (PDA s, móviles, etc.). 2

La plataforma Java 3

Componentes J2ME está constituido por: Una Máquina virtual (Kilo Virtual Machine) que se encarga de ejecutar el bytecode de las clases java. Conjuntos de clases básicas o Configuraciones, orientadas a conformar el corazón de las implementaciones para dispositivos con características específicas. Librerías Java o Perfiles, destinadas a implementar funcionalidades de más alto nivel 4

La máquina virtual KVM Es la más pequeña de las desarrolladas por Sun hasta el momento. Requiere entre 50 y 80 KB de memoria para una configuración estándar y en principio, un máximo de 180 KB (contando la memoria dinámica en ejecución). 5

Configuraciones Connected Limited Device Configuration (CLDC): Destinada a cubrir las necesidades de pequeños aparatos con limitaciones. Utiliza la KVM, preparada para microprocesadores de 16/32 bits y pocos Kb de memoria (problema: no se puede utilizar los formatos double y float y su emulación es muy costosa). Connected Device Configuration (CDC): La CDC está orientada a dispositivos con cierta capacidad computacional y de memoria (necesita 2Mb de memoria). CDC usa una Máquina Virtual Java similar en sus características a una de J2SE, pero con limitaciones en el apartado gráfico y de memoria del dispositivo. 6

Perfiles (Profiles) Un perfil añade las clases específicas para cada una de las configuraciones de J2ME. El más extendido es el MIDP (Mobile Information Device Profile), diseñado para funcionar con CLDC 7

Mobile Information Device Profile (MIDP) Las clases que contiene este perfil son: javax.microedition.midlet: se ocupa del ciclo de vida de la aplicación javax.microedition.lcdui: interfaz de usuario javax.microedition.rms: sistema de mantenimiento de registros (Record Management System) usado para guardar información javax.microedition.io: clases para usar redes java.lang: clases de lenguaje java.util: clases de utilidades 8

El ciclo de vida del MIDP Está bien definido y ayuda al MIDlet (aplicación) a coexistir con otros programas en el MIDP. Sus fases son: Recuperación: se consigue la aplicación desde la fuente (IRDA, Bluetooth, INET, etc.). Instalación: la aplicación se instala en el MID. La implementación de MIDP verifica que no viola la seguridad del MID. Lanzamiento: ejecución de el MIDlet en la KVM. Gestión de la versión: permite el control de versiones de los MIDlets, así como su actualización. Borrado: el MIDlet es eliminado del dispositivo. 9

Aplicaciones MIDP: MIDlets Un MIDlet es una aplicación escrita especialmente para el perfil MIDP de J2ME Se organizan en ficheros.jar, que contienen la aplicación en si, el resto de ficheros necesarios para que ésta funcione (imágenes, sonidos, etc.) el descriptor y el manifiesto: Manifesto: contiene una descripción del contenido del fichero (nombre, versión, etc) y una entrada por cada MIDlet que compone la aplicación. Descriptor: proporciona la información requerida por el Application Management Software (programa que gestiona las descargas de aplicaciones) para comprobar si la aplicación se puede ejecutar en el dispositivo. 10

Aplicaciones MIDP: MIDlets (2) El MIDlet es una clase que extiende la clase del MID: javax.microedition.midlet. Un MIDlet permanente debe ser descargado y escrito en el almacenamiento persistente del MID (ROM o EEPROM). Un usuario puede ejecutar el MIDlet repetidamente sin necesidad de volverlo a descargar. Una aplicación para MID tiene las siguientes propiedades: Está concebida para un dispositivo con unas características específicas). Se instala, interactua y se borra, por ejemplo decargándolo via redes inalambricas desde un servidor web. 11

Aplicaciones MIDP: 12

Aplicaciones MIDP: Métodos básicos startapp(): activa la aplicación. El método setcurrent() debería ser llamado aquí si no fue llamado antes. setcurrent() define que display será visible al usuario, ya que solo un display puede ser visible al mismo tiempo. pauseapp(): pausa la aplicación, cuando una aplicación es reactivada, puede aparecer con otro display usando el método setcurrent(). destroyapp(): libera y destruye todos los recursos usados por la aplicaciones, incluidos los componentes del interfaz de usuario. 13

El ciclo de vida del MIDlet NOTA: Este ciclo de vida exige la preverificación o emulación del programa antes de su ejecución en el dispositivo. 14

Comunicación y Redes MIDP presenta una implementación del protocolo HTTP, que puede ser usada para realizar conexiones a Internet y redes usando TCP/IP y otros protocolos que no usan IP, como WAP o I-mode usando un gateway que facilita su acceso a servidores http. Gracias al CLDC Generic Connection Framework, MIDP soporta la tecnología cliente/servidor y el uso de datagramas. MIDP 1.0 solo implementa el protocolo HTTP 1.1. Aunque el teléfono pueda usar sockets, MIDP 1.0 no tiene esta opción, así que habría que desarrollar nuestra propia clase. La versión MIDP 2.0 contiene una implementación de sockets y datagramas. 15

Comunicación y Redes Generic Connection Framework Generic Connecition Framework hace uso de la clase Connector para abrir o crear una conexión a Internet: HTTP: Connection hc = Connector.open("http://www.fib.upc.es") Socket: Connection sc = Connector.open("socket://localhost:9000") Datagram Connection dc = Connector.open("datagram://http:// www.fib.upc.es:9000") Puerto Serie: Connection cc = Connector.open("comm:0;baudrate=9000") Fichero I/O: Connection fc = Connector.open("file:/archivo.dat") 16

Ejemplo: ConsultarHora.java Ejemplo de un MIDlet que establece una conexión utilizando sockets con el servidor time.nist.gov para consultar la hora. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.io.*; import java.io.*; public class ConsultarHora extends MIDlet implements CommandListener { private Command exitcommand; private Display display; public ConsultarHora() { display = Display.getDisplay(this); exitcommand = new Command("Exit", Command.SCREEN, 1); } 17

Ejemplo: ConsultarHora.java (2) public void startapp() { StringBuffer stringhora = new StringBuffer(); SocketConnection client; try { client = (SocketConnection) Connector.open("socket://time.nist.gov:13"); InputStream is = client.openinputstream(); int c = 0; while((c = is.read())!= -1) { stringhora.append((char) c); } is.close(); client.close(); } catch(ioexception e) {} 18

Ejemplo: ConsultarHora.java (3) } TextBox t = new TextBox("Hora", stringhora.tostring(), 256, 0); t.addcommand(exitcommand); t.setcommandlistener(this); display.setcurrent(t); public void pauseapp() { } public void destroyapp(boolean unconditional) { } public void commandaction(command c, Displayable s) { if (c == exitcommand) { destroyapp(false); notifydestroyed(); } } } 19

Ejemplo: ConsultarHora.java () Resultado de la ejecución: 20

J2ME: pros y contras Pros: Admite las infraestructuras ya existentes (compatible con la tecnología WAP) y es compatible con los protocolos estándar de transmisión de datos TCP/IP, UDP, IMAP (mail). Flexibilidad: una vez programada, la aplicación puede funcionar sobre una amplia variedad de dispositivos. Interfaz: las aplicaciones ofrecen mejoras en el aspecto gráfico (colores, animaciones, menús desplegables). Contras: Exige la preverificación o emulación del código para prever las excepciones que se puedan producir antes de la ejecución. Es misión del programador liberar la memoria, ya que no se dispone de un Garbage Collector 21

Bibliografia Página de SUN http://java.sun.com/j2me/index.jsp Java a tope: J2ME (http://www.lcc.uma.es/~galvez/j2me.html) Dpto. de Lenguajes y Ciencias de la Computación: E.T.S. de Ingeniería Informática: Universidad de Málaga Otras páginas de referencia: http://psoler.8m.net/j2me/indexj2me.html http://www.todosymbian.com http://www.microjava.com http://www-106.ibm.com/developerworks/java/library/j-j2me/ 22