UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE BLOQUEO Y DESBLOQUEO DE DISPOSITIVOS, UTILIZANDO TECNOLOGÍA GSM APLICADO A UN AUTOMÓVIL TRABAJO DE GRADUACIÓN PRESENTADO POR Marvin Alexander Martínez Rodríguez MR-000051 Carlos José Zelaya Rodríguez ZR-000371 Néstor Iván Zelaya Rodríguez ZR-000286 PARA OPTAR AL GRADO DE Ingeniero en Electrónica Asesor: Ing. Juan Carlos Castro Febrero de 2006 Soyapango – El Salvador – Centro América UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA AUTORIDADES: RECTOR ING. FEDERICO HUGUET RIVERA VICERRECTOR ACADÉMICO PBRO. VÍCTOR BERMÚDEZ, sdb SECRETARIO GENERAL LIC. MARIO RAFAEL OLMOS DECANO DE LA FACULTAD DE INGENIERÍA ING. GODOFREDO GIRÓN DIRECTOR DE ESCUELA DE ELECTRÓNICA ING. OSCAR DURÁN VIZCARRA ASESOR DEL TRABAJO DE GRADUACIÓN ING. JUAN CARLOS CASTRO UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA JURADO EVALUADOR DEL TRABAJO DE GRADUACIÓN Ing. Wenceslao Rivas JURADO Ing. Angel Soriano JURADO Ing. Juan Carlos Cruz Dada JURADO Ing. Juan Carlos Castro ASESOR DEDICATORIAS Este logro es dedicado primeramente a DIOS por todo lo que tengo, por todo lo que soy, por todo lo que hecho y seguiré haciendo, por brindarme a lo largo de mi vida a las personas correctas que me han sabido guiar. Unos de ellos son mis PADRES. Sé que más que un triunfo mío, es un triunfo de ustedes, y esta meta cumplida es el reflejo, por lo que tanto se sacrificaron y les estoy agradecido. Padre se que desde el cielo estás orgulloso de mi. A mis HERMANOS que estuvieron siempre para apoyarme, acompañarme y ayudarme. A mis FAMILIARES, por brindarme sus consejos. A mis AMIG@S por darme su confianza, apoyarme y hacer que levante los ánimos en momentos de preocupación. Y a mi NOVIA, en quien encuentro un apoyo, refugio y fortaleza para seguir adelante. A cada uno de ustedes, le dedico mi logro debido a que han formado parte de mi vida y me han ayudado, ya sea directa o indirecta, en la obtención del mismo. MARVIN ALEXANDER MARTÍNEZ DEDICATORIAS A DIOS TODO PODEROSO por que sin el nada es posible e iluminar cada paso de mi vida, A MIS PADRES Dina Rodríguez de Zelaya y Rodolfo Zelaya por confiar en mi y apoyarme en cada etapa de mi vida, por su cariño y comprensión, les agradezco infinitamente por sus consejos y guiarme en el buen camino, los quiero con todo mi corazón. A MIS HERMANOS, Maria Elena Zelaya, Maria Eugenia Zelaya y Néstor Zelaya, por haberme apoyado y ayudado cada vez que los necesitaba. A MIS FAMILIARES, por apoyarme y mostrarme su cariño e interés, A MIS COMPAÑEROS DE TESIS Y ASESOR, quienes estuvieron conmigo en todos los momentos de esta etapa de mi vida, les agradezco mucho. A MIS AMIGOS: Sería una larga lista, pero todos los que estuvieron en las buenas y malas para apoyarme y salir adelante día a día, les agradezco su amistad y comprensión en todo momento. CARLOS ZELAYA DEDICATORIAS Primeramente a DIOS por permitirme llegar a esta etapa de mi vida; A MI PADRES por haberme apoyado en todo momento y haber tenido confianza en mi de lograr las metas que me propuse, este logro no es solo mío sino también de ellos; A MIS HERMANOS que siempre supieron saber que decir en los momentos difíciles y lograr levantarme el ánimo cuando lo necesité, A MIS AMIGOS Y AMIGAS con los que he compartido tantas experiencias, especialmente aquellos a los que cuando busque siempre estaban allí para darme su apoyo, que me supieron Comprender en Los momentos difíciles y que me tuvieron La Paciencia para escucharme cuando lo necesitaba, A MI ASESOR por habernos encaminado a mi y a mis compañeros de tesis en el desarrollo completo del proyecto, sin su ayuda sin duda este logro no seria posible. En general agradezco a cada persona que de una u otra forma estuvo involucrada con nosotros para que pudiéramos conquistar nuestra meta. NESTOR IVAN ZELAYA i INDICE INDICE .............................................................................................................................. i INTRODUCCIÓN ............................................................................................................ vi OBJETIVOS ................................................................................................................... vii ALCANCES....................................................................................................................viii LIMITACIONES............................................................................................................... ix Capítulo 1: GSM...............................................................................................................1 1.1 Descripción del Capítulo ........................................................................................3 1.2 Historia de GSM [1]............................................................................................3 1.2.1 En el principio (1980-82) ..................................................................................3 1.2.2 Groupe Speciale Mobile (1982-83)...................................................................4 1.2.3 Visión Digital (1984-85) ..................................................................................5 1.2.4 El catalizador político (1986-87).......................................................................6 1.2.5 El memorandum de la comprensión (1986-87) ..............................................7 1.2.6 La visión se convierte en una realidad (1987-88).............................................8 1.2.7 Todos los sistemas despejados (1990-91).......................................................9 1.2.8 Barreras a superar (1991-92).........................................................................10 1.2.9 Empuje de un millón de clientes (1992-93) ....................................................11 1.2.10 Crecimiento y crecimiento (1993-94)............................................................12 1.2.11 Globalización (1995-96) ...............................................................................13 1.3 Fases de GSM [2].................................................................................................14 1.3.1 Fase 1 ............................................................................................................15 1.3.2 Fase 2 ............................................................................................................15 1.3.3 Fase 2+ ..........................................................................................................16 1.4 Componentes de Red GSM [2] ........................................................................16 1.4.1 Componentes del SS (Switching System)......................................................18 1.4.1.1 MSC (Mobile services Switching Center).................................................18 1.4.1.2 Funcionalidad del Gateway .....................................................................18 1.4.1.3 HLR (Home Location Register)................................................................18 ii 1.4.1.4 VLR (Visitor Location Register)................................................................19 1.4.1.5 AUC (AUthentication Center)...................................................................19 1.4.1.6 EIR (Equipment Identity Register) ...........................................................19 1.4.2 Componentes de una BSS (Base Station System) ........................................20 1.4.2.1 BSC (Base Station Controller) .................................................................20 1.4.2.2 Base Transceiver Station (BTS) ..............................................................20 1.4.3 Centros de Monitoreo de Red ........................................................................20 1.4.3.1OMC (Operation and Maintenance Center) ..............................................20 1.4.3.2 NMC (Network Managment Center) ........................................................20 1.4.4 MS (Mobile Stations) ......................................................................................21 Capítulo 2: INTRODUCCION A J2ME............................................................................23 2.1 Descripción del capítulo........................................................................................24 2.2 Análisis comparativo .............................................................................................25 2.3 Nociones básicas de J2ME...................................................................................29 2.3.1 Máquinas Virtuales J2ME...............................................................................30 2.3.2 Configuraciones .............................................................................................34 2.3.3 Perfiles ...........................................................................................................37 2.4 J2ME y las comunicaciones..................................................................................41 Capítulo 3: LOS MIDLET Y LA CONFIGURACION CLDC.............................................44 3.1. Descripción del capítulo.......................................................................................45 3.2 Los Midlets............................................................................................................46 3.2.1 El Gestor de Aplicaciones ..............................................................................46 3.2.1.1 Ciclo de vida de un MIDlet.......................................................................46 3.2.1.2. Estados de un MIDlet en fase de ejecución............................................48 3.2.1.3. Estados de un MIDlet .............................................................................48 3.2.2. Estructura de los MIDlets ..............................................................................50 3.3 La Configuración CLDC........................................................................................51 3.3.1 Objetivos y requerimientos.............................................................................51 3.3.1.1 Objetivos..................................................................................................52 3.3.1.2 Requerimientos........................................................................................53 3.3.2 Seguridad en CLDC .......................................................................................54 iii 3.4 Dispositivos actuales que soportan J2ME [4] .......................................................55 Capítulo 4: MENSAJERIA INALAMBRICA: SMS ...........................................................58 4. 1 Descripción del capítulo......................................................................................59 4.2 Servicio de Mensaje Corto (SMS)........................................................................59 4.2.1 Definición [5] ..................................................................................................59 4.2.2 Arquitectura SMS [6] ......................................................................................60 4.2.3 Canales de control (medio de transporte del SMS) [5]...................................61 4.2.4 El Futuro del SMS [6] .....................................................................................62 4.3 Interface de Programa de Aplicación en Mensaje Inalámbrica J2ME (The J2ME Wireless Messaging API, JSR 120) [7] .......................................................................62 4.3.1 Clases de alto nivel en WMA [7]....................................................................64 4.3.2 URLs y conexiones de mensaje [8] ................................................................65 4.3.3 Números de Puerto SMS [8] .........................................................................66 4.3.4 Almacenar y Borrar Mensajes Recibidos SMS [8].........................................67 4.3.5 Tipos de Mensajes SMS [8] ..........................................................................67 4.4 Especificaciones en el WMA dentro del Motorola V600 [8]...................................67 4.4.1 Estructura de Mensaje SMS..........................................................................67 4.4.2 Notificación SMS...........................................................................................68 4.4.3 Característica de mensajería en el V600 .......................................................69 4.4.4 Ejemplo de empleo de métodos en el WMA ..................................................70 Capítulo 5: DISEÑO Y DESARROLLO DE LAS APLICACIONES .................................73 5.1 Descripción del capítulo........................................................................................74 5.2 Diagrama en bloque del sistema a emplear..........................................................74 5.2.1 El MIDlet y el teléfono móvil Motorola V600...................................................75 5.2.2 El Modem GSM y el Microcontrolador............................................................76 5.2.3 Los dispositivos en el vehículo.......................................................................78 5.2.3.1 Notificación de estado (automático).........................................................79 5.2.3.2 Notificación de estado del vehículo por solicitud .....................................79 5.2.3.3 Bloqueo del funcionamiento del vehículo ................................................80 5.3 Diseño del MIDlet: Flujogramas............................................................................81 5.4 Diseño de programa microcontrolador: flujogramas .............................................86 iv 5.5 Codificación de la aplicación SADD......................................................................91 5.6 Codificación en los microcontroladores ..............................................................129 5.6.1 Codificación del microcontrolador de transmisión ........................................129 5.6.2 Codificación del microcontrolador de recepción...........................................150 5.7 Diagrama en bloque del Circuito Microcontrolador .............................................177 5.8 Diseño de diagrama Esquemático del Circuito Microcontrolador........................178 5.9 Diseño del circuito programador del microcontrolador........................................179 Capítulo 6: CARGA DEL MIDLET AL TELÉFONO MÓVIL ..........................................186 6.1 Descripción del capítulo......................................................................................187 6.2 OTA [3] ...............................................................................................................187 6.2.1 Requerimientos Funcionales........................................................................188 6.2.2 Localización de la Aplicación .......................................................................188 6.3 Empleo de cable USB Motorola..........................................................................189 6.3.1 Empleo del P2KTools Mod...........................................................................190 6.3.2 Empleo del Motorola MIDway 2.8 ................................................................191 6.4 Instalación de MIDlets [3]....................................................................................194 6.5 Actualización de MIDlets.....................................................................................195 6.6 Ejecución de MIDlets ..........................................................................................196 6.7 Eliminación de MIDlets .......................................................................................196 Capítulo 7: MANUAL DE USUARIO DE LA APLICACIÓN SADD................................197 7.1 Descripción del capítulo......................................................................................198 7.1.1 Teclas a emplear..........................................................................................199 7.1.2 Indicadores e íconos utilizados en la aplicación SADD................................200 7.2 Funciones del menú SADD.................................................................................201 7.2.1 Ejecutando la aplicación SADD por primera vez..........................................201 7.2.2 Uso de mensajería .......................................................................................203 7.2.3 Menú de configuración .................................................................................204 7.2.3.1 Prueba SMS ..........................................................................................204 7.2.3.2 Password...............................................................................................206 7.2.4 Leer Estados ................................................................................................208 7.2.4 Sistema ........................................................................................................209 v 7.2.4 Funcionamiento del Vehículo .......................................................................210 Capítulo 8: JUSTIFICACIÓN DE LA APLICACIÓN SADD ...........................................213 8.1 Descripción del capítulo......................................................................................214 8.2 Tecnología GSM aplicada a seguridad de automóviles......................................214 8.3 Estadística de robos de automotores asegurados (año 2003–2004)..................215 CONCLUSIONES.........................................................................................................225 RECOMENDACIONES ................................................................................................227 BIBLIOGRAFÍA ............................................................................................................228 GLOSARIO...................................................................................................................230 ANEXO.........................................................................................................................234 Anexo A: Adapador GSM SMS [7]............................................................................235 Anexo B: Hoja técnica del V600 ...............................................................................246 Anexo C: Costo Económico del Proyecto .................................................................248 vi INTRODUCCIÓN Durante los últimos años, las telecomunicaciones en nuestro país se han ido desarrollando grandemente, y la demanda de los servicios ha ido creciendo simultáneamente, es por eso que el desarrollo de nuevas tecnologías y la innovación de otras ya existentes ayudan a mejorar el servicio que se provee a los usuarios de dichas redes. La tecnología GSM ha sido en gran parte, base para el desarrollo de nuevos servicios ya que además de ser un estándar abierto para el desarrollo de aplicaciones ofrece todas las funcionalidades de dichas redes lo cual ha beneficiado no solo a las compañías sino también a los usuarios que hacen uso de estos servicios. En el presente documento, se explica el desarrollo de un prototipo de una nueva aplicación basada en tecnología GSM, en donde, se describe totalmente su desarrollo, implementación y su funcionalidad, el documento consiste básicamente de un marco teórico que antecede el desarrollo de la aplicación, explicando como se desarrollan dichas aplicaciones, los requerimientos de los sistemas que se deben utilizar para poder llevar a cabo el desarrollo con éxito de ellas. Posteriormente se presenta el desarrollo específico de la aplicación, se muestran los pasos desde la programación de dispositivos, diseño de circuitos hasta la implementación de éstos, en conjunto para obtener la funcionalidad requerida. Seguido al desarrollo de la aplicación se presenta el manual de usuario para comprender las funciones que desempeña el sistema y poder configurarlas desde un dispositivo móvil. Finalmente se presenta a manera de justificación un capítulo que contiene un informe estadístico del problema de robo de vehículos en los últimos años en el país, lo cual da la pauta para el desarrollo de dicha aplicación. Debido a la gran demanda de los usuarios de la red de telefonía celular, se hace inevitable el desarrollo de nuevas aplicaciones que puedan contribuir a satisfacer sus necesidades, trayendo provecho tanto a los usuarios finales como a las compañías que las proveen, y así poder llegar a satisfacer dichas necesidades que cada vez con el paso del tiempo se van haciendo mas grandes. vii OBJETIVOS OBJETIVO GENERAL Desarrollar como trabajo de graduación un sistema basado en tecnología GSM para controlar el bloqueo y desbloqueo de dispositivos aplicados a un automóvil, aprovechando de esta manera, todas las ventajas que esta tecnología ofrece. OBJETIVOS ESPECIFICOS • Implementar un sistema que pueda bloquear y desbloquear el funcionamiento del automóvil. • Que el sistema sea capaz de notificar al usuario el estado de los dispositivos instalados en el automóvil. • Desarrollar aplicaciones en lenguaje Java para dispositivos móviles. viii ALCANCES • Se lograría que por medio del móvil se pueda bloquear y desbloquear la funcionalidad del auto dentro del rango de cobertura de la red celular. • Se tendrá conocimiento del estado en que se encuentra el sistema (si el sistema esta activado o desactivado) por medio de una bandera o menú en el terminal móvil. • El sistema debido a que se implementara con tecnología GSM es bastante versátil y abierto por lo que puede ser aplicado en diversas áreas a los cuales es necesario la activación y desactivación de dispositivos como también el conocer el estado de algunas variables dentro de un proceso. • En cuestión de privacidad, el usuario tendrá un código único con el cual se identificara en el sistema, esto hará posible que el usuario haga uso del sistema desde cualquier móvil de manera segura. • Dado que los automóviles ya poseen sensores en diversos puntos aprovecharemos éstos para nuestra aplicación. Utilizaremos como variables los sensores de las puertas y el voltaje de doce voltios conmutado que presenta el sistema eléctrico. Y si en caso el automóvil posea un sistema antirrobo se emplearan los sensores que éste provee. • El propósito del proyecto no es el implementar un servicio, por lo cual no se toman en cuenta criterios relacionados a convenios que deben hacerse entre operadoras de telefonía celular y usuarios. ix LIMITACIONES • El sistema está restringido al alcance de la cobertura que tenga la red celular en el que el móvil esté registrado. • Se considera que existen formas en las que la transmisión y recepción de las señales no pueden llevarse a cabo, lo que conlleva al mal funcionamiento del sistema, como por ejemplo: desconectar la alimentación al sistema, desconectar el módem o la antena de éste, tener apagado el celular, que la red celular no este disponible y otros. • Como el sistema lo que realiza es la activación y desactivación de dispositivos en el automóvil, siendo uno de ellos el que sea capaz de lograr el bloqueo y desbloqueo del funcionamiento del automóvil, esto no imposibilita que de cierta forma mecánica el automóvil siga en movimiento, algo que seria indeseado en alguna emergencia. • Se podría obtener la posición geográfica en la que se encuentra el vehículo, pero las operadoras de red celular mantienen esta información fuera del alcance de los usuarios. • El usuario podrá tener acceso desde cualquier móvil hacia el sistema siempre y cuando pertenezca a la misma red celular y que posea el software de control instalado en el mismo. 1 Capítulo 1: GSM 1.1 Descripción del Capítulo ........................................................................................3 1.2 Historia de GSM [1]............................................................................................3 1.2.1 En el principio (1980-82) ..................................................................................3 1.2.2 Groupe Speciale Mobile (1982-83)...................................................................4 1.2.3 Visión Digital (1984-85) ..................................................................................5 1.2.4 El catalizador político (1986-87).......................................................................6 1.2.5 El memorandum de la comprensión (1986-87) ..............................................7 1.2.6 La visión se convierte en una realidad (1987-88).............................................8 1.2.7 Todos los sistemas despejados (1990-91).......................................................9 1.2.8 Barreras a superar (1991-92).........................................................................10 1.2.9 Empuje de un millón de clientes (1992-93) ....................................................11 1.2.10 Crecimiento y crecimiento (1993-94)............................................................12 1.2.11 Globalización (1995-96) ...............................................................................13 1.3 Fases de GSM [2].................................................................................................14 1.3.1 Fase 1 ............................................................................................................15 1.3.2 Fase 2 ............................................................................................................15 1.3.3 Fase 2+ ..........................................................................................................16 1.4 Componentes de Red GSM [2] ........................................................................16 1.4.1 Componentes del SS (Switching System)......................................................18 1.4.1.1 MSC (Mobile services Switching Center).................................................18 1.4.1.2 Funcionalidad del Gateway .....................................................................18 1.4.1.3 HLR (Home Location Register)................................................................18 1.4.1.4 VLR (Visitor Location Register)................................................................19 2 1.4.1.5 AUC (AUthentication Center)...................................................................19 1.4.1.6 EIR (Equipment Identity Register) ...........................................................19 1.4.2 Componentes de una BSS (Base Station System) ........................................20 1.4.2.1 BSC (Base Station Controller) .................................................................20 1.4.2.2 Base Transceiver Station (BTS) ..............................................................20 1.4.3 Centros de Monitoreo de Red ........................................................................20 1.4.3.1OMC (Operation and Maintenance Center) ..............................................20 1.4.3.2 NMC (Network Managment Center) ........................................................20 1.4.4 MS (Mobile Stations) ......................................................................................21 3 1. GSM 1.1 Descripción del Capítulo El desarrollo y el éxito de GSM ha sido un ejemplo excepcional de la empresa internacional en acción. A continuación encontrará una breve historia de GSM, describiendo cómo surgió y cómo la asociación nació, ha crecido y se ha desarrollado. Esta historia es a partir de 1987 hasta la fecha. Posteriormente, se mostrará la arquitectura de la misma, explicando cada unos de sus principales etapas. 1.2 Historia de GSM [1] 1.2.1 En el principio (1980-82) Mientras que el negocio llegaba a ser cada vez más internacional, el filo de la industria de las comunicaciones se centró en soluciones celulares exclusivamente locales, y ninguno era remotamente compatible con cualquiera de los otros existentes: NMT1 450 en los países nórdicos, TACS2 en el Reino Unido, C-Netz en República Federal de Alemania, Radiocom 2000 en Francia y RTMI/RTMS en Italia. Estos sistemas permitían la comunicación localmente pero no permitían el poder realizar llamadas hacia otras operadoras de países vecinos debido a las diferentes tecnologías que utilizaban. Sin embargo, estaba claro que habría una demanda de extensión para una tecnología que facilitó comunicaciones móviles flexibles y confiables. Pero ésta, en sí mismo era una bomba de tiempo potencialmente mortal que amenazó la durabilidad de las redes celulares de primera generación; el problema era la capacidad o la carencia de ella. Pronto llegó a ser obvio que para los años 90 las redes análogas dispares se derrumbarían bajo la presión de la demanda. 1 Nordic Mobile Telephone 2 Telephone Advanced Cellular System 4 1.2.2 Groupe Speciale Mobile1 (1982-83) También llegó a estar claro a los vigilantes de la industria, que las soluciones localizadas al desarrollo de comunicaciones móviles no tuvieron sentido económico a largo plazo. Dado a los costos desalentadores que hacían frente a operadores y a fabricantes, era esencial poder explotar las economías a escala inherentes en la penetración de mercado global. El beneficio del mercado interior no justificaría simplemente programas sostenidos de la inversión. En un amplio marco como lo es la industria de las comunicaciones, el CEPT2 merece un lugar muy especial en la historia. En 1982, el CEPT abarcaron las administraciones de las operadoras de telefonía móvil de veintiséis países europeos. Digno, pero no intrínsecamente emocionante. Sin embargo, la respuesta decisiva de esta organización a un estudio francogermano que detallaba los problemas que hacían frente a la industria móvil de la comunicación no era nada visionario. Vale la pena recordar que la mayoría de los miembros del CEPT eran monopolios de estados utilizados para considerar el interés nacional como su objetivo primordial. Sin embargo, en este caso su primer paso era reconocer que el futuro económico de la nueva industria confió en niveles hasta ahora sin precedentes de la cooperación Pan-Europea. Con este fin, el CEPT estableció el Groupe Speciale Mobile. Su objetivo era desarrollar la especificación para una red de comunicaciones móvil Pan-Europeo capaz de soportar a los posibles millones de suscriptores, para dar un giro a las comunicaciones móviles en los años venideros. Nadie tenía duda que al establecer tal estándar sería necesario lidiar con los problemas: técnicos, económicos y logísticos. Sin embargo, estaba igualmente claro que las recompensas podrían ser satisfactorias. Pero sobretodo había una voluntad genuina para combinar recursos para alcanzar éxito a largo plazo. 1 Conocido como GSM 2 Conference European Post and Telecommunications 5 1.2.3 Visión Digital (1984-85) Todo estaba muy bien, el mundo comercial que reconocía la exigencia de una solución Pan-Europea a las comunicaciones móviles, pero tal iniciativa también iba a requerir la ayuda de algunos políticos de peso pesado. Afortunadamente, la promoción de CEPT de un sistema unificado tuvo sentido, y en 1984 el proyecto de GSM recibió el endoso de la Comisión de las Comunidades Europeas. Esto tendría implicaciones considerables en los años venideros. En 1985, el crecimiento del compromiso de solución de la crisis llegó a ser evidente cuando la República Federal de Alemania, Francia e Italia firmaron un acuerdo para el desarrollo de GSM. El Reino Unido agregó su nombre al acuerdo el año siguiente. Por este tiempo, el Groupe Speciale Mobile de CEPT podría discutir persuasivamente que los estándares que desarrollaban llevaran a cabo la llave a la solución técnica y económicamente viable. Desde el comienzo, se tenía en mente que en el nuevo estándar era probable emplear tecnología digital en lugar de tecnología análoga y funcionar en la banda de frecuencia 900MHz. La tecnología digital ofreció una combinación atractiva, el funcionamiento y eficacia espectral. Es decir, proporcionaría la transmisión de alta calidad y permitiría a más usuarios utilizar simultáneamente la banda de radio limitada disponible. Además, tal sistema permitiría el desarrollo de características avanzadas como seguridad en las conversaciones y de comunicación de datos. Yendo por el camino digital, también sería posible emplear una escala muy grande de tecnología integrada del silicio. Los microteléfonos podían ser más baratos y más pequeños. También permitirían introducir los primeros terminales hand-held, aun cuando en los comienzos en términos de tamaño y peso estos serían prácticamente indistinguibles a un ladrillo. 6 Finalmente, el acercamiento digital complementó cuidadosamente el Integrated Services Digital Network (ISDN) que eran desarrollados por los sistemas land-based de las telecomunicaciones a través del mundo y con qué GSM tendría que obrar recíprocamente. 1.2.4 El catalizador político (1986-87) El tiempo había llegado para que GSM busque algo más substancial que el endoso de los políticos. La acción fue requerida, no menos porque los bloques de la frecuencia que se empleará por el nuevo estándar eran encajados a presión por las redes análogas. En conclusión, la solución del GSM estaba bajo amenaza incluso antes de emerger. Afortunadamente, por 1986 la crisis inminente de la capacidad excesiva había comenzado a alarmar a la Comunidad Europea, la demanda comenzaba a observarse, incluso las proyecciones más optimistas. Y la defensa del Groupe Speciale Mobile de la tecnología celular digital estaba a la mano para ofrecer la luz en el extremo del túnel. Sin embargo, para que la visión se convierta en una realidad, los fabricantes tuvieron que ser convencidos de que el proyecto tenía un futuro. La presión de países como Francia y República Federal de Alemania animó a la Comisión de las Comunidades Europeas que limitará la situación a los jefes de los Estados miembros en una reunión en diciembre de 1986. El resultado era una recomendación y un directorio que entre ellos puso las fundaciones políticas para el desarrollo de GSM. La recomendación delineó una introducción coordinada de GSM que se apoyará por el EEC1. Se programó para un lanzamiento de un sistema limitado de servicios antes de 1991. La directiva se aseguró de que cada Estado miembro reservara los bloques de la frecuencia 900MHz requeridos para el programa de 1 EEC: End-Entity Certificate 7 expansión. Aunque éstos eran algo más pequeños que la cantidad abogada por el CEPT, la industria finalmente había alcanzado la ayuda política que necesitó para avanzar con sus objetivos. 1.2.5 El memorandum de la comprensión1 (1986-87) La generación tanto de la actividad técnica y política tenía el potencial de dar vuelta en una pesadilla logística. Llegó a estar claro que la situación exigió que haya una organización sola, permanente en el timón. Esta necesidad fue resuelta cuando GSM asumió la responsabilidad total de coordinar el desarrollo de la especificación completa de GSM. En 1986 el núcleo permanente de GSM fue formado y sus jefaturas fueron establecidas en París. Estaba todo muy bien, conviniendo la tecnología y los estándares para este producto nuevo. ¿Pero qué sobre la creación de un mercado? Era esencial forjar un acuerdo comercial entre los operadores potenciales que se confiarían a poner el estándar en ejecución para una fecha particular. Sin tal acuerdo no podría haber red. Sin la red no habría terminales. Sin red y terminales no habría servicio. El templo de Stephen del Ministerio de Comercio del Reino Unido y la industria fue cargado con la tarea de bosquejar el primer Memorándum de Comprensión. Le convencieron de que si el proyecto fuera a tener un futuro por lo menos tres países tendrían que confiar para desplegar tecnología GSM antes del 1 de julio de 1991. En el acontecimiento, él no necesitó preocuparse. Tal era la potencia de la visión de GSM que el 7 de septiembre de 1987 trece países firmaron el MoU en Copenhague. Habían 15 firmas en total: Francia, Alemania, Italia, Suecia, Noruega, Dinamarca, Finlandia, España, los Países Bajos, Bélgica, Portugal, Irlanda y, del Reino Unido, dos operadores independientes: Cellnet y Racal- Vodafone, así como los servicios de DTI2, para establecer su identidad de mercado y para darles un borde en un ambiente cada vez más competitivo. 1 MoU: Memorandum of Understanding 2 DTI: Digital Tecnology International 8 1.2.6 La visión se convierte en una realidad (1987-88) Mientras que el EEC establecía una fundación política para una red Pan- Europea, en el frente técnico el Groupe Speciale Mobile se había estado determinando una gama de ofertas que determinarían la forma de los servicios del móvil de la segunda generación. En 1986, el núcleo permanente de GSM había llevado a cabo una serie de ensayos de la validación en París. Probaron ocho o nueve diversos diseños en la búsqueda para una trayectoria de radio apropiada, porque en el corazón de convertirse un nuevo estándar digital era la solución de preguntas, referente a la corrección de la confiabilidad y de error. Afortunadamente, la tecnología que podría proporcionar tal solución estaba justo a la vuelta de la esquina. Una de las conclusiones más importantes dibujadas de las pruebas tempranas era que el nuevo estándar debe emplear tecnología de múltiple acceso por división de tiempo (TDMA). La fuerza de su funcionamiento técnico se aseguró de que la banda estrecha TDMA tuviera la ayuda importantes fabricantes como Nokia, Ericsson y Siemens. Esto prometió la flexibilidad inherente en tener el acceso a una amplia gama de proveedores y el potencial de conseguir el producto más rápido en el mercado. En el curso de 1987, el núcleo permanente de GSM supervisó el desarrollo de una plataforma única de prueba de GSM. Hasta el momento un gran programa de tiempo, dinero y el esfuerzo habían sido tomados en cuenta en el proyecto. Ahora hicieron frente a los pioneros de la industria con la gran pregunta. ¿Trabajaría? Después de una secuencia de pruebas de validación, la respuesta era resonante: sí. El estándar digital del GSM trabajó, no obstante con algunas modificaciones leves a la especificación propuesta. La etapa ahora fue fijada. En febrero de 1988, todos los trece operadores del MoU publicaron la invitación simultáneamente. 9 1.2.7 Todos los sistemas despejados (1990-91) Si el 1 de julio de 1991, la fecha del lanzamiento no fuera resuelta había un peligro verdadero que la confianza en la tecnología GSM fuera fatalmente minada. Fue convenido que la evolución de la especificación estaría dividida en dos fases mutuamente compatibles. Además, había sido considerado siempre que el despliegue de la red sería terminado en etapas. El plan era que la cobertura de ciudades, capitales europeas y sus aeropuertos estarían disponible en el lanzamiento. Esto sería seguido por las autopistas y ampliado gradualmente para abarcar durante años territorios restantes. Afortunadamente, el proyecto dio una alza significativa cuando en 1989 la responsabilidad del desarrollo de la especificación pasó del núcleo permanente de GSM al Instituto Europeo de los Estándares de las Telecomunicaciones (ETSI) nuevamente creado. ETSI acordó estados iguales a los administradores, a los operadores y a los fabricantes, que en sí mismo tenían un impacto considerable en la velocidad del desarrollo. Era la combinación de un ambiente cooperativo y de los recursos mejorados que permitieron a la mayoría de la fase 1 de las especificaciones del GSM 900 ser publicados en 1990. Además, el PCN1 del Reino Unido resultó ser más una oportunidad que una amenaza. Los nuevos operadores decididos a utilizar la especificación de GSM, modificada levemente debido a la frecuencia más alta, y el desarrollo de qué se sabía mientras que DCS2 1800 fue realizado por ETSI en paralelo a la estandardización de GSM. De hecho, en 1997 DCS 1800 fue retitulado GSM 1800 para reflejar la afinidad entre las dos tecnologías. 1 Personal Communication Network 2 Digital Cellular System 10 A pesar de los progresos, los ánimos y los esfuerzos técnicos y de los administradores, el plazo para los servicios comerciales se derrumbó bajo el peso de la presión técnica. Sin embargo, en el lado positivo, una red piloto de GSM fue exhibida con éxito en la exposición del Telecom 91 de la ITU1 en Ginebra con alrededor 11.000 llamadas hechas y ningún problema importante encontrados. 1.2.8 Barreras a superar (1991-92) Para un número de operadores europeos como la red D2 alemana, la inhabilidad de lanzar un servicio comercial en 1991 frustraba. Las redes mismas eran completamente operacionales. El problema era que no había terminales GSM disponibles. La piedra angular de GSM es el Roaming2 internacional. Para que esto sea posible todas las redes y microteléfonos tienen que ser idénticos. Con tantos fabricantes creando tantos productos en tantos países, era crítico que cada tipo de terminal estuviese sujeta a un régimen riguroso de aprobación. Los terminales Rogue podían causar daño a las nuevas redes. La crisis que enfrentaban las operadoras GSM en 1991 era que el proceso de aprobación no estaba disponible. En retrospectiva, es fácil entender la razón del retraso. Tal prueba requirió la creación de una pieza compleja de equipo que simuló el sistema entero GSM en el cual el terminal tendría que funcionar. El desarrollo del software del simulador resultó ser considerablemente más complejo de lo que había sido considerado. Pero sin un proceso de prueba no podría haber terminales y sin los terminales ninguno de los operadores podría firmar con los clientes. La situación estaba cerca de ser crítica. 1 International Telecommunications Union 2 Capacidad que poseen los teléfonos móviles de registrarse a una red distinta de la que proviene 11 La solución fue la introducción de un tipo de aprobación interina (ITA1). Esencialmente, éste era un procedimiento en el cual solamente un subconjunto de los parámetros de la aprobación fue probado para asegurarse de que el terminal en la pregunta no crearía ningún problema para las redes. A pesar de la preocupación considerable expresada por algunos operadores, los terminales ITA llegaron a estar extensamente disponibles en el curso de 1992. Los terminales verdaderos handheld golpearon el mercado en el final de ese año y GSM finalmente había comenzado a sonar. 1.2.9 Empuje de un millón de clientes (1992-93) Una característica notable de la revolución de GSM era que una vez comenzado, pronto llegó a ser imparable. Después que el método de prueba ITA había sido convenido en abril de 1992, la disponibilidad de aumento de terminales estimuló la aparición de los primeros servicios de red comerciales genuinos. Sin embargo, debe ser recordado que éstos fueron obligados dentro de las limitaciones de las especificaciones de la fase 1. En la práctica, entonces, el lanzamiento verdadero de GSM ocurrió en la última parte de 1992. Entre los corredores tempranos estaban Dinamarca (dos operadores), Finlandia (dos operadores), Francia, Alemania (dos operadores), Italia, Portugal (dos operadores) y Suecia (tres operadores). Entonces el 17 de de junio 1992 el primer acuerdo de Roaming fue firmado entre Finlandia Telecom y Vodafone en el Reino Unido. En paralelo a la llegada de las redes, los profesionales de la industria tomaban la oportunidad de hacer su propio establecimiento de red la cuál debía pronto convertirse en el acontecimiento global principal de GSM. En 1987, el primer cuál debía convertirse en un acontecimiento anual dedicado a la promoción mundial de la tecnología GSM fue efectuado por servicios técnicos de los organizadores IBC de la conferencia. La conferencia celular Pan-europea Digital 1 Interim Type Approval 12 fue llevada a cabo en Londres y atrajo a 150 delegados. El acontecimiento se ha efectuado en Berlín, Atenas, Lisboa y, en 1995, fue relanzado como el congreso mundial de GSM en Madrid. Antes del fin de 1993, GSM había incursionado a través de 1 millón de suscriptores con el millón siguiente ya en el horizonte. El MoU podría ahora jactarse de 70 miembros a partir de 48 países y 25 acuerdos de Roaming, ya habían sido firmados, sellados y entregados. Y, quizás el más significativo de todos, la compañía australiana Telstra había agregado su nombre en calidad de miembro cada vez mayor del MoU. Parecía que GSM no iba a seguir siendo un fenómeno exclusivamente europeo. 1.2.10 Crecimiento y crecimiento (1993-94) Una de las características definitorias de cualquier revolución es que, no obstante se planean cuidadosamente, nadie puede realmente estar seguro a donde conducirán. Una característica inesperada de la nueva industria móvil era que llevó las semillas de la liberalización del mercado entero de las telecomunicaciones. Irónico, detrás de 1987 solamente dos de los signatarios originales de GSM MoU no eran monopolios controlados por el estado. Hoy, la mayoría de los miembros son operadores independientes. La competición ha desempeñado un papel importante en el éxito de GSM. Los nuevos operadores trajeron habilidades frescas de la comercialización y un acercamiento más comercial la cuál había sido hasta ahora algo desconocido. Los titulares tuvieron que moverse rápidamente para que siguieran siendo competitivos. Con algunos países teniendo una opción de dos o aún tres operadores de GSM, las tarifas fueron forzadas a bajar y el consumidor gozó de estándares de calidad y de servicio al cliente. 13 En septiembre de 1993, Mercury One-2-One lanzó la primera red 1800 DCS en el Reino Unido. En los años siguientes, licenciando las administraciones a través del mundo emplearía este sistema, que utilizó especificaciones modificadas de GSM, como el medio para introducir la competición adicional en el mercado móvil. Entonces en 1994, la Comisión Federal de las Comunicaciones1 de los E.E.U.U. designó grandes bloques del espectro en la banda de 1900MHz. El punto era introducir redes inalámbricas digitales al país en forma de una nueva clase de servicio personal de las comunicaciones del mercado total. En el espíritu competitivo de los tiempos, la FCC se aseguró deliberadamente de que las licencias de las PCS fueran neutrales en lo que concierne al tipo de tecnología que se empleará. Para GSM, uno de los mercados más lucrativos del mundo hizo señas. 1.2.11 Globalización (1995-96) GSM era un sistema previsto para asegurarse de que europeos podrían comunicarse en su continente (Roaming) y utilizar su teléfono donde quiera que viajaran. Entonces a la larga vinieron los australianos. Cuando en 1992 Telstra firmó con el MoU, era la primera indicación que la energía y la flexibilidad de GSM tenían potencial verdadero en el mercado global. En apenas cuatro años, la red GSM de la compañía tenía más de 1 millón de suscriptores. La tendencia mundial hacia la desregulación y la liberalización de telecomunicaciones significó que un anfitrión de nuevos jugadores se incorporaba, el mercado móvil. La especificación GSM era una característica rica y ofreció una gama de servicios que permitirían a nuevos operadores distinguirse de sus rivales. Y en el corazón de la tendencia hacia GSM la ventaja era su capacidad 1 FCC: Federal Communication Commision 14 para comunicarse globalmente. En resumen, el mundo estaba listo para GSM. Solamente algunos años después de que Telstra había firmado con GSM se habían ampliado más allá de Europa y de Australia, estableciendo una presencia en las áreas tan diversas como la India, África, Asia y el mundo árabe. Antes de junio de 1995, el MoU fue colocado formalmente como asociación en Suiza. Ahora tenía 156 miembros sirviendo a 12 millones de clientes en 86 países. El mismo año se consideró la terminación de la estandardización de la fase 2 de GSM y de una demostración de la comunicación del fax, vídeo y de datos vía GSM. También produjo una adaptación de PCS 1900 para resolver las oportunidades creadas por la subasta reciente de la FCC en los E.E.U.U.. En los Estados Unidos, los nuevos operadores PCS1 reconocieron las ventajas de un estándar abierto que creaba un mercado global y monopólico para el producto. Esto tenía la ventaja de hacer el despliegue de la red extremadamente rentable. Una vez que la FCC hubiera abierto la puerta, los vendedores principales de GSM desarrollaron rápidamente una variación de GSM modificada para requisitos particulares de la banda de frecuencia 1900MHz. En noviembre de 1995, las comunicaciones personales americanas lanzaron el primer servicio comercial de GSM en los E.E.U.U. Esto fue alcanzado apenas algunos meses después de que el APC hubiera obtenido su licencia, una hazaña que habría sido imposible con cualquier otra tecnología. Antes de mayo de 1997, había 15 redes de las PCS 1900, ahora GSM 1900, y con alrededor de 400.000 usuarios. Con los suscriptores viniendo abordo en un índice de 2.000 al día, GSM ha puesto ya una huella indeleble en el mercado norteamericano. 1.3 Fases de GSM [2] A finales de los 80, los grupos involucrados en el desarrollo del estándar GSM se dieron cuenta que en el tiempo estimado no podrían completar las especificaciones 1 Personal Cellular System 15 para el rango entero de los servicios y características de GSM que fueron originalmente planeadas. Debido a esto, se decidió que GSM seria lanzado en fases, con la fase 1 consistiendo en un grupo de servicios y características limitadas. Cada nueva fase encaja en los nuevos servicios ofrecidos por fases ya existentes. Figura 1-1 fases GSM 1.3.1 Fase 1 La fase 1 contiene los servicios más comunes incluyendo: • Telefonía de voz • Roaming Internacional • Servicios básicos de fax y datos (a mas de 9.6kbits/s) • Establecimiento de llamada • SMS (Short Message Service) • Bloqueo de llamadas La fase 1 también incorporó características como cifrado y tarjetas de Módulos de Identidad de Suscriptor (SIM). Las especificaciones de la fase 1 entonces fueron cerradas y no pueden ser modificados. 1.3.2 Fase 2 Otras características adicionales fueron introducidas en la fase 2 de GSM incluyendo: • Aviso de carga 1989 1990 1991 1992 1993 1994 1995 Phase 1 Phase 2 Phase 2 + Idea Standarización Implementacion/ Usado 16 • Identificación de Línea de Llamada • Llamada en espera • Retención de llamada • Llamada en conferencia • Grupos de usuario cerrados • Capacidad de comunicaciones de datos adicionales 1.3.3 Fase 2+ La estandarización de grupos ya había comenzado a definir la siguiente fase, 2+. El programa de la fase 2+ cubrirá múltiples números de suscriptores y una variedad de características orientadas a los negocios. Algunas de las características ofrecidas por la fase 2+ son: • Perfiles de servicios múltiples • Planes de numeración privados • Interrelación con los estándares GSM 1800, GSM 1900 y DECT1 Las prioridades e itinerarios para nuevas características y funciones dependen primordialmente en el interés mostrado por compañías operadoras, fabricantes y desarrollos técnicos en áreas relacionadas. 1.4 Componentes de Red GSM [2] La red GSM esta dividida en dos sistemas. Cada uno de estos sistemas comprende un número de unidades funcionales las cuales son componentes individuales de la red móvil. Los dos sistemas son: • Sistema de Conmutación (SS, Switching System) • Sistema de Estación Base (BSS, Base Station System) 1 Digital Enhanced Cordless Telecommunications 17 Como todas las redes de telecomunicación, las redes GSM son operadas, mantenidas y administradas desde centros computarizados. Figure 1-2 (Modelo de sistema) El sistema de conmutación (SS) es responsable de la realización del procesamiento de la llamada y de las funciones relacionadas al suscriptor. Esto incluye las siguientes unidades funcionales: • Mobile services Swithching Center (MSC) • Home Location Register (HLR) • Visitor Location Register (VLR) • AUthentication Center (AUC) • Equipment Identity Register (EIR) La BSS ejecuta todas las funciones de radio relacionadas. La BSS comprende las siguientes unidades funcionales: • Base Station Controller (BSC) • Base Transceiver Station (BTS) 18 El OMC (Operation and Maintenance Center) ejecuta todas las operaciones de mantenimiento para la red tales como: monitoreo del tráfico de la red y las alarmas de la red. El OMC posee acceso tanto al SS como al BSS. Los MS (Mobile Stations) no pertenecen a ninguno de estos sistemas 1.4.1 Componentes del SS (Switching System) 1.4.1.1 MSC (Mobile services Switching Center) El MSC ejecuta las funciones de conmutación telefónica para la red móvil. Controla llamadas para y desde otros sistemas de datos y telefonía, como la PSTN (Public Switched Telephony Network), ISDN (Integrated Services Digital Network) redes de datos públicas, redes privadas y otras redes móviles. 1.4.1.2 Funcionalidad del Gateway La funcionalidad del Gateway permite a un MSC preguntar al HLR de la red para poder enrutar una llamada a una estación móvil. El MSC es llamado Gateway MSC (GMSC) Por ejemplo. Si una persona conectada a una red publica quiere hacer una llamada a un suscriptor de la red móvil GSM, entonces el Exchange de la red pública accederá a la red GSM conectando la llamada al GMSC primeramente. Lo mismo para una llamada desde un MS a otro MS. 1.4.1.3 HLR (Home Location Register) El HLR es una base de datos de red centralizada que almacena y administra todas las suscripciones móviles pertenecientes a una operadora específica. Actúa como un almacenamiento permanente de la inscripción de suscripción de una persona hasta que la suscripción es cancelada. La información almacenada incluye: • Identidad del suscriptor • Servicios suplementarios del suscriptor • Información de localidad de suscriptor 19 • Información de autenticación de suscriptor El HLR puede ser implementado en el mismo nodo de red como el MSC o como una base de datos única. Si la capacidad de un HLR es excedida por un número de suscriptores, pueden agregarse HLR adicionales. 1.4.1.4 VLR (Visitor Location Register) La base de datos VLR contiene la información acerca de los suscriptores móviles localizados en un área de servicio MSC. Hay un VLR para cada MSC en una red. El VLR almacena temporalmente la información de suscripción para que el MSC pueda servir a todos los suscriptores visitando el área de servicio MSC. El VLR puede ser considerado como un HLR distribuido mientras mantiene una copia de la información del HLR almacenada del suscriptor. Cuando el suscriptor se conecta a una nueva área de servicio MSC, el VLR conectado a es MSC pide información del suscriptor del HLR del suscriptor. El HLR manda una copia de la información al VLR y actualiza su propia información de localidad. Cuando un suscriptor hace una llamada, el VLR ya tendrá la información requerida para configurar la llamada. 1.4.1.5 AUC (AUthentication Center) La función principal del AUC es de autenticar los intentos de uso de la red de los suscriptores. De esta forma, es utilizado para proteger los operadores de la red contra el fraude. El AUC es una base de datos conectada al HLR el cual lo provee con los parámetros de autenticación y llaves de cifrado utilizados para garantizar la seguridad de la red. 1.4.1.6 EIR (Equipment Identity Register) El EIR es una base de datos que contiene información de identidad del equipo móvil, el cual ayuda a bloquear llamadas de MS’s robados, no 20 autorizados o defectuosos. Debe notarse que debido a la separación entre suscriptor y equipo en GSM. El bloqueo de equipo de estaciones móviles no resulta en un bloqueo automático de un suscriptor. 1.4.2 Componentes de una BSS (Base Station System) 1.4.2.1 BSC (Base Station Controller) El BSC administra las funciones de radio relacionadas a una red GSM. Es un conmutador de alta capacidad que provee funciones como Handover1 de estación móvil, asignación de canales de radio y la recolección de datos de configuración de la celda. Un número de BSC puede ser controlada por cada MSC. 1.4.2.2 Base Transceiver Station (BTS) La BTS controla la interface de radio para el MS. EL BTS comprende el equipo de radio como trasnceivers y antenas las cuales son necesitadas en cada celda en el red. Un grupo de BTS son controladas por un BSC. 1.4.3 Centros de Monitoreo de Red 1.4.3.1OMC (Operation and Maintenance Center) Un OMC un centro de monitoreo computarizado el cual esta conectado a otros componentes de la red como MSC y BSC a través de enlaces de red de datos X.25. En el OMC se puede saber información del estado de la red y se puede monitorear y controlar una variedad de parámetros de sistema. Puede haber uno o varios OMC en una red dependiendo del tamaño de esta. 1.4.3.2 NMC (Network Managment Center) El control centralizado de una red es realizado en un centro de administración de la red llamado NMC. Solamente un NMC es requerido para una red, y esta 1 Handover es el cambio de una llamada continua a un canal o celda diferente. 21 controla la OMC subordinada. Las ventajas de esta jerarquía es que el personal del NMC puede concentrarse en problemas de larga duración en el sistema, mientras que el personal de cada OMC puede concentrarse en problemas pequeños. La funcionalidad del OMC y NMC puede ser combinada en el mismo nodo físico de la red o puede ser implementado en diferentes locaciones. 1.4.4 MS (Mobile Stations) Un MS es utilizado por un suscriptor móvil para comunicarse con la red móvil. Existen diferentes tipos de MS cada uno permite al suscriptor hacer y recibir llamadas. Fabricantes de MS ofrecen una variedad de diseños y características para cumplir con las necesidades de los diferentes mercados. El rango del área de cobertura de un MS depende de la potencia de salida del MS. Diferentes tipos de MS tienen diferentes tipos de capacidad de potencia de salida y consecuentemente diferentes rangos. Por ejemplo los MS de mano posee una menor potencia de salida y rango que un MS instalada en un automóvil con montaje de antena en el techo. Figure 1-3 Rangos para diferentes tipos de MS 22 Un MS GSM consiste en: Un Terminal móvil Un SIM (Subscriber Identity Module) No como otros estándares, en GSM el suscriptor esta separado del Terminal móvil. Cada información de suscriptor es almacenada como una tarjeta inteligente (SIM). El SIM puede ser conectado en cualquier Terminal móvil GSM. Esto conlleva a ventajas de seguridad y portabilidad para los suscriptores. Por ejemplo, el Terminal móvil del suscriptor A puede ser robado, sin embargo el SIM del terminal móvil del suscriptor A puede ser usado en otro terminal móvil de otra persona y las llamadas serán cargadas al suscriptor A. 23 Capítulo 2: INTRODUCCION A J2ME 2.1 Descripción del capítulo........................................................................................24 2.2 Análisis comparativo .............................................................................................25 2.3 Nociones básicas de J2ME...................................................................................29 2.3.1 Máquinas Virtuales J2ME...............................................................................30 2.3.2 Configuraciones .............................................................................................34 2.3.3 Perfiles ...........................................................................................................37 2.4 J2ME y las comunicaciones..................................................................................41 24 2. INTRODUCCIÓN A J2ME [3] 2.1 Descripción del capítulo La empresa Sun Microsystems lanzó a mediados de los años 90 el lenguaje de programación Java que, aunque en un principio fue diseñado para generar aplicaciones que controlaran electrodomésticos como lavadoras, congeladoras, etc., debido a su gran robustez e independencia de la plataforma donde se ejecutase el código, desde sus comienzos se utilizó para la creación de componentes interactivos integrados en páginas Web y programación de aplicaciones independientes. Estos componentes se denominaron applets y casi todo el trabajo de los programadores se dedicó al desarrollo de éstos. Con los años, Java ha progresado enormemente en varios ámbitos como servicios HTTP, servidores de aplicaciones, acceso a bases de datos (JDBC1)... Como se ve, Java se ha ido adaptando a las necesidades tanto de los usuarios como de las empresas ofreciendo soluciones y servicios tanto a unos como a otros. Debido a la explosión tecnológica de estos últimos años Java ha desarrollado soluciones personalizadas para cada ámbito tecnológico. Sun ha agrupado cada uno de esos ámbitos en una edición distinta de su lenguaje Java. Estas ediciones son Java 2 Standard Edition, orientada al desarrollo de aplicaciones independientes y de applets, Java 2 Enterprise Edition, enfocada al entorno empresarial y Java 2 Micro Edition, orientada a la programación de aplicaciones para pequeños dispositivos. En esta última edición de Java es en la que se centrará todo el estudio en el presente capitulo. La edición Java 2 Micro Edition fue presentada en 1999 por Sun Microsystems con el propósito de habilitar aplicaciones Java para pequeños dispositivos. En esta presentación, lo que realmente se enseñó fue una primera versión de una nueva Java Virtual Machine (JVM) que podía ejecutarse en dispositivos Palm. Para empezar se puede decir que Java Micro Edition es la versión del lenguaje Java que está orientada 1 JDBC: Java Data Base Connectivity 25 al desarrollo de aplicaciones para dispositivos pequeños con capacidades restringidas tanto en pantalla gráfica, como de procesamiento y memoria (teléfonos móviles, PDAs1, Handhelds, Pagers, etc.). La tardía aparición de esta tecnología, (se ha visto que la tecnología Java nació a mediados de los 90 y Java Micro Edition apareció a finales), puede ser debido a que las necesidades de los usuarios de telefonía móvil ha cambiado mucho en estos últimos años y cada vez demandan más servicios y prestaciones por parte tanto de los terminales como de las compañías. Además el uso de esta tecnología depende del asentamiento en el mercado de otras, como GPRS, íntimamente asociada a J2ME y que no ha estado al alcance hasta hace poco. J2ME es la tecnología del futuro para la industria de los dispositivos móviles. Actualmente las compañías telefónicas y los fabricantes de móviles están implantando los protocolos y dispositivos necesarios para soportarla. 2.2 Análisis comparativo Antes de comenzar con los conceptos necesarios de Java Micro Edition es necesario hacer un breve estudio de las distintas versiones de Java, los cuales ya fueron mencionados en el apartado anterior. Sun, dispuesto a proporcionar las herramientas necesarias para cubrir las necesidades de todos los usuarios, creó distintas versiones de Java de acuerdo a las necesidades de cada uno. Según esto, el paquete Java 2 se puede dividir en 3 ediciones distintas. J2SE (Java Standard Edition) orientada al desarrollo de aplicaciones independientes de la plataforma, J2EE (Java Enterprise Edition) orientada al entorno empresarial y J2ME (Java Micro Edition) orientada a dispositivos con capacidades restringidas. Las características de cada una de las versiones son: 1. Java 2 Platform, Standard Edition (J2SE): Esta edición de Java es la que en cierta forma recoge la iniciativa original del lenguaje Java. Tiene las siguientes características: 1 PDA: Personal Digital Assistant 26 • Inspirado inicialmente en C++, pero con componentes de alto nivel, como soporte nativo de strings y recolector de basura. • Código independiente de la plataforma, precompilado a bytecodes intermedio y ejecutado en el cliente por una JVM (Java Virtual Machine). • Modelo de seguridad tipo sandbox proporcionado por la JVM. • Abstracción del sistema operativo subyacente mediante un juego completo de APIs de programación. Esta versión de Java contiene el conjunto básico de herramientas usadas para desarrollar Java Applets, así cómo las APIs orientadas a la programación de aplicaciones de usuario final: Interfaz gráfica de usuario, multimedia, redes de comunicación, etc. 2. Java 2 Platform, Enterprise Edition (J2EE): Esta versión está orientada al entorno empresarial. El software empresarial tiene unas características propias marcadas: está pensado no para ser ejecutado en un equipo, sino para ejecutarse sobre una red de ordenadores de manera distribuida y remota mediante Ejes (Enterprise Java Beans). De hecho, el sistema se monta sobre varias unidades o aplicaciones. En muchos casos, además, el software empresarial requiere que se sea capaz de integrar datos provenientes de entornos heterogéneos. Esta edición está orientada especialmente al desarrollo de servicios web, servicios de nombres, persistencia de objetos, XML, autenticación, APIs para la gestión de transacciones, etc. La tarea de esta especificación es ampliar la J2SE para dar soporte a los requisitos de las aplicaciones de empresa. 3. Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes. Esta edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso de una máquina virtual denominada KVM (Kilo Virtual Machine, debido a que requiere sólo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica, inclusión 27 de un pequeño y rápido recolector de basura y otras diferencias que se verán más adelante. Figura 2.1 Arquitectura de la plataforma Java 2 de Sun La Figura 2.1 muestra la arquitectura de la plataforma Java 2. En la actualidad no es realista ver Java como un simple lenguaje de programación, si no como un conjunto de tecnologías que abarca a todos los ámbitos de la computación con dos elementos en común: • El código fuente en lenguaje Java es compilado a código intermedio interpretado por una Java Virtual Machine (JVM), por lo que el código ya compilado es independiente de la plataforma. 28 • Todas las tecnologías comparten un conjunto más o menos amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io. Un claro ejemplo de éste último punto es que J2ME contiene una mínima parte de las APIs de Java. Esto es debido a que la edición estándar de APIs de Java ocupa 20Mb, y los dispositivos pequeños disponen de una cantidad de memoria mucho más reducida. En concreto, J2ME usa 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util. Esta parte de la API que se mantiene fija forma parte de lo que se denomina “configuración”, que se hablará más extensamente en el siguiente capitulo. Otras diferencias con la plataforma J2SE vienen dadas por el uso de una máquina virtual distinta de la clásica JVM denominada KVM. Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas en la JVM. Estas diferencias se verán más detenidamente cuándo se analice las capacidades de la KVM en el siguiente capitulo. Como se ve, J2ME representa una versión simplificada de J2SE. Sun separó estas dos versiones ya que J2ME estaba pensada para dispositivos con limitaciones de proceso y capacidad gráfica. También separó J2SE de J2EE porque este último exigía unas características muy pesadas o especializadas de E/S, trabajo en red, etc. Por tanto, separó ambos productos por razones de eficiencia. Hoy, J2EE es un súper conjunto de J2SE pues contiene toda la funcionalidad de éste y más características, así como J2ME es un subconjunto de J2SE (excepto por el paquete javax.microedition) ya que, como se mencionó, contiene varias limitaciones con respecto a J2SE. Figura 2.2 Relación entre las APIs de la plataforma Java. Sólo de manera muy simplista se puede considerar a J2ME y J2EE como versiones reducidas y ampliadas de J2SE respectivamente (ver Figura 2.2): en realidad cada una de las ediciones está enfocada a ámbitos de aplicación muy distintos. Las necesidades 29 computacionales y APIs de programación requeridas para un juego ejecutándose en un móvil difieren bastante con las de un servidor distribuido de aplicaciones basado en EJB. 2.3 Nociones básicas de J2ME Ya se ha visto qué es Java Micro Edition y se ha enmarcado dentro de la plataforma Java. A continuación se presentan los componentes que forman parte de esta tecnología: • Por un lado se tiene una serie de máquinas virtuales Java con diferentes requisitos, cada una para diferentes tipos de pequeños dispositivos. • Configuraciones, que son un conjunto de clases básicas orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas. Existen 2 configuraciones definidas en J2ME: Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria, y Connected Device Configuration (CDC) enfocada a dispositivos con más recursos. • Perfiles, que son unas bibliotecas Java de clases específicas orientadas a implementar funcionalidades de más alto nivel para familias específicas de dispositivos. Un entorno de ejecución determinado de J2ME se compone entonces de una selección de: a. Maquina virtual. b. Configuración. c. Perfil. d. Paquetes Opcionales. La arquitectura de un entorno de ejecución se puede ver en la figura 2.3. A continuación se estudiará en profundidad cada uno de estos tres componentes. 30 Figura 2.3 Entorno de ejecución. 2.3.1 Máquinas Virtuales J2ME Una máquina virtual de Java (JVM) es un programa encargado de interpretar código intermedio (bytecode) de los programas Java precompilados a código máquina ejecutable por la plataforma, efectuar las llamadas pertinentes al sistema operativo subyacente, observar las reglas de seguridad y corrección de código definidas para el lenguaje Java. De esta forma, la JVM proporciona al programa Java independencia de la plataforma con respecto al hardware y al sistema operativo subyacente. Las implementaciones tradicionales de JVM son, en general, muy pesadas en cuanto a memoria ocupada y requerimientos computacionales. J2ME define varias JVMs de referencia adecuadas al ámbito de los dispositivos electrónicos que, en algunos casos, suprimen algunas características con el fin de obtener una implementación menos exigente. Ya se ha visto que existen 2 configuraciones CLDC y CDC, cada una con unas características propias. La VM (Virtual Machine) de la configuración CLDC se denomina KVM y la de la configuración CDC se denomina CVM. A continuación se verán las características principales de cada una de ellas: 31 • KVM Corresponde con la Máquina Virtual más pequeña desarrollada por Sun. Su nombre KVM proviene de Kilobyte (haciendo referencia a la baja ocupación de memoria, entre 40Kb y 80Kb). Se trata de una implementación de Máquina Virtual reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria. La KVM está escrita en lenguaje C, aproximadamente unas 24000 líneas de código, y fue diseñada para ser: o Pequeña, con una carga de memoria entre los 40Kb y los 80 Kb, dependiendo de la plataforma y las opciones de compilación. o Alta portabilidad. o Modulable. o Lo más completa y rápida posible y sin sacrificar características para las que fue diseñada. Sin embargo, esta baja ocupación de memoria hace que posea algunas limitaciones con respecto a la clásica Java Virtual Machine (JVM): 1. No hay soporte para tipos en coma flotante. No existen por tanto los tipos double ni float. Esta limitación está presente porque los dispositivos carecen del hardware necesario para estas operaciones. 2. No existe soporte para JNI1 debido a los recursos limitados de memoria. 3. No existen cargadores de clases (class loaders) definidos por el usuario. Sólo existen los predefinidos. 4. No se permiten los grupos de hilos o hilos daemon. Cuándo se quiera utilizar grupos de hilos se utilizan los objetos Colección para almacenar cada hilo n el ámbito de la aplicación. 5. No existe la finalización de instancias de clases. No existe el método Object.finalize(). 6. No hay referencias débiles2. 1 Java Native Interface 2 Un objeto que está siendo apuntado mediante una referencia débil es un candidato para la recolección de basura. Estas referencias están permitidas en J2SE, pero no en J2ME. 32 7. Limitada capacidad para el manejo de excepciones debido a que el manejo de éstas depende en gran parte de las APIs de cada dispositivo por lo que son éstos los que controlan la mayoría de las excepciones. 8. Reflexión1 Aparte de la no inclusión de estas características, la verificación de clases merece un comentario aparte. El verificador de clases estándar de Java es demasiado grande para la KVM. De hecho es más grande que la propia KVM y el consumo de memoria es excesivo, más de 100Kb para las aplicaciones típicas. Este verificador de clases es el encargado de rechazar las clases no válidas en tiempo de ejecución. Este mecanismo verifica los bytecodes de las clases Java realizando las siguientes comprobaciones: o Ver que el código no sobrepase los límites de la pila de la VM. o Comprobar que no se utilizan las variables locales antes de ser inicializadas. o Comprobar que se respetan los campos, métodos y los modificadores de control de acceso a clases. Figura 2.4 Preverificación de clases en CDLC/KVM. 1 La reflexión es el mecanismo por el cual los objetos pueden obtener información de otros objetos en tiempo de ejecución como, por ejemplo, los archivos de clases cargados o sus campos y métodos. 33 Por esta razón los dispositivos que usen la configuración CLDC y KVM introducen un algoritmo de verificación de clases en dos pasos. Este proceso puede apreciarse gráficamente en la Figura 2.4. La KVM puede ser compilada y probada en 3 plataformas distintas: 1. Solaris Operating Environment. 2. Windows 3. PalmOs • CVM La CVM (Compact Virtual Machine) ha sido tomada como Máquina Virtual Java de referencia para la configuración CDC y soporta las mismas características que la Máquina Virtual de J2SE. Está orientada a dispositivos electrónicos con procesadores de 32 bits de gama alta y en torno a 2Mb o más de memoria RAM. Las características que presenta esta Máquina Virtual son: 1. Sistema de memoria avanzado. 2. Tiempo de espera bajo para el recolector de basura. 3. Separación completa de la VM del sistema de memoria. 4. Recolector de basura modularizado. 5. Portabilidad. 6. Rápida sincronización. 7. Ejecución de las clases Java fuera de la memoria de sólo lectura (ROM). 8. Soporte nativo de hilos. 9. Baja ocupación en memoria de las clases. 10. Proporciona soporte e interfaces para servicios en Sistemas Operativos de Tiempo Real. 11. Conversión de hilos Java a hilos nativos. 12. Soporte para todas las características de Java2 v1.3 y librerías de seguridad, referencias débiles, Interfaz Nativa de Java (JNI), 34 invocación remota de métodos (RMI1), Interfaz de depuración de la Máquina Virtual (JVMDI2). 2.3.2 Configuraciones Ya se ha mencionado algo anteriormente relacionado con las configuraciones, por lo tanto, una configuración es el conjunto mínimo de APIs Java que permiten desarrollar aplicaciones para un grupo de dispositivos. Estas APIs describen las características básicas, comunes a todos los dispositivos: 1. Características soportadas del lenguaje de programación Java. 2. Características soportadas por la Máquina Virtual Java. 3. Bibliotecas básicas de Java y APIs soportadas. Como se ha visto con anterioridad, existen dos configuraciones en J2ME: CLDC, orientada a dispositivos con limitaciones computacionales y de memoria y CDC, orientada a dispositivos con no tantas limitaciones. Ahora se verán un poco más en profundidad cada una de estas configuraciones. • Configuración de dispositivos con conexión, CDC (Connected Device Configuration) La CDC está orientada a dispositivos con cierta capacidad computacional y de memoria. Por ejemplo, decodificadores de televisión digital, televisores con internet, algunos electrodomésticos y sistemas de navegación en automóviles. 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. Ésta Máquina Virtual es la que ha visto como CVM (Compact Virtual Machine). La CDC está enfocada a dispositivos con las siguientes capacidades: o Procesador de 32 bits. o Disponer de 2 Mb o más de memoria total, incluyendo memoria RAM y ROM. 1 Remote Method Invocation 2 JVMDI: Java Vitual Machina Depurate Interface 35 o Poseer la funcionalidad completa de la Máquina Virtual Java2. o Conectividad a algún tipo de red. La CDC está basada en J2SE v1.3 e incluye varios paquetes Java de la edición estándar. Las peculiaridades de la CDC están contenidas principalmente en el paquete javax.microedition.io, que incluye soporte para comunicaciones http y basadas en datagramas. La Tabla 2.1 muestra las librerías incluidas en la CDC. Nombre de Paquete CDC Descripción java.io Clases e interfaces estándar de E/S java.lang Clases básicas del lenguaje java.lang.ref Clases de referencia java.lang.reflect Clases e interfaces de reflexión java.math Paquete de matemáticas java.net Clases e interfaces de red java.security Clases e interfaces de seguridad java.security.cert Clases de certificados de seguridad java.text Paquete de texto java.util Clases de utilidades estándar java.util.jar Clases y utilidades para archivos JAR java.util.zip Clases y utilidades para archivos ZIP y comprimidos javax.microedition.io Clases e interfaces para conexión genérica CDC Tabla 2.1 Librerías de configuración CDC. • Configuración de dispositivos limitados con conexión, CLDC (Connected Limited Device Configuration). La CLDC está orientada a dispositivos dotados de conexión y con limitaciones en cuanto a capacidad gráfica, cómputo y memoria. Un ejemplo de estos dispositivos son: teléfonos móviles, buscapersonas (pagers), PDAs, organizadores personales, etc. 36 Ya se ha dicho que CLDC está orientado a dispositivos con ciertas restricciones. Algunas de estas restricciones vienen dadas por el uso de la KVM, necesaria al trabajar con la CLDC debido a su pequeño tamaño. Los dispositivos que usan CLDC deben cumplir los siguientes requisitos: o Disponer entre 160 Kb y 512 Kb de memoria total disponible. Como mínimo se debe disponer de 128 Kb de memoria no volátil para la Máquina Virtual Java y las bibliotecas CLDC, y 32 Kb de memoria volátil para la Máquina Virtual en tiempo de ejecución. o Procesador de 16 o 32 bits con al menos 25 MHz de velocidad. o Ofrecer bajo consumo, debido a que estos dispositivos trabajan con suministro de energía limitado, normalmente baterías. o Tener conexión a algún tipo de red, normalmente sin cable, con conexión intermitente y ancho de banda limitado (unos 9600 bps). La CLDC aporta las siguientes funcionalidades a los dispositivos: o Un subconjunto del lenguaje Java y todas las restricciones de su Máquina Virtual (KVM). o Un subconjunto de las bibliotecas Java del núcleo. o Soporte para E/S básica. o Soporte para acceso a redes. o Seguridad. Nombre de paquete CLDC Descripción java.io Clases y paquetes estándar de E/S. Subconjunto de J2SE java.lang Clases e interfaces de la Maquina Virtual. Subconjunto de J2SE java.util Clases, interfaces y utilidades estándar. Subconjunto de J2SE javax.microedition.io Clases e interfaces de conexión genérica CLDC Tabla 2.2 Librerías de configuración CLDC. 37 Un aspecto muy a tener en cuenta es la seguridad en CLDC. Esta configuración posee un modelo de seguridad sandbox al igual que ocurre con los applets. En cualquier caso, una determinada Configuración no se encarga del mantenimiento del ciclo de vida de la aplicación, interfaces de usuario o manejo de eventos, sino que estas responsabilidades caen en manos de los perfiles. 2.3.3 Perfiles Anteriormente se dijo que el perfil es el que define las APIs que controlan el ciclo de vida de la aplicación, interfaz de usuario, etc. Más concretamente, un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado. Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan (electrodomésticos, teléfonos móviles, etc.) y el tipo de aplicaciones que se ejecutarán en ellos. Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Aquí se puede encontrar grandes diferencias entre interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs. El perfil establece unas APIs que definen las características de un dispositivo, mientras que la configuración hace lo propio con una familia de ellos. Esto hace que a la hora de construir una aplicación se cuente tanto con las APIs del perfil como de la configuración. Se debe tener en cuenta que un perfil siempre se construye sobre una configuración determinada. De este modo, se puede pensar en un perfil como un conjunto de APIs que dotan a una configuración de funcionalidad específica. Ya se han explicado los conceptos necesarios para entender cómo es un entorno de ejecución en Java Micro Edition. Este entorno de ejecución se estructura en capas, una construida sobre la otra como se veía en la figura 2.3. 38 Anteriormente se explicó que para una configuración determinada se usaba una Máquina Virtual Java específica. Por lo que, con la configuración CDC se usa la CVM y que con la configuración CLDC se emplea la KVM. Con los perfiles ocurre lo mismo. Existen unos perfiles que se construirán sobre la configuración CDC y otros que construirán sobre la CLDC. Para la configuración CDC se tienen los siguientes perfiles: • Foundation Profile. • Personal Profile. • RMI Profile. Y para la configuración CLDC se tienen los siguientes: • PDA Profile. • Mobile Information Device Profile (MIDP). En la Figura 2.5 se puede ver como quedaría el esquema del entorno de ejecución al completo. Un perfil puede ser construido sobre cualquier otro. Sin embargo, una plataforma J2ME sólo puede contener una configuración. Figura 2.5 Arquitectura del entorno de ejecución de J2ME. 39 A continuación se verá brevemente cada uno de estos perfiles (ya que se entenderá más adelante, que para este documento el estudio interesa solamente en el perfil MIDP bajo la configuración CLDC) : � Foundation Profile: Este perfil define una serie de APIs sobre la CDC orientadas a dispositivos que carecen de interfaz gráfica como, por ejemplo, decodificadores de televisión digital. � Personal Profile: El Personal Profile es un subconjunto de la plataforma J2SE v1.3, y proporciona un entorno con un completo soporte gráfico AWT1. El objetivo es el de dotar a la configuración CDC de una interfaz gráfica completa, con capacidades web y soporte de applets Java. Este perfil requiere una implementación del Foundation Profile. � RMI Profile: Este perfil requiere una implementación del Foundation Profile, se construye encima de él. El perfil RMI2 soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas características de estas APIs se han eliminado del perfil RMI debido a las limitaciones de cómputo y memoria de los dispositivos. � PDA Profile: El PDA Profile está construido sobre CLDC. Pretende abarcar PDAs de gama baja, tipo Palm, con una pantalla y algún tipo de puntero (ratón o lápiz) y una resolución de al menos 20000 píxeles (al menos 200x100 píxeles) con un factor 2:1. No es posible dar mucha más información porque en este momento este perfil se encuentra en fase de definición. � Mobile Information Device Profile (MIDP): Este perfil está construido sobre la configuración CLDC. Al igual que CLDC fue la primera configuración definida para J2ME, MIDP fue el primer perfil definido para esta plataforma. Este perfil está orientado para dispositivos con las siguientes características: o Reducida capacidad computacional y de memoria. 1 AWT: Abstract Window Toolkit, permite hacer interfaces gráficas mediante dispositivos de interacción con el usuario 2 Remote Method Invocation 40 o Conectividad limitada (en torno a 9600 bps). o Capacidad gráfica muy reducida (mínimo un display de 96x54 píxeles monocromo). o Entrada de datos alfanumérica reducida. o 128 Kb de memoria no volátil para componentes MIDP. o 8 Kb de memoria no volátil para datos persistentes de aplicaciones. o 32 Kb de memoria volátil en tiempo de ejecución para la pila Java. Los tipos de dispositivos que se adaptan a estas características son: teléfonos móviles, buscapersonas (pagers) o PDAs de gama baja con conectividad. El perfil MIDP establece las capacidades del dispositivo, por lo tanto, especifica las APIs relacionadas con: - La aplicación (semántica y control de la aplicación MIDP). - Interfaz de usuario. - Almacenamiento persistente. - Trabajo en red. - Temporizadores. En la Tabla 2.3 se puede ver cuáles son los paquetes que están incluidos en el perfil MIDP. Las aplicaciones que se realizan utilizando MIDP reciben el nombre de MIDlets (por simpatía con APPlets). Decimos así que un MIDlet es una aplicación Java realizada con el perfil MIDP sobre la configuración CLDC. 41 Paquetes del MIDP Descripción javax.microedition.lcdui Clases e interfaces para GUIs26 javax.microedition.rms Record Management Storage. Soporte para el almacenamiento persistente del dispositivo javax.microedition.midlet Clases de definición de la aplicación javax.microedition.io Clases e interfaces de conexión genérica java.io Clases e interfaces de E/S básica java.lang Clases e interfaces de la Maquina Virtual java.util Clases e interfaces de utilidades estándar Tabla 2.3 Librerías del perfil MIDP. En el siguiente capítulo se centrará el estudio en la creación de MIDlets ya que es un punto de referencia para cualquier programador de J2ME. Además, desde un punto de vista práctico MIDP es el único perfil actualmente disponible. 2.4 J2ME y las comunicaciones Ya se ha visto que una característica importante que deben tener los dispositivos que hagan uso de J2ME, más específicamente CLDC/MIDP (a partir de ahora el estudio de J2ME se va a basar exclusivamente en el entorno CLDC/MIDP) es que necesitan poseer conexión a algún tipo de red, por lo que la comunicación de estos dispositivos cobra una gran importancia. En este apartado se verá cómo participan las distintas tecnologías en estos dispositivos y cómo influyen en el uso de la tecnología J2ME. Para ello se centrará en un dispositivo en especial: los teléfonos móviles. De aquí en adelante todo el estudio y la creación de la aplicación se realizarán para este dispositivo. Esto es así debido a la rápida evolución que han tenido los teléfonos móviles en el sector de las comunicaciones, lo que ha facilitado el desarrollo, por parte de algunas empresas, de herramientas que se usarán para crear las aplicaciones. Uno de los primeros avances de la telefonía móvil en el sector de las comunicaciones se dio con la aparición de la tecnología WAP27. Es un protocolo con el que se ha tratado de dotar a los dispositivos móviles de un pequeño y limitado 26 GUI: Graphic User Interface 27 WMA: Wireless Messaging Application 42 navegador web. WAP exige la presencia de una puerta de enlace encargado de actuar cómo intermediario entre Internet y el terminal. Esta puerta de enlace o gateway es la que se encarga de convertir las peticiones WAP a peticiones web habituales y viceversa. Las páginas que se transfieren en una petición usando WAP no están escritas en HTML28, si no que están escritas en WML29, un subconjunto de éste. WAP ha sido un gran avance, pero no ha resultado ser la herramienta que se prometía. La navegación es muy engorrosa (la introducción de URLs largas por teclado es muy pesada, además de que cualquier error en su introducción requiere que se vuelva a escribir la dirección completa por el teclado del móvil). Además su costo es bastante elevado ya que el pago de uso de esta tecnología se realiza en base al tiempo de conexión a una velocidad, que en realidad, no es muy buena. Otra tecnología relacionada con los móviles es el Servicio de Mensajes Cortos SMS30. Actualmente este sistema permite comunicar de una manera rápida y barata con quien se quiera sin tener que establecer una comunicación con el receptor del mensaje. Con ayuda de J2ME, sin embargo, se puede realizar aplicaciones de chat o mensajería instantánea. Los últimos avances de telefonía móvil llevan al mundo a las conocidas cómo generación 2 y 2.5 que hacen uso de las tecnologías GSM y GPRS respectivamente. GSM es una conexión telefónica que soporta una circulación de datos, mientras que GPRS es estrictamente una red de datos que mantiene una conexión abierta en la que el usuario paga por la cantidad de información intercambiada y no por el tiempo que permanezca conectado. La aparición de la tecnología GPRS no hace más que favorecer el uso de J2ME y es, además, uno de los pilares sobre los que se asienta J2ME, ya que se puede decir que es el vehículo sobre el que circularán las futuras aplicaciones J2ME. 28 HTML: Hyper Text Markup Language 29 WML: Wireless Markup Language 30 SMS: Short Message Service 43 Otras tecnologías que favorecen la comunicación son Bluetooth y las redes inalámbricas que dan conectividad a ordenadores, PDAs y teléfonos móviles. De hecho, una gran variedad de estos dispositivos disponen de soporte bluetooth. Esto facilita la creación de redes con un elevado ancho de banda en distancias pequeñas (hasta 100 metros). Es de esperar que todas estas tecnologías favorezcan el uso de J2ME en el mercado de la telefonía móvil. 44 Capítulo 3: LOS MIDLET Y LA CONFIGURACION CLDC 3.1. Descripción del capítulo.......................................................................................45 3.2 Los Midlets............................................................................................................46 3.2.1 El Gestor de Aplicaciones ..............................................................................46 3.2.1.1 Ciclo de vida de un MIDlet.......................................................................46 3.2.1.2. Estados de un MIDlet en fase de ejecución............................................48 3.2.1.3. Estados de un MIDlet .............................................................................48 3.2.2. Estructura de los MIDlets ..............................................................................50 3.3 La Configuración CLDC........................................................................................51 3.3.1 Objetivos y requerimientos.............................................................................51 3.3.1.1 Objetivos..................................................................................................52 3.3.1.2 Requerimientos........................................................................................53 3.3.2 Seguridad en CLDC .......................................................................................54 3.4 Dispositivos actuales que soportan J2ME [4] .......................................................55 45 3. LOS MIDLETS Y LA CONFIGURACIÓN CLDC [3] 3.1. Descripción del capítulo En este capítulo se dará primeramente unas nociones básicas sobre los MIDlets y posteriormente se estudiará la configuración CLDC de J2ME. Aunque ya se ha hablado de ellos, ya se sabe qué son, en este capítulo se profundizará en su estudio. Con respecto a los MIDlets, se verá cuáles son sus propiedades, se conocerá su ciclo de vida y estados por los que pasa. Se explicará también del gestor de aplicaciones y la relación de éste con los MIDlets. Los MIDlets son aplicaciones creadas usando la especificación MIDP. Están diseñados para ser ejecutados, como ya se sabe, en dispositivos con poca capacidad gráfica, de cómputo y de memoria. En estos dispositivos no se dispone de líneas de comandos donde poder ejecutar las aplicaciones que se quieran, si no que reside en él un software que es el encargado de ejecutar los MIDlets y gestionar los recursos que éstos ocupan. Retomando a la configuración CLDC de J2ME, se verá con qué propósito se creó CLDC y cuales son sus objetivos y metas. Se presentarán los aspectos en que se centra la configuración CLDC. La configuración CLDC se ocupa de las siguientes áreas: • Lenguaje Java y características de la máquina virtual. • Librerías del núcleo de Java (java.lang.* y java.util.*). • Entrada / Salida. • Comunicaciones. • Seguridad. • Internacionalización. Lo que se intenta con la configuración CLDC es mantener lo más pequeño posible el número de áreas abarcadas. Es mejor restringir el alcance de CLDC para no 46 exceder las limitaciones de memoria o no excluir ningún dispositivo en particular. En el futuro, la configuración CLDC podría incluir otras áreas adicionales. 3.2 Los Midlets 3.2.1 El Gestor de Aplicaciones El gestor de aplicaciones o AMS31 es el software encargado de gestionar los MIDlets. Este software reside en el dispositivo y es el que permite ejecutar, pausar o destruir las aplicaciones J2ME. El AMS realiza dos grandes funciones: • Por un lado gestiona el ciclo de vida de los MIDlets. • Por otro, es el encargado de controlar los estados por los que pasa el MIDlet mientras está en la memoria del dispositivo, es decir, en ejecución. 3.2.1.1 Ciclo de vida de un MIDlet El ciclo de vida de un MIDlet pasa por 5 fases (ver Figura 3.1): descubrimiento, instalación, ejecución, actualización y borrado. Figura 3.1 Ciclo de vida de un MIDlet. El AMS es el encargado de gestionar cada una de estas fases de la siguiente manera: 31 AMS: Application Management System 47 1. Descubrimiento: Esta fase es la etapa previa a la instalación del MIDlet y es dónde se selecciona a través del gestor de aplicaciones la aplicación a descargar. Por tanto, el gestor de aplicaciones tiene que proporcionar los mecanismos necesarios para realizar la elección del MIDlet a descargar. El AMS puede ser capaz de realizar la descarga de aplicaciones de diferentes maneras, dependiendo de las capacidades del dispositivo. Por ejemplo, esta descarga la se puede realizar mediante un cable conectado a la computadora o mediante una conexión inalámbrica. 2. Instalación: Una vez es cargado el MIDlet en el dispositivo, comienza el proceso de instalación. En esta fase el gestor de aplicaciones controla todo el proceso informando al usuario tanto de la evolución de la instalación como de si existiese algún problema durante ésta. Cuándo un MIDlet está instalado en el dispositivo, todas sus clases, archivos y almacenamiento persistente están preparados y listos para su uso. 3. Ejecución: Mediante el gestor de aplicaciones el usuario será capaz de iniciar la ejecución de los MIDlets. En esta fase, el AMS tiene la función de gestio